Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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



Читайте также:
  1. I. Гашение дуги с помощью полупроводниковых элементов
  2. II этап Развитие грудобрюшного типа дыхания с включением элементов дыхательной гимнастики А.Н. Стрельниковой
  3. II. Мышление и логика, логические законы, последовательность, долженствование, умозаключения и вывод
  4. II.3.2. Эффекты взаимного влияния элементов
  5. III. Выводы
  6. III. Выводы
  7. ORDER BY позволяет упорядочивать выводимые записи в соответствии со значениями одного или нескольких выбранных столбцов.

Прежде, в разделе описаний, массив надо описать. Как описывается двумерный числовой массив?

Первый способ

Type

t = array [1..m, 1..n] of integer;

Var

a: t;

Второй способ

Var

a: array [1..m, 1..n] of integer;

Третий и четвертый способы

Еще два способа описания массивов основываются на следующих соображениях.

В описании массива t = array [n1..n2] of s; в качестве базового типа s может выступать не только один из стандартных типов, т.е. real, integer, longint, но и ранее описанный в программе тип. Пусть тип s, в свою очередь, был описан как массив:

 

s = array [m1..m2] of integer;

 

и пусть переменная a - это переменная типа t, тогда a[k] - это переменная типа s, а a[i][j] - переменная типа integer.

Отсюда вытекает такой способ описания:

Type

s = array [1..m] of integer; {Описание массива строки}

t = array [1..n] of s; {Описание таблицы}

Var

a: t; {Описывается имя массива}

Таким образом, здесь мы видим последовательное описание, вначале строк, потом всей таблицы и наконец имени массива.

Такую запись можно сократить и сделать более компактной, например:

Type

t = array [1..m] of array [1..n] of integer;

Var

a: t;

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

Так, третий массив может быть описан следующим способом:

Const

m = 4; n = 5;

Type

s = array [1..m] of integer;

t = array [1..n] of s;

Var

a: t;

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

 

Пример 1. Рассмотрим программу ввода с клавиатуры массива чисел с последующим выводом в виде таблицы на экран.

 

Program Problem1;

Const

m = 4; n = 5;

Type

s = array [1..m] of integer;

t = array [1..n] of s;

Var

a: t;

i, j: integer;

Begin

for i:= 1 to n do

for j:= 1 to m do

Begin

write('Введите элемент ', i, '-й строки ');

write(j, '-го столбца '); readln(a[i, j])

end;

writeln('Заданный двумерный числовой массив');

for i:= 1 to n do

Begin

for j:= 1 to m do write(a[i, j]:6, ' ');

writeln

End

end.

Цикл по i, задает номера строк массива. После этого начинает работать цикл по j - по количеству элементов в строке, т. е. по количеству столбцов. Операторы write выдают запрос о вводе элементов. После ввода элементов одной строки, цикл по i повторяется и вводятся элементы следующей строки и так далее.

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

2. С другим способом ввода элементов массива вы уже знакомились при изучении работы с одномерными массивами.

Это - создание элементов с помощью функций случайных чисел: random(n) - для целых чисел или random*x - для вещественных.

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

Procedure create_two(n, m: integer; var a: t);

Var

i, j: integer;

Begin

writeln('Заданный двумерный массив целых чисел');

randomize;

for i:= 1 to n do

Begin

for j:= 1 to m do

Begin

a[i, j]:= random(201) - 100;

write(a[i, j]:6, ' ')

end;

writeln

End

End;

Пример 2. В двумерном массиве a(n, m) найдите номер и значение наибольшего элемента.

 

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

 


Дата добавления: 2015-07-11; просмотров: 138 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.009 сек.)