التصنيفات
العلوم الإقتصادية

برنامج باسكال

برنامج باسكال


الونشريس

( لغات البرمجة ** باسكال ** )

1- لغات البرمجة
من المعروف أن الحاسوب يتكون من مكونين أساسين هما :
أ/ العتاد ( Hard ware) :- و هي المكونات المحسوسة و المرئية كالشاشة و لوحة المفاتيح
ب/ البرمجيات ( soft ware ) :- و هي مجموعة من البرامج التي تدير العتاد من ضمنها لغات البرمجة و نظم التشغيل .

2- لغة باسكال ( Pascal )

الشكل العام لباسكال :-
Ý) رأس البرنامج :-
ويبدأ بكلمة programو يليها اسم البرنامج ثم بين قوسين عبارتي Input و Output تفصلها فاصلة ( ‘) و ينتهي الرأس بفاصلة منقوطة ( ; ) .

Program circle (input , output ) ;
Program Summation (I , O ) ;

ورأس البرنامج جزء غير أساسي يمكن أن لا يكتب ( اختياري ) 0
ب) جزء التعريفات أو الإعلانات :-
و يتم فيه الإعلان جملة البيانات و الأشياء التي سوف تستخدم في البرنامج ( مدخلات و مخرجات ) و هي علي الترتيب :-
1- أسماء الوحدات :-
وهي التي تمكن من استخدام الدوال المتاحة في باسكال ( Dos ; Crt ; Graph ويبدأ تعريفها بالكلمة Uses 0

Uses
graph, dos;

2- الثوابت :-
و نعني بها العناوين التي لا تقبل تغيير في بياناتها في الذاكرة وتبدأ بالكلمة Const 0

Const
pi =3.14;

3- التعريفات الجديدة :-
و تبدأ بالكلمة Type ويعرف فيها البيانات ذات المدي المحدد مثل أيام الأسبوع و أشهر السنة و كذلك تعرف السجلات .

Type number = 0 .. 60 ( الأعداد المحددة من 0 إلي 60 )
Type اسم السجل = Record
حقل1 و نوع بياناته
حقل2 و نوع بياناته
End ;
Var
اسم السجل : مصفوفة [ أبعادها ] نوع البيانات ;

مثال لتعريف سجل اسمه عناوين يتكون من الحقول ( الاسم ( Name)، الشارع ( Street )، المدينة ( City ) ) .
Type

Address =Record
Name : char;
Street :integer;
City : char
End ;
Var

Student : array [ 1..30 ] of address ;

4-اللافتات :-
و تبدأ بكلمة ( Label )

Label stop, L1;

5– المتغيرات :-
و تبدأ بكلمة ( Var) و يعلن فيها عن البيانات التي تخزن في مواقع و عناوين تقبل التغيير في قيم بياناتها ، إذا كانت بسيطة كالمتغيرات البسيطة أو المركبة كالمصفوفات .

Var
X , Y : Integer ;
Var
St – score : array [ 1 .. 100 ] of Integer ;

6- الإجراءات و تبدأ بكلمة Procedure .
7- الدوال و تبدأ بكلمة Function .
و الدوال و الإجراءات هما عبارة عن مجموعة من البرمجيات الصغيرة ضمن البرنامج الأصلي .
ج) جســـم البرنامج :-
و يحتوي علي مجموعة من الجمل و العبارات تنحصر بين كلمتي ( Begin ) و ( End. )

معالجة البيانات في باسكال

(1) الأعـــــداد ( رقمية و حقيقية ) :-
أ/ المؤثرات الحسابية :-

العملية
الوظيفة
المدخلات
المخرجات

+

الجمع
رقمية أو حقيقية
رقمي إذا كان المدخلات رقمية و إلا حقيقية

الطرح

*

الضرب

/

القسمة
حقيقية

Div

حاصل القسمة الصحيح
رقمية
رقمية

Mod

باقي القسمة
رقمية
رقمية

ب / الدوال الحسابية :-

الدالة
الوظيفة
المدخلات
المخرجات
تطبيق
Abs

القيمة المطلقة للعدد
رقمي أو حقيقي
رقمي أو حقيقي

Abs (10);=10
Abs(-3) ;=3
Abs (-4.6) =4.6
Sqr

مربع العدد
رقمي أو حقيقي
رقمي أو حقيقي

Sqr(10);=100
Sqr(h);=h*h
Sqrt

الجذر التربيعي
حقيقي
حقيقي

Sqrt(100);=10
Sqrt (2.25);=1.5
Trunc

كشط الحقيقي لرقمي
حقيقي
رقمي

Trunc(2.99);=2
Trunc(88.88);=88
Round

تقريب الحقيقي لرقمي
رقمي أوحقيقي
رقمي

Round(5.1);=5
Round(7.7);=8
Sin

جا
رقمي أو حقيقي
حقيقي

Con

جتا

Tan

ظا

Ln

لو

Exp

القوة

(2) الدوال الحرفية :-

Ord

ترتيب الحرف في جدول Ascii
حرفية
رقمية

ord ( ‘A’) = 65
CHR

الحرف المقابل في ِAscii
رقمية
حرفية

Chr ( 65) = A
Succ

القيمة التالية للمدخل
حرفية
حرفية

Succ( ‘a’) = b
Succ( 14) = 15
Pred

القيمة السابقة للمدخل
حرفية
حرفية

Pred( ‘B’) = A
Pred ( 20) = 19
Upcase

الحرف الكبير
حرفية
حرفية

Upcase (‘e’) = E

(3) أدوات المنطقية :-

الأداة
في باسكال
=
=
***8800;
< >
>
>
<
<
***8805;
= >
***8804;
= <

IN

بعض الدوال المنطقية :-
Odd ( التحقق من فردية المدخل ، و مخرجها منطقي ( Odd(X) ) .
Eol التحقق من منطقية نهاية سطر ( End of Line ) .
Eof التحقق من منطقية نهاية ملف ( End Of File ) .
بالإضافة لـ And ، Or ، Not .

تطبيق البرمجة بلغة باسكال

&yacute;الغرض من كتابة برنامج هو الحصول علي مخرج أو مخرجات تفي لحاجة معينة .
&yacute;كتابة أي برنامج تمر بثلاثة مراحل :-
1)كتابة البرنامج بلغة البرمجة المختارة ( باسكال ) .
2)تصويب الأخطاء ( الترجمة ) .
3)تنفيذ البرنامج للحصول علي المخرجات .
&yacute;يتكون البرنامج من ثلاثة مكونات :-
1) المدخلات :- و لها عبارة خاصة في باسكال هي ( Read و Readln ) ، و الفرق بينها أن Read تقوم بالادخال مع إبقاء مؤشر الإدخال في نفس السطر ، بعكس Read يتحرك مؤشر الادخال للسطر التالي .
2) المدخلات : و تستخدم لها العبارة write ) و writeln ) و الاختلاف في أن writeln يتحرك مؤشر الاخراج للسطر التالي .
3) المعالجات ( المعادلات ) :
&yacute; تكتب الملاحظات و التعليقات بالشكل التالي :-
1) (* التعلـــــــــــــــــــــــــيق *) .
2) { التعلــــــــــــــــــــــــــــــيق }
&yacute; كل سطر في باسكال ينتهي بفاصلة منقوطة ( ; ) .
&yacute; أي عبارة محصورة بين علامتي تنصيص مفردة ( ‘My Name Is Adam’ ) تخرج كما هي .
&yacute; عبارة writeln عندما تكون خالية من جملة إخراجية ، بقصد منها ( ترك سطر فارغ ) .

أمثلة تطبيقية بسيطة علي البرمجة بباسكال :-
1) برنامج يقوم بإخراج جملة نحن طلاب السودان ( We are the student of Sudan )

Program sent ( output ) ;
Begin
Write ( ‘ We are the student of Sudan ‘ ) ;
End .

2) برنامج يستقبل رقم ، و يخرجه مصحوبا برسالة ( الرم المفضل favorite number ) .

Program favorite ( input ‘ output );
Var
Num : integer ;
Begin
Readln ( Num ) ;
Write ( Num , ‘favorite number’ ) ;
End .

3) وضح شكل مخرجات البرنامج التالي :

Program I only ( Input ,output ) ;

I 5 I
————–
I = 5

Const
I = 5 ;
Begin
Write ( ‘ I ‘ ) ;
Write ( I ) ;
Writeln ( ‘ I ‘ ) ;
Writeln ;
Write ( ‘ I = ‘ , I ) ;
End .

