Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Алгоритм

Читайте также:
  1. Quot;Алгоритм глупости"?
  2. Алгоритм 1
  3. Алгоритм 2.
  4. Алгоритм 3
  5. Алгоритм 6
  6. Алгоритм ведення вагітної з тазовим передлежанням плода в акушерському стаціонарі

Ввод/Вывод n
(n<1)Ú(n>10)
 
Ввод матрицы А из файла VvodMas(dat,n,A)  
А0.2.1
Вх.n
Вых. A
Ввод матрицы В из файла VvodMas(dat,n,В)
А0.2.2
Вх.n
Вых. B
Проверка элементов матрицы А ProvMas(A,n,flagA,iiA,jjA)
А0.4.1
Вх. n,A
Вых. flagA,iiA,jjA
Вывод матрицы А VivodMas(res,n,A,'A')
А0.3.1
Вх.n,A
Вых. --
Вывод матрицы В VivodMas(res,n,В,'В')
А0.3.2
Вх.n,B
Вых. --
Сравнение элементов А и В Sravnenie(n,A,B,f)
А0.5
Вх. n,A,B
Вых. f
начало
F
Создание матрицы С SozdanieC(n,A,B,C)
А0.6
Вх.n,A,B
Вых. C
Вывод матрицы С VivodC(res,n,C)
А0.7
Вх. n,C
Вых. --
конец
Вывод по обр.7
Вывод по обр.8
Вывод по обр.10
+
+
+
Проверка элементов матрицы В ProvMas(В,n,flagВ,iiB,jjB)
А0.4.2
Вх. n,B
Вых. flagB,iiB,jjB
А0
А0.1
FlagАÚFlagB
Вывод по обр.9
FlagА
FlagB
+
+

 

Программа на Delphi (с процедурами-заглушками, кроме процедур ввода и вывода).

Имена входного и выходного файлов передаются как параметры программы:

Первый – имя файла с исходными данными

Второй – имя файла для вывода исходных данных и результатов

 

*********************Файл основной программы Project2.dpr**************************

Program Project2;

{$APPTYPE CONSOLE}

uses Unit1; {там все константы, типы, процедуры и функции}

var {раздел описания переменных -----------------------------------------------------------------}

A,B:mas;

C:mas2;

dat,res:TextFile;

n,iiA,jjA,iiB,jjB:byte;

f,flagA,flagB:boolean;

begin {раздел операторов -----------------------------------------------------------------}

AssignFile(dat,paramstr(1));reset(dat);

AssignFile(res,paramstr(2));rewrite(res);

{ввод n --------------------------------------------------------------------------------------------}

Readln(dat,n);

writeln(res,'Размер матриц A и B: ',n,'x',n);

if (n<1) or (n>nmax) then

Begin

