
Задание 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.