الدرس: هياكل البيانات المتقدمة في لغة Pascal – المصفوفات والسلاسل النصية
الأهداف التعليمية:
- فهم مفهوم المصفوفات (Tableaux) أحادية وثنائية البعد وكيفية التصريح عنها.
- إتقان معالجة السلاسل النصية (Chaînes de caractères) والدوال المرتبطة بها.
- تطبيق المفاهيم في تمارين عملية بأسلوب بكالوريا.
أولاً: المصفوفات أحادية البعد (Tableaux à une dimension)
المصفوفة هي مجموعة من العناصر من نفس النوع مرتبة في ذاكرة الحاسوب ويتم الوصول إليها عبر فهرس (Index).
التصريح:
Var
T : Array[1..100] of Integer; { مصفوفة من 100 عدد صحيح }
notes : Array[1..30] of Real; { مصفوفة من 30 عدد حقيقي }
المعالجة: لملء وعرض مصفوفة:
For i := 1 to n Do Readln(T[i]); For i := 1 to n Do Write(T[i], ' ');
ثانياً: المصفوفات ثنائية البعد (Tableaux à deux dimensions)
تمثل المصفوفات ثنائية البعد جدولاً (صفوف وأعمدة).
Var
M : Array[1..10,1..10] of Integer; { مصفوفة 10×10 }
المعالجة: لملء وعرض مصفوفة 3×4:
For i := 1 to 3 Do
For j := 1 to 4 Do
Readln(M[i,j]);
For i := 1 to 3 Do
Begin
For j := 1 to 4 Do
Write(M[i,j]:4);
Writeln;
End;
ثالثاً: السلاسل النصية (Chaînes de caractères / Strings)
السلسلة النصية هي متغير يخزن نصاً (حروف، أرقام، رموز).
Var
nom, prenom : String;
message : String[100]; { سلسلة بطول أقصى 100 }
الدوال الأساسية للسلاسل النصية في Pascal:
| الدالة | الوصف | مثال |
|---|---|---|
| Length(ch) | إرجاع طول السلسلة | Length(‘Bac2026’) → 7 |
| Copy(ch, p, n) | نسخ n حرفاً ابتداءً من الموضع p | Copy(‘Algerie’,1,3) → ‘Alg’ |
| Pos(s1, ch) | إرجاع الموضع الأول لـ s1 في ch | Pos(‘ger’,’Algerie’) → 4 |
| Delete(ch, p, n) | حذف n حرفاً ابتداءً من p | Delete(ch,2,3) |
| Insert(s, ch, p) | إدراج s في ch عند الموضع p | Insert(‘Bac’,ch,1) |
| Concat(ch1, ch2) | دمج سلسلتين | Concat(‘Bac’,’2026′) → ‘Bac2026’ |
| Upcase(ch) | تحويل حرف إلى كبير | Upcase(‘a’) → ‘A’ |
تمارين بكالوريا محلولة
التمرين 1: اكتب برنامجاً يقوم بملء مصفوفة من 10 أعداد صحيحة ثم يعرض الأعداد الزوجية فقط.
Program Exo1;
Var
T : Array[1..10] of Integer;
i : Integer;
Begin
For i := 1 to 10 Do
Begin
Write('Saisir T[',i,']: ');
Readln(T[i]);
End;
Writeln('Les nombres pairs:');
For i := 1 to 10 Do
If T[i] mod 2 = 0 Then
Write(T[i], ' ');
Readln;
End.
التمرين 2: اكتب برنامجاً يقرأ اسماً كاملاً (الاسم واللقب مفصولين بمسافة) ثم يعرض عدد حروفه وعدد حروف العلة (a, e, i, o, u, y).
Program Exo2;
Var
ch : String;
i, nb_voyelles : Integer;
Begin
Write('Entrez un nom complet: ');
Readln(ch);
nb_voyelles := 0;
For i := 1 to Length(ch) Do
Begin
ch[i] := Upcase(ch[i]);
If ch[i] In ['A','E','I','O','U','Y'] Then
nb_voyelles := nb_voyelles + 1;
End;
Writeln('Nombre de caracteres: ', Length(ch));
Writeln('Nombre de voyelles: ', nb_voyelles);
Readln;
End.
درس من إعداد الأستاذ – الإعلام الآلي – الأولى ثانوي – المنهاج الجزائري
📍 دروس مشابهة قد تهمك:
- الإعلام الآلي — العتاد (Hardware): مكونات الحاسوب المادية
- الإعلام الآلي — الخوارزميات العددية في لغة Pascal
- الخوارزميات (Algorithmes): مفهومها وطرق تمثيلها بالمخططات الانسيابية
🔗 تصفح أيضاً: جميع دروس الأولى ثانوي | جميع دروس الثانوي
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.