массивы


Презентация изнутри:

Слайд 0

массивы


Слайд 1

цели: освоить теоретические знания о массивах и научиться: организовывать данные в виде таблиц; обосновывать выбор типа элемента массива; описывать табличные данные; писать и отлаживать программы, обрабатывающие массивы в среде Turbo Pascal.


Слайд 2

Массив – это упорядоченная совокупность однотипных данных, обозначенных одним именем.


Слайд 3

Можно ли описать массив на языке Паскаль, если неизвестно точное количество его элементов? Можно ли описать на языке Паскаль массив, если неизвестны точные значения элементов массива, но известен их физический смысл и/или диапазон значений?


Слайд 4

Одномерные массивы


Слайд 5

1, 2 …5 — номер элемента - индекс. А — имя массива Значения Индексы А[3]=? Имя массива Индекс Значение 1 11 9 7 5 9


Слайд 6

Описание массива <Имя> : array[<первый_элем>..<последн_элем>] of <Тип>; Например, var Mas : array[1..5] of Real; Назовите имя массива? Назовите зарезервированное слово для объявления массива? Сколько элементов в данном массиве?


Слайд 7

Пример: var a: array[1..100] of integer; b: array[1..100] of integer; c: array[1..100] of integer; или более кратко (компактно): var a, b, c: array[1..100] of integer;


Слайд 8

Заполнение массива с клавиатуры; через датчик случайных чисел; через оператор присваивания (по формуле)


Слайд 9

Способ 1 Ввод: For i:=1 to n do readln(a[i]); Вывод: For i:=1 to n do writeln(a[i]);


Слайд 10

Способ 2 Через датчик или генератор случайных чисел RANDOM(х). Randomize; For i:=1 to n do а[i]:=random(х);


Слайд 11

Если требуется, чтобы значения элементов массива выбирались из определенного интервала [a,b], то a+Random(b-a+1);


Слайд 12

Способ 3 По формуле: For i:=1 to n do а[i]:=i*3;


Слайд 13

Задача. Сформировать массив, содержащий n натуральных (целых) чисел a[i], пользуясь для ввода данных клавиатурой, и выдать полученный массив на экран дисплея. program mas01; uses crt; var n, i: integer; a: array[1..100] of integer; begin clrscr; write('Введи n='); readln(n); for i:=1 to n do begin write('Введи элемент массива 'a[', i, ']='); readln(a[i]); end; for i:=1 to n do write('a[', i, ']=', a[i]); readln end.


Слайд 14

Задача. Пользуясь случайными числами, сформировать два массива целых чисел a[i] и b[i], Получить третий массив c[i]=a[i] + b[i]. program massiv01; uses crt; var n, i: integer; a, b, c: array[1..100] of integer; begin clrscr; write('Введи n='); readln(n); randomize; for i:=1 to n do begin a[i]:=random(125); b[i]:=random(184); c[i]:=a[i] + b[i]; writeln('a[', i, ']=', a[i], ' b[', i, ']=', b[i], ' c[', i, ']=', c[i]); end; readln end.


Слайд 15

Задача. В некотором множестве, состоящем из n учащихся, известны данные о росте каждого ученика. Найти самого высокого и самого низкого из учеников и колебание роста между ними. Введем следующие обозначения: n - количество учеников i - индекс или порядковый номер ученика a[i] - массив, содержащий данные о росте каждого ученика. min - ячейка для ответа. Должна содержать рост самого низкого ученика max - ячейка для ответа. Должна содержать рост самого высокого ученика r - колебание в росте самого низкого и самого высокого учеников


Слайд 16

При поиске минимального и максимального роста учеников используется алгоритм сравнения Вначале первое число из массива ростов учащихся a[1] заносится в ячейки для ответа, то есть в min и max, и таким образом, a[1] принимается за минимальный и максимальный рост учеников. Далее последующие числа из массива ростов сравниваются со значениями min и max, и как только находится меньшее, чем min число, оно немедленно заносится в min вместо находившегося там числа. Аналогично и с максимальным ростом. Как только встречается в массиве ростов число, большее, чем число, находящееся в max, большее число заносится в max вместо прежнего числа. Так происходит до тех пор, пока не будет пересмотрен весь массив ростов учащихся. В результате будет найден минимальный и максимальный рост учеников и соотствтствующее колебание минимального роста по отношению к максимальному.


Слайд 17

program rostmas1; uses crt; var n, i, min, max, r: integer; a: array[1..100] of integer; begin clrscr; write('Введи n='); readln(n); for i:=1 to n do begin write('Введите рост ученика='); readln(a[i]); end; min:=a[1]; max:=a[1]; for i:=2 to n do begin if a[i]<min then min:=a[i]; if a[i]>max then max:=a[i]; end; writeln('min=', min, ' max=', max); r:=max - min; writrln('Колебание роста=', r); readln end.


Слайд 18

Нахождение суммы элементов массива S:=0; FOR I:=1 TO N DO S:=S + A[I];


Слайд 19

Нахождение произведения элементов массива P:=1; FOR I:=1 TO N DO P:=P * A[I];


Слайд 20

Найти максимальный элемент массива и сообщить его порядковый номер MAX:=A[1]; x:=0; FOR I:=2 TO N DO IF A[I] > MAX THEN Begin MAX:=A[I]; x:=I; END;


Слайд 21

1. Написать программу, которая формирует случайным образом массив из N целых чисел, лежащих в диапазоне от 1 до 5, после чего на экран выводится сам массив и номера элементов, совпадающих с первым элементом. Протестировать программу на трёх различных тестах. 2. Написать программу, которая вводит массив из N целых чисел и выводит на экран элементы, кратные числу K. Протестировать программу на следующих исходных данных: а) k=3 Массив: 2 6 -9 4 5 12 -15 б) k=4 Массив: 9 0 8 124 -16 11 19 3. Написать программу, которая вводит массив из N вещественных чисел, а затем заменяет в нём все элементы, превышающие данное число Z, этим числом. Вывести на экран полученный массив и количество замен. Протестировать программу на следующих исходных данных: а) Z=10 Массив: 1,2 2,6 3 -4,5 11  10,2 3,2 87 -15 б) Z=-2 Массив: 0 -3,1 11 -7,9 -2,1 -1,9 4 4. При поступлении в ВУЗ абитуриенты, получившие «двойку» на первом экзамене, ко второму не допускаются. В массиве A[N] записаны оценки экзаменующихся, полученных на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.  


