Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.doc
Скачиваний:
76
Добавлен:
20.03.2016
Размер:
589.82 Кб
Скачать

Обработка массивов.

Цель работы: Овладение навыками алгоритмизации и программирования структур с вложенными циклами, навыками использования приемов программирования во вложенных циклах, способами ввода, обработки и вывода массивов.

Задание:

1 Изучить особенности программирования алгоритмов работы с массивами на алгоритмическом языке Паскаль.

2 Ввести текст программы в компьютер.

3 Обработать матрицу в соответствии с вариантом задания (элементами матрицы являются случайные значения функции f(x)).

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

Методические указания.

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

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

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

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

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

Таблица 6

Вариант

задания

Условие задачи

Функция f(x) и диапазон изменения аргумента

1

Для матрицы A (10,10) найти сумму всех элементов матрицы

x[-5;5]

2

Для матрицы B (12,12) найти сумму элементов в строках матрицы

x[0;5]

3

Для матрицы C (15,10) найти сумму элементов в столбцах матрицы

x[-5;5]

4

Для матрицы D (10,11) найти максимальный элемент в матрице

x[-π;π]

5

Для матрицы B (12,12) найти минимальный элемент в матрице

x[-8;7]

6

Для матрицы A (13,13) найти максимальный элемент в каждой строке матрицы

x[-10;10]

7

Для матрицы С (10,15) найти минимальный элемент в каждой строке матрицы

x[-8;9]

8

Для матрицы D (11,11) найти максимальный элемент в каждом столбце матрицы

;

x[-100;100]

9

Для матрицы E (8,8) найти минимальный элемент в каждом столбце матрицы

x[-π;3π/2]

10

Для матрицы C (15,15) найти максимальную из сумм строк матрицы

x[-π;π]

11

Для матрицы R (7,7) найти минимальную из сумм строк матрицы

x[-5;5]

12

Для матрицы Z (14,14) найти максимальную из сумм столбцов матрицы

x[-5;5]

13

Для матрицы N (12,8) найти минимальную из сумм столбцов матрицы

x[0;2π]

14

Для матрицы R (4,4) найти сумму положительных элементов матрицы

x[-5;5]

15

Для матрицы S (14,14) найти сумму

отрицательных элементов матрицы

x[π;π]

Пример программы:

{ Найти максимальный элемент среди элементов, находящихся выше главной диагонали квадратной матрицы.

Указать его индексы. }

uses crt; { Подключение библиотеки ввода-вывода }

const n = 3; { Задается размерность матрицы }

var i, j, max, imax, jmax: Integer;

a: Array [1..n,1..n] of Integer;

begin

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

WriteLn('Составил Поляков Д.Г., КТФ, Р-11');

WriteLn; { Вывод пустой строки }

for i := 1 to n do { Во вложенном цикле }

begin { происходит заполнение матрицы }

for j := 1 to n do

begin

WriteLn('Введите ',i,'.',j,'-й элемент матрицы');

Read(a[i,j]); { Ввод элементов матрицы }

end;

WriteLn; { Вывод пустой строки }

end;

for i := 1 to n do { Во вложенном цикле }

begin { происходит вывод матрицы }

for j := 1 to n do Write(a[i,j]:3,' ');

WriteLn; { Вывод пустой строки }

end;

max := a[2,1];

for i := 1 to n do {Производится поиск макс. элемента и его координат }

begin { согласно заданию. }

for j := 1 to n do

if (j-i) >= 1 then

if a[i,j] > max then

begin

max := a[i,j];

imax := i;

jmax := j;

end;

end;

WriteLn('Выводится max: ',max); { Выводятся макс. элемент и его координаты }

WriteLn('Выводится cтрока: ',imax); { согласно заданию. }

WriteLn('Выводится столбец: ',jmax);

ReadKey; { Производится задержка экрана }

end.

Содержание отчёта по лабораторной работе

1 Цель лабораторной работы.

2. Задание.

3. Методические указания.

4. Блок-схема алгоритма программы.

5. Текст программы.

6. Результаты расчетов.

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

1 Как задается массива?

2 Как можно обратиться к отдельному элементу массива?

3 Каковы правила записи индексов?

4 Как определяют индексы в двумерном массиве?

5 Каким может быть тип массива?

6 Как располагаются в памяти ЭВМ элементы массива?

7 Каким образом можно присвоить начальные значения элементам массива?

8 Какой оператор цикла используется при введении элементов массива?

9 Как осуществляется вывод элементов матрицы на экран?

10 Какие виды массивов Вы знаете?

Литература [2, 3].

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

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