Перепишите следующую программу без ошибок и определите какое значение будет иметь переменная р после

Обновлено: 07.07.2024

Нажмите, чтобы узнать подробности

Итоговая контрольная работа составлена по методическим материалам автора учебника Семакина И.Г.. Содержит 2 варианта. Вопросы с выбором ответа, на установку соответствия, на поиск ошибок в готовой программе и написание программы самостоятельно. В контрольной отражены все темы учебника. Работа рассчитана на 1 час.

Просмотр содержимого документа
«Итоговая контрольная работа 10 класс вариант 1»

Итоговая контрольная работа 10 класс

Продолжите фразу: «наука, изучающая законы и методы хранения, передачи и обработки информации с использованием компьютеров называется…»

В) теория информации

Какие абстрактные понятия науки позволили сформировать три точки зрения на изучения окружающего нас мира

А) вещество, энергия

Б) энергия, информация

В) вещество, энергия, информация

Оперирование исходной информацией по определенным правилам с целью получения новой информации – это…

А) обработка информации

Б) поиск информации

В) кодирование информации

Закодируй слова с помощью кода Цезаря. Установите соответствия.

1) БУКВА а) ХПСНБ

2) ФОРМА в) ВФЛГБ

3) БЛЕСК б) ЧЙХСБ

4) ЦИФРА г) ГПСПО

5) ВОРОН д) ВМЁТЛ

Полное количество символов в алфавите определяется как…

А) Информационный вес символа

Б) Объем информации

В) Мощность алфавита

Каков информационный вес одного символа компьютерного алфавита, мощность которого равна 256?

Десятичное число 28 в двоичной системе счисления равно

Двоичное число 10110 в десятичной системе счисления равно

В программе на языке Паскаль:

А) точка с запятой должна быть обязательно поставлена после каждого оператора

Б) точка с запятой должна быть обязательно поставлена между операторами

В) точки с запятой несут только эстетическую нагрузку и поэтому могут ставиться или не ставиться по желанию программиста

Г) знак «;» не обозначает никакого оператора, а служит только разделителем операторов


Закодируй слова с помощью кода Цезаря. Установите соответствия.

1) БУКВА а) ХПСНБ

2) ФОРМА в) ВФЛГБ

3) БЛЕСК б) ЧЙХСБ

4) ЦИФРА г) ГПСПО

5) ВОРОН д) ВМЁТЛ

  • а) ХПСНБ
  • в) ВФЛГБ
  • б) ЧЙХСБ
  • г) ГПСПО
  • д) ВМЁТЛ
Вопрос 5

Полное количество символов в алфавите определяется как…

  • Информационный вес символа
  • Объем информации
  • Мощность алфавита
Вопрос 6
Вопрос 7

Каков информационный вес одного символа компьютерного алфавита, мощность которого равна 256?

Вопрос 8

Десятичное число 28 в двоичной системе счисления равно

Вопрос 9

Двоичное число 10110 в десятичной системе счисления равно

Вопрос 10

В программе на языке Паскаль:

  • точка с запятой должна быть обязательно поставлена после каждого оператора
  • точка с запятой должна быть обязательно поставлена между операторами
  • точки с запятой несут только эстетическую нагрузку и поэтому могут ставиться или не ставиться по желанию программиста
  • знак «;» не обозначает никакого оператора, а служит только разделителем операторов
Вопрос 11

Определите значение переменной А после выполнения следующего алгоритма:


Вопрос 12

Определить тип синтаксической ошибки в программе на языке Паскаль

И запиши их правильно.


Вопрос 13

Дан фрагмент программы на языке Паскаль. Сколько раз выполнится тело цикла?

while p<16 do

Вопрос 14

Перепишите следующую программу без ошибок и определите какое значение будет иметь переменная P после выполнения программы, если с клавиатуры введено число 7?

Иасправь ошибки в строчках.


Вопрос 15

Запишите число, которое будет напечатано в результате выполнения следующей программы. Для Вашего удобства программа представлена на пяти языках программирования.

Проверяемые элементы содержания: Знание основных конструкций языка программирования, понятия переменной, оператора присваивания



Задание демонстрационного варианта 2022 года ФИПИ
Плейлист видеоразборов задания на YouTube:

