فرمول مباني
مثال 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 |
|
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.