الإعــلام الآلي والرياضيــات يشتمل على جميع مبادئ الإعلام الآلي والرياضيــات

قديم 28-01-2009, 02:01 PM
  #1
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
Lightbulb دروس في الباسكال


اقدم لكم اليوم سلسلة من الدروس في لغة الباسكال
1-تاريخ اللغة

تعود قصة الرياضي والفيلسوف الفرنسي بليز باسكال إلى منتصف القرن السادس عشر ميلادي عام 1642م حيث أن هذا الشاب والذي كان يبلغ الثامنة عشر ربيعا والذي كانت بوادر العبقرية والاختراع تبدو جليه على أعماله وحيث أنه كان شديد الإبداع في علم الرياضيات مولعا بالاكتشافات العلمية وتطبيق النظريات الرياضية ففي نفس السنه اخترع أول حاسب نصف آلي وسمي باسمه ( حاسب باسكال 1642 ) ، وكان ذلك لسبب أساسي وهو مساعده أبيه الذي كان يعمل في مؤسسة الضرائب محصلا للفواتير والذي كان يقضي معظم لياليه مستخدما العد اليدوي في إحصاء وتدقيق حسابات المبالغ التي حصلها وقد كان يشكل هذا النوع البطيء من الحساب إرباكا لعائلته ، وبالتالي يأخذ منه الوقت الكبير .

يتكون حاسب باسكال الميكانيكي من مجموعه متتالية من الإطارات ( الأقراص ) كل واحد منها مرقمة من الصفر إلى التسعة ، هذه الإطارات مرتبه بحيث تقرأ الأرقام المسجلة عليها من اليسار إلى اليمين ويتم إدارتها يدويا عن طريق الذراع ، فعندما يتم أحد هذه الأقراص دورته من الصفر إلى التسع فإن نتوء الرقم 9 يدفع الطارة المجاورة له رقما واحدا وعند ذلك أي دورة الطارة الأولى تسعة مواقع متتالية ( دوره كاملة ) فإنها تدفع الطارة التالية لها من اليسار موقعا واحدا وهكذا حتى يتم تسجيل العدد .

وبهذه الطريقة استطاع والد باسكال إجراء عمليات الجمع والطرح أما عمليات الضرب والقسمة فتتم بتكرار عمليات الجمع والطرح مرات متعددة .



الدرس الأول : أساسيات في الباسكال



قبل أن نتمكن من كتابة برامج بلغة الباسكال أو أي لغة أخرى لا بد لنا أولا من فهم منطقي لجميع الخطوات الواجب إتباعها لحل المسألة بواسطة الحاسب


هذه الخطوات هي ما تعرف باللوغاريتم The Algorithm بعد ذلك يمكن تحويل هذه الخطوات إلى إيعازات باسكال والتي ستتحول بدورها إلى لغة الآلة المستعملة بواسطة برنامج المصنف Compiler


وبرنامج الباسكال هو مجموعه من الإيعازات بعضها منفذ Executable وبعضها غير منفذ Non-Executable


وتتألف هذه الإيعازات من كلمات دليليه أو من كلمات تعريفية يجب على المبرمج تعريفها في بداية كل برنامج

ولتوضيح ذلك نرى مخطط لبرنامج باسكال


Program The Total (input, output);


{This program find sum of two integer number}


Var

A, B, Total: integer;


Begin


Write (‘Enter two integer numbers to be add: ‘);


Readln (a, b);


Total: = a+b;


Writeln (‘The sum of’, A,’and’, B,’is’, Total);


End.


حيث نلاحظ


- السطر الأول هو للتعريف باسم البرنامج ووسيله الإدخال والإخراج

- أن الجزء الملون بالأزرق هو عباره عن كلمات محجوزه سنتعرف عليها بالتفصيل بالدروس القادمه

- الجزء الملون بالأخضر هو عباره عن إيعاز غير منفذ وهي ملاحظات خاصه بقاريء البرنامج

