Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР Сухих Р.О..docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
576.53 Кб
Скачать

Задание 1.

Постановка задачи:

Описать процедуру Smooth3(A, N), выполняющую сглаживание вещественного массива A размера N следующим образом: каждый элемент массива заменяется на его среднее арифметическое с соседними элементами (при вычислении среднего арифметического используются исходные значения соседних элементов). Массив A является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя результаты каждого сглаживания.

Таблица 8 - Таблица внешних спецификаций

Имя переменной

Назначение переменной

Тип переменной

Входные данные

A

i

j

N

массив

индекс элемента массива

количество сглаживаний

количество элементов массива

real

integer

integer

integer

Выходные данные

A

Массив после сглаживания

real

Расчет контрольных примеров:

Блок схема.

Рисунок 11 - Блок-схема к заданию №1. Процедура Smooth3.

Рисунок 12 - Блок-схема к заданию №1.Основная часть программы

Программная реализация:

program laba11_1;

uses

crt;

type

mass = array [1..10] of real;

procedure Smooth3(var A: mass; N: integer);

var

j:integer;

c,b:real;

begin

if n>1 then

begin

b:=a[1];

a[1]:=(a[1]+a[2])/2;

for j:=2 to N-1 do

begin

c:=a[j];

a[j]:=(b+a[j]+a[j+1])/3;

b:=c;

end;

a[n]:=(b+a[n])/2;

end;

end;

var

A: mass;

i,j,n: integer;

begin

clrscr;

write('Введите N: ');

readln(n);

write('Введите элементы массива:');

for i:=1 to N do

read(a[i]);

for i:=1 to N do

write(a[i]:6:2);

writeln;

for j:=1 to 5 do

begin

writeln(j,'сглаживание: ');

Smooth3(A,N);

for i:=1 to n do

write(a[i]:6:2);

writeln;

end;

end.

Задание 2.

Постановка задачи:

Описать процедуру Transp(A, M), выполняющую транспонирование (т. е. зеркальное отражение относительно главной диагонали) квадратной вещественной матрицы A порядка M. Матрица A является входным и выходным параметром. Используя эту процедуру, транспонировать данную матрицу A порядка M.

Таблица 9 - Таблица внешних спецификаций

Имя переменной

Назначение переменной

Тип переменной

Входные данные

a

m

i

j

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

Размер матрицы

индекс элемента массива (строка)

индекс элемента массива (столбец)

integer

integer

integer

integer

Выходные данные

a

матрица после зеркального отображения относительно главной диагонали

integer

Таблица 10 - Таблица внешних спецификаций функции Transp(A,M)

Имя переменной

Назначение переменной

Тип переменной

i

j

b

индекс элемента массива (строка)

индекс элемента массива (столбец)

вспомогательное число для перестановки

integer

integer

integer

Расчет контрольных примеров:

Блок схема.

Рисунок 13 - Блок-схема к заданию №2. Процедура Transp(A,m).

Рисунок 14 - Блок-схема к заданию №2.Основная часть программы.

Программная реализация:

program laba11_4;

uses

crt;

type

mass = array [1..10,1..10] of integer;

procedure Trans(var A: mass; m: integer);

var

j,i,b:integer;

begin

for i:=1 to m-1 do

for j:=i+1 to m do

begin

b:=a[i,j];

a[i,j]:=a[j,i];

a[j,i]:=b;

end;

end;

var

A: mass;

M,i,j: integer;

begin

clrscr;

write('Введите размер матрицы(A) M: ');

readln(M);

randomize;

for i:=1 to M do

for j:=1 to M do

A[i,j]:=random(10)-5;

writeln('Массив A: ');

for i:=1 to M do

begin

for j:=1 to M do

write(a[i,j]:4);

writeln;

end;

writeln;

Trans(A,M);

writeln('Зеркальное отображение массива А: ');

for i:=1 to M do

begin

for j:=1 to M do

write(a[i,j]:4);

writeln;

end;

writeln;

end.