В таблице 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]gt;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)gt;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]gt;m then begin m:= Dat[k] end; writeln(m); End.

Похожие вопросы

  • Заполни пропуски. Помогите пожалуйста:)
  • Герой освободившый прометея
  • Составь задачу,реши задачу и запиши решение
  • Ребят,помогите:(lg(x+√3)+lg(x-√3)=0
  • Помогите еще решить пожалуйста. Вычисли площадь треугольника, если она в 9раз меньше, чем площадь квадрата с длиной стороны 12см
  • Решите уравнение (8 5/27 - x) - 2 25/27 = 1 25/27
  • Как назывались крестьяне, которых продавали
  • Стала девочка котенка кормить. Принесла овсяной кашки,отвернулся он от чашки. При??есла ему редиски, отвернулся он от миски. Принесла кусочек сала, говорит котенок мало. Найдите в тексте слова с орфограммой "безударный гласный...

Доступный и понятный материал для изучения задании 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.

Обработка информации:

  • Алгоритм, свойства алгоритмов, способы записи алгоритмов. Блок-схемы. Представление о программировании.
  • Алгоритмические конструкции.

Это темы для которых создаются проверочные задания №10 основного государственного экзамена (ОГЭ) по информатике.

10 (В) (часть 1, повышенный уровень - задание подразумевает самостоятельное формулирование и запись экзаменуемым ответа в виде последовательности символов, время выполнения - 6 мин, максимальный балл за выполнение задания - 1). Требования к уровню подготовки, освоение которых проверяется в ходе экзамена при ответе на данное задание: оценивать числовые параметры информационных объектов и процессов, умение исполнить циклический алгоритм обработки массива чисел на одном из языков программирования.

Что нужно знать для выполнения задания:

  • массив - это набор (поименованная совокупность) однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве;
  • перед использованием в программе массив должен быть описан, т.е. должно быть указано имя, количество элементов массива и их тип;

var <имя_массива>: array [<мин_знач_индекса>. . <макс_знач_индекса> ] of <тип_элементов>;

Например: запись
var А: array of integer;
означает, что дан массив с именем А, состоящий из 10 целых элементов.

  • заполнить массив можно вводя значение каждого элемента с клавиатуры, либо присваивая элементам некоторые значения:
  • для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i;
  • матрица (двухмерный массив) - это прямоугольная таблица однотипных элементов;
  • если матрица имеет имя A, то обращение A обозначает элемент, расположенный на пересечении строки i и столбца k.

​Пример решения задачи:
В таблице 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 то
m:= m + 1
все
кц
вывод m
кон

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
PRINT m

Var k, m: integer; Dat: array of integer; Begin Dat := 20; Dat := 25; Dat := 19; Dat := 25; Dat := 26; Dat := 22; Dat := 24; Dat := 28; Dat := 26; Dat := 21; Dat > 22 then begin m:= m + 1 end; writeln(m) End.

Решение (1 способ):

  1. Рассмотрим программу пошагово. Вначале объявляются переменные, которые будут использоваться (переменные k и m), а так же массив Dat, содержащий 11 элементов (элементы пронумерованы от 1 до 11).

ВНИМАНИЕ: В массиве Dat, который описан на языке Basic будет 12 элементов, так как нумерация начинается не с первого элемента, а с нулевого.

  1. Далее идет заполнение массива. Например, элементу массива с индексом 1 присваивается значение 20, элементу с индексом 2 — 25 и т. д. В итоге полученный массив можно представить в таком виде:

Массив Dat

Индекс

Значение

  1. переменной m присваивается значение 0. После чего начинается цикл с параметром k, при этом k изменяется от 1 до 11 с шагом 1.

В теле цикла происходит проверка условия:

  1. Значение элемента массива с индексом k сравнивается с числом 22. Если элемент массива больше 22, то переменная m увеличивается на 1. В противном случае ничего не происходит.
  2. В самом конце программы на экран выводится значение переменной m.
  3. Определим, что получится после выполнения программы. Изменение значения переменной m происходит в цикле. До цикла ее значение равно нулю. Далее программа перебирает все элементы массива и сравнивает их с числом 22. И если элемент массива больше 22, то переменная m увеличивается на 1. Таким образом, нам необходимо посчитать все элементы массива, которые больше 22 — их число и будет равно значению переменной m. Таких элементов 7 — это элементы с индексами 2, 4, 5, 7, 8, 9 и 11.

ВНИМАНИЕ: Элемент под номером 6, который равен 22. Но т.к. сравнение у нас строгое (знак «>»), то его мы не учитываем.

Ответ: 7

Решение (2 способ ручная прокрутка):

Мысленно представляем полученный массив:
Массив Dat

Индекс

Значение

Федеральный институт педагогических измерений / Демоверсии, спецификации, кодификаторы ОГЭ 2015 - 2019 годов // Информатика и ИКТ — (http://fipi.ru)

  • Драчева Е. Р., Гришина И. А. Готовимся к ГИА по информатике / Е. Р. Драчева, И. А. Гришина // Часть В — (http://giainformatika.ru/)
  • k Dat[k] (для Бейсик Dat(k)) Проверка условия Dat[k] > 22 (для Бейсик Dat(k) > 22) m
    0
    1 20 нет
    2 25 да 1
    3 19 нет
    4 25 да 2
    5 26 да 3
    6 22 нет
    7 24 да 4

    В таблице 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.
    Понравилось? Лайкни нас на Facebook