shkolakz.ru 1
Тема: Массивы. Виды массивов. Ввод, вывод массивов.



Цель: описании одномерных массивов в языках программирования Turbo Pascal 7.0.

ПЛАН

I. Изучение нового материала.

Массивы. Виды массивов. Ввод, вывод массивов.

II. Решение задач.

III. Итог урока. Домашнее задание.

Ход урока

I
. Изучение нового материала.

1. Регулярные типы данных. Одномерные массивы. Работа с элементами.

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

Под
массивом понимается совокупность конечного числа данных одного типа. Массив обозначается одним именем. Так, всю совокупность действительных чисел 1.6, 14.9, -5.0, 8.5, 0.46 можно считать массивом и обозначить одним именем, например, А. Каждый элемент массива обозначается именем массива с индек­сом. Элементы массива упорядочены по значениям индекса.

В математике, как правило, индекс либо заключается в круглые скобки, либо указывается несколько ниже имени массива, напри­мер: А(1), А(2), А(3), А(4), А(5) или А1, А2, А3, А4, А5, или в общем виде {А(} , где 1 =1, 2, 3,..., п.

В Turbo Pascal 7.0. - в квадратные. Для рассмотренного примера элементами массива А являются:

На Turbo Pascal 7.0. А[1]:=1.6, А[2]:=14.9, А[3]: = -5.0, А[4]:=8.5, А[5]:=0.46.

Таким образом - индекс определяет положение элемента мас­сива данных относительно его начала.

Если в программе используется массив, то он должен быть описан.

Форма описания имеет вид

r имя массива: ARRAY [п1.. п2 ] ОF <тип элементов>;

Var a:[1..1000] of integer;



Здесь n1, n2 - номер первого и последнего элементов массива соответственно. В качестве типа элементов может использоваться любой тип данных, кроме файлового.

Если несколько массивов имеют одинаковый тип индексов и одинаковый базовый тип, то допускается в описании объединять массивы в список, например:

Vаr А, В, С: ARRAY [1..50] OF REAL.

Здесь объявлено списком три массива А, В, С действительных чисел, каждый из которых содержит по 50 элементов (от 1 до 50).

Нельзя путать понятия «индекс» и «тип индекса». Тип индекса используется только в разделе описания массива, а индекс указы­вается в разделе операторов для обозначения конкретных элемен­тов массива. При этом индекс должен быть того же типа, что и описание типа индекса.

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

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

В языке Turbo Pascal 7.0. помимо явного описания массивов в разделе переменных имеется другая форма описания, состоящая из двух этапов. Сначала в разделе описания типов ТУРЕ указыва­ется тип массива. Затем в разделе описания переменных Vаr пе­речисляются массивы, относящиеся к указанному типу.

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

Указание типов в разделе описаний помогает достичь логиче­ской ясности программы и является хорошим стилем программи­рования.


Описание массива в разделе типов ТYРЕ выглядит следующим образом:

Тyре massiv=array [п1..n2] ОF <тип элементов>.

Здесь: п1, п2- номер первого и последнего элементов массива, а тип массива определяется так же, как и в предыдущем описании. Определить переменную как массив можно непосредственно при ее описании

r А, В,С:massiv;;

Следует отметить, что массивы А, В, С используются в разделе операторов программы. Тип массива MASSIV введен формально только в разделе описаний и нигде в программе не указывается и не обрабатывается.

Следует отметить, что размерность массива задается при его описании и в процессе работы программы размерность массива изменять нежелательно.Применение индексированных переменных дает эффект лишь в том случае, когда сам индекс может быть переменной величиной. С помощью операторов цикла можно работать со списком, вклю­чающим 500 наименований, так же легко, как и со списком из 5 наименований.

Присвоение значений элементам массива может происходить с помощью:

Объявление
:

const N = 5;

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

Var i: integer;

Ввод
с клавиатуры:

for i:=1 to N do begin

write('a[', i, ']=');

read ( a[i] );

end;

Поэлементные операции:

for i:=1 to N do a[i]:=a[i]*2;

Вывод на экран:

writeln('Массив A:');

for i:=1 to N do
write(a[i],’’);

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


Переведём алгоритм для нахождения суммы 100 действительных чисел с использованием цикла для:

Program Summa;

Var i: integer; C: array [1..100] of real;

Begin

for i:=1 to 100 do

Begin

Write('C[',i,']='); {ввод элементов массива}

Read(C[i]);

End;

S:=0;

for i:=1 to l00 do

S:= S+C[i]; {вычисление суммы}

Writeln(s:10:3,'-сумма 100 цифр') {вывод результатов}

End.


II
. Решение задач.

Задача.. Сформировать таблицу из квадратов первых N нечетных чисел.

Аргументом нашей задачи будет число N - количество элементов линейной таблицы. Результат - линейная таблица, состоящая из квадратов нечетных чисел.

Идея решения. Каждый элемент таблицы получается по следующему закону:

А[1] = С*С,

где число С должно быть нечетным числом. Но как добиться того, чтобы это число было нечетным? Для этого вспомним свойство нечетных чисел: любые два нечетных числа отличаются друг от друга на 2. Стало быть для первого элемента число С должно быть 1, а каждое последующее получается с помощью команды присваивания:

С:=С+2.

Так как в задаче следует повторить процесс N раз,, то это будет циклический алгоритм типа для (цикл с параметром).

Соответствующая программа на Паскале:

Program kv_nech_chisel;

Var IC,N:integer; A:array[l..100] of integer;

Begin

Write('N=');

Readln(N); {ввод аргумента в память компьютера}

C:=l;

For I:=l to N do

Begin

A[I]:=C*C;

C:=C+2

End;

For I:=l to N do

Write(A[I],' ') {вывод элементов таблицы на экран}

End.

III. Итог урока. Домашнее задание.

Выводы. При решении задач на формирование таблиц следует учитывать, что

  • результатом решения является таблица (следует позаботиться о выводе
    ее элементов на экран);

  • самое главное в таких задачах - найти закон формирования таблицы;

  • это циклический алгоритм типа для (цикл с параметром).