سوالاتی  درمورد دستورات کنترلی وشرطی

سوالاتی  درمورد دستورات کنترلی وشرطی 

1)    اعداد صحیح و مثبت n ,m   را خوانده m  را به توان n  بر سانید ؟

2)    بر نامه ای بنویسید که یک عدد صحیح و مثبت دریافت کند  و اعداد اول 1 تا n را نمایش دهد ؟

3)  برنامه ای بنویسید سه عدد از ورودی دریافت کند و maxآنها را در خروجی چاپ کند؟(بدون متغیر کمکی )

4)  برنامه اي بنویسید كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ كند چنانچه 68 بود حاصلضرب دو عدد را چاپ كندو در غير اینصورت مقادیر مجاز را چاپ كند.(با دستورif)

5)    عدد صحیح و مثبت n را دریافت و فاکتور یل آن را در خروجی چاپ کند ؟

6)    مجموع اعداد زوج سه رقمی را محاسبه و چاپ نماید ؟

7)    برنامه ای بنویسید که توان دوم اعداد 100 تا 200 را چاپ كند؟

8)    برنامه اي بنويسيد كه اعداد 100..1 را چاپ كند؟

پاسخ ها

۱)

Program   t1;

Var

I, m, n: integer;

S: char;

P: Longint;

Begin

Writeln ('please enter m, n :);

Read (m, n);

Power: =1;

For a: =1   to n do

 Power: = power*m;

Write ('power=', power);

Readln(s);

End.

به توان رساندن یعنی مقدار پایه را به  تعداد توانش , در  خود ضرب نماییم یعنی m را n بار در خودش ضرب کنیم پس یک حلقه درست می نماییم که از یک تا n ادامه داشته باشد و در داخل حلقه m را د ر خودش ضرب می کنیم بعد از اتمام حلقه m  , n مرتبه در خودش ضرب  شده است  

1)     

 

Program t2;

Lable10;

Var

n,m,a: longint;

s: char;

Begin

Write('Please Enter n: ');

Readln(n);

For m:=1    to   n   do

Begin

            a:=2;

While  a<=m/2   do

Begin

      If ( m  mod  a=0 ) then goto 10;

      a:=a+1;

end;

     Write(m,' ');

10: end;

Read(s);

End.

 

2)     

  Program EXAMPL3;

        Var

             a, b , c: integer;

       Begin

             Readln (a, b, c);

                If a>b then

                     If a>c then

                         Write (a)

                     Else

                          Write(c)

               Else

                      If b>c then

                            Write (b)

                       Else

                             Write(c);

     End.

 

3)     

Program EXAMPL4;

Var

a, b: integer;

Begin
Writeln('enter 2 number');
Readln(a , b);
If (a>=0)and(a<=5) then
Writeln(b*b)
Else
If a=68 then
Writeln(a*b)
Else
Writeln('enter 0..5 or68');
End.

5)

Program EXAMPL5;

Var

A , n: integer;

Fact: Longint;

BEGIN

Repeat
WRITELN ('ENTER n :');
READLN (n);

Until    n>0;

Fact: =1;

For    a: =1   to n   do

 Fact: = fact*a;


WRITELN ('fact=', fact);

Readln;
END .

6)

 

Program EXAMPL6;

Var

n, B: integer;

Sum: Longint;

Begin

Sum: =0;

N:=100;

While    n<= 998     do

Begin

Sum: = sum+ n;

n:=n+2;

end;

write('sum=' ,sum);

Readln;
End.

7)

Program EXAMPL7;

Var

i: integer;

Begin
For i: =100 to 200 do
Begin
Writeln (i*i);
end;

End.

8)

Program EXAMPL8;

Var

i: integer;

Begin
I:=1;
While i<=100 do
Begin
Write(i);

I:=i+1;
End;

خلاصه توضیح دستورات شرطی و ...

جملات شر طی را می توانیم به 3حالت های مطرح کنیم :