6_1 new: Определите, при каком наименьшем введённом значении переменной s программа выведет число 256 (с сайта К. Полякова со ссылкой на М.В. Кузнецову):

var k,n,p,l,s,x:integer; var s, n: integer; begin readln (s); n := 1; while s <=45 do begin s := s + 4; n := n * 2 end; writeln(n) end.

s = int(input()) n = 1 while s <= 45: s = s + 4 n = n * 2 print( n )

Ответ: 3

begin var s0 := 1; while true do // внешний цикл, бесконечный begin var s := s0; // --- код из условия задания --- // var n := 1; while s <= 45 do // внутренний цикл из задания begin s := s + 4; n := n * 2; end; // --- конец кода из условия задания --- // if n = 256 then // если найдено, то выводим соответствующее s begin print(s0); break; // выход из бесконечного цикла end; s0 := s0 + 1; // end; end.

6_2 new: Определите, при каком наибольшем введённом значении переменной s программа выведет число 96 (с сайта К. Полякова № 68 со ссылкой на М.В. Кузнецову):

var s, n: integer; begin readln (s); n := 3; while s <= 51 do begin s := s + 7; n := n * 2 end; writeln(n) end.

s = int(input()) n = 3 while s <= 51: s = s + 7 n = n * 2 print( n )

Ответ: 23

begin var s1 := 50; while true do // внешний цикл, бесконечный begin var s := s1; // --- код из условия задания --- // var n := 3; while s <= 51 do // внутренний цикл из задания begin s := s + 7; n := n * 2; end; // --- конец кода из условия задания --- // if n = 96 then // если найдено, то выводим соответствующее s begin print(s1); break; // выход из бесконечного цикла end; s1 := s1 - 1; // end; end.

6_3 new: (с сайта К. Полякова № 83):

Сколько существует различных значений d , оканчивающихся на 8, при вводе которых эта приведенная программа выведnет число 50?

var S, N, d: integer; begin readln(d); S := 15; N := 10; while S <= 2400 do begin S := S + d; N := N + 5; end; writeln(N); end.

d = int(input()) S = 15 N = 10 while S <= 2400: S = S + d N = N + 5 print(N)

var x, L, M: longint; begin readln(x); L := x-16; M := x+16; while L <> M do if L > M then L := L - M else M := M – L; writeln(M); end.

Ответ: 4

var S, N: integer; begin S := 15; N := 10; var counter := 0; // цикл для перебора значений d for var d := 1 to 2400 do begin // из условия задачи while S <= 2400 do begin S := S + d; N := N + 5; end; // проверка условий: увеличение счетчика if (d mod 10 = 8) and (N = 50) then begin writeln($''); Inc(counter); end; // устанавливаем первоначальные значения S := 15; N := 10; end; writeln('Результат = ', counter); end.

Решения подобных заданий прошлых лет

Определить, какое число пропущено

6_14: ЕГЭ по информатике 2020 (Тематические тренировочные задания, 2020 г., Самылкина Н.Н., Синицкая И.В., Соболева В.В., задание № 2):


Сопоставьте формулу:

и программу, предназначенную для расчета по данной формуле. Программа написана правильно, а в формуле допущена ошибка.

Определите, где и какое число в формуле пропущено?

var k,n,p,l,s,x:integer; begin writeln('введите n='); readln(n); writeln('введите x='); readln(x); s:=0; p:=1; l:=x; For k:=1 to n do begin p:=p * k; s:=s + 3*l/p; l:=l*x; end; writeln('S=',S:5:2); end.

INPUT "введите n=", n INPUT "введите x=", x s=0: p=1 l=x FOR k:=1 to n p = p * k: s = s + 3*l/p l = l*x NEXT k PRINT "S=",S END

n = int(input('введите n=')) x = int(input('введите x=')) s=0 p=1 l=x For k in range (1,n+1): p*= k s+=3*l/p l*=x print('S=',S)

Ответ: 3



Фактически она обозначает: сумма x k / k! для всех k, начиная от 1 до n.

Простые задания с двумя линейными непересекающимися функциями

ЕГЭ по информатике 2017 задание ФИПИ вариант 15 (Крылов С.С., Чуркина Т.Е.):

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