- الكلمه الدليليه Var للتصريح عن المتغيرات وسيتم دراستها بالتفصيل

- الجزء الممتد من Begin إلى End هو عباره عن جسم البرنامج والأوامر بينها

- السطر الأخير يحتوي على End متبوعه بنقطه وذلك للدلاله على نهايه البرنامج وسنلاحظ أن

1- بعد كل سطر هنالك نقطه فاصلة (;) للدلالة على سطر آخر يلية

2- بعد كلمه End هنالك نقطة (.) للدلاله على أنه لا يوجد سطر بعد ذلك



التعديل الأخير تم بواسطة achraf.mouni ; 28-01-2009 الساعة 02:21 PM
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:03 PM
  #2
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس الثاني - الالوان , الاحداثيات , النوافذ و الصوت



الالوان :

لتغيير لون النص الذي يُطبع على الشاشه يمكننا استخدام الامر TextColor .

مثال :

program Colors;

uses
crt;

begin
TextColor(Red);
Writeln('Hello');
TextColor(White);
Writeln('world');
end.

الامر TextBackground يقوم بتغيير لون خلفية النص . اذا كنت تريد تغيير لون خلفية الشاشه إلى لون معيّن يجب ان تستخدم الامر ClrScr .


program Colors;

uses
crt;

begin
TextBackground(Red);
Writeln('Hello');
TextColor(White);
ClrScr;
end.

إحداثيات الشاشه :

يمكنك ان تضع السهم في اي مكان تريده في الشاشه بإستخدام الامر GoToXY . في الدوس , الشاشه بعرض 80 حرف و ارتفاعها 25 حرف . يتغير الطول و العرض في المنصات الاخرى , قد تتذكر الرسوم البيانيه في الرياضيات . احداثيات الشاشه كذلك تعمل بنفس الطريقه . في المثال الذي سوف نعرضه سوف نعرف كيف نحرّك المؤشر إلى العمود العاشر في الصف الخامس
program Coordinates;

uses
crt;

begin
GoToXY(10,5);
Writeln('Hello');
end.
النوافذ :

النوافذ ستسمح لك بتعريفها على الشاشه لكي تحتل المنطقه التي تطلبها . اذا قمت بإنشاء النافذه و قمت بتنظيف الشاشه سوف يتم تنظيف ما على الشاشه فقط . الامر Window يأخذ 4 بارامترات و هم إحداثيات (اعلى , يسار , يمين , اسفل) .
program Coordinates;

uses
crt;

begin
Window(1,1,10,5);
TextBackground(Blue);
ClrScr(Blue);
end.

الصوت :

الامر Sound يُصدر صوت بالتكرار الذي تطلبه منه الذي تطلبه منه . الامر Delay يأخذ الوقت بالثواني التي تخبره بها . يستخدم هذا الامر بين الامرين Sound و NoSound ليُصدر الصوت الاخير من مقدار معين من الوقت

program Sounds;

uses
crt;

begin
Sound(1000);
Delay(1000);
NoSound;
end.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:05 PM
  #3
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس الثالث - المتغيرات و الثوابت




ما هي المتغيرات؟

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

يمكننا استخدام انواع مختلفه من المعلومات في المتغيرات , مثلاً الارقام و السلال و غيره .

استخدام المتغيرات :

يجب دائماً ان نعلن عن المتغيرات قبل استخدامها . نستخدم الكلمه الاساسيه var لعمل ذلك . دائماً يجب اختيار نوع البيانات للمتغير . وهذه هي انواع المتغيرات المختلفه .

Byte :

من 0 إلى 255

Word :
من 0 إلى 65535

ShortInt :
من -128 إلى 127

Integer :
من -32768 إلى 32767

LongInt :
من -4228250000 إلى 4228249000

Real :
قيم النّقطة المتغيّرة

Char :
حرفاً واحداً

String :
فوق 255 حرف

Boolean :
true او false

