Mission Carthage Français

الرئيسية › الامتحانات › 2 تكنولوجيا الإعلامية

Devoir de contrôle n°1 : 1er trimestre

السنة الثانية ثانوي تكنولوجيات الإعلامية، الثلاثي الأول. المدّة: ساعة. على 20 نقطة.

اكتب البرامج متاعك بـ Python ولا بالـ algorithme وثبّت فيهم في بلاصتهم، وبعد حلّ الإصلاح تمرين بتمرين.

Les algorithmes s'écrivent en notation algorithmique, les programmes en Python. Barème sur 20 points.

الموضوع مكتوب بالفرنسي، كيما في القسم.

Exercice 1 : lire un programme (5 pts)

On considère le programme Python suivant.

a = 17
b = 5
c = a // b
d = a % b
if c > d:
    print("A")
else:
    print("B")
x = a / b
print(c, d, x)
s = ""
for i in range(1, 5):
    s = s + str(i * 2)
print(s)
  • 1) Donner l'affichage exact produit par ce programme (3 pts).
  • 2) Que représentent c et d par rapport à a et b ? (1 pt)
  • 3) Donner le type de x et le type de s. (1 pt)

Exercice 2 : nombre d'Armstrong (7 pts)

Un nombre à trois chiffres est un nombre d'Armstrong si la somme des cubes de ses chiffres est égale à lui-même. Exemple : 153 = 1³ + 5³ + 3³ = 1 + 125 + 27.

Écrire un programme qui lit un entier n compris entre 100 et 999 (la saisie est répétée tant que n n'est pas dans cet intervalle), puis affiche « n est un nombre d'Armstrong » ou « n n'est pas un nombre d'Armstrong ».

  • 1) Donner l'algorithme avec son tableau de déclaration des objets (4 pts).
  • 2) Traduire l'algorithme en Python (3 pts).

Exemple : si l'utilisateur saisit 50, puis 1000, puis 370, le programme affiche : 370 est un nombre d'Armstrong

Exercice 3 : une chaîne de caractères (8 pts)

Écrire un programme qui lit une chaîne ch non vide et affiche, sur trois lignes : sa longueur, son nombre de voyelles (a, e, i, o, u, y, en majuscule ou en minuscule) et la chaîne lue à l'envers.

Exemple : pour Carthage, le programme affiche :

Longueur : 8
Voyelles : 3
Inversée : egahtraC
  • 1) Donner l'analyse du problème : les résultats et les traitements (2 pts).
  • 2) Écrire l'algorithme (3 pts).
  • 3) Traduire en Python (3 pts).

الإصلاح المفصّل

الامتحان هذا مثال بلاش: الإصلاح متاعو مفتوح للناس الكل.

Exercice 1 : lire un programme

⁦1⁩) شنوّة يطلّع البرنامج

نحسبو الـ ⁦variables⁩ سطر بسطر: ⁦c = 17 // 5 = 3⁩ و⁦d = 17 % 5 = 2⁩. خاطر ⁦3 > 2⁩، البرنامج يطلّع ⁦A⁩. وبعد ⁦x = 17 / 5 = 3.4⁩ ونطلّعو ⁦c⁩ و⁦d⁩ و⁦x⁩ في نفس السطر. الـ ⁦boucle⁩ تزيد لـ ⁦s⁩ النصوص ⁦"2"⁩ و⁦"4"⁩ و⁦"6"⁩ و⁦"8"⁩ (⁦i⁩ ياخو القيم ⁦1⁩ و⁦2⁩ و⁦3⁩ و⁦4⁩).

a = 17
b = 5
c = a // b
d = a % b
if c > d:
    print("A")
else:
    print("B")
x = a / b
print(c, d, x)
s = ""
for i in range(1, 5):
    s = s + str(i * 2)
print(s)

اللي يطلّعو البرنامج: ⁦A⁩ وبعد ⁦3 2 3.4⁩ وبعد ⁦2468⁩.

⁦2⁩) الدور متاع ⁦c⁩ و⁦d⁩

