Массив в нашем понимании - обычная таблица. Значения в таблице должны быть одного типа: целые числа, или вещественные, или строки, или логические значения. Как правило, в школьном курсе рассматриваются задачи с целочисленными таблицами. Элементы таблицы находятся в памяти рядом и доступ к ним возможен через их порядковый номер (индекс) в таблице.
1 | 2 | 3 | 4 | 5 |
55 | 36 | 134 | 75 | 100 |
Пусть А - таблица из пяти элементов. Тогда A = 55, A = 36, A = 134, A = 75, A = 100
Чтобы в Кумире работать с таблицами, необходимо выделить для ее хранения память:
Алг нач целтаб А
Таблицу можно заполнить вручную:
A := 55 A := 36 A := 134 A := 75 A := 100
Если элементов много, тогда лучше использовать цикл (переменная цикла i должна быть объявлена в начале программы):
Нц для i от 1 до 5 ввод A[i] кц
Если необходимо изменить значения всех элементов таблицы (например, увеличить в 2 раза), то опять же лучше использовать цикл:
Нц для i от 1 до 5 A[i] := A[i]*2 кц
Вывод всех значений элементов таблицы тоже выполняем в цикле:
Нц для i от 1 до 5 вывод A[i],нс кц
Поиск значения максимального элемента и его номера в таблице
Примечание: задача поиска минимального элемента отличается только знаком сравнения
Задача разбивается на несколько этапов:
1. За начальный максимум берем самый первый элемент в таблице, запомнив его номер
Imax:= 1
2. Будем проверять все остальные элементы (со 2-го по последний): если текущий проверяемый элемент будет больше максимума, то запоминаем номер текущего элемента в imax
Нц для i от 2 до 5 если A[i] > A то imax:= i все кц
3. По найденному номеру максимального элемента выводим сам максимум:
Вывод A
Приведем полный текст программы:
Алг ПоискМах нач целтаб А цел imax, i нц для i от 1 до 5 ввод A[i] кц imax:= 1 нц для i от 2 до 5 если A[i] > A то imax:= i все кц вывод A кц
Нахождение суммы и среднего значения всех элементов таблицы
Сначала необходимо задать начальное значение суммы:
Затем в цикле будем добавлять значения элементов к сумме:
нц для i от 1 до 5 s:= s + A[i] кцСреднее значение всех элементов таблицы найдем как отношение суммы к количеству элементов:
Sr:= s/5
Приведем полный текст программы:
Алг СумСред нач целтаб А цел i, s вещ sr | среднее число будем вещественным нц для i от 1 до 5 ввод A[i] кц s:= 0 нц для i от 1 до 5 s:= s + A[i] кц sr:= s/5 вывод "Сумма всех элементов:",s,нс вывод "Среднее значение всех элементов:",sr кц
Примеры решения задач
Пример 1.
В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat – количество голосов, поданных за первого исполнителя; Dat – за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Алг нач целтаб Dat цел k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat := 35 m:= 0 нц для k от 1 до 10 если Dat[k]>m то m:= Dat[k] все кц вывод m кон
В начале программы записываются в ячейки таблицы количества голосов, отданных за исполнителей.
Рассмотрим следующий фрагмент программы:
M:= 0 нц для k от 1 до 10 если Dat[k]>m то m:= Dat[k] все кц
Видно, что в цикле каждый элемент сравнивается с переменной m, которая до цикла была равна нулю. Если текущий проверяемый элемент больше чем m, тогда в переменную m записывается значение текущего элемента. После выполнения цикла в переменной m будет храниться значение наибольшего элемента.
Другими словами, программа находит максимальное значение среди всех ячеек таблицы. Это значение элемента Dat = 41
Ответ: 41
Пример 2:
Алг нач целтаб Dat цел k, m Dat := 7; Dat := 9 Dat := 10;Dat := 5 Dat := 6; Dat := 7 Dat := 9; Dat := 8 Dat := 6; Dat:= 9 m:= 0 нц для k от 1 до 10 если Dat[k] < 7 то m:= m + 1 все кц вывод m кон
В начале программы заполняется таблица, содержащая количество выполненных заданий.
После этого вводится переменная m
с нулевым значением.
В цикле к от 1 до 10 проверяется: если количество выполненных заданий у ученика под номером к меньше 7, то таких учеников становится на единицу больше (m:= m +1).
Другими словами, программа подсчитывает количество учеников, выполнивших менее 7 заданий.
Таких учеников у нас трое: Dat, Dat, Dat
Ответ: 3
Пример 3:
В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat заданий сделал первый ученик, Dat – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Алг нач целтаб Dat цел k, m Dat := 20; Dat := 25 Dat := 19; Dat := 25 Dat := 26; Dat := 22 Dat := 24; Dat := 28 Dat := 26; Dat := 21 Dat := 27 m:= 0 нц для k от 1 до 11 если k > 9 то m:= m + Dat[k] все кц вывод m кон
Внутри цикла для номеров элементов к от 1 до 11 (для всех учеников) проверяется: если номер элемента (ученика) больше 9, то к переменной m добавляется количество выполненных заданий ученика.
Видно, что по условию проходят только ученик под номером 10 (Dat) и ученик под номером 11 (Dat). Соответственно, переменная m будет хранить сумму количеств выполненных заданий этих учеников, 0+21+27=48
Ответ: 48
Пример 4:
В таблице Dat хранятся данные о количестве сделанных учениками заданий (Dat заданий сделал первый ученик, Dat – второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы.
Алг нач целтаб Dat цел k, m, n Dat := 7; Dat := 9 Dat := 10; Dat := 5 Dat := 6; Dat := 7 Dat := 5; Dat := 8 Dat := 6; Dat := 9 m:= 10; n:= 0 нц для k от 1 до 10 если Dat[k] <= m то m:= Dat[k] n:= k все кц вывод n кон
Значения элементов не превышают 10.
Строка нц для k от 1 до 10 означает, что перебираются все элементы массива (их у нас 10).
Условие если Dat[k] <= m будет верным, когда значение текущего элемента будет меньше или равно m. Если это условие верно, тогда в переменную m запишется значение текущего элемента, а в переменную n - его номер.
Смысл задачи в том, чтобы найти номер минимального элемента! (программа выводит в конце значение n ).
Так как условие нестрогое Dat[k] <= m, то будет найден самый последний минимальный элемент и его номер (Dat).
Если бы условие было строгим - то первый среди одинаковых минимумов (Dat)
Представляю решение 10 задания ОГЭ-2016 по информатике из проекта демоверсии. По сравнению с демоверсией 2015 года, 10 задание не изменилось. Это задание на умение исполнить циклический алгоритм обработки массива чисел, записанный на алгоритмическом языке (Алгоритм, свойства алгоритмов, способы записи алгоритмов. Блок-схемы. Представление о программировании. Алгоритмические конструкции). Это задание повышенного уровня сложности, ответом к нему является целое число, которое нужно записать в поле ответа.
Скриншот 10 задания.
Задание:
В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat -количество голосов, поданных за первого исполнителя; Dat — за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Пример на языке Паскаль
Var k, m: integer;
Dat: array of integer;
Begin
Dat := 16; Dat := 20;
Dat := 20; Dat := 41;
Dat := 14; Dat := 21;
Dat := 28; Dat := 12;
Dat := 15; Dat := 35;
m:= 0;
for k:= 1 to 10 do
if Dat[k]>m then
begin
m:= Dat[k]
end;
writeln(m);
End.
В данной программе создан массив из 10 чисел. В цикле от 1 до 10 включительно значение элемента массива сравнивается со значением переменной m. Если оказывается, что значение элемента массива строго больше значения переменной m, то переменной m присваивается значение элемента массива (изначально, до цикла значение переменной m было равно 0).
Перефразируя, получаем следующее. Для каждого исполнителя народных песен с 1 по 10 включительно количество голосов сравнивается со значением m. Если количество голосов больше m, то переменной m присваиваем значение равное количеству голосов. В результате выполнения цикла получаем число m, которое показывает наибольшее количество голосов отданное одному из участников, т.е. m=41.
В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat - количество голосов, поданных за первого исполнителя; Dat - за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования. Алгоритмический язык Бейсик Паскаль алг нач целтаб Dat цел k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat := 35 m:= 0 нц для k от 1 до 10 если Dat[k] больше m то m:= Dat[k] все кц вывод m кон DIM Dat(10) AS INTEGER DIM k,m AS INTEGER Dat(1) = 16: Dat(2) = 20 Dat(3) = 20: Dat(4) = 41 Dat(5) = 14: Dat(6) = 21 Dat(7) = 28: Dat(8) = 12 Dat(9) = 15:Dat(10) = 35 m = 0 FOR k = 1 TO 10 IF Dat(k) больше m THEN m = Dat(k) ENDIF NEXT k PRINT m Var k, m: integer; Dat: array of integer; Begin Dat := 16; Dat := 20; Dat := 20; Dat := 41; Dat := 14; Dat := 21; Dat := 28; Dat := 12; Dat := 15; Dat := 35; m:= 0; for k:= 1 to 10 do if Dat[k] больше m then begin m:= Dat[k] end; writeln(m); End.
Похожие вопросы
- Ребят,помогите:(lg(x+√3)+lg(x-√3)=0
- Стала девочка котенка кормить. Принесла овсяной кашки,отвернулся он от чашки. Принесла ему редиски, отвернулся он от миски. Принесла кусочек сала, говорит котенок мало. Найдите в тексте слова с орфограммой "безударный гласный в...
- . Что больше: 26% учащихся школы или учащихся этой школы? А. 26% учащихся Б. учащихся В. Эти числа равны Г. Данных для ответа недостаточно
- Помогите правильно перевести письмо выдуманному другу. Дорогая Нелли, Привет помнишь я хотела тебе рассказать о моём селе? У нас в селе прекрасная природа. Она особо хороша летом. Я не могу с точностью описать нашу сельскую п...
- 1) карбонат кальция --> оксид кальция + углекислый газ 2) сульфат меди (II) + гидроксид натрия --> …… 3) соляная кислота + железа --> …… 4) оксид лития + вода --> гидроксид лития. Укажите типы реакций, запишите одно из...
- В первом бассейне было 1 600 кубических метров воды,во 2 бассейне 1215 квадратных метров воды.Чтобы вычистить 1 бассейн,из него надо вы качать насосом 65 кубических метра воды в час.Чтобы заполнить 2 бассейн,в него надо залить...
- За 5 тетрадей заплатили n коп., а за 11 блокнотов - на m коп. больше. На сколько копеек блокнот дешевле тетради? Надо составить БУКВЕННОЕ ВЫРАЖЕНИЕ и найти его значение при n=1000, m=320.
Задание 1:
Реферат, набранный на компьютере, содержит 48 страниц текста и помимо этого ещё 32 рисунка. На каждой текстовой странице 36 строк, в каждой строке 48 символов. Для кодирования символов используется кодировка КОИ-8, при которой каждый символ кодируется 8 битами. Определите информационный объём всего реферата, если информационный объем каждого рисунка составляет 2080 байт.
Решение:
В кодировке КОИ-8, 1 символ несет 1 байт (что равно = 8 бит) информации.
У нас известно, что всего 48 страниц текста + 32 рисунка. На каждой странице 36 строк, в каждой строке 48 символов.
Узнаем, сколько весит одна страница:
48 символов * 36 строк = на одной странице 1728 символов.
1728 символов на одной странице * 1 байт = одна страница весит 1728 байт.
48 всего страниц * на вес одной страницы 1728 байт = общий вес всех страниц текста 82944 байт.
Узнаем, сколько весят все рисунки в реферате:
По условию, 1 рисунок у нас весит 2080 байт. А всего их 32 рисунка.
2080 байт * 32 рисунка = 66560 байт.
Итого:
Общий вес всех страниц текста 82944 байт + вес рисунков 66560 байт = 149504 байт.
По умолчанию, 1 Килобайт (Кбайт) = 1024 байт.
149504 байт / 1024 байт = 146 Кбайт.
Ответ: 146 Кбайт
Задание 2:
Для какого из приведённых названий птиц истинно высказывание:
НЕ ((первая буква согласная) ИЛИ (последняя буква гласная))
- Коршун
- Чайка
- Иволга
Конъюнкция (И) результат операции будет истинным тогда, когда оба исходных высказывания истинны.
Дизъюнкция (ИЛИ) результат операции будет ложным тогда, когда оба исходных высказывания ложны.
Инверсия (НЕ) каждому высказыванию ставит в соответствие новое высказывание, значение которого противоположно исходному.
Логические операции имеют следующий приоритет: инверсия -> конъюнкция -> дизъюнкция.
Решение:
Раскроем скобки:
Первая буква гласная И первая последняя буква согласная.
Ответ: Удод
Задание 4:
Пользователь работал с каталогом Тициан. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз поднялся на один уровень вверх. В результате он оказался в каталоге:
С:\Искусство\Италия\Возрождение\Джорджоне
Запишите полный путь каталога, с которым пользователь начинал работу.
- С:\Искусство\Италия\Возрождение\Художники\Тициан
- С:\Искусство\Италия\Возрождение\Тициан
- С:\Искусство\Италия\Возрождение\Тициан\Джорджоне
- С:\Искусство\Италия\Возрождение\Джорджоне\Тициан
В условии указаны действия пользователя:
Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз поднялся на один уровень вверх.
Сделаем условия в обратном порядке:
Поднялся на один уровень вверх -> Спустился на один уровень вниз -> Поднялся на один уровень вверх.
За точку отправления берем каталог «Джорджоне»
С:\Искусство\Италия\Возрождение\Джорджоне
Если мы проделаем наше условие, то должны оказаться где-то выше каталога «Джорджоне».
С:\Искусство\Италия\Возрождение\Джорджоне\???
По предложенным ответам, нам только подходит 4ый вариант.
Ответ: С:\Искусство\Италия\Возрождение\Джорджоне\Тициан
Задание 5:
Какая формула может быть записана в ячейке D2, чтобы построенная после выполнения вычислений диаграмма по значениям диапазона ячеек A2:D2 соответствовала рисунку?
A | B | C | D | |
1 | 4 | 3 | 2 | 1 |
2 | =A1+C1 | =C1 | =A1-2 | ? |
Варианты ответа:
- = А1+2
- = В1+1
- = С1*2
- = D1*2
Решение:
Из таблицы мы знаем: A1=4, B1=3, C1=2, D1=1.
Давайте заполним таблицу и найдем значение полей: A2, B2 и C2.
A | B | C | D | |
1 | 4 | 3 | 2 | 1 |
2 | 6 | 2 | 2 | ? |
Мы узнали: A2=6, B2=2, C2=2.
Теперь вернемся к нашей диаграмме и внимательно посмотрим на нее:
У нас одна большая часть и три маленьких.
Логически рассуждая, давайте представим одну большую часть как A2, которая ровна 6-и. А три маленькие равные части, это 6 деленное на 3, получается одна маленькая часть ровна 2-ум.
Из предложенных вариантов ответов, нам нужно что бы D2 было равно 2-ум.
Получается, что это четвертый ответ.
Ответ: 4
Задание 7:
Незнайка шифрует русские слова, записывая вместо каждой буквы её номер в алфавите (без пробелов).
Номера букв даны в таблице:
Некоторые шифровки можно расшифровать не одним способом.
Например, 12112 может означать «АБАК», может - «КАК», а может - «АБААБ».
Даны четыре шифровки:
- 812029
- 812030
- 182029
- 182030
Только одна из них расшифровывается единственным способом.
Найдите её и расшифруйте. То, что получилось, запишите в качестве ответа.
Решение:
Третий и четвертый вариант мы сразу исключаем. В начале шифровки стоит «18», это может быть как просто «1» так и «18».
Остаются первый и второй вариант шифровки.
Шифровка по условию начинается с 1 и заканчивается на 33. В первом варианте шифровки "29", может быть как "2" и "9", что нельзя сказать про второй вариант шифровки, которая заканчивается на "30". В шифровке "0" по условию нет и шифр "30" мы разделить ни как не можем.
Ответ: ЖАТЬ
Задание 10:
В таблице Dat хранятся данные о количестве проданных единиц товаров 10 типов (Dat - проданных товаров первого типа, Dat - второго типа и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх языках программирования.
Алгоритмический язык:
алг
нач
целтаб Dat
цел k, m
Dat := 45; Dat : = 55
Dat := 40; Dat : = 15
Dat := 20; Dat := 80
Dat := 35; Dat : = 70
Dat := 10; Dat := 45
m:= Dat
нц для к от 4 до 10
если Dat[к] >= Dat то
m:= m + Dat [к]
все
кц
вывод m
кон
Бейсик:
DIM Dat(10) AS INTEGER
Dat(1)= 45: Dat(2)= 55
Dat(3)= 40: Dat(4)= 15
Dat(5)= 20: Dat(6)= 80
Dat(7)= 35: Dat(8)= 70
Dat(9)= 10: Dat(10)= 45
m = Dat (1)
FOR k = 4 TO 10
IF Dat(k) >= Dat (1)
THEN
m = m + Dat (k)
END IF
10
10
ID_650 4/8 neznaika.pro
NEXT k
PRINT m
END
Паскаль:
var k, m: integer;
Dat: array
of integer;
begin
Dat := 45; Dat := 55;
Dat := 40; Dat := 15;
Dat := 20; Dat := 80;
Dat := 35; Dat := 70;
Dat := 10; Dat := 45;
m:= Dat;
for k:= 4 to 10 do begin
if Dat[k] >= Dat then
begin
m:= m + Dat[k]
end
end;
write(m);
end.
Давайте решим задачу на примере языка Паскаль.
var k, m: integer; Dat: array of integer; begin Dat := 45; Dat := 55; Dat := 40; Dat := 15; Dat := 20;. Dat := 80; Dat := 35; Dat := 70; Dat := 10; Dat := 45; m:= Dat; for k:= 4 to 10 do begin if Dat[k] >= Dat then begin m:= m + Dat[k] end end; write(m); end. |
Сначала у нас вводятся целые числовые переменные k и m. Дана таблица с 1 до 10 значений - десять проданных типов товаров. Переменная m равна первому типу товаров (Dat := 45;). Если одно из значений с 4-го по 10-ый тип будет больше или равно 1-ого типа, который равен 45, то большее значение добавляется к переменной m. Которая в свою очередь у нас по условию, переменная m равна 45. Получается, что у нас типы товаров: Dat и Dat больше значения Dat := 45, а тип Dat равен Dat := 45. В итоге получаем: 45 + Dat + Dat + Dat = 45 + 80 + 70 + 45 = 240 |
Ответ: Будет напечатано 240
Доступный и понятный материал для изучения задании 9 и 10 ОГЭ по Информатике + задания для отработки
Просмотр содержимого документа
Алгоритмический язык | ||
алг | DIM k, s AS INTEGER | Var s,k: integer; |
Решение :
Как видим, в теле цикла только одна команда s:= s + 8. Т. е. эта операция будет выполняться на каждой итерации (на каждом шаге) цикла.
В теле цикла происходит увеличение значения переменной s на 8. Так как параметр цикла увеличивается от 3 до 8 с шагом 1, то при выполнении программы тело цикла будет выполняться 6 раз (k будет равно 3, 4, 5, 6, 7, 8). Т. е. переменная s увеличитая на 8 * 6 = 48. А так как начальное значение переменной s = 8 и после выполнения программы оно увеличится на 48, то в конечном итоге значение переменной s станет равным 56.
Решение задач типа 10 ГИА по информатике
В таблице Dat хранятся данные о численности учеников в классах (Dat число учеников в первом классе, Dat – во втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | ||
целтаб Dat цел k , m Dat := 20; Dat := 25 Dat := 19; Dat := 25 Dat := 26; Dat := 22 Dat := 24; Dat := 28 Dat := 26; Dat := 21 Dat := 27 m:= 0 нцдля k от 1 до 11 если Dat[k] 22 то | DIM Dat(11) AS INTEGER DIM k,m AS INTEGER Dat(1) = 20: Dat(2) = 25 Dat(3) = 19: Dat(4) = 25 Dat(5) = 26: Dat(6) = 22 Dat(7) = 24: Dat(8) = 28 Dat(9) = 26: Dat(10) = 21 Dat(11) = 27 m = 0 FOR k = 1 TO 11 IF Dat(k) 22 THEN m = m + 1 END IF NEXT k | Var k, m: integer; Begin Dat := 20; Dat := 25; Dat := 19; Dat := 25; Dat := 26; Dat := 22; Dat := 24; Dat := 28; Dat := 26; Dat := 21; Dat := 27; m:= 0; for k:= 1 to 11 do if Dat[k] 22 then begin m:= m + 1 |
Ответ: ___________________________.
Решение :
Примечание. В массиве Dat, который описан на языке Basic будет 12 элементов, так как нумерация начинается не с первого элемента, а с нулевого.
Массив Dat
Значение |
В теле цикла происходит проверка условия
Итак, правильный ответ 7.
Просмотр содержимого презентации
«Решение задании 9 и 10 ОГЭ по Информатике»
Решение задании
по информатике
Решение задач типа 9 ГИА по информатике
Алгоритмический язык
Бейсик
алг нач цел s, k s:= 8 нц для k от 3 до 8 s:= s + 8 кц вывод s кон
Паскаль
DIM k, s AS INTEGER s = 8 FOR k = 3 TO 8 s = s + 8 NEXT k PRINT s
Var s,k: integer; Begin s:= 8; for k:= 3 to 8 do s:= s + 8; writeln(s); End.
Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Ответ: ___________________________.
Решение :
- Итак, рассмотрим этот алгоритм, записанный на разных языках.
- Вначале объявляется, что будут использованы переменные k и s целочисленного типа
- Далее переменной s присваивается значение 8.
- После этого описывается цикл, где в качестве параметра выступает переменная k, которая изменяется от 3 до 8 с шагом 1 (т. е. будет принимать последовательно значения 3, 4, 5, 6, 7 и 8).
- В теле цикла только одна команда s:= s + 8. Т. е. эта операция будет выполняться на каждой итерации (на каждом шаге) цикла.
- И в самом конце на экран выводится значение переменной s
- В теле цикла происходит увеличение значения переменной s на 8. Так как параметр цикла увеличивается от 3 до 8 с шагом 1, то при выполнении программы тело цикла будет выполняться 6 раз (k будет равно 3, 4, 5, 6, 7, 8). Т. е. переменная s увеличится на 8 * 6 = 48. А так как начальное значение переменной s = 8 и после выполнения программы оно увеличится на 48, то в конечном итоге значение переменной s станет равным 56.
22 THEN m:= 0; m = m + 1 for k:= 1 to 11 do если Dat[k] 22 то m:= m + 1 END IF if Dat[k] 22 then NEXT k begin все m:= m + 1 кц PRINT m end; вывод m кон writeln(m) End. " width="640"
В таблице Dat хранятся данные о численности учеников в классах (Dat число учеников в первом классе, Datво втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Ответ: ___________________________.
Алгоритмический язык
Бейсик
Паскаль
DIM Dat(11) AS INTEGER
DIM k,m AS INTEGER
Var k, m: integer;
целтаб Dat
Dat: array of integer;
Dat(1) = 20: Dat(2) = 25
цел k, m
Dat(3) = 19: Dat(4) = 25
Dat := 20; Dat := 25
Dat := 19; Dat := 25
Dat(5) = 26: Dat(6) = 22
Dat := 20; Dat := 25;
Dat(7) = 24: Dat(8) = 28
Dat := 26; Dat := 22
Dat := 19; Dat := 25;
Dat := 26; Dat := 22;
Dat(9) = 26: Dat(10) = 21
Dat := 24; Dat := 28
Dat(11) = 27
Dat := 24; Dat := 28;
Dat := 26; Dat := 21
Dat := 27
Dat := 26; Dat := 21;
FOR k = 1 TO 11
Dat := 27;
нц для k от 1 до 11
IF Dat(k) 22 THEN
m = m + 1
for k:= 1 to 11 do
если Dat[k] 22 то
m:= m + 1
if Dat[k] 22 then
m:= m + 1
вывод m
writeln(m)
), то его мы не учитываем, так как 22 не больше 22. Учитывать его можно было бы в том случае, если бы в сравнении стоял знак =. Итак, правильный ответ 7." width="640"
Решение:
- Рассмотрим программу пошагово. Итак, в самом начале объявляются переменные, которые будут использоваться (переменные k и m), а так же массив Dat, содержащий 11 элементов (от 1 до 11).
- Далее идет заполнение массива. Например, элементу массива с индексом 1 присваивается значение 20, элементу с индексом 2 - 25 и так далее. В итоге полученный массив можно представить в таком виде:
- Далее переменной m присваивается значение 0. После чего начинается цикл с параметром k, при этом k изменяется от 1 до 11 с шагом 1.
- Значение элемента массива с индексом k сравнивается с числом 22. Если элемент массива больше 22, то переменная m увеличивается на 1. В противном случае ничего не происходит.
- В самом конце программы на экран выводится значение переменной m.
- Итак, мы перевели программу на человеческий язык, теперь давайте подумаем, что же в итоге получим после ее выполнения. Нас интересует цикл - именно там происходит изменение значения переменной m. До цикла ее значение равно нулю. Далее программа перебирает все элементы массива и сравнивает их с числом 22. И если элемент массива больше 22, то переменная m увеличивается на 1. Таким образом, нам необходимо посчитать все элементы массива, которые больше 22 - их число и будет равно значению переменной m. Таких элементов 7 - это элементы с индексами 2, 4, 5, 7, 8, 9 и 11.
- Следует обратить внимание на элемент под номером 6, который равен 22. Так как сравнение у нас строгое (знак), то его мы не учитываем, так как 22 не больше 22. Учитывать его можно было бы в том случае, если бы в сравнении стоял знак =.
Итак, правильный ответ 7.