في هذا المثال سوف نتعرف على طريقة الاعلان عن متغير من نوع intger اسمه i :


program Variables;

var
i: Integer;

begin
end.

لإعطاء قيمه للمتغير يتم استخدام عامل الاسناد :=


program Variables;

var
i: Integer;

begin
i := 5;
end.

يمكنك انشاء متغيرين او اكثر من نفس النوع إذا وضعت الفاصله بعد المتغير الاول و قمت بكتابة اسم المتغير الثاني بعدها . كذلك يمكنك انشاء متغيرات مختلفه بدون الحاجه إلى استخدام الجمله الاساسيه var اكثر من مره :

program Variables;

var
i, j: Integer;
s: String;

begin
end.
اذا كنت تريد ادراج سلسله في متغير يجب استخدام علامة الاقتباس الفرديه ' , النوع Boolean فقط يمكن اسناد قيمتين له و هم True و False :


program Variables;

var
i: Integer;
s: String;
b: Boolean;

begin
i := -3;
s := 'Hello';
b := True;
end.

الحسابات مع المتغيرات :

يمكن استخدام المتغيرات في العمليات الحسابيه . على سبيل المثال يمكن أن تسند القيمة بمتغيّر ثمّ تضيف الرقم 1 له . العمليات الحسابيه التي يمكن استخدامها :

+ : اضافه (زائد)
- : طرح
* : ضرب
/ : قسمه
div : قسمة عدد صحيح
mod : باقي قسمة العدد الصحيح

المثال التالي يقوم ببعض العمليات الحسابيه :
program Variables;

var
Num1, Num2, Ans: Integer;

begin
Ans := 1 + 1;
Num1 := 5;
Ans := Num1 + 3;
Num2 := 2;
Ans := Num1 - Num2;
Ans := Ans * Num1;
end.
يستخدم النوع Strings في تخزين السلاسل مثل الحروف والارقام المختلفه و غيره , و يمكنك استخدام العمليات الحسابيه مع هذا النوع من المتغيرات حيث لا يتم جمع الرقمين المخزنين على صيغة String بمعنى جمع , مثلاً اذا قمت بإضافة السلسله التي قيمتها 1 إلى السلسله التي قيمتها 1 سوف يكون الناتج 11 و ليس 2 .
program Variables;

var
s: String;

begin
s := '1' + '1';
end.
يمكنك قراءة محتوى المتغيرات بإستخدام Readln و ReadKey . الامر الثاني و هو ReadKey من الوحده crt و هي تقرأ حرف واحد فقط . سوف ترى ان طريقة عمل ReadKey مختلفه عن Readln .
program Variables;

uses
crt;

var
i: Integer;
s: String;
c: Char;

begin
Readln(i);
Readln(s);
c := ReadKey;
end.
طباعة المتغيرات على الشاشه طريقه سهله . اذا كنت تريد طباعة المتغيرات على الشاشه يمكنك استخدام الامر Writeln :
program Variables;

var
i: Integer;
s: String;
begin
i := 24;
s := 'Hello';
Writeln(i);
Writeln(s,' world');
end.
الثوابت :

الثوابت لا تختلف عن المتغيرات إلا انه قيمتها لا يمكن ان تتغير أي قيمه ثابته . يمكن اسناد القيمه إلى الثابت عند الاعلان عن الثابت . const هي الكلمه الاساسيه للاعلان عن الثوابت .
const
pi: Real = 3.14;

var
c, d: Real;

begin
d := 5;
c := pi * d;
end.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:06 PM
  #4
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس الرابع : الثوابت في البرنامج



لقد تعرفنا على طريقة تعريف متغيرات بالبرنامج لحفظ البيانات فيها حسب نوعها وذلك داخل التعريف Var


ولكن ماذا لو أردنا تعريف بيانات تكون قيمتها ثابته طوال عمل البرنامج فإننا نستخدم لتعريفها


نوع جديد داخل الأمر Const وتكون على الشكل التالي


Const

