Массивы в языке программирования

Содержание

Слайд 2

Представьте, что Вы продаете билеты на поезд №167, в котором 10

Представьте, что Вы продаете билеты на поезд №167, в котором 10

вагонов. В каждом вагоне 40 мест. Чтобы продать следующий билет, Вам надо знать, сколько свободных мест осталось к каждом вагоне. А если таких поездов у Вас более десятка. Как все запомнить? Давайте представим информацию о каждом поезде в следующем виде:
Получаем, набор объектов одинакового типа (сколько свободных мест в вагоне), связанных между собой, и имеющих свой порядковый номер (номер вагона) и общее имя (номер поезда).

Такую таблицу называют линейной. Она представляет собой последовательность упорядоченных чисел.

Слайд 3

Массив – набор объектов одного типа, имеющих одно имя, но у

Массив – набор объектов одного типа, имеющих одно имя, но у

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

Массив, хранящий линейную таблицу, называется одномерным, прямоугольную таблицу — двумерным.

Слайд 4

Примеры описания одномерных массивов ( имеющих только один индекс): Type Mas=Array[1..10]

Примеры описания одномерных массивов ( имеющих только один индекс):

Type
Mas=Array[1..10]

of Real;
Var
f,y:Mas;
Описание специального массива типа Mas-массив из 10 элементов дробного типа. После идёт описание переменных этого типа.

Const
nn=50;
Var
r,t:Array[1..nn] of Integer;
Задана постоянная величина, которая не изменяется в ходе программы. А потом описаны переменные типа массив.

Var
r,t:Array[1..17] of Real; переменные описаны сразу в разделе описания переменных. Этот способ неудобен, если надо изменить количество элементов в массиве.

Слайд 5

Задача №1. Описать массив h из 5 элементов целого типа и

Задача №1. Описать массив h из 5 элементов целого типа и

ввести с клавиатуры значения всех элементов.

Работа с массивами значительно упрощается при использовании циклов:

Слайд 6

Пример №2. Опишите массив m из 15 элементов целого типа. Присвойте

Пример №2. Опишите массив m из 15 элементов целого типа. Присвойте

5-му элементу значение 55, 12-му элементу значение 6. Первому элементу присвойте значение = сумме 5-го и 12-го элементов. Последнему – значение их разности, во второй элемент положите среднее арифметическое первого и последнего элементов.
Слайд 7

Задача №3. Сгенерировать случайным образом массив w из 33 элементов целого

Задача №3. Сгенерировать случайным образом массив w из 33 элементов целого

типа.

Процедура Randomize используется вместе с функцией Random. Она устанавливает генератор случайных чисел в его последовательность из 232 псевдослучайных чисел.

Слайд 8

Вычисление суммы и среднего арифметического всех элементов массива и элементов из заданного диапазона. *

Вычисление суммы и
среднего арифметического всех элементов массива и элементов из

заданного диапазона.

*

Слайд 9

Цель: Закрепить основные навыки работы с массивами. Научиться вычислять среднее арифметическое

Цель: Закрепить основные навыки работы с массивами. Научиться вычислять среднее арифметическое

всех элементов и найти особенность при вычислении среднего арифметического из заданного диапазона.
Слайд 10

Представьте себе, что Ваш начальник требует от вас сдать сведения: сколько

Представьте себе, что Ваш начальник требует от вас сдать сведения: сколько

в каком поезде в целом осталось свободных мест. Что для этого Вам надо сделать? Сложить все значения элементов в таблице.
Скажем тоже самое, но для массива: просматривать все элементы массива и добавлять их в сумму. Операция добавления к сумме слагаемого уже известна, а просмотреть элементы массива можно при помощи цикла.
Слайд 11

Пример №1. Найти сумму элементов массива h из 5 элементов целого

Пример №1. Найти сумму элементов массива h из 5 элементов целого

типа, введенного с клавиатуры.

Const nn = 5;
Var
h : Array[1..nn] of Integer;
sum, t : Integer;
Begin
WriteLn (‘Введите 5 значений’);
For t : =1 to nn do
Begin
ReadLn (h[t]);
sum := sum + h[t];
End;
WriteLn (‘Sum =’, sum :6);
End.

Слайд 12

Пример №2. Найти количество учеников, которые написали контрольную на оценку выше

Пример №2. Найти количество учеников, которые написали контрольную на оценку выше

6.

UsesCrt;
Const nn = 16;
Var
w: Array[1.. nn] of Integer;
k, t : Integer;
Begin
Randomize;
For t : =1 to nn do
w[t] := Random(13);
WriteLn (‘Получен массив:’);
For t : =1 to nn do
Write (w[t]:4);
k := 0;
For i := 1 to nn do
If w[i]>6 Then k := k+1;
Writeln ('Хорошистов ', k:5);
End.

Слайд 13

Задача 3. Определить, содержит ли массив A[1..20] случайных чисел число Х, введенное с клавиатуры.

Задача 3. Определить, содержит ли массив A[1..20] случайных чисел число Х,

введенное с клавиатуры.
Слайд 14

Поиск минимального элемента min := a[1]; k :=1; for i :=

Поиск минимального элемента

min := a[1]; k :=1; for i := 1

to n do begin if A[i] < min then min := A[i]; k:=i; end; writeln (a[k]);
Слайд 15

Поиск максимального элемента max := a[1]; k :=1; for i :=

Поиск максимального элемента

max := a[1]; k :=1; for i :=

1 to n do begin if A[i] > max then min := A[i]; k:=i; end; writeln (a[k]);
Слайд 16

Задача 4. В массиве М[1:10] заменить отрицательные элементы нулями, если М[i]

Задача 4. В массиве М[1:10] заменить отрицательные элементы нулями, если М[i] [-5,10]

Program

4;
Begin {заполняем таблицу}
for i:=1 to 10 do
begin M[i]:=15*random-5;
writeln (M[i]); end;
for i:=1 to 10 do
If M[i]<0 then M[i]:=0;
{печатаем таблицу}
For i:=1 to 10 do
Writeln (‘M[‘,I,’]’, M[i]);
end.
Слайд 17

Пример №5. Найти среднее арифметическое тех элементов массива, значение которых превосходит

Пример №5. Найти среднее арифметическое тех элементов массива, значение которых превосходит

6.

Среднее арифметическое - это сумма элементов, деленная на их количество. Суммировать надо только те элементы , которые удовлетворяют указанному условию Следовательно суммировать их надо при выполнении условия, а значит в условном операторе.
Решение останется такое же как в предыдущей задаче, за исключением строки с условием. Она будет выглядеть так:
If w[i]>6 Then Begin k := k+1;
sum : =sum + w[i];
End;

Слайд 18

Задача 6. Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший

Задача 6. Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший

элемент  массива и его индекс.

program  p6 ; const  n = 12;  (*константа n определяет размер массива в описании*) type m  = array [1..n] of   real ;      (*  m – тип массива mas  *) var    mas : m ; i , num : integer;   max : real; begin for i:=1 to n do       (*ввод элементов массива mas по 1 в строке*) begin writeln(‘введите элемент массива’, i) ;  read  (mas[i]); end; num :=1;  max := mas [1]; for  i: =2 to n  do if  mas [ i ] > max  then     begin max := mas [i ]; num := i ; end; writeln;       (* вывод   массива     в строку*) for i:=1 to n do    write (mas [ i ]:5:1 );   writeln;  writeln (‘максимальный элемент = ‘, max:4:1,‘   его индекс=’ ,num ); readln; end.