Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ГОСТу.doc
Скачиваний:
19
Добавлен:
14.11.2019
Размер:
10.65 Mб
Скачать

8.3. Инициализация элементов массива

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

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

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

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле, изменяя при каждой итерации значение индекса.

Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами. Первый способ - с использованием типизированных констант, например:

Type

Mass= Array [1..10] Of Real;

Const

K: Mass=(0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3);

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

Type

Mass3x2= Array[1..3,1..2] Of Integer;

Const

L: Mass3x2=((1,2), (3,4), (5,6));

Пример 8.1. Ввод элементов одномерного массива с клавиатуры

A: Array [1..10] Of Integer.

For i:=1 To 10 Do

Begin

Write ('Введите A[',i,']');

Read (A[i]);

End;

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

Randomize;

For i:=1 To 10 Do

A[i]:=Random(100);

Процедура Randomize инициализирует встроенный генератор случайных чисел. Функция Random(100) возвращает при каждой итерации случайное число в диапазоне от 0 до значения заданного аргументом (100-1).

Пример 8.2 Ввод элементов двумерного массива.

B: Array [1..20,1..20] Of Real.

For i:=1 To 20 Do

F or i:=1 To 20 Do

Begin

Write ('Введите B[', i,']');

Read (B[i])

End;

Аналогично показанному выше, можно использовать генератор случайных чисел.

8.4. Примеры выполнения задания

Пример 1. Пусть необходимо вычислить значения функции , в точках множества X={x1,x2,…,x15}, где xi0.

Program Example_8_1;

Uses Crt; {Подключение модуля}

Var

x,y: Array [1..15] Of Real; {Описываем переменные}

i: Integer;

Begin {Начало основной программы}

ClrScr; {Очистка экрана}

For i:=1 To 15 Do {Открываем цикл для ввода}

ReadLn (x[i]); {Вводим данные с клавиатуры}

For i:=1 To 15 Do {Открываем цикл для подсчета}

Begin {Начало тела цикла}

y[i]:=ArcTan(x[i])/Sqrt(x[i]); {Вычисления выражения}

WriteLn ('y[',i,']=',y[i],' x[',i,']=',x[i]); {Вывод результата}

End; {Конец тела цикла}

End. {Конец основной программы}

Пример 2. Изменить знаки отрицательных элементов массива B[4,5] на противоположные.

Program Example_8_2;

Uses Crt; {Подключение модуля}

Var

i,j: Integer;

b: Array[1..4,1..5] Of Real; {Описываем переменные}

Begin {Начало основной программы}

ClrScr; {Очистка экрана}

For i:=1 To 4 Do {Открываем внешний цикл}

For j:=1 To 5 Do {Открываем внутренний цикл}

ReadLn (b[i,j]); {Вводим данные с клавиатуры}

For i:=1 To 4 Do {Открываем внешний цикл}

For j:=1 To 5 Do {Открываем внутренний цикл}

If b[i,j]<0 Then {Проверка условие, если}

b[i,j]:=-b[i,j]; {истинно, то меняем знак}

For i:=1 To 5 Do {Открываем внешний цикл}

For j:=1 To 5 Do {Открываем внутренний цикл}

WriteLn (b[i,j]); {Вывод данных на экран}

End. {Конец основной программы}