صفحه 3 از 3 نخستنخست 123
نمایش نتایج: از شماره 21 تا 27 , از مجموع 27

موضوع: کی پاسکال بلده ؟

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو انجمن Mohsen آواتار ها
    تاریخ عضویت
    May 2009
    نوشته ها
    340
    تشکر تشکر کرده 
    281
    تشکر تشکر شده 
    741
    تشکر شده در
    324 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    نقل قول نوشته اصلی توسط rezafh2 نمایش پست ها
    برای ضرب دو عدد اصلا این چیزا نیاز نیست
    شما دو تا عدد رو در دو تا متغیر میگیرید و بعد اونها رو در هم ضرب میکنید و در آخر نمایش جواب !

    کد:
    program t2;
    var
    a,b:integer;
    begin
    writeln ('please enter your first number :');
    read (a);
    writeln ('please enter your secound number :');
    read (b);
    writeln ( a,'*',b,'=',a*b );
    end.
    چیزی که نمایش داده میشه فکر کنم اینطوری باشه :

    کد:
    please enter your first number : 312
    
    please enter your secound number : 42
    
    312 * 42 = 13104
    همین ! (عدد a گرفته میشود و بعد عدد b و بعد در هم ضرب شده و جواب نمایش داده میشود)
    البته این فقط برای ضرب بود .
    برای اینکه یکم پیشرفته تر بشه میشه یه متغیر هم برای عملگر ( علامتهای ضرب و تقسیم و ... ) از ورودی گرفت
    دوست عزیز شما صورت مساله رو پیچوندین!
    اینی که شما میگین این میشه که عددها رو جدا بگیرن و علمگر رو جدا و اعمال کنن بره!
    اما صورت مساله میخواد یه رشته از ورودی گرفته بشه! نه اینکه عددها جدا جدا گرفته بشه!
    اون طوری که شما میگین زیادی آسون میشه!

  2. #2
    عضو انجمن RezaFH آواتار ها
    تاریخ عضویت
    Jul 2009
    محل سکونت
    تبریز
    نوشته ها
    699
    تشکر تشکر کرده 
    1,032
    تشکر تشکر شده 
    2,817
    تشکر شده در
    1,444 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
    در اینجا هم میشه از while استفاده کرد
    به معنی و کاربرد "تا زمانی که"

  3. تعداد تشکر ها از RezaFH به دلیل پست مفید


  4. #3
    عضو دائم
    تاریخ عضویت
    Jan 2009
    محل سکونت
    یزد
    نوشته ها
    2,773
    تشکر تشکر کرده 
    914
    تشکر تشکر شده 
    2,780
    تشکر شده در
    1,757 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    نقل قول نوشته اصلی توسط rezafh2 نمایش پست ها
    ببخشید من متوجه نشدم که باید در یک رشته وارد بشه
    در اینجا هم میشه از while استفاده کرد
    به معنی و کاربرد "تا زمانی که"
    it is ok
    همینه....
    سه تا while لازم هست...
    حالا این whileها چیکارا میکرد رو دقیق یادم نیست.
    آقا رضا اگه شما صورت مسئله اومد تو ذهنت بی زحمت بنویسش که من شبی بشینم تغییرش بدم ۴ تاش کنم که فردا صب بدم اینا ببرن دعات کنن...

    ---------- Post added at 05:58 PM ---------- Previous post was at 05:50 PM ----------

    نقل قول نوشته اصلی توسط tasnimsg نمایش پست ها
    تو c دو تا دستور برای این کار (خروج از حلقه) داریم، break و continue که هر کدوم کاربرد خودش رو داره، تو پاسکال هم باید مشابه‌اش باشه!
    break از حلقه خارج میشه.
    continue به اول حلقه میبرتت

    قبل از اینکه شما پست بزنید خودم یادم اومد و پستم رو ادیت کردم...

    ---------- Post added at 06:29 PM ---------- Previous post was at 05:58 PM ----------

    نقل قول نوشته اصلی توسط rezafh2 نمایش پست ها
    برای ضرب دو عدد اصلا این چیزا نیاز نیست
    شما دو تا عدد رو در دو تا متغیر میگیرید و بعد اونها رو در هم ضرب میکنید و در آخر نمایش جواب !

    کد:
    program t2;
    var
    a,b:integer;
    begin
    writeln ('please enter your first number :');
    read (a);
    writeln ('please enter your secound number :');
    read (b);
    writeln ( a,'*',b,'=',a*b );
    end.
    چیزی که نمایش داده میشه فکر کنم اینطوری باشه :

    کد:
    please enter your first number : 312
    
    please enter your secound number : 42
    
    312 * 42 = 13104
    همین ! (عدد a گرفته میشود و بعد عدد b و بعد در هم ضرب شده و جواب نمایش داده میشود)
    البته این فقط برای ضرب بود .
    برای اینکه یکم پیشرفته تر بشه میشه یه متغیر هم برای عملگر ( علامتهای ضرب و تقسیم و ... ) از ورودی گرفت
    بیا اینم برا بقیه عمل ها ! مساله اینجاست ورودی که برنامه ما باید بگیره 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.


  5. #4
    عضو دائم
    تاریخ عضویت
    Jan 2009
    محل سکونت
    یزد
    نوشته ها
    2,773
    تشکر تشکر کرده 
    914
    تشکر تشکر شده 
    2,780
    تشکر شده در
    1,757 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    این while چی شد‌؟


  6. #5
    عضو انجمن RezaFH آواتار ها
    تاریخ عضویت
    Jul 2009
    محل سکونت
    تبریز
    نوشته ها
    699
    تشکر تشکر کرده 
    1,032
    تشکر تشکر شده 
    2,817
    تشکر شده در
    1,444 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    نمیدونم چرا وقتی به اینا فکر میکنم مغذم قفل میکنه !

    یه مثال شاید کمک کنه :

    کد:
    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.
    این برنامه کاراکتر های حرف t (و T) رو پیدا میکنه و میشماره !

    دوشنبه خودم امتحان پاسکال دارم
    اگه شما با اینا نتونستین کاری بکنین تا شب بازم فکر میکنم
    اگه چیزی به ذهنم رسید میگم

  7. #6
    عضو دائم
    تاریخ عضویت
    Jan 2009
    محل سکونت
    یزد
    نوشته ها
    2,773
    تشکر تشکر کرده 
    914
    تشکر تشکر شده 
    2,780
    تشکر شده در
    1,757 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    میگم رضا جان من خودم پاسکال کار کردم و این برنامه ها که شما میگی رو مث بلبل میتونم بنویسم.
    مساله ما الان این پروژه هست و با این مشکل داریم که البته اگه الگوریتم دقیقش رو بفهمم میتونم بنویسم.
    یه الگوریتمی رو خودم الان بهش رسیدم و با این الگوریتم دو تا از پروژه ها رو میتونم اوکی کنم (آخرش رو به ۲ صورت مینویسم!) انشالا آخر شب مینویسم اینجا هم میذارم.
    اما اون روش while که کوتاه و مفید هست اصل کاری هست که اون نوشته بشه خیلی محشره... من خودم این دو تا رو به یه روش دیگه نوشتمش..


  8. #7
    عضو دائم
    تاریخ عضویت
    Jan 2009
    محل سکونت
    یزد
    نوشته ها
    2,773
    تشکر تشکر کرده 
    914
    تشکر تشکر شده 
    2,780
    تشکر شده در
    1,757 پست

    پیش فرض پاسخ : کی پاسکال بلده ؟

    خیلی بهتر از این میشه نوشت ! ولی حالا اینو داشته باشید شاید لازمتون شد

    کد:
    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.


صفحه 3 از 3 نخستنخست 123

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •