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