情報学試験オンラインテスト. コンピュータ サイエンスの試験のデモ版

統一国家審査決定情報学

1.タスク。 16進数12F0を2進数で表すと何個あるか 16 ?

説明。

12F0という数字を訳してみましょう 16 2進数へ: 12F0 16 = 1001011110000 2 .

ユニットの数を数えましょう: 6 個あります。

答え: 6.

2.タスク ブール関数式 (¬ z ) ∧ x ∨ x ∧ y . 関数の真理値表のどの列を決定する各変数に対応 x、y、z。

変数 1

変数 2

変数 3

関数

あなたの答えに文字を書いてください。 x、y、z 対応する列が表示される順序で (最初に - 1 列目に対応する文字、次に - 2 列目に対応する文字、次に - 3 列目に対応する文字)。 答えの文字を一列に書いてください。文字の間に区切りを入れる必要はありません。 例。 式をしましょう x→y 、2 つの変数に応じて x と y 、および真理値表:

変数 1

変数 2

関数

次に、最初の列は変数に対応します y 、2 列目は変数に対応します。バツ . 答えには、次のように書いてください。 yx.

説明。

この表現は、2 つの接続詞の論理和です。 両方の項に要因があることに気付くことができますバツ 。 つまり、x について = 0 合計は 0 になります。したがって、変数の場合バツ 3 番目の列のみが適合します。

表の8行目にバツ = 1 で、関数の値は 0 です。これは、次の場合にのみ可能です。 z = 1、y = 0、つまり variable1 −、および変数2 - y.

答え:ジクス

3. タスク 右の図では、N-スカイ地区の道路地図がグラフとして表示され、テーブルにはこれらの道路の長さ (キロメートル単位) に関する情報が含まれています。

表と図は互いに独立して描かれているため、表の入植地の番号はグラフの文字指定とはまったく関係がありません。 ポイント B からポイント E までの道の長さを決定します。答えには、表に示されている整数を書き留めてください。

説明。

ポイント B は道路が 5 本だけあるので P6 に対応し、ポイント E は道路が 4 本しかないので P4 に対応します。

P6 から P4 までの道の長さは 20 です。

答え: 20.

4. タスク データベース フラグメントは、関係に関する情報を提供します。 指定されたデータに基づいて、Pavlenko A.K. の直接の子孫 (つまり、子供と孫) の数を決定します。 表1に記載されています。

表1

姓_I.O.

2146

Krivich L.P.

2155

Pavlenko A.K.

2431

Khitruk P. A.

2480

クリヴィッチ A.A.

2302

パブレンコ E.A.

2500

ソコル N. A.

3002

パヴレンコ I.A.

2523

Pavlenko T. Kh。

2529

Khitruk A.P.

2570

Pavlenko P.I.

2586

パブレンコ T.I.

2933

シモニャン A.A.

2511

ソコル V. A.

3193

Biba S.A.

表 2

親_ID

子_ID

2146

2302

2146

3002

2155

2302

2155

3002

2302

2431

2302

2511

2302

3193

3002

2586

3002

2570

2523

2586

2523

2570

2529

2431

2529

2511

2529

3193

また

ファイルのバッチ操作では、ファイル名マスクが使用されます。 マスクは、ファイル名に使用できる一連の文字、数字、およびその他の文字であり、次の文字も含まれる場合があります。

シンボル「?」 (疑問符) は、任意の 1 文字だけを意味します。

記号 "*" (アスタリスク) は、"*" を含む任意の長さの任意の文字シーケンスを意味し、空のシーケンスを指定することもできます。

ディレクトリには 6 つのファイルが含まれています。

maverick.map

マーベリック.mp3

居酒屋.mp4

リボルバー.mp4

vera.mp3

zveri.mp3

以下は8つのマスクです。 指定されたディレクトリの 4 つのファイルと正確に一致するファイルはいくつありますか?

*ver*.mp*

*?ver?*.mp?

?*ver*.mp?*

*v*r*?.m?p*

???*???.mp*

???*???.m*

*a*.*a*

*a*.*p*

説明。

表 2 から、Pavlenko A.K. (ID 2155) には 2 人の子供がいて、ID は 2302 と 3002 であることがわかります。

Pavlenko E. A. (ID 2302) には 3 人の子供がおり、Pavlenko I. A. (ID 3002) には 2 人の子供がいます。

したがって、Pavlenko A.K. には、2 人の子供と 5 人の孫の 7 人の直系の子孫がいます。

答え: 7.

また

各マスクを検討してください。

1. マスク *ver*.mp* により、5 つのファイルが選択されます。

マーベリック.mp3

居酒屋.mp4

リボルバー.mp4

vera.mp3

zveri.mp3

2. マスクで *?ver?*.mp? 3 つのファイルが選択されます。

マーベリック.mp3

居酒屋.mp4

zveri.mp3

3. mask?*ver*.mp?* により、4 つのファイルが選択されます。

マーベリック.mp3

居酒屋.mp4

リボルバー.mp4

zveri.mp3

4. マスク *v*r*?.m?p* により、1 つのファイルが選択されます。

maverick.map

5. mask???*???.mp* により、3 つのファイルが選択されます。

マーベリック.mp3

居酒屋.mp4

リボルバー.mp4

6. マスク ???*???.m* は 4 つのファイルを選択します。

maverick.map

マーベリック.mp3

居酒屋.mp4

リボルバー.mp4

7. マスク *a*.*a* により、1 つのファイルが選択されます。

maverick.map

8. マスク *a*.*p* により、4 つのファイルが選択されます。

maverick.map

マーベリック.mp3

居酒屋.mp4

vera.mp3

つまり、指定されたディレクトリの正確に 4 つのファイルに対応する 3 つのマスクです。

答え: 3.

答え: 7 | 3

5.タスク P、O、S、T の 4 文字のみを含むメッセージが通信チャネルを介して送信されます。 送信には、明確なデコードを可能にするバイナリ コードが使用されます。 T、O、P の文字には、T: 111、O: 0、P: 100 のコード ワードが使用されます。

文字 C の最短のコード ワードを指定します。このコードでは、コードが明確にデコードされます。 複数のコードがある場合は、数値が最も小さいコードを示してください。

説明。

0 は既に使用されているため、文字 C を 0 としてエンコードすることはできません。

文字 T のエンコードは 1 で始まるため、文字 C を 1 としてエンコードすることはできません。

文字 P のエンコードは 10 で始まるため、文字 C を 10 としてエンコードすることはできません。

文字 T のエンコードは 11 で始まるため、文字 C を 11 としてエンコードすることはできません。

文字 C は、可能な最小値である 101 としてエンコードできます。

答え: 101.

6.クエスト アルゴリズムの入力は自然数 N です。アルゴリズムは、次のように、自然数から新しい数 R を作成します。

1. 数値 N の 2 進表現が作成されます。

2. 次の規則に従って、このエントリの右側にさらに 2 つの数字が追加されます。

A) 2 進表記のすべての桁が追加され、合計を 2 で割った余りが数値の末尾 (右側) に追加されます。 たとえば、エントリ 11100 はエントリ 111001 に変換されます。

B) このレコードに対して同じアクションが実行されます。数字の合計を 2 で割った余りが右側に追加されます。

このようにして得られたレコード (元の数 N のレコードよりも 2 桁多い) は、必要な数 R の 2 進レコードです。

アルゴリズムの結果が 125 を超える最小の数値 N を指定してください。答えでは、この数値を 10 進数で書きます。

また

パフォーマー電卓には、番号が割り当てられた 2 つのチームがあります。

1. 2 を追加し、

2. 5 を掛けます。

最初の計算を実行すると、電卓は画面上の数値に 2 を加算し、2 番目の計算を実行すると、5 を掛けます。

たとえば、プログラム 2121 はプログラムです。

5倍する

2を追加し、

5倍する

2を追加し、

これは数値 1 を数値 37 に変換します。

数 2 を数 24 に変換し、4 つ以下のコマンドを含むプログラム内のコマンドの順序を記述します。 コマンド番号のみを指定してください。

説明。

このアルゴリズムは、数値の末尾に、元の 2 進表記の 1 の数が奇数の場合は 10 を割り当て、偶数の場合は 00 を割り当てます。

126 10 = 1111110 2 数11111からのアルゴリズムの結果として取得できます 2 .

11111 2 = 31 10 .

答え: 31.

また

逆から問題を解いて、受信したコマンドを右から左に書き留めてみましょう。

数値が 5 で割り切れない場合はコマンド 1 で、割り切れる場合はコマンド 2 で受け取ります。

22 + 2 = 24 (チーム 1)

20 + 2 = 22 (チーム 1)

4 * 5 = 20 (チーム 2)

2 + 2 = 4(チーム 1)

答え: 1211.

答え: 31|1211

7.タスク。 スプレッドシートの断片が表示されます。 数式がセル E4 からセル D3 にコピーされました。 数式のセルのアドレスをコピーすると、自動的に変更されました。 セル D3 の数式の数値は?

=$B2 * C$3

注: $ 記号は、絶対アドレス指定を示します。

また

スプレッドシートの断片が表示されます。

=(A1-3)/(B1-1)

=(A1-3)/(C1-5)

C1/(A1 – 3)

A2:C2 の範囲のセルの値に基づいて作成されたグラフが図と一致するように、セル A1 にどの整数を書き込む必要がありますか? 考慮される範囲からのすべてのセル値が非負であることが知られています。

説明。

数式をセル D3 にコピーすると、=$B1 * B$3 に変更されます。

B1 * B3 = 4 * 2 = 8.

答え: 8.

また

B1 と C1 の値を式 A2:C2 に代入します。

A2 = (A1-3)/5

B2 = (A1-3)/5

C2 = 10/(A1-3)

A2 = B2 なので、С2 = 2 * A2 = 2 * B2

代わりの:

10/(A1-3) = 2*(A1-3)/5

A1 - 3 = 5

A1 = 8。

答え: 8.

8. タスク 次のプログラムの結果として出力される数値を書き留めます。 便宜上、プログラムは 5 つのプログラミング言語で表示されます。

ベーシック

パイソン

DIM S、N AS INTEGER

S=0

N=0

ながら

S=S+8

N=N+2