var k,s:integer; begin s:=512; k:=0; while s<2048 do begin s:=s+64; k:=k+1; end; write(k); end.

DIM S, K AS INTEGER S = 512 K = 0 WHILE S < 2048 S = S + 64 K = K + 1 WEND PRINT K

s = 512 k = 0 while s < 2048: s = s + 64 k = k + 1 print(k)

Ответ: 24

Решение 6 задания ЕГЭ по информатике (контрольный вариант № 2 экзаменационной работы 2018 года, С.С. Крылов, Д.М. Ушаков):

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

var s, i: integer; begin i := 1; s := 105; while s > 5 do begin s := s - 2; i := i + 1 end; writeln(i) end.

DIM S, I AS INTEGER I = 1 S = 105 WHILE S > 5 S = S - 2 I = I + 1 WEND PRINT I

i = 1 s = 105 while s > 5: s = s - 2 i = i + 1 print(i)

Ответ: 51

  • Рассмотрим алгоритм. Цикл зависит от переменной s, которая уменьшается каждую итерацию цикла на 2.
  • В цикле также присутствует счетчик - переменная i, которая увеличится на единицу ровно столько раз, сколько итераций (проходов) цикла. Т.е. в результате выполнения программы распечатается значение, равное количеству итераций цикла.
  • Поскольку условие цикла зависит от s, нам необходимо посчитать, сколько раз сможет s уменьшиться на 2 в цикле. Для удобства подсчета изменим условие цикла на while s > 0 ; так как мы s уменьшили на 5, соответственно, изменим и 4-ю строку на s:=100 (105-5):
  • Для того чтобы посчитать, сколько раз выполнится цикл, необходимо 100 разделить на 2, т.к. s каждый шаг цикла уменьшается на 2:
  • В 3-й строке видим, что начальным значением i является 1, т.е. в первую итерацию цикла i = 2. Значит, нам необходимо к результату (50) прибавить 1.
  • Это значение и будет выведено на экран.
6 задание. Демоверсия ЕГЭ 2018 информатика:

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

var s, n: integer; begin s := 260; n := 0; while s > 0 do begin s := s - 15; n := n + 2 end; writeln(n) end.

DIM S, N AS INTEGER S = 260 N = 0 WHILE S > 0 S = S - 15 N = N + 2 WEND PRINT N

s = 260 n = 0 while s > 0: s = s - 15 n = n + 2 print(n)

Ответ: 36

10 Тренировочных вариантов экзаменационных работ для подготовки к ЕГЭ по информатике 2017, задание 8, вариант 1 (Ушаков Д.М.):

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

var k,s: integer; begin k:=1024; s:=50; while s>30 do begin s:=s-4; k:=k div 2; end; write(k) end.

DIM S, K AS INTEGER S = 50 K = 1024 WHILE S > 30 S = S - 4 K = K \ 2 WEND PRINT K

s = 50 k = 1024 while s > 30: s = s - 4 k = k // 2 print(k)

Ответ: 32

Решение 6 задания ЕГЭ по информатике 2018 (диагностический вариант экзаменационной работы 2018 года, С.С. Крылов, Д.М. Ушаков, Тренажер ЕГЭ):

Определите значение переменной c после выполнения следующего фрагмента программы. Ответ запишите в виде целого числа.

a:=-5; c:=1024; while a<>0 do begin c:=c div 2; a:=a + 1 end;

A = -5 C = 1024 WHILE A <> 0 C = C \ 2 A = A + 1 WEND

a = -5 c = 1024 while a != 0: c = c // 2 a = a + 1

int a = -5, c = 1024; while (a != 0) < c = c / 2; a = a + 1; >

Ответ: 32

6_12: Решение 6 (8) задания (источник: вариант 25, К. Поляков):

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

var n, s: integer; begin n := 1; s := 0; while s <= 365 do begin s := s + 36; n := n * 2 end; write(n) end.

N = 1 S = 0 WHILE S <= 365 S = S + 36 N = N * 2 WEND PRINT N

n = 1 s = 0 while s <= 365: s = s + 36 n = n * 2 print(n)

