Les cycles occupent une place particulière dans Turbo Pascal.Ils commencent à étudier immédiatement après avoir pratiqué les compétences d'entrée-sortie d'informations à l'écran. Après tout, la plupart des tâches se résument au fait que les boucles avec un paramètre et d'autres constructions aident à faciliter l'écriture et le fonctionnement d'un certain bloc du programme.
Variétés de cycles
Au total, il existe trois types:
- avec un paramètre,
- avec une condition préalable,
- avec une post-condition.
Boucles avec un paramètre, sinon elles sont appelées For ... to ...faire ou Pour… vers le bas…. faire, répétez plusieurs fois une certaine séquence d'actions. En principe, d'autres variétés sont utilisées dans le même but, seul le nombre d'étapes est connu à l'avance dans une boucle for.
Dans les deux autres constructions (While et Repeat), le nombre d'itérations est initialement inconnu. Par conséquent, lors de l'étude du devoir, il est déjà nécessaire de comprendre quel cycle sera utilisé.
Définitions de base par sujet
Boucles avec paramètres - répétitivesitérations. Le compteur est le principal indicateur par lequel une conception donnée est effectuée. Les limites de l'intervalle indiquent les limites dans lesquelles ces ou ces itérations seront effectuées. À propos, il n'est pas du tout nécessaire que la valeur initiale soit égale à 1. L'utilisateur définit indépendamment les deux limites de l'intervalle. Le corps de la boucle est un ensemble de commandes pour lesquelles le nombre de répétitions a déjà été déterminé.
Le terme «boucles avec paramètres» signifie que dansde cette construction, la condition est vérifiée, après quoi un ensemble d'itérations est effectué. Le compteur augmente (ou diminue) et tout se répète. Le corps de la boucle sera utilisé tant que la condition est vraie.
Pour… faire… faire: algorithme de travail, syntaxe
Comme déjà mentionné, les boucles avec un paramètre sont utilisées dans les tâches qui spécifient «l'intervalle» dans lequel travailler. Ainsi, cela peut être un tableau de nombres, de jours de la semaine, de vers d'un poème, etc.
Il existe 2 types de construction: augmenter le compteur et le diminuer. La première construction s'écrira comme suit:
pour out.variable : = bordure 1 à bordure 2 faire
commencer
corps de boucle;
fin;
Ici: réf. variable déclaré par l'utilisateur au début d'un programme ou d'un bloc; bordure 1 et bordure 2 - la valeur initiale et finale de l'intervalle; dans corps cycle un certain nombre d'actions sont prescrites qui devraientexécuté par le programme. Il faut se rappeler que si le corps de la boucle ne contient qu'une seule commande, alors l'opérateur entre crochets begin… end peut être omis. Dans cette version de la conception, le compteur, à savoir <init.variable>, augmentera d'un pas égal à 1.
pour out.variable : = bordure 1 vers le bas bordure 2 faire
commencer
corps de boucle;
fin;
Ici réf. la variable diminuera par incréments de 1.
Le schéma de l'opération de boucle avec le paramètre For ... to ... do ressemblera à ceci:
- La valeur du bord supérieur de l'écart est définie, c'est-à-dire bordure 2.
- Out.variable la valeur du paramètre est attribuée bordure 1.
- La condition est vérifiée: variable de référence ≤ limite 2.
- Lors de l'obtention du résultat Vrai (Vrai) le corps de la boucle est exécuté.
- Le compteur est incrémenté de 1.
- Les éléments 3 à 5 sont exécutés exactement jusqu'à ce que la condition soit vraie: variable source> limite 2... Dès que cela se produit, la boucle est sortie et le contrôle est transféré à la commande suivant la construction donnée.
Dans For ... downto ... do, l'algorithme est similaire à celui ci-dessus, à l'exception de quelques points:
- Dans le 3ème paragraphe, la condition est vérifiée: variable de référence ≥ limite 2.
- Dans la 5ème ligne de l'algorithme, le compteur est décrémenté de 1.
- Dans le 6ème paragraphe, les commandes 3-5 seront exécutées jusqu'à ce que la condition soit satisfaite: out.variable <limite 2.
Tout le reste est le même dans les deux algorithmes de travail.
Schéma fonctionnel en boucle avec paramètre
Les boucles avec un paramètre ont la forme suivante d'un schéma de principe (bien qu'il ait déjà été présenté ci-dessus). Une organisation simplifiée de la structure est également présentée ici.
Exigences de base pour un cycle avec un paramètre
Les boucles avec des paramètres nécessitent un certain type de conditions.
- Contours du compteur et de l'écart (c'est-à-dire réf.variable, border 1 et border 2) doivent être du même type de données. S'il existe uniquement une compatibilité entre les valeurs de début et de fin du segment et la variable d'origine, le programme peut se comporter de manière incorrecte, car les limites seront converties dans le type de données du paramètre d'origine.
- Le type de données auquel les valeurs de paramètre doivent appartenir doit être un entier. Il est fortement déconseillé d'utiliser un type réel.
- Il n'est pas souhaitable de forcer la modification de la valeur du paramètre de variable initial dans le corps de la boucle. Sinon, l'utilisateur ne pourra guère retrouver les éventuelles erreurs apparues.
- Contrairement à d'autres types de boucles, For ... to ... do ou Pour… downto… do step ne peut pas être modifié à un paramètre autre que 1.
Turbo Pascal: comment sortir de la boucle
Il y a souvent des tâches dans lesquelles il y aen boucle, c'est-à-dire que la condition vérifiée est toujours vraie. La procédure de rupture aide à sortir des boucles avec précondition, postcondition, paramètre. Autrement dit, leur travail est terminé plus tôt que prévu.
Cycles avec paramètre Pascal (programmationqui suppose la vérité «éternelle» de la condition) peut être arrêtée en utilisant Continue. Ici, le travail est organisé comme suit: l'itération en cours termine son exécution avant le planning, le contrôle est transféré à la commande suivante, mais sans sortir de la boucle.
La procédure de sortie est nécessaire pourpour terminer le travail de l'un ou l'autre bloc dans le code du programme. Elle est appelée à l'intérieur d'une procédure (fonction) et au même moment, l'exécution de cette "pièce" s'arrête immédiatement. Si Exit se trouve dans le bloc principal du programme, il quitte.
La procédure Halt réduit le principe de fonctionnement au suivant: le travail du programme se termine complètement.
Exemples de tâches avec solution
Cela sera utile pour l'utilisateur après avoir étudié le sujetÉtudiez d'abord les exemples «Boucles avec un paramètre dans pascal», puis entraînez-vous à écrire le code vous-même. Des tâches simples aident le futur programmeur à apprendre la théorie dans la pratique, puis à l'appliquer avec succès. Sur le thème "Boucles avec un paramètre", des exemples de problèmes avec une solution peuvent être trouvés simples et complexes. Voici 3 problèmes dans lesquels les algorithmes de travail sont analysés et des explications et commentaires sont donnés à chaque solution.
Tache 1
Etant donné un tableau bidimensionnel de nombres naturels dans la gamme [0..199], choisis au hasard. Trouvez le nombre de tous les nombres à deux chiffres dont la somme des chiffres est un multiple de 2.
Algorithme d'actions:
- Créez un tableau 2D.
- Vérifiez chaque numéro pour le respect des conditions:
a) si 9 <X <100, divisez-le entièrement par 10 en utilisant div;
b) sélectionnez le deuxième chiffre du numéro par division via mod;
c) ajoutez les nombres en surbrillance;
d) diviser par mod le montant donné par 2;
e) si le résultat est 0, alors le compteur est incrémenté de 1.
Tâche 2
Étant donné un tableau unidimensionnel d'éléments entiers. Trouvez le nombre de nombres positifs.
Algorithme d'actions:
- Créez un tableau d'éléments entiers créés avec randomize.
- Insérez une instruction IF conditionnelle dans la boucle avec le paramètre, qui vérifiera la conformité de l'élément spécifié avec la condition: X> 0.
- Si la condition est remplie, le compteur est incrémenté de 1.
- Après le cycle, affichez la valeur de compteur résultante.
Les données entre parenthèses {} sontcommentaires. À la ligne 11, vous pouvez afficher le tableau à l'écran de deux manières: laisser un espace entre les nombres, ou mettre de côté un certain nombre de cellules pour chaque élément (dans ce cas, il y en a 5).
Sur la ligne 12, la variable compteur peut également être augmentée de deux manières: soit ajouter 1 à la valeur précédente, soit utiliser la fonction standard Inc.
Tâche 3
On vous donne une matrice carrée. Trouvez le nombre d'éléments positifs sur la diagonale principale.
Explications:
Dans un tableau de nombres, la diagonale principale s'étend decoin supérieur gauche en bas à droite. Sa particularité est le fait que les indices de ligne et de colonne sont les mêmes. Par conséquent, il suffit d'organiser 1 boucle pour se déplacer dans les lignes sans énumérer d'autres éléments.
Algorithme d'actions:
- Créez une matrice carrée.
- Définissez la variable responsable du comptage des éléments positifs sur la valeur "0".
- Créez un cycle pour créer une matrice carrée.
- Organisez une boucle pour vérifier la condition: si le nombre sur la diagonale principale> 0, alors le compteur est incrémenté de 1.
- Après la fin du cycle, affichez la valeur de la variable stockant le nombre d'éléments positifs à l'écran.
L'opposition de deux langages de programmation: C et Turbo Pascal
En règle générale, un programmeur qui se respecte saitplusieurs langues. Par exemple, il peut s'agir de C ++, Turbo Pascal, Delphi, Java, etc. L'opposition entre les deux s'est clairement exprimée dans les années 80. (C et turbo pascal). À la fin du 20e siècle, la même lutte a été observée entre C ++ et Java.
Dans l'espace virtuel parmi trois douzainesIl existe trois paires de langages de programmation les plus brillantes, dont l'opposition a étonné les plus grands esprits du cyberespace: Algol-60 et Fortran, Pascal et C, Java et C ++. Bien sûr, ces sentiments sont subjectifs, mais à un moment ou à un autre, l'un des membres du couple était le chef. Cela était dû aux demandes de l'industrie et au besoin d'un logiciel particulier. Dans les années 70. Fortran "a gouverné le monde", dans les années 80 - Turbo Pascal, dans les années 90 - C ++. Bien sûr, aucun d'entre eux "n'est mort". Au contraire, ils ont évolué vers des produits logiciels améliorés.
Lors de l'apprentissage des langages de programmation, vous remarquerez que la syntaxe est similaire dans certaines rubriques. Ainsi, les boucles avec un paramètre en C sont similaires aux constructions similaires en Pascal, à l'exception de certains points.
Fait intéressant, les développeurs de Turbo Pascal (ancienLight) a utilisé les résultats des développements des scientifiques américains, tandis que dans le Nouveau Monde, ils ont activement utilisé les résultats de la recherche de spécialistes européens. En Europe, les développeurs préconisent davantage la propreté et la compacité des langages de programmation, et les esprits américains sont plus enclins à utiliser les nouvelles tendances en matière d'écriture de code.