ウェンド

プリント N

s = 0

n=0

ながら

s = s + 8

n = n + 2

印刷(n)

アルゴリズム言語

パスカル

アルグ

早い

整数 n, s

n:=0

s:= 0

nts bye s

s:= s + 8

n:= n + 2

kts

出力 n

詐欺

var s、n: 整数。

始める

s:= 0;

n:=0;

ながら

始める

s:= s + 8;

n:= n + 2

終わり;

writeln(n)

終わり。

西

#含む

int main()

( int s = 0、n = 0;

ながら(s

printf("%d\n", n);

0 を返します。

説明。

while ループは、条件 s が真である限り実行されます。

答え: 28.

9.タスク。 画像で 256 の異なる色を使用できると仮定した場合、64×64 ピクセルのビットマップを格納できるように予約する必要があるメモリの最小量 (KB) は? 答えでは、整数のみを書き留めてください。測定単位を書く必要はありません。

また

音楽の断片はモノフォーマットで録音され、デジタル化され、データ圧縮を使用せずにファイルとして保存されました。 結果のファイルのサイズは 24 MB です。 次に、同じ曲をステレオで再録音(2 チャンネル録音)し、最初の 4 倍の解像度と 1.5 分の 1 のサンプリング レートでデジタル化しました。 データ圧縮は実行されませんでした。 書き換え後のファイルサイズをMB単位で指定します。 答えでは、整数のみを書き留めてください。測定単位を書く必要はありません。

説明。

1 ピクセルは 8 ビットのメモリでエンコードされます。

合計 64 * 64 = 2 12 ピクセル。

イメージ 2 が占有するメモリの量 12 * 8 = 2 15 ビット = 2 12 バイト = 4 KB。

答え: 4.

また

同じファイルをステレオ形式で録音すると、その音量は 2 倍になります。 24 * 2 = 48

解像度が 4 倍になると、音量も 4 倍になります。 48 * 4 = 192

サンプリングレートを 1.5 倍にすると、音量は 1.5 倍になります。 192 / 1.5 = 128.

答え: 128.

答え: 4|128

10.タスク Igor はメッセージ送信用のコード ワードのテーブルを作成します。各メッセージには独自のコード ワードがあります。 Igor は 5 文字の単語をコード ワードとして使用します。この単語には、P、I、R の文字のみがあり、P の文字は 1 回だけ出現します。 他の有効な文字はそれぞれ、コードワード内で何度でも発生する場合もあれば、まったく発生しない場合もあります。 イゴールはいくつの異なるコードワードを使用できますか?

説明。

イゴールは2を作ることができます 4 文字Pを最初の場所に置くことによって単語。 同様に、2 番目、3 番目、4 番目、5 番目に配置できます。 5 * 2を取得します 4 = 80 ワード。

答え: 80.

11.タスク 以下に、F と G の 5 つのプログラミング言語で 2 つの再帰関数 (プロシージャ) を記述します。

ベーシック

パイソン

サブ F(n) の宣言

サブ G(n) の宣言

サブ F(n)

IF n > 0 THEN G(n - 1)

サブ終了

サブ G(n)

印刷 "*"

IF n > 1 THEN F(n - 3)

サブ終了

デフォルト F(n):

n > 0 の場合:

G(n - 1)

デフォルト G(n):

印刷("*")

n > 1 の場合:

F(n - 3)

アルゴリズム言語

パスカル

alg F(整数 n)

早い

n > 0 の場合

G(n - 1)

全て

詐欺

alg G(整数 n)

早い

結論 "*"

n > 1 の場合

F(n - 3)

全て

詐欺

手順 F(n:整数); 前方;

手続きG(n:整数); 前方;

手順 F(n:整数);

始める

n > 0 の場合

G(n-1);

終わり;

手続きG(n:整数);

始める

writeln("*");

n > 1 の場合

F(n - 3);

終わり;

西

ボイド F(整数 n);

ボイド G(整数 n);

ボイド F(整数 n)(

もし (n > 0)

G(n-1);

ボイド G(整数 n)(

printf("*");

もし (n > 1)

F(n - 3);

F(11) を呼び出すと、画面にいくつのアスタリスクが出力されますか?

説明。

プログラムの動作をシミュレートしましょう:

ふ(11)

G(10): *

ふ(7)

G(6): *

F(3)

G(2): *

F(-1)

答え: 3.

12.クエスト TCP/IP ネットワーク用語では、ネットマスクは、ホストの IP アドレスのどの部分がネットワーク アドレスを参照し、どの部分がそのネットワーク上のホスト自体のアドレスを参照するかを決定する 2 進数です。 通常、マスクは IP アドレスと同じルールに従って、4 バイトの形式で書き込まれ、各バイトは 10 進数として書き込まれます。 同時に、マスクでは、最初に(最上位の桁に)1があり、次に特定の桁から-0があります。 ネットワーク アドレスは、指定されたホスト IP アドレスとマスクにビット単位の結合を適用することによって取得されます。

たとえば、ホスト IP アドレスが 231.32.255.131 で、マスクが 255.255.240.0 の場合、ネットワーク アドレスは 231.32.240.0 です。

IP アドレスが 111.81.208.27 のホストの場合、ネットワーク アドレスは 111.81.192.0 です。 マスクの左から 3 番目のバイトの可能な最小値は? 答えを 10 進数で書きなさい。

説明。

IP アドレスとネットワーク アドレスの 3 番目のバイトを 2 進表記で書きましょう。

208 10 = 11010000 2

192 10 = 11000000 2

左側のマスクの最初の 2 ビットが 1 であることがわかります。これは、値が最小になるためには、残りのビットが 0 でなければならないことを意味します。 マスクの左から 3 番目のバイトが 11000000 であることがわかります。 2 = 192 10

答え: 192.

13.タスク コンピューター システムに登録する際、各ユーザーには 12 文字セットの文字のみを含む 15 文字からなるパスワードが与えられます: A、B、C、D、E、F、G、H、K、L、M、 N. 各ユーザーに関する情報を格納するためのデータベース データには、同じ最小整数バイト数が割り当てられます。 この場合、パスワードの文字ごとのコーディングが使用され、すべての文字が同じ最小ビット数でエンコードされます。 パスワード自体に加えて、各ユーザーの追加情報がシステムに保存され、整数のバイト数が割り当てられます。 この番号は、すべてのユーザーで同じです。 20 人のユーザーに関する情報を格納するのに 400 バイトかかりました。 1 人のユーザーに関する追加情報を格納するために割り当てられるバイト数は? 答えには、バイト数である整数のみを書き留めてください。

説明。

条件により、数字は12文字まで使用可能です。 N ビットの助けを借りて、2N の異なるバリアントをエンコードできることが知られています。 以来 2 3 4 の場合、12 文字のそれぞれを書き込むには 4 ビットが必要です。

パスワードの 15 文字すべてを保存するには、4 15 = 60 ビットが必要です。記録には整数のバイト数が使用されるため、8 の倍数である最も近い値を取得します。この数値は 64 = 8 8 ビットです。 (8 バイト)。

追加のセッションに割り当てられるメモリの量を x の場合:

20 * (8+x) = 400

x=12

答え: 12.

14.クエスト Executor Editor は、数値の文字列を入力として受け取り、それを変換します。 エディターは 2 つのコマンドを実行できます。どちらのコマンドでも、v と w は数字の文字列を表します。

A) (v, w) を置き換えます。

このコマンドは、文字列の左側にある最初の v を w に置き換えます。 たとえば、コマンドを実行すると

置換 (111, 27)

文字列 05111150 を文字列 0527150 に変換します。文字列に文字列 v が含まれていない場合、replace (v, w) コマンドを実行しても文字列は変更されません。

B) 見つかった (v)。

このコマンドは、エグゼキュータ エディタの行に文字列 v があるかどうかをチェックします。 発生した場合、コマンドは論理値「true」を返し、それ以外の場合は値「false」を返します。 ライン

出演者は変わりません。

サイクル

BYE条件

コマンドシーケンス

さようなら

条件が真の間実行されます。

建設中

IF条件

チーム1へ

ELSE team2

END IF

Command1 (条件が true の場合) または command2 (条件が false の場合) が実行されます。

次を適用した結果の文字列は何ですか

連続する 68 桁からなる文字列にプログラムする 8? に応じて

結果の文字列を書き留めます。

始める

まだ見つかった (222) または見つかった (888)

見つかった場合 (222)

交換する (222, 8)

ELSE 置換 (888, 2)

END IF

さようなら

終わり

説明。

68 の連続する数字 8 には、3 つの 8 の 22 のグループがあり、22 の 2 に置き換えられ、2 つの 8 が残ります。

68(8) = 22(2) + 2(8)

22(2) + 2(8) = 1(2) + 9(8)

1(2) + 9(8) = 4(2)

4(2) = 1(2) + 1(8) = 28

答え: 28.

15.クエスト この図は、都市 A、B、C、D、D、E、G、H、I、K、L、M を結ぶ道路の図を示しています。

各道路では、矢印で示されている一方向にのみ移動できます。

都市 A から都市 M までの道のりは何通りありますか?

説明。

ルートの終わりから、つまり都市 M からのパスの数を数え始めましょう。N とします。バツ は都市 A から都市 X への異なる経路の数、N は経路の総数です。 都市 M は L または K から到達できるため、N = N M \u003d N L + N K. (*)

同様に:

N K \u003d N そして;

N L \u003d N そして;

N I \u003d N E + N F + N Z

N K \u003d N E \u003d 1.

さらに頂点を追加しましょう。

N B \u003d N A \u003d 1;

N B \u003d N B + N A + N G \u003d 1 + 1 + 1 \u003d 3;

N E \u003d N G \u003d 1;

N G \u003d N A \u003d 1.

式 (*) に代入: N = N M = 4 + 4 + 4 + 1 = 13。

答え: 13.

答え: 56

16.クエスト 演算式の値: 9 8 + 3 5 - 9 - 基数が 3 の数体系で記録されています。このエントリには何桁の「2」が含まれていますか?

説明。

式を変形してみましょう:

(3 2 ) 8 + 3 5 - 3 2

3 16 + 3 5 - 3 2

3 16 + 3 5 = 100...00100000

100...00100000 - 3 2 = 100...00022200

結果の数値には 3 つの 2 があります。

答え: 3

17.タスク 検索エンジンのクエリ言語では、記号「|」は論理演算「OR」を表すために使用され、記号「&」は論理演算「AND」を表すために使用されます。 この表は、クエリと、インターネットの特定のセグメントについて検索されたページの数を示しています。

クエリで見つかるページ数 (千単位)ホーマー&オデッセイ&イーリアス?すべてのリクエストがほぼ同時に実行されたため、検索されたすべての単語を含むページのセットが時間の経過とともに変化しなかったと考えられています。

リクエストの実行。

説明。

この領域のリクエスト数を Ni とします。 ターゲットはN5。

次に、表から次のことがわかります。

N5 + N6 = 355、

N4 + N5 = 200、

N4 + N5 + N6 = 470。

1 番目と 2 番目の式から: N4 + 2N5 + N6 = 555.

最後の式から: N5 = 85.

答え: 85

18. m&n でタスクを表す 非負の整数のビットごとの結合 m と n . たとえば、14&5 = 1110 2 &0101 2 = 0100 2 = 4.

負でない最小の整数は何ですかそして式

x&25 ≠ 0 → (x&17 = 0 → x&A ≠ 0)

同じように真です(つまり、変数の負でない整数値に対して値1を取りますバツ )?

説明。

表記法を紹介しましょう:

(x ∈ A) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

変換すると、次のようになります。

¬P ∨ ¬(Q ∧ ¬A) ∨ ¬P = ¬P ∨ ¬Q ∨ A.

少なくとも 1 つのステートメントが true の場合、論理 OR は true です。 コンディション ¬P∨ ¬Q = 1 は光線 (−∞, 40) と (60, ∞) を満たします。 ¬P∨ ¬Q ∨ A も同様に真でなければならず、式 A は区間 で真でなければなりません。 その長さは 20 です。

答え: 20.

答え: 8

19.クエスト プログラムは、0 から 9 までのインデックスを持つ 1 次元の整数配列 A を使用します。要素の値は、それぞれ 4、7、3、8、5、0、1、2、9、6 です。 A=4、A=7 など

変数の値を決定する c このプログラムの次のフラグメントを実行した後(以下、5 つのプログラミング言語で記述).

ベーシック

パイソン

C=0

i = 1 ~ 9 の場合

IF A(i)

C=c+1

T = A(i)

A(i) = A(0)

A(0) = t

ENDIF

次へ

C=0

範囲 (1,10) の i の場合:

A[i]の場合

C=c+1

t = A[i]

A[i] = A

A=t

アルゴリズム言語

パスカル

c:= 0

1 から 9 までの i の nc

A[i]の場合

c:= c + 1

t:= A[i]

A[i] := A

A := トン

全て

kts

c:=0;

for i:= 1 ~ 9 する

A[i]の場合

始める

c:= c + 1;

t:= A[i];

A[i] := A;

:= t;

終わり;

西

c = 0;

(私 = 1; 私

もし (A[i]

{

c++;

t = A[i];

A[i] = A;

A=t;

}

説明。

A[i] が A より小さい配列要素である場合、プログラムはそれらを交換し、変数の値を増やします。cプログラムは 2 回実行されます。1 回目は A と A を交換します。 2に等しくなります。

答え: 2.

20.クエストアルゴリズムは以下の5つのプログラミング言語で書かれています。 番号を受け取ってバツ、このアルゴリズムは数値を出力しますM. と知られているバツ> 100. そのような (つまり 100 より大きい) 最小の数を示しますバツ、入力すると、アルゴリズムは 26 を出力します。

ベーシック

パイソン

DIM X、L、M AS INTEGER

入力 X

L=X

M=65

IF L MOD 2 = 0 THEN

M=52

ENDIF

WILE L M

もし L > M THEN

L=L-M

それ以外

M=M-L

ENDIF

ウェンド

プリント M

x = int(入力())

L=x

M=65

L % 2 == 0 の場合:

M=52

L != M の間:

L > M の場合:

L=L-M

それ以外:

M=M-L

プリント(M)

アルゴリズム言語

パスカル

アルグ

早い

整数 x、L、M

入力×

L:= x

母:= 65

mod(L,2)=0の場合

それか

母:= 52

全て

nc while L M

L > M の場合

それか

L:= L - M

さもないと

M:= M - L

全て

kts

端末M

詐欺

var x、L、M: 整数。

始める

readln(x);

L:=x;

M:= 65;

L mod 2 = 0 の場合

M:= 52;

一方 L M は

L > M の場合

L:= L - M

それ以外

M:= M - L;

writeln(M);

終わり。

西

#含む

ボイドメイン()

{

intx、L、M;

scanf("%d", &x);

L=x;

M=65;

もし (L % 2 == 0)

M=52;

while (L != M)(

もし(L > M)

L = L - M;

それ以外

M = M - L;

}

printf("%d", M);

}

説明。

ループの本体では、数値 M と L が等しくなるまで減少します。 最後に 26 を出力するためには、両方の数がいずれかの時点で 26 に等しくなければなりません. 端から端まで行きましょう: 前のステップでは、1 つの数は 26 で、もう 1 つの数は 26 + 26 = 52 でした. 1 ステップ以前は、52 + 26 = 78 および 52 でした。それまでは、78 + 52 = 130 および 52 でした。つまり、可能な最小の数は 130 です。見つかった数は偶数であるため、M には値 52 が割り当てられます。望ましい結果に。

答え: 130.

21.クエスト入力変数の最小値を答えに記入してくださいk、プログラムが入力値と同じ答えを生成する場所k= 10. 便宜上、プログラムは 5 つのプログラミング言語で表示されます。

ベーシック

パイソン

DIM K、私は長い

入力K

私 = 1

ながら F(I)

私 = 私 + 1

ウェンド

プリントⅠ

関数 F(N)

F=N*N*N

終了機能

関数 G(N)

G = 2*N + 3

終了機能

デフ f(n):

n*n*n を返す

デフォルト g(n):

2*n+3 を返す

k = int(入力())

私は= 1

一方、f(i)

i+=1

印刷(i)

アルゴリズム言語

パスカル

アルグ

早い

整数 i, k

入力k

私:= 1

nc while f(i)

i:= i + 1

kts

出力 i

詐欺

alg 整数 f(int n)

早い

値:= n * n * n

詐欺

alg 整数 g(int n)

早い

値:= 2*n + 3

詐欺

変数

k、i: 倍長整数;

関数 f(n: 倍長整数): 倍長整数;

始める

f:= n * n * n;

終わり;

関数 g(n: 倍長整数): 倍長整数;

始める

g:= 2*n + 3;

終わり;

始める

readln(k);

私:= 1;

一方、f(i)

i:=i+1;

writeln(i)

終わり。

西

#含む

ロング f(ロング n) (

n*n*n を返します。

}

ロング g(ロング n) (

2*n + 3 を返します。

}

int main()

{

長い k, i;

scanf("%ld", &k);

私は= 1;

while(f(i)

i++;

printf("%ld", i);

0 を返します。

}

説明。

このプログラムは比較します に追加しますユニットまで . そして、変数の最初の値を出力しますその下で

k = 10 の場合、プログラムは数値 3 を出力します。

不等式を書き留めましょう。 したがって、最小値が得られますk = 3.

答え: 3.

22.クエスト5月15日の出演者が画面上の数字を換算します。 パフォーマーには、番号が割り当てられた 2 つのチームがあります。

1.1を追加

2. 2 を掛ける

最初のコマンドは画面上の数字を 1 増やし、2 番目のコマンドは 2 倍します。5 月 15 日のパフォーマーのプログラムは一連のコマンドです。 最初の数が 2 で、結果が数 29 で、計算の軌跡が数 14 を含み、数 25 を含まないプログラムはいくつありますか?

プログラムの軌跡は一連の結果です

すべてのプログラム コマンドの実行。 たとえば、プログラム 121 の場合、最初の番号が 7 の場合、軌跡は番号 8、16、17 で構成されます。

説明。

さらに、可換(commutative)法則が有効です。つまり、プログラム内の命令の順序は結果に関係ありません。

すべてのコマンドは初期数を増やすため、コマンドの数は (30 − 21) = 9 を超えることはできません。この場合、コマンドの最小数は 3 です。

したがって、3、4、5、6、7、8、または 9 個のコマンドが存在する可能性があるため、コマンドの順序は問題ではなく、各コマンド数は 1 つのコマンド セットに対応し、任意の順序で並べることができます。 .

考えられるすべてのセットを検討し、それらにコマンドを配置するためのオプションの数を計算しましょう。 セット 133 には 3 つの可能な場所があります。 セット 1223 - 12 の可能な配置: これは、繰り返しのある順列の数 (1+2+1)!/(1! · 2! · 1!) です。 12222 - 5 つのオプションを設定します。 111222 - 20 の可能なオプションを設定します。 11123 ~ 20 のオプションを設定します。 セット 111113 - 6 オプション、セット 1111122 - 21 オプション、セット 11111112 - 8 オプション、セット 111111111 - 1 オプション。

全部で 3 + 12 + 5 + 20 + 20 + 6 + 21 + 8 + 1 = 96 個のプログラムがあります。

答え: 96.

答え: 96.

答え: 13

23.クエストブール値の異なるセットがいくつあるかバツ1 、 バツ2 、 ...バツ9 、y1 、y2 、 ... y9 次の条件をすべて満たすものは?

(¬ (バツ1 y1 )) ≡ (バツ2 y2 )

(¬ (バツ2 y2 )) ≡ (バツ3 y3 )

(¬ (バツ8 y8 )) ≡ (バツ9 y9 )

答えは、変数値のすべての異なるセットをリストする必要はありませんバツ1 、 バツ2 、 ...バツ9 、y1 、y2 、 ... y9 、この平等のシステムが保持されます。 答えとして、そのようなセットの数を示す必要があります。

説明。

最後の式から、x8 と y8 には 01、00、11 の 3 つの可能な値があることがわかります。最初と 2 番目の値のペアのオプションのツリーを作成しましょう。

したがって、16 セットの変数があります。

値ペア 11 のオプション ツリー:

45 のオプションがあります。 したがって、システムには 45 + 16 = 61 の異なる解のセットがあります。

答え: 61.

答え: 1024

24.クエスト10 を超えない正の整数が処理されています。9 . この数の桁の合計が 7 未満になるように表示するプログラムを作成する必要があります. 7 未満の桁数が存在しない場合は、画面に 0 を表示する必要があります. プログラマはプログラムを間違って作成しました. このプログラムの下には、便宜上、5 つのプログラミング言語が示されています。

ベーシック

パイソン

DIM N、DIGIT、SUM AS LONG

入力 N

合計 = 0

一方、N > 0

桁=NMOD 10

IF桁

合計 = 合計 + 1

END IF

N=N\10

ウェンド

印字桁

N = int(入力())

合計 = 0

一方、N > 0:

桁 = N% 10

数字の場合

合計 = 合計 + 1

N = N // 10

印字(桁)

アルゴリズム言語

パスカル

アルグ

早い

整数 N、数字、合計

入力N

合計:= 0

nc while N > 0

数字:= mod(N,10)

数字の場合

合計:= 合計 + 1

全て

N:=div(N,10)

kts

桁出力

詐欺

var N、数字、合計: 倍長整数;

始める

readln(N);

合計:= 0;

一方、N > 0 は

始める

数字:= N mod 10;

数字の場合

合計:= 合計 + 1;

N:= N div 10;

終わり;

writeln(数字)

終わり。

西

#含む

int main()

{

int N、数字、合計。

scanf("%d", &N);

合計 = 0;

一方 (N > 0)

{

桁 = N% 10;

もし(数字

合計 = 合計 + 1;

N = N / 10;

}

printf("%d",数字);

return0;

}

以下を順番に実行します。

1. 数値 456 を入力したときにこのプログラムが表示する内容を書きます。

2. そのような 3 桁の数字の例を挙げてください。入力すると、プログラムは正しい答えを返します。

3. このプログラム内のすべてのエラーを見つけます (1 つ以上ある場合があります)。 各エラーは 1 つの行にのみ影響し、他の行を変更せずに修正できることが知られています。 エラーごとに:

1) エラーが発生した行を書き出します。

2) エラーの修正方法を示します。 文字列の正しいバージョンを指定します。

1 つのプログラミング言語について、エラーとその修正方法を示すだけで十分です。 既存のプログラムでエラーを見つける必要があることに注意してください。おそらく別のソリューション アルゴリズムを使用して、独自のプログラムを作成する必要はありません。 バグの修正は、バグを含む行にのみ影響するはずです。

説明。

このソリューションでは、Pascal プログラム エントリを使用します。 このプログラムは、他の 4 つの言語のいずれでも使用できます。

1. プログラムは数字の 4 を出力します。

2. 数値の例を入力すると、プログラムは正しい答えを返します: 835.

レビュアーへの注意。 誤った表示変数と誤った金額の増加により、プログラムが正しく機能しません。 したがって、数値の最上位桁 (左端) が 7 未満の桁の合計に等しい場合、プログラムは正しく動作します。

3. プログラムに 2 つのエラーがあります。

最初の間違い。 間違った増額。

エラー行:

合計:= 合計 + 1;

正しい修正:

合計:= 合計 + 桁;

二度目の間違い。 画面上の応答の表示が正しくありません。

エラー行:

writeln(数字)

正しい修正:

writeln(合計)

25.クエスト20 要素の整数配列が与えられます。 配列要素は、-10000 から 10000 までの整数値を取ることができます。 自然言語またはプログラミング言語のいずれかで、少なくとも 1 つの数値が 3 で割り切れる配列要素のペアの数を見つけて表示できるアルゴリズムを記述します。この問題では、ペアとは 2 つの連続する配列を意味します。要素。 たとえば、5 つの要素の配列の場合: 6; 2; 9; -3; 6 - 答え: 4.

初期データは、一部のプログラミング言語と自然言語の例で以下のように宣言されています。 以下に記載されていない変数の使用は禁止されていますが、記載されている変数の一部は使用しないことが許可されています。

ベーシック

パイソン

CONST N AS INTEGER = 20

DIM A (1 から N) を整数として

DIM I AS INTEGER、

J AS INTEGER、

K AS INTEGER

私は= 1対N

入力 A(I)

次へ

...

終わり

#も許される

# 2つ使う

# 整数変数 j と k

a =

n=20

i の範囲 (0, n):

a.append(int(input()))

...

アルゴリズム言語

パスカル

アルグ

早い

整数 N = 20

セルタブ

整数 i、j、k

1 から N までの i の nc

入力 a[i]

kts

...

詐欺

定数

N = 20;

変数

a: 整数の配列。

i、j、k: 整数。

始める

for i:= 1 ~ N する

readln(a[i]);

...

終わり。

西

自然言語

#含む

#定義 N 20

int main() (

int a[N];

int i、j、k;

(私 = 0; 私

scanf("%d", &a[i]);

...

0 を返します。

}

20 要素の配列 A を宣言します。

整数変数 I、J、K を宣言します。

1 から 20 までのループで、配列 A の要素を 1 番目から 20 番目まで入力します。

答えとして、省略記号の代わりにプログラム フラグメント (または自然言語でのアルゴリズムの説明) を提供する必要があります。 別のプログラミング言語 (Free Pascal 2.6 など、使用するプログラミング言語の名前とバージョンを指定) またはフローチャートとしてソリューションを作成することもできます。 この場合、条件で提案されたのと同じ初期データと変数を使用する必要があります (たとえば、自然言語で記述されたサンプルで)。

k:=k+1

全て

kts

出力k

パスカル

k:= 0;

for i:= 1 ~ N-1 do

(a[i] mod 3=0) または (a mod 3=0) の場合

inc(k);

writeln(k);

西

k = 0;

(私 = 0; 私

もし (a[i]%3 == 0 || a%3 == 0)

k++;

printf("%d", k);

自然言語

0 に等しい初期値を変数 K に書き込みます。最初の要素から最後から 2 番目の要素へのループでは、配列の現在の要素と次の要素を 3 で割った余りを見つけます。残りが 0 の場合、変数 K を 1 増やします。 ループが完了したら、変数 K の値を表示します

26.クエストPetya と Vanya の 2 人のプレイヤーが次のゲームをプレイします。 プレイヤーの前に2つの石の山があります。 プレイヤーは順番に移動し、Petya が最初の移動を行います。 1 回の移動で、プレーヤーは (選択した) 山の 1 つに石を 1 つ追加するか、山の石の数を 2 倍にすることができます。 たとえば、ある山に 10 個の石があり、別の山に 7 個の石があるとします。 ゲーム内のそのような位置は (10, 7) で示されます。 次に、1 回の移動で、(11, 7)、(20, 7)、(10, 8)、(10, 14) の 4 つの位置のいずれかを取得できます。 移動するために、各プレイヤーは無制限の数の石を持っています。

山にある石の総数が 73 個以上になった時点でゲームは終了します。 山に合計73個以上の石があるような位置を最初に取得します。

対戦相手のどんな手でも勝てる場合、プレイヤーは勝利戦略を持っていると言えます。 プレーヤーの戦略を説明するということは、さまざまな対戦相手のプレーに遭遇する可能性のある状況でプレーヤーがどのような動きをするべきかを説明することを意味します。 たとえば、最初の位置が (6, 34)、(7, 33)、(9, 32) の場合、Petya には勝利戦略があります。 勝つためには、2 番目の山の石の数を 2 倍にするだけで済みます。

演習 1。初期位置 (6, 33) のそれぞれについて、(8, 32) は、どのプレーヤーが勝利戦略を持っているかを示します。 それぞれの場合で、勝利戦略を説明してください。 この戦略が勝利につながる理由を説明し、勝者がこの戦略で勝つために取ることができる最大の手数を示します.

タスク 2。初期位置 (6, 32)、(7, 32)、(8, 31) のそれぞれについて、どのプレーヤーが勝利戦略を持っているかを示します。 それぞれの場合で、勝利戦略を説明してください。 この戦略が勝利につながる理由を説明し、勝者がこの戦略で勝つために取ることができる最大の手数を示します.

タスク 3。最初の位置 (7, 31) について、どのプレーヤーが勝利戦略を持っているかを示します。 勝利戦略を説明してください。 この戦略が勝利につながる理由を説明し、勝者がこの戦略で勝つために取ることができる最大の手数を示します. 指定した勝利戦略で可能なすべてのゲームのツリーを作成します。 ツリーを写真または表の形で提示します。

(7,31)

合計 38

(7,31+1)=(7,32)

合計 39

(7+1,32)=(8,32)

合計 40

(8+1,32)=(9,32)

合計 41

(9,32*2)=(9,64)

合計 73

(8,32+1)=(8,33)

合計 41

(8,33*2)=(8,66)

合計 74

(8*2,32)=(16,32)

合計 48

(16,32*2)=(16,64)

合計80

(8,32*2)=(8,64)

合計 72

(8,64*2)=(8,128)

合計 136

(7+1,31)=(8,31)

合計 39

(8,31+1)=(8,32)

合計 40

(8+1,32)=(9,32)

合計 41

(9,32*2)=(9,64)

合計 73

(8,32+1)=(8,33)

合計41

(8,33*2)=(8,66)

合計 74

(8*2,32)=(16,32)

合計 48

(16,32*2)=(16,64)

合計 80

(8,32*2)=(8,64)

合計 72

(8,64*2)=(8,128)

合計 136

(7*2,31)=(14,31)

合計 45

(14,31*2)=(14,62)

合計 76

(7,31*2)=(7,62)

合計 69

(7,62*2)=(7,124)

合計 131

演習 1。初期位置 (6, 33)、(8, 32) で、Vanya には勝利戦略があります。 初期位置 (6, 33) の場合、Petya の最初の動きの後、(7, 33)、(12, 33)、(6, 34)、(6, 66) の 4 つの位置のいずれかを取得できます。 これらの各位置には、73 個未満の石が含まれています。 さらに、これらのポジションのいずれからでも、2 番目の山の石の数を 2 倍にすることで、Vanya は少なくとも 73 のストーンを含むポジションを得ることができます。 位置 (8, 32) については、Petya の最初の動きの後、次の 4 つの位置のいずれかを取得できます: (9, 32)、(16, 32)、(8, 33)、(8, 64)。 これらの各位置には、73 個未満の石が含まれています。 さらに、これらのポジションのいずれからでも、2 番目の山の石の数を 2 倍にすることで、Vanya は少なくとも 73 のストーンを含むポジションを得ることができます。 したがって、Vanya、Petya の動きについて

初手で勝つ。

タスク 2。最初の位置 (6, 32)、(7, 32)、および (8, 31) で、Petya には勝利戦略があります。 初期位置 (6, 32) を使用して、最初の位置 (7, 32) および (8, 31) から位置 (6, 33) を取得するために最初に移動する必要があります。 最初の動きの後のペティアは、位置 (8, 32) を取得する必要があります。 タスク 1 の分析では、位置 (6、33) と (8、32) が考慮されました。これらの位置では、2 番目に移動するプレーヤー (現在は Petya) が勝利戦略を持っています。 この戦略は、タスク 1 の分析で説明されました。したがって、Vanya がプレイするどのゲームでも、Petya は 2 番目の手で勝ちます。

タスク 3。初期位置 (7, 31) で、Vanya には勝利戦略があります。 Petya の最初の動きの後、(8, 31)、(7, 32)、(14, 31)、および (7, 62) の 4 つの位置のいずれかが表示されます。 位置 (14, 31) と (7, 62) では、Vanya は 2 番目の山の石の数を 2 倍にすることで、1 回の手で勝つことができます。 タスク 2 の分析では、ポジション (8, 31) と (7, 32) が考慮されました。 この戦略は、タスク 2 の分析で説明しました。したがって、Petya のゲームに応じて、Vanya は最初または 2 番目の手で勝ちます。

27.クエスト地球の重力場を研究するための長期実験が、物理学研究室で行われています。 毎分、正の整数が通信チャネルを介してラボに送信されます - Sigma 2015 デバイスの現在の読み取り値です。 一連の送信数は既知であり、10,000 を超えません。すべての数が 1000 を超えません。送信が行われる時間は無視できます。

一連の機器読み取り値の「ベータ値」を計算する必要があります。これは、少なくとも 6 分が経過した送信の瞬間の間にある 2 つの読み取り値の最小偶数積です。 そのような積が得られない場合、答えは -1 と見なされます。

このタスクに関連する 2 つのタスク (タスク A とタスク B) が提供されます。選択に応じて、両方のタスクまたはいずれかのタスクを解決できます。 課題 A と課題 B の点数の最高点を最終点数として設定します。いずれか 1 つの課題の解決策が提示されていない場合、その課題の点数は 0 点と見なされます。 タスク B はタスク A の複雑なバージョンであり、プログラムの追加要件が含まれています。

A. 問題を解決するために任意のプログラミング言語でプログラムを作成します。このプログラムでは、入力データが配列に格納された後、考えられるすべての要素のペアがチェックされます。 プログラムの前にプログラミング言語のバージョンを指定します。

DO プログラムがタスク A の解決策であることを示します。

タスク A を完了するための最大スコアは 2 ポイントです。

B. 時間とメモリの両方 (または少なくともこれらの特性の 1 つ) の両方で効率的な問題を解決するプログラムを作成します。

実行時間が

プログラムは、受信した機器の読み取り値 N の数に比例します。 N が k 倍増加した場合、プログラムの実行時間は k 倍を超えて増加することはありません。

データを格納するためにプログラムで使用されるメモリのサイズが数 N に依存せず、1 キロバイトを超えない場合、そのプログラムはメモリ効率が良いと見なされます。

プログラムの前に、プログラミング言語のバージョンを示し、使用されているアルゴリズムを簡単に説明します。

DO プログラムがタスク B の解決策であることを示します。

時間と記憶の点で効率的で正しいプログラムの最大スコアは 4 点です。

時間効率は良いがメモリ効率が悪い正しいプログラムの最大スコアは 3 点です。 リマインダー! 提出した各プログラムがどのタスクに属しているかを忘れずに示してください。

入力データは次のように表示されます。 最初の行には、数値 N - 計測器の読み取りの総数が含まれています。 N > 6 であることが保証されています。次の N 行のそれぞれには、正の整数が 1 つ含まれています。つまり、機器の次の読み取り値です。

入力例:

11

12

45

5

3

17

23

21

20

19

18

17

プログラムは、条件に記述された製品、またはそのような製品が入手できない場合は -1 という 1 つの数字を表示する必要があります。

上記の入力例の出力例:

54

説明。

タスク B (タスク A の解決策は以下に示します。プログラム 4 を参照してください)。 積が偶数であるためには、少なくとも 1 つの要素が偶数でなければなりません。したがって、適切な製品を検索する場合、偶数の機器の読み取り値は他の値と並行して考慮され、奇数は偶数の読み取り値のみと見なされます。

k = 7 から始まる番号 k の各指示に対して、この指示が 2 番目に得られる問題の条件下で、すべてのペアが許容可能であると見なします。 これらすべてのペアの最小積は、受信の開始から番号 k - 6 の指示までに受信されたすべての指示の中で、ペアの最初の指示が最小の適切な指示に取られる場合に取得されます。次の指示が偶数の場合、前のものの最小値は、奇数の場合は任意です - 偶数のみです。

時間効率の良いソリューションを得るには、データを入力するときに、各時点の絶対最小値と最小偶数読み取り値を記憶し、新たに取得した各読み取り値に 6 要素前に利用可能だった対応する最小値を掛けて、そのようなすべての積の最小値を選択します。 .

現在の最安値は 6 つ入力すると使用され、その後は不要になるため、直近の 6 つの安値のみを保存するだけで十分です。 これを行うには、6 つの要素からなる配列を使用して、データを入力しながら循環させることができます。 この配列のサイズは、入力された読み取り値の総数に依存しないため、このソリューションは時間だけでなくメモリの面でも効率的です。 絶対最小値と偶数最小値を格納するには、そのような配列を 2 つ使用する必要があります。 以下は、アルゴリズム言語で書かれたそのようなプログラムの例です。

例 1. アルゴリズム言語での正しいプログラムの例。 このプログラムは、時間とメモリの両方の点で効率的です。

アルグ

早い

整数 s = 6 | 読み値間の必要な距離

整数 amax = 1001 | 可能な最大読み取り値を超える

整数 N

入力N

整数 a | 別の楽器の読み

セルタブ ミニ | 最後の s 要素の現在の安値

セルタブ ミニチェット | 最後の s 要素の偶数最小値

ターゲット i

| | 最初の読み取り値を入力し、最小値を修正します

マ全体; ma:= アマックス | 最低限の読書

全体が急いで; 急いで:= amax | 最小偶数読み取り

1 から s までの i の nc

入力

ma:= イミン(ma, a)

ミニ:=マ

ミニチェット := ラッシュ

kts

整数 mp = amax*amax | 製品の最小値

全体 p

s+1 から N までの i に対する nc

入力

mod(a,2)=0の場合

n:= a * ミニ

それ以外の場合は急いで

n:= a * ミニイーブン

それ以外の場合、n:= amax*amax;

全て

全て

mp:= イミン(mp, n)

ma:= イミン(ma, a)

mod(a,2) = 0 の場合、ちらつき:= imin(flash,a) すべて

ミニ:=マ

ミニチェット := ラッシュ

kts

mp = amax*amax の場合、mp:=-1 すべて

出力MP

詐欺

他の実装も可能です。 たとえば、配列を周期的に埋める代わりに、その要素を毎回シフトできます。 以下の例では、保存およびシフトされるのは最小値ではなく、元の値です。 これに必要なメモリはわずかに少なくなります (2 つの配列ではなく 1 つの配列で十分です) が、シフトを使用したソリューションは、巡回充填よりも時間効率が低くなります。 ただし、実行時間は N に比例するため、この解の最大スコアも 4 点になります。

プログラム 2. 正しい Pascal プログラムの例。

プログラムはシフトを使用しますが、時間とメモリの効率が良い

変数

N: 整数

a: 整数の配列。 (計器測定値の保存)

a_: 整数; (次の表示に入る)

p: 整数;

i、j: 整数。

始める

readln(N);

(最初の s 番号の入力)

for i:=1 to s do readln(a[i]);

(他の値を入力して、最小の製品を見つけます)

ma:= アマックス; 私:= アマックス;

mp:=アマックス*アマックス;

for i:= s + 1 to N do begin

readln(a_);

もし

(a mod 2 = 0) および (a

a_ mod 2 = 0 の場合、p:= a_ * ma

そうでなければ私なら

そうでなければ p:= amax* amax;

もし (p

(補助配列の要素を左にシフトします)

for j:= 1 to s - 1 do

[j] := a;

[s] := a_

終わり;

mp = amax*amax の場合、mp:=-1;

writeln(mp)

終わり。

固定サイズ (サイクリックまたはシフト) の小さな配列の代わりにすべての元のデータ (またはすべての現在の最小値) が格納されている場合、プログラムは時間効率は維持されますが、必要なメモリが N に比例して増加するため、メモリ効率が低下します。 Pascal言語でのそのようなプログラム。 類似した (そして本質的に類似した) プログラムは、3 点以下で評価されます。

プログラム 3. 正しい Pascal プログラムの例。 プログラムは時間効率が良いがメモリ効率が悪い

const s = 6; (読み値間の必要な距離)

アマックス = 1001; (最大可能読み取り値より大きい)

変数

N、p、i: 整数。

ma: 整数; (最後の s なしの最小数)

私: 整数; (最後の s のない最小の偶数)

mp: 整数; (最小製品値)

始める

readln(N);

(すべての測定値の入力)

for i:=1 to N do readln(a[i]);

ma:= アマックス;

私:= アマックス;

mp:= amax*amax;

for i:= s + 1 to N do

始める

もし

(a mod 2 = 0) および (a

私:= a;

a[i] mod 2 = 0 の場合、p:= a[i] * ma

そうでなければ私なら

そうでなければ p:= amax * amax;

もし (p

終わり;

mp = amax*amax の場合、mp:= -1;

writeln(mp)

終わり。

可能なすべてのペアの積が見つかり、それらから最小値が選択される列挙ソリューションも可能です。 以下 (プログラム 4 を参照) は、そのようなソリューションの例です。 この (および同様の) ソリューションは、時間効率もメモリ効率も優れていません。 これはタスク A の解決策ですが、タスク B の解決策ではありません。このような解決策のスコアは 2 点です。

プログラム 4. 正しい Pascal プログラムの例。 プログラムは時間効率もメモリ効率も悪い

const s = 6; (読み値間の必要な距離)

変数

N: 整数

a: 整数の配列。 (すべての測定値)

mp: 整数; (最小製品値)

i、j: 整数。

始める

readln(N);

(機器の値を入力してください)

for i:=1 ~ N do

readln(a[i]);

mp:= 1000 * 1000 + 1;

for i:= 1 ~ N-s do begin

for j:= i+s to N do begin

(a[i]*a[j] mod 2 = 0) および (a[i]*a[j] の場合

次に mp:= a[i]*a[j]

終わり;

終わり;

mp = 1000 * 1000 + 1 の場合、mp:= -1;

writeln(mp)

K.Yu. ポリアコフ
情報学での使用:
2016年以降…
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

2015-2016年の構造変化


2
2015-2016年の構造変化
1) パーツAの取り外し
2) タスクの数を減らす
3) 簡単なタスクの組み合わせ (4、6、7、9)
目標: 決定のための時間を増やす
複雑なタスク。
4) パイソン言語
!
K.Yu. ポリアコフ、2015
可変性!
http://kpolyakov.spb.ru

情報学における USE: 2016 年以降…
3

2進数で何単位
16 進数 12F016。
1
2
12 102

11112
0
1+1+4=6
2 進数表記の最小の数を指定してください
正確に 3 つの有効なゼロと 3 つの 1 が含まれます。
答えを10進数で書いてください
1000112 = 35
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B1: 2 進数システム

情報学における USE: 2016 年以降…
4
B1: 2 進数システム

数1025?
1)「額に」-翻訳...
2) 1025 = 1024 + 1
1024 = 100000000002
1025 = 100000000012
答え: 2
511?
511 = 512 - 1
= 10000000002 - 1 = 1111111112
答え: 9
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B1: 2 進数システム

情報学における USE: 2016 年以降…
5
B1: 2 進数システム
10進数の2進表記にはいくつの単位がありますか
999番?
1)「額に」-翻訳...
2) 999 = 1023 – 16 – 8
1023 = 1024 – 1 = 11111111112
マイナス 2 単位: 8
519?
519 = 512 + 7
512 = 10000000002
7 = 1112
プラス 3 ユニット: 4
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B1: ナンバーシステム

情報学における USE: 2016 年以降…
6
B1: ナンバーシステム
次の数字のうち、書ける数字はどれ?
1xxx10 の形式の 2 進数システム。x は
0と1の両方を意味しますか?
1) 74
2) 38
3) 60
4) 47
1) 1000102 = 34 N 1111102 = 62
2) 1xxx10 は 2 で割り切れる
3) 1xxx10 は 4 で割り切れません
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B2: 論理関数

