Вариант 1_Программирование_ Массивы
1. Сотрудник метеобюро в ходе измерений среднесуточной температуры записывал показания термометра в таблицу Tem (Tem[1] — температура, полученная в результате первого измерения, Tem[2] — второго и т. д.).
Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Паскаль |
Var k, b: integer; Tem: array[1..12] of integer; Begin b := 15; Tem[1] := 22; Tem[2] := 25; Tem[3] := 20; Tem[4] := 18; Tem[5] := 16; Tem[6] := 14; Tem[7] := 20; Tem[8] := 23; Tem[9] := 17; Tem[10] := 19; Tem[11] := 20; Tem[12] := 21; For k := 1 to 12 Do If Tem[k] b := b + 1; Writeln(b); End. |
2. В таблице Ani хранятся данные о численности обезьян в зоопарке города Тулы (Ani[1] — число обезьян в 2001 году, Ani[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]:= 17; m := 0; For k := 1 to 12 Do If Ani[k] = 17 Then Begin m := m + Ani[k]; End; Writeln(m); End. |
3. Сотрудник метеобюро в ходе измерений среднесуточной температуры записывал показания термометра в таблицу Tem (Tem[1] — температура, полученная в результате первого измерения, Tem[2] — второго и т. д.).
Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Паскаль |
Var k, b: integer; Tem: array[1..12] of integer; Begin b := 0; Tem[1] := 22; Tem[2] := 25; Tem[3] := 20; Tem[4] := 18; Tem[5] := 16; Tem[6] := 14; Tem[7] := 20; Tem[8] := 23; Tem[9] := 17; Tem[10] := 19; Tem[11] := 20; Tem[12] := 21; For k := 1 to 12 Do If Tem[k] b := b + Tem[k]; Writeln(b); End. |
4. В таблице Dat хранятся данные о количестве самолётов, отправляющихся из аэропорта города на юг в первой декаде августа (Dat[1] — количество самолётов первого числа, Dat[2] — количество самолётов второго числа и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Паскаль |
Var k, m, day: integer; Dat: array[1...10] of integer; Begin Dat[1] := 2; Dat[2] := 2; Dat[3] := 3; Dat[4] := 3; Dat[5] := 4; Dat[6] := 4; Dat[7] := 5; Dat[8] := 5; Dat[9] := 6; Dat[10] := 6; day:=1; m := Dat[1]; for k := 2 to 10 do if Dat[k] = m then begin m:= Dat[k]; day := k; end; write(day); End. |
5. В таблице Dat хранятся данные измерений среднесуточной температуры за 10 дней в градусах (Dat[1] — данные за первый день, Dat[2] — за второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Паскаль |
Var k, m: integer; Dat: array[1..10] of integer; Begin Dat[1] := 2; Dat[2] := 5; Dat[3] := 7; Dat[4] := 5; Dat[5] := 4; Dat[6] := 2; Dat[7] := 0; Dat[8] := 2; Dat[9] := 4; Dat[10] := 5; m := 0; for k := 1 to 10 do if Dat[k] 3 then begin m := m+1 end; writeln(m); End. |
20.2-1 Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей, округляя значения скорости до целых чисел. Необходимо определить:
1) разность максимальной и минимальной скоростей автомобилей;
2) количество автомобилей, скорость которых не превышала 30 км/ч.
Программа получает на вход число проехавших автомобилей N (1 ≤ N ≤ 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести разность максимальной и минимальной скоростей автомобилей, затем количество автомобилей, скорость которых не превышала 30 км/ч.
Пример работы программы:
Входные данные | Выходные данные |
4 74 69 63 96 | 33 0 |
20.2-2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 4. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 4.
Пример работы программы:
Входные данные | Выходные данные |
14 24 36 84 66 0 | 108 |
Вариант 2
1. Владелец крупного яблоневого сада в течение 12 лет записывал в таблицу App количество собранного урожая. (App[1] — количество тонн яблок, собранных за первый год, App[2] — за второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Паскаль |
Var k, m: integer; App: array[1..12] of integer; Begin App[1] := 100; App[2] := 128; App[3] := 80; App[4] := 99; App[5] := 120; App[6] := 69; App[7] := 55; App[8] := 115; App[9] := 84; App[10] := 111; App[11] := 59; App[12] := 100; m := 0; For k := 1 to 12 Do If App[k] 100 Then Begin m := m + 1; End; m : = m + 10; Writeln(m); End. |
2. В таблице Dat хранятся данные о количестве краткосрочных командировок, в которые приходилось ездить сотруднику за последний год (Dat[1] — количество командировок в январе, Dat[2] — количество командировок в феврале и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Паскаль |
Var k, m, month: integer; Dat: array[1..12] of integer; Begin Dat[1] := 5; Dat[2] := 5; Dat[3] := 6; Dat[4] := 8; Dat[5] := 4; Dat[6] := 5; Dat[7] := 4; Dat[8] := 7; Dat[9] := 4; Dat[10] := 4; Dat[11] := 8; Dat[12] := 7; month: = 1; m := Dat[1]; for k := 2 to 12 do if Dat[k] begin m:= Dat[k]; month := k; end; write(month); End. |
3. В таблице Dat хранятся оценки (по десятибалльной шкале) студента по программированию за 8 прошедших с начала учёбы семестров (Dat[1] — оценка за первый семестр, Dat[2] — за второй и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Паскаль |
Var k, m, term: integer; Dat: array[1...10] of integer; Begin Dat[1] := 7; Dat[2] := 7; Dat[3] := 6; Dat[4] := 8; Dat[5] := 4; Dat[6] := 5; Dat[7] := 4; Dat[8] := 7; term:=1 m := Dat[1]; for k := 2 to 8 do if Dat[k] begin m:= Dat[k]; term := k; end; writeln(term); End. |
4. В таблице Dat хранятся данные о количестве детских праздников, которые проводило кафе за последний год (Dat[1] — количество детских праздников в январе, Dat[2] — количество праздников в феврале и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.
Паскаль |
Var k, m, month: integer; Dat: array[1...12] of integer; Begin Dat[1] := 2 Dat[2] := 8 Dat[3] := 6 Dat[4] := 3 Dat[5] := 8 Dat[6] := 2 Dat[7] := 3 Dat[8] := 7 Dat[9] := 4 Dat[10] := 4 Dat[11] := 8 Dat[12] := 7 month:=1; m := Dat[1]; for k := 2 to 6 do if Dat[k] m then begin m:= Dat[k]; month := k; end; write(month); End. |
5. В таблице A хранятся данные о количестве призёров олимпиады по программированию по девяти округам Москвы. Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх языках программирования.
Паскаль |
var k, score: integer; A: array[1..9] of integer; begin A[1]:=6; A[2]:=11; A[3]:=7; A[4]:=12; A[5]:=13; A[6]:=5; A[7]:=9; A[8]:=3; A[9]:=4; score:= 0; for k:=1 to 9 do begin if A[k] = 9 then score:= score+A[k]; end; write(score); end. |
20.2-1 Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, оканчивающихся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — количество чисел, оканчивающихся на 3.
Пример работы программы:
Входные данные | Выходные данные |
3 13 23 24 | 2 |
20.2-2 Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — максимальное число, кратное 4.
Пример работы программы:
Входные данные | Выходные данные |
3 8 16 11 | 16 |
Вариант 1 Вариант 2
Вариант 1
Начало формы
Задание С2 № 441
Критерии оценивания выполнения задания 20.2 | Баллы |
Предложено верное решение. Программа правильно работает на всех приведённых выше тестах. Программа может быть записана на любом языке программирования | 2 |
Программа выдаёт неверный ответ ровно на одном из тестов, приведённых выше ИЛИ Программа выдаёт неверный ответ на всех тестах: на каждом тесте только на один из двух вопросов получен правильный ответ. ИЛИ Программа выдаёт неверный ответ на всех тестах: сначала выводится ответ на второй вопрос, затем — на первый | 1 |
Программа выдаёт на тестах неверные ответы, отличные от описанных в критерии на 1 балл | 0 |
Максимальный балл | 2 |
20.2 Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей, округляя значения скорости до целых чисел. Необходимо определить:
1) разность максимальной и минимальной скоростей автомобилей;
2) количество автомобилей, скорость которых не превышала 30 км/ч.
Программа получает на вход число проехавших автомобилей N (1 ≤ N ≤ 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести разность максимальной и минимальной скоростей автомобилей, затем количество автомобилей, скорость которых не превышала 30 км/ч.
Пример работы программы:
Входные данные | Выходные данные |
4 74 69 63 96 | 33 0 |
20.2 Решение
var N, a, i, max, num, min: integer; begin
max := 0; min := 301; num := 0;
readln(N);
for i := 1 to N do
begin
readln(a);
if a max then max := a; if a
end;
writeln(max - min); writeln(num)
end.
Для проверки правильности работы программы необходимо использовать следующие тесты:
| Входные данные | Выходные данные |
1 | 3 50 81 65 | 31 0 |
2 | 1 30 | 0 1 |
3 | 2 20 52 | 32 1 |
4 | 3 15 25 140 | 125 2 |
Задание С2 № 1031
Критерии оценивания выполнения задания 20.2 | Баллы |
Предложено верное решение. Программа правильно работает на всех приведённых выше тестах. Программа может быть записана на любом языке программирования. | 2 |
Программа выдаёт неверный ответ на одном из тестов, приведённых выше. Например, решение, в котором не задано условие отбора чисел: (a mod 6 = 0) выдаст неправильный ответ на тесте № 3. | 1 |
Не выполнены условия, позволяющие поставить 1 или 2 балла. | 0 |
Максимальный балл | 2 |
20.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 4. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 4.
Пример работы программы:
Входные данные | Выходные данные |
14 24 36 84 66 0 | 108 |
Пояснение.
20.1 Команды исполнителя будем записывать жирным шрифтом, а комментарии, поясняющие алгоритм и не являющиеся его частью, —курсивом. Начало комментария будем обозначать символом «|».
|Двигаемся вправо, пока не дойдём до второго вертикального отрезка.
нц пока справа свободно
вправо
кц
|Обходим стену.
вверх
вправо
|Двигаемся вниз и закрашиваем клетки.
нц пока снизу свободно
вниз
закрасить
кц
Возможны и другие варианты решения. Допускается использование иного синтаксиса инструкций исполнителя,
более привычного для учащихся. Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения
20.2 Решением является программа, записанная на любом языке программирования. Пример верного решения, записанного на языке Паскаль:
var a, s: integer;
begin
s:= 0;
readln(a);
while a0 do begin
if (a mod 6 = 0) and (a mod 10 = 4) then
s := s + a;
readln(a);
end;
writeln(s);
end.
Возможны и другие варианты решения. Для проверки правильности работы программы необходимо использовать следующие тесты:
№ | Входные данные | Выходные данные |
1 | 24 84 0 | 108 |
2 | 60 0 | 0 |
3 | 34 0 | 0 |
4 | 31 54 0 | 54 |
Вариант 2
Задание С2 № 180
Критерии оценивания выполнения задания 20.2 | Баллы |
Предложено верное решение. Программа правильно работает на всех приведённых выше тестах. Программа может быть записана на любом языке программирования | 2 |
Программа выдаёт неверный ответ на одном из тестов, приведённых выше | 1 |
Программа выдаёт на тестах неверные ответы, отличные от описанных в критерии на 1 балл | 0 |
Максимальный балл | 2 |
20.2-1 Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, оканчивающихся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — количество чисел, оканчивающихся на 3.
Пример работы программы:
Входные данные | Выходные данные |
3 13 23 24 | 2 |
20.2 Решение
var n, s, k, g: integer;
begin
s:=0;
readln(n);
for k:=1 to n do
begin
readln(g);
if (g mod 10 = 3) then
s:=s+1;
end;
writeln(s);
end.
Задание С2 № 140
Критерии оценивания выполнения задания 20.2 | Баллы |
Предложено верное решение. Программа правильно работает на всех приведённых выше тестах. Программа может быть записана на любом языке программирования | 2 |
Программа выдаёт неверный ответ на одном из тестов, приведённых выше | 1 |
Программа выдаёт на тестах неверные ответы, отличные от описанных в критерии на 1 балл | 0 |
Максимальный балл | 2 |
20.2-2 Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — максимальное число, кратное 4.
Пример работы программы:
Входные данные | Выходные данные |
3 8 16 11 | 16 |
20.2 Решение
var n, a, k, g: integer;
begin
g:=0;
readln(n);
for k:=1 to n do
begin
readln(a);
if (a mod 4 = 0) and (ag) then
g:=a;
end;
writeln(g);
end.
Для проверки правильности работы программы необходимо использовать следующие тесты:
| Входные данные | Выходные данные |
1 | 2 4 6 | 4 |
2 | 3 12 20 16 | 20 |
3 | 3 4 44 24 | 44 |