Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмизация павлодар.doc
Скачиваний:
14
Добавлен:
21.02.2016
Размер:
1.01 Mб
Скачать

Лабораторная работа №5

Тема: Разработка программ с использованием двумерных массивов.

Цель работы: Приобрести навыки обработки двумерных массивов в Паскале.

  1. Общие сведения.

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

Если массив двумерный, то для определения положения какого-либо элемента достаточно задания номера строки и столбца, на пересечении которых находиться рассматриваемый элемент. Так выделенные на рис. 1 в элементы массива имеют следующие обозначения B[1,1], B[1,4], B[5,2].

1 2 3 4

1

2

3

4

двумерный массив

Причём первым в обозначении элемента массива стоит номер строки, а вторым - столбца.

Точно также задается положение трёх, четырёх и n-мерных массивов.

Итак, массив характеризуется размерностью и длиной по направлению каждой из размерностей.

Если какая-либо переменная в программе является массивом, то её необходимо описать в разделе переменных. Простейшая форма описания одномерного массива имеет вид:

Var v: array [n...m] of t ;

где v – имя массива, формируется по правилам задания имён

переменных;

n и m – наибольшее и наименьшее значение индекса

массива, может быть целого и перечисляемого

типа;

t – тип элемента массива, может быть любым типом,

существующим в Паскале.

Например, запись: var m: array [1..8] of real

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

В описании массивов большей размерности предел изменения этой размерности отделяется друг от друга запятой.

Запись

Var C: array [1..5, 1..4] of integer

означает, что в программе имеется целочисленный массив С, состоящий из пяти строк и четырёх столбцов.

Для описания многомерных массивов в Паскале существует целый ряд способов. Следующие группы операторов задают описание одного и того же двумерного массива А, представляющего собой таблицу размером 23 (2 строки, 3 столбца)

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

Type

Stroka = array [1..3] of real;

Matr = array [1..2] of stroka;

Var

V: stroka;

A: matr ;

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

Type

Matr= array [1..2] of array [1..3] of real;

Var

A: matr;

Третий способ:

Type

Matr = array [1..2,1..3] of real;

Var

A: matr;

Четвёртый способ:

Var

A: array [1..2,1..3] of real;

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

Второй, третий и четвертый способы описания массива получаются из первого путем его последовательного упрощения. Так второй способ описания получен из первого путём исключения определения типа stroka в определении типа matr.

В Паскале типом индекса (номером) элемента массива не обязательно является целое число. Им может быть также переменная перечисляемого типа, например:

  1. Задание.

Задание взять из таблицы согласно варианту. Составить блок-схему алгоритма и программу.

Контрольные вопросы.

  1. Что называется массивом?

  2. Оператор описания массива, его разновидности.

  3. Правила составления имени массива.

  4. Способы задания значений массивов.

  5. Ввод и вывод массивов.

  6. Переменные какого типа могут служить именем массива?

  7. Какие элементы могут служить в качестве индексов элементов массива.

  1. Задание к работе

1.

Найти среднее арифметическое каждой строки матрицы А. Сформировать из них вектор В.

2.

Найти сумму элементов матрицы А, лежащих на главной

Диагонали и правее. Умножить на это значение все элементы

Вектора В

3.

Сформировать вектор В элементы которого равны

Соответствующим элементам неглавной диагонали матрицы.

Найти минимальный элемент вектора В.

4.

Определить количество положительных элементов каждого

Столбца матрицы А и запомнить их в массиве М

5.

Из матрицы А построить матрицу В поменять местами

Строки и столбцы.

6.

Сформировать вектор В как сумму положительных элементов

Каждой строки матрицы А.

7.

Сформировать вектор В как среднее арифметическое

Положительных элементов каждого столбца матрицы А:

8.

Найти минимальные элементы каждой строки

Матрицы А и поместить их на главную диагональ.

9.

Поменять в каждой строке между собой элементы

Главной и неглавной диагоналей матрицы А:

10.

Найти произведение первых трёх наибольших элементов

Матрицы А:

11.

Сформулировать вектор С из элементов вектора А,

Удовлетворяющих условию Aij>2

12.

Получить вектор В элементы которого равны элементам главной матрицы А и найти его максимальный элемент. Вывести на печать полученный вектор В и полученное значение максимального элемента.

13.

Получить вектор А, элементы которого равны элементам первой строки матрицы С и вектор В, элементы которого равны элементам первого столбца матрицы С. Вывести на печать векторы А и В.

14.

По заданным векторам А и В сформировать вектор С по формуле Cij=ai+bj и найти его минимальный элемент.

15.

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

16.

Изменить значение элементов матрицы А по правилу

17.

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

18.

Найти сумму элементов обоих диагоналей матрицы А:

19.

Поменять в каждом столбце элементы главной и неглавной диагоналей

20.

Упорядочить по возрастанию четные элементы вектора В

21.

Сформировать матрицу А по правилу:

Найти максимальный элемент и его положение в матрице

22.

Найти сумму элементов первой и второй строк матрицы А и минимального элемента вектора В.

23.

Найти произведение и количество положительных элементов матрицы А

24.

Сформировать матрицу А по правилу:

И найти минимальный элемент

25.

Найти наибольшую сумму двух произвольных элементов вектора А:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]