1. Валя шифрует русские слова (последовательности букв), записывая вместо каждой буквы её код:
А | Д | К | Н | О | С |
---|---|---|---|---|---|
01 | 100 | 101 | 10 | 111 | 000 |
Некоторые цепочки можно расшифровать не одним способом. Например, 00010101 может означать не только СКА, но и СНК. Даны три кодовые цепочки:
100101000
100000101
0110001
Найдите среди них ту, которая имеет только одну расшифровку, и запишите в ответе расшифрованное слово.
2. В программе «:=» обозначает оператор присваивания, знаки «+», «-», «*» и «/» — соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики. Определите значение переменной a после выполнения алгоритма:
а := 8
b := 3
b := a/2*b
a := 2*а + 3*b
В ответе укажите одно целое число — значение переменной a.
3. Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач цел s, n s := 2 нц для n от 2 до 5 s := s*2 + n кц вывод s кон | DNM n, s AS INTEGERs = 2
FOR n = 2 TO 5
s = s*2 + n
NEXT n
PRINT s
| Var s, n: integer;
Begin
s := 2;
For n := 2 to 5 do
s := s*2 + n;
Writeln(s);
End.
|
4. В таблице Dat хранятся данные о количестве самолётов, отправляющихся из аэропорта города на юг в первой декаде августа (Dat[1] — количество самолётов первого числа, Dat[2] — количество самолётов второго числа и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач
целтаб Dat[1:10] цел k, m, day
Dat[1] := 2
Dat[2] := 2
Dat[3] := 3
Dat[4] := 3
Dat[5] := 4
Dat[6] := 4
Dat[7] := 5
Dat[8] := 5
Dat[9] := 6
Dat[10] := 6
day:=1; m := Dat[1]нц для k от 2 до 10 если Dat[k] >= m то m:= Dat[k] day := k все
КЦ
вывод day
КОН
|
DIM Dat(10) AS INTEGER
Dat[1] = 2
Dat[2] = 2
Dat[3] = 3
Dat[4] = 3
Dat[5] = 4
Dat[6] = 4
Dat[7] = 5
Dat[8] = 5
Dat[9] = 6
Dat[10] = 6
day = 1: m = Dat(1)
FOR k = 2 TO 10
IF Dat(k) >= m THEN
m = Dat(k)day = k
END IF
NEXT k
PRINT day
END
|
Var k, m, day: integer;
Dat: array[1...10] of integer;
Begin
Dat[1] := 2;
Dat[2] := 2;
Dat[3] := 3;
Dat[4] := 3;
Dat[5] := 4;
Dat[6] := 4;
Dat[7] := 5;
Dat[8] := 5;
Dat[9] := 6;
Dat[10] := 6;
day:=1; m := Dat[1];for k := 2 to 10 do if Dat[k] >= m then begin m:= Dat[k]; day := k; end; write(day);
End.
|
Комментариев нет:
Отправить комментарий