情報学における USE: 2016 年以降…
7
B2: 論理関数
x1
1
!
x2
0
x3
x4
0
1
x5
x6
x7
x8
1
1

0
1
1
すべてのオプションは単純な AND または OR です。
1)「額に」-式に代入...
2) すべて「OR」の場合、1 つのゼロ
F = 0の行を確認してください
x2 反転なし、x8 反転あり
3) もしすべて「そして」1つの単位なら
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B2: 論理関数

情報学における USE: 2016 年以降…
8
B2: 論理関数
機能表 z x x

?z
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
K.Yu. ポリアコフ、2015
?バツ
0
1
0
1
0
1
0
1

0
1
0
1
0
0
0
1
y.
じゅん
x (z y)
x 0 F 0
×1
z1
F0
年 0
答え:ジクス
http://kpolyakov.spb.ru

B2: 論理関数

情報学における USE: 2016 年以降…
9
B2: 論理関数
機能表 x y z x
x、y、z がどの列にあるかを判断します。
?z
0
0
0
0
1
1
1
1
?バツ
0
0
1
1
0
0
1
1
K.Yu. ポリアコフ、2015

0
1
0
1
0
1
0
1

0
0
1
0
1
1
1
1
yz。
xyz xyz
z 0 F x y
z 1 F x y x y
(x x) (y x) y
y x y 1
z0
x 1 答え: zxy
F1
年 0
http://kpolyakov.spb.ru

