Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика лабораторные.doc
Скачиваний:
16
Добавлен:
11.11.2019
Размер:
1.07 Mб
Скачать

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

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

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

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

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

4. Вывести на печать результаты и исходную матрицу в общепринятом виде.

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

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

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

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

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

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

Таблица 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. Результаты расчетов.

Контрольные вопросы к лабораторной работе №4:

  1. Дайте определение «массив»?

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

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

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

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

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

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