Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
массивы в паскале.DOC
Скачиваний:
1
Добавлен:
22.11.2019
Размер:
117.76 Кб
Скачать

Пример работы программы:

Для каждой команды в одной строке введите через пробел число золотых, серебрянных и бронзовых медалей и нажмите <ENTER>

Буревестник

Динамо

Зенит

Спартак

** Итоговая таблица **

Клуб Золотые Серебрянные бронзовые Всего

1. Зенит 6 4 4 14

2. Буревестник 4 4 4 12

3. Спартак 3 3 4 10

4. Динамо 2 4 3 9

Ошибки при использовании массивов

При использовании массивов наиболее распространенной ошибкой является превышение индексом значения выражения верхней границы индекса, указанной при объявлении массива. Если в качестве индекса используется константа и ее значение превышает верхнюю границу, то такая ошибка обнаруживается на этапе компиляции. Например, во время компиляции программы

var

day:array[1..6] of string[11];

begin

day[1]:=‘Понедельник’;

day[7]:=‘Воскресенье’;

end.

будет выведено сообщение об ошибке для инструкции

day[7]:=‘Воскресенье’;

Если при обрашении к элементу массива в качестве индекса используется переменная или выражение, то возможно возникновение ошибки времени выполнения программы ( ). Например в программе, представленной ниже, ошибок времени компиляции нет.

var

temper:array[1..12,1..31] of real;

month,day:integer;

begin

writeln(‘Введите дату (число, номер месяца) и температуру воздуха’);

write(‘ ’);

readln(day,month,t);

temper[month,day]:=t;

end.

Однако если во время работы программы в ответ на запрос будет введена строка

-15 17 12

что соответствует -15 градусов 17 января, то при выполнении инструкции

temper[month,day]:=t будет выведено сообшение

Run time error 104;

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

var

temper:array[1..12,1..31] of real;

month,day:integer;

begin

writeln(‘Введите дату (число, номер месяца) и температуру воздуха’);

write(‘ ’);

readln(day,month,t);

if ((day)>31) or (month>12) or (day<1) or (month<1)

then writeln(‘Неверные данные.’)

else temper[month,day]:=t;

end.

Задания:

1.Дан одномерный массив, найти максимальный элемент и вывисти его порядковый номер.

2.Дан одномерный массив, найти минимальный элемент и вывисти его порядковый номер.

3.Дан одномерный массив, переставить максимальный и минимальный элементы.

4.Дан одномерный массив, упорядочить элементы массива по возрастанию.

5.Дан одномерный массив, упорядочить элементы массива по убыванию.

6.Дан одномерный массив, наити заданный элемент массива и вывисти его порядковый номер.

7.Дан одномерный массив, переставить два заданных элемента массива и вывисти их порядковые номера до и после перестановки.

8.Дан двумерный массив, найти максимальный элемент и вывисти его порядковый номер.

9.Дан двумерный массив, найти минимальный элемент и вывисти его порядковый номер.

10.Дан двумерный массив, переставить максимальный и минимальный элементы.

11.Дан двумерный массив, упорядочить элементы массива по возрастанию.

12.Дан двумерный массив, упорядочить элементы массива по убыванию.

13.Дан двумерный массив, упорядочить элементы заданного столбца по убыванию (по возрастанию).

14.Дан двумерный массив, упорядочить элементы заданной строки по убыванию (по возрастанию).

15.Дан двумерный массив, наити заданный элемент массива и вывисти его порядковый номер.

16.Дан двумерный массив, переставить два заданных элемента массива и вывисти их порядковые номера до и после перестановки.

17.Дан двумерный массив, заменить элементы заданной строки (столбца) на максимальный (минимальный) элемент.

Требования:

1.При создании программы использовать процедуры и функции.

2.Написать процедуру ввода элементов массива с клавиатуры и вывода элементов на экран (при решении задач с одномерным массивом).

3.Написать процедуру создания элементов массива используя генератор случайных чисел и вывода элементов на экран (при решении задач с двумерным массивом).