4) برنامج يقرأ نصف قطر ( r ) و يقوم بحساب مساحة الدائرة ( Ar ) .

Program circle ( input , output ) ;
Const
Pi = 3.14 ;
Var
R : integer ;
Ar : real ;
Begin
Readln ( r ) ;
Ar := Pi * sqr ( r ) ;
Writeln ( Ar ) ;
End .

(5) –
برنامج يحسب مساحة المثلث الذي أضلاعه (A ، B ، C ) وفق المعادلة (Ar = ***8730;s(s-A)(s-B)(s-C) )
و ( s =(A + B + C)/2 ) .

Program triangle ( input ; output );
Var
A , B , C , s , Ar : real ;
Begin
Readln ( A , B , C ) ;
S := ( A + B + C ) / 2 ;
Ar := sqrt ( s * ( s – A ) * ( s – B ) * ( s – C ) ) ;
Writeln( Ar ) ;
End .

(6) برنامج يستقبل عدد من الأيام و يحسب منها عدد السنوات و الشهور و الأيام ، بافتراض أن عدد أيام الشهر 30 يوم و السنة 360 يوم ؟

Program day ( input , output ) ;
Var
Days , year , month , rem day : integer ;
Begin
Readln ( days );
Year := days Div 360 ;
rem := days Mod 360 ;
month := rem Div 30 ;
day := rem Mod 30 ;
write ( year ,’ ‘, month ,’ ‘ , day ) ;
End .

عبارات التحكم
( 1 ) عبارة ( IF )

تستخدم عندما يكون تنفيذ الجمل مرتبط بشرط أو تعبير منطقي ، مثلا عندما يقرأ برنامج رقما و يحدد إن كان زوجي أم لا .
الصيغة العامة :-

IF < متغير > ( تعبير منطقي ) Then
جملة أو جمل ;
Else
جملة أو جمل ;
End .

تنفذ الجملة بعد IF في حالة التعبير المنطقي صواب و إلا تنفذ الجملة بعد Else .
ملاحظة :-
( الجملة التي تسبق Else لا تنتهي بفاصلة منقوطة ( ; ) .
أمثلة تطبيقية علي البرمجة بعبارة ( IF ) :-
1) أكتب برنامج يستقبل رقم و يخرج رسالة توضح أنه فردي ( odd ) أم زوجي ( even ) ؟

Program odd ( I , O ) ;
Var
X : integer ;
Begin
Readln ( X ) ;
IF X Mod 2 <> 0 Then
Write ( ‘ odd ‘ )
Else
Write ( ‘ even ‘ ) ;
End .

2) البرنامج السابق لكن يوضح إن كان الرقم موجب ( positive ) أم سالب ( negative ) .

Program positive ( I , O ) ;
Var
X : integer ;
Begin
Readln ( X ) ;
IF X > 0 Then
Write ( ‘ positive ‘ )
Else
Write ( ‘ negative ‘ ) ;
End .

3) برنامج يستقبل رقم ثم يطبعه إذا كان يقبل القسمة علي 2 و 7 ؟

Var
S : integer ;
Begin
Readln ( S ) ;
IF ( S Mod 2 = 0 ) And ( S Mod 7 = 0 ) Then
Write ( ‘ done ‘ ) ;
End .

4) برنامج يقرأ رقمين و يطبع ( they do ) إذا كانا يقبلان القسمة علي 6 ؟

Var
S , X : integer ;
Begin
Readln ( S , X ) ;
If ( S Mod 6 = 0 ) And ( X Mod 6 = 0 ) Then
Write ( ‘ they do ‘ ) ;
End.

5) برنامج يقرأ حرف و يطبع vowel letter إن كان الحرف من الحروف الإنجليزية المتحركة ( علة )

Var
C : char ;
Begin
Readln ( C ) ;
C := Upcase ( c ) ;
IF ( c = ‘A’ ) or ( c = ‘E’) or ( c = ‘I’ ) or ( c = ‘O’ ) or ( c = ‘U’) Then
Write ( ‘ vowel letter ‘ )
Else
Write ( ‘ not vowel letter ‘ ) ;
End .

ملاحظـــة : – ( استخدام المؤثر ينتمي ( IN ) :-
6) برنامج يقرأ رقم ، إذا كان يقع بين صفر و 50 يطبع ( right ) ؟

