Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:hypathie:tutos:algo-definition-et-langage [06/12/2014 07:23] Hypathie [Quatre sortes d'objets] |
utilisateurs:hypathie:tutos:algo-definition-et-langage [13/12/2014 16:27] (Version actuelle) Hypathie [Les actions] |
||
---|---|---|---|
Ligne 72: | Ligne 72: | ||
Comparons une fonction et une procédure qui toute deux calculent le cube d'un nombre ; puis comment un programme utilise l'une ou l'autre. | Comparons une fonction et une procédure qui toute deux calculent le cube d'un nombre ; puis comment un programme utilise l'une ou l'autre. | ||
+ | |||
+ | Voir [[utilisateurs:hypathie:tutos:algo-definition-et-langage?&#structure-generale-d-un-algorithme|la structure générale d'un algorithme]] | ||
+ | |||
===Fonction cube === | ===Fonction cube === | ||
+ | * Explication : | ||
+ | On imagine un tableau où on place 2, le nombre dont calcule la puissance de 3 ;\\ | ||
+ | L'indice maximal de ce tableau est la puissance à laquelle on veut élever le nombre 2. | ||
+ | <code> | ||
+ | Pour i de 1 à 3 on fait : | ||
+ | |||
+ | | 2 | 2 | 2 | | ||
+ | | | | | ||
+ | 1 * 2 | | | ||
+ | = 2 | | | ||
+ | 2 * 2 | | ||
+ | = 4 | | ||
+ | 4 * 2 | ||
+ | = 8 | ||
+ | |||
+ | </code> | ||
* Déclaration et mise en place de la fonction | * Déclaration et mise en place de la fonction | ||
Ligne 97: | Ligne 116: | ||
y := 1 | y := 1 | ||
| | ||
- | Tantque i <= puissance FAIRE | + | Tantque (i := puissance) FAIRE |
| | ||
y := y * x | y := y * x | ||
Ligne 127: | Ligne 146: | ||
| | ||
lire(nombre) | lire(nombre) | ||
- | écrire ('le résultat est : ', fctcube(nombre)) | + | écrire ('le résultat est : ', fctcube(nombre)) // Appel de la fonction, elle rend la résultat qu'on affiche avec écrire |
// utilisation du résultat | // utilisation du résultat | ||
Ligne 155: | Ligne 174: | ||
j := 1 | j := 1 | ||
- | Tantque i <= puissance FAIRE | + | Tantque (i := puissance) FAIRE |
y := y * x | y := y * x | ||
Ligne 197: | Ligne 216: | ||
- | Voir aussi : [[utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure]] | + | Voir ci-dessous la structure en sous programme d'un algorithme complexe: [[utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure]] |
+ | Voir aussi : d'autres exemples simples d'algorithme de fonctions et de procédures : [[http://www.est-usmba.ac.ma/ALGORITHME/co/module_ALGORITHME_40.html]] | ||
=====Les Types===== | =====Les Types===== | ||
Il y a quatre types prédéfinis : entiers ; réels ; booléens ; caractères.\\ | Il y a quatre types prédéfinis : entiers ; réels ; booléens ; caractères.\\ | ||
Les tableaux sont des types de variables créés.\\ | Les tableaux sont des types de variables créés.\\ | ||
- | Voir ci-dessous : [[utilisateurs:hypathie:tutos:algo-definition-et-langage#les-types1]]. | ||
- | |||
- | suite : [[http://www.est-usmba.ac.ma/ALGORITHME/co/module_ALGORITHME_40.html]] | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Les Types ===== | ||
- | Trois types pré-défini ; les tableaux sont des types créés. | ||
====Les entiers ==== | ====Les entiers ==== | ||
Ligne 341: | Ligne 352: | ||
<note tip> | <note tip> | ||
- | Le **ET** et le **OU** algorithmiques ne sont pas le ET et le OU de la logique de bool. | + | **Le ET et le OU algorithmiques ne sont pas le ET et le OU de la logique de bool.** |
- | En algo, on comprends **ET** comme un **ET-alors** et le **OU** comme **OU-sinon**. | + | * __En algo, on comprends **ET** comme un **ET-alors**__ : |
^ a ^ b ^ condition a ET b ^ | ^ a ^ b ^ condition a ET b ^ | ||
| FAUX| (non évalué)| FAUSSE (pas d'exécution du code) | | | FAUX| (non évalué)| FAUSSE (pas d'exécution du code) | | ||
- | | VRAI | alors b évalué | expression = b qui doit être calculable | | + | | VRAI | alors b évalué\\ b = VRAI\\ b = FAUX | expression = b qui doit être calculable\\ a ET B = VRAI (condition exécutée)\\ a ET b = FAUX (condition non exécutée)| |
+ | |||
+ | => Pour résumer, on tient compte de **b** seulement si a est vrai,\\ et la condition est exécutée si **a et b** sont vrais. | ||
+ | |||
+ | * __On comprends le **OU** comme **OU-sinon**__ : | ||
^ a ^ b ^ condition a OU b ^ | ^ a ^ b ^ condition a OU b ^ | ||
| VRAI| (non évalué)| VRAI | | | VRAI| (non évalué)| VRAI | | ||
- | | FAUX | (sinon) b évalué | expression = b qui doit être calculable | | + | | FAUX | (sinon) b évalué\\ b = FAUX\\ b = VRAI | expression = b qui doit être calculable\\ a OU b = FAUX (condition non exécutée)\\ a OU b = VRAI (condition exécutée) | |
+ | |||
+ | => Pour résumer, **b** est pris en compte seulement si a est FAUX,\\ et la condition est exécutée si **b** est vrai. | ||
</note> | </note> | ||
Ligne 569: | Ligne 586: | ||
variable i : entier | variable i : entier | ||
i := 1 | i := 1 | ||
- | TantQue ( i < 3 ) FAIRE // La boucle s'arrêtera quand i sera > à 3. | + | TantQue ( i < 3 ) FAIRE // La boucle s'arrêtera quand i sera >= à 3. |
// On met dans le commentaire la condition contraire | // On met dans le commentaire la condition contraire | ||
// c'est-à-dire la condition de terminaison. | // c'est-à-dire la condition de terminaison. | ||
Ligne 604: | Ligne 621: | ||
<code> | <code> | ||
variable i : entier | variable i : entier | ||
- | i := 5 | + | i := 1 |
Répéter | Répéter | ||
i := i + 1 | i := i + 1 | ||
écrire('coucou') | écrire('coucou') | ||
- | Jusqu'à ( i >= 3 ) // C'est une condition d'arrêt. | + | Jusqu'à ( i >= 3 ) // être égal à 3 est une condition d'arrêt. |
écrire('la variable i est égale à ', i) | écrire('la variable i est égale à ', i) | ||
</code> | </code> | ||
<code> | <code> | ||
coucou | coucou | ||
- | la variable i est égale à 6 | + | coucou |
+ | la variable i est égale à 3 | ||
</code> | </code> | ||
> ATTENTION la boucle s'effectue toujours une fois | > ATTENTION la boucle s'effectue toujours une fois | ||
- | <note> | + | <note tip> |
- | Si on avait mis i := 1 avant l'exécution du répéter, le retour serait : | + | Dans le schéma "Tant que" la condition de poursuite est avant le traitement, dans le schéma "Répéter", la condition de poursuite est après.\\ |
+ | |||
+ | La boucle répéter est donc exécutée au moins une fois.\\ | ||
+ | |||
+ | Avec une boucle répéter, on exécute l'instruction " tant que la condition est fausse. " | ||
<code> | <code> | ||
- | coucou | + | répéter |
- | coucou | + | Afficher "Saisir un nombre strictement positif " |
- | la variable i est égale à 3 | + | Saisir i |
+ | Si i (<= 0) alors | ||
+ | écrire("J'ai dit STRICTEMENT POSITIF !") | ||
+ | Sinon | ||
+ | écrire("Bravo") | ||
+ | Finsi | ||
+ | jusqu'à i > 0 | ||
</code> | </code> | ||
+ | |||
+ | => Si on entre -2 : on aura "J'ai dit STRICTEMENT POSITIF !" | ||
</note> | </note> | ||
Ligne 727: | Ligne 758: | ||
</code> | </code> | ||
- | ====Exemple de rapport hiérarchique entre une procédure et un algorithme ==== | + | ====Exemple simple d'un algorithme appelant un sous-algorithme ==== |
//Donnez l'algorithme qui affiche un carré d'étoile à l'écran.// | //Donnez l'algorithme qui affiche un carré d'étoile à l'écran.// | ||
Ligne 745: | Ligne 776: | ||
// ligne de 15 étoiles. | // ligne de 15 étoiles. | ||
DébutAlgo | DébutAlgo | ||
- | Pour i DE 1 à 15 FAIRE | + | Pour j DE 1 à 15 FAIRE |
- | // appel de la procédure --------------->| //Procédure Etoile | + | // appel de la procédure --------------->| Etoile(entrée i : entier , sortie i :entier) |
Etoile( ) | // Procédure qui affiche une ligne d'étoile | Etoile( ) | // Procédure qui affiche une ligne d'étoile | ||
| // Et qui va à la ligneFinProc | | // Et qui va à la ligneFinProc | ||
- | FinPour | | + | FinPour | |
- | FinAlgo | Variables i :entier | + | FinAlgo | |
- | | | + | | Variables i :entier |
| DébutProc | | DébutProc | ||
| Pour i DE 1 à 15 | | Pour i DE 1 à 15 |