Kala te souhaite la bienvenueKalaMaths

Pensée informatique et algorithmique

🔴 Expert

Les énoncés sont gratuits, et les 2 premiers corrigés sont offerts. Les autres corrigés détaillés sont réservés aux abonnés.

S'abonner
  1. 1

    Sur un quadrillage, → ajoute 1 à x et ↑ ajoute 1 à y. Le robot part de (0 ; 0)(0 \,;\, 0) et exécute « répéter 4 fois [ → → ↑ ] ».
    Existe-t-il un chemin (uniquement avec → et ↑) plus court pour aller de (0 ; 0)(0 \,;\, 0) au point final ? Justifie.

    Voir le corrigéoffert

    À chaque tour, le robot fait → → ↑, soit x augmente de 2 et y augmente de 1.
    a) Après 4 tours : x=4×2=8x = 4 \times 2 = 8 et y=4×1=4y = 4 \times 1 = 4. Coordonnées finales : (8 ; 4)(8 \,;\, 4).
    b) Chaque tour comporte 3 flèches ; sur 4 tours : 4×3=124 \times 3 = 12 flèches.
    c) Pour aller de (0 ; 0)(0 \,;\, 0) à (8 ; 4)(8 \,;\, 4) uniquement avec → (qui ajoute 1 à x) et ↑ (qui ajoute 1 à y), il faut au minimum 8 déplacements → et 4 déplacements ↑, soit 8+4=128 + 4 = 12 flèches. Le chemin actuel utilise déjà exactement 12 flèches : il est donc déjà le plus court possible. Aucun chemin plus court n'existe.

  2. 2

    On exécute : « mettre n à 100 ; répéter tant que n≥7n \ge 7 : retirer 7 à n ».
    Explique en quoi retirer 7 autant de fois que possible revient à poser la division euclidienne de 100 par 7.

    Voir le corrigéoffert

    La boucle retire 7 à n tant que n≥7n \ge 7.
    a) On retire 7 autant de fois que possible. Comme 100=7×14+2100 = 7 \times 14 + 2, après avoir retiré 7 quatorze fois il reste 2 (et 2≥72 \ge 7 est faux, on s'arrête). Valeur finale : n=2n = 2.
    b) Chaque tour retire un 7 : on a retiré 7 quatorze fois, donc la boucle fait 14 tours.
    c) Ce programme calcule la division euclidienne de 100 par 7 : le nombre de tours (14) est le QUOTIENT, et la valeur finale de n (2) est le RESTE.
    Vérification : 7×14+2=98+2=1007 \times 14 + 2 = 98 + 2 = 100.

  3. 3

    Un programme classe un triangle à partir de ses trois côtés a, b, c : « si a=ba = b et b=cb = c alors « équilatéral » ; sinon si a=ba = b ou b=cb = c ou a=ca = c alors « isocèle » ; sinon « quelconque » ». Donne la réponse du programme pour :
    a) (5 ; 5 ; 5),
    b) (7 ; 7 ; 4),
    c) (3 ; 4 ; 5). Pour ce dernier cas, que remarques-tu de particulier sur ce triangle, même si le programme ne le détecte pas ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  4. 4

    On considère deux boucles imbriquées : « mettre total à 0 ; répéter 3 fois [ répéter 4 fois [ ajouter 1 à total ] ] ».
    En Python, on écrit for i in range(3): for j in range(6): puis une seule instruction à l'intérieur. Combien de fois est-elle exécutée ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  5. 5

    En Python : s = 0, puis for i in range(1, 11): si i est pair alors ajouter i à s.
    En modifiant le test pour ajouter les nombres IMPAIRS à la place, que vaudrait s ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  6. 6

    Un site applique une réduction : « si montant≥100\text{montant} \ge 100 alors réduction de 20 % ; sinon si montant≥50\text{montant} \ge 50 alors réduction de 10 % ; sinon aucune réduction ». Calcule le prix payé pour :
    a) un montant de 120 €,
    b) un montant de 60 €,
    c) un montant de 40 €.

    🔒 Corrigé réservé aux abonnésS'abonner →
  7. 7

    On exécute : « mettre a à 1 ; mettre b à 1 ; répéter 5 fois [ mettre c à a+ba + b ; mettre a à b ; mettre b à c ] ».
    Quelle suite de nombres célèbre reconnais-tu dans les valeurs de b ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  8. 8

    On définit deux fonctions : « f prend n et renvoie 3×n−23 \times n - 2 » et « g prend n et renvoie n+5n + 5 ».
    Trouve le nombre n pour lequel f(n)=g(n)f(n) = g(n).

    🔒 Corrigé réservé aux abonnésS'abonner →
  9. 9

    On exécute : « mettre s à 0 » ; « mettre p à 1 » ; puis « répéter 5 fois [ ajouter 2 à s ; multiplier p par 2 ] ».
    À quel tour p devient-il pour la première fois STRICTEMENT plus grand que s ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  10. 10

    Un algorithme cherche le plus grand élément d'une liste : « mettre max au premier élément ; pour chaque élément de la liste, si élément >max⁡> \max alors mettre max à élément ». On l'applique à la liste [7 ; 3 ; 15 ; 9 ; 15 ; 2].
    La condition utilise >(strict)> (\text{strict}). Le deuxième « 15 » de la liste modifie-t-il max ? Explique.

    🔒 Corrigé réservé aux abonnésS'abonner →

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.