Здавалка
Главная | Обратная связь

Программа на 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.Условие. Проверка массива

2.Уточненная постановка задачи.

Данаквадратная матрица A из n строк и столбцов. Узнать, есть ли в массиве элементы, модуль которых больше 25.Если есть, то вывести сообщение об этом и прекратить работу программы.

3.Примеры.

Тест 3,4: есть элемент, модуль которого больше 25

Остальные тесты - нету

Таблица данных

Класс Имя Описание (смысл), диапазон, точность Тип Структура
  Входные данные A Заданная матрица, |Aij|<=25 вещ Двухмерный массив (10x10)
n число строк и столбцов в матрице A, 0 < n £ 5 цел простая переменная
res Выходной файл Файловая переменная  
F1 =false, если в массиве есть |a[I,j]|>25 , иначе =true логический простая переменная
Промежу-точные данные i Номер текущей строки, 0 < i £ 5 цел простая переменная
  j Номер текущей столбца, 0 < j £ 5 цел простая переменная

 

5.Входная форма.

нет ввода/вывода

 

Выходная форма

По обр.9.

 

Аномалии

нет ввода/вывода

Тесты

Тест #3,4-есть элемент, по модулю больший 25;

Остальные тесты – нету.

Метод

 

 
 

 


Пусть f1=

 

Предположим сначала, что такого элемента в матрице нет (f1:=true).

Затем будем просматривать строки, начиная с первой (i:=1)

Пока не просмотрены все (i≤n) и не найден такой элемент (f1=true)

В каждой строке будем просматривать элементы, начиная с первого (j:=1)

Пока не просмотрены все (j≤n) и не найден такой элемент (f1=true)

Если рассматриваемый элемент Aij по модулю больше 25

То

искомый элемент найден! (f1:=false)

Запоминаем его местонахождение (i:=i; j:=j)

Переходим к следующему элементу в строке (j:=j+1)

Переходим к следующей строке

 

Если f1=true, то продолжаем работу программы, иначе прекращаем работу программы.

 

 

i:=1
F1:=true
10. Алгоритм

 

 

 








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.