A = 30 ;


B = 9.6 ;


C = “Name”;


- طوال عمل البرنامج سيسند للثابت A القيمة 30 ولا يمكن تغيير هذه القيمة خلال البرنامج أبدا


- نلاحظ أن هناك علامة مساواة = بين إسم الثابت وقيمته بينما في تعريف Var المتغيرات هناك علامة : بين إسم المتغير ونوعه


- الثابت المعرف يعامل في البرنامج على أنه كلمة محجوزة Reserved Word

Program Circle(input,output);


Const


Pi=3.14;


Var


Radius : integer ;


Circum , area : real ;


Begin


Writeln ( ‘Enter Radius’);


Read ( radius);


Circum := 2*pi* radius ;


Area := pi * radius * radius ;


Writeln (‘The value of circum is’,circum);


Writeln (‘The value of area is’,area);


End.


في البرنامج السابق قمنا بتعريف ثابت في البرنامج بالإسم pi وهو يتخذ دائما القيمة 3.14


إستخدام الثوابت في البرنامج يسهل عمل البرنامج ويسهل تعديل القيم بسهولة بخاصة في البرامج الكبيرة


لو أردنا تنفيذ البرنامج السابق ولكن بدون الإعتماد على الثوابت فسيكون البرنامج على الشكل


Program Circle(input,output);


Var


Pi : real ;


Radius : integer ;


Circum , area : real ;


Begin


Write (‘Enter Value of pi :’);


Readln (pi);


Writeln ( ‘Enter Radius’);


Read ( radius);


Circum := 2*pi* radius ;


Area := pi * radius * radius ;


Writeln (‘The value of circum is’,circum);


Writeln (‘The value of area is’,area);


End;
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:08 PM
  #5
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

تعلم برمجة Pascal الدرس الخامس - اتخاذ القرار




if then else :

الجمله الشرطيه if تسمح لك بإتخاذ القرارات في برنامجك . المثال التالي يسأل المستخدم ان يدخل رقم و يخبر المستخدم اذا كان الرقم اكبر من 5 .


program Decisions;

var
i: Integer;

begin
Writeln('Enter a number');
Readln(i);
if i > 5 then
Writeln('Greater than 5');
end.

و القرارات التي يمكنك اتخاذها مع الجمله الشرطيه if :

> : اكبر من < : اصغر من
>= : اكبر من او يساوي <= : اصغر من او يساوي
= : يساوي <> : لا يساوي

المثال السابق كان يخبرنا فقط اذا كان الرقم اكبر من 5 , اذا كنا نريد ان يخبرنا انه ليس اكبر من 5 يجب ان نستخدم else .

program Decisions;

var
i: Integer;

begin
Writeln('Enter a number');
Readln(i);
if i > 5 then
Writeln('Greater than 5')
else
Writeln('Not greater than 5');
end.

إذا كانت الحاله صحيحه (True) اختر الجزء الذي بعد then و اذا لم تكن صحيحه (False) اختر الجزء الذي بعد else . ذلك لان الحاله i > 5 تعتبر من النوع Boolean


program Decisions;

var
i: Integer;
b: Boolean;

begin
Writeln('Enter a number');
Readln(i);
b := i > 5;
end.
اذا كنت تريد ان تستخدم اكثر من حاله واحده يجب عليك ربط حاله بالاخرى . لربط الحالات يمكنك استخدام AND او OR . اذا استخدمت AND يجب ان تكون الحالتين صحيحتين و اذا استخدمت OR يجب ان تكون حاله واحده او الحالتين صحيحتين .

program Decisions;

var
i: Integer;

begin
Writeln('Enter a number');
Readln(i);
if (i > 1) and (i < 100) then
Writeln('The number is between 1 and 100');
end.

اذا كنت تريد كتابة امرين او اكثر بعد الجمله الشرطيه يجب استخدام begin و end; .

program Decisions;

var
i: Integer;

