160 likes | 310 Views
Массивы. Ввести с клавиатуры 10 чисел и вычислить их сумму. Вариант 1 Program upr1; Var s,a:real ; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (‘введите очередное число'); Readln (a); S: = s+a ; End; Writeln (‘s=’,s); end. Вариант 2 Program upr2;
E N D
Ввести с клавиатуры 10 чисел и вычислить их сумму. Вариант 1 Program upr1; Vars,a:real; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (‘введите очередное число'); Readln(a); S: =s+a; End; Writeln(‘s=’,s); end. Вариант 2 Program upr2; Var s,a1,a2,a3,a4,a5,a6,a7,a8,a9,a20:real; Begin S:=0; Writeln(‘Введите десять чисел’); Readln(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); S:=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10; Writeln(‘s=’,s); end.
Если переменная величина может принимать различные значения в какие-то моменты времени то эти данные можно занести в таблицу. Например, температура воздуха в сентябре принимала различные значения: Данный пример является одномерным массивом состоящим из 9 элементов. Элементы в массиве пронумерованы от 1 до 9.
МНОГОМЕРНЫЕ МАССИВЫ ОДНОМЕРНЫЕ
Массив– совокупность однородных элементов, объединенных одним именем причем, каждый элемент имеет свой порядковый номер. Элемент массива– отдельная переменная, входящая в массив. Индекс – числовой или буквенный указатель, которым снабжаются выражения для того, чтобы их отличить друг от друга. Индекс элемента массива– номер элемента в массиве(любой порядковый тип, кроме longint) Размерность массива– количество элементов, которое содержит массив. Чтобы обратиться к элементу массива необходимо указать имя массива и в квадратных скобках номер элемента(его индекс) Сегодня на уроке мы рассмотрим одномерные массивы. Одномерным массивомназывается массив в котором каждый элемент имеет свой порядковый номер (один).
Этапы работы с массивами • Описание массива • Заполнение массива значениями • Обработка массива по заданному алгоритму • Вывод результата
1.Описание массивов Для описания массивов используются служебные слова Array , of (массив,из) • Явное описание Varmas:array[1..10] of integer; • 2. Неявное описание Const=10; Varmas:array[1..10] of integer; • 3. Через массив констант Const Mas:array[1..10] of byte=(12,4,34,5,13,8,10,26,0,15); • 4. Через пользовательские типы Type mas=array[1..10] of byte; Var x:mas;
Количество элементов в массиве можно подсчитать :Например: M [1..5] 5 элементов в массиве M M [0..5] 6 элементов в массиве M M [-1..5] 7 элементов в массиве M Количество элементов(размерность) в массиве вычисляется по формуле: B-A+1 Конечное Начальное значение значение индекса индекса
2. Заполнение массива: • 1. Ввод с клавиатуры For i:=1 to 10 do Begin Writeln{‘Введите значение’,i,’элемента’); Readln(mas[i]); End; • 3. Случайным образом Randomize; For i:=1 to 10 do Begin mas[i]:=random(20); {будут выбираться числа на интервале от 0 до 19 включительно, если брать на произвольном интервале [a,b], то формула примет вид: mas[i]:=random(b-a+1)+a;} Writeln{‘mas[‘,i,’]=’,mas[i]); End; • 2. Поформуле For i:=1 to 10 do Begin mas[i]:=2*i; Writeln{‘mas[‘,i,’]=’,mas[i]); End;
3. Базовые алгоритмы: • 1. Вычисление суммы( произведения) элементов массива: • S:=0; • For i:=1 to 10 do • S:=s+mas[i]; • {S:=1; • For i:=1 to 10 do • S:=s*mas[i];} • 2. Подсчет количества( суммы, произведения) элементов массива, обладающих заданным свойством: a . K:=0; For i:=1 to 10 do If mas[i]>0 then k:=k+1; {подсчет количества положительных элементов} b. K:=0; For i:=1 to 10 do If mas[i]>0 then k:=k+mas[i]; {подсчет суммы положительных элементов} c. K:=1; For i:=1 to 10 do If mas[i]>0 then k:=k*mas[i]; {подсчет произведения положительных элементов}
3. Поиск максимального (минимального) элемента массива и его номера: a. K:=1;max:=mas[1]; For i:=2 to 10 do If mas[i]>mas[k] then begin k:=i; max:=mas[i]; end;{поискмаксимальногоэлементаиегономера} b. K:=1;max:=min[1]; For i:=2 to 10 do If mas[i]<mas[k] then begin k:=i; min:=mas[i]; end;{поискминимальногоэлементаиегономера}
4. Вставка некоторого значения x в массив с заданного номера k: Readln(k); readln(x); For i:=10 downto k do mas[i+1]:=mas[i]; mas[k]:=x; • 5. Удаление элемента из массива с заданного номера k: Readln(k); For i:=k to 9 do mas[i]:=mas[i+1];
Вывод результата • a.Если результатом работы является массив, то выполняют следующую группу операторов: For i:=1 to 10 do Writeln{‘mas[‘,i,’]=’,mas[i]); • b.Если результатом обработки массивов является какая-то переменная, то выводят на экран данную переменную. Writeln(‘количество положительных элементов =’,k);
Составить и отладить программы для следующих задач: • Вычислить среднее арифметическое элементов одномерного массива, размерностью 5. Элементы вводить с клавиатуры. • 2.Вычислить произведение элементов массива. Элементы массива заполняются по формуле: a[i]:=i*I; • 3. Вычислить значение функции y=x2, x изменяется от -4 до 4 с шагом 1. Результаты занести в массив. • 4.Изменить порядок значений элементов массива на обратный с использованием дополнительной переменной( для сильных учеников без дополнительной переменной): 5 4 7 8 9 задано 9 8 7 4 5 должно быть в результате
Примеры задач: 1.Найти среднее арифметическое всех элементов одномерного массива с целыми значениями, размерностью 5. Ввод элементов осуществлять с клавиатуры. Пусть массив имеет вид: А(5,8,3,1,4). Среднее арифметическое данного массива находится следующим образом: Среднее=(5+8+3+1+4)/5.
На языке Паскаль это будет выглядеть так: Program u1; Uses crt; Constn=5; Var I:integer; a: array[1..n] of integer; S:real; Begin Clrscr; S:=0; Fori:=1 to n do Begin Writeln{‘Введите значение’,i,’элемента’); Readln(a[i]); S:= s+a[i]; End; S:=s/n; Writeln(‘среднее арифметическое =’,s:6:1); End.