Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (Информатика).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

8.5.Ввод-вывод массивов

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

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

8.6. Примеры выполнения программ

Задача 1. В одномерном массиве A(10) поменять местами max и min элементы.

Структурограмма алгоритма решения этой задачи показана ниже. Действие определяемые ею сводятся к следующему. В начале загружается по схеме цикла For массив значений A[I] и организуется эхо-сигнал этих компонент массива А(10). Далее полагают max=A(1) и координату максимума К=1. Позже полагают min=A(1), а координату минимума L=1. Затем в схеме цикла For путем сравнения A(I) с предполагаемыми max и min отыскивают их истинные значения и координаты им соответствующие. По завершении цикла имеют истинные max и min с их координатами K и L. После чего меняют местами в массиве max и min. Далее осуществляют вывод элементов массива А(10) после перестановки в нем местами max и min.

program obmen;

USES CRT;

var

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

max,min: real;

I,k,l:integer;

begin

clrscr;

for i:=1 to 10 do

begin

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

readln(a[i]);

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

end;

max:=a[1];

k:=1;

min:=a[1];

l:=1;

for i:=2 to 10 do

begin

if max<=a[i] then

begin

max:=a[i];

k:=i

end;

if min>=a[i] then

begin

min:=a[i];

l:=i;

end;

end;

a[k]:=min;a[l]:=max;

writeln;

for i:=1 to 10 do

writeln ('a[',i,']=',a[i])

end.

Результат выполнения программы

Рис.1

Введите A[1]=2

a[1]= 2.00000000000000E+0000

Введите A[2]=3

a[2]= 3.00000000000000E+0000

Введите A[3]=54

a[3]= 5.40000000000000E+0001

Введите A[4]=65

a[4]= 6.50000000000000E+0001

Введите A[5]=3

a[5]= 3.00000000000000E+0000

Введите A[6]=5

a[6]= 5.00000000000000E+0000

Введите A[7]=436

a[7]= 4.36000000000000E+0002

Введите A[8]=5634

a[8]= 5.63400000000000E+0003

Введите A[9]=34

a[9]= 3.40000000000000E+0001

Введите A[10]=46

a[1]= 5.63400000000000E+0003

a[2]= 3.00000000000000E+0000

a[3]= 5.40000000000000E+0001

a[4]= 6.50000000000000E+0001

a[5]= 3.00000000000000E+0000

a[6]= 5.00000000000000E+0000

a[7]= 4.36000000000000E+0002

a[8]= 2.00000000000000E+0000

a[9]= 3.40000000000000E+0001

a[10]= 4.60000000000000E+0001

Задача 2. Загрузите матрицу размером не более чем 10x10 и выведите ее на экран.

program MATR;

const

N=10;

var

a:array [1..n,1..n] of real;