Обработка массивов ГБОУ СОШ
При назначении размера массива необходимо проанализировать возможный объем данных и ввести возможное количество элементов массива. Необходимо помнить, что при назначении размера массива, компьютер резервирует память под этот массив. Поэтому, не стоит назначать массив больше, чем он может понадобится.
Два способа управления размером массива program M_1; Uses crt; Const N=10; Var T :array[1..N] of real; i :integer; Begin Writeln(Введите значения температуры :); For i:=1 to N do begin Write(i, –ый); Readln(T[i]); end; …….. program M_2; Uses crt; Var T :array[1..365] of integer; i,N : integer; Begin Write(Введите кол-во дней ); Readln (N); Randomize; For i:=1 to N do begin T[i] := Random(21); Writeln(T[i] :5); end; …….
2. Поиск элементов по заданному признаку. 3. Поиск максимального (минимального) элементов. 1. Сложение элементов массива. 4. Сортировка элементов массива.
1. Сложение элементов массива Пример M_O_1 : Опреде ление средн ей температур ы за 10 дней Для заполнения массива можно использовать пример M_2, добавив в описание переменных S и Sr. Тогда основная часть задачи имеет следующий вид: i=1,N S:=S + T[i] конец S:=0 Вывод: Sr 1 Sr:=S/N S:=0; For i:=1 to N do begin S:=S+T[i]; end; Sr:=S/N; Writeln(Sr = ',Sr); End. Задание 1. Наберите программу, запустите на выполнение 3 раза, запишите результаты. Задание 1_2*. Измените программу так, чтобы обрабатывались ячейки только с четными номерами. ( формула четного индекса i:=k*2) Пример M_O_1
2 Поиск элементов по заданному признаку. Пример M_O_2 : М ассив, заполнен случайными числами из диапазона от -2 до 2, количество элементов массива 10. Определите количество элементов массива, значения которых меньших 0. program M_O_2; uses crt; Const N=10; Var A:array[1..N] of real; k,i: integer; Begin Randomize; For i:=1 to N do begin A[i] := (-20 + Random(51))/10; Writeln( A[i] :5:1); end; Для описания и заполнения массива используем способ 3 Алгоритм и программу обработки массива рассмотрим долее начало Инициализация random i=1,N A[i]:=(-20+random(51))/10 1 Вывод: A[i]
Продолжение {продолжение программы} k:=0; For i:=1 to N do begin if A[i] < 0 then k:=k+1; end; Write(Результат обработки); If k=0 then Writeln(Отрицательных значений нет) else Writeln(I, значений
Задание 1: Используя пример M_O_2, напишите программу определения количества и суммы положительных элементов массива. (M_О_21)(M_О_21) Задание 2 : Используя пример Generator 2, напишите программу вычисления среднего балла, определите сколько учеников имеют оценки выше среднего балла, распечатайте их фамилии и оценки. ( Generator 3 ) Generator 3