Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр4_ОАиП_ОдномерныеМассивы_пзт.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
99 Кб
Скачать
☆

Описание массивов

Каждый из индексов массива находится в некотором диапазоне (<нач. элемент>…<кон. элемент>). Причем конечный элемент больше либо равен начальному элементу. В качестве диапазона можно использовать: Integer, Char, Boolean.

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

Var <перем. массив>: array[<диапазон 1>..<диапазон N>] Of <тип переменной>;

Пример: список студентов группы

Var Spisok: array[1..40] String[20];

Получение элементов массива

Каждый элемент массива - это переменная, которой можно присваивать значения в операторах и функциях. Для того, чтобы указать элемент массива, необходимо записать все его индексы.

<перем. массив>[<индекс>,..,<индекс N>]

Пример:

Spisok[1]:=’Иванов’;

Итак, Массив - это именованный набор элементов с фиксированным количеством однотипных данных, где каждый элемент имеет уникальный номер (индекс), и этот номер определяет местоположение элемента в массиве.

Ввод и вывод массива

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

Ручной ввод с клавиатуры

Вывод массива на экран в столбик

For i:=1 to n do

begin

write ( ‘ a[ ‘ , i , ’ ]= ’ );

readln ( a[ i ] ) ;

еnd ;

For i:=1 to n do

begin

writeln ( a[ i ]) ;

end.

Ввод массива с помощью датчика случайных чисел

Вывод массива на экран в строку

For i:=1 to n do

begin

a[ i ] :=random(35) ;

еnd ;

For i:=1 to n do

begin

write ( a[ i ]:3) ;

end.

Практическая часть Методы обработки одномерных массивов

Задача №1_Сумма элементов массива.

Пример программы, которая сначала вводит 30 реальных чисел, организовывает их хранение в массиве, определяет сумму элементов этого массива и выдаёт результат на экран.

PROGRAMM ex_1;

VAR

m: ARRAY[1..30] of real; {декларация массива}

i: integer; {параметр цикла FOR}

s: real; {сумма элементов}

BEGIN

FOR i:=1 TO 30 DO {заполнение массива}

Begin

Write('Введите элемент последовательности N ',i);

Readln(m[i]);

End;

s:=0; {обнуление счётчика суммы}

FOR i:=1 TO 30 DO s:=s+m[i]; {вычисление суммы}

Write('Сумма элементов последовательности равна ',s);

Readln; { пауза }

END.

Задача №2_Число положительных элементов массива

Пример программы, которая сначала вводит 30 реальных чисел, организовывает их хранение в массиве, определяет количество положительных элементов и выдаёт сообщение на экран.

PROGRAMM ex_2;

VAR

m: ARRAY[1..30] of real; {декларация массива}

i: integer; {параметр цикла FOR}

n: integer; {счётчик положительных эл-ов}

BEGIN

FOR i:=1 TO 30 DO {заполнение массива}

Begin

Write('Введите элемент последовательности N ',i);

Readln(m[i]);

End;

n:=0; {обнуление счётчика п. эл-ов}

FOR i:=1 TO 30 DO

if m[i]>=0 then n:=n+1; {вычисление количества п. эл-ов}

Write('Последовательность содержит ',n,' положительных эл-ов');

Readln; { пауза }

END.

Задача №3_Определение максимального элемента

Пример программы, которая сначала вводит 30 реальных чисел, затем организовывает их хранение в массиве, определяет значение и индекс (номер) максимального элемента этого массива и выдаёт сообщение на экран.

PROGRAMM ex_3;

VAR

m: ARRAY[1..30] of real; {декларация массива}

i: integer; {параметр цикла FOR}

max: real; {значение максимального элемента}

t: integer; {индекс (номер) макс. элемента}

BEGIN

FOR i:=1 TO 30 DO {заполнение массива}

Begin

Write('Введите элемент последовательности N ',i);

Readln(m[i]);

End;

max:=m[1]; {допустим, что 1-й элемент - максимален}

t:=1;

FOR i:=1 TO 30 DO

if m[i]>max then {проверка нашего утверждения}

begin

max:=m[i];

t:=i;

end;

Writeln('Максимальный элемент последовательности равен ',max);

Writeln('Номер максимального элемента ',t);

Readln; { пауза }

END.

Задача №4_ Поиск элемента в неупорядоченном массиве

Пример программы, которая сначала вводит 30 реальных чисел, организовывает их хранение в массиве, затем запрашивает так называемое "контрольное число". После этого проверяет, есть ли в массиве элемент,

который равен контрольному числу.

PROGRAMM ex_4;

VAR

m: ARRAY[1..30] of real; {декларация массива}

i: integer; {параметр цикла FOR}

p: real; {значение искомого элемента}

t: integer; {индекс (номер) иском. элемента}

BEGIN

FOR i:=1 TO 30 DO {заполнение массива}

Begin

Write('Введите элемент последовательности N ',i);

Readln(m[i]);

End;

Write('Введите контрольное число ');

Readln(p);

t:=0; {допустим, что в массиве нет такого элемента}

FOR i:=1 TO 30 DO

if m[i]=p then {проверка нашего утверждения}

begin

t:=i;

write('Эл. N ',i,' равен искомому');

end;

if t=0 then write('В массиве нет такого элемента');

Readln; { пауза } END.

Задача №5_ Дан массив А на 5 значений. Суммировать значения элементов массива до появления первого отрицательного элемента, т.е. значения A[I]<0. Полученную сумму вывести.

Const a : array[1..5] of real = (7, 5, 1, -2, 4);

Label m;

Var s : real; i : integer;

Begin s :=0;

for i:=1 to 5 do

begin if a[i]<0 then goto m; s :=s+a[i];

end;

m: writeln(‘s=’, s:12);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]