B3: グラフの重み行列

情報学における USE: 2016 年以降…
10
B3: グラフの重み行列


B

D


Z
B
4

6
3
D


11
4
5
7
4
Z
30
27
10
8
2
29
1) 非対称行列 (有向グラフ)
2) 2 つの一方通行道路
3) 「N を通る道は何本あるか」
ポイント?
4) 「... N ポイント以上ですか?」
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B3: グラフの重み行列

情報学における USE: 2016 年以降…
11
B3: グラフの重み行列
1
1
2
2
3
45
4
5
6
6
45
55
3
15 60
2
10 40
15
20 35
4
55
2
55 60 20 55
35
45
45


5
2
程度
ピーク
K.Yu. ポリアコフ、2015
D
2
40
7
B
7
10
3
4
5


4度
5度
G
答え: 20
http://kpolyakov.spb.ru

B4-1: 表形式データベース

情報学における USE: 2016 年以降…
12
B4-1: 表形式データベース
1) X には何人の子孫 (子供、孫、ひ孫...) がいますか?
2) テーブルには X の祖先がいくつありますか?
3) 母方の祖父を探す
23
24
25
K.Yu. ポリアコフ、2015
34
57
35
42
http://kpolyakov.spb.ru

情報学における USE: 2016 年以降…
13