Ответ: 2048

  • с каждым шагом цикла значение s увеличивается на 36, пока не станет больше 365; а значение n увеличивается в 2 раза, так что n=2 k , где k – это число итераций цикла;
  • поскольку s увеличивается на 36, конечное значение s должно быть равно 0+36*k , достигается при k=11 (и s=36*11=396);
  • тогда n = 2 k = 2 11 = 2048 .

Сумма или разность двух линейных функций (while s - n или while s + n)

Разбор 6 (раньше №8) задания ЕГЭ вариант № 1, 2019 Информатика и ИКТ Типовые экзаменационные варианты (10 вариантов), С.С. Крылов, Т.Е. Чуркина:

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

var s, n: integer; begin s := 522; n := 400; while s - n > 0 do begin s := s - 20; n := n - 15 end; write(s) end.

DIM S, N AS INTEGER S = 522 N = 400 WHILE S - N > 0 S = S - 20 N = N - 15 WEND PRINT S

s = 522 n = 400 while s - n > 0: s = s - 20 n = n - 15 print(s)

Ответ: 22

  • В алгоритме присутствует цикл. Для того, чтобы разобраться в алгоритме, выполним трассировку начальных итераций цикла:
    № шагаусловие циклаsn
    1522-400=122
    122 > 0
    522-20=502400-15=385
    2502-385=117
    117 > 0
    502-20=482385-15=370
    3482-370=112
    112 > 0
    ..
  • Видим, что в условии разница между значениями составляет 5:
  • Таким образом, чтобы определить количество итераций (шагов) цикла, необходимо значение условия цикла, полученное в первой итерации, разделить на 5:

Это значит, что на 24-й итерации цикла переменные s и n получили такие значения, после которых условие еще осталось истинным: 2 > 0. На 25-м шаге выполняется это условие:

ЕГЭ по информатике задание 6.13 (источник: вариант 59, К. Поляков)

Запишите число, которое будет выведено в результате работы программы:

var s, n: integer; begin s := 10; n := 55; while n > s do begin s := s + 1; n := n - 1 end; writeln(n) end.

DIM S, N AS INTEGER S = 10 N = 55 WHILE N > S S = S + 1 N = N - 1 WEND PRINT N

s = 10 n = 55 while n > s: s = s + 1 n = n - 1 print(n)

Ответ: 32

  • Для условия цикла - перенесем влево:
  • Согласно начальным значениям, имеем:
  • Запишем, как будет изменяться условие цикла в каждой итерации (в каждом шаге):
  • Т.е. условие цикла будет истинным пока возможно вычитать 2. Сколько раз можно вычесть два из 45?
  • Соответственно, получили 23 итерации цикла.
  • Изначально n = 55. С каждой итерацией выполнялось n-1. Посчитаем n:

Поиск наименьшего/наибольшего целого введенного числа d

При каком наименьшем целом введенном числе d после выполнения программы будет напечатано число 192?

var k,s,d: integer; begin readln (d); s:=0; k:=0; while k < 200 do begin s:=s+64; k:=k+d; end; write(s); end.

DIM S, K, D AS INTEGER INPUT D S = 0 K = 0 WHILE K < 200 S = S + 64 K = K + D WEND PRINT S

d = int (input ()) s = 0 k = 0 while k < 200: s = s + 64 k = k + d print(s)

Ответ: 67

  • Цикл зависит от переменной k, которая каждую итерацию цикла увеличивается на значение d (вводимое). Цикл закончит "работу", когда k сравняется с 200 или превысит его (k >= 200).
  • Результатом программы является вывод значения переменной s. В цикле s увеличивается на 64.
  • Так как по заданию необходимо, чтобы вывелось число 192, то число повторов цикла определим так:
  • Так как в цикле k увеличивается на значение d, а повторов цикла 3 (при этом цикл завершается при k>=200), составим уравнение:
  • Поскольку число получилось нецелое, то проверим и 66 и 67. Если мы возьмем 66, то:

т.е. цикл после трех прохождений еще продолжит работу, что нам не подходит.

ЕГЭ по информатике задание 6.9 (источник: вариант 37, К. Поляков со ссылкой на О.В. Гасанова)

Запишите через запятую наименьшее и наибольшее значение числа d, которое нужно ввести, чтобы после выполнения программы было напечатано 153?

var n, s, d: integer; begin readln(d); n := 33; s := 4; while s <= 1725 do begin s := s + d; n := n + 8 end; write(n) end.