1)    جمله شرطی می تواند از یک مقایسه مستقیم باشد

2)    جمله شرطی می تواند شامل محاسبات باشد

3)    جمله شرطی می تواند شامل چندین شرط باشد

دستورات شرطی

1)    دستور If……….Then………..else  

2)    دستور case ………of 

3)    دستورgoto

دستورات کنترلی

1.     دستور حلقهfor………do

2.     حلقه while-do

3.     حلقه Repeat-Until

دستورcontinue :

این دستور در حلقه های for ,  while و یا Repeat  به کار می رود . هنگامی که به این دستور می رسیم , به ابتدای  حلقه پرش می کنیم .

دستور break:

این دستور نیز همواره در یکی از حلقه های  for ,whileو یا Repeat به کار می رود . این باعث می شود که در داخل حلقه پرش نمود و اجرای حلقه به طور کامل , خاتمه یابد .

نکته:

 Longint: برای عداد بزر گتر  و نشانه دار 4 بایت است .

Integer: می تواند حد اکثر 2 بایت اشغال کند.

دستوراتlabel و Gotoو Exit و  continueو break و تابعHalt

دستور label :

این د ستور در قسمت تعاریف بر نامه قرار می گیرد و وظیفه آن معرفی بر چسب های به کار رفته  د ر  بر نامه است .

Label     ......و بر چسب دوم و بر چسب اول

دستور   Goto:

ای دستور , کنترل بر نامه  را به  خطی  که بر چسب  آن مقابل  دستور goto  نوشته  شده  است  منتقل می گر داند.

Goto بر چسب مر بوطه   ;

هدف کلی:

گاهی در حین انجام یک بر نامه لازم است از یک سطر بر نامه به یک سطر دیگر که دستور خاصی در آن سطر قرار دارد ,پرش  کنیم . این پرش توسط دستور goto انجام می گیرد .اما برای اینکه  به مکانی رش کنیم ,باید آن مکان دارای اسم یا آدرس باشد , این اسم یا در اصطلاح بر چسب توسط دستور label معرفی می گردد.  

مثال11:

بر نامه ای بنویسید که یک عدد صحیح و مثبت دریافت کند  و اعداد اول 1 تا n را نمایش دهد .

Program EXAMPL11 ;

Lable10;

Var

n, m, a: Longint;

s: char;

Begin

Write ('Please Enter n: ');

Readln (n);

For m:=1    to   n   do

Begin

            a:=2;

While a<=m/2   do

Begin

      If (m mod a=0) then goto 10;

      a:=a+1;

End;

     Write (m,' ');

10: end;

Read(s);

End.

همانطور که مشاهده می نمایید بر چسب 10, توسط دستور label    معرفی می شود .

دستور Exit :

سبب خروج از  بلاک جاری (بلاک در حال اجرا)می شود . اگر بر نامه شامل چند بلاک باشد از بلاک جاری خارج می شود .

تابع Halt:

به اجرای بر نامه خاتمه می دهد . 

دستورcontinue :

این دستور در حلقه های for ,  while و یا Repeat  به کار می رود . هنگامی که به این دستور می رسیم , به ابتدای  حلقه پرش می کنیم .

مثال12:

فر ض کنید حلقه ای داریم که متغیر شمارنده  آن از 50 تا 150 را شمارش می کند می خواهیم اعدادی که در این فاصله  هستند و بر عدد 3 بخش پذیرند , چا گردند .

Program EXAMPL12;

Var

a: integer;

Begin

For   a: =50 to 150 do

Begin

If (a mod 3 <>0) then continue;

Write (a: 5);

End;

End.

دستور break:

این دستور نیز همواره در یکی از حلقه های  for ,whileو یا Repeat به کار می رود . این باعث می شود که در داخل حلقه پرش نمود و اجرای حلقه به طور کامل , خاتمه یابد .

مثال13:

خروجی برنامه زیر چیست ؟

Program   EXAMPL13;

Var

S: string;

Begin

While   true do begin

Readln (S);

If   S='exit'    then break;

Writeln(S);

End;

Write ('good by ');

End.

جواب

حلق بی نهایتی داریم که در داخل آن یک عبارت رشته ای در یافت می شود  و اگر عبارت رشته ای معادل 'exit ' باشد , بر نامه  خاتمه می پذیرد و در غیر این صورت عبارت رشته ای در خروجی نمایش داده می شود .

حلقه Repeat-Until

حلقه Repeat-Until

دستور Repeat-Until یکی دیگر از دستور کنترلی تکراری است که برای اجرای حلقه تکرار شرطی این دستور یبکار می رود.این دستور شبیه دستور While-Do است و از بعضی جهات این دو دستوزر  کنترلی مکمل یک دیگر هستند.

 دستور Repeat-Until  به صورت کلی زیر است :

Repeat دستور یا دستورات until شرط

توجه: دنباله دستورات بین Repeatو until همیشه دست کم یک بار اجرا می شود زیرا عبارت  شرطی تنها در پایان این دستور کنتر لی آزمایش می شود , که بر خلاف دستور While-Do است که در آن عبارت Boolean ( شرطی ) در آغاز دستور کنترلی آزمایش می شود ( اگر عبارت شرطی از همان ابتدا نادرست باشد , دستور While-Do اصلا اجرا نمی شود ) و بدین دلیل به حلقه Repeat-Until  حلقه بی نهایت نیز می گویند و حلقه Repeat-Until  نیاز به Begin و End ندارد اگر شرط مقابل Until  درست نباشد حلقه تکرار خواهد شد پس پایان حلقه درست بودن شرط است مزیت این حلقه نسبت به حلقه های دیگر بی نهایت بودنش است.

مثال10:

برنامه ای بنویسید بی  نهایت عدد را از ورودی خوانده و مجمو ع معدل را محاسبه و چاپ نماید اتمام بر نامه زمانی است که عدد صفر وارد گردد.

Program EXAMPL10 ;

Var

a, sum, ave: real;

n : integer;

s:char;

Begin

Sum:=0;

n:= -1;

Repeat

           Write ('Enter Number :');

           Readln (a);

           Sum: = sum + a;

           n:=n+1;

Until a=0;

ave:=sum/n;

Writeln ('sum=', sum: 1:2);

Write ('ave =', ave: 1:2);

Read(s);

End.

نکته:

مقدار اولیه n  برابر1ــ می باشد و آن بدین علت است که  عدد صفر منجر به اتمام حلقه می باشد , به عنوان یک ورودی شمرده  می شود ودر معدل تاثیر خواهد گذاشت در صورتیکه ما نمی خواهیم عدد صفر رات به عنوان یک ورودی داشته باشیم . لذا مقدار اولیه n   را 1ــ  معرفی می نماییم تا صفر به عنوان اعداد خوانده شده,در نظر گرفته نشود.

حلقهWhile-Do

2 ) حلقهWhile-Do

دستور While-Do   یک دستور کنترلی تکراری است که برای اجرای حلقه تکرار شرطی بکار می رود.

این دسور به صورت کلی زیر است

While  شرط  Do  دستورات  

در حلقه While –Do قبل از اجرای بلاک برنامه عبارت شرطی مورد تست قرار می گیرد

 اگرعبارت شرطی نادرست باشد بلاک بعد از حلقه اجرا نخواهد شد بدین ترتیب ممکن است این حلقه هیچگاه اجرا نشود.

اگر عبارت شرطی درست باشد بخش دستور به صورت مکرر اجرا می شود تا وقتی که ارزش عبارت شرطی نادرست باشد اگر بیش از چند دستور بخواهیم در حلقه بکار گیریم باید از Beginو End استفاده کنیم . 

مثال 9:

یک عدد صحیح و مثبت در یافت و در صورتیکه ورودی عدد کامل بود پاسخ  مثبت دهد ؟

Program EXAMPL9;

Var

n, a, sum: Longint;

s: char;

Begin

Write ('Please Enter n: ');

Readln (n);

Sum: =0;

a:=1;

While a<=n/2 do

Begin

            If (n mod a=0) then sum:=sum + a;

            a:=a+1;

End;

If n=sum then Write ('YES')

     Else Write ('NO');

Read(S);

End.

توضیح:

عددی کامل است که با مجموع مقسوم علیه های کوچکتر از خودش ,برابر باشد.

به عنوان نمونه    6=1+2+3

بر ای بدست آوردن مجموع مقسوم علیه ها کافی است , هر بار که فهمیدیم که شمارنده 1 تا n/2  ما یا همان a  ,مقسوم علیه عدد n  است (فر مان if) ,مقسوم علیه بدست آمده را در داخل متغییر sum  بریزیم .

بعد از اتمام حلقه ,مقدار sum  با خود عدد مقایسه می شود  و اگر دو مقدار برابر بودند ,nعد د  کامل است .

دستور حلقهfor………do

کنترل تکرار بر نامه ها

برای تکرار بلاکی از بر نامه می توانیم به جای تکرار دستورات به تعداد مورد نیاز از دستورات حلقه استفاده کنیم در پاسکال انواع دستورات حلقه داریم که عبارتند از :

1)دستور حلقهfor………do

این دستور دارای یک شمارنده می باشد که مقدار اولیه و مقدار نهایی آن باید مشخص شده باشد

 شکل کلی دستور for

For    متغییر :=مقدار اولیه       to     مقدار نهایی    do   دستورات

Begin

دستوراتی که باید تکرار شوند 

End

نکته :

زمانی از begin و end  استفاده می کنیم که دستورات اجرای داخل for بیشتر باشد .

حلقه ها 2حالت می توانند داشته باشند :

1)افزایشی

در این حالت بین مقدار اولیه و مقدار نهایی عبارت toرا بکار می بریم بدین تر تیب مقدار اولیه کمتر از مقدار نهایی خواهد بود.

مثال 7 :

عددی صحیح و مثبت را گرفته اعداد کمتر از هزار که بر N بخش پذیر است را چاپ کند ؟

Program  EXAMPL7  ;

Var

N, I: integer;

Begin

Write ('enter N :');

Readln (N);

For   I=1   to 999   do

If (I mod N= 0) then   write (I);

Readln;

End.

2)کاهشی

در  این حالت بین عبارت مقدار اولیه و مقدار نهایی از عبارت down to  استفاد ه می کنیم .بنابراین مقدار اولیه بیشتر از مقدار نهایی خواهد بود .

حلقه های to در to :

دستورات      DO      مقدار اتمام       TO      مقدار شروع =: متغیر  FOR 

---------------

---------------

دستورات      DO      مقدار اتمام       TO      مقدار شروع =: متغیر  FOR 

مثال 8 :

جدول ضرب 10*10را محاسبه و چاپ کند

Program  EXAMPL8;

Var

a,b: integer;

Begin

For a: =1    To   10   Do

Begin

For   b: =1    To 10   Do

Write (a*b: 5);

Writeln;

End;

Read(s);

End.

یادآوری : در دستور

Write(a*b:5);

عدد 5 فاصله مابین دو ستون را مشخص می کند و دستور Writeln در سطر بعدی فاصله ما بین دو سطر است و یا به عبارتی دیگر بین سطور فاصله ایجاد می کند

دستور شرطی  case………..  of

2)دستور شرطی  case………..  of

به طور کلی برای انجام پرش های شرطی می توانیم  از دستور case استفاده به خصوص زمانی که پرش های چند شاخه ای نیاز داشته باشیم.شکل کلی دستور caseبه شکل زیر است : 

Case          نام متغییری که شرط بر روی آن اعمال می شود      of

دستور1:  شرط 1             

دستور2:  شرط2                                

 

 

دستورn:  شرط n

End

نکته:

علامت آخر end بستگی به محل قرار گیری آن دارد امکان دارد سمیکالن یا نقطه  باشد ودر ضمن به دستور قبل از end در شرطcase می توان سمیکالن نگذاشت.

مثال:

Case   traffic   of

Red: Write ('stop');

Green: write ('go head');

Amber: write('stop  if possible, else go head')

End;

 مثال:

Case   key     of

'A'. . 'Z': write ('uppercase');

'a' . . 'z': write('Lowercase');

'0'. . '9': write('numeric');

End;

مثال6:برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ كند چنانچه 68 بود حاصلضرب دو عدد را چاپ كند و در غير اينصورت مقادير مجاز را چاپ كند.

Program EXAMPL6;

Var

A,B: integer

BEGIN
WRITELN('ENTER TWO  NUMBER');
READLN(A,B);
CASE A OF
0..5 :WRITELN(B*B);
68:WRITELN(A*B)
ELSE
WRITELN('ENTER 0..5 OR 68');
END;
END.

 

دستور If……….Then………..else

2)دستور If……….Then………..else  

در بر خی موارد یک بر نامه نیاز به 2شاخه شرطی دارد در این حالت از دستور شرطی به صورت If……….Then………..else   استفاده می کنیم که یکی از آنها در صورت درست بودن شرط اجرا خواهد شد در این حالت اگر نتیجه ارزش یابی جمله بولین یا بولی درست باشد بلاکی از بر نامه که بعد ازدستورالعمل then   قرار دارد اجرا خواهد شد ولی اگر نتیجه ارزش یابی نادرست باشد بلاکی از بر نامه که بعد از else   قرار دارد اجرا خواهد شد در هر دو حالت پس از اجرای بلاک انتخاب شده کنترل برنامه به دستور العمل If……….Then………..else منتقل می شود فلوچارت آن به شکل زیر می باشد .

 

If……….Then………..else

نکته :

قبل از دستور else از سمیکالن استفاده نمی کنیم .

مثال3:

برنامه ای بنویسیدکه عددصحیح را در یافت کرده و تعیین کند زوج است یا فرد ؟

 

Program EXAMPL3;

Var

N:integer;

Begin

Read(N);

If   N mod  2=0    then

Writeln('p');

Else

Writeln('q');

End.

حالت یافته if…….then…..else

If……….then

Else

Else

Else

در حالت گسترش می توانیم با استفاده از if …..else  توسعه را انجام  دهیم .

به این تر تیب جملات بولی پشت سر هم بیان می شود ودر نتیجه می توان پرش های چند شاخه  ای را انجام داد بر نامه پس از رسیدن به نتیجه false در مورد عبارت شرطی اول اجرای بلاک برنامه عبارت false شرط دوم را ارزشیابی میکند تا اینکه دستور  if ……Else  وارد عمل شود اگر این عبارت هم false باشد آخرین بلاک برنامه اجرا می شود.

مثال4:

خروجی بر نامه چیست؟

 

Program EXAMPL4 ;

Var

Mess:char;

Begin

Writeln(' کاراکتری با حروف بزرگ وارد کنید ');

Read(Mess);

If   Mess='A'    then

     Writeln('Add')

Else   if    Mess='I'   then

              Writeln('Insert')

Else   if    Mess='D'   then

              Writeln('Delete')

Else   if    Mess='E'   then

              Writeln('Exit');

Writeln('press enter ' );

Readln;

End.

جواب :

یک منو شامل دستورات

A: Add

I: Insert

D: Delete

E: Exit

دستورات تودر تو در if ……then  

هر گاه بخواهیم 2 یا چند شرط رامختلف را به منظور انجام کار ی تعریف می کنیم از if ……then   تو در تو استفا ده می کنیم .

مثال5:

سه عدد را خوانده و بزرگتر و کوچکتر را چاپ کند ؟

Program EXAMPL5;

Var

A,b,c,min,max:integer;

Begin

Readln(a ,b, c);

Max:=a;

Min:=b;

If  b>Max then

Max:=b;

If   a

     min:=a;

If    c>max  then

        Max:=c;

If    c

Min:=c ;

Writeln('larg:', max  , 'smol:',min );

Readln;

End.

 

جملات شرطی

جملات شرطی

جملات شر طی را می توانیم به حالت های مختلفی مطرح می کنیم .

1.     جمله شرطی می تواند از یک مقایسه مستقیم باشد .

مثال:

Age>12          یا         x

2.     جمله شرطی می تواند شامل محاسبات باشد .

مثال:

x>(12*a)                      یا                (x-5)<(y-5)+(x+5)

3.     جمله شرطی می تواند شامل چندین شرط باشد .

مثال:

(age >21)   and  (name='Sara')

x>=12     or      y<=x

مثال1:

خروجی برنامه زیر چیست؟

Program EXAMPL1;

       Var

           i, j: integer;

           i:=9 ;

            y:=-47;

             Writeln (' i     or    J>0='  ,   i    or   J>0);

             Writeln;

             Writeln ('( i>0)     or    (J>0)  ='  , ( i >0)  or ( J>0));

             Writeln;

            Writeln ('presenter.');

            End.

جواب:

i    or  J  

9+ ( - 47)

9 - 47

- 38<0

false

T=1

F=0

 

دستورات شرطی

1) دستورthen  ......       If

دستور If یک دستور کنترلی شرطی  است و تنها در صورتی که شرط مقدار درست داشته باشد یا نادرست اجازه می دهد عملی انجام شود .

کاربرد دستور

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

نکته :

به دستور If اغلب دستورthen  .....  If هم می گویند.

دستور If …… then دو حالت دارد ؟

حالت 1:

1) If   شرط   then   دستورات         

 مثال2:

 بر نامه ای بنویسید که سن را بخوهد و اگر سن شخص بزرگتر و مساوی 20 باشد بنویسد very good""

Program EXAMPL2;

       Var

         age: integer;

           Begin

             Writeln (' enter age :');

             Read(Age) ;

                If Age>=20   then

                    Writeln (' very good');

            Writeln ('enter age :');

           Readln;

            End.

نکته :

اگر بخواهیم بیش از یک دستور العمل را به طور  شرطی اجرا کنیم دستورالعمل های مورد نظر را داخل کلمات begin و end قرار می دهیم .

If شرط     then ….

           Begin

       دستورات

          End;

    دستورات بعدی برنامه

4 تابرنامه

سوالات تشریحی 

1)    برنامه ای بنویسید که 4 عدد راخوانده میانگین آنهارا حساب کند؟

2)  بر نامه ای بنویسید که مبلغ n را بگیرد و برای ما مشخص کند این مبلغ از چند سکه 10 ریالی چند سکه 5 ریالی چند سکه 2 ریالی و یک ریالی تشکیل شده است ؟

3)  برنامه اي بنويسد كه معدل سه دانشجو را از ورودي بخواند ومعدل هر دانشجو را در جلو نام آن در خروجي چاپ كند .( در ابتدا نام سه دانشجو خوانده شده و در ادامه معدل آنها از ورودي خوانده شود)؟

4)    هدف از قرار دادن Ln  در پایان دستور خواندن و نوشتن  چیست؟

 

پاسخ

 Program   t1;

       Var

a , b, c, d,s: integer; 

   Begin

           Readln (a, b, c, d);

            S:=(a+b+c+d);

Writeln(s div  4);

Readln;

End.

2)     

Program  t2;

       Var

X, y, z, w, n: integer; 

            S: char; 

   Begin

           Readln (n);

            X:= n  div  10 ;

         n:=  n  mod 10;

         y := n  div  5;

         n:=  n  mod5;

         z:= n  div  2 ;

         n:=  n  mod 2;

          w:= n  div  1 ;

         n:=  n  mod 1;

         Writeln('10R=' ,x , '5R=' ,y , '2R=',z,  '1R=',w,);

       Read(s);

        End.

 

3)     

Program t3 ;

       Var

           n1,n2,n3:string[30];   { نام سه دانشجو}

            a1,a2,a3:real;  {معدل سه دانشجو}

             s:char;

   Begin

           writeln(n1,n2,n3);

             readln(a1,a2,a3);

               writeln(n1,a1);

                  writeln(n2,a2);

                    writeln(n3,a3);

                    read(s);

   End.

 

4)    Ln در دستورات به معنی این است که دستور در سطر جدا گانه اعمال شود.

مثال هاي ابتدايي

مثال 1:

برنامه ای که 2 عدد صحیح را از ورودی خوانده و حاصل جمع و حاصل تقسیم  را محاسبه کند؟

 

Program   EXAMPL1;

       Var

           n1, n2: integer;  

            a1, a2: real; 

   Begin

             Readln (n1, n2);

                a1:=n1+n2;

               Writeln (a1) ;{{ حاصل جمع

                 a2:=n1/n2;

                Writeln (a2) ;{ حاصل تقسیم}

   End.

این پاسخ یک ایراد اساسی دارد.ابتدا بزرگترین مشکل مثال بالا را پیدا کنید ؟

جواب:

1- وقتی در این حالت بر نامه را اجرا می کنید خروجی را نخواهید دید ولی می توان متغییر از نوع کاراکتر در قسمت Var تعریف کنیم و در پایان بهend پایانی مانده دستور;(read(sرا  قرار می دهیم تا کامپیوتر منتظر بماند شما یک کلید را به عنوان ورودی را وارد کنید و این باعث می شود شما خروجی بر نامه را تا هنگامی که کلید ی فشار  ندادید ببینید.

نکته :

به جای تعریف یک متغییر از نوع charو در پایان read کردن آن می توانیم تنها از Readln خالی در پایان بر نامه استفاده کنیم .

مثال 2:

2- مثال را طوری بنویسید که در هنگام اجرا متنی بنویسید که اعداد صحیح را وارد کنید و نیز در مقابل خروجی بنویسید که کدام خروجی مربوط به حاصل جمع است و کدام خروجی مر بوط به حاصل تقسیم است؟

 

جواب: 

Program   EXAMPL2;

       Var

           n1, n2: integer;  

            S: char; 

   Begin

             Writeln (2عدد صحیح را وارد کنید   );

             Readln (n1, n2);

             Writeln ('n1+n2', n1+n2);

              Writeln ('n1/n2', n1/n2);

               Read;

   End.

نکته :

الزامی وجود ندارد که یک بر نامه پاسکال هم از دستور ورودی و هم از دستور خروجی  استفاده کند اگر چه بیشر برنامه ها این گونه هستند زیرا اکثر بر نامه ها داده های ورودی را در یافت می کنند ودر زمان  اجرا٬ اطلاعات خروجی تولید می کنند.

مثال3:

بر نامه ای بنویسید مقدار دو متغییر a=3  وb=1 را جا بجا کند ؟

 

Program   EXAMPL2;

Var

n1, n2, temp: integer; {وظیفه نگهداری موقت داده ها temp} 

Begin

a:=3;

b:=1;

Temp: = a;

a:=b;

b:=temp;

Writeln ('a=', a),

Writeln ('b=', b);

Readln;

End.

نكته:

دلیل استفاده از متغییر temp این است هنگامی که مقدار جدید را به متغییر ی واردمی کنیم ٬محتویات متغییرقبلی ازبین می رودومقدارجدیدجایگزین می شود برای جلوگیری از این عمل ٬باید مقدار اولیه را در متغییر دیگری ذخیره کنیم .