メッセージには、P、O、C、T の文字が含まれています。 使用済み
明確なバイナリコード
デコード。 コードワード:
T: 111、O: 0、P: 100。
文字 C の最短コード ワードを入力します。
コードが明確な
デコード。 そのようなコードが複数ある場合は、それを示してください
数値が最も小さいコード。
1
0
0x10
0xx
だいたい
11
101
P
K.Yu. ポリアコフ、2015
0
0
110
1
1
1
0
1
T
http://kpolyakov.spb.ru

B5: エンコードとデコード

情報学における USE: 2016 年以降…
14
B5: エンコードとデコード
メッセージには、A、E、I、および 5 つの 3 つの母音が含まれています。
子音: B、C、D、D、K。文字はエンコードされています
プレフィックスコード。 のすべてのコードワードが知られています。
子音の長さは同じで、
A-1、E-01、I-001。
コードワードの可能な最小の長さは何ですか
子音?
0
5 子音 3 ビット 4 ビット 5 ビット
4:1xx
0
1
2:01x
0
1

1: 001
1

利用可能: 000
000x 000xx
1
2
4

K.Yu. ポリアコフ、2015
6ビット
000xxx
8
http://kpolyakov.spb.ru

B6-1: 自動

情報学における USE: 2016 年以降…
15
B6-1: 自動
パリティが回復しました!
入力: 自然数 N.
1. バイナリ レコードの末尾にパリティ ビットが追加されます。
(数字の合計 mod 2)。
2. 受信した文字列に別のパリティ ビットが追加されます。
結果が得られる最小の数を指定してください
このアルゴリズムを実行すると、数値が得られます
125 以上。
!
ステップ 2 は 0 2 を追加します!
偶数になるはずです = 126 または 128
div 2 の後、パリティを保持する必要があります。
126 / 2 = 63 = 1111112: - 偶数の 6 ユニット
答え:
K.Yu. ポリアコフ、2015
31
http://kpolyakov.spb.ru

