Меню Закрыть

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

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, как показано в примере инициализации, однако чаще всего они вводятся с экрана с помощью оператора Read или Readln с использованием оператора организации цикла for:

Ввод элементов одномерного массива А:

Аналогично значения двумерного массива вводятся с помощью вложенного оператора for:

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

for I := I to 10 do

for J := 1 to 15 do

В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки. Можно ввести и значения отдельных элементов, а не всего массива. Так, операторами:

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

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Writeln:

Вывод элементов одномерного массива А:

for I := I to 4 do

Вывод элементов двумерного массива В:

for I := I to 10 do

for J := 1 to 15 do

Копированием массивов называется присваивание значений всех элементов одного массива всем соответствующим элементам другого массива. Копирование можно выполнить одним оператором присваивания, например А:=D; или с помощью оператора for:

for I := 1 to 4 do

В обоих случаях значение элементов массива D не изменяется, а значения элементов массива А становятся равными значениям соответствующих элементов массива D. Очевидно, что оба массива должны быть идентичны по структуре.

Иногда требуется осуществить поиск в массиве каких-либо элементов, удовлетворяющих некоторым известным условиям. Пусть, например, надо выяснить, сколько элементов массива А имеют нулевое значение.

for I := 1 to 4 do

if A[I] = 0 then К := К + 1;

После выполнения цикла переменная К будет содержать количество элементов массива А с нулевым значением.

Читайте также:  State of decay возможные базы

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

Например, так запишется фрагмент программы, обменивающий значения первого и пятого элементов массива А:

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9364 — | 7302 — или читать все.

78.85.5.224 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Массивомназывают упорядоченный набор однотипных переменных (элементов). Каждый элемент имеет целочисленный порядковый номер, называемыйиндексом. Число элементов в массиве называют егоразмерностью. Массивы используются там, где нужно обработать сразу несколько переменных одного типа – например, оценки всех 20 студентов группы или координаты 10 точек на плоскости. Строку текста можно рассматривать как массив символов, а текст на странице – как массив строк.

Массив описывается в разделе varоператором следующего вида:

Var ИмяМассива: array [НижнийИндекс .. ВерхнийИндекс] of Тип;

НижнийИндекс– целочисленный номер 1-го элемента массива,

..– оператор диапазона Паскаля (именнодветочки!);

ВерхнийИндекс– целочисленный номер последнего элемента,

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

Var a: array [1..20] of integer;

Здесь мы описали массив с именем A, состоящий из 20 целочисленных элементов;

Var x,y : array [1..10] of real;

Описаны 2 массива с именами xиy, содержащие по 10 вещественных элементов;

Var t : array [0..9] of String;

Массив tсостоит из 10 строк, которые занумерованы с нуля.

Таким образом, размерность(число элементов) массива вычисляется как

ВерхнийИндекс – НижнийИндекс + 1

Для обращения к отдельному элементу массиваиспользуется оператор вида

Здесь Индекс– целочисленный номер элемента (может быть целочисленным выражением или константой). Индекс не должен быть меньше значения нижнего или больше верхнего индекса массива, иначе возникнет ошибка "Constantoutofrange". Отдельный элемент массива можно использовать так же, как переменную соответствующего типа.

Читайте также:  Спортмастер при покупке от 1000 рублей

Пока мы изучаем одномерныемассивы, в которых каждый элемент имеет один номер (индекс), характеризующий его положение в массиве. В математике понятию одномерного массива изnэлементов соответствует понятиевектора изnкомпонент:

Как правило, ввод, обработка и вывод массива осуществляются поэлементно, с использованием цикла for

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

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

Writeln (‘Введите элементы массива’);

For i:=1 to n do read (A[i]);

Размерность массива определена константой n, элементы вводятся по одному в циклеfor– при запуске этой программы пользователю придется ввести 10 числовых значений. При решении учебных задач вводить массивы "вручную", особенно если их размерность велика, не всегда удобно. Существуют, как минимум, два альтернативных решения:

Описание массива константудобно, если элементы массива не должны изменяться в процессе выполнения программы. Как и другие константы, массивы констант описываются в разделеconst, приведем пример такого описания:

const a:array [1..5] of real=(

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

Формирование массива из случайных значенийуместно, если при решении задачи массив служит лишь для иллюстрации того или иного алгоритма, а конкретные значения элементов несущественны. Для того, чтобы получить очередное случайное значение, используется стандартная функцияRandom(N), где параметромNпередается целое или вещественное число. Она вернет случайное число того же типа, что тип аргумента и лежащее в диапазоне от0доN-1включительно. Например, оператор видаa[1]:=Random(100);запишет вa[1]случайное число из диапазона [0,99].

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

Читайте также:  Как обратиться к президенту российской федерации

var a:array [1..20] of integer;

for i:=1 to 20 do begin

Еще более удобный путь – чтение элементов массива из текстового или двоичного файла. Об этом рассказывается в главах 21 и 22.

Обработка массива(в данном случае, вычисляется суммаsего положительных элементов)

Var b:array [1..5] of real;

Writeln (‘Введите 5 элементов массива’);

for i:=1 to 5 do read (b[i]);

for i:=1 to 5 do if b[i]>0 then s:=s+b[i];

Как видно из этого примера, к массивам применимы все типовые алгоритмы, изученные в теме "Циклы".

For i:=1 to 5 do write (b[i]:6:2);

Здесь 5 элементов массива bнапечатаны в одну строку. Для вывода одного элемента на одной строке можно было бы использовать операторwritelnвместоwrite

Если обработка массива осуществляется последовательно, по 1 элементу, циклы ввода и обработки зачастую можно объединить.

Пр. Найти арифметическое среднее элементов вещественного массиваtразмерностью 6 и значение его минимального элемента.

Var b:array [1..6] of real;

writeln (‘Ввод B[6]’);

for i:=1 to 6 do begin

if b[i] 0 then begin

For i:=-5 to 5 do begin

if abs(t[i]-s) max then begin

Writeln (‘Номер точки=’,num, ‘ расстояние=’,dist:8:2);

For i:=1 to 9 do begin

Writeln (‘Длина ломаной=’,len:8:2);

Пр. Задача формирования массива по правилу:

Задан массив Xиз 8 элементов. Сформировать массивYпо правилу

Y[i]= 4X[i], еслиI– четное

Cos2X[i], еслиI– нечетное

и найти количество его положительных элементов.

Var x,y: array [1..8] of real;

Writeln (‘Введите массив X из 8 элементов’);

Ввод и вывод массива, то есть заполнение массива пользователем программы и выдачу содержимого массива пользователю, можно делать по-разному. Рассмотрим далее два варианта ввода/вывода массива в консольном приложении — scanf/printf и cin/cout.

Ввод/вывод массива с помощью функций scanf и prntif

Функция scanf предназначается для ввода данных с клавиатуры.

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

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.