Construire une image numérique
Pour réaliser la plupart des activités suivantes, il faut:
- ouvrir le lycée connecté,
- ouvrir l’application Capytale,
- accéder à l’activité 21e2-4046568
1. Algorithme et langage de programmation
Pour créer un algorithme, il est nécessaire (et suffisant) d’utiliser des constructions élémentaires:
- variable,
- structure conditionnelle,
- boucle.
Par exemple, un professeur peut vouloir écrire un algorithme qui calcule la moyenne des trois notes trimestrielles et affiche un message en fonction du résultat:
- récupérer la note 1
- récupérer la note 2
- récupérer la note 3
- additionner les 3 notes
- diviser le résultat par 3
- Si la moyenne est plus grande que 12:
- afficher "C'est bien"
- Sinon:
- afficher "Peut mieux faire"
Un langage de programmation permet de communiquer avec l’ordinateur. Il propose une syntaxe pour chaque construction élémentaire
Par exemple, l’algorithme précédent peut s’écrire ainsi dans le langage Python:
print("Entrer la note")
note1 = float(input())
print("Entrer la note")
note2 = float(input())
print("Entrer la note")
note3 = float(input())
somme = note1 + note2 + note3
moyenne = somme/3
if moyenne > 12:
print("C'est bien")
else:
print("Peut mieux faire")
Dans le langage C, cela donnerait:
#include <stdio.h>
int main() {
float note1, note2, note3, somme, moyenne;
printf("Entrer la note 1: ");
scanf("%f", ¬e1);
printf("Entrer la note 2: ");
scanf("%f", ¬e2);
printf("Entrer la note 3: ");
scanf("%f", ¬e3);
somme = note1 + note2 + note3;
moyenne = somme / 3;
if (moyenne > 12) {
printf("C'est bien\n");
} else {
printf("Peut mieux faire\n");
}
return 0;
}
Ces deux codes sont donnés à titre d’exemple. Il ne faut pas savoir les refaire.
En Python, pour récupérer une valeur donnée par l’utilisateur, on utilise la commande input. Quelle est son équivalent en C?
Quelles sont les commandes pour afficher un texte, dans les deux langages?
2. Fonction informatique
En informatique, une fonction est un bloc de code qui réalise une tâche. Une fonction:
- a un nom,
- a besoin d’informations: les paramètres
- Ouvrir l’activité 21e2-4046568 dans Capytale.
La fonction creer_image_vide construit une image de longueur 800 pixels et largeur 600 pixels. Pour colorer le fond, elle demande 3 paramètres:
- la quantité de rouge,
- la quantité de vert,
- la quantité de bleu
On remarque qu’une seule image s’affiche!
3. Variable
Quand on écrit les 2 instructions suivantes, 2 images sont créées dans la mémoire.
creer_image_vide(255, 0, 0)
creer_image_vide(255, 255, 0)
Capytale (Python) n’affiche que le résultat de la dernière instruction; il ne sait plus où est stocké l’autre image.
Pour repérer les images dans la mémoire, il faut les référencer avec des variables.
La variable image1 référence l’image rouge.
Pour créer une variable en Python, on utilise le signe =
image1 = creer_image_vide(255, 0, 0)
image2 = creer_image_vide(255, 255, 0)
- Modifier le code comme ci-dessus.
- Pour afficher les images, il faut utiliser la fonction afficherModifier le code pour afficher les 2 images.fonction afficher
La fonction afficher affiche une image. Elle demande 1 paramètre:
- le nom de l’image à afficher.
4. Appeler des fonctions
La fonction placer_pixel positionne un pixel noir. Elle demande 3 paramètres:
- l’image qui sera modifiée,
- l’abscisse du pixel,
- l’ordonnée du pixel.
Modifier le code pour ajouter un pixel noir au centre de l’image 1.
Pour la question précédente, des élèves ont donné les réponses suivantes. Repérer les erreurs.
placer_pixel(image1, 300)
placer_pixel(400, 300, image1)
placer_pixel(image1, 1000, 2000)
La fonction trait_horizontal trace un trait horizontal. Elle demande 5 paramètres:
- l’image qui sera modifiée,
- l’ordonnée du trait,
- l’abscisse du pixel de départ.
- l’abscisse du pixel de fin,
- la couleur au format (R, V, B); les parenthèses sont obligatoires.
- Tracer un trait rouge, dans la partie haute de l’image 2, de 100 pixels de long.
La fonction trait_vertical trace un trait vertical. Elle demande 5 paramètres:
- l’image qui sera modifiée,
- l’abscisse du trait,
- l’ordonnée du pixel de départ.
- l’ordonnée du pixel de fin,
- la couleur au format (R, V, B); les parenthèses sont obligatoires.
- Sur l’image 1, tracer un quadrillage. Chaque trait sera espacé de 100 pixels et d’une couleur différente.
La fonction donner_couleur renvoie un triplet de trois nombres aléatoires entre 0 et 255. Par exemple: (132, 42, 240)
La fonction n’a besoin d’aucun paramètre.
- Modifier le code précédent en utilisant la fonction donner_couleur.
5. Boucle
Le code précédent contient de nombreuses répétitions. En informatique, on peut créer une boucle pour répéter du code.
for valeur in range(50, 150, 1):
placer_pixel(image2, valeur, 350)
L’exemple ci-dessus place 100 pixels:
- sur l’image 2
- entre l’abscisse 50 et 149
- à l’ordonnée 350
- Tester le code.
- Modifier le code comme ci-dessous:
for valeur in range(50, 150, 5):
placer_pixel(image2, valeur, 350)
Quel est le rôle du 5?
- Tracer un trait vertical de 200 pixels de long, en utilisant la fonction placer_pixel et à l’abscisse 100.
- Tracer un trait diagonal de 200 pixels de long, en utilisant la fonction placer_pixel.
- Tracer le quadrillage de la question 12, en utilisant des boucles.