Begin
s:= 20;
n:= 0;
while 150 < s*s do begin
s:= s - 1;
n:= n + 3
end;
Writeln(n)
End.
2) Запишите число, которое будет выведено в результате работы программы:
var s, n: integer;
Begin
s:= 15;
n:= 99;
while n > s do begin
s:= s + 3;
n:= n - 2
end;
Writeln(n)
End.
3) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 1, 2, 4, 3, 5, 6, 8, 7, 3, 4, т.е. A[0]=1, A[1]=2 и т.д. Определите значение переменной s после выполнения следующего фрагмента программы:
s:= 0;
for i:=1 to 9 do
if A[i-1] < A[i] then begin
A[i]:= A[i-1] + 1;
s:= s + 1
End
4) Фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 4, 2, 7, 4, 3, 1, 2, 6 (т.е. A[0] = 3, A[1] = 5, …, A[9] = 6). Определите значение переменной s после выполнения фрагмента.
N:= 9;
s:= 0;
for i:=0 to N do begin
if A[i] < A[N] then begin
A[i]:= A[i] + 1;
A[N]:= A[N] – 1;
s:= s + 1
End
end;
5) Ниже приведён алгоритм. Укажите наименьшее из таких чисел , при вводе которого алгоритм напечатает четырёхзначное число.
var x, d, x0, N: longint;
Begin
readln(x);
x0:= x; N:= 0;
while x > 0 do begin
d:= x mod 2;
N:= 10*N + d;
x:= x div 2
end;
N:= N + x0;
writeln(N);
End.
6) Укажите наименьшее натуральное число, при вводе которого эта программа напечатает сначала 1, потом – 4.
var x, a, b: longint;
Begin
readln(x);
a:= 0; b:= 0;
while x > 0 do begin
if x mod 2 = 0 then
a:= a + 1
Else
b:= b + x mod 6;
x:= x div 6;
end;
writeln(a); write(b);
End.
7) Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает сначала 7, а потом – 12.
var x, a, b: longint;
Begin
readln(x);
a:= 0; b:= 1;
while x > 0 do begin
if x mod 2 > 0 then
a:= a + x mod 12
Else
b:= b * (x mod 12);
x:= x div 12;
end;
writeln(a); write(b);
End.
8) Определите, какое число выведет эта программа:
var i: integer;
function f(n: integer): integer;
Begin
f:= n*n*n;
end;
function g(n: integer): integer;
Begin
g:= 100*n*n + 50;
end;
Begin
i:= 1;
while f(i) < g(i) do
i:= i*2;
Writeln(i)
End.
9) Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x:integer):integer;
Begin
F:= abs(abs(x-3)+abs(x+3)-10) + 8
end;
Begin
a:= -20; b:= 20;
M:= a; R:= F(a);
for t:= a to b do begin
if (F(t)<=R) then begin
M:= t;
R:= F(t)
End
end;
write(M+R);
End.
10) Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a, b, t, M, R:integer;
function F(x:integer):integer;
Begin
if x>0 then
F:= (x*x-11)*(x*x-11) + 11
Else
F:= (x*x-7)*(x*x-7) + 11
end;
Begin
a:= -9; b:= 9;
M:= a; R:= F(a);
for t:= a to b do begin
if F(t) <= R then begin
M:= t;
R:= F(t)
End
end;
write(M+R);
End.
11) Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Вот она:
var x, y: real;
Begin
readln(x, y);
if y >= x then
if y >= 0 then
if y <= 2-x*x then
Write('принадлежит')
Else
write('не принадлежит');
End.
Последовательно выполните следующее: 1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. 2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
12) Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых оба числа делятся на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 6; 2; 9; –3; 6 – ответ: 2.
Паскаль | Алгоритмический язык |
const N = 20; var a: array [1..N] of integer; i, j, k: integer; begin for i:= 1 to N do readln(a[i]); ... end. | алг нач цел N = 20 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон |
Си | |
#include <stdio.h> #define N 20 int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0; } |
ЕГЭ №14
1) Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Чертёжнику был дан для исполнения следующий алгоритм:
Сместиться на (32, 20)
Повтори N раз
Сместиться на (7, b)
Сместиться на (a, 13)
конец
Сместиться на (9, 62)
Определите минимальное натуральное значение N > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку?
2) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
заменить (v, w)
нашлось (v)
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось (222)
ТО заменить (222, 8)
ИНАЧЕ заменить (888, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 65 идущих подряд цифр 8? В ответе запишите полученную строку.
3) Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F1)?
A | B | C | D | E | F |
1) 22 2) 19 3) 15 4) 12
ПОКА снизу свободно ИЛИ справа свободно
ПОКА справа свободно
Вправо
КОНЕЦ ПОКА
Вниз
КОНЦЕ ПОКА