
1. Прибавь 1
2. Сделай чётное
3. Сделай нечётное
Первая из них увеличивает на 1 число на экране, вторая умножает это число на 2, третья переводит число x в число 2x + 1. Например, вторая команда переводит число 10 в число 20, а третья переводит число 10 в число 21. Программа для исполнителя – это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 16?
В14
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a, b, t, N, Z :integer;
Function F(x: integer):integer;
begin
F := 2*(x-5)*(x-5)+4;
end;
BEGIN
a := -10; b := 10;
Z := F(a);
N := 0;
for t := a to b do begin
if (F(t) <Z) then begin
N := N+1;
Z:=F(t);
end;
end;
write(N);
END.
В15
Сколько различных решений имеет система уравнений
(X1 X2) (X2 X3) = 1
(X2 X3) (X3 X4) = 1
...
(X5 X6) (X6 X7) = 1
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-й.
...
C3
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в три раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 17 или 45 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 75. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 75 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 74.
1. При каких S: 1а) Петя выигрывает первым ходом; 1б) Ваня выигрывает первым ходом?
2. Назовите два значения S, при которых Петя может выиграть своим вторым ходом?
3. Назовите два значения S, при которых Ваня выигрывает своим первым или вторым ходом?