Домашнее задание

A1

A2

A3

Дан фрагмент таблицы истинности выражения F.

x1

x2

x3

x4

x5

x6

x7

x8

x9

x10

F

0

1

1

0

1

1

0

1

1

1

1

1

0

1

1

0

0

1

1

1

0

0

1

0

0

0

1

1

0

0

1

0

1

Какое выражение соответствует F?

1)  (x1 ? x2) ? (x3 ? x4) ? x5 ? x6 ? x7 ? x8 ? x9 ? x10

2)  (x1 ? x2) ? (x3 ? x4) ? x5 ? x6 ? x7 ? x8 ? x9 ? x10

3)  (x1 ? x2) ? (x3 ? x4) ? x5 ? x6 ? x7 ? x8 ? x9 ? x10

4)  (x1 ? x2) ? (x3 ? x4) ? x5 ? x6 ? x7 ? x8 ? x9 ? x10

A4

A5

A6

A7

В ячейки диапазона C2:F6 электронной таблицы записаны числа, как показано на рисунке.

А

В

С

D

Е

F

1

2

1

10

100

1000

3

2

20

200

2000

4

3

30

300

3000

5

4

40

400

4000

5

5

50

500

5000

В ячейке B3 записали формулу =C$5 + $D4. После этого ячейку B3 скопировали в ячейку C1. Какое число будет показано в ячейке C1?

Примечание: знак $ используется для обозначения абсолютной адресации.

1) 34                2) 50                3) 120                4) 302

A8

A9

A10

На числовой прямой даны два отрезка: P = [20,70] и Q = [5,32]. Выберите из предложенных вариантов такой отрезок A, что логическое выражение

((x ? P) ? (x ? A) ) > ((x ? Q) ? (x ? A) )

тождественно истинна, то есть принимает значение 1 при любом значении переменной х.

       1) [15, 35]                2) [20, 40]        3) [40, 65]        4) [75, 88]

A11

A12

В программе описан одномерный целочисленный массив с индексами от 0 до 12. Ниже представлен фрагмент программы, обрабатывающей данный массив:

s := 0;

n := 12;

for i:=0 to n do begin

  if A[n–i]–A[i] = A[i] then

  s:=s+3*A[i];

end;

В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 т. е. A[0] = 0, A[1] = 2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?        

       1) 12        2) 18        3) 24        4) 156

A13

B1

B2

B3

B4

B5

B6

Дан рекурсивный алгоритм:

procedure F(n: integer);

begin

writeln('*');

if n > 0 then begin

  writeln('*');

  F(n-2);

  F(n-2);

  F(n div 2);

end

end;

Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?

B7

В системе счисления с основанием N запись числа 58 оканчивается на 2, а запись числа 108 – на 3. Чему равно число N?

B8

Получив на вход число х, этот алгоритм печатает два числа К и R. Укажите наименьшее из таких чисел х, при вводе которых алгоритм печатает сначала 4, а потом 3.

var x, i, K, R, y: integer;

begin

  readln(x);

  K := 0; R := 9;

  y := x mod 10;

  while x > 0 do begin

  K := K + 1;

  if R > x mod 10 then

  R := x mod 10;

  x := x div 10

  end;

  R := y - R;

  writeln(K); writeln(R)

end.

B9

На рисунке – схема дорог, связывающих города A, B, C, D, E, F, G, H, K, L, M, N, Z. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город  Z?

B10

B11

B12

B13

B14

Определите, какое число будет напечатано в результате выполнения следующего алгоритма:

var a, b, t, N :integer;

Function F(x: integer):integer;

begin

  F := 16*(6-x)*(6-x)-450;

end;

BEGIN

  a := -20; b := 20;

  N := 0;

  for t := a to b do begin

  if (F(t) >= 0) then begin

  N := N+1;

  end;

  end;

  write(N);

END.

B15

C1

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа.  Программист торопился и написал программу неправильно: 

var N: longint;

  count: integer;

begin

  readln(N);

  count := 1;

  while N > 1 do begin

  count := count + 1;

  N := N div 10;

  end;

  writeln(count);

end.

Последовательно выполните следующее:

Определите, что выведет программа при вводе числа 123. Укажите одно число, для которого программа выводит неверный результат. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка; укажите, как надо исправить ошибку -  приведите правильный вариант строки.

C2

Дан массив, содержащий 70 неотрицательных целых чисел. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наименьшую нечётную сумму двух соседних элементов массива. Гарантируется, что в массиве есть соседние элементы с нечётной суммой. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

const N=70;

var

  a: array [1..N] of integer;

  i, j, x, y: integer;

begin

for i:=1 to N do

readln(a[i]);

end.

Объявляем массив A из 70 элементов.

Объявляем целочисленные переменные I, J, X, Y. В цикле от 1 до 70 вводим элементы массива A с 1-го по 70-й.

...