Слайд 22

Двумерные массивы


Слайд 23

В математике квадратные и прямоугольные таблицы часто называют матрицами Первый индекс – номер строки Второй индекс – номер столбца M- строк N столбцов Матрица имеет размер М*N


Слайд 24

Описание массива <имя массива>:ARRAY[<m1>..<m2>,<n1>..<n2>] OF <тип>; Например, a: array [1..3, 1..6] of integer; Количество строк Количество столбцов Количество строк Количество столбцов Назовите имя массива? Назовите зарезервированное слово для объявления массива? Сколько элементов в данном массиве?


Слайд 25

Запись: <имя массива>[m, n] указывает на элемент, стоящий на пересечении m-ой строки и n-го столбца Например, а [2,3] указывает на элемент во 2-ой строке и 3-ем столбце VAR A:ARRAY[1..3,1..6] OF REAL;


Слайд 26

При решении задач с использованием двумерных массивов организуются вложенные циклы: For i:=1 to m do begin изменяется номер строки For j:=1 to n do begin изменяется номер столбца Запись массива: а[i , j]


Слайд 27

Опишите таблицу А, состоящую из 4 строк и 5 столбцов, заполните её случайными числами в интервале от 1 до 100. VAR A: ARRAY[1..4,1..5] OF INTEGER; RANDOMIZE; FOR I:=1 TO 4 DO FOR J:=1 TO 5 DO A[I,J]:=RANDOM(100);


Слайд 28

Опишите массив , значения элементов которого вычисляются в следующем фрагменте программы: FOR I:=1 TO 20 DO begin x:=x+1; FOR J:=1 TO 5 DO A[I,J]:= A[I,J] + x; End; VAR A:ARRAY[1..20,1..5] OF REAL;


Слайд 29

Нахождение суммы элементов массива


Слайд 30

Найти максимальный элемент массива и сообщить его порядковый номер MAX:=A[1,1]; x:=0; FOR i:=2 TO m DO FOR j:=1 TO n DO IF A[I,j] > MAX THEN Begin MAX:=A[I,j]; x:=i; END;


Слайд 31

Хозяйка ходит в магазин каждый день утром и вечером в течении недели. Она записывает свои расходы в такую табличку: Ввести все элементы массива и определить траты хозяйки утром и вечером в течении недели.


×

HTML:





Ссылка: