Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП_1 / ПАСКАЛЬ.doc
Скачиваний:
41
Добавлен:
25.02.2016
Размер:
2.11 Mб
Скачать

2 Ход работы

Задание 1. Изучите теоретический материал, используя также дополнительные источники информации и ответьте письменно на контрольные вопросы.

Задание 2. Решите следующие задания и результаты выполнения запишите в отчет.

1. Определить и выдать на экран сумму элементов xi, значение переменных xi ввести с клавиатуры.

2. (решите двумя способами) Найти и выдать на экран n-ый член числовой последовательности, вычисляемый по формуле ai=|2 + sin i |i Значение n ввести с клавиатуры.

3. Разработать программу для определения и выдачи на экран значение функции Z.

Исходное значение n, m ввести с клавиатуры.

4. Найдите и выдайте на экран значение разности между максимальным и минимальным значениями функции y=2/esinx при изменении x от a до b с шагом h. Исходные данные a, b, h ввести с клавиатуры.

Занятие 6 Разработка и отладка программ с использованием линейных, одномерных и двумерных массивов

ЦЕЛЬ РАБОТЫ - сформировать представление об одномерных массивах; научить применять знания для организации массивов в программах; развивать умения по использованию структурных типов данных для составления программ на языке Turbo Pascal

1 Теоретические ОСНОВЫ

Массивы – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. В массиве можно использовать и другие типы данных, поэтому существуют массивы записей, указателей, строк, массивов и т. д. Тип элементов массива называется базовым. Число элементов массива фиксируется при описании и в процессе выполнения программы не меняется. Доступ к каждому отдельному элементу осуществляется путём индексирования элементов массива. Индекс представляет собой выражение любого скалярного типа, кроме вещественного. Если в такой форме описания массива задан один индекс, массив называется одномерным, если 2 — двумерным, если n индексов — n-мерным. Размерность массива ограничивается объёмом памяти.

Описание массивов. Массивы могут описываться в разделах:

  • только в разделе переменных – используется как классический прием описания массивов;

  • в разделах типов и констант – используется для инициализации массива начальными значениями при запуске программы;

  • только в разделе констант – так же, как и в предыдущем случае используется для инициализации массива начальными значениями;

  • в разделах типов и переменных – используется для описания нескольких массивов одного типа.

Формат описания массива в разделе переменных:

Var

<идентификатор>:array[тип_индекса] of <тип_компонент>;

Пример описания массивов в разделе переменных:

Var

M1 : array[1..10] of byte;

M2 : array[1..5] of real;

Формат описания массива в разделах типов и констант:

Type

<имя_типа> = array[тип_индекса] of <тип_компонент>;

Const

<идентификатор>:<имя_типа>=(значения_элементов);

Пример описания массивов в разделах типов и констант:

Type

Mas1 = array[1..10] of byte;

Mas2 = array[1..5] of real;

Const

M1 : Mas1 = (0,1,2,3,4,5,6,7,8,9);

M2 : Mas2 = (0.1,0.4,0.6,0.8,1.0);

Формат описания массива в разделе констант:

Const

<идентификатор>:array[индекс] of <тип_компонент> = (значения_элементов);

Пример описания массивов в разделе констант:

Const

M1 : array[1..10] of byte = (0,1,2,3,4,5,6,7,8,9);

M2 : array[1..5] of real = (0.1,0.4,0.6,0.8,1.0);

Формат описания массива в разделах типов и переменных:

Type

<имя_типа> = array[тип_индекса] of <тип_компонент>;

Var

<идентификатор>:<имя_типа>;

Пример описания массивов в разделах типов и переменных:

Type

Mas1 = array[1..10] of byte;

Mas2 = array[1..5] of real;

Var

M1,M3,M5:Mas1;

M2,M4,M6:Mas2;

Для описания массива можно использовать предварительно определённые константы.

Пример

Const

G1 = 10; G2 = 5;

Var

M1 : array[1..G1] of byte;

M2 : array[1..G2] of real;

Элементы массива располагаются в памяти последовательно:

A[1], A[2], A[3], A[4]…, A[N]

Действия над массивами

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

Например, если массивы А и B объявлены как

Var

A, B: array[1..20] of real;

то,

  1. Оператор отношения If А = В принимает значения True, если значение каждого элемента массива А равно соответствующему элементу массива В.

  2. Оператор отношения If A <> B принимает значения True, если хотя бы одно значение элемента массива A не равно соответствующему элементу массива В.

  3. В результате выполнения оператора присвоения А := В все значения элементов массива В присваиваются соответствующим элементам массива А. Элементы массива В не меняются.

Действия над элементами массива

После объявления массива каждый его элемент можно обработать, указав имя массива и индекс элемента (Mas[2], A[4]). Индексированные элементы массива могут быть использованы, как и простые переменные (входить в выражения как операнды и использоваться с любыми операторами).

Ввод элементов линейного массива

Ввод массива осуществляется при помощи оператора повтора For, в котором изменяются индексы массива от первого (1) до последнего (размерности массива).

Пример: For i:=1 to 20 do

Read(a[i]);

Или

For i:=1 to 20 do:

ReadLn(a[i]);

Задание1.

В массиве A[n], состоящим из n – вещественных элементов, определить элемент с максимальном значением и его номер. Число n и элементы массива ввести с клавиатуры.

Решение1:

Program Pr_L6_1;

Var

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

Соседние файлы в папке ОАиП_1