Главная
страница 1
Лабораторная работа №7

ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ
Цель работы:

Изучить принципы работы с двумерными массивами.


Общие сведения:

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



Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:



Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a21 – это элемент, стоящий во второй строке и в первом столбце.

На языке программирования Pascal двумерные массивы описываются так:

array [1..m, 1..n] of базовый_тип

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

описание массива через раздел type:

описание массива в разделе переменных:

const

M = 10;


N = 5;

type


matrix = array [1..M, 1..N] of integer;

var a: matrix;



const

M = 10;


N = 5;

Var a: array [1..M, 1..N] of integer;




Пример №1

Заполнить вручную двумерный массив.

Var matrix: array[1..3,1..5] of integer;

i, j: integer;

begin

{заполнение массива}



writeln ('Введите 15 чисел: ');

for i := 1 to 3 do

for j := 1 to 5 do

read (matrix[i,j]);

{вывод массива на экран}

for i := 1 to 3 do

begin

for j := 1 to 5 do



write (matrix[i,j]:5);

writeln


end;

readln


end.
Когда пользователь вводит очередное число, то процедура read считывает его и помещает в ячейку с текущими индексами i и j. Когда i равна единице, значение j меняется пять раз, и, значит, заполняется первая строка таблицы. Когда i равна двум, значение j снова меняется пять раз и заполняется вторая строка таблицы. Аналогично заполняется третья строка таблицы. Внутренний цикл for в общей сложности совершает 15 итераций, внешний только 3.

Как пользователь вводит значения – не важно. Он может их разделять либо пробелом, либо переходом на новую строку. Вывод значений двумерного массива организован в виде таблицы. Выводятся 3 строки по 5 чисел в каждой. Внутри строк числа разделяются пробелом.


На самом деле, это не совсем корректно написанная программа. Если мы захотим поменять размерность массива, то придется просмотреть всю программу (представьте, что она очень большая) и исправить значения. Это неэффективно. Поэтому в программе следует использовать константы. В случае чего их значения можно поменять всего лишь в одном месте.
Const M = 3;

N = 5;


var matrix: array[1..M,1..N] of integer;

i, j: integer;

begin

writeln ('Введите 15 чисел: ');



for i := 1 to M do

for j := 1 to N do

read (matrix[i,j]);

for i := 1 to M do begin

for j := 1 to N do

write (matrix[i,j]:5);

writeln

end;


readln

end.


Порядок выполнения работы:

  1. Изучить описание лабораторной работы.

  2. Разобрать примеры программ

  3. Решить задачу по индивидуальному варианту. Обязателен вывод исходного массива и результата.

  4. Продемонстрировать результаты выполнения работы преподавателю.

Варианты заданий:



Алешин

Заполнить двумерный массив на 20 элементов с помощью генератора случайных чисел в диапазоне от -10 до 10 включительно. Определить среднее арифметическое элементов второго столбца массива;



Аргентов

Заполнить с клавиатуры двумерный массив на 18 элементов. Определить сумму всех элементов третьей строки массива;



Ахмадиев

Заполнить двумерный массив на 20 элементов с помощью генератора случайных чисел в диапазоне от -10 до 10 включительно. Определить среднее арифметическое элементов второго столбца массива;



Бабкин

Заполнить с клавиатуры двумерный массив на 18 элементов. Определить сумму всех элементов третьей строки массива;



Болотнов

Заполнить двумерный массив на 15 элементов с помощью генератора случайных чисел в диапазоне от -10 до 10 включительно. Найти максимальный элемент и заменить его на 0. Вывести новый массив;



Борисов

Заполнить с клавиатуры двумерный массив на 12 элементов. Определить произведение элементов третьей строки;



Гостев

Заполнить с клавиатуры двумерный массив на 15 элементов. Определить сумму всех элементов второго столбца массива;



Гусарков

Заполнить с клавиатуры двумерный массив на 20 элементов. Определить сумму квадратов элементов второй строки массива;



Дрюпина

Заполнить с клавиатуры двумерный массив размерностью m×n. Найти сумму всех элементов массива;



Елистратова

Заполнить с клавиатуры двумерный массив размера 4х7. Найти массив, получающийся из первого путем перестановки столбцов - первого и последнего, второго с предпоследним и т.д;



Казаков

Заполнить с клавиатуры двумерный массив на 16 элементов. Найти среднее арифметическое элементов, расположенных в четырех углах;



Каштанов

