Презентация по дисциплине Основы алгоритмизации и программирования на тему Массивы


Массивы Массив – поименованный набор однотипных элементов, каждый из которых имеет свой номер, (индекс). Если индексов несколько, то массив многомерный).Особенности:все элементы имеют один типвесь массив имеет одно имявсе элементы расположены в памяти рядомПримеры: список учеников в классеквартиры в домешколы в городеданные о температуре воздуха за год B Структура массива Одномерный массив А[i] типа real из 9 элементов Имя массива A Индексы(№) 1 2 3 4 5 6 7 8 9 Элементы A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] Значения 1.2 0.9 -1.3 -9.1 0.02 45.1 -3 5.0 7 Тип данных real real real real real real real real real Двумерный массив В[i,j] типа integer из 4 строк и 5 колонок.Элемент массива В[2,4]=34 индексы 1 2 3 4 5 1 1 4 6 -7 9 2 78 12 45 34 21 3 34 13 67 45 0 4 -6 1 -8 56 -99 Номер строки Номер столбца Объявление массива целых чисел Массив описывают в секции VAR var A : array[ 1 .. 5 ] of integer ; имя начальный индекс конечный индекс тип Const N=12; var A: array[1.. N] of integer; Описание через константу Объявление массивов Массивы других типов:var X, Y: array [1..10] of real; C: array [1..20] of char;Другой диапазон индексов: var Q: array [0..9] of real; C: array [-5..13] of char;Индексы других типов:var A: array ['A'..'Z'] of real; B: array [False..True] of integer;D: array ['a'..'z',w2..w4] of string; Операции с массивами Выполняются в циклахОбъявлениеconst N = 5; var a: array[1..N] of integer; i: integer;Ввод данных с клавиатурыfor i:=1 to N do begin write('a[', i, ']='); read ( a[i] );end;Данные обрабатывают поэлементноfor i:=1 to N do a[i]:=a[i]*2;Вывод данных на дисплейwriteln('Массив A:');for i:=1 to N do write(a[i]:4); a[1] = a[2] = a[3] = a[4] = a[5] = 5 12 34 56 13 a[1] = a[2] = a[3] = a[4] = a[5] = 10 24 68 112 26 10 24 68 112 26 for i:=1 to N do writeln (‘a[‘,I,’]=‘,a[i]:4); Решение задач 1. Определить среднее арифметическое массива из пяти чисел. Предусмотреть, что изменение количества чисел должно менять только секцию описаний. program mass1;const n=5;var i:integer;a: array [1..n] of real;sr:real;beginfor i:=1 to n do begin write ('введите а[',i,']='); readln (a[i]); end;Sr:=0;for i:=1 to n do sr:= sr+a[i];sr:=sr/n;for i:=1 to n do writeln ('а[',i,']=',a[i]);writeln('среднее арифметическое sr=',sr);end. Решение задач 2. В массиве из пяти элементов найти минимальный элемент и его номер. Изменение количества чисел должно менять только секцию описаний program mass2;const n=5;var i,j:integer;a: array [1..n] of real;min:real;beginfor i:=1 to n do begin write (‘а[',i,']='); readln (a[i]); end;min:=a[1];for i:=1 to n do if a[i]<=min then begin min:=a[i]; j:=i; end;for i:=1 to n do writeln ('а[',i,']=',a[i]);writeln('min=',min,' №min=',j);end. Задание на самоподготовку Заполнить массив случайными целыми числами из интервала от -7 до 25.Дан целочисленный массив, c числом элементов N, вывести все его нечетные элементы в начиная с конца и их сумму.Написать программу, которая вычисляет, сколько раз введенное с клавиатуры число встречается в массиве.Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковыми значением. Одномерный массив Суммирование (произведение) элементов.Поиск в массиве максимального (минимального) элементов и их индексов.Поиск совпадений.Сортировка массива по убыванию и возрастанию. Одномерный массив суммирование Создать массив 100 целых случайных чисел из интервала [2;9].Найти: количество совпадений с числом введенным с клавиатуры;сумму чисел кратных трем;произведение всех чисел массива. const n = 100;var a: array[1..n] of integer; sum, pr, x : real; i,sov: integer;begin for i := 1 to n do a[i]:=Trunc(random*(9-2+1))+2; for i := 1 to n do writeln ('a[',i,']=',a[i]); writeln ('введите число для поиска'); read (x); sov:=0; for i := 1 to n do if x=a[i] then sov:=sov+1; sum := 0; for i := 1 to n do if a[i] mod 3 = 0 then sum := sum + a[i]; pr := 1; for i := 1 to n do pr := pr * a[i]; writeln('Число совпадений: ', sov); writeln('Сумма элементов: ', sum:10:2); writeln('Произведение элементов: ', pr:20:2);end. Двумерный массив Массив – набор элементов одного типа, имеющих общее имя, и разные номера (индексы).Массив с двумя индексами называют двухмерным.Моделью двумерного массива является прямоугольная таблица элементов - матрица.Номер элемента состоит из двух чисел – номера строки, и номера столбца. Матрица 3х3 элемента Главная диагональ Обращение к элементам массива имеет вид: А [ i , j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце. Описание двумерного массива Описание матрицы в разделе var аналогично описанию одномерного массива, только необходимо указывать диапазон изменения столбцов и строк. Const n=10; m=12;Var a:array [1..n,1..m] of integer;ИлиVar B:array [1..10,1..12] of real; Ввод двумерного массива Паскаля с клавиатуры Writeln (‘Введите матрицу построчно’);For i:=1 to n doFor j:= 1 to m doBeginWrite (‘a[‘,i,’,’,j,’]=‘); Readln (a[i,j]);End; Ввод двумерного массива из генератора случайных чисел Randomize;For i:=1 to n do BeginFor j:=1 to m doBegina[i,j]:=random(11)+2;write(a[i,j],’ ‘);End;Writeln;End; Массив случайных целых чисел из интервала [2,12] Суммирование элементов массива Сумма всех элементов: sum:=0; for i:=1 to n do for j:=1 to m do sum:=sum+a[i,j]; writеln('Сумма=',sum); Сумма элементов главной диагонали (x[1,1], x[2,2] и т.д.): sum:=0; for i:=1 to n do sum:=sum+a[i,i]; writеln ('Сумма=',sum);Cумма по столбцам с записью в массив zum[1..m]: for j:=1 to m do zum[j]:=0; for i:=1 to n do zum[j]:=zum[j]+x[i,j]; for j:=1 to m do write(zum[j]:4); Максимальный (минимальный) элемент массива max:=a[1,1]; min:=a[1,1];for i:=1 to n dofor j:=1 to m dobeginif a[i,j]>max then max:=a[i,j];if a[i,j]a[i,j] then min:=a[i,j];if max