B10: 組合せ論

情報学における USE: 2016 年以降…
16
B10: 組合せ論
のみを含む5文字の単語はいくつありますか?
文字 P、I、R、および文字 P は 1 回だけ出現します。
P****
*P***
**は**
***P*
****P
K.Yu. ポリアコフ、2015
24 = 16 ワード
答え: 16 5 = 80.
http://kpolyakov.spb.ru

B12: ネットワークアドレッシング

情報学における USE: 2016 年以降…
17
B12: ネットワークアドレッシング
IP アドレス 224.128.112.142
ネットワーク アドレスは 224.128.64.0 です。
マスクの左から 3 番目のバイトは?
忘れないで
*.*.112.*
シニアユニット!
*.*.64.0
マスク: 110000002 = 192
192
112 = 011100002
64 = 010000002
!
K.Yu. ポリアコフ、2015
ビット結合!
http://kpolyakov.spb.ru

B12: ネットワークアドレッシング

情報学における USE: 2016 年以降…
18
B12: ネットワークアドレッシング
IP アドレス 111.81.208.27
ネットワーク アドレスは 111.81.192.0 です。
左から3番目の最小値は?
マスクバイト?
*.*.208.*
*.*.192.0
208 =
192 =
マスク:
マスク:
110100002
110000002
111000002
110000002
192
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B14: 製図工

情報学における USE: 2016 年以降…
19
B14: 製図工
(–3, –3) だけシフトする 1)
N回繰り返す
2)
(a, b)に移動 3)
(27, 12) に移動 4)
エンドリピート
(–22, -7) ずつシフト
3N×220
3 Ny 7 0
最小の N > 1
最大 N
すべての可能な N
すべての N の合計
N×25
Ny10
N = 公約数(25,10)
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B14: 編集者

情報学における USE: 2016 年以降…
20
B14: 編集者
1) 置換(v,w)
2) 見つかった(v)
まだ見つかった (222) または見つかった (888)
見つかった場合 (222)
交換する (222, 8)
ELSE 置換 (888, 2)
文字列 88888…8 を処理した結果は?
888888888…8
2 2 2
8
K.Yu. ポリアコフ、2015
!
4ステップで
削除されました
8エイト!
68 - 8 8 = 4
68
8888 28
http://kpolyakov.spb.ru

情報学における USE: 2016 年以降…
21


A市からL市へ、Bを通らない?
D
B



G
K.Yu. ポリアコフ、2015


L

http://kpolyakov.spb.ru

B15: 列内のパスの数