Var
Z : integer ;
Begin
Readln ( z ) ;
IF z IN [ 1 .. 49 ] Then
Write ( ‘ right ‘ )
Else
Write ( ‘ not right ‘ ) ;
End .

7) حل آخر للسؤال رقم (5) باستخدام IN ؟

Var
C : char ;
Begin
Readln ( C ) ;
C := Upcase ( c ) ;
IF C IN [ ‘A ‘ , ‘E ‘ , ‘ I ‘ , ‘ O ‘ , ‘ U ‘ ] Then
Write ( ‘ vowel letter ‘ )
Else
Write ( ‘ not vowel letter ‘ ) ;
End .
الحلقات التكرارية
(1) حلقة ( For ….. Do )

تستخدم عندما تكون عدد مرات التكرار معلوم مسبقا .
الصيغة العامة :-

For < متغير > := < قيمة ابتدائية > To ( Downto ) < قيمة نهائية > Do
جملة أو جمل ;

ملاحظات :-
· عدد مرات التكرار = الفرق القيمة الابتدائية و النهائية + 1 .
· تستخدم To عندما تكون القيمة الابتدائية أصغر من النهائية ، و العكس Downto عند النهائية أصغر من الابتدائية .
· إذا كانت جملة For مركبة أكثر من جملة ) تحصر بين كلمتي Begin و End; .
تطبيق علي هذه الملاحظات :-

** For s := 5 To 11 Do
Write ( s ) ;
** For s := 11 Downto 5 Do
write ( s ) ;
** For s := 7 To 14 Do
Begin
write ( s + s ) ;
write ( s * s ) ;
End ;
End .

تطبيق علي حلقة For … Do :-
1) برنامج يطبع جملة ربي ( My God ) مائة مرة ؟

Var
I : integer ;
Begin
For I := 1 To 100 Do
Write ( ‘ My God ‘ ) ;
End .

2) برنامج بطبع الأرقام من 19 إلي 39 ؟

Var
s : integer ;
Begin
For s := 19 To 39 Do
Writeln ( s ) ;
End .

3) برنامج يطبع الحروف من a إلي I ؟

Var
s : char ;
Begin
For s := ‘a’ To ‘i’ Do
Writeln ( s ) ;
End .

4) برنامج بطبع مربعات الأرقام من 19 إلي 39 ؟

Var
s : integer ;
Begin
For s := 19 To 39 Do
Write ( sqr( s )) ;
End .

5) برنامج يحسب و يطبع حاصل جمع الأرقام ن 13 إلي 99 ؟

Var
S , sum : integer ;
Begin
Sum := 0 ;
For s := 13 To 99 Do
Sum := sum + s ;
Write ( sum ) ;
End .

6) برنامج يحسب و يطبع حاصل ضرب الأرقام من 5 إلي 12 ؟

Var
Mut : longint ;
S : integer ;
Begin
Mut := 1 ;
For s := 5 To 12 Do
Mut := Mut * s ;
Write ( Mut ) ;
End .

7) برنامج يحسب مجموع مربعات الأرقام من 8 إلي 18 و متوسطها ؟

Var
I , sumsqr : integer ;
Avg : real ;
Begin
Sumsqr := 0 ;
For I := 8 To 18 Do
Sumsqr := sumsqr + sqr ( I ) ;
Writeln ( sumsqr ) ;
Avg := sumsqr / 11;
Write ( avg ) ;
End.

8) برنامج يحسب و يطبع مضروب أي رقم ( X ) ؟

Var
Fact : longint ;
X , I : integer ;
Begin
Fact := 1 ;
Readln ( X ) ;
For I := X Downto 1 Do
Fact := fact * I ;
Write ( fact ) ;
End .

9) برنامج يحسب و يطبع مجموع مربعات و متوسط أي أرقام في مدي محدد يبدأ بالرقم A و ينتهي بالرقم B) ؟

