Подготовка к ОГЭ по информатике
For i:=1 to n do begin writeln('введите ',i , ' -й элемент массива'); readln(n); end;
Алгоритмы обработки массивов в ОГЭ по информатике.
Месяц
01
T [ 1..12 ]
Температура
T [1]
02
03
-21
T [2]
04
T [3]
-18
05
-7
T [4]
T [5]
06
-6
10
07
T [6]
T [7]
08
18
23
09
T [8]
10
T [9]
24
11
17
T [10]
12
T [11]
6
-7
T [12]
-18
Учитель информатики МАОУ «Лицей №3 им. А.С. Пушкина» Демина Ольга Александровна
Задание 10
Тема :
Обработка массива
Что проверяет задание?
Элементы содержания
Требования к уровню подготовки
Что нужно знать :
Массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом.
Объявление массива Var A: array[ 1 .. 5 ] of integer; по традиции нумерация элементов массива в Паскале обычно начинается с единицы, далее N обозначает размер массива (количество элементов). Общий вид
Var Имя : array[1..N] of тип элементов ;
Для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i
Для обработки всех элементов массива используется цикл вида
for i:=1 to N do begin
{ что-то делаем с элементом A[i] }
end;
переменная i обозначает номер текущего элемента массива, она меняется от 1 до N с шагом 1, то есть мы ″ проходим ″ последовательно все элементы
Приемы заполнения массивов.
1. Значения элементов постоянные величины Const b: array[1..10] of integer = (2, 4, 6, 8, 10, 12,14, 16, 18, 20); g: array[1..5] of char = ('a', 'b', 'c', 'd', 'e'); Var a: array[1..5] of integer; Begin a[1]:=6; a[2]:=23; a[3]:=14; a[4]:=56; a[5]:=34; ……………………….. ………………………. End.
2. С клавиатуры.
Var Mas: array[1..100] of integer; i : integer; Begin Writeln('введите размер массива'); Readln(n); {Количество элементов массива} For i:=1 to n do begin writeln('введите ',i , ' -й элемент массива'); readln(n); end; end.
3. С использованием датчика случайных чисел. Var Mas: array[1..10] of integer; i,n : integer; begin randomize; {инициализация встроенного генератора случайных чисел} Writeln('введите размер массива'); Readln(n); For i:=1 to n do begin {элементы массива заполняются значениями из диапазона от -5 до 5}
4. С помощью расчета по формулам.
mas[i]:=-5+random(11); {вывод элементов массива}
Var y: array[1..10] of real; i, n: integer; begin Writeln('введите размерность массива'); Readln(n); For i:=1 to n do begin y[i]:=(i*i-3)/(i+2);{формула} writeln(i,' ',y[i]) ; end; end.
write(mas[i], ' '); end; end.
x then k:=k+1 ; … … При этом понимать, что для подсчета меньших числа х достаточно поменять знак в условии c на " width="640"
Стандартные алгоритмы обработки массивов:
- Подсчет количества элементов равных заданному числу x … readln(x);
For i:=1 to n do
k:=0;
For i:=1 to n do
s:=s+a[i];
if a[i]=x then k:=k+1 ;
…
…
2. Вычисление среднего значения … s:=0;
4. Подсчет количества элементов больших заданного числа x … readln(x);
For i:=1 to n do
k:=0;
s:=s+a[i];
For i:=1 to n do
s:=s/n;
if a[i]x then k:=k+1 ;
…
…
При этом понимать, что для подсчета меньших числа х достаточно поменять знак в условии c на
=0 then k:=k+1; … … 6. Подсчет количества положительных элементов … k:=0; 8. Подсчет количества не превосходящих нуля элементов … k:=0; For i:=1 to n do For i:=1 to n do If a[i]0 then k:=k+1; If a[i] … … " width="640"
Стандартные алгоритмы обработки массивов:
5. Подсчет количества отрицательных элементов … k:=0;
7. Подсчет количества неотрицательных элементов … k:=0;
For i:=1 to n do
For i:=1 to n do
If a[i]
If a[i]=0 then k:=k+1;
…
…
6. Подсчет количества положительных элементов … k:=0;
8. Подсчет количества не превосходящих нуля элементов … k:=0;
For i:=1 to n do
For i:=1 to n do
If a[i]0 then k:=k+1;
If a[i]
…
…
Стандартные алгоритмы обработки массивов:
- Нахождение элемента равного заданному числу …
write(’введите число ’);
readln(x);
For i:=1 to n do
If a[i]=x then k:=i;
writeln (’Элемент с номером ’,k,’ равен ’, x);
…
10. Нахождение элементов массива равных заданному числу …
write(’введите число ’);
readln(x);
write(’Элементы с номерами ’);
For i:=1 to n do
If a[i]=x then writeln (i,’ ’);
writeln (’ равны ’, x);
…
max then max:=a[i] ; … Нахождение номера последнего наибольшего (наименьшего) по значению элемента … max:=a[1]; k:=1; For i:=2 to n do if a[i]= max then begin max:=a[i] ; k:=i; end; writeln (k); … (Замена = на 12. Нахождение номера элемента, имеющего наименьшее значение … min:=a[1]; k:=1; For i:=2 to n do if a[i] min:=a[i] ; k:=i; end; writeln (k); … При этом понимать, что имена у переменных могут быть иными " width="640"
Стандартные алгоритмы обработки массивов:
12. Нахождение наименьшего значения … min:=a[1];
For i:=2 to n do
if a[i]
…
13. Нахождение наибольшего значения … max:=a[1];
For i:=2 to n do
if a[i] max then max:=a[i] ;
…
- Нахождение номера последнего наибольшего (наименьшего) по значению элемента
… max:=a[1]; k:=1;
For i:=2 to n do
if a[i]= max then begin
max:=a[i] ; k:=i;
end;
writeln (k); …
(Замена = на
12. Нахождение номера элемента, имеющего наименьшее значение … min:=a[1]; k:=1;
For i:=2 to n do
if a[i]
min:=a[i] ;
k:=i;
end;
writeln (k); …
При этом понимать, что имена у переменных могут быть иными
Задание 10
Решение
Анализ задачи:
- В задаче используется массив
2. Значения массива задаются с помощью оператора присваивания (постоянные величины)
K
Pos[k]
1
17
2
3
19
20
4
18
5
16
6
7
20
16
3. Обработка массива производится в соответствии с алгоритмом
4. В конце осуществляется вывод результата
5. Нужно определить значение величины day
Способ 1
K
1
Pos[k]
17
2
3
19
4
20
18
5
6
16
20
7
16
Пошаговое выполнение алгоритма
Выполним алгоритм вручную.
Day
m
1
k
17
Проверка условия
Pos[k]
Выполняем цикл
2
19
3
20
нет
5
4
18
нет
5
16
16
нет
да
6
20
7
16
нет
нет
5
Ответ ______________
Способ 2
Продолжим анализ
Выделенные элементы показывают, что при разнице в обозначении имен переменных программа использует стандартный алгоритм поиска номера наименьшего элемента массива
Для массива задачи
K
Pos[k]
1
2
17
3
19
4
20
5
18
6
16
7
20
16
5
ответ
Демоверсия 2016
Анализ задачи:
- В задаче используется массив
2. Значения массива задаются с помощью оператора присваивания (постоянные величины)
K
1
Dat[k]
2
16
3
20
20
4
5
41
6
14
7
21
8
28
9
12
10
15
35
3. Обработка массива производится в соответствии с алгоритмом
4. В конце осуществляется вывод результата
5. Нужно определить значение величины m
Продолжим анализ
K
Dat[k]
1
16
2
3
20
4
20
5
41
14
6
7
21
8
28
9
12
15
10
35
Все элементы массива – положительные числа.
Следовательно, алгоритм ищет наибольшее значение среди элементов массива.
41
ответ
Полезные ресурсы
- Ресурс: Понятие таблицы и массива (N 126150)
- Вид ЦОР: Презентация
- Поставщик ЦОР: ООО "БИНОМ. Лаборатория знаний"
- Аннотация: Демонстрация к лекции на тему: таблицы и массивы, линейные таблицы и одномерные массивы
- Демонстрация
- Ресурс: Описание и ввод значений в массив в программе на Паскале (N 126153)
- Вид ЦОР: Презентация
- Поставщик ЦОР: ООО "БИНОМ. Лаборатория знаний"
- Аннотация: Демонстрация к лекции на тему: описание массива и ввод массива на языке Паскаль
- Демонстрация
- Ресурс: Цикл с параметром в алгоритме обработки массива (N 126791)
- Вид ЦОР: Презентация
- Поставщик ЦОР: ООО "БИНОМ. Лаборатория знаний"
- Аннотация: Демонстрация к лекции на тему: использование цикла с параметром для обработки массива
- Демонстрация
- Ресурс: Демонстрация алгоритма с одномерным массивом "Средняя температура" в среде "Конструктор алгоритмов" (N 126781)
- Вид ЦОР: Презентация
- Поставщик ЦОР: ООО "БИНОМ. Лаборатория знаний"
- Аннотация: Демонстрация к лекции на тему "Алоритмы обработки массивов. Конструктор алгоритмов". Вычисление среднего значения.
- Демонстрация
Программа - тренажер для развития алгоритмического мышления и формирования умений составления управляющих алгоритмов
- Руководство по использованию
Подготовка к ОГЭ по информатике
Благодарю за внимание!
Саратов. 2016 г.