begin
Writeln('Enter a number');
Readln(i);
if i > 0 then
begin
Writeln('You entered ',i);
Writeln('It is a positive number');
end;
end.

كذلك يمكنك استخدام if داخل if

program Decisions;

var
i: Integer;

begin
Writeln('Enter a number');
Readln(i);
if i > 0 then
Writeln('Positive')
else
if i < 0 then
Writeln('Negative')
else
Writeln('Zero');
end.

Case :


الامر Case يشبه إلى حد ما if لكنه يقبل العديد من الحالات مره واحده

program Decisions;

uses
crt;

var
Choice: Char;

begin
Writeln('Which on of these do you like?');
Writeln('a - Apple:');
Writeln('b - Banana:');
Writeln('c - Carrot:');
Choice := ReadKey;
case Choice of
'a': Writeln('You like apples');
'b': Writeln('You like bananas');
'c': Writeln('You like carrots');
else;
Writeln('You made an invalid choice');
end;
end.

achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:09 PM
  #6
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس السادس - التكرار




التكرار يستخدم متى اردت اعادة تطبيق الشيفره اكثر من مره .

مثال : اذا اردنا ان نطبع الجمله Hello على الشاشه 10 مرات سوف نحتاج إلى كتابة الامر Writeln عشرة مرات . يمكنك بإستخدام التكرار ان تكتب الامر مره واحد و سوف يتم طباعة الجمله 10 مرات .

هناك 3 انواع من التكرار و هم for , while , repeat .

التكرار For :

هكذا يتم استخدام التكرار for

program Loops;

var
i: Integer;

begin
for i := 1 to 10 do
Writeln('Hello');
end.
اذا كنت تريد استخدام اكثر من امر بعد الكلمه for فيجب ان تضع الاوامر بوسط الامر begin و end


program Loops;

var
i: Integer;

begin
for i := 1 to 10 do
begin
Writeln('Hello');
Writeln('This is loop ',i);
end;
end.

التكرار While :

التكرار While يكرر الاوامر ما دام الشرط صحيح . طريقة الاستخدام


program Loops;

var
i: Integer;

begin
for i := 1 to 10 do
begin
Writeln('Hello');
Writeln('This is loop ',i);
end;
end.

التكرار Repeat until :

التكرار Repeat until يشبه التكرار while و لكنه يختبر الحاله في اسفل التكرار .

program Loops;

var
i: Integer;

begin
i := 0;
repeat
i := i + 1;
Writeln('Hello');
until i = 10;
end.

اذا كنت تريد استخدام اكثر من حاله في التكرار while او rapeat اضف الاقواس بين الحاله


program Loops;

var
i: Integer;
s: String;

begin
i := 0;
repeat
i := i + 1;
Write('Enter a number: ');
Readln(s);
until (i = 10) or (s = 0);
end.

Break و Continue :

الامر Break يخرج من من التكرار في اي وقت . في المثال التالي البرنامج لا يطبع اي شئ لانه يخرج من التكرار قبل تنفيذ العمليه.

program Loops;

var
i: Integer;

begin
i := 0;
repeat
i := i + 1;
Break;
Writeln(i);
until i = 10;
end.

الامر Continue يقفز إلى اعلى التكرار


program Loops;

var
i: Integer;

begin
i := 0;
repeat
i := i + 1;
Continue;
Writeln(i);
until i = 10;
end.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:10 PM
  #7
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس السابع : قاعدة الأولويات



يجب علينا قبل الدخول في البرمجة فهم الطريقة الرياضية للتعامل مع البيانات وطريقة تعامل المصنف مع الدوال الرياضية والأقواس


وبرنامج الباسكال يتعامل مع العمليات الرياضية حسب القاعدة التالية

والتي تعتمد على الأسبقية بحيث


أولا : تنفيذ الدالة Not


ثانيا : تنفيذ الدوال التالية

AND

MOD

DIV

/

*

بحيث أن الدالتين Div و Mod دوال رياضية سيتم التعرف عليها لاحقا


