Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Krutikov06,06,2013.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
58.21 Кб
Скачать

3.3.2. Состав данных

Тип

Имя

Смысл

Структура

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

Цел

A

Заданная матрица

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

переменной длины

Цел

N

Количество строк/столбцов

Простая переменная

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

Вещ

Sum

Сумма элементов

Простая переменная

Промежуточные данные

Цел

I

Номер строки

Простая переменная

Цел

J

Номер столбца

Простая переменная

3.3.3. Спецификация сегмента 1.3 Подзадача представлена в Turbo Pascal как функция, поскольку она имеет один выходной параметр

Имя функции: sum(А).

3.3.4. Аномалии. Аномалии сегмента 3 не анализируются.

4.Проекты алгоритмов сегментов.

4.1. Вспомогательный алгоритм сегмента 1.

Начало

c[2]:=0

c[3]:=0

c[4]:=0

c[1]:=0

Задать:{A},N

FL:=истина

LG:=ложь

I:=1

LG

J:=I+1

A(I,J)≠ A(J,I)

FL:=ложь

c[1]:=c[1]+1

LG:=ложь

c[2]:=c[2]+1

c[2]:=c[2]+1

J:=J+1

(J>N)˅(-LG)

Конец

i:=i+1

c[4]:=c[4]+1

I>N-1

LG:=ложь

c[3]:=c[3]+1

Передать: FL

4.2.Вспомогательный алгоритм сегмента 2.

Начало

Задать:{A},N

c[5]:=0

I:=1

J:=I+1

J>N

I:=I+1

c[5]:=c[5]+1

A(I,J):=0

J:=j+1

нет

да

I>N-1

нет

да

Передать: {A}

Конец

4.3. Вспомогательный алгоритм сегмента 3

Начало

Задать:{A},N

sum:=0

I>N

J:=J+1

J:=1

I:=J+1

sum:=sum+ A(I,J)

c[6]:=c[6]+1

c[6]:=0

J:=J+1

нет

да

J>N-1

нет

да

Передать: sum

Конец

5. Паскаль-программы.

5.1.Паскаль-программа блочной структуры.

PROGRAM TR_v8;

CONST k=5;

TYPE mas=array[1..k,1..k] of integer;

VAR A:mas;

I,J:integer;

t1,t2:text;

Function sym(var A:mas;N:integer):boolean;

Var I,J:integer;

FL,LG:Boolean;

Begin

FL:=True;

LG:=True;

I:=1;

While LG do

Begin

J:=I+1;

Repeat

IF A[J,I]<>A[I,J] then

Begin

FL:=False;

LG:=False;

End;

J:=J+1;

Until (J>N)OR(not LG);

I:=I+1;

IF I>(N-1) then

LG:=False;

End;

sym:=FL;

End;

PROCEDURE zero(var A:mas; N:integer);

Var I,J:integer;

Begin

for I:= 1 to (N-1) do

for J:=(I+1) to N do A[I,J]:=0;

end;

Function sum(var A:mas; N:integer):integer;

Var I,J:integer;

Begin

sum:=0;

for J:=1 to (N-1) do

for I:=(1+J) to N do

sum:=sum+A[I,J];

End;

BEGIN

assign(t1,'isdan1.pas');

assign(t2,'vdan1.pas');

reset(t1);

rewrite(t2);

for i:=1 to k do

begin

for j:=1 to k do

begin

read(t1,A[I,J]);

read(t1);

end;

readln(t1);

End;

writeln(t2,' ':35,'Результаты');

if sym(A,k) then

begin

zero(A,k);

writeln(t2,' ':30,'S= ',sum(A,k));

end

else

writeln(t2,' ':25, 'Матрица не симметрична');

close(t1);

close(t2);

END.

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