情報学における USE: 2016 年以降…
22
B15: 列内のパスの数
いくつの異なるパスがありますか
A市からD市を通りL市へ?
D
B



G
K.Yu. ポリアコフ、2015


L

http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
23
B16: 数体系
バイナリの単位はいくつですか
(3進、…) 数Xの表記?
10N = 100…0
10N-1 = 99…9
N
N
2N = 100…02
N
3N = 100…03
N
K.Yu. ポリアコフ、2015
2N-1 = 11…1
N
3N-1 = 22…2
N
http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
24
B16: 数体系
2N - 2M = 2M (2N-M - 1)
= 100…02 11…12
N-M
M
= 11…100…02
N-M
K.Yu. ポリアコフ、2015
M
http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
25
B16: 数体系

数 (24400–1) (42200+2)?
(24400–1) (42200+2) = (24400–1) (24400+1+1)
= (24400–1) (24400+1) + 24400–1
= 28800 – 1 + 24400–1
= 28800 + 24400 – 21
1
4399
1 + 4399 = 4400
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
27
B16: 数体系
2進表記で何単位ありますか
数値の値 8148 - 4123 + 2654 - 17?
8148 = 2444
4123 = 2246
2654
17 = 16 + 1
= 24 + 2 0
2654 + 2444 – 2246 – 24 – 20
444 – 2246 – 24 – 20
2
1
444 – 2
1 + 444 – 2 = 443
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
28
B16: 数体系
3 進表記で 2 はいくつあるか
数値 9118 + 3123 - 27 の値?
9118 = 3236
27 = 33
K.Yu. ポリアコフ、2015
3236 + 3123 – 33
1
120デュース
http://kpolyakov.spb.ru

B16: 数体系

情報学における USE: 2016 年以降…
29
B17: 検索エンジンでのクエリ
リクエスト
アメリカ | 日本 | 中国
日本 | 中国
(アメリカ & 日本) | (アメリカ&中国)
アメリカ合衆国
A=米国
リクエスト
A|B
B
A&B

ページ
450
260
50
?
B = 日本 | 中国
ページ
450
260
50
?

A&B
B
なし | B = NA + NB - NA & B
NA = 450 - 260 + 50 = 240
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B17: 検索エンジンでのクエリ

情報学における USE: 2016 年以降…
30
P = および Q = . 最小のものを指定
式が
(x P) (((x Q) (x A)) (x P))
同様に真、つまり、任意の値に対して 1 に等しい
x の値。
P(xP)、
Q(×Q)、
A(×A)
P(QAP)
P(QAP)
P Q A P P Q A
PQ A
P
Q
K.Yu. ポリアコフ、2015
P
37
40
60
77
バツ
20
Q
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
31

セット A: 自然数。 表現
(x(2, 4, 6, 8, 10, 12)) → (((x(4, 8, 12, 116))
¬(x A)) → ¬(x (2, 4, 6, 8, 10, 12)))
x の任意の値に対して true。 決定
要素の合計の可能な最小値
A を設定します。
P×(2、4、6、8、10、12)、
Q × (4, 8, 12, 116),
A×A
P(QAP)
PQ A
アミン P Q P Q (4, 8, 12)
K.Yu. ポリアコフ、2015
= 24
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
32
B18: 論理演算、セット

(×&49<>0) ((x & 33 = 0) (x & A<> 0))


Px & 49 0,
Ax & A 0
P(QA)
Qx & 33 0,
P (Q A) P Q A
P Q A (P Q) A
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
33
B18: 論理演算、セット
「&」はビット論理積 (AND) です。 表現
(×&49<>0) ((x & 33 = 0) (x & A<> 0))
任意の自然な x に対して真です。 決定
A の可能な最小値。
x&49
ビット数
5 4 3 2 1 0
49 = 110001
X = abcdef
X&49=ab000f
x & 49 = 0 すべてのビット (5、4、0) はゼロ
x&49<>
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
34
B18: 論理演算、セット
「&」はビット論理積 (AND) です。 表現
(×&49<>0) ((x & 33 = 0) (x & A<> 0))
任意の自然な x に対して真です。 決定
A の可能な最小値。
(PQ)A
P:x & 49<>0 ビット (5、4、0) は非ゼロ
Q: x & 33 = 0 すべてのビット (5, 0) はゼロです
ビット数
5 4 3 2 1 0
33 = 100001
!
?
ビット 4 は非ゼロです!
K.Yu. ポリアコフ、2015
これから何が続きますか?
アミン = 24 = 16
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
35
B18: 論理演算、セット
「&」はビット論理積 (AND) です。 表現
(x&A<>0) ((x & 20 = 0) (x & 5)<> 0))
任意の自然な x に対して真です。 決定

Px & 20 0,
Ax & A 0
A (PQ)
Qx & 5 0,
A (P Q) A P Q
P Q A (P Q) A
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
36
B18: 論理演算、セット
「&」はビット論理積 (AND) です。 表現
(x&A<>0) ((x & 20 = 0) (x & 5)<> 0))
任意の自然な x に対して真です。 決定
A の可能な最大値。
(PQ)A
P: x & 20 = 0 すべてのビット (4, 2) はゼロ
Q: x & 5 = 0 すべてのビット (2, 0) はゼロです
!
x のビット (4、2、0) はゼロです!
最大 = 24 + 22 + 20 = 21
K.Yu. ポリアコフ、2015
彼らはリセットします
数ビット
で &!
http://kpolyakov.spb.ru

B18: 論理演算、セット

情報学における USE: 2016 年以降…
37
B19: 配列処理

c:=0;
for i:= 1 ~ 9 する
もし< A[i] then begin
c:= c + 1;
t:= A[i];
ペア順列
A[i]:= A; ソート時
A:=t
バブル
終わり;

K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B19: 配列処理

情報学における USE: 2016 年以降…
38
B19: 配列処理
1)
2)
3)
4)
5)
6)
6
9
9
9
9
9
9
9
6
7
7
7
7
7
7
7
6
6
6
6
6
2
2
2
2
2
2
2
1
1
1
5
5
5
5
5
5
5
1
1
1
1
0
0
0
0
3
3
3
3
3
3
3
0
4
4
4
4
4
4
4
0
8
8
8
8
8
8
8
0
c=6
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B19: 配列処理

情報学における USE: 2016 年以降…
39
B19: 配列処理
0 から 9 までのインデックスを持つ配列。
c:=0;
for i:= 1 ~ 9 する
A[i]の場合< A then begin
c:= c + 1;
t:= A[i];
A[i]:= A;
ペア順列
A:=t
終わり;
変数「c」はどのような値になりますか?
4 7 3 8 5 0 1 2 9 6
4 7 3 8 5 0 1 2 9 6
4 7 3 8 5 0 1 2 9 6
K.Yu. ポリアコフ、2015
c=2
http://kpolyakov.spb.ru

B19: 配列処理

情報学における USE: 2016 年以降…
40
B19: 配列処理

s:=0;
n:=10;
for i:=0 to n-1 do begin
s:=s+A[i]-A
終わり;


s:=A-A+A-A+A-...
+A-A+A-A+A-A
最大 = 999 - 100 = 899
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B19: 配列処理

情報学における USE: 2016 年以降…
41
B19: 配列処理
0 から 10 までのインデックスを持つ配列。
s:=0;
n:=10;
for i:=0 to n-2 do begin
s:=s+A[i]-A
終わり;
配列には 3 桁の自然数が含まれていました。
「s」の最大値はいくつですか?
s:=A-A+A-A+A-...
+A-A+A-A+A-A
最大 = 999 + 999 - 100 - 100 = 1798
1798
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B19: 配列処理

情報学における USE: 2016 年以降…
42
B20: ループと条件 (「アルゴリズムを学ぶ」)
5 桁の最小の数 x を示してください。
最初に 6 が印刷され、次に 3 が印刷されます。
a:=0;
最小と最大!
b:= 10;
readln(x);
x > 0 が始まる間
y:= x mod 10;
x:= x div 10;
33336
y > a の場合、a:= y;
もしそうなら< b then b:= y;
終わり;
writeln(a); (最大値)
writeln(b); (最小値)
!
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B20: ループと条件 (「アルゴリズムを学ぶ」)

情報学における USE: 2016 年以降…
43
B20: サイクルと条件
100 より大きい最小の数 x は何ですか?
26が印刷されます。
var x、L、M: 整数。
始める
x 奇数: gcd(x,65) = 26
readln(x);
x 偶数: gcd(x,52) = 26
L:=x; M:= 65;
L mod 2 = 0 の場合、x は 26 で割り切れます。
M:= 52;
52で割り切れない!
Lながら<>まど
gcd(104.52) = 52
104
L > M の場合
L:= L - M
答え: 130
それ以外
M:= M - L;
writeln(M);
ユークリッドのアルゴリズム!
終わり。
!
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B20: サイクルと条件

情報学における USE: 2016 年以降…
44
B21: サイクルと手順



始める

f(i)
f:= n*(n-1)+10
1
10
終わり;

2
12
readln(k);
3
16
私:= 0;
4
22
一方、f(i)< k do
5
30
36
i:= i + 1;
writeln(i);
6
40
停止: k<= f(i)
31 … 40
10
K.Yu. ポリアコフ、2015
?
k = 30 の場合は?
23 … 30
8
http://kpolyakov.spb.ru

B21: サイクルと手順

情報学における USE: 2016 年以降…
45
B21: サイクルと手順
k の異なる値の数を見つけます。
プログラムは k = 36 の場合と同じ答えを返します。
関数 f(n: 倍長整数): 倍長整数;
始める
ストップ:
f:= n*(n-1)+10
f(i-1)< k <= f(i)
終わり;
(i-1)*(i-2)+10< k <= i*(i-1)+10

i2-3i+12< k <= i2-i+10
readln(k);
私:= 0;
i=6:30< k <= 40
一方、f(i)< k do
31 … 40
i:= i + 1;
writeln(i);
答え: 10
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B21: サイクルと手順