ثالثا : تنفيذ العمليات


OR

-

+


رابعا : تنفيذ المعاملات المنطقية

=

<>

<=

>=

<

>


عندما يكون هناك دالتين من نفس المستوى ننفذ الدالة بدءا من اليسار إلى اليمين

لتتضح الرؤيا حول إستخدام قاعدة الأولويات نرى الأمثلة التالية


1-Write a PASCAL program to find the roots of a quadratic equation (assume that b2 – 4ac >= 0)


يريد في هذا المثال إيجاد جذور لمتتابعة ثنائية


الحل


Program Root(input,output);


Var


A,b,c :integer;


X1,x2 : real ;


الناتج عرفناه على أنه عدد حقيقي لإنه سيكون ناتج من عمليات منها عمليات قسمة


وفي حالة وجود عمليات قسمة فناتجها دائما عدد حقيقي وليس صحيح


Begin


Writeln (‘Enter the Numbers A , B ,C’);


Readln (a,b,c);


X1:= (-b+sqrt(b*b –4*a*c))/(2*a);


X2:= (-b-sqrt(b*b –4*a*c))/(2*a);


Write (‘The Nunmber X1 =’,x1 ,’And Number X2 =’,x2);

End.


2- Find (7 Div 2/3)


في هذا المثال نلاحظ أن الدالتين Div و / يأتيان في مرتبة واحده في أولوية التنفيذ


ولكن لإن Div أتت قبل من جهة اليسار فنقوم بتنفيذها أولا لذلك


7 div 2/3 =


3 / 3 =


1.0


( لاحظ أن العدد جوابه 1.0 وليس 1 لإنه ناتج من قسمة فلذلك يعد عدد حقيقي Real ولا يعتبر Integer)
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:11 PM
  #8
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس الثامن - Types, Records و Sets




الانواع :

من الممكن ان تقوم بإنشاء نوع متغيرات خاص بك بإستخدام الامر type .
النّوع الاول الذي يمكن ان تعمله هو نوع records (سجلات) . السجلات هي عباره عن متغيّران او اكثر من انواع مختله في واحد . على سبيل المثال ان يكون المستخدم طالب و لديه رقم و اسم الطالب . كيف سوف ننشئ نوعاً من البيانات :

program Types;

Type
Student = Record
Number:
Name;
end;

begin
end.


بعد ان تنشئ النوع يجّب ان تعلن عن متغير من النوع الذي قمنا بإنشاءه لكي يمكننا استخدامه :

program Types;

Type
StudentRecord = Record
Number:
Name;
end;

var
Student: StudentRecord;

begin
end.


للوصول إلى العدد و الاسم من السجل يجب ان تتبع الآتي :

program Types;

Type
StudentRecord = Record
Number:
Name;
end;

var
Student: StudentRecord;

begin
Student.Number := 12345;
Student.Name := 'John Smith';
end.

النوع الآخر هو set , النوع set ليس له فائده كبيره , و اي شئ يمكنك عمله مع set يمكن ان يعمل بسهوله في طريقة اخرى . على سبيل المثال لدينا نوع set يدعى Animal و المعلومات المخزنه dog , cat و rabbit :

program Types;

Type
Animal = set of (dog, cat, rabbit);

var
MyPet: Animal;

begin
MyPet := dog;
end.


لا يمكنك استخدام Readln او Writeln في sets . يمكنك ان تنشئ مدى من المتغيرات من 'a' إلى 'z' . في هذا النوع يمكنك ان تختبر إذا كان المتغير من ضمن المدى :

program Types;

uses
crt;

Type
Alpha = 'a'..'z';

var
Letter: set of Alpha;
c: Char;

begin
c := ReadKey;
if c in [Letter] then
Writeln('You entered a letter');
end.

achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:11 PM
  #9
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس التاسع - الإجراءات و الدوال



الإجراءات :

