Révision et exercice

Concepts

Exercice 1:


Voici une série d'instructions:


  • Prendre un bol ou un mug

  • Tant que l'on a faim:

    • prendre une tartine

    • manger une tartine

  • Tant que l'on a soif

    • se servir du café

    • boire du café

  • Nettoyer la table


Question 1. Est-ce un programme ou un algorithme et pourquoi?

La première instruction laisse le choix. On a donc pas un choix et un seul choix à chaque étape. Il s'agit d'un programme.

Question 2. Avez-vous identifié un ou plusieurs blocs d'instructions? Si oui: lesquels, de quels types et à quelles conditions sont-ils soumis?

1) Tant que l'on a faim: il s'agit d'une boucle soumise à la condition "avoir faim".

2) Tant que l'on a soif: il s'agit d'une boucle soumise à la condition "avoir soif".

Question 3. Identifiez-vous des variables ? Si oui, lesquelles?

Non.

Une autre réponse valable est: les variables "avoir soif" et "avoir faim", typiquement des variables booléennes.

Question 4. Imaginons que l'on ait que l'on ait besoin de 2 tartines et de 0 café, quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme?

Il exécute les instructions suivantes

  • Prendre un bol ou une tasse

  • prendre une tartine //on a faim, on respecte donc la condition du "tant qu'on a faim"

  • manger une tartine //instruction de la boucle "si on a faim"

  • prendre une tartine //on a encore faim, on respecte donc la condition du "tant qu'on a faim"

  • manger une tartine // instruction de la boucle "si on a faim" (on a plus faim)

  • Nettoyer la table //pas de boucle "tant qu'on a soif" car on n'a pas soif, on est passé directement à l'instruction suivante


Exercice 2:


Voici une série d'instructions:


  • Prendre un bol si on en a un

  • Sinon prendre un mug

  • Si on a faim:

    • prendre une tartine

    • manger une tartine

  • Faire du café

  • Tant que l'on a soif

    • se servir du café

    • boire du café

  • Nettoyer la table


Question 1. Est-ce un programme ou un algorithme et pourquoi?

Si on considère que le résultat est de prendre un petit déjeuner en fonction des circonstances, les instructions suivantes ont toujours un résultat, ont une et une seule instruction à la fois, a une fin etc. C'est donc un algorithme

Question 2. Avez-vous identifié un ou plusieurs blocs d'instructions? Si oui: lesquels, de quels types et à quelles conditions sont-ils soumis?

1) Si on a un bol sinon un mug: il s'agit d'une condition si-sinon soumise à la condition d'avoir un bol

2) Si on a soif: il s'agit d'une condition si-alors soumise à la condition d'avoir fin

3) Tant que l'on a soif: il s'agit d'une boucle soumise à la condition "avoir soif".

Question 3. Identifiez-vous des variables ? Si oui, lesquelles?

Non.

Une autre réponse valable est: les variables "avoir un bol", "avoir soif" et "avoir faim", typiquement des variables booléennes.

Question 4. Imaginons que l'on ait des mugs et des bols, que l'on ait besoin de 2 tartines et de 3 cafés, quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme?

Il exécute les instructions suivantes

  • Prendre un bol //"avoir des bols" est vrai, on prend donc un bol et on "saute" l'instruction "sinon prendre une tasse"

  • prendre une tartine //on a faim, on respecte donc la condition du "si on a faim"

  • manger une tartine //deuxième instructions du bloc conditionnel "si on a faim"

  • faire du café //on a fini le bloc d'instruction conditionnel. Même si on a encore faim, on passe à la suite

  • se servir du café //boucle "tant qu'on a soif" une première fois

  • boire du café //boucle "tant qu'on a soif" une première fois

  • se servir du café //boucle "tant qu'on a soif" une deuxième fois car on a encore soif

  • boire du café //boucle "tant qu'on a soif" une deuxième fois

  • se servir du café //boucle "tant qu'on a soif" une troisième fois car on a encore soif

  • boire du café //boucle "tant qu'on a soif" une troisième fois (on n'a plus soif)

  • Nettoyer la table //on est passé à l'instruction suivante car on n'a plus soif


Exercice 3:


Voici une série d'instructions:


  • Afficher "Bonjour"

  • Demander à l'utilisateur.rice de répondre

  • Répéter:

    • Afficher "Bonjour"

    • Attendre que l'utilisateur.rice réponde


Question 1. Est-ce un programme ou un algorithme et pourquoi?

C'est un programme car il faut une intervention exterieure (utilisateur) et le programme ne termine virtuellement "jamais".

Question 2. Avez-vous identifié un ou plusieurs blocs d'instructions? Si oui: lesquels, de quels types et à quelles conditions sont-ils soumis?

1) Une boucle avec l'action "Répéter". Cette boucle n'a pas de condition, car elle est tout le temps vraie. Elle correspond par exemple à while (true), ou Tant que "Vrai"

Question 3. Identifiez-vous des variables ? Si oui, lesquelles?

Non.

Question 4. Quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme?

Il exécute les instructions suivantes

  • Afficher "Bonjour"

  • Demander à l'utilisateur.rice de répondre

  • Afficher "Bonjour"

  • Attendre que l'utilisateur.rice réponde

  • Afficher "Bonjour"

  • Attendre que l'utilisateur.rice réponde

  • Afficher "Bonjour"

  • Attendre que l'utilisateur.rice réponde

  • Afficher "Bonjour"

  • Attendre que l'utilisateur.rice réponde

  • Afficher "Bonjour"

  • Attendre que l'utilisateur.rice réponde

  • ... indéfiniement


Exercice 4:


Voici une série d'instructions:

Définir la fonction Bonjour comme ceci:

  • Afficher "Bonjour"

  • Demander à l'utilisateur.rice de répondre


Demander un nombre de tours à l'utilisateur

  • Répéter autant que le nombre de tours:

    • utiliser Bonjour


Question 1. Est-ce un programme ou un algorithme et pourquoi?

C'est un programme car il faut une intervention extérieure (utilisateur) sinon le programme ne finit jamais ou ne donne pas de résultat

Question 2. Avez-vous identifié un ou plusieurs blocs d'instructions? Si oui: lesquels, de quels types et à quelles conditions sont-ils soumis?

1) Une boucle avec l'action "Répéter". Cette boucle est exécutée autant de fois que le nombre de tours.

2) on note également, si on le souhaite, une fonction Bonjour

Question 3. Identifiez-vous des variables ? Si oui, lesquelles?

Oui, la variable "nombre de tours" qui est un nombre

Question 4. Quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme si l'utilisateur entre la valeur 1 ?

Il exécute les instructions suivantes

  • Afficher "Bonjour"

  • Demander à l'utilisateur.rice de répondre


La fonction en fait rien tant qu'on ne l'appelle pas.


Exercice 4:


Voici une série d'instructions:

Définir la fonction Bonjour(nombre) comme ceci:

  • Afficher "Bonjour"

  • Renvoie nombre moins un


  • Demander un nombre de tours à l'utilisateur, puis attendre 10 secondes

  • Si l'utilisateur n'a pas répondu, nombre de tours=4

  • Répéter tant que (nombre de tours>0)

    • nombre de tours= utiliser Bonjour(nombre de tour)


Question 1. Est-ce un programme ou un algorithme et pourquoi?

On peut considérer que c'est un algorithme car même sans une intervention extérieure (utilisateur) sinon le programme finira.

Question 2. Avez-vous identifié un ou plusieurs blocs d'instructions? Si oui: lesquels, de quels types et à quelles conditions sont-ils soumis?

1) Une boucle avec l'action "Répéter". Cette boucle est exécutée autant de fois que le nombre de tours.

2) on note également, si on le souhaite, une fonction Bonjour

Question 3. Identifiez-vous des variables ? Si oui, lesquelles?

Oui, la variable "nombre de tours" qui est un nombre.

On peut considérer "nombre" comme une variable ayant une portée de fonction (fonction Bonjour)

Question 4. Quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme si l'utilisateur entre la valeur 2 en 3 secondes ?

Il exécute les instructions suivantes


  • Demander un nombre de tours à l'utilisateur, puis attendre 10 secondes

  • Bonjour(2)

    • Afficher "Bonjour"

    • Renvoie 1 qui devient la valeur de nombre de tour

  • Bonjour(1)

      • Afficher "Bonjour"

      • Renvoie 0 1 qui devient la valeur de nombre de tour

Question 5. Quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme si l'utilisateur entre la valeur 0 en 9 secondes ?

  • Demander un nombre de tours à l'utilisateur, puis attendre 10 secondes

Question 6. Quelles instructions, dans l'ordre, exécute cet algorithme ou ce programme si l'utilisateur entre la valeur 5 en 11 secondes ?

  • Demander un nombre de tours à l'utilisateur, puis attendre 10 secondes

  • Bonjour(4)

    • Afficher "Bonjour"

    • Renvoie 3 qui devient la valeur de nombre de tour

  • Bonjour(3)

    • Afficher "Bonjour"

    • Renvoie 2 qui devient la valeur de nombre de tour

  • Bonjour(2)

    • Afficher "Bonjour"

    • Renvoie 1 qui devient la valeur de nombre de tour

  • Bonjour(1)

    • Afficher "Bonjour"

    • Renvoie 0 qui devient la valeur de nombre de tour