Решу ЕГЭ и Незнайка объединились,
чтобы запустить свои курсы ЕГЭ в Тик-Ток формате. Никаких скучных вебинаров, только залипательный контент!
Готовься к ЕГЭ в Тик-Ток формате
«Незнайка» и «Решу ЕГЭ» запускают свои курсы подготовки. Короткие видео, много практики и нереальная польза!
Задание № 12565
Определите, что будет напечатано в результате работы следующей программы. Текст программы приведен на трех языках программирования.
Алгоритмический язык
Рассмотрим вариант на Паскаль. Т.к. цикл for будет выполняться от k=5 до k=12, он пройдет 8 раз, т.е. тело внутри цикла будет выполнено ровно 8 раз
ДАЮ 100 БАЛЛОВ тому,кто все решит
1. В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Var k, m: integer;
Dat: array[1..10] of integer;
Begin
Dat[1] := 7; Dat[2] := 9;
Dat[3] := 10; Dat[4] := 5;
Dat[5] := 6; Dat[6] := 7;
Dat[7] := 9; Dat[8] := 8;
Dat[9] := 6; Dat[10] := 9;
m := 0;
for k := 1 to 10 do
if Dat[k] >8 then begin
m := m + Dat[k]
end;
writeln(m)
End.
Ответ:
2. Школьница делала лабораторную работу по физике, в ходе которой измерила 10 раз силу тока и записала показания амперметра в таблицу Tok (Tok[1] – результат первого измерения, Tok[2] – второго и т. д.). Определите, какое
число будет напечатано в результате работы следующей программы.
Var k, m: integer;
Tok: array[1..10] of integer;
Begin
Tok[1] := 10; Tok[2] := 14;
Tok[3] := 15; Tok[4] := 4;
Tok[5] := 12; Tok[6] := 6;
Tok[7] := 3; Tok[8] := 5;
Tok[9] := 5; Tok[10] := 10;
m := 0;
For k := 1 to 10 Do
If Tok[k] > 6 Then Begin
m := m + 2;
End;
Writeln(m);
End.
Ответ:
3. В таблице Dat хранятся данные ежедневных измерений количества осадков за неделю в миллиметрах (Dat[1] – данные за понедельник, Dat[2] – за вторник и т.д.). Определите, что будет напечатано в результате выполнения
следующего алгоритма.
var k, day: integer;
Dat: array[1..7] of integer;
begin
Dat[1] := 14; Dat[2] := 10;
Dat[3] := 0; Dat[4] := 15;
Dat[5] := 0; Dat[6] := 15;
Dat[7] := 10;
day := 0;
for k := 1 to 7 do
if Dat[k] = 0 then
day := k;
write(day);
end.
Ответ:
4. Известная авиакомпания заносила данные о количестве утерянного багажа за год в таблицу Lose. Всего были занесены данные за последние 10 лет работы компании (Lose[1] – количество утерянного багажа за первый год работы, Lose[2] – за второй год и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Var t, m: integer;
Lose: array[1..10] of integer;
Begin
Lose[1] := 1; Lose[2] := 5;
Lose[3] := 3; Lose[4] := 6;
Lose[5] := 7; Lose[6] := 12;
Lose[7] := 1; Lose[8] := 3;
Lose[9] := 3; Lose[10] := 1;
m := 0;
For t := 1 to 10 Do
If Lose[t] > 3 Then Begin
m := m + Lose[t];
End;
Writeln(m);
End.
Ответ:
5. В таблице Dat хранятся данные измерений среднесуточной температуры в градусах (Dat[1] – данные за первый день, Dat[2] – за второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
var Dat: array[1..7] of integer;
k, day: integer;
begin
Dat[1] := 9; Dat[2] := 11;
Dat[3] := 10; Dat[4] := 13;
Dat[5] := 8; Dat[6] := 5;
Dat[7] := 11;
day := 0;
for k := 1 to 7 do begin
if Dat[k] <= 10 then
day := day+1;
end;
writeln(day);
end.
Ответ:
6. В таблице Dat хранятся данные измерений среднесуточной морской воды в градусах (Dat[1] – данные за первый день, Dat[2] – за второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
var Dat: array[1..7] of integer;
k, day: integer;
begin
Dat[1] := 19; Dat[2] := 21;
Dat[3] := 20; Dat[4] := 23;
Dat[5] := 24; Dat[6] := 25;
Dat[7] := 23;
day := Dat[1];
for k := 1 to 7 do begin
if Dat[k] > day then
day := Dat[k]
end;
writeln(day);
end.
Ответ:
7. В таблице Work хранятся данные о количестве заказов, принятых фирмой «Алоэ» с первого по 15 ноября. (Work[l] — число заказов, принятых 1 ноября, Work[2] — 2 ноября и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Var k, m: integer;
Work: array[1..15] of integer;
Begin
Work[1] := 5; Work [2] := 4;
Work[3] := 5; Work [4] := 7;
Work[5] := 6; Work [6] := 12;
Work[7] := 7; Work [8] := 3;
Work[9] := 9; Work [10] := 7;
Work[11] := 0; Work [12] := 9;
Work[13] := 1; Work [14] := 0;
Work[15] := 8;
m := 0;
For k:=1 to 15 Do
If Work [k] < 7 Then Begin
m := m + 1;
End;
Writeln(m) ;
End.
Ответ:
8. В таблице Work хранятся данные о количестве заказов, принятых фирмой «Cказка» с первого по 15 ноября. (Work[l] — число заказов, принятых 1 ноября, Work[2] — 2 ноября и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Var k, m: integer;
Work: array[1..15] of integer;
Begin
Work[1] := 5; Work[2] := 4;
Work[3] := 5; Work[4] := 7;
Work[5] := 6; Work[6] := 12;
Work[7] := 7; Work[8] := 3;
Work[9] := 9; Work[10] := 7;
Work[11] := 0; Work[12] := 9;
Work[13] := 1; Work[14] := 0;
Work[15] := 1;
m := 0;
For k:=1 to 15 Do
If Work[k] > 6 Then Begin
m := m + 1;
End;
Writeln(m);
End.
Ответ:
9. В таблице Аni хранятся данные о численности обезьян в зоопарке города Тулы (Ani[l] — число обезьян в 2001 году, Апі[2] — в 2002 и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Var k, m: integer;
Ani: array[1..12] of integer;
Begin
Ani[1]:= 17; Ani[2]:= 17;
Ani[3]:= 19; Ani[4]:= 21;
Ani[5]:= 23; Ani[6]:= 22;
Ani[7]:= 24; Ani[8]:= 16;
Ani[9]:= 19; Ani[10]:= 21;
Ani[11]:= 17; Ani[12]:=11;
m := 0;
For k:=1 to 12 Do
If Ani[k] = 17 Then Begin
m := m + Ani[k];
End;
Writeln (m) ;
End.
Ответ:
Определите какое число будет напечатано в результате работы следующей программы
№1. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while s < 66 do begin
Цикл while выполняется до тех пор, пока истинно условие s < 66, т. е. переменная s определяет, сколько раз выполнится цикл.
Значение s есть сумма первых n членов арифметической прогрессии. b =2 a 1+( n -1) d \2* n , — сумма первых n членов прогрессии, — разность прогрессии, — количество членов.
Цикл прервется, когда . s = 2 s 1+( n -1) d /2* n <66
Най дем :s=(2s1+(n-1)d)n<132 ,s1=1 ,d=3 ( т . к . k:=k+3). Чтобы решить это неравенство, нам необходимо решить квадратное уравнение 3 n ^2- n -132=0, среди его корней нас интересуют только положительные, следовательно, n =6,8
Воспользовавшись методом интервалов, находим, что первое натуральное n, при котором нарушается условие, есть n =7 .
Подставив известные параметры в Kn = k 1+( n -1) d получаем, что k 1=19
№2. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while k < 30 do begin
Цикл while выполняется до тех пор, пока истинно условие k < 30, т. е. переменная k определяет, сколько раз выполнится цикл.
Так как последовательность k представляет собой арифметическую прогрессию, найдем n из неравенства:
Kn=k1+9n-1)d<30,k1=0,d=3( т . к . k:=k+3). Воспользовавшись методом интервалов, находим первое натуральное n, при котором нарушается условие: n =11
Значение s есть сумма первых n членов арифметической прогрессии. b =2 a 1+( n -1) d \2* n — сумма первых n членов прогрессии, — разность прогрессии, — количество членов.
№3. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while k < 13 do begin
Цикл while выполняется до тех пор, пока истинно условие k < 13, т. е. переменная k определяет, сколько раз выполнится цикл.
Так как числа небольшие, можно аккуратно выписать все s и k:
(Помните, что условие k < 13 проверяется сразу после k:=k+4, следовательно, действие s:=s+2*k для k=16 выполняться не будет)
Следовательно, ответ 49+16=65
№4. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while k < 11 do begin
Цикл while выполняется до тех пор, пока истинно условие k < 11, т. е. переменная k определяет, сколько раз выполнится цикл.
Запишем последовательно значения s и k:
k 1 2 3 4 5 6 7 8 9 10
s 0 3 6 10 15 21 28 36 45 55
Цикл выполнится десять раз: так как действие k := k+1 стоит в конце цикла для k=11 действие s:= s + k не будет выполняться.
№5. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while k < 15 do begin
Цикл while выполняется до тех пор, пока истинно условие k < 15, т. е. переменная k определяет, сколько раз выполнится цикл.
Цикл будет выполняться, пока k не станет больше либо равным 15. Учитывая, что k принимает только чётные значения, последним действием будет , а цикл выполнится 8 раз. К 5 в результате последовательно прибавляются все четные числа до 16 включительно. Заметим, что это — арифметическая прогрессия с разностью прогрессии, равной 2. Пользуясь формулой для суммы n первых членов арифметической прогрессии, получим:
№6. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var n, s: integer;
while n <= 8 do begin
Поскольку изначально n = 4, цикл while n <= 8 выполнится пять раз. Следовательно, s = 4 + 5 + 6 + 7 + 8 = 30.
№7. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while s < 100 do begin
Цикл while выполняется до тех пор, пока истинно условие s < 100, т. е. переменная s определяет, сколько раз выполнится цикл.
Значение s есть сумма первых n членов арифметической прогрессии. d =2 a 1+( n -1) d \2* n , — сумма первых n членов прогрессии, — разность прогрессии, — количество членов.
Цикл прервется, когда s =2 s 1( m -1) d \2* n <100 .
Най дем :s=(2s1+(n-1)d)n<200 ,s1=0 ,d=4 ( т . к . k:=k+4). Чтобы решить это неравенство, нам необходимо решить квадратное уравнение: n ^2- n -50=0 . Среди его корней нас интересуют только положительные, следовательно, n=7,5
Воспользовавшись методом интервалов, находим, что первое натуральное n, при котором нарушается условие, есть n =8 .
Учитывая порядок операций в цикле, выясняем, что, до того как прерваться, цикл выполнится еще раз, следовательно, n =9 .
Подставив известные параметры в Kn = k 1+( n -1) d , получаем, что k 9=32
№8. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while s < 50 do begin
Цикл while выполняется до тех пор, пока истинно условие s < 50, т. е. переменная s определяет, сколько раз выполнится цикл.
Значение s есть сумма первых n членов арифметической прогрессии. d=2a1+(n-1)d\2*n , — сумма первых n членов прогрессии, — разность прогрессии, — количество членов.
Цикл прервется, когда s =2 s 1+( n -1) d \2* n <50 .
Вы яс ним : s=(2s1+(n-1)d)n<100, s1=2, d=2 ( т . к . k:=k+2). Чтобы решить это неравенство, нам необходимо решить квадратное уравнение: n^2-n-50=0 . Среди его корней нас интересуют только положительные, следовательно n =6,5
Воспользовавшись методом интервалов, находим, что первое натуральное n, при котором нарушается условие, есть n =7.
Так как операция k:=k+2; идет после s:=s+k; то цикл выполнится еще раз, следовательно, n =8.
Kn=k1+(n-1)d Подставив известные параметры, получаем, что k 8=16
№9. Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
while k < 25 do begin
Цикл while выполняется до тех пор, пока истинно условие k < 25, т.к. по усл. while k < 25 do begin и k:=k+2. То есть цикл будет выполнен 13 раз.
Аккуратно выпишем все s и k:
s 3 4 7 12 19 28 39 52 67 84 103 124 147
k 1 3 5 7 9 11 13 15 17 19 21 23 25
№10. Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
ОГЭ по информатике задание 10
В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat[1] заданий сделал первый ученик, Dat[2] – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы, написанной на языке Паскаль.
Данный пример взят из открытого банка заданий по информатике на сайте http://fipi.ru
РЕШЕНИЕ
Прежде чем, приступить к решению задачи ОГЭ по информатике, разберем из каких основных частей состоит программа на языке программирования Паскаль.
В языке программирования Паскаль программа состоит из заголовка, раздела описаний и исполняемой части. Служебные слова Pascal, обозначающие начало определенного блока программы, выделены жирным шрифтом.
Program – блок описания заголовка программы в Паскале имеет декоративное значение и может отсутствовать.
Const – блок описания констант. Может отсутствовать если константы в программе не предусмотрены.
Var — блок описания переменных с указанием их типа, например, тип integer означает целочисленные переменные.
Begin — end. – служебные слова, находящиеся в блоке операторов. Begin начинает исполняемую часть программы, а end. (точка в конце обязательна) – ее завершает.
Для примера напишем простую программу нахождения суммы двух чисел. Писать программу можно в программе PascalABC.NET, либо в онлайн-режиме, пройдя по этой ссылке.

Приступаем к решению задачи №10 ОГЭ по информатике. В программе используется одномерный массив из целых чисел от Dat[1] до Dat[10]. Структура программы выглядит так:

После входных данных начинается цикл с параметром for, в котором значения переменных m и n меняются.
For — это цикл, в котором тело выполняется заданное количество раз, поэтому его ещё называют циклом со счетчиком. В данной программе цикл должен выполниться от 1 до 10 раз.
В цикле содержится условный оператор if (если), который находит значение элемента массива больше, либо равного переменной m, а также его порядковый номер n. Значения m и n будут меняться, если условие истинно.
Выполним все 10 шагов цикла, а результаты будем заносить в таблицу:

Вместо Dat[ k ] будем подставлять номер шага в цикле, например, для 1 шага запись будет выглядеть Dat[ 1 ], для 2 шага Dat[ 2 ] и.т.д.
1 ШАГ
Данный алгоритм читается так: если значение Dat[1] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [1], а в переменную n внесём порядковый номер массива,т.е. 1.
Подставляем значения: если 7 > = 0, тогда m:=7 и n:=1. Так, как условие истинно , то переменные m и n изменились, запишем в таблицу новые значения:

2 ШАГ
Данный алгоритм читается так: если значение Dat[2] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [2], а в переменную n внесём порядковый номер массива,т.е. 2.
Подставляем значения: Если 9 > = 7, тогда m:=9 и n:=2. Так, как условие истинно , то переменные m и n изменились, запишем в таблицу новые значения:

3 ШАГ
Данный алгоритм читается так: если значение Dat[3] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [3], а в переменную n внесём порядковый номер массива,т.е. 3.
Подставляем значения: Если 10 > = 9, тогда m:=10 и n:=3. Так, как условие истинно , то переменные m и n изменились, запишем в таблицу новые значения:

4 ШАГ
Данный алгоритм читается так: если значение Dat[4] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [4], а в переменную n внесём порядковый номер массива,т.е. 4.
Подставляем значения: Если 5 > = 10, тогда m:=5 и n:=4. Так, как условие ложно , то переменные m и n не изменились, На 4 шаге значения m и n остались прежние:

5 ШАГ
Данный алгоритм читается так: если значение Dat[5] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [5], а в переменную n внесём порядковый номер массива,т.е. 5.
Подставляем значения: Если 6 > = 10, тогда m:=6 и n:=5. Так, как условие ложно , то переменные m и n не изменились, На 5 шаге значения m и n остались прежние:

6 ШАГ
Данный алгоритм читается так: если значение Dat[6] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [6], а в переменную n внесём порядковый номер массива,т.е. 6.
Подставляем значения: Если 7 > = 10, тогда m:=7 и n:=6. Так, как условие ложно , то переменные m и n не изменились, На 6 шаге значения m и n остались прежние:

7 ШАГ
Данный алгоритм читается так: если значение Dat[7] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [7], а в переменную n внесём порядковый номер массива,т.е. 7.
Подставляем значения: Если 9 > = 10, тогда m:=9 и n:=7. Так, как условие ложно , то переменные m и n не изменились, На 7 шаге значения m и n остались прежние:

8 ШАГ
Данный алгоритм читается так: если значение Dat[8] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [8], а в переменную n внесём порядковый номер массива,т.е. 8.
Подставляем значения: Если 10 > = 10, тогда m:=10 и n:=8. Так, как условие истинно , то переменные m и n изменились, запишем в таблицу новые значения:

9 ШАГ
Данный алгоритм читается так: если значение Dat[9] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [9], а в переменную n внесём порядковый номер массива,т.е. 9.
Подставляем значения: Если 6 > = 10, тогда m:=10 и n:=9. Так, как условие ложно , то переменные m и n не изменились, На 9 шаге значения m и n остались прежние:

10 ШАГ
Данный алгоритм читается так: если значение Dat[10] больше, либо равно значению в переменной m, тогда в переменную m присвоим значение, которое было в Dat [10], а в переменную n внесём порядковый номер массива,т.е. 10.
Подставляем значения: Если 9> = 10, тогда m:=9 и n:=10. Так, как условие ложно , то переменные m и n не изменились, На 10 шаге значения m и n остались прежние:

После 10 шага цикл завершит работу и оператор writeln(n) выведет результат 8. Обратите внимание, что должна выводить программа, то и будет ответом в данной задаче.
Например, если будет записано writeln(n + m), ответ будет 18.
Ответ: 8
P.s. Данную задачу можно скопировать или набрать в программе Паскаль и проверить результат:

Чтобы получить хороший старт в сфере ИТ и использовать время учебы с максимальной эффективностью, очень важно правильно выбрать ВУЗ и специальность.




Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.