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;
то,
Оператор отношения If А = В принимает значения True, если значение каждого элемента массива А равно соответствующему элементу массива В.
Оператор отношения If A <> B принимает значения True, если хотя бы одно значение элемента массива A не равно соответствующему элементу массива В.
В результате выполнения оператора присвоения А := В все значения элементов массива В присваиваются соответствующим элементам массива А. Элементы массива В не меняются.
Действия над элементами массива
После объявления массива каждый его элемент можно обработать, указав имя массива и индекс элемента (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;