DIM S, N, D AS INTEGER INPUT D N = 33 S = 4 WHILE S <= 1725 S = S + D N = N + 8 WEND PRINT N

d = int (input ()) n = 33 s = 4 while s <= 1725: s = s + d n = n + 8 print(n)

Ответ: 115, 122

  • Цикл программы зависит от значения переменной s, которая в цикле постоянно увеличивается на значение d (d вводится пользователем в начале программы).
  • Кроме того, в цикле переменная n увеличивается на 8. Значение переменной n выводится на экран в конце программы, т.е. по заданию n к концу программы должно n = 153.
  • Необходимо определить количество итераций цикла (прохождений). Так как начальное значение n = 33, а в конце оно должно стать 153, в цикле увеличиваясь на 8, то сколько раз 8 "поместится" в 120 (153 - 33)? :
  • Как мы определили, цикл зависит от s, которая в начале программы s = 4. Для простоты работы примем, что s = 0, тогда изменим и условие цикла: вместо s сделаем s (1725-1721)
  • Найдем d. Так как цикл выполняется 15 раз, то необходимо найти такое целое число, которое при умножении на 15 возвращало бы число большее 1721:
  • 115 - это наименьшее d при котором n станет равным 153 (за 15 шагов цикла).
  • Найдем наибольшее d. Для этого надо найти такое число, которое соответствует неравенствам:
  • Найдем:
  • Наибольшее d= 122

Усложненные задания с двумя линейными функциями

ЕГЭ по информатике задание 6.6 (источник: вариант 36, К. Поляков)

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

var s, n: integer; begin s := 0; n := 0; while 2*s*s < 123 do begin s := s + 1; n := n + 2 end; writeln(n) end.

DIM S, N AS INTEGER S = 0 N = 0 WHILE 2*S*S < 123 S = S + 1 N = N + 2 WEND PRINT N

s = 0 n = 0 while 2*s*s < 123: s = s + 1 n = n + 2 print(n)

Ответ: 16

  • В цикле переменная s постоянно увеличивается на единицу (работает как счетчик), а переменная n в цикле увеличивается на 2.
  • В результате работы программы на экран выводится значение n.
  • Цикл зависит от s, причем работа цикла завершится когда 2 * s 2 >= 123.
  • Необходимо определить количество прохождений цикла (итераций цикла): для этого определим такое наименьшее возможное s, чтобы 2 * s 2 >= 123:

Либо просто нужно было бы найти такое наименьшее возможное четное число >= 123, которое при делении на 2 возвращало бы вычисляемый корень числа:

Арифметическая и геометрическая прогрессия

ЕГЭ по информатике задание 6.10 (источник: вариант 3, К. Поляков)

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

var k, s: integer; begin s:=3; k:=1; while k < 25 do begin s:=s+k; k:=k+2; end; write(s); end.

DIM S, K AS INTEGER S = 3 K = 1 WHILE K < 25 S = S + K K = K + 2 WEND PRINT S

s = 3 k = 1 while k < 25: s = s + k k = k + 2 print(s)

Ответ: 147

  • Результатом программы является вывод значения s.
  • В цикле s меняется, увеличиваясь на k, при начальном значении s = 3.
  • Цикл зависит от k. Выполнение цикла завершится при k >= 25. Начальное значение k = 1.
  • В цикле k постоянно увеличивается на 2 -> значит, можно найти количество итераций цикла.
  • Количество итераций цикла равно:

(т.к. k изначально равнялось 1, то в последнее, 12-е прохождение цикла, k = 25; условие цикла ложно)

где a1 - первый член прогрессии,
d - разность,
n - количество членов прогрессии (в нашем случае - кол-во итераций цикла)

Государственный выпускной экзамен ГВЭ 2019 (информатика ГВЭ ФИПИ, № 15):

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

var n, s: integer; begin n := 1; s := 0; while n <= 1000 do begin s := s + n; n := n * 2 end; write(s) end.

DIM N, S AS INTEGER N = 1 S = 0 WHILE N <= 1000 S = S + N N = N * 2 WEND PRINT S

n = 1 s = 0 while n <= 1000: s = s + n n = n * 2 print(s)

Читайте также: