مثال 27-7 برنامه‌اي بنويسيد كه دو عدد صحيح (m>n) n, m از ورودي دريافت كرده و بزرگترين مقسوم عليه مشترك دو عدد را محاسبه كرده، در خروجي چاپ نمايد.

Program             Example27;

Var

                        m,n,r: integer;

Begin

                            Writeln(‘Please Enter Two Numbers’);

                            Readln (m,n) ;

                            While (m Mod n) < > 0 Do

                            Begin

                                    r: m MOD n ;

                                    m: n;

                                    n:=r;

                            end ;{end of while}

                            Writeln (‘B.M.M=’,n) ;

End. {end of program}

مثال 28-7 برنامه‌اي بنويسيد كه يك عدد از ورودي دريافت كرده، اول بودن آن را تشخيص دهد.

Program                   Example28 ;

Var

                        Number, i : integer;

                          Flag: Boolean ;

Begin

                        Write (‘Please Enter A Numer: ‘) ;

                        Readln (Number) ;

                        I: 2; flag:= Ture ;

                        While i<= (Number div 2 ) Do

                        Begin

                              If( Number Mod I) = 0 Then

                                    Flag: = Falsi  ;

                                    I: = i+ 1 ;

                             End  ;

                        If  flag = Ture Then

                             Write (‘prime’)

End . {end of program}

برنامه بالا را مي‌توان به صورت زير بهينه كرد:

Program                   Example28  ;

Var

                                    Number, i: integer ;

                                    Flag: Boolean  ;

Begin

                        Write (‘Please Enter A Number: ‘)  ;

                        Readln (Number)  ;

                        I : 2 ;

                        Flag: = True  ;

                        While (I <= (Number div 2)) and ( flag = True)  do

                            Begin

                                 If (Number Mod  i) =0 Then

                                    Flag: = false  ;

                                 i: I +1   ;

                             end   ;

                        If   flag =Ture Then

                            Write (‘prime’)

                        Else

                              Write (‘No prime’) ;

End.

مثال 29-7 برنامه‌اي بنويسيد كه تعدادي عدد از ورودي دريافت كرده، تعداد اعداد زوج از بين اعداد خوانده شده، را شمرده و در خروجي چاپ نمايد (پايان داده‌ها به عدد منفي ختم مي‌شود).

Program                   Example 29 ;

Var

                                    Number, count: integer ;

Begin

                                    Count: = 0 ;

                                    Writeln (‘Please Enter Numbers while – 1: ‘)  ;

                                    Readln (Number)  ;

                                    While Number> 0 do

                                    Begin

                                                If (Number Mod 2) =0 Then

                                                            Count : = count + 1 ;

                                                Readln (Number) ;

                                    end ;

                                    Writeln (‘Number of even numbers = ‘ , count) ;

End . {end of program}

مثال 30-7 برنامه‌اي بنويسيد كه يك جمله را از ورودي دريافت كرده تعداد كاراكتر t را بشمارد. (جمله به نقطه ‘.’ ختم مي‌شود)

Program                   Example 30 ;

Var

                                    Count : integer ;

                                    Ch: Char  ;

Begin

                                    Writeln (‘Please Enter Statement’)  ;

                                    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. {end of program}

مثال 31-7 برنامه‌اي بنويسيد كه مجموع اعداد 1 تا 100 را محاسبه و چاپ نمايد.

Program                   Example 31  ;

Var

                                    I, Sum : integer;

Begin

                                          i: =1 ;

                                          Sum: =0 ;

                                          Repeat

                                                Sum:= sum+i ;

                                                i:=i+1  ;

                                           Until  i>100 ; {End of Repeat }

                                           Writeln (‘Sum = ,Sum) ;

end, {end of program}

مثال 32- 7 برنامه‌اي بنويسيد كه تعدادي عدد صحيح مثبت را از ورودي دريافت كرده، مجموع و ميانگين آنها را محاسبه و چاپ نمايد.

Program                   Example32 ;

Var

                                    I,Sum, Number : integer ;

                                    Ave: Real ;

Begin

                                    Writeln (‘Please enter numbers (while is Not negative’)  ;

                                    Sum: =0 ;

                                    Ave: =0 ;

                                    Repeat

                                                Sum: = sum + Number ;

                                                i:= i +1 ;

                                                Readln(Number) ;

                                    Until number < 0 ;{End of Repeat}

                                    i: i-1

                                    ave: Sum/I ;

                                    Writeln (‘Sum= ‘, Sum, ‘average= ‘: 12, ave : 7:2);

end.{end of program}

مثال 33-7 برنامه‌اي بنويسيد كه n عدد صحيح از ورودي دريافت كرده، بيشترين مقدار و تعداد آن را يافته در خروجي چاپ كند.

Program                               Example 33  ;

Var

                                                Max_Count, N, Number, i: integer ;

Begin

                                                Write (‘please enter Number of data: ‘) ;

                                                Readln (N) ;

                                                Writeln (‘Please enter numbers’)  ;

                                                Readln (Number) ;

                                                Max := Number ;

                                                Max _Count:  = 1 ;

                                                For      i: 2    to    N           do

                                                Begin

                                                            Readln (Number)  ;

                                                            If Max < Number Then

                                                                 Begin

                                                                                    Max : = Number ;

                                                                                    Max _ Count : =1  ;

                                                                 End

                                                            Else if Max = Number Then

                                                                        Max _ Count : = Max _ Count + 1 ;

                                    End ; { end of for }

                                    Writeln  ;

                                    Writeln (‘Max = ‘ , Max , ‘ Max count ‘: 12 , Max _ Count) ;

                                    Readln ;

End. {end of program}

مثال 34-7 برنامه‌اي بنويسيد كه n عدد را از ورودي دريافت كرده، n جمله سري زير كه به سري فيبوناجي معروف است را چاپ نمايد.

...  13   8   5   3    2   1  1  0

توجه كنيد كه در اين سري هر جمله مجموع دو جمله قبل مي‌باشد و در حالت  كلي :

Fn= Fn-1 + Fn-2

Program                               Example 34   ;

Var

                                                F1 , F2 , F3, N: integer;

Begin

                                                Write (‘Please enter a number: ‘) ;

                                                Readln (N)  ;

                                                F1 : -0 ; F2 : =1   ;

                                                F2: = F3 ;

                        End  ;{ end of  for}

                        Writeln ;

                        Writeln (‘ Press any Key …. ‘) ;

                        Readln ;

End { end of program}

مثال 35- 7 برنامه‌اي بنويسيد كه جمله‌اي از ورودي دريافت كرده، تعداد كلمه‌هاي جمله را شمرده و در خروجي چاپ كند.

 با فرض اينكه بين كلمه‌ها فقط يك فاصله وجود دارد و جمله به نقطه ختم مي‌شود.

Program                               Example 35   ;l

Var

                                                Word Count : integer ;

                                                Ch: Char  ;

Begin

                                                Writeln (‘ Please enter sentence’) ;

                                                Word_ Count :  = 0  ;

                                                Repeat

                                                            Read (ch)  ;

                                                            If (ch = ‘   ‘) and ( ch < > ‘.’ ) Then

                                                Until    ch = ‘.’   ;

                                                Writeln  ;

                                                Writeln (‘ Word Count = ‘ , Word _ Count) ;

End.

خروجي قطعه برنامه بالا با داده‌هاي زير:‌

Please enter sentence

This book is very useful for student.

بصورت

Word  count = 7

مثال 36-7 برنامه‌اي بنويسيد كه تعدادي عدد صحيح را از ورودي دريافت كرده، ارقام اعداد را تك‌تك در خروجي چاپ كند. (شرط پايان داده عدد 1- است )

Program                   Example 36   ;

Var

                                        Namber : integer ;

Begin

                                                Repeat          

                                                            Write (‘Wnter An Integer Number : ‘)  ;

                                                            Readln (Number )   ;

                                                            While Number > 0  Do

                                                                        Begin

                                                                                    Writeln (‘ ‘ : 12 , Number Mod 10 ) ;

                                                                                    Number : = Number D1V  10;

                                                            End  ;

                                                Until Number=-1 ;

End . {end of program }

خروجي حاصل از اجراي اين برنامه بصورت زير است:‌

Enter An Integer Number : 125

                        5

                        2

                        1

Enter An Integer Number : 2171

                        1

                        7

                        1

                        2

مثال 37-7 برنامه‌اي بنويسيد كه يك عدد صحيح در مبناي ده را از ورودي دريافت كرده،‌به يك عدد در مبناي 2 ببرد.

Program                   Example 37 ;

Var

                                    Number, N , Power , R:  integer ;

Begin

                                    Power: 1 ;

                                    N: =0

                                    Write (‘ enter A Number: ‘) ;

                                    Readln (Number) ;

                                    Repeat

                                                R:= Number MOD  2;

                                                Number: = Number DIV 2;

                                                N:= N+ Power *R ;

                                                Power: = Power ’10  ;

                                    Until Number <  2   ;

                                    N: = N+ Number * Power  ;

                                    Writeln (‘ Number In Base 2 = ‘ , N)  ;

End. {end  of  program}

مثال 1-8 به آرايه‌ زير توجه كنيد:

Var

     A: array [ 1 .. 10 ] of Byte ;

           .

           .

           .

               For  I : = 1  to  10 do

                        A [i] : = I ;

مثال 2-8 برنامه‌اي بنويسيد كه 100 عدد صحيح از ورودي دريافت كرده، بيشترين مقدار و محل وقوع آن را در خروجي چاپ نمايد.

Program  Example 2  ;

Var

                                    No: array [1.. 100] of  integer ;             

                                    Max, I, index: integer ;

Begin

                                    Writeln (‘Please enter ten numbers’) ;

                                    For  i: 1   to   100 do

                                                Readln (No [ i] ) ;

                                    Max : = No [1] ;

                                    Index: = 1 ;

                                    For  i: 2   to    100 do

                                                If  No [i] > Max Then

                                                            Begin

                                                                        Max : = No [i] ;

                                                                        Index : = I ;

                                                            End;

                                                Writeln (‘ The Maximum is = ‘ , Max) ;

                                                Writeln (‘ And Index =’ , Index ) ;

End. { End of program }

مثال 3-8 برنامه‌اي بنويسيد كه يك عدد از ورودي دريافت كرده به مبناي دو ببرد.

Program  Example 3  ;

Var

                                    J, Number , i: integer ;

                                    A; array [1.. 10] of integer ;

Begin

                                    Write (‘Please enter a number : ‘) ;

                                    Readln (Number) ;

                                    i: = 1

                                    While Number > = 0 Do

                                                Begin

                                                            A[i] = Number Mod 2 ;

                                                            Number : = Number DIV 2 ;

                                                            i: i+ 1 ;

                                                End ;

                                    For  j: = i-1  down to 1 do

                                            Write (a [ j] );

End. { End of program}

خروجي

Please   enter a number:  13

مثال 4-8 برنامه‌اي بنويسيد كه يك عدد از ورودي دريافت كرده عدد را به مبناي 16 ببرد.

Program   Example 4  ;

Var

                        Hex: array[ 1.. 10] of char ;

                        j,I,r, number : integer,

Begin

                        Write (‘Please enter a number’);

                        Readln (number);

                        I:1;

                        While (number >0) do begin

                                    r:= number mod 16;

                                    case r of

                                                            0:hex [i] := ‘0’;

                                                            10:hex [i] := ‘1’;

                                                            2:hex [i] := ‘2’;

                                                            3:hex [i] := ‘3’;

                                                            4:hex [i] := ‘4’;

                                                            5:hex [i] := ‘5’;

                                                            6:hex [i] := ‘6’;

                                                            7:hex [i] := ‘7’;

                                                            8:hex [i] := ‘8’;

                                                            9:hex [i] := ‘9’;

                                                            10:hex [i] := ‘A’;

                                                            11:hex [i] := ‘B’;

                                                            12:hex [i] := ‘C’;

                                                            130:hex [i] := ‘D’;

                                                            14:hex [i] := ‘E’;

                                                            15:hex [i] := ‘F’;

                                    end;

                                    i:= i+1;

                                    number: = number div 16;

            end;

            for j:=i-1 downto 1 do

                             write (hex[i]);

end.

مثال 5-8 برنامه‌اي بنويسيد كه يكي آرايه 100 عنصري را از ورودي دريافت كرده عناصر آرايه را معكوس نمايد.

بطور مثال :‌

فرض كنيد آرايه ورودي روبرو باشد:‌

1

7

3

8

 

8

3

7

1

 

خروجي برنامه بصورت روبرو خواهد بود.

Program  Example 5  ;

Var

                                    I, temp     : integer ;

                                        a  : array [1 .. 100] of integer ;

Begin

                                    Writeln (‘please enter 100 Numbers : ‘) ;

                                    For    i: = 1  to 100 do

                                                Begin

                                                            Read (a [i]);

                                                            If (I Mod 10) = 0 Then

                                                                        Writeln;

                                                end;

                                    For  i: 1    to    50 do

                                                Begin

                                                            Temp: = a [101 – i] ;

                                                            a[101 – i] := [i] ;

                        End;

                    Writeln;

            Writeln (‘The Inverse of Array’) ;

            For    i:= 1   to   100 Do

                        Begin

                                    Write (a[i] : 5);

                                                If (I Mod 10 ) = 0 Then

                                                            Writeln ;

                                    End  ;

End.

مثال 6-8 نمرات دو درس 40 دانشجو موجود است. برنامه اي بنويسيد كه اين نمرات را از ورودي دريافت كرده سپس معدل دانشجويان را محاسبه و به همراه نمرات آنها در خروجي چاپ نمايد.

Program  Example6 ;

Var

                                    i    : integer ;

                                    Grade 1 ,  Grade2, ave: Array[1..40] of Real

Begin

                                    Writeln (‘please enter Grade of Students:’);

For    i:1      to     40  do     

                                                Readln (Gradel1 [i] , Grade 2 [i] ) ;

                                    Writeln(‘Grade 1  Grade2  average ‘) ;

                                    For  i:  1  to  40  do

                                                Begin

                                                     Ave [i] : = (Grade1 [i] + Grade2 [i] /2 ;

                                                    Writeln (Grade1 [i] :t:2, Grade2 [i]: 8:2, ave[i] :8:2);

End ;

End.