TD PROGRAMMATION I. Présentation Ce td est à réaliser entièrement à la maison e
TD PROGRAMMATION I. Présentation Ce td est à réaliser entièrement à la maison et fera l’objet d’un retour d’expérience avec explication(s) si nécessaire lors d’une prochaine séance de TD en salle avec votre enseignant. La thématique abordée dans cette séance gravite autour des concepts de base de la programmation et s’inscrit naturellement en relation directe avec la 3ème compétence de PIX nommée « création de contenu ». L’univers de la programmation est très certainement bien distant de votre cœur de métier actuel lié au droit et c’est pour cela que les objectifs du travail qui vous est demandé ici sont mesurés et atteignables par toutes et tous. Afin d’assurer votre progression tout en permettant une transition idéale vers PIX, vous allez avoir l’occasion de pratiquer avec deux plateformes de programmation accessibles par un simple navigateur internet sur tout type d’ordinateur. II. Les concepts : Pour réaliser cette approche de l’univers de la programmation, nous allons concevoir quelques programmes dont la structure restera simple dans tous les cas. Pour cette initiation, nous allons considérer que chaque programme présente une structure similaire que nous pouvons décomposer en 3 parties . Si on voulait faire un parallèle avec la composition d’une dissertation nous pourrions dire que dans un programme informatique il y a également 3 parties distinctes nommées : Introduction / Développement / Conclusion. P1 Introduction : Dans cette première partie, nous allons retrouver tout le nécessaire permettant de mettre en place les informations qui seront utilisées par le cœur du programme (la partie développement) comme par exemple : • La définition des variables • Les conditions initiales • La saisie des données par l’utilisateur P2 Développement : Dans cette zone que l’on considère comme le cœur du programme, nous allons retrouver toute la partie opérative de celui-ci, c’est-à-dire tout le nécessaire au traitement des données et à l’obtention des résultats attendus. Nous y retrouverons notamment : • Des fonctions • Des structures répétitives appelées aussi parfois boucles itératives • Des structures de tests P3 Conclusion : Cette dernière partie est, quant à elle, essentiellement consacrée à la préparation et à l’affichage des résultats attendus. On notera que parfois, nous pouvons avoir affaire à des organisations dont les 2 dernières parties sont communes. Ce sera le cas par exemple pour les programmes de ce TD qui consisteront à réaliser un graphisme ou bien un affichage répétitif de résultats. III. Exemples Ø Voici l’exemple d’un programme simple écrit en langage PYTHON avec 3 parties bien distinctes : x=13 resultat=x+2 resultat=resultat*2 print(resultat) Dans ce programme, L’introduction consiste donc à affecter la valeur 13 à la variable x. Ensuite, 2 calculs consécutifs sont effectués dans la partie développement : • Le premier entraine que la variable resultat devient égale à 15. • Le second entraine, quant à lui, que la variable resultat devient égale à 30. Pour finir, dans sa partie conclusion, le programme affichera donc simplement la valeur de la variable resultat, donc : 30 Ø Voici maintenant le même programme écrit avec un langage de programmation visuel sur une plateforme appelée SCRATCH : Ø Voici une seconde version plus évoluée de ce programme : x=int(input("Entrer au clavier la valeur de x de votre choix : ")) resultat=x+2 resultat=resultat*2 print("Quand x vaut ",x," le résultat vaut ",resultat," !") Lors de l’exécution de ce programme, la partie P1 affichera un message invitant l’utilisateur à saisir au clavier un nombre. La variable x sera donc égale à ce nombre saisi. Les calculs réalisés sont les mêmes que précédemment en zone P2. En revanche, l’affichage du résultat lors de l’exécution sera nettement plus riche que précédemment et se présentera donc de la manière suivante : Quand x vaut 13 le résultat vaut 30 ! Ø Voici une troisième version plus sophistiquée : En P1, on se contente ici de donner la valeur 3 à la variable x. Celle valeur est totalement arbitraire (on aurait très bien pu mettre 38, 4 ou 999) et doit simplement être différente de zéro, car comme l’indique le message qui sera affiché lors de l’exécution de la ligne 2, le programme cessera de s’exécuter dès lors que l’utilisateur entrera la valeur 0 en réponse à la question « Entrer une valeur de x ». En P2, nous avons une structure de boucle répétitive de type TANT QUE (traduction de While) qui fera que tout le contenu de la zone mauve sera répété TANT QUE la valeur de la variable x (la valeur saisie au clavier par l’utilisateur lors de l’exécution de la ligne 4) sera différent de zéro. La boucle WHILE est donc une boucle répétitive conditionnelle Dès que l’utilisateur entrera la valeur zéro lors d’un passage en ligne 4, le programme effectuera une dernière fois l’exécution des lignes 5, 6 et 7 pour se diriger vers l’exécution de la ligne 9 ( affichage d’un message de fin ), une ligne qu’il n’exécutera donc qu’une seule fois. IV. Introduction à l’algorithmique. Dès lors que la structure d’un programme se densifie, nous avons la possibilité de rendre plus facile la compréhension de celui-ci en produisant son algorithme. Un algorithme est un schéma constitué de blocs représentants les différentes étapes du programme reliées entre elles par des flèches symbolisant le déroulement séquentiel de l’ensemble. Par exemple, voici l’algorithme du programme précédent : Selon les auteurs on peut trouver d’autres dispositions similaires, en voici quelques-unes par exemple pour cette même structure de boucle WHILE : Ou bien Ou encore : Représentation de la boucle While en SCRATCH 1. Les boucles les plus courantes : 1. La boucle WHILE (traduction : TANT QUE) vue au-dessus 2. La boucle FOR (traduction : POUR) Exemples : Fig.1 Fig. 2 ICI, dans les 2 cas , on sait exactement combien de fois la boucle FOR va s’exécuter car cette quantité est fixée dans le programme alors que pour les boucles WHILE, on ne peut jamais savoir à l’avance combien de fois elles seront exécutées. Fig.3 La représentation équivalente de la boucle FOR en SCRATCH : Fig.4 2. La structure conditionnelle appelée aussi la fonction « SI ALORS SINON» ou encore « IF THEN ELSE » Voici un exemple de cette structure en langage PYTHON : Fig.5 Et voici sa représentation algorithmique et son équivalence en SCRATCH V. TRAVAIL A REALISER : En compléments des explications demandées, vous fournirez des copies d’écran des résultats obtenus pour toutes les questions le nécessitant afin de réaliser votre compte rendu. 1. Pour les 2 programmes proposés page 10 en fig.1 et fig.2, vous testerez ces programmes en les tapant sur la plateforme suivante : https://www.programiz.com/python-programming/online-compiler/ Bouton pour exécuter le programme Coté visualisation du résultat Coté saisie du programme Questions pour chaque programme (Fig.1 et Fig.2): a) Combien de fois s’exécutent la boucle FOR, expliquer pourquoi. Vous expliquerez également quelles sont les différentes valeurs prises par la variable i à chaque bouclage. b) Produire un algorithme correspondant au programme. 2. Pour le programme de la fig.2, ajouter une ligne de programme en ligne 7 pour afficher la valeur prises par la variable i à chaque bouclage : Prévoir ainsi un message du style : la boucle FOR s’exécute pour la … ième fois (la valeur de i sera bien évidemment positionnée à la place des 3 petits points). 3. Voici un programme dont le contenu est fourni ci- dessous : a) Copier/Coller ce contenu dans la fenêtre de saisie de la plateforme PYTHON vue au dessus. b) Si vous exécutez ce programme, vous allez devoir répondre à la question qui vous est posée côté droit de l’écran. Saisir votre réponse en minuscule exclusivement puis cliquer « ENTREE » sur votre clavier. Vous remarquerez alors que ce programme ne fonctionne pas correctement car il n’affiche pas les bons résultats attendus. Etudier son fonctionnement et apporter les corrections nécessaires pour le rendre fonctionnel. c) Réaliser alors l’algorithme de ce programme d) Que se passe -t-il si vous vous saisissez vos nom et prénom en majuscule ? Nb=0 Voy="aeiouy" nom=input("Entrez vos Nom et prénom : ") long=len(nom) for i in range(6): Nb=Nb+nom.count(Voy[i]) if Nb/2 == int(Nb/2): parité="PAIRE" else: parité="IMPAIRE" print("Mes Nom et prénom comptent ",i,"caractères en tout dont ", long, " sont des voyelles. Cette quantité voyelle est donc " , parité) e) Apporter les modifications nécessaires afin que ce programme puisse fonctionner dans toutes les circonstances de saisie (minuscule et/ou majuscule). 4. Réaliser un programme sur la plateforme SCRATCH équivalent à celui de la Fig.2 page 10 La plateforme SCRATCH est disponible en ligne sur le lien suivant : https://scratch.mit.edu/projects/editor/?tutorial=getStarted Des tutoriels de prise en main de cette plateforme sont disponibles en ligne et en voici quelques liens : https://www.youtube.com/watch?v=pdtMUgnmRa4 https://www.youtube.com/watch?v=8Sfarvw6jgg https://www.youtube.com/watch?v=qPF7vTP_VBs Pour réaliser ce programme, vous aurez besoin de créer 2 variables de type chaine de caractères afin de pouvoir afficher les messages prévus sur la Fig.2 en ligne 6 et 8. Afin de comprendre plus rapidement comment procéder, un programme nommé SPRITE1 est disponible sur UPDAGO. Testez le et servez-vous en de base pour ce travail. Procédure pour importer un programme SCRATCH : Une fois uploads/s3/ td-algo-prog.pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 01, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.4072MB