-
Программа для работы с методом Крамера для решения линейных уравнений на Turbo Pascal. program p;
uses crt;
type
matr=array [1..10,1..10] of real;
vec=array [1..10] of real;
var
mt:matr;
m2:matr;
v:vec;
r:vec;
nm:integer;
n,m:integer;
d:real;
function opr(mt:matr;nm:integer):real;
var
n,m,d:integer;
s:real;
m2:matr;
begin
if nm=2 then begin
s:=mt[1,1]*mt[2,2]-mt[1,2]*mt[2,1];
end else begin
s:=0;
for d:=1 to nm do begin
m2:=mt;
for n:=d to nm do
for m:=1 to nm-1 do m2[m,n]:=m2[m,n+1];
if (d mod 2 =nm mod 2) then s:=s+mt[nm,d]*opr(m2,nm-1)
else s:=s-mt[nm,d]*opr(m2,nm-1);
end;
end;
opr:=s;
end;
function input(var mt:matr):integer;
var
x,y:integer;
nm:integer;
c:char;
n,m:integer;
pr:real;
begin
textcolor(15);
textbackground(0);
x:=1;y:=1;nm:=2;
for n:=1 to 10 do for m:=1 to 10 do mt[n,m]:=0;
repeat
clrscr;
for n:=1 to nm do
for m:=1 to nm do begin
if (n=x)and(m=y) then textbackground(1) else textbackground(0);
gotoxy(n*8,m);
writeln(mt[n,m]:7:3);
end;
textbackground(0);
gotoxy(1,24);
write(' +,- - изменение размера на Numpad'e, Стрелки - выбор,',
' ENTER - ввод данных на обработку, ESC - завершение');
c:=readkey;
if c=#0 then c:=readkey;
case c of
#72:if y>1 then y:=y-1;
#80:if y<nm then y:=y+1;
#75:if x>1 then x:=x-1;
#77:if x<nm then x:=x+1;
#13:begin
gotoxy(x*8,y);
write(' ');
gotoxy(x*8,y);
readln(mt[x,y]);
end;
'/':begin
gotoxy(x*8,y);
write('/ ');
gotoxy(x*8+1,y);
readln(pr);
mt[x,y]:=mt[x,y]/pr;
x:=x+1;
if (x>nm) then begin
x:=1;
if (y<nm) then y:=y+1;
end;
end;
'+':if nm<10 then nm:=nm+1;
'-':if nm>2 then nm:=nm-1;
end;
until (c=#27);
input:=nm;
end;
begin
nm:=input(mt);
d:=opr(mt,nm);
writeln;
if (d<>0) then begin
writeln(' Введите вектор: ');
for n:=1 to nm do read(v[n]);
for n:=1 to nm do begin
m2:=mt;
for m:=1 to nm do m2[n,m]:=v[m];
r[n]:=opr(m2,nm)/d;
end;
clrscr;
writeln(' Система: ');
for n:=1 to nm do begin
for m:=1 to nm-1 do write(mt[m,n]:6:2,'*X',m:1,'+');
writeln(mt[nm,n]:6:2,'*X',nm:1,'=',v[n]:6:2);
end;
writeln;
writeln(' Решение: ');
for n:=1 to nm do writeln('X',n:1,' = ',r[n]:10:6);
end else writeln(' Решения не существует! ');
writeln;
writeln(' Нажмите ESC... ');
repeat until readkey=#27;
end.
В программе для Turbo Pascal выбранный элемент выделяется цветом (textcolor, textbackground). В Delphi Console Application не воспринимает цвета. Можно ли как-то добавить цвета, или выделить элемент по-другому? Delphi не понимает команду goto и есть другие проблемы... Помогите, пожалуйста...
-
> Delphi не понимает команду goto
В приведенном коде нет никаких "команд", тем более goto
-
идешь в гугл набираешь "консольные приложения delphi" нажимаешь "найти" в результатах поиска находишь необходимую информацию для эмуляции модуля crt
-
> В Delphi Console Application не воспринимает цвета
Можно подумать, что тебя кто-то силком заставляет портировать исх.текст именно в текст консольного приложения Win32 .
-
Извините. Не goto, а gotoxy.
Про модуль crt я знаю.
> Можно подумать, что тебя кто-то силком заставляет портировать > исх.текст именно в текст консольного приложения Win32
А можно поподробней? Я, как уже ясно, полный нуб в прогаммировании, особенно Delphi. Если не в Console Application, то куда портировать код?
-
> Если не в Console Application, то куда портировать код? КАК не в консоль? Кха-кха. Выкинь ты это раскрашивание и оставь простой код
> Я, как уже ясно, полный нуб в прогаммировании, Вешайся лучше сам. Пока не запинали.
> особенно Delphi Без комментариев. Только вопрос: это ты ЛАБу делаешь?
-
> Выкинь ты это раскрашивание и оставь простой код >
Я бы с удовольствием, но этом раскрашивании все закручено.
> Вешайся лучше сам. Пока не запинали.
Уже стою на табуретке.
> Только вопрос: это ты ЛАБу делаешь?
:-) Курсовую. Надо завтра сдавать...
-
> Курсовую > Уже стою на табуретке. Удачи :) Просто легче дождаться конца света, чем того момента. когда тебе здесь кто-нить чо-нить просто так решит. БЕСПАЛТНО ;)
-
> Курсовую. Надо завтра сдавать
Шопена тебе уже заказали. Нахаляву. За это не волнуйся)
-
> Уже стою на табуретке.
Военкомат спасет)
-
Надеюсь успеть раньше. Не забудьте уронить слезу на могиле.
-
> Не забудьте уронить слезу на могиле
Тебе, болезный, на форум безутешных вдов бы надо)
-
> Если не в Console Application, то куда портировать код?
Теперь уже не важно, можно и в дыру. Ты ж все равно на табуретке, все намылено, халявный шопен заказан и похоронная команда во главе с деканом и военкомом стоит за дверью)
-
моя путь подсказаль... мой совесть чистый...
|