ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
در اینجا هم میشه از while استفاده کرد
به معنی و کاربرد "تا زمانی که"
ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
در اینجا هم میشه از while استفاده کرد
به معنی و کاربرد "تا زمانی که"
it is ok
همینه....
سه تا while لازم هست...
حالا این whileها چیکارا میکرد رو دقیق یادم نیست.
آقا رضا اگه شما صورت مسئله اومد تو ذهنت بی زحمت بنویسش که من شبی بشینم تغییرش بدم ۴ تاش کنم که فردا صب بدم اینا ببرن دعات کنن...
---------- 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 ----------
بیا اینم برا بقیه عمل ها ! مساله اینجاست ورودی که برنامه ما باید بگیره 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 چی شد؟
نمیدونم چرا وقتی به اینا فکر میکنم مغذم قفل میکنه !
یه مثال شاید کمک کنه :
این برنامه کاراکتر های حرف 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 که کوتاه و مفید هست اصل کاری هست که اون نوشته بشه خیلی محشره... من خودم این دو تا رو به یه روش دیگه نوشتمش..
خیلی بهتر از این میشه نوشت ! ولی حالا اینو داشته باشید شاید لازمتون شد
کد: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.
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)