nsi:premiere:structures_algo
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:premiere:structures_algo [2021/06/17 22:07] – goupillwiki | nsi:premiere:structures_algo [2022/08/28 22:30] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Structures de contrôle utilisées dans les algorithmes ====== | ====== Structures de contrôle utilisées dans les algorithmes ====== | ||
| + | |||
| + | {{ .: | ||
| Dans un algorithme, les lignes sont lues l'une après l' | Dans un algorithme, les lignes sont lues l'une après l' | ||
| Ligne 9: | Ligne 11: | ||
| On pourrait imaginer diverses structures mais on choisit de se limiter à certaines. | On pourrait imaginer diverses structures mais on choisit de se limiter à certaines. | ||
| - | ==== Structure de test ==== | + | ===== Structure de test ===== |
| La structure de base est le '' | La structure de base est le '' | ||
| Ligne 15: | Ligne 17: | ||
| Il s'agit d' | Il s'agit d' | ||
| - | == SI seul == | + | ==== SI seul ==== |
| <code lang-none linenums> | <code lang-none linenums> | ||
| Ligne 28: | Ligne 30: | ||
| * mais si elle est fausse, on passe directement à la ligne 4 | * mais si elle est fausse, on passe directement à la ligne 4 | ||
| - | == SI ... SINON == | + | ==== SI ... SINON ==== |
| <code lang-none linenums> | <code lang-none linenums> | ||
| Ligne 35: | Ligne 37: | ||
| SINON | SINON | ||
| lignes à exécuter quand la condition n'est pas vérifiée | lignes à exécuter quand la condition n'est pas vérifiée | ||
| - | FIN SI | + | FIN |
| suite... | suite... | ||
| </ | </ | ||
| * ligne 1, la condition est examinée, | * ligne 1, la condition est examinée, | ||
| - | * si elle est vrai, on exécute le contenu de la partie SI (ligne | + | * si elle est vrai, on exécute le contenu de la partie SI (ligne |
| * si elle est fausse, on saute la partie SI et on exécute directement la partie SINON (ligne 4) | * si elle est fausse, on saute la partie SI et on exécute directement la partie SINON (ligne 4) | ||
| * puis on passe à la suite : ligne 6 | * puis on passe à la suite : ligne 6 | ||
| - | == Renvoi == | + | ===== Renvoi |
| - | On fournit des données à un algorithmes | + | On fournit des données à un algorithme |
| Souvent, on attend de l' | Souvent, on attend de l' | ||
| Ligne 58: | Ligne 60: | ||
| Après '' | Après '' | ||
| - | == Répéter | + | <WRAP tip>Le mot utilisé dans les langages est '' |
| + | |||
| + | ===== Répétition / boucle ===== | ||
| Il s'agit d'une boucle dans le sens où quelques lignes de l' | Il s'agit d'une boucle dans le sens où quelques lignes de l' | ||
| - | > Quand on connaît d' | + | ==== boucles bornées ==== |
| + | |||
| + | Quand on connaît d' | ||
| + | |||
| + | === RÉPÉTER n FOIS === | ||
| <code lang-none linenums> | <code lang-none linenums> | ||
| Ligne 69: | Ligne 77: | ||
| dans ce cas on connaît d' | dans ce cas on connaît d' | ||
| cette structure n' | cette structure n' | ||
| - | FIN RÉPÉTER | + | FIN |
| + | suite... | ||
| </ | </ | ||
| + | |||
| + | Compte le nombre de répétition faites. En ligne 1, s'il reste des répétitions à faire, exécute les lignes de la boucle (2 à 4). En ligne 5 on retourne directement en ligne 1 pour voir s'il reste des répétitions à faire. S'il n'y en a plus, on passe en ligne 6 pour la suite. | ||
| + | |||
| + | === POUR === | ||
| + | |||
| + | Ajoute un compteur qui est mis à jour à chaque répétition. Le compteur peut être utilisé dans la boucle ou mais ce n'est pas obligé. | ||
| + | |||
| + | <code lang-none linenums> | ||
| + | POUR compteur ALLANT DE début À fin FAIRE | ||
| + | lignes répétées | ||
| + | lors de la première répétition, | ||
| + | à chaque répétition, | ||
| + | la valeur fin est incluse et correspond à la dernière répétition | ||
| + | n' | ||
| + | FIN | ||
| + | </ | ||
| + | |||
| + | <WRAP tip> | ||
| + | * J' | ||
| + | * C'est la boucle POUR - FOR la plus traditionnelle en programmation. Pourtant ce n'est pas cette forme qui a été retenue en Python. | ||
| + | </ | ||
| + | |||
| + | === POUR CHAQUE === | ||
| + | |||
| + | <code lang-none linenums> | ||
| + | POUR CHAQUE élément DANS ensemble FAIRE | ||
| + | lignes répétées | ||
| + | la valeur de élément énumères les valeurs contenues dans ensemble | ||
| + | ensemble est donc une sorte de collection d' | ||
| + | selon le cas, on pourra compter ou pas sur un certain ordre d' | ||
| + | FIN | ||
| + | </ | ||
| + | |||
| + | ==== boucles non bornées ==== | ||
| + | |||
| + | Quand on ne le connaît pas et que le nombre de répétition est liée à une condition, on parle de **boucle non bornée**. | ||
| + | |||
| + | === TANT QUE === | ||
| + | |||
| + | Deux variantes, soit la condition est examinée au début de la boucle : | ||
| <code lang-none linenums> | <code lang-none linenums> | ||
| - | RÉPÉTER | + | TANT QUE condition |
| lignes qui sont répétées | lignes qui sont répétées | ||
| dans ce cas on ne connaît pas d' | dans ce cas on ne connaît pas d' | ||
| Ligne 79: | Ligne 128: | ||
| si elle est fausse, on saute en ligne 8 | si elle est fausse, on saute en ligne 8 | ||
| en arrivant en ligne 7 on saute en ligne 1 pour réexaminer la condition | en arrivant en ligne 7 on saute en ligne 1 pour réexaminer la condition | ||
| - | FIN RÉPÉTER | + | FIN |
| suite... | suite... | ||
| </ | </ | ||
| + | |||
| + | Soit la condition est examinée après la boucle. | ||
| <code lang-none linenums> | <code lang-none linenums> | ||
| Ligne 91: | Ligne 142: | ||
| suite... | suite... | ||
| </ | </ | ||
| + | |||
| + | <WRAP tip>Les boucles '' | ||
| + | |||
| + | === JUSQU' | ||
| + | |||
| + | Très proche des précédents. | ||
| <code lang-none linenums> | <code lang-none linenums> | ||
| Ligne 98: | Ligne 155: | ||
| est vraie que l'on arrête la boucle. | est vraie que l'on arrête la boucle. | ||
| n' | n' | ||
| - | FIN RÉPÉTER | + | FIN |
| suite... | suite... | ||
| </ | </ | ||
| - | > **Important :** Ces notations | + | <WRAP tip> |
| + | ===== Pas de chevauchement ===== | ||
| - | == Pour == | + | J'ai choisi d'utiliser |
| - | + | Exemple : | |
| - | Il s'agit là encore de boucles répétitives, | + | |
| - | + | ||
| - | > Les boucles '' | + | |
| <code lang-none linenums> | <code lang-none linenums> | ||
| - | POUR compteur ALLANT DE début | + | i = 0 |
| - | | + | RÉPÉTER JUSQU'À i = 10 |
| - | | + | |
| - | à chaque répétition, | + | |
| - | | + | |
| - | n' | + | |
| - | FIN POUR | + | FIN |
| </ | </ | ||
| - | <code lang-none linenums> | + | Dans ce cas, le '' |
| - | POUR CHAQUE élément DE ensemble | + | |
| - | lignes répétées | + | Vous pouvez comparer avec de parenthèses : $(2 - (3 + 5)) \times 2$. Quand on rencontre '' |
| - | | + | |
| - | ensemble | + | |
| - | selon le cas, on pourra compter ou pas sur un certain ordre d'énumération des éléments. | + | Les marges à gauche -- que l'on appelle des **indentations** -- permettent de faire le lien facilement. |
| - | FIN POUR | + | |
| - | </ | + | |
| - | === En Python === | + | ===== En Python |
| Comme Python est notre langage principal, il est utile de savoir que les structures disponibles seront | Comme Python est notre langage principal, il est utile de savoir que les structures disponibles seront | ||
| Ligne 136: | Ligne 189: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| * '' | * '' | ||
nsi/premiere/structures_algo.1623960443.txt.gz · Dernière modification : de goupillwiki