Даны две квадратные матрицы порядка n (заполняется с клавиатуры или генератора случайных чисел). Получить новую матрицу умножением элементов каждой строки 1-й матрицы на наибольшее из значений элементов столбца соответствующей второй матрицы. Вывести все 3 массива на экран;



Кичигин

Заполнить с клавиатуры двумерный массив из n строк и m столбцов. Найти минимум из наибольших элементов столбцов;



Крайнова

Заполнить с клавиатуры двумерный массив на 15 элементов. Составить программу, которая меняет местами два любых элемента двумерного массива (индексы элементов обмена вводит пользователь, если такого элемента нет, на экран должно вывестись сообщение об ошибке);



Култышев

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



Курочкин

Заполнить с клавиатуры двумерный массив на 10 элементов. Определить сумму элементов третьей строки;



Лисовцев

Заполнить 2 массива (с клавиатуры или используя генератор случайных чисел). Получить новый массив прибавляя к элементам 1-го массива среднего арифметического элементов, расположенных в четырех углах 2-го массива. Вывести все 3 массива на экран;



Малов

Заполнить с клавиатуры квадратную матрицу порядка n (n>=6). Заменить побочную диагональ нулями;



Немов

Заполнить двумерный массив m×n (n>=5, m>=5) с клавиатуры, поменять столбцы с номерами 4 и n-2;



Попов

Заполнить с клавиатуры квадратную матрицу порядка n (n>=6). Заменить главную диагональ нулям;



Сайгушева

Заполнить двумерный массив 4×4 числами, которые вводит пользователь, и вычислить сумму всех элементов. Если пользователь вводит ноль или превышен размер массива, то запросы на ввод должны прекратиться;



Салдушкин

Дан двумерный массив размерностью 6×9. Найти массив, получающийся из данного, путем перестановкой строк - первой и последней, второй с предпоследней и т.д.;



Сафиуллин

Заполнить с клавиатуры двумерный массив из n строк и m столбцов. Исключить из него одинаковые элементы. Вывести новый массив на экран;



Семагина

Заполнить с клавиатуры двумерный массив размерностью m×n (n>=3, m>=3). Поменять местами строки с номерами 2 и n-1. Вывести новый массив на экран;



Сергеева

Заполнить с клавиатуры двумерный массив размерностью m×n (n>=3, m>=3). Поменять столбцы с номерами 3 и n-2. Вывести новый массив на экран;



Тантай

Заполнить двумерный массив на 20 элементов с помощью генератора случайных чисел в диапазоне от -50 до 50 включительно. Скопировать из первого массива во второй одномерный все значения в диапазоне от -15 до 15 включительно;



Столяров

Заполнить с клавиатуры двумерный массив на 30 элементов. Скопировать из первого массива во второй двумерный все значения в диапазоне от 0 до 5 включительно;



Тарасова

Заполнить двумерный массив на 20 элементов с помощью генератора случайных чисел в диапазоне от -30 до 30 включительно. Найти максимальный элемент и вывести его на экран;



Хусаинова

Заполнить с клавиатуры двумерный массив на 20 элементов. Скопировать из него в один одномерный массив все положительные элементы, а в другой – все отрицательные;


Смотрите также:
Лабораторная работа №7 обработка двумерных массивов цель работы: Изучить принципы работы с двумерными массивами. Общие сведения
76.78kb.
1 стр.
Лабораторная работа №6 обработка одномерных массивов цель работы: Изучить принципы работы с одномерными массивами. Общие сведения
97.36kb.
1 стр.
Лабораторная работа №12 процедуры и функции цель работы: Изучить принципы работы с процедурами и функциями Общие сведения
66.1kb.
1 стр.
Лабораторная работа. Системный реестр Windows
74.22kb.
1 стр.
Лабораторная работа № Типовые алгоритмы обработки одномерных массивов
57.54kb.
1 стр.
Лабораторная работа Использование стандартных компонентов в C++ Builder
87.05kb.
1 стр.
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp описание работы
58.41kb.
1 стр.
Общие принципы работы с матрицами в системе matlab лабораторная работа №3
149.49kb.
1 стр.
Лабораторная работа №2 Металлографический микроскоп мим 7
86.05kb.
1 стр.
Лабораторная работа №7 изучение прокаливаемости конструкционной стали
62.38kb.
1 стр.
Лабораторная работа 3 изучение принципа действия сцинтилляционного детектора
179.04kb.
1 стр.
Лабораторная работа №6 Страничное распределение памяти
144.49kb.
1 стр.