Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2007, 00:14   #1
amiack
 
Регистрация: 13.07.2007
Сообщений: 4
По умолчанию нужна помошь по программe

дали задание на практику исправить ошибки в програме, и столкнулся с парой ошибок, которые решить не удалось.. вот собсна сам код
Код:
program praktika;
uses
label g1,g2,g3,g4;
var
T:text;
x:array[1..9] of real;
x0:array[1..9] of real;
f,f1,Q:real;
i,n,l:integer;
b,eps,p1,p2,p3,G:real;
fstr:string[16];
xstr:string[5];
qstr:string[8];
gstr:string[8];
lstr:string[3];
bstr:string [16];
estr:string [16];
procedure W;
begin
lstr:=floatToStr(l);
xstr:=floattostr(x[i]);
fst:=floattostr(f);
bstr:=floattostr(b);
estr:=floatto(eps);
write('T,'x[',i,']=');
write(T,'xst);
write(T,'f=');
write(T,fstr);
write(T,'b=');
write(T,bstr);
write(T,'l=');
write(T,tstr);
write(T,'e=');
write(T,'estr);
append(T);
end;
procedure W1;
begin
lstr:=floatToStr(l);
gstr:=floattostr(g);
qstr:=floatto(q);
xstr:=floattostr(x[i]);
fst:=floattostr(f);
bstr:=floattostr(b);
write(T,x[',i,']=')
write(T,xstr);
write(T, 'l=');
write(T,lstr);
write(T, 'g=');
write(T, gstr);
write(T, 'q=');
write(T, qstr);
write(T, 'f=')
write(T, fstr)
write(T, 'b=');
write(T, bstr);
append(T);
end;
procedure setP;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0-[2]-6;
p3:=x0[2]-0.5*x0[2]+1;
end;
procedure setP1;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0-[2]-6;
p3:=x0[2]-0.5*x0[2]+1;
end;
procedure setG;
begin
setP1;
if(p1<=0)and(p2<=0)and(p3>=0) then
begin
G:=0;
end
else G:=sqr(sqr(1pP1))+sqr(sqr(p2*1))+sqr(1*p3));
end;
procedure SetF;
begin
Q:=sqr(x[1]-2);
setG;
f:=G+Q;
writeln('f=',f,'x(',i,')=,x[i],'Q=',Q,' G=',G,);
W1
end;
begin
assignfile(T,'c:\1praktika.txt');
rewwrite(T);
g4:
write('vvedite_razmernost_prostranstva_n,n=');
readln(n);
if(n>2 ) or (n<2) then goto g4;
g3:for i:=l to n do begin
write('X(',i,')=');
readln(x0[i]);
end;
setP; for i=T,n do begin
if(p1<=0)and(p2<=0)and(p3>=0) then begin
x[i]:=x0[i]; end
else goto g3;
write('vvedite_shag_optimizacii b ,b=')
readln(b);
write('vvedite_to4nost_opredeleniya_optimuma_funkcii f=sqr(x[1]-2+sqr(x[2]-2)eps, eps=');
readln(eps);
l:=1;
setF;
g1:
for i:=1 to n do begin
g2;
f1:=f;
x[1]:=x[i]+b;
setF;
if f<f1 then begin
f1:=f;
x[i]:=x[i]+b;
setF;
readln;
if f>f1 then begin
f:=f1;
end
else goto g2;
end
else begin
b:=-b;
goto g2;
end;
end;
if b<0 then
b:=-b;
if b>eps then begin
b:=b/2;
writeln('b=',b');
readln;
l:=l+1;
for i:= to n do begin
writeln('x(',i,')=',x[i],' f=');
W;
readln;
end;
goto g1;
end
else begin
for i:=1 to n do begin
writeln('x(',i,')=',x[i],' f=',f);
W;
end;
end;
readln;
readln;
end.
при компиляции возникает error2: identifier expected
и курсор прыгает на строчку
Код:
uses
label g1,g2,g3,g4;
может это не единственная ошибка, но пока эта не исправица другие ошибки не вылезут))

PS заранее пасиба

Последний раз редактировалось amiack; 13.07.2007 в 00:28.
amiack вне форума Ответить с цитированием
Старый 13.07.2007, 03:21   #2
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

uses Crt; - не подключен ни один модуль(кроме Crt могут быть и другие, смотри справку)
Viteef вне форума Ответить с цитированием
Старый 13.07.2007, 07:58   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

1. Как советовали выше подключай CRT.
2. FloatToStr() - в Паскале нет такого, используй val, str. (F1), или просто присваивание без перевода.
3. Прочие мелкие неточности, типа потея do и т.д.

Последний раз редактировалось Alex21; 13.07.2007 в 14:49.
Alex21 вне форума Ответить с цитированием
Старый 13.07.2007, 10:21   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Вот исправил. Компилируется нормально.
Код:
program praktika;
uses  SYSUtils;
label g1,g2,g3,g4;
var
T:text;
x:array[1..9] of real;
x0:array[1..9] of real;
f,f1,Q:real;
i,n,l:integer;
b,eps,p1,p2,p3,G:real;
fstr:string[16];
xstr:string[5];
qstr:string[8];
gstr:string[8];
lstr:string[3];
bstr:string [16];
estr:string [16];
procedure W;
begin
lstr:=floatToStr(l);
xstr:=floattostr(x[i]);
fstr:=floattostr(f);
bstr:=floattostr(b);
estr:=floattostr(eps);
write('T,',x[i],'[',i,']=');
write(T,'xst');
write(T,'f=');
write(T,fstr);
write(T,'b=');
write(T,bstr);
write(T,'l=');
write(T,lstr);
write(T,'e=');
write(T,estr);
append(T);
end;
procedure W1;
begin
lstr:=floatToStr(l);
gstr:=floattostr(g);
qstr:=floattostr(q);
xstr:=floattostr(x[i]);
fstr:=floattostr(f);
bstr:=floattostr(b);
write('T,',x[i],'[',i,']=');
write(T,xstr);
write(T, 'l=');
write(T,lstr);
write(T, 'g=');
write(T, gstr);
write(T, 'q=');
write(T, qstr);
write(T, 'f=');
write(T, fstr);
write(T, 'b=');
write(T, bstr);
append(T);
end;
procedure setP;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0[2]-6;
p3:=x0[2]-0.5*x0[2]+1;
end;
procedure setP1;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0[2]-6;
p3:=x0[2]-0.5*x0[2]+1;
end;
procedure setG;
begin
setP1;
if(p1<=0)and(p2<=0)and(p3>=0) then
begin
G:=0;
end
else G:=sqr(sqr(1*P1))+sqr(sqr(p2*1))+sqr(1*p3);
end;
procedure SetF;
begin
Q:=sqr(x[1]-2);
setG;
f:=G+Q;
writeln('f=',f,'x(',i,')=',x[i],'Q=',Q,' G=',G);
W1
end;
begin
assignfile(T,'c:\1praktika.txt');
rewrite(T);
g4:
write('vvedite_razmernost_prostranstva_n,n=');
readln(n);
if(n>2 ) or (n<2) then goto g4;
g3:for i:=l to n do begin
write('X(',i,')=');
readln(x0[i]);
end;
setP; for i:=0 to n do begin
if(p1<=0)and(p2<=0)and(p3>=0) then begin
x[i]:=x0[i]; end
else goto g3;
write('vvedite_shag_optimizacii b ,b=');
readln(b);
write('vvedite_to4nost_opredeleniya_optimuma_funkcii f=sqr(x[1]-2+sqr(x[2]-2)eps, eps=');
readln(eps);
l:=1;
setF;
end;
g1:
for i:=1 to n do begin
g2:
f1:=f;
x[1]:=x[i]+b;
setF;
if f<f1 then begin
f1:=f;
x[i]:=x[i]+b;
setF;
readln;
if f>f1 then begin
f:=f1;
end
else goto g2;
end
else begin
b:=-b;
goto g2;
end;
end;
if b<0 then
b:=-b;
if b>eps then begin
b:=b/2;
writeln('b=',b);
readln;
l:=l+1;
for i:=1 to n do begin
writeln('x(',i,')=',x[i],' f=');
W;
readln;
end;
goto g1;
end
else begin
for i:=1 to n do begin
writeln('x(',i,')=',x[i],' f=',f);
W;
end;
end;
readln;
readln;
end.
Alex21 вне форума Ответить с цитированием
Старый 13.07.2007, 14:28   #5
amiack
 
Регистрация: 13.07.2007
Сообщений: 4
По умолчанию

у меня нету sysutils.tpu , полазил по инет, народ говорит что его можно затереть ..

также unnown identifier на floatto....

Последний раз редактировалось amiack; 13.07.2007 в 14:34.
amiack вне форума Ответить с цитированием
Старый 13.07.2007, 14:44   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от amiack Посмотреть сообщение
также unnown identifier на floatto....
Я тебе код исправил, для консоли Delphi.
На чем пишешь? Если это Паскаль, то смотри мой пост #3

Последний раз редактировалось Alex21; 13.07.2007 в 14:47.
Alex21 вне форума Ответить с цитированием
Старый 17.07.2007, 11:08   #7
amiack
 
Регистрация: 13.07.2007
Сообщений: 4
По умолчанию

lstr:=floatToStr(l); то есть вместо того надо писать lstr:=l;

и использовать модуль CRT
amiack вне форума Ответить с цитированием
Старый 17.07.2007, 12:25   #8
amiack
 
Регистрация: 13.07.2007
Сообщений: 4
По умолчанию

Код:
pprogram praktika;

Label g1,g2,g3,g4;
var
T:text;
x:array[1..9] of real;
x0:array[1..9] of real;
f,f1,Q:real;
i,n,l:integer;
b,eps,p1,p2,p3,G:real;
fstr:string [16];
xstr:string [5];
qstr:string [8];
gstr:string [8];
lstr:string [3];
bstr:string [16];
estr:string [16];
procedure W;
begin
str(l, lstr);
str(x[i],xstr);
str(f,fstr);
str(b,bstr);
str(eps,estr);
write(T,'x[',i,']=');
write(T,xstr);
write(T,'f=');
write(T,fstr);
write(T,'b=');
write(T,bstr);
write(T,'l=');
write(T,lstr);
write(T,'e=');
write(T,estr);
append(T);
end;
procedure W1;
begin
str(l, lstr);
str(g,gstr);
str(q,qstr);
str(x[i],xstr);
str(f,fstr);
str(b, bstr);
write(T,'x[',i,']=');
write(T,xstr);
write(T, 'l=');
write(T,lstr);
write(T, 'g=');
write(T, gstr);
write(T, 'q=');
write(T, qstr);
write(T, 'f=');
write(T, fstr);
write(T, 'b=');
write(T, bstr);
append(T);
end;
procedure setP;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0[2]-6;
p3:= x0[2]-0.5*x0[2]+1;
end;
procedure setP1;
begin
p1:= x0[2]-2*x0[1]-1;
p2:= x0[2]+2*x0[2]-6;
p3:= x0[2]-0.5*x0[2]+1;
end;
procedure setG;
begin
setP1;
if(p1<=0)and(p2<=0)and(p3>=0) then
begin
G:=0;
end
else G:=sqr(sqr(1*P1)+sqr(sqr(p2*1))+sqr(1*p3));
end;
procedure SetF;
begin
Q:=sqr(x[1]-2);
setG;
f:=G+Q;
writeln('f=',f,'x(',i,')=',x[i],'Q=',Q,'G=',G);
W1
end;
begin
assign(T,'c:\1praktika.txt');
rewrite(T);
g4:
write('vvedite_razmernost_prostranstva_n,n=');
readln(n);
if(n>2 ) or (n<2) then goto g4;
g3:for i:=0 to n do begin
write('X(',i,')=');
readln(x0[i]);
end;
setP;
for i:=0 to n do begin
if(p1<=0)and(p2<=0)and(p3>=0) then begin
x[i]:=x0[i]; end
else goto g3;
write('vvedite_shag_optimizacii b ,b=');
readln(b);
write('vvedite_to4nost_opredeleniya_optimuma_funkcii f=sqr(x[1]-2+sqr(x[2]-2)eps, eps=');
readln(eps);
l:=1;
setF;
g1:
for i:=1 to n do begin
g2:
f1:=f;
x[1]:=x[i]+b;
setF;
if f<f1 then begin
f1:=f;
x[i]:=x[i]+b;
setF;
readln;
if f>f1 then begin
f:=f1;
end
else goto g2;
end
else begin
b:=-b;
goto g2;
end;
end;
if b<0 then
b:=-b;
if b>eps then begin
b:=b/2;
writeln('b=',b);
readln;
l:=l+1;
for i:=1 to n do begin
writeln('x(',i,')=',x[i],' f=');
W;
readln;
end;
goto g1;
end
else begin
for i:=1 to n do begin
writeln('x(',i,')=',x[i],' f=',f);
W;
end;
end;
readln;
readln;
end;
end.
ну вот, прога вроде работает тока в файл ничего не пишет
amiack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помошь (паскаль) gred Помощь студентам 12 27.02.2008 06:56
очень нужна помошь очень крутой Помощь студентам 3 06.12.2007 02:06
нужна помошь с таблицами и DBEdit akaBd БД в Delphi 7 18.03.2007 19:15