توی برنامه گذاشتم
نمایش نسخه قابل چاپ
توی massege ها میگه کجای کار مشکل داره....
این برنامه رو اجرا کن ببین مشکل داره باهاش و اگه داره ببین تو Massegeها چی مینویسه اونو بذار...
کد:uses
crt;
var
adad: array [1..255] of integer;
inter,tak,amal:string;
e,c,w,i,j,tol,io,v,z,y,iop:integer;
adad1,adad2:longint;
op,opera:char;
flag:boolean;
save:text;
begin
clrscr;
write ('Please Inter Formula (for example 2+3) : ');
repeat
flag:=true;
readln (inter);
tol:= length(inter);
if tol=0 then
begin
write ('it is blank... please try again: ');
flag:=false;
end;
for i:= 1 to tol do
begin
tak:= inter [i];
if tak='0' then adad [i]:= 0 else
if tak='1' then adad [i]:= 1 else
if tak='2' then adad [i]:= 2 else
if tak='3' then adad [i]:= 3 else
if tak='4' then adad [i]:= 4 else
if tak='5' then adad [i]:= 5 else
if tak='6' then adad [i]:= 6 else
if tak='7' then adad [i]:= 7 else
if tak='8' then adad [i]:= 8 else
if tak='9' then adad [i]:= 9 else
if tak='+' then adad [i]:= 10 else
if tak='-' then adad [i]:= 20 else
if tak='/' then adad [i]:= 30 else
if tak='*' then adad [i]:= 40 else
begin
write ('invalid format. please try again: ');
flag:=false;
break;
end;
end;
for i:= 1 to tol do
begin
j:=adad[i];
if (j=10) or (j=20) or (j=30) or (j=40) then
begin
z:=i+1;
for c:= z to tol do
begin
y:=adad[c];
if (y=10) or (y=20) or (y=30) or (y=40) then
begin
write ('invalid format. please try again: ');
flag:=false;
break;
end;
end;
end;
end;
v:=adad[1];
if (v=10) or (v=20) or (v=30) or (v=40) then
begin
write ('invalid format. please try again: ');
flag:=false;
end;
w:=adad[tol];
if (w=10) or (w=20) or (w=30) or (w=40) then
begin
write ('invalid format. please try again: ');
flag:=false;
end;
for i := 2 to tol-1 do
begin
w:=adad[i];
if (w=10) or (w=20) or (w=30) or (w=40) then
begin
io:=adad[i];
iop:=i;
break;
end
else
if (i=tol-1) then
begin
write ('invalid format. please try again: ');
flag:=false;
end;
end;
until flag=true;
case io of
10 : op:='+';
20 : op:='-';
30 : op:='/';
40 : op:='*';
end;
assign (save,'save.dat');
rewrite (save);
writeln (save,op);
for i:= 1 to iop-1 do
write (save,adad[i]);
writeln(save,'');
for i:= iop+1 to tol do
write (save,adad[i]);
close (save);
reset (save);
readln (save,opera);
readln (save,adad1);
readln (save,adad2);
close(save);
writeln (adad1,' ',opera,' ',adad2);
write ('Result: ');
case opera of
'+' : Write (adad1+adad2);
'-' : Write (adad1-adad2);
'*' : Write (adad1*adad2);
'/' : Write (adad1/adad2);
end;
writeln;
write ('Press enter to exit...');
readln;
end.
خوب جناب میگه کدوم خط مشکل داره دیگه. یه اطلاعات دقیقتر بده بشه بفهمی عیب کار از کجاست...
متن کامل بده اگه اسکرین شات بتونی بدی که چه بهتر....
ctrl + f9 میزنی این خطا رو میده ؟
ویندوزت چی هست ؟ چند بیتی ؟
begin
end.
خالی بزنی هم خطا میگیره ؟
شما فقط .begin end زدی ؟
این چرا خطای wincrt گرفته ؟ شما گفتی wincrt یا خودش ؟ اصلا تو این کامپایلری که من دادم wincrt تعریف نشده ! شما با کدوم کامپایلر میری ؟!
مطمئنم کامپایلر مشکلی نداره چون دیشب خودم یجا برای یه نفر از همون آدرس دانلود کردم و نصب کردم براش.
ولی تو اینکه شما کاری که من دارم میگم انجام بدی شک دارم !
شما کامپایلری که من گفتم از مسیر c:\tp\Turbo Pascal 7.0.pif اجرا کن
صفحه خالی باشه
توش فقط و فقط بنویس
خط اول begin بعد هم end. هیچی دیگه هم نمیخواد بعد ctrl + f9 کن ببین خطا میده یا اجرا میشه و بسته میشه سریع...