الرئيسية › الدروس › المصفوفات (Matrices)
المصفوفات بـ Algo وPython: المرور والأقطار والمنقول
tableau بزوز أبعاد: أسطر وأعمدة، المرور، المجاميع، الأكبر، الأقطار والمنقول.
دروس هذا الفصل
- صنع مصفوفة وكتابتها
- الحساب على مصفوفة
- البحث والمنقول
الدرس 17.1 : صنع مصفوفة وكتابتها
الـ matrice هي tableau بـ زوز أبعاد: أسطر وأعمدة، كيما شبكة كلمات متقاطعة ولا جدول نقاط (سطر لكل تلميذ، عمود لكل مادّة). كل خانة عندها زوز indices: M[i, j] هي خانة السطر i والعمود j.
- في الـ TDO:
M | Matrice de 3 lignes et 4 colonnes d'entiers(ولاTableau de 3 x 4 Entiers). - في Python، الـ matrice هي liste متاع listes:
M = [[0] * 4 for i in range(3)]تصنع 3 أسطر فيهم 4 أصفار. نكتبوM[i][j]. - باش نزوروا الخانات الكل: زوز boucles
Pourوحدة في وحدة، وحدة للأسطر ووحدة للأعمدة.
انتبه : ما تصنعش matrice بـ [[0] * 4] * 3: الثلاثة أسطر يوليو نفس الـ liste، وتبديل خانة يبدّل العمود الكل. استعمل for … in range كيما الفوق.
نصيحة : في الباك تلقى زادة from numpy import array وبعد M = array([[int()] * 4] * 3): مع numpy الكتيبة هذي آمنة ونكتبو M[i, j].
بـ Python
نعمرو matrice 2 × 3 بالقيم اللي قريناها، وبعد نكتبوها سطر بسطر.
L = 2
C = 3
M = [[0] * C for i in range(L)]
for i in range(L):
for j in range(C):
M[i][j] = int(input())
for i in range(L):
ligne = ""
for j in range(C):
ligne = ligne + str(M[i][j]) + " "
print(ligne)
بـ algorithme
الأسطر من 1 لـ L والأعمدة من 1 لـ C.
Algorithme AfficherMatrice
Début
L ← 2
C ← 3
Pour i de 1 à L Faire
Pour j de 1 à C Faire
Lire(M[i, j])
FinPour
FinPour
Pour i de 1 à L Faire
ligne ← ""
Pour j de 1 à C Faire
ligne ← ligne + convch(M[i, j]) + " "
FinPour
Ecrire(ligne)
FinPour
Fin
TDO
Objet | Type/Nature
M | Matrice de 2 lignes et 3 colonnes d'entiers
L, C, i, j | Entier
ligne | Chaîne
الدرس 17.2 : الحساب على مصفوفة
الحسابات على matrice هي نفسها متاع الـ tableaux، بزوز boucles. نجمو نمرّو على الخانات الكل، ولا سطر واحد (i ثابت و j يتبدّل)، ولا عمود واحد (j ثابت و i يتبدّل).
لـ matrice مربّعة n × n، القطر الرئيسي فيه الخانات اللي فيها i = j، والقطر الثاني اللي فيها i + j = n + 1 (في الـ algorithme، الـ indices من 1) ولا i + j = n - 1 (في Python، من 0).
نصيحة : للقطر، boucle وحدة تكفي: M[i, i] للرئيسي، و M[i, n + 1 - i] للآخر.
بـ Python
مجموع الخانات الكل والأكبر في matrice معطاة.
M = [[12, 7, 30], [5, 41, 9], [18, 3, 26]]
n = 3
s = 0
grand = M[0][0]
for i in range(n):
for j in range(n):
s = s + M[i][j]
if M[i][j] > grand:
grand = M[i][j]
print("Somme :", s)
print("Maximum :", grand)
بـ algorithme
الـ maximum يبدا بأول خانة M[1, 1]، موش بـ 0.
Algorithme SommeMax
Début
M[1, 1] ← 12
M[1, 2] ← 7
M[1, 3] ← 30
M[2, 1] ← 5
M[2, 2] ← 41
M[2, 3] ← 9
M[3, 1] ← 18
M[3, 2] ← 3
M[3, 3] ← 26
n ← 3
s ← 0
grand ← M[1, 1]
Pour i de 1 à n Faire
Pour j de 1 à n Faire
s ← s + M[i, j]
Si M[i, j] > grand Alors
grand ← M[i, j]
FinSi
FinPour
FinPour
Ecrire("Somme : ", s)
Ecrire("Maximum : ", grand)
Fin
TDO
Objet | Type/Nature
M | Matrice de 3 lignes et 3 colonnes d'entiers
n, s, grand, i, j | Entier
الدرس 17.3 : البحث والمنقول
البحث على قيمة في matrice كيما في tableau، أما يلزم زوز indices. باش نوقفو كيف نلقاو، نستعملو boucles Tant que و booléen.
الـ transposée متاع matrice L × C هي matrice C × L: السطر i يولّي العمود i. يعني TR[j, i] ← M[i, j].
نصيحة : بزوز Tant que، نرجّعو j للبداية في كل سطر جديد، ونتعدّاو للسطر اللي بعدو كان ما لقيناش برك.
بـ Python
نلوّجو على قيمة ونكتبو بلاصتها (سطر، عمود)، محسوبين من 1.
M = [[3, 8, 1], [9, 4, 7]]
x = int(input())
trouve = False
i = 0
while i < 2 and not trouve:
j = 0
while j < 3 and not trouve:
if M[i][j] == x:
trouve = True
else:
j = j + 1
if not trouve:
i = i + 1
if trouve:
print("Ligne", i + 1, "colonne", j + 1)
else:
print("Absent")
بـ algorithme
نفس الـ boucles بـ indices من 1 لـ 2 ومن 1 لـ 3.
Algorithme ChercherMatrice
Début
M[1, 1] ← 3
M[1, 2] ← 8
M[1, 3] ← 1
M[2, 1] ← 9
M[2, 2] ← 4
M[2, 3] ← 7
Lire(x)
trouve ← Faux
i ← 1
Tant que (i ≤ 2) et (Non trouve) Faire
j ← 1
Tant que (j ≤ 3) et (Non trouve) Faire
Si M[i, j] = x Alors
trouve ← Vrai
Sinon
j ← j + 1
FinSi
FinTantQue
Si Non trouve Alors
i ← i + 1
FinSi
FinTantQue
Si trouve Alors
Ecrire("Ligne ", i, " colonne ", j)
Sinon
Ecrire("Absent")
FinSi
Fin
TDO
Objet | Type/Nature
M | Matrice de 2 lignes et 3 colonnes d'entiers
x, i, j | Entier
trouve | Booléen
تدرّب مجانًا
كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.
← الفصل اللي قبل : الحساب (Arithmétique) · الفصل اللي بعد : التسجيلات (Enregistrements) →
كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة
الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.