ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
در اینجا هم میشه از while استفاده کرد
به معنی و کاربرد "تا زمانی که"
نمایش نسخه قابل چاپ
ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
در اینجا هم میشه از while استفاده کرد
به معنی و کاربرد "تا زمانی که"
it is ok
همینه....
سه تا while لازم هست...
حالا این whileها چیکارا میکرد رو دقیق یادم نیست.
آقا رضا اگه شما صورت مسئله اومد تو ذهنت بی زحمت بنویسش که من شبی بشینم تغییرش بدم ۴ تاش کنم که فردا صب بدم اینا ببرن دعات کنن... :52:
---------- Post added at 05:58 PM ---------- Previous post was at 05:50 PM ----------
break از حلقه خارج میشه.
continue به اول حلقه میبرتت
قبل از اینکه شما پست بزنید خودم یادم اومد و پستم رو ادیت کردم...
---------- Post added at 06:29 PM ---------- Previous post was at 05:58 PM ----------
:104: بیا اینم برا بقیه عمل ها ! مساله اینجاست ورودی که برنامه ما باید بگیره string هست که قابل محاسبه نیست.
البته این میتونی جزئی از برنامه بذاریم و بعد از اینکه عدد اول پیدا کردیم = a و عدد دوم رو = b و اپراتور هم که = op بذاریم که حلش کنه...
کد:
uses
crt;
var
a,b:real;
op:char;
begin
clrscr;
write ('please enter two number: ');
readln (a,b);
writeln;
write ('please enter a operator: ');
readln (op);
writeln;
case op of
'+' : writeln ('sum: ',(a+b));
'-' : writeln ('subtract: ',(a-b));
'*' : writeln ('multiple: ',(a*b));
'/' : writeln (' divide: ',(a/b));
end;
writeln;
writeln ('Press Enter To Exit');
readln;
end.
این while چی شد؟
نمیدونم چرا وقتی به اینا فکر میکنم مغذم قفل میکنه ! :d
یه مثال شاید کمک کنه :
این برنامه کاراکتر های حرف t (و T) رو پیدا میکنه و میشماره !کد:program 3;
var
count:integer;
ch:char;
begin
writeln ('please enter statment');
read (ch);
while ch <> '.' do
begin
if (ch = 't') or ( ch = 'T') then
count=count+1;
readln (ch);
end;
writeln ('number of characters =',count);
end.
دوشنبه خودم امتحان پاسکال دارم :((
اگه شما با اینا نتونستین کاری بکنین تا شب بازم فکر میکنم
اگه چیزی به ذهنم رسید میگم
میگم رضا جان من خودم پاسکال کار کردم و این برنامه ها که شما میگی رو مث بلبل میتونم بنویسم.
مساله ما الان این پروژه هست و با این مشکل داریم که البته اگه الگوریتم دقیقش رو بفهمم میتونم بنویسم.
یه الگوریتمی رو خودم الان بهش رسیدم و با این الگوریتم دو تا از پروژه ها رو میتونم اوکی کنم (آخرش رو به ۲ صورت مینویسم!) انشالا آخر شب مینویسم اینجا هم میذارم.
اما اون روش while که کوتاه و مفید هست اصل کاری هست که اون نوشته بشه خیلی محشره... من خودم این دو تا رو به یه روش دیگه نوشتمش..
خیلی بهتر از این میشه نوشت ! ولی حالا اینو داشته باشید شاید لازمتون شد L-)
کد: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.