EL MESSOUSSI PROGRAMMATION STRUCTURÉE PLAN Analyse des besoins Utiliser les i
EL MESSOUSSI PROGRAMMATION STRUCTURÉE PLAN Analyse des besoins Utiliser les instructions de base de l'algorithme Optimiser l’algorithme. Utiliser des structures de données complexes Manipuler les fichiers de données. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Méthode de résolution de problèmes par ordinateur : conception par le développeur ; exécution par l'ordinateur ; exploitation par l'utilisateur. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Pour qu'un ordinateur fonctionne, il est nécessaire de lui dire quoi faire. Toute action réalisée par une machine a été programmée par un être humain. Un ordinateur ne décide de rien, il fait "bêtement" ce qu'il lui a été programmé. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Mais qu'est-ce que programmer ? C'est écrire une série d'actions élémentaires compréhensibles par le "cerveau" de la machine. Cette succession permettant de réaliser une action plus compliquée. Chacune de ces actions plus compliquées, étant connue de la machine, peut être utilisée comme les actions élémentaires du départ pour construire des actions encore plus complexes. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR La machine a son propre langage appelé langage machine. Il serait trop compliqué d'écrire directement les programmes en langage dit de bas niveau. Nous utilisons donc des langages dits "évolués" compréhensibles pour un initié. Ce langage sera ensuite traduit en langage machine. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Exemple : une simple addition 3+4 _start: ;tell linker entry point mov eax,'3' sub eax, '0' mov ebx, '4' sub ebx, '0' add eax, ebx add eax, '0' mov [sum], eax mov ecx,msg mov edx, len mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Exemple : une simple addition 3+4 mov ecx,sum mov edx, 1 mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db "The sum is:", 0xA,0xD len equ $ - msg segment .bss sum resb 1 NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Malgré que les langages soient de plus en plus proches du langage humain, ils ne sont pas directement lisibles. C'est pourquoi, dans ce qui suit, nous allons utiliser un pseudo-langage. Ce pseudo-langage comporte toutes les structures de base d'un langage de programmation. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Il suffira ensuite de traduire notre "pseudo" en langage évolué en fonction des possibilités de ce langage. Par exemple, le langage Java permet plus de type d'actions qu'un langage tel que le Cobol NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Un programme est donc une suite d'instructions exécutées par la machine. Ces instructions peuvent : soit s'enchaîner les unes après les autres, on parle alors de séquence d'instructions; ou bien s'exécuter dans certains cas et pas dans d'autres, on parle alors de structure alternative; ou se répéter plusieurs fois, on parle alors de structure répétitive. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR La séquence d'instructions Une instruction est une action que l'ordinateur est capable d'exécuter. Chaque langage de programmation fournit une liste des instructions qui sont implémentées et que l'on peut donc utiliser sans les réécrire en détail. Structurer un programme s'effectue que le programme soit écrit en C, en Java, en Visual Basic. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Pour illustrer notre propos, prenons l'exemple du déroulement de la journée de Morad : Une séquence d'instruction serait : NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Vous voyez que l'ordre des instructions a de l'importance : "S'habiller" puis "prendre sa douche" conduit à un résultat pas génial que nous appellerons un "bug". NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Cependant certaines instructions peuvent se dérouler dans un ordre indifférent: "prendre sa douche" et "prendre son petit déjeuner" peuvent être inversés sans préjudice pour le résultat. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Une alternative s'exprime par : si condition ….. sinon…… NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Que la condition soit réalisée (condition vraie) ou qu'elle ne le soit pas (condition fausse) les premières actions sont les mêmes et se passent dans le même ordre NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Que la condition soit réalisée (condition vraie) ou qu'elle ne le soit pas (condition fausse) les premières actions sont les mêmes et se passent dans le même ordre NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Remarquez que les actions si vrai ou si faux sont décalées par rapport aux autres instructions afin de permettre une meilleure lisibilité; on parle d'indentation. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Pour illustrer l'itérative ou répétitive (les deux termes sont équivalents), continuons notre exemple en supposant que Morad dont nous vivons la journée palpitante, soit un employé de la RADEEMAA. La routine journalière de cet employé est : NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Les deux actions "Traiter client" et "Appeler client suivant" vont se répéter tant que la condition située derrière l'instruction "Tant que" est vérifiée. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Considérons maintenant le programme complet de la journée de Morad NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Remarques : Faire travail étant une instruction assez complexe, elle a été détaillée dans la fonction Travail pour une meilleure lisibilité du programme. De même, nous avons créé une fonction guichet afin de ne pas répéter la même séquence d'instructions deux fois dans le programme. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Notre programme a donc été scindé en deux parties : le corps du programme de la ligne 1 à la ligne 15 les fonctions ou sous-programmes internes à partir de la ligne 17. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Comment cela se passe-t-il lorsque nous rencontrons un appel de fonction ? A la ligne 11 nous avons "Faire travail" qui indique à la machine qu'elle doit aller en ligne 17 qui correspond au début de la fonction appelée. La procédure fait les actions des lignes 18, 19 et 20. Elle trouve à nouveau un appel de fonction, cette fois-ci "Faire guichet" donc elle se débranche vers la ligne 29 et exécute les instructions jusqu'à la ligne 36 où se trouve "Fin fonction" se qui ramène la machine à l'instruction se situant juste après " Faire guichet" c'est à dire ligne 22. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR puis les actions des lignes 20, 21, 22 vont se répéter n fois jusqu'à l'heure de déjeuner. Ensuite, la ligne 23 est exécutée et à nouveau il y aura répétition de faire guichet (avec débranchement à la ligne 29 et retour à la ligne 26. Lorsque nous arrivons sur la ligne 27 "Fin fonction", nous retournons à la ligne 12. Dans notre pseudo-langage, nous n'aurons que la liste minimum d'instructions, nécessaire et suffisante pour les programmes que nous aurons à écrire. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Récapitulons : Un algorithme représente l’enchaînement des actions à réaliser nécessaires à la résolution d’un problème. Un programme contient: Une description des données à manipuler; Une suite d’actions à mener sur ces données. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Les Ordinogrammes : Une approche intéressante en matière de représentation Permet, dans un format graphique, de proposer une vue des opérations exécutées par l’ordinateur. NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Les Ordinogrammes : Décomposer un programme en différents éléments moins complexes. Représenter par un schéma le cheminement à imposer au micro-ordinateur NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Indique le début, la fin ou l’interruption de la procédure. Indique l’entrée de données ou la sortie de résultats Indique un traitement de données Symbolise une question, un test. Direction des flux NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Les Ordinogrammes : Etablissez un ordinogramme permettant de calculer la division de deux nombres donnés par l’utilisateur Exemple : Entrez la dividende : 6 Entrez le diviseur : 3 6 / 3 = 2 NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR DEBUT Entrer: x Entrer: y Ecrire z FIN z = x/y NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR DEBUT Entrer: x Entrer: y y = 0 oui non « Erreur » FIN Ecrire z z = x/y NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR Les Ordinogrammes : Etablissez un ordinogramme permettant à un joueur de trouver un chiffre de 0 à 9 en interrogeant l’utilisateur. Ce dernier devra répondre « EXACT » en cas de réponse correcte et « TROP GRAND » ou « TROP PETIT » suivant le cas. Le chiffre à trouver est introduit par un autre joueur au début du programme. Exemple : Entrez x : 6 Entrez y : 7 Trop Grand Entrez y : 3 Trop petit Entrez y : 6 Exacte NOTION DE RÉSOLUTION DE PROBLÈMES PAR ORDINATEUR DEBUT Entrer: x Entrer: y y = x oui non « exact » FIN y > x « trop petit » « trop grand » oui non NOTION uploads/Management/ algorithmiques.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/WsV9OjBcSoG9UE069En0J4fT53rr5zoSttXeWadNzgvQt1Qavpsh510Jzx7xL7dtTUON14FWcX4g0QKb7jtiTJxg.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/QYISkmvZGorpdGhbI2SwzDZmMV9mTNKO4iDlE4tScACbOVsz5YxAUeImUeUtEzMenipDhdFakRdIId7UNujVASwT.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/FTObdwGJcL4L47tX0qJevmjxKEOculkRpTm8nJAtcRROHjLQNvZoXcAJo6aROUZaykiF89tDrYizaD9LNjAJHF0y.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/NMEUUuLaRrDRcfQ4izstuWa6RLa2wsV0RfqNaVmupTDg6INy1XeQhtEGEb0nrjsk8JkZmEejAae2pJbOGqCJaxFX.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/aF1bIpztkgYVQW0Q87Tnj9VDQzfTVEhXiTwC22NlLppw6jL3HFqZ1JzbWBXmeDVWLSFbZ4i58xE1d9r8GjwqGPae.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/a4D0aeyXps9pCQnNQdfWGctnU8fe3a9fYABnun39V6fl5lfOOlAuC4iAf4eUIYIc0BLl7FgG8gU6mwL338CZ0ZOn.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ixAXHnGIbLXj3PtnsRK1JMHCWsoex5apBM91ivDmtdxDcOacm85OT4Oq8BZMCeWbRjCelHJFZngHR1crpC5ufuhb.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/4ct1oo2045BvGAQi2W3pTZ2Nv0jPm5bIkBBcxDMkE96hiZSSS7LKeisuhRK3EqAT10ZTBOYXLrbll4UbT6Iowh4W.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/VvvYUJ78wxVYllofviy8x5rVaPL3BtXC4SEq2pzaYdTP23Q7eLygBdZekxWTEzzsiMWR3xnKXtapOvtMFX2xcErE.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/7KlPe0oOKq6fuSmRIBmrpMiaUWo52UcFiD2cUB1hibbwHnxrZk2GGg7agWehwa5FbJNNGst0RiuaIXIfAYppLpe7.png)
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 18, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.9457MB