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

قديم 28-01-2009, 02:13 PM
  #11
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 DataFiles;

var
f: file of Byte;

begin
end.
يجب ان تستخدم Assign بنفس طريقة استخدامها في ملفات النصوص .

program DataFiles;

var
f: file of Byte;

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

يمكنك استخدام Rewrite لانشاء ملف جديد غير موجود . الاختلاف بين ملفات النصوص و ملفات المعلومات عند استخدام الامر Rewrite هو ان ملفات المعلومات يمكنك القرائه منها و الكتابة عليها .

program DataFiles;

var
f: file of Byte;

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

الامر Reset مثل الامر Rewrite بإستثناء انه لا ينشئ الملف اذا كان لم يكن موجوداً :

program DataFiles;

var
f: file of Byte;

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

عندما تريد الكتابه على الملف يجب ان تستخدم الامر Write , يجب اولاً ان تضع الذي تريد كتابته على الملف في متغير , قبل الكتابه او القرائه من ملفات المعلومات يجب ان تستخدم الامر Seek للبحث عن المكان الصحيح لبداية الكتابه . يجب ان تتذكر ملف المعلومات يبدأ من الوضع 0 و ليس 1 .

program DataFiles;

var
f: file of Byte;
b: Byte;

begin
Assign(f,'MyFile.txt');
Reset(f);
b := 1;
Seek(f,0);
Write(f,b);
end.

الامر Read يستخدم للقراءه من ملفات المعلومات .

program DataFiles;

var
f: file of Byte;
b: Byte;

begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
end.

يجب عليك ان تغلق ملفات المعلومات بعد الانتهاء منها مثل ملفات النصوص .

program DataFiles;

var
f: file of Byte;
b: Byte;

begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
Close(f);
end.

الامر FileSize يمكن استخدامه مع الامر FilePos لمعرفة متى وصلت إلى نهاية الملفات . الامر FileSize يعيد الرقم الفعلي لعدد التسجيلات و يبدأ من 1 و ليس 0 . الامر FilePos يخبرنا عن الوضع الذي هو عليه الملف الآن .

program DataFiles;

var
f: file of Byte;
b: Byte;

begin
Assign(f,'MyFile.txt');
Reset(f);
while FilePos(f) <> FileSize(f) do
begin
Read(f,b);
Writeln(b);
end;
Close(f);
end.

الامر Truncate يحذف أي شئ في الملف من الوضع الحالي .

program DataFiles;

var
f: file of Byte;

begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,3);
Truncate(f);
Close(f);
end.


احد اكثر الاشياء افادة في ملفات المعلومات هو امكانية استخدام التسجيلات و ملفات المعلومات مع بعضها البعض .

program DataFiles;

type
StudentRecord = Record
Number: Integer;
Name: String;

var
Student: StudentRecord;

begin
Assign(f,'MyFile.txt');
Reset(f);
Student.Number := 12345;
Student.Name := 'John Smith';
Write(f,Student);
Close(f);
end.

achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:16 PM
  #12
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 عضو محترف الابداع
افتراضي

الدرس الثاني عشر - انشاء وحداتك الخاصّه



لابد و انك تعلم ما هي الوحدات , تذكر ذلك عندما استخدمنا الوحده crt , قد تضطر يوماً إلى كتابة العديد من الاجراءات و الدوال . يمكنك انشاء وحدتك الخاصه ووضعك اجراءاتك و دوالك فيها .

لإنشاء وحدتك الخاصه يجب اولا ان تنشئ ملف باسكال جديد بإسم MyUnit.pas . السطر الاول يجب ان يبدأ بالكلمه unit و بعدها اسم وحدتك . اسم الوحده يجب ان تكون مثل اسم الملف .


unit MyUnit;

في السطر التالي نقوم بإضافة الكلمه interface . بعدها يجب علينا وضع اسم الاجراء الذي سوف نستخدمه من هذه الوحده . على سيبل المثال قمنا بإنشاء داله بإسم NewReadln تشبه Readln و لكنها تسمح لك بتحديد عدد الحروف التي يمكن ادخالها .


unit MyUnit;

interface

function NewReadln(Max: Integer): String;


السطر الذي يليه نضيف الكله implementation . هذا هو المكان الذي يمكنك ان تكتب في كامل شيفرتك و اجراءاتك و دوالك . سوف نحتاج إلى استخدام الوحده crt لإنشاء NewReadln . بعد الانتهاء من الوحده يجب ان نكتب الامر end للانتهاء .


unit MyUnit;

interface

function NewReadln(Max: Integer): String;

implementation

