
- •Национальный исследовательский университет «мэи» Типовой расчет «Процедуры, функции, модули» Вариант 9
- •2. Уточненная постановка задачи:
- •3. Пример:
- •4.Таблица данных:
- •8. Функциональные тесты
- •9. Метод
- •10. Алгоритм
- •11. Программа на Delphi (с процедурами-заглушками, кроме процедур ввода и вывода).
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •11. Программа на паскале. Процедура общего вида
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
11. Программа на Delphi (с процедурами-заглушками, кроме процедур ввода и вывода).
Имена входного и выходного файлов передаются как параметры программы:
Первый – имя файла с исходными данными
Второй – имя файла для вывода исходных данных и результатов
*********************Файл основной программы Project2.dpr**************************
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,Unit1;
var dat,res:TextFile;
a:Matrix;
n:byte;
d,max,min,p:real;
f1,f2:boolean;
begin
AssignFile(dat,paramstr(1)); Reset(dat);
AssignFile(res,paramstr(2)); Rewrite(res);
{Ввод из файла dat}
InPut(dat,n,p,a);
{Проверка n}
Checkn(dat,res,n);
{ Проверка p}
Checkp(dat,res,p);
{ Проверка матрицы}
CheckArray(dat,res,n,f1,a);
{вывод исходной матрицы}
OutPutArray(res,n,p,a);
{поиск максимума}
Maximum(n,a,max);
{поиск минимума}
Minimum(n,a,min);
{сравнение разности с p}
Compare(d,p,max,min,f2);
{изменение матрицы}
Ending(n,f2,A);
{вывод измененной матрицы или вывод о невозможности сделать это}
OutPut(res,a,f2,n);
CloseFile(dat);
CloseFile(res);
writeln('Look through your results in res.txt');
writeln('Press any key');
readln
end.
****************Модуль Unit.pas со всеми процедурами и функциями**********************
unit Unit1;
interface
uses SysUtils;
const nmax=5;
type Matrix=array[1..nmax,1..nmax] of real;
procedure InPut(var dat:TextFile; var n:byte; var p:real; var a:Matrix);
Формальные параметры |
Фактические параметры |
Тип |
dat |
dat |
TextFile |
n |
n |
Byte |
p |
P |
real |
a |
a |
Matrix |
procedure Checkn(var dat:TextFile; var res:TextFile; var n:byte);
Формальные параметры |
Фактические параметры |
Тип |
res |
res |
TextFile |
dat |
dat |
TextFile |
n |
n |
byte |
procedure Checkp(var dat:TextFile; var res:TextFile; var p:real);
Формальные параметры |
Фактические параметры |
Тип |
res |
res |
TextFile |
dat |
dat |
TextFile |
p |
p |
real |
procedure CheckArray(var dat:TextFile; var res:TextFile; n:byte; f1:boolean; a:Matrix);
Формальные параметры |
Фактические параметры |
Тип |
dat |
dat |
TextFile |
res |
res |
TextFile |
n |
n |
byte |
F1 |
F1 |
boolean |
a |
a |
Matrix |
procedure OutPutArray(var res:TextFile;n:byte;p:real;out a:matrix);
Формальные параметры |
Фактические параметры |
Тип |
res |
res |
TextFile |
n |
n |
byte |
p |
p |
real |
a |
a |
Matrix |
procedure Maximum(var n:byte; var a:Matrix; out max:real);
Формальные параметры |
Фактические параметры |
Тип |
n |
n |
byte |
a |
a |
matrix |
max |
max |
real |
procedure Minimum(var n:byte; var a:Matrix; out min:real);
Формальные параметры |
Фактические параметры |
Тип |
n |
n |
byte |
a |
a |
matrix |
min |
min |
real |
procedure Compare(var d:real;var p:real; var max,min:real;var f2:boolean);
Формальные параметры |
Фактические параметры |
Тип |
d |
d |
real |
p |
p |
real |
max |
max |
real |
Min |
Min |
real |
F2 |
F2 |
boolean |
procedure Ending(var n:byte; out A:matrix);
Формальные параметры |
Фактические параметры |
Тип |
n |
n |
byte |
|
|
|
a |
a |
matrix |
procedure OutPut(var res:TextFile; var a:Matrix; var n:byte);
Формальные параметры |
Фактические параметры |
Тип |
res |
res |
textfile |
a |
a |
matrix |
|
|
|
n |
n |
byte |
implementation
procedure InPut(var dat:TextFile; var n:byte; var p:real; var a:Matrix);
var i,j:byte;
begin
readln(dat,n);
readln(dat,p);
for i:=1 to n do begin
for j:=1 to n do read(dat,A[i,j]);
end;
end;
procedure Checkn(var dat:TextFile; var res:TextFile; var n:byte);
begin
заглушка
end;
procedure Checkp(var dat:TextFile; var res:TextFile; var p:real);
begin
заглушка
end;
procedure CheckArray(var dat:TextFile; var res:TextFile; n:byte; f1:boolean; a:Matrix);
var i,j:byte;
begin
заглушка
end;
procedure OutPutArray(var res:TextFile;n:byte;p:real;out a:matrix);
var i,j:byte;
begin
writeln(res,’Исходные данные’);
writeln(res,'p= ',p:5:1);
writeln(res,’Квадратная матрица ',n:1,'-ого порядка');
writeln(res);
for i:=1 to n do begin
for j:=1 to n do write(res,A[i,j]:3:1,' ');
writeln(res);
end;
writeln(res);
end;
procedure Maximum(var n:byte; var a:Matrix; out max:real);
var i,j:byte;
begin
заглушка
end;
procedure Minimum(var n:byte; var a:Matrix; out min:real);
var i,j:byte;
begin
заглушка
end;
procedure Compare(var d:real;var p:real; var max,min:real;var f2:boolean);
var i,j:byte;
begin
заглушка
end;
procedure Ending(var n:byte;out A:matrix);
var i,j:byte;
begin
заглушка
end;
procedure OutPut(var res:TextFile; var a:Matrix;var n:byte);
var i,j:byte;
begin
заглушка
end.
Абстракция А0.5
1.Условие. Проверка массива