writeln(res,'Некорректный размер матриц.'#13#10,'Задача не решалась');

CloseFile(dat);

CloseFile(res);

Halt;

End;

{ввод и вывод матриц A и B --------------------------------------------------------------------}

VvodMas(dat,n,A);

VvodMas(dat,n,B);

CloseFile(dat);

VivodMas(res,n,A,'A');

VivodMas(res,n,B,'B');

{ Проверка элементов матриц------------------------------------------------------------------- }

ProvMas(A,n,flagA,iiA,jjA);

ProvMas(B,n,FlagB,iiB,jjB);

If flagA or flagB then

Begin

If flagA then

Begin

Writeln(res,'Некорректный элемент матрицы A');

Writeln(res,'A[', iiA, ',', jjA, '] = ', A[iiA,jjA]:8:1);

Writeln(res,'Задача не решалась');

End;

If flagB then

Begin

Writeln(res,'Некорректный элемент матрицы B');

Writeln(res,'B[', iiB, ',', jjB, '] = ', B[iiB,jjB]:8:1);

Writeln(res,'Задача не решалась');

End;

CloseFile(res);

Halt;

End;

Sravnenie(n,A,B,f); { Проверка, все ли эл-ты А больше соответстветствующих эл-ов В }

If not(f) then

writeln(res,'Элементы матрицы А не больше соответствующих элементов матрицы В') {Обр.10}

Else

Begin

{Создание и вывод матрицы С-----------------------------------------------------------------}

SozdanieC(n,A,B,C);

VivodC(res,n,C); {Обр.6.2}

End;

CloseFile(res);

End.

 

****************Модуль Unit1.pas со всеми процедурами и функциями**********************

 

unit Unit1;

 

interface

const nmax=10;

type

mas=array[1..nmax,1..nmax] of real;

mas2=array[1..nmax]of real;

{Ввод матрицы из файла. Файл уже открыт}

procedure VvodMas(var dat:TextFile; const n:byte; out X:mas);

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
dat dat TextFile
n n byte
X A(B) mas

 

{Проверка элементов матрицы}

procedure ProvMas(var X:mas; const n:byte; out flag:boolean; out ii,jj:byte);

 

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
Х А(В) mas
n n byte
flag flagA(flagB) boolean
iiA(B) ii byte
jjA(B) jj byte

 

{Вывод матрицы}

procedure VivodMas(var res:TextFile; const n:byte; var X:mas; const ch:char);

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
res res TextFile
n n byte
X A(B) mas
ch ‘A’(‘B’) char

 

{ Проверка, все ли эл-ты А больше соответстветствующих эл-ов В }

 

procedure Sravnenie(const n:byte; const X,Y:mas; out f:boolean);

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
n n byte
Х A mas
Y B mas
f f boolean

 

 

{Создание матрицы С}

procedure SozdanieC(const n:byte; var X,Y:mas; out C:mas2);

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
n n byte
Х A mas
Y B mas
C C mas2

 

{Вывод матрицы С}

procedure VivodC(var res:TextFile; const n:byte; var C:mas2);

Таблица соответствия параметров

Формальные параметры Фактические параметры Тип
res res TextFile
n n byte
C C mas2

 

 

implementation

 

procedure VvodMas;

var i,j:byte;

begin

for i:=1 to n do

begin

for j:=1 to n do read(dat,X[i,j]);

readln(dat);

end;

end;

 

procedure ProvMas;

Var i, j: byte;

{описания других локальных переменных}

Begin

 

{Заглушка} writeln(’ Заглушка – Проверка элементов матрицы’);

{ В скобках указаны результаты для матрицы В }

{тест 3} // flagA:=true;(flagB:=false;) ii:=1; jj:=3;

{тест 4} // flagA:=false;(flagB:=true;)(ii:=1; jj:=1;)

{тест 5} // flagA:=true;(flagB:=true;) ii:=2; jj:=1;(ii:=1; jj:=2)

{остальные тесты} //flagA:=false; (flagB:=false;)

End;

 

procedure VivodMas;

var i,j:byte;

begin

writeln(res,'Матрица ',ch,':');

for i:=1 to n do

begin

for j:=1 to n do

write(res,X[i,j]:8:1);

writeln(res);

end;

end;

 

procedure Sravnenie;

Var i, j: byte;

{описания других локальных переменных}

Begin

{Заглушка} writeln(’ Заглушка – Проверка условия, что все элементы А больше соответствующих В’);

{тест 6} // f:=false;

{тест 7} // f:=true;

{тест 8} // f:=true;

{тест 9} //f:=false;

{тест 10} //f:=true;

End;

 

procedure SozdanieC;

Var i, j: byte;

{описания других локальных переменных}

Begin

{Заглушка} writeln(’ Заглушка – Создание матрицы С’);

{тест 7} // C[1]=8.0;

{тест 8} // C[1]:=4.3; C[2]:= 8.9; C[3]:=3.0;

{тест 10} //C[1]:=19999.0; C[2]:= -19999.0 … C[9]:=19999.0; C[10]:= -19999.0;

End;

 

procedure VivodC;

var i:byte;

begin

writeln(res,'Матрица С:');

for i:=1 to n do writeln(res,C[i]:8:1);

end;

end.

 

 


Дата добавления: 2015-08-21; просмотров: 192 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Функциональные тесты| Абстракция А0.4

mybiblioteka.su - 2015-2024 год. (0.02 сек.)