情報学における USE: 2016 年以降…
46
B21: サイクルと手順
k の最小値を見つけます。
プログラムは k = 10 の場合と同じ答えを返します。
デフ f(n):
ストップ:
n*n*n を返す
f(i-1)< g(k) <= f(i)
デフォルト g(n):
(i-1)3< 2k+3 <= i3
2*n+3 を返す
3 < 23 <= i3
k=10:
(i-1)
k = int(入力())
i=3
私は= 1
一方、f(i)< g(k):
8 < 2k+3 <= 27
i+=1
3 … 12
印刷(i)
答え: 3
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

B21: サイクルと手順

情報学における USE: 2016 年以降…
47
B22:パフォーマー向けプログラム
1) 1 を追加
2) 2 を掛ける
2つのうちどれにいくつのプログラムがありますか
29という数字が得られ、同時に計算の軌跡
数字の 14 を含み、数字の 25 を含まない?
N奇数
K N 1
回帰式: K N
K N 1 K N / 2 N 偶数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
1
1
2
2
3
3
5
5
7
7
10
10
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
13
13
13
13
13
13
13
13
13
13
13
0
0
0
13
13
新たなスタート
K.Yu. ポリアコフ、2015
あなたはここに来られない
http://kpolyakov.spb.ru

B22:パフォーマー向けプログラム

情報学における USE: 2016 年以降…
48
C24: エラー訂正
自然数 x が読み込まれ、見つける必要があります
バイナリ表記の有効桁数。
readln(x);
c:=0;
x > 0 が始まる間
c:= c + x mod 2;
x:= x div 10
終わり;
writeln(c)
1)
2)
3)
4)
?
?
彼はどう思いますか?
いつ機能しますか
右?
x=1 のみ
無効な初期値
無効なループ条件
変数の不適切な変更
間違った結論
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C24: エラー訂正

情報学における USE: 2016 年以降…
49
C24: エラー訂正
表示するプログラムを書く必要があります
3 の倍数である数値の最大桁数。
3で割り切れる数字の場合、画面に「NO」と表示する必要があります。
-1
readln(N);
maxDigit:= N mod 10;
いつ機能しますか
N > 0 が始まる間
右?
数字:= N mod 10;
ディジット mod 3 1)=last の場合
0 の場合、数字は 3 で割り切れます
桁 > maxDigit の場合
それから
2) 最後
未満の数
maxDigit:= 希望
数字;結果
N:= N div 10;
-1
終わり;
maxDigit = 0 の場合、writeln("NO")
そうでなければ writeln(maxDigit);
?
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C24: エラー訂正

情報学における USE: 2016 年以降…
50

与えられた非負のシーケンスについて
整数、最大値を見つける必要があります
その数の要素の 2 つの積
少なくとも 8 は異なります。要素数
シーケンスは 10000 を超えません。
タスク A (2 点)。 時間は O(N2)、メモリは O(N)。
タスク B (3 点)。 時間は O(N)、メモリは O(N) です。
タスク B (4 点)。 時間は O(N)、メモリは O(1)。
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

情報学における USE: 2016 年以降…
51
C27: 難しいプログラミングの問題
タスク A (2 点)。 データは配列に格納されます。
var N: 整数;
a: 整数の配列。
i、j、最大: 整数;
始める
readln(N);
for i:=1 to N do read(a[i]);
最大:= -1;
for i:= 9 ~ N do
for j:= 1 から i-8 まで
(a[j]*a[i] > 最大) の場合
最大:= a[j]*a[i];
writeln(最大)
終わり。
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
52
C27: 難しいプログラミングの問題
タスク B (3 点)。 配列内のデータ、O(N) 時間。
i-8

a[i]
メートル
たまる!
max a[ j ] a[i] max a[ j ] a[i]
j
j
最大:= 0;
メートル:= 0;
for i:= 9 to N do begin
a > m の場合、m:= a;
もし m*a[i] > max then max:= m*a[i];
終わり;
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
53
C27: 難しいプログラミングの問題

i-8

配列に格納する
var a: 整数の配列。
バツ
配列の初期充填:
for i:=1 から 8 do read(a[i]);
プロモーション:
for i:=1 ~ 7 する
a[i]:=a;
a:=x;
K.Yu. ポリアコフ、2015
!
キューです!
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
54
C27: 難しいプログラミングの問題
タスク B (4 点)。 メモリ O(1)、時間 O(N)。
a
バツ
const d = 8; (シフト)
... (すでに最初の d 個を読みました)
最大:= 0;
メートル:= 0;
for i:=d+1 to N do begin
読み取り (x);
a > m の場合、m:= a;
m*x > max の場合、max:= m*x;
j:=1 から d-1 まで
[j]:= a;
[d]:= x;
終わり;
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
55
C27: 難しいプログラミングの問題
タスク B (4 点)。 シフトなし(キューリング)。
私は0
1
2
3
9
1
5
6
7
k
0
a
4
10
2 11
3 12
4 5
8
9
N-1
10 11 12 13 14 15 16 17 18
7
6
7
8
a:=データ[i];
for i:=0 から d-1 do read(a[i]);
for i:=d to N-1 do begin
読み取り (x);
k:= i mod d;
a[k] > m の場合、m:= a[k];
m*x > max の場合、max:= m*x;
a[k]:=x;
終わり;
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
56
C27: 難しいプログラミングの問題
2 の最大偶数積を計算する
その送信の瞬間の間の徴候
少なくとも 8 分が経過しました。
バツ
サポート
1) すべての最大
2) 最大偶数
バツ
偶数 * 任意
任意 * 偶数
K.Yu. ポリアコフ、2015
配列に格納する
(列)
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
57
C27: 難しいプログラミングの問題
for i:=d to N-1 do begin
読み取り (x);
k:= i mod d;
最大

a[k] > m の場合、m:= a[k];
if ((a[k] mod 2 = 0) および
(a[k] > mEven)) その後、mEven:= a[k];
x mod 2 = 1 の場合、開始
受け取った
奇数
mEven*x > max の場合
最大:= mEven*x;
終わり
受け取った

それ以外
m*x > max の場合、max:= m*x;
a[k]:=x;
終わり;
K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

C27: 難しいプログラミングの問題

情報学における USE: 2016 年以降…
58
結論
!
K.Yu. ポリアコフ、2015
可変性!
http://kpolyakov.spb.ru

結論

情報学における USE: 2016 年以降…
59
映画の終わり
POLYAKOV Konstantin Yurievich
技術科学博士、コンピューター サイエンスの教師
GBOU 中学校 No. 163、サンクトペテルブルク

K.Yu. ポリアコフ、2015
http://kpolyakov.spb.ru

仕様
制御測定材料
統一国家試験2016
情報学とICTの博士号

1. キム・ユースの起用

統一国家試験(以下、USEと呼ぶ)は、標準化された形式のタスク(管理測定資料)を使用して、中等教育の教育プログラムを習得した人の訓練の質を客観的に評価する形式です。

USE は、2012 年 12 月 29 日の連邦法第 273-FZ 号「ロシア連邦の教育について」に従って実施されます。

コントロール測定材料は、コンピューターサイエンスとICT、基本およびプロファイルレベルの中等(完全)一般教育の州標準の連邦コンポーネントの卒業生による開発レベルを確立することを可能にします。

情報・ICT総合国家試験の成績は、中等職業教育の教育機関及び高等専門教育の教育機関において、情報・ICTの入学試験の成績として認められる。

2. KIM USEの内容を定める文書

3. コンテンツの選択、KIM USE の構造の開発へのアプローチ

タスクの内容は、情報学および ICT コースの主なトピックに基づいて開発されており、次のテーマ ブロックにまとめられています。 「アルゴリズムの理論の要素」、「プログラミング」、「コンピュータとコンピュータネットワークのアーキテクチャ」、「数値情報の処理」、「情報を検索して保存するための技術」。
試験問題の内容は、情報学およびICTコースの主な内容、その最も重要なトピック、その中で最も重要な資料をカバーしており、学校で教えられている情報学およびICTコースのほとんどのバリエーションで明確に解釈されています。

作業には、基本レベルの標準によって提供される知識とスキルをテストする、基本レベルの複雑さの両方のタスクが含まれます。
プロファイルレベル標準によって提供される知識とスキルをテストし、複雑さが増した高レベルのタスク。 KIMバリアントのタスクの数は、一方では、主題の全学習期間にわたって習得した卒業生の知識とスキルの包括的な評価を提供する必要があり、他方では、複雑さの基準を満たす必要があります。結果の安定性、測定の信頼性。 この目的のために、KIM では、短い回答と詳細な回答の 2 種類のタスクが使用されます。 試験作業の構造は、さまざまな種類と種類のタスク、3 つのレベルの複雑さ、3 つの異なるレベルでの知識とスキルのテストの最適なバランスを提供します: 再現、標準的な状況での適用、新しい状況での適用。 試験問題の内容は、科目の内容のかなりの部分を反映しています。 これにより、テスト結果の妥当性と測定の信頼性が保証されます。

4. キムユースの仕組み

試験問題の各バージョンは 2 つの部分で構成され、形式と複雑さのレベルが異なる 27 のタスクが含まれています。

パート 1 には、23 の記述問題が含まれています。

試験問題では、以下のタイプの短答問題が提案されています。

  • 提案された回答リストから 1 つまたは複数の正しい回答を選択して記録するためのタスク。
  • 特定の値を計算するためのタスク;
  • 特定のアルゴリズムに従って文字列として提示される、正しいシーケンスを確立するためのタスク。

パート 1 のタスクに対する答えは、自然数または一連の文字 (文字と数字) の形式で、スペースやその他の区切り記号なしで書かれた対応するエントリによって与えられます。

パート 2 には、4 つのタスクと詳細な回答が含まれています。

パート 1 には、基本、上級、高難易度の 23 のタスクが含まれています。 この部分には、短い答えを持つタスクが含まれており、数字または文字列の形で独立した定式化と答えの記録を意味します。 タスクは、すべてのテーマ ブロックのマテリアルをチェックします。 パート 1 では、12 のタスクが基本レベルに属し、10 のタスクがより複雑なレベルに属し、1 つのタスクが高レベルの複雑さに属します。

パート 2 には 4 つのタスクが含まれており、最初のタスクはより複雑なレベルのものであり、残りの 3 つのタスクはより複雑なレベルのものです。 この部分のタスクには、詳細な回答を任意の形式で書くことが含まれます。