الإجراءات يعتبر برنامج فرعي . يمكن ان يستدعى من الجزء الرئيسي للبرنامج . يتم الإعلان عن الاجراء خارج الجسم الرئيسي للبرنامج بإستخدام الكلمه procedure . يجب ان تعطي الاجراء اسم مميز . الاجراءات لها بدايه و نهايه خاصه بها . في هذا المثال سوف نتعرف على طريقة الاعلان و الاستدعاء لاجراء اسمه Hello يطبع الكلمه "Hello" على الشاشه .

program Procedures;

procedure Hello;
begin
Writeln('Hello');
end;

begin
end.

لإستخدام الاجراء يجب ان نقوم بإستدعاءه من خلال اسمه المميز في جسم البرنامج (مكان كتابة شيفره البرنامج)


program Procedures;

procedure Hello;
begin
Writeln('Hello');
end;

begin
Hello;
end.

الاجراءات يجب ان تكون دائماً فوق المكان الذي يتم استدعاءه اي يجب ان تقوم بالاعلان عن الاجراء ثم استدعاءه ولا يجوز استدعاء الاجراء قبل الاعلان عنه . في المثال التالي سوف يتم استدعاء اجراء داخل اجراء آخر .

program Procedures;

procedure Hello;
begin
Writeln('Hello');
end;

procedure HelloCall;
begin
Hello;
end;

begin
HelloCall;
end.


يمكن ان تكون للاجراءات بارامترات مثل اي امر تستخدمه . يجب ان تعطي اسم البارامتر و نوعه و سوف يتم استخدامه مثل اي متغير . اذا كنت تريد ان تستخدم اكثر من بارامتر في اجراء واحد يجب ان تكون الفاصله المنقوطه ; هي التي تفصل بينهم


program Procedures;

procedure Print(s: String; i: Integer);
begin
Writeln(s);
Writeln(i);
end;

begin
Print('Hello',3);
end.

المتغيرات العامّه و المحليه :

المتغيرات التي نستخدمها حاليّاً تعتبر متغيرات عامه , اي يمكننها استخدامها في اي وقت و في اي مكان في البرنامج . المتغيرات المحليه يمكن استخدامها فقط بداخل الاجراء و المتغيرات المحليه لا تأخذ مكانها من الذاكره إذا لم يبدأ الاجراء . يتم الاعلان عن المتغيرات المحليه تحت إعلان اسم الاجراء .


program Procedures;

procedure Print(s: String);
var
i: Integer;
begin
for i := 1 to 3 do
Writeln(s);
end;

begin
Print('Hello');
end.
الدوال :

الدوال تشبه الاجراءات بإستثناء انها تعيد قيمه . الكلمه function تستخدم بدل الكلمه procedure عند تعريف الدوال . لتعريف ما هو نوع البيانات للقيمه العائده يجب ان تستخدم النقطتين : و بعدها نوع البيانات و قبل النقطتين اسم الدالّه .


program Functions;

function Add(i, j:Integer): Integer;
begin
end;

begin
end.

عند اسناد قيمة الداله لمتغير سيجعل المتغير يساوي القيمه المعاده من الداله . اذا استخدمت الداله في شئ مع مثل Writeln سوف يتم طباعة قيمة العائد . لاسناد قيمة العائد انشئ اسم الداله تساوي القيمه التي تريدها ان تكون هي العائد.


program Functions;

var
Answer: Integer;

function Add(i, j:Integer): Integer;
begin
Add := i + j;
end;

begin
Answer := Add(1,2);
Writeln(Add(1,2));
end.

يمكنك الخروج من اجراء او داله في اي وقت بإستخدام الامر Exit .


program Procedures;

procedure GetName;
var
Name: String;
begin
Writeln('What is your name?');
Readln(Name);
if Name = '' then
Exit;
Writeln('Your name is ',Name);
end;

begin
GetName;
end.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:12 PM
  #10
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي

الدرس العاشر - الملفات النصيه



