Массив в нашем понимании - обычная таблица. Значения в таблице должны быть одного типа: целые числа, или вещественные, или строки, или логические значения. Как правило, в школьном курсе рассматриваются задачи с целочисленными таблицами. Элементы таблицы находятся в памяти рядом и доступ к ним возможен через их порядковый номер (индекс) в таблице.

А
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:

Для какого из приведённых названий птиц истинно высказывание:

НЕ ((первая буква согласная) ИЛИ (последняя буква гласная))

  1. Коршун
  2. Чайка
  3. Иволга

Конъюнкция (И) результат операции будет истинным тогда, когда оба исходных высказывания истинны.

Дизъюнкция (ИЛИ) результат операции будет ложным тогда, когда оба исходных высказывания ложны.

Инверсия (НЕ) каждому высказыванию ставит в соответствие новое высказывание, значение которого противоположно исходному.

Логические операции имеют следующий приоритет: инверсия -> конъюнкция -> дизъюнкция.

Решение:

Раскроем скобки:

Первая буква гласная И первая последняя буква согласная.

Ответ: Удод

Задание 4:

Пользователь работал с каталогом Тициан. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз поднялся на один уровень вверх. В результате он оказался в каталоге:

С:\Искусство\Италия\Возрождение\Джорджоне

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

  1. С:\Искусство\Италия\Возрождение\Художники\Тициан
  2. С:\Искусство\Италия\Возрождение\Тициан
  3. С:\Искусство\Италия\Возрождение\Тициан\Джорджоне
  4. С:\Искусство\Италия\Возрождение\Джорджоне\Тициан

В условии указаны действия пользователя:

Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз поднялся на один уровень вверх.

Сделаем условия в обратном порядке:

Поднялся на один уровень вверх -> Спустился на один уровень вниз -> Поднялся на один уровень вверх.

За точку отправления берем каталог «Джорджоне»

С:\Искусство\Италия\Возрождение\Джорджоне

Если мы проделаем наше условие, то должны оказаться где-то выше каталога «Джорджоне».

С:\Искусство\Италия\Возрождение\Джорджоне\???

По предложенным ответам, нам только подходит 4ый вариант.

Ответ: С:\Искусство\Италия\Возрождение\Джорджоне\Тициан

Задание 5:

Какая формула может быть записана в ячейке D2, чтобы построенная после выполнения вычислений диаграмма по значениям диапазона ячеек A2:D2 соответствовала рисунку?

A B C D
1 4 3 2 1
2 =A1+C1 =C1 =A1-2 ?

Варианты ответа:

  1. = А1+2
  2. = В1+1
  3. = С1*2
  4. = 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 может означать «АБАК», может - «КАК», а может - «АБААБ».

Даны четыре шифровки:

  1. 812029
  2. 812030
  3. 182029
  4. 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 ОГЭ по Информатике + задания для отработки

Просмотр содержимого документа

Алгоритмический язык

алг
нач
цел 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:= 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.