Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛП_Спец_Информатика_ФГОС.doc
Скачиваний:
11
Добавлен:
16.08.2019
Размер:
1.36 Mб
Скачать

Лабораторная работа №5. «массивы».

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

Задачи:

  1. Изучить заполнение одномерного массива.

  2. Научиться выводит на экран значений элементов одномерного массива.

  3. Ознакомиться с нахождением суммы элементов одномерного массива;

  4. Выполнить задания по теме.

  5. Оформить отчет по лабораторной работе и представить преподавателю.

Краткая теория по теме:

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

Элемент массива – отдельная переменная, входящая в массив.

Размерность массива – количество элементов, которое содержит массив.

Индекс элемента массива – номер элемента массива.

Все элементы массива являются данными одного типа.

Индекс элемента i, как правило, целого типа, объявляется в разделе описания переменных.

Одномерным массивом называют массив, в котором для указания местоположения элемента достаточно одного индекса.

Обозначение элементов одномерного массива: рядом с именем в квадратных скобках записывается индекс, например:

A[1] – первый элемент массива;

A[5] – пятый элемент массива;

A[i] – i-тый элемент массива.

Существует несколько основных алгоритмов, используя которые можно решить любую задачу по обработке одномерных массивов:

  1. Заполнение одномерного массива значениями;

  2. Вывод на экран значений элементов одномерного массива;

  3. Нахождение суммы элементов одномерного массива;

  4. Подсчет количества элементов, удовлетворяющих заданному условию;

  5. Поиск максимального (минимального) элемента одномерного массива и его номера.

Примеры описания одномерного массива:

type

a= array [1..100] of real;

var

b: array [1..50] of integer;

m1: a;

или

const

n=75;

var

c: array [1..n] of integer;

В качестве индекса может выступать любой дискретный тип, кроме longint. Элементами массива могут быть значения любого типа.

При решении задач используют основные алгоритмы для работы с массивами:

  1. заполнение массива

{ цикл с параметром, где i – индекс элемента, n – количество элементов в массиве } for i :=1 to n do

read ( a [ i ] );

  1. вычисление суммы элементов массива:

. . .

s := 0;

for i :=1 to n do

s := s + a [ i ];

  1. поиск максимального ( минимального ) элемента:

массива:

max := a [ 1 ];

imax := 1;

for i :=1 to n do

if a [ i ] > max then

begin

max := a [ i ];

imax := i;

end;

Пример 1. Дан массив вещественных чисел. Найти сумму всех элементов массива.

Блок-схема:

Описание блок-схемы

Блок 1. Начало программы

Блок 2. Описание и ввод данных

Блок 3, 4. Ввод элементов массива

Блок 5. Задается начальное значение суммы

Блок 6, 7. Подсчет суммы элементов массива

Блок 8,9. Вывод на экран массива

Блок 10. Вывод на экран полученной суммы

Блок 11. Конец программы

Листинг программы:

program SUM;

const

nn=100;

var

i, n: integer;

S: real;

A: array [1..nn] of real;

BEGIN

write('n= ');

readln(n);

for i:=1 to n do

read(a[i]);

S:=0;

for i:=1 to n do

S:=S+A[i];

for i:=1 to n do

write (a[i]:4:1,' ');

writeln;

write('S= ',S:4:1);

END.

Пример 2. Дан массив целых чисел. Найти максимальный элемент массива.

Блок-схема

Описание блок-схемы

Блок 1. Начало программы

Блок 2. Описание и ввод данных

Блок 3,4. Ввод элементов массива

Блок 5. Определение первоначального

значения переменной Max

Блок 6. Определение первоначального значения переменной MaxI

Блок 7-10. Поиск максимального элемента и его номера

Блок 11. Вывод на экран максимального элемента и его номера

Блок 12, 13. Вывод на экран элементов Массива

Блок 14. Конец программы

Листинг программы

Program Maxy;

const

nn=100;

var

i, n, maxi, max: integer;

a: array [1..nn] of integer;

BEGIN

write ('n= ');

read(n);

for i:=1 to n do

read(a[i]);

max:=a[1];

maxi:=1;

for i:=1 to n do

if a[i]>max then begin

max:=a[i];

maxi:=i;

end;

writeln(' max= ',max,' maxi= ',maxi);

for i:=1 to n do

write(a[i],' ');

end.