الملفات النصيه عباره عن ملفات تحتوي على اسطر من النصوص . متى اردت الوصول إلى ملف في باسكال يجب عليك ان تنشئ متغير ملف اولاً


program Files;

var
f: Text;

begin
end.


بعد الاعلان عن المتغير يجب ان تسند اسم الملف للمتغير :


program Files;

var
f: Text;

begin
Assign(f,'MyFile.txt');
end.


لإنشاء ملف جديد فارغ استخدم الامر Rewrite . هذا الامر ينشئ اي ملف غير موجود .


program Files;

var
f: Text;

begin
Assign(f,'MyFile.txt');
Rewrite(f);
end

الامرين Write و Writeln يعملون على الملفات على طريقه واحده على الشاشه بإستثناء البارامتر الاضافي الذي يخبرهم للكتابه في الملفات :


program Files;

var
f: Text;

begin
Assign(f,'MyFile.txt');
Rewrite(f);
Writeln(f,'A line of text');
end.


اذا كنت تريد قرائه محتويات ملف موجود سابقاً اولاً يجب ان تستخدم الامر Reset بدلاً من Rewrite . ثانيا استخدم الامر Readln لقرائه السطور من الملف . سوف تحتاج إلى التكرار while لقرائه جميع السطور .

program Files;

var
f: Text;
s: String;

begin
Assign(f,'MyFile.txt');
Reset(f);
while not eof(f) do
Readln(f,s);
end.

الامر Append يفتح الملف و يسمح لك ان تكتب المزيد من النصوص في آخر الملف .


program Files;

var
f: Text;
s: String;

begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
end.



يجب عليك اغلاق الملف بعد الانتهاء من استخدامه . اذا لم تغلقه قد تخسر بعض النصوص التي قمت بكتابتها فيه .


program Files;

var
f: Text;
s: String;

begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
Close(f);
end.


يمكنك تغير اسم ملف مع الامر Rename و حذف الملفات مع الامر Erase


var
f: Text;

begin
Assign(f,'MyFile.txt');
Rename(f,'YourFile.txt');
Erase(f);
Close(f);
end.

للبحث عن الملف اذا كان موجود ام لا , يجب اولاً ان تتبع ذلك بإستخدام {$I-} . بعد ذلك يجب ان تقوم بإستخدام الامر Reset على الملف بعدها استخدام الجمله الشرطيه if IOResult = 2 then و معناها اذا كان الملف غير موجود , و استخدام الشرط If IOResult = 0 و معناها اذا كان الملف موجود . و اذا كانت قيمة IOResult ليست 2 او 0 نستخدم الامر Halt لإنهاء البرنامج . الـ IOResult سوف يفقد قيمته اذا تم استخدامه لمره واحده لذلك يجب علينا ان نضعه في متغير قبل استخدامه.
يجب عليك كذلك استخدام {$I+} لإعادة تتبع الاخطاء .

program Files;

var
f: Text;
IOR: Integer;

begin
Assign(f,'MyFile.txt');
{$I-}
Reset(f);
{$I+}
IOR := IOResult;
if IOR = 2 then
Writeln('File not found');
else
if IOR <> 0 then
Halt;
Close(f);
end.
achraf.mouni غير متواجد حالياً  

الكلمات الدلالية (Tags)
الباسكال, دروس

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
tp في الباسكال emp21 الإستفسارات و الطّلبات 2 11-12-2009 05:44 PM
لغة الباسكال mimik لغة الدالفي delphi 21 04-06-2009 06:43 PM
دروس في الباسكال achraf.mouni لغة الدالفي delphi 24 19-03-2009 02:46 PM
دروس الباسكال rabia311 الإعــلام الآلي والرياضيــات 4 02-01-2009 10:43 AM
درس في الباسكال achraf.mouni الإعــلام الآلي والرياضيــات 3 16-12-2008 07:25 PM


الساعة الآن 04:42 PM.
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. , TranZ By Almuhajir