Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример программы вывода двумерного массива Паскаля




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

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

Ввод двумерного массива Паскаля.

Для последовательного ввода элементов одномерного массива мы использовали цикл for, в котором изменяли значение индекса с 1-го до последнего. Но положение элемента в двумерном массиве Паскаля определяется двумя индексами: номером строки и номером столбца. Это значит, что нам нужно будет последовательно изменять номер строки с 1-й до последней и в каждой строке перебирать элементы столбцов с 1-го до последнего. Значит, нам потребуется два цикла for, причем один из них будет вложен в другой.

Рассмотрим пример ввода двумерного массива Паскаля с клавиатуры:

type
matrix= array [1..5, 1..10] of integer;

var
a,: matrix;

i, j: integer; { индексы массива }

begin
for i:=1 to 5 do {цикл для перебора всех строк}

for j:=1 to 10 do {перебор всех элементов строки по столбцам}

readln (a [ i, j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце}

 

Двумерный массив Паскаля можно заполнить случайным образом, т.е. использовать функцию random (N), а также присвоить каждому элементу матрицы значение некоторого выражения. Способ заполнения двумерного массива Паскаля выбирается в зависимости от поставленной задачи, но в любом случае должен быть определен каждый элемент в каждой строке и каждом столбце.

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

for i:=1 to 5 do {цикл для перебора всех строк}

begin
for j:=1 to 10 do {перебор всех элементов строки по столбцам}

write (a [ i, j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции}
writeln; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки}

end;

Замечание (это важно!): очень часто в программах студентов встречается ошибка, когда ввод с клавиатуры или вывод на экран массива пытаются осуществить следующим образом: readln (a), writeln (a), где а – это переменная типа массив. При этом их удивляет сообщение компилятора, что переменную этого типа невозможно считать или напечатать. Может быть, вы поймете, почему этого сделать нельзя, если представите N кружек, стоящих в ряд, а у вас в руках, например, чайник с водой. Можете вы по команде «налей воду» наполнить сразу все кружки? Как бы вы ни старались, но в каждую кружку придется наливать отдельно. Заполнение и вывод на экран элементов массива также должно осуществляться последовательно и поэлементно, т.к. в памяти ЭВМ элементы массива располагаются в последовательных ячейках.

Задание 10

Для заданной вещественной матрицы размера 4х4 найти её максимальный элемент и указать строку и столбец, в которых он находиться.

Текст программы на языке Турбо Паскаль

 

Program Max_Elem;

Uses crt; {Подключение модуля работы с экраном}

var c:array[1..4,1..4] of real; i,j,str_max,stolb_max: integer; max:real; {Описание переменных}

Begin

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

randomize; {Установка генератора случайного числа на следующее значение }

writeln('Исходный массив:');

for i:=1 to 4 do begin writeln;

{Задание массива из случайных чисел, печать массива}

for j:=1 to 4 do begin

c[i,j]:=random(20);

write(c[i,j], ' ');

end;

end;

writeln;

max:=c[1,1]; {Поиск максимального и запоминание номера строки и столбца}

for i:=1 to 4 do

for j:=1 to 4 do begin

if c[i,j]>=max then

begin max:=c[i,j];

str_max:=i;

stolb_max:=j;

end;

end;

writeln('maximaln element=', max);

writeln('nahod v ', str_max, ' stroke ');

writeln('i v ',stolb_max, ' stolbce');

{Поиск чисел равных максимальному, вывод номеров их строк и столбцов}

for i:=1 to 4 do

for j:=1 to 4 do begin

if (c[i,j]=max) and (i<>str_max) and (j<>stolb_max) then

begin writeln('elementbI ravnbIe max',c[i,j]);

writeln('v ',i, ' stroke');

writeln('v ',j, ' stolbce');

end;

end;

repeat until keypressed; {Ожидание нажатия любой клавиши}

end.


Задания для самостоятельного выполнения

 

Составить программу, выбрав вариант задачи по номеру компьютера. Выве­сти результаты решения во внешний файл. Варианты заданий приведены в табл.5.

Таблица 5.

 

Вариант Задание
  С помощью генератора случайных чисел задать целочисленную матрицу размера 3x3. Найти суммы ее элементов по столбцам.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти суммы ее элементов по строкам.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти номер столбца с минимальной суммой элементов.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти номер столбца с максимальной суммой элементов.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти номер строки с минимальной суммой элементов.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти номер строки матрицы с максимальной суммой элемен­тов.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти максимальный элемент каждой строки.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти минимальный элемент каждой строки.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти максимальный элемент каждого столбца.
  С помощью генератора случайных чисел задать целочисленную матрицу размера 4x4. Найти минимальный элемент каждого столбца.
  Задана матрица А размера 4x4 с вещественными элементами. Найти и вывести на печать все нулевые элементы матрицы, а также указать в каких строках и столбцах они находятся.
  Для заданной вещественной матрицы размера 4x4 найти ее минимальный элемент и указать строку и столбец в которых он находится.
  Для заданной вещественной матрицы размера 4x4 на мно­жестве В элементов, для которых j>i, найти минимальный элемент и указать строку и столбец, в которых он находится.




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 1649; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.