Var
A , B , sum : integer ;
Avg : real ;
Begin
Sum := 0 ;
Readln ( A , B ) ;
For I := A To B Do
Sum := sum + sqr ( I ) ;
Avg := sum / ( B – A + 1 ) ;
Writeln ( sum ;
Write ( Avg ) ;
End .
(2) حلقة While ….. Do

** تستخدم عندما تكون مرات التكرار غير معلومة .
** بالضرورة أن تبدأ بقيمة ابتدائية .
** المخطط أدناه يوضح خطوات عمل حلقة while … Do .

البداية
بقيمة

قارن

نفذ

غير القيمة

النهاية

[IMG]file:///C:/DOCUME~1/0000/LOCALS~1/Temp/msohtmlclip1/01/clip_image005.gif[/IMG][IMG]file:///C:/DOCUME~1/0000/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.gif[/IMG]

أمثلة تطبيقية :-
1) مستخدما حلقة while أكتب برنامج لطباعة الأرقام من 1 – 10 ؟

Var
X : integer ;
Begin
X := 0 ;
While X < 10 Do
Begin
X := X + 1 ;
Write ( X ) ;
End ;
End .

حل آخر :

Var
X : integer ;
Begin
X := 1 ;
While X <= 10 Do
Begin
Write ( X ) ;
X := X + 1 ;
End ;
End .

2) برنامج يحسب حاصل جمع الأرقام من -30 إلي 95 و يطبعه ؟

Var
X , sum : integer ;
Begin
Sum := 0 ;
X := -30 ;
While X <= 95 Do
Begin
Sum := sum + X ;
X := X + 1 ;
End ;
Write ( sum ) ;
End .

3) يطبع الأرقام 10 ، 20 ، 30 ، 40 و يتوقف عند 100 ؟

Var
X : integer ;
Begin
X := 0 ;
Begin
While X < 100 Do
Begin
X := X + 10 ;
Writeln ( X ) ;
End ;
End .

4) طباعة الأرقام التي تقبل القسمة علي 3 في المدى من 1 إلي 50 ؟

Var
X , C : integer ;
Begin
X := 0 ;
C := 0 ;
While X <= 50 Do
Begin
X := X + 1 ;
If X Mod 3 = 0 Then
C := C + 1 ;
End :
End .

(3) حلقة Repeat …. Until

هي كحلقة while ، لكن ليس بالضرورة وجود قيمة ابتدائية ، لأنها تنفذ قبل المقارنة .
مخطط يوضح عمل حلقة Repeat .. until :—

البداية

قارن

نفذ

غير القيمة

النهاية

[IMG]file:///C:/DOCUME~1/0000/LOCALS~1/Temp/msohtmlclip1/01/clip_image005.gif[/IMG][IMG]file:///C:/DOCUME~1/0000/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.gif[/IMG]

الصيغة العامة :-

Repeat < جملة > Until
تعبير منطقي

أمثلة تطبيقية :-
1) برنامج يقرأ مجموعة من الأرقام ، يطبع مجموعها و يتوقف بإدخال رقم سالب ؟

Var
X , Sum : integer ;
Begin
Sum := 0 ;
Repeat
Sum := sum + X ;
Readln ( X ) ;
Until X < 0 ;
Write ( sum ) ;
End .

ملاحظة :- ( الجمل المركبة في Repeat لا تحصر بين Begin و End ; .
مثال ( 2 ) طباعة الأرقام من 1 – 10 ؟

Var
X : integer ;
Begin
X := 0 ;
Repeat
X := X + 1 ;
Writeln ( x ) ;
Until
X > 9 ;
End.

3) طباعة حاصل جمع الأرقام من -30 إلي 95 ؟

Var
X , sum : integer ;
Begin
Sum := 0 ;
X := -30 ;
Repeat
Sum := Sum + X ;
X := X + 1 ;
Until
X > 95 ;
Write ( sum ) ;
End .

4) يطبع الأرقام 10 ، 20 ، 30 و يتوقف عند 100 ؟

Var
X : integer ;
Begin
X := 10 ;
Repeat
Write ( X ) ;
X := X + 10 ;
Until
X > 100 ;
End .

5) طباعة الأرقام من 1 إلي 50 و التي تقبل القسمة علي 3 ؟

Var
X : integer ;
Begin
X := 0 ;
Repeat
X := X + 1 ;
If X Mod 3 = 0 Then
Writeln ( X )
Until
X >= 50 ;
End .




رد: برنامج باسكال

اريد برنامج تعطيه تاريخ ميلاد يحسب عدد السنوات و الشهور و الايام في اليوم الدي تعطيه التاريخ




اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.