⁦c⁩ هو الـ ⁦quotient⁩ متاع القسمة الصحيحة متاع ⁦17⁩ على ⁦5⁩، و⁦d⁩ هو الباقي: ⁦17 = 5 × 3 + 2⁩.

الأفكار الأساسية:

⁦3⁩) الأنواع

⁦x⁩ نوعو ⁦réel (float)⁩ خاطر الـ ⁦opérateur /⁩ ديما يعطي ⁦réel⁩. و⁦s⁩ هي ⁦chaîne de caractères (str)⁩، خاطر نزيدولها نصوص جايين من ⁦str()⁩. موش العدد ⁦2468⁩، النص ⁦"2468"⁩.

الغلطات اللي ترجع برشا

Exercice 2 : nombre d'Armstrong

التحليل

الـ ⁦algorithme⁩

Algorithme Armstrong
Début
  Répéter
    Ecrire("Donner n : ")
    Lire(n)
  Jusqu'à (n >= 100) ET (n <= 999)
  c ← n div 100
  d ← (n div 10) mod 10
  u ← n mod 10
  Si (c^3 + d^3 + u^3 = n) Alors
    Ecrire(n, " est un nombre d'Armstrong")
  Sinon
    Ecrire(n, " n'est pas un nombre d'Armstrong")
  Fin Si
Fin
TDO
ObjetType/Nature
n, c, d, uEntier

البرنامج بـ ⁦Python⁩

⁦Python⁩ ما فيهاش ⁦boucle⁩ « ⁦répéter⁩ … ⁦jusqu'à⁩ »: نقراو ⁦n⁩ مرّة لولة، وبعد نعاودو نقراو ما دام شرط الوقوف غالط. يعني الشرط يولّي العكس متاع شرط الـ ⁦Jusqu'à⁩: ⁦n < 100⁩ ولا ⁦n > 999⁩.

n = int(input())
while n < 100 or n > 999:
    n = int(input())
c = n // 100
d = (n // 10) % 10
u = n % 10
if c * c * c + d * d * d + u * u * u == n:
    print(n, "est un nombre d'Armstrong")
else:
    print(n, "n'est pas un nombre d'Armstrong")

التثبّت باليد

لـ ⁦123⁩: ⁦1⁩³ ⁦+ 2⁩³ ⁦+ 3⁩³ ⁦= 1 + 8 + 27 = 36⁩، وهو موش ⁦123⁩. ولـ ⁦370⁩: ⁦27 + 343 + 0 = 370⁩.

الغلطات اللي ترجع برشا

Exercice 3 : une chaîne de caractères

التحليل

الـ ⁦algorithme⁩

Algorithme Chaine
Début
  Lire(ch)
  nv ← 0
  Pour i de 0 à long(ch) - 1 Faire
    Si pos(majus(ch[i]), "AEIOUY") <> -1 Alors
      nv ← nv + 1
    Fin Si
  Fin Pour
  inv ← ""
  Pour i de long(ch) - 1 à 0 (pas = -1) Faire
    inv ← inv + ch[i]
  Fin Pour
  Ecrire("Longueur : ", long(ch))
  Ecrire("Voyelles : ", nv)
  Ecrire("Inversée : ", inv)
Fin
TDO
ObjetType/Nature
ch, invChaîne
nv, iEntier

البرنامج بـ ⁦Python⁩

ch = input()
nv = 0
for i in range(len(ch)):
    if ch[i].upper() in "AEIOUY":
        nv = nv + 1
inv = ""
for i in range(len(ch) - 1, -1, -1):
    inv = inv + ch[i]
print("Longueur :", len(ch))
print("Voyelles :", nv)
print("Inversée :", inv)

ملاحظات

موضوع أصلي كتبناه لـ Mission Carthage، على نفس الشكل متاع امتحانات القسم. الأستاذ متاعك يبقى هو المرجع.

البرنامج الكل: السنة الثانية ثانوي تكنولوجيات الإعلامية · عاود اقرا الكور · الامتحانات الكل