• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Помогите пожалуйста решить мудренную задачу в Паскале

  • Автор темы fallenangel
  • Дата начала
F

fallenangel

Разработать информационную систему"СИСТЕМА" Структура записи исходного файла: матрица из двух строк и трех столбцов - матрица коэффициентов системы двух линейных уравнений с двумя неизвестными и текстовая информация о количестве решений системы (одно решение, множество решений, нет решения). Создать новый файл, поместив в него записи с единственным решением, добавив в запись поле с найденным решением.

требования педагога к этой задаче: должно быть меню(типа
-будем введить? да/нет
-введите матрицу
-введите количество решений
-создать базу
-работать с базой(-1-печать базы, 2-вывод записей с матрицами,содержащими одно решение, 3-закончить работу с базой данных)
-закончить работу с базой

Помогите,пожалуйста......я уже не могу,пишу полный бред,сама это не понимаю. А не напишу,вылет из университета 0(((

Добавлено: пишу процедуры,но по-моему полный бред

Код:
type
baza = record
matr: array[1..2,1..3] of real;
kol: string;
end;
baza1=record
matr: array[1..2,1..3] of real;
kol: string;
resh1: real;
resh2:real;
tfile = file of baza;
gfile = file of baza1;

procedure write1(a:array[1..2,1..3] of real);
var i,j:integer;
for i:=1 to 2 do 
begin
for j:=1 to 3 do
write(a[1,j],' ');
for i:=1 to 17 do write(' ');
end;

procedure vvod(var sist: baza); {ввод}
var i,j:integer;
begin
write('Введите коэффициенты системы уравнений: '); 
for i:=1 to 2 do
for j:=1 to 3 do
begin
write ('член строки ',i,'столбца',j,'=')
read(a[i,j]);
end
write('Введите количество корней (одно/множество/нет корней): ');
read(sist.kol);
end;

procedure zapolnenie(var f: tfile); {заполнение базы}
var
sist: baza;
i:integer;
begin
rewrite(f);
repeat
vvod(sist); 
write(f, sist);
write('Будем вводить? 1-да, 2- нет '); read(i);
until (i=2);
close(f);
end;

procedure print(f:tfile); {печать}
var x:baza;z,i,j,k:integer;
begin
reset(f);
writeln('_________________________________________________');
writeln('|№|Матрица				 |Количество решений |');
writeln('_________________________________________________');
while not eof(f) do
begin
read(f,x);
with (x) do
begin
write('|',Filepos(f), '|');
write1(matr);
z:=19-length(kol);
write('|',kol);
for i:=1 to z do write(' ');
write('|');
writeln;
end;

end;
writeln('____________________________________________________________________________
___________________');
close(f);
end;

procedure resh(var f,g:tfile); {вывод записей,если решение одно}
var a:baza;
b:baza1;
n:=array [1..2,1..3];
k,m:real;
begin
reset(f);
rewrite(g);
if not eof(f) then read(f,a);
while not eof(f) do
begin
if a.kor='одно'
begin
b.matr:=a.matr;
b.kol:=a.kol;
k:=a[1,1];
m:=a[2,1];
for j:=1 to 3 do begin
n[1,j]:=a[1,j]/k;
n[2,j]:=a[2,j]/m;
n[2,j]:=n[2,j]-n[1,j];
b.resh1:=n[2,3]/n[2,2];
b.resh2:=n[1,3]-n[1,2]*m;	
end;
if not eof(f) then read(f,a);
end;
if if a.kor='одно'
begin
b.matr:=a.matr;
b.kol:=a.kol;
k:=a[1,1];
m:=a[2,1];
for j:=1 to 3 do begin
n[1,j]:=a[1,j]/k;
n[2,j]:=a[2,j]/m;
n[2,j]:=n[2,j]-n[1,j];
b.resh1:=n[2,3]/n[2,2];
b.resh2:=n[1,3]-n[1,2]*m;
end;
close(f);
close(g);
end;
 
D

Dock1100

Вам на когда надо?(Просто у меня време свободного не очень много)
И у вас ICQ/Skype/QIP есть?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!