function NewReadln(Max: Integer): String;
var
s: String;
c: Char;
begin
s := ';
repeat
c := ReadKey;
if (c = #8){#8 = BACKSPACE} and (s >< ') then
begin
Write(#8++#8);
delete(s,length(s),1);
end;
if (c >< #8) and (c >< #13){#13 = ENTER} and (length(s) < Max) then
begin
Write(c);
s := s + c;
end;
until c = #13;
NewReadln := s;
end;

end.

بعدها قم بتخزين الوحده . الآن يمكننا استخدام وحدتنا MyUnit التي قمنا بإنشائها من خلال استدعاء الوحده و استخدام الداله التي فيها NewReadln .


program MyProgram;

uses
MyUnit;

var
s: String;

begin
s := NewReadln(10);
end.


achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:17 PM
  #13
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 عضو محترف الابداع
افتراضي

حلقات التكرار في باسكال



حلقات التكرار في لغة باسكال
قد يتطلب الأمر في بعض البرامج أن نكرر تنفيذ مجموعة من الأوامر لعدد من المرات، أو إلى إن يصبح تعبير ما صحيح (true) أو خطأ (false).
كأن نرغب في أن يطلب برنامجنا إدخال10 أعداد من المستخدم، أو نطلب منه إدخال القدر الذي يريده من الأعداد على أن يكون العدد الأخير يساوي 0 مثلا. هنا نحن بحاجة إلى استعمال الحلقات في برنامجنا.
يوجد في لغة باسكال 3 تراكيب لعمل حلقات التكرار، وسوف نبدأ في هذا الدرس بتعلم أولى هذه الحلقات وهي حلقة FOR.
حلقة التكرار FOR:

إذا أردنا تنفيذ مجموعة من الأوامر لعدد محدد من المرات، لنقل 6 مرات.
فأمامنا خياران، الأول أن نعيد كتابة هذه الأوامر 6 مرات في البرنامج وهو أمر مزعج خاصة إذا كان المطلوب أن نعيد التنفيذ لعدد أكبر من المرات، 600 مثلا
أما الخيار الثاني (وهو الأفضل) أن نستخدم حلقة التكرار FOR في البرنامج. وبهذا فإننا تكتب الأوامر التي ترغب في تكرارها 6 مرات داخل حلقة For مرة واحدة فقط
كيف؟

كهذا :
FOR i:=1 TO 6 DO
write('*');
هنا استعملنا حلقة FOR لتكرار أمر الطباعة write ('*') لستة مرات
هذا البرنامج سوف يطبع الأعداد من 1 إلى 20
PROGRAM example1 (input,output);
VAR
i: integer;
BEGIN
FOR i:=1 TO 20 DO
Writeln ( i);
END.
والآن لاحظ هذا البرنامج الذي يطبع نفس الأعداد ولكن بالعكس من 20 إلى 1
PROGRAM example1 (input, output);
VAR
i: integer;
BEGIN
FOR i:=20 DOWNTO 1 DO
Writeln ( i);
END.
هل لاحظت الفرق بين استخدام TO و DOWNTO داخل حلقة FOR؟
في الأمثلة السابقة كانت هناك عبارة واحدة نرغب في تكراره، أي أن جسم الحلقة مكون من عبارة واحدة فقط، ولكن يمكن لجسم الحلقة أن يتكون من عدة عبارات، وفي هذه الحالة يجب أن تحدد بداية ونهاية جسم الحلقة بـ BEGIN و END.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:17 PM
  #14
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 عضو محترف الابداع
افتراضي

عبارة CASE في باسكال




عبارة CASE في باسكال
تستخدم عبارة Case (الحالة) في المواقع التي يراد فيها الاختيار بين عدد من البدائل.
تستخدم عبارة الـ CASE كبديل عن استعمال عدد من عبارات IF - ELSE المتتالية، والتي غالبا ما تكون أكثر تعقيدا، وصعبة التتبع والفهم
أما باستعمال الـ CASE فإن البرنامج يصبح أكثر وضوحا، وسهل التتبع

الصيغة العامة لـ CASE:
CASE selector OF
constent1 :
statement1;
constent2 :
statment2;
.
.
.
.
END;
selector هو عبارة عن متغير من أي نوع مدرج (راجع درس الأنواع المدرجة)

constent1 و constent2 هي قيم يمكن أن يأخذها المتغير selector

فإذا كانت قيمة selector هي constent1 يتم تنفيذ العبارت التالية لها في هيكل CASE وهي statement1.

وإذا كانت قيمته constent2 تنفذ العبارة statment2 وهكذا.

لاحظ المثال التالي:
PROPGRAM ex1 (input, output);
VAR
lettergrade : char;
BEGIN
wirteln('Enter your last grade: ');
readln(lettergrade);
CASE lettergrade OF
'A': writeln('4.0');
'B': writeln('3.0');
'C': writeln('2.0');
'D': writeln('1.0');
'F': writeln('0.0');
END
END.
في هذا المثال سوف يطبع البرنامج الدرجة المقابلة للتقدير الذي حصلت عليه مؤخرا

في بعض الأحيان قد نرغب في تنفيذ نفس الأوامر لعدة قيم للمتغير selector، في هذه الحالة تذكر هذه القيم وتفصل بينها بالفاصلة
PROPGRAM ex2 (input, output);
VAR
number : Integer;
BEGIN
wirteln('Enter a number between 1 - 10: ');
readln(number);
CASE number OF
1, 3, 5, 7, 9 : writeln('The number is odd');
2, 4, 6, 8, 10: writeln(' the number is even');
END
END.
طبعا إذا أردنا تنفيذ أكثر من أمر واحد في كل حالة يجب أن نحيطها بـ BEGIN و END.
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 02:18 PM
  #15
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 عضو محترف الابداع
افتراضي

جملة IF - ELSE




جملة IF - ELSE
قبل البدأ في شرح جملة IF - ELSE وتوضيح صيغتها العامة، يجب أن نتطرق إلى موضوع مهم وهو التعابير البوليانية في لغة باسكال، فلنبدأ على بركة الله.
التعابير البوليانية :
في لغة باسكال تظهر التعابير البوليانية على أحد شكلين:
1- المتغيرات البوليانية Boolean variables
وهي عبارة عن متغيرات خاصةتعرف في القسم VAR من البرنامج، وتأخذ أحد قيميتن True أو False
VAR
switch : Boolean;
هنا المتغير switch يأخذ أحد قيمتين Ture أو False
switch := Ture;
switch := False;
ويجب ملاحظة أنه لا يمكن قراءة مثل هذه المتغيرات باستعمال الدالة read إلا أنه من الممكن طباعتها بالدالة write.
2- متغيرات مربوطة بعوامل نسبية Relation Operators:
من الممكن صياغة التعابير البوليانية باستعمال متغيرات تربط بينها العوامل النسبية التالية
= يساوي
<> لا يساوي
=> أقل من أو يساوي
=< أكبر من أو يساوي
> أقل من
< أكبر من

3- تعابير بوليانية مربوطة بعوامل منطقية logical operators
يمكن ربط أكثر من تعبير بولياني باستعمال أحد العوامل المنطقية التالية
NOT نفي
AND و
OR أو

ملاحظة:
العوامل المنطقية تتمتع بأسبقية أعلى من العوامل النسبية، لهذا فإن التعبير التي يعتبر خطأ:
NOT 4>5

لأن العامل NOT سوف يطبق أولا، لذا يجب كتابه التعبير السابق كما يلي:
NOT (4>5)

لتكون قيمته true

بعد هذا الشرح عن التعابير البوليانية، نعود إلى جملة IF
جملة IF ELSE
الشكل العام لها:
IF boolean expression
THEN statment1
ELSE statment2

&& الحالة الأولى:

عندما يكون لدينا عبارة واحدة في فيعي جملة IF
مثال: لدينا متغيرين num1 و num2 والمطلوب طباعة العدد الأكبر بينهما
IF num1>num2
THEN writeln('The larger is: ', num1)
ELSE writeln('The larger is: ', num2)
لاحظ هنا عدم وجود فاصلة منقوطة في العبارات بعد THEN و ELSE

&& الحالة الثانية:

عندما تكون لدينا أكثر من عبارة في كل فرع من فرعي الـ IF
مثال: في نفس المثال السابق لو كان المطلوب تخزين الرقم الأكبر في متغير max بعد طباعته

IF num1>num2
THEN BEGIN
writeln('The larger is: ', num1);
max:= num1
END
ELSE BEGIN
writeln('The larger is: ', num2);
max:= num2
END
في هذه الحالة نحتاج إلى وضع العبارات التي بداخل الـ THEN بين BEGIN و END ونفصل بينها بفواصل منقوطة، ولكن بدون فاصلة قبل الـ ELSE
achraf.mouni غير متواجد حالياً  
قديم 28-01-2009, 05:35 PM
  #16
lucky girl
VIP_MEMBRE
 الصورة الرمزية lucky girl
 
La spécialité: Autres
اخرى ( جامعة عربية او اجنبية )
تاريخ التسجيل: 01-01-2009
الدولة: الجزائر
المشاركات: 1,151
lucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداعlucky girl عضو محترف الابداع
افتراضي

merci achraf c est un grand plaisir merci bcp bcp bcp
__________________



WhAt DoEs NoT KiLL mE mAkE Me StRoNgEr





lucky girl غير متواجد حالياً  
قديم 28-01-2009, 08:08 PM
  #17
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 عضو محترف الابداع
افتراضي

شكرا لمرورك الطيب
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