Ввод и вывод числовых значений массива

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производятся поэлементно. Инициализацию массива (присваивание начальных значений) можно организовать с помощью оператора присваивания. Однако чаще всего они вводятся с клавиатуры с помощью оператора Read с использованием счетного оператора цикла For.

Рассмотрим несколько фрагментов программ инициализации массива.

Второй вариант: For i:=1 to 10 do Begin Write(‘введи’, i:2, ‘-й элмент=’); ReadLn(A[i]); End;
Пример 7.1. Организовать ввод 10 элементов массива А с клавиатуры.

Первый вариант

For i:=1 to 10 do

ReadLn(A[i]);

Пример 7.2. Сформировать последовательность чисел 12, 22, 32,……n2 и оформить ее в виде одномерного массива.

For k:=1 to 10 do A[i]:=k*k;

Пример 7.3. Cформировать (сгенерировать) одномерный массив случайных чисел.

Используем стандартную функцию Random(x),котораявозвращает случайное число из диапазона от 0 до Х. Эта же функция без аргумента, Random,генерирует случайное число из диапазона от 0 до 1. Функция Randomize– обеспечивает несовпадение случайных чисел, генерируемых функцией Random.

Randomize;

For i:=1 to 10 do

Begin

A[i]:=Random(2)+5;

B[i]:= Random;

End;

В результате выполнения этого фрагмента программы будет создан массив А, который содержит десять случайных чисел из диапазона от 5 до 7, а массив В – десять случайных чисел из диапазона от 0 до 1. Функция Randomize позволяет получать различные значения элементов массивов при каждом обращении к этому фрагменту программы.

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

Пример 7.4. Вывести значения элементов массива на экран.

For k:=1 to 10 do Writeln (С[k]);

Десять значений элементов массива С будут выведены на экран в столбец. Заменив оператор Writeln на Write, вывод элементов массива будет произведен в строку.

Действия над элементами массива

Рассмотрим несколько типичных примеров обработки элементов массива.

Пример 7.5. Вычислить сумму (Sum) четных элементов массива X[N], введенных с клавиатуры.

Введем обозначения:

N – количество элементов массива;

i – переменная, выполняющая функции параметра цикла и одновременно индекса элементов массива.

Для определения четности числа используем операцию целочисленного деления (остаток):

Приведем блок-схему и программу для этого примера.

Блок-схема

Program D-Array;

Const N=50;

Var X:Array[1..N] of real;

i: integer;

Sum: real;

Begin

Readln(N); {значение N не должно превосходить 50}

Sum:=0;

For i:=1 to N do

begin

readln(X[i]); {тело цикла}

If X[i] div 2=0 then sum:=sum+X[i];

end;

Writeln(sum);

End.

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

Пример 7.6. Вычислить максимальный элемент массива X[n], n=10.

Перед началом поиска максимального элемента допустим, что его первый элемент и является максимальным. Это запишется так Max:=X[1]. Далее циклически, начиная со второго элемента, сравниваем элементы массива с максимальным элементом. Если очередной элемент массива больше, чем максимальный, то следует считать его значение максимальным. Программа запишется следующим образом:

Program Demo-Array;

Var X:Array[1:10] of real;

i: integer;

Begin

For i:=1 to 10 do readln(X[i]); {ввод массива}

Max:=X[1] {считать 1-й элемент максимальным}

For i:=2 to 10 do

If X[i] > Max then Max:=X[i];

Writeln(Max);

End.

В следующих примерах будем записывать лишь фрагменты программ.

Пример 7.7. Выяснить, сколько элементов массива имеют нулевые значения.

Введем переменную k, назовем ее счетчиком и обнулим его. Далее циклически проверяем условие A[i]=0 и если оно выполняется, добавляем единицу в счетчик.

k:=0; {счетчик}

For i:=1 to n do

If A[i]=0 then k:=k+1;

Пример 7.8. Обменять значения 1-го и 10-го элементов массива A[N].

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

V:=A[10];

A[10]:=A[1];

A[1]:=V;

Во всех этих примерах мы рассматривали явное описание массивов в разделе Var. В следующем примере рассмотрим неявное описание массива.

Пример 7.9. Используя процедуру, вычислить максимальный элемент массива из N элементов.

Назовем процедуру Max_Arr и оформим ее по аналогии c примером 7.6.

Инициализацию элементов массива произведем введением с пульта. Программа имеет вид

Program D_Array; {Поиск максимального элемента массива}

Type Masiv=Array[1..20] of integer;

Var MM,n,i :integer; A: Masiv;

Procedure Max_Arr(m: integer;X: Masiv; Var Max: integer);

Var k:integer;

Begin

Max:=X[1];

For k:=2 to m do If X[k]>=Max then Max:=X[k];

End;

{Основная программа}

Begin

Write(' Введите размер массива n=');Readln(n);

For i:=1 to n do Readln(A[i]); {ввод элементов массива}

Max_Arr(n, A, MM); {вызов процедуры}

Writeln('Максимальный элемент =' ,MM:3);

End.

Проследим соотношение формальных и фактических параметров процедуры Max_Arr.

процедура Max_Arrосновная программа

Формальные параметры Фактические параметры


Двухмерный массив

Характерным примером двумерного массива является матрица, например,

Каждый элемент этого массива однозначно определяется двумя индексами, номером строки и номером столбца, на пересечении которых этот элемент стоит. Каждый элемент этого массива имеет имя A[i, j], где i=1, 2,..,5 - номер строки, а j=1, 2, ..,7 – номер столбца, на пересечении которых этот элемент стоит.

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

Var A : Array[1..5,1..7] of real;

или

Const m=5, n=7;

Var A : Array[1..m, 1..n] of real;

Поняття про відчуття. Їх роль у регуляції діяльності людини
Афганистан и СССР с 1917 по 197 3 год
Підготовчі роботи
Вопрос 1. Факторы и движущие силы становления личности.
Перелом човноподібної кістки
Исследование эффективности группы
БЕЛАРУСКАЯ МОВА НА ПАЧАТКУ XXI ст.
Создание естественного дыхания.
Порядок виконання роботи
Налоговым периодом по единому налогу на вмененный доход налогу признается квартал.
народов Российской Федерации
Радиационный баланс земной поверхности
Логістичні системи класифікуються за такими ознаками.
Лекція 1. Наука як сфера людської діяльності. Класифікація наук. Наукова школа
Шпаргалка по договорному праву
Высшие и низшие качества: как их различить?
Вступ. Завдання та основні поняття оцінки вартості майна
Формати креслеників і оформлення креслярських аркушів
ДИЕТИЧЕСКАЯ КОРРЕКЦИЯ СИНДРОМА РВОТЫ И СРЫГИВАНИЙ У ДЕТЕЙ ГРУДНОГО ВОЗРАСТА
Определите стиль данного текста. Докажите свою точку зрения. С какой целью автор фельетона использует официально-деловой стиль? Что способствует созданию комического эффекта в данном тексте?
Выбор темы квалификационной работы и назначение научного руководителя.
Та суміжних прав
Проблема познаваемости мира.
Главная Страница