Exponentiation dans le langage de programmation Pascal: trucs et astuces
Il y a un grand nombre de languesprogrammation, et Pascal prend parmi eux pas la dernière place. Et si vous envisagez de vous engager sérieusement dans une programmation future, vous devriez commencer à vous familiariser avec ce monde en étudiant ce langage, car il est plus simple en termes de perception et, surtout, le programme est absolument gratuit.
Dans cet article, nous aborderons un problème si difficile,comme exponentiation. Pascal, hélas, ne nous fournit pas d'opérateur distinct pour résoudre ce problème, contrairement à d'autres langages de programmation. Il faut donc ici, comme on dit, se débarrasser des moyens improvisés, recourir à des cycles et à des opérateurs mathématiques - c'est ici que nous pouvons donner libre cours à notre imagination. Considérons plusieurs méthodes pour résoudre ce problème.
Donnons-nous la tâche la plus simple, où un certain nombre doit être porté au degré positif. Supposons que le nombre un nous soulevons à 4 degrés. Ici, nous effectuons une opération mathématique simple: b: = a * a * a * a.
Les exemples précédents nous permettent de construire des nombresuniquement dans les puissances entières positives. Mais il y a des problèmes où il est nécessaire d'élever le nombre à une puissance fractionnaire. Lors de l'écriture d'un tel programme, nous avons besoin de connaître les propriétés des logarithmes. En particulier: unb= eb dans un. A partir de là, le fragment nécessaire de notre programme aura la forme suivante: r: = exp (b * ln (a)). Mais ici nous sommes confrontés au fait que celal'opérateur ne travaille pas avec des nombres zéro et négatifs. Pour que notre programme exécute une exponentiation, vous devez spécifier la condition: Si b = 0 Alors r: = 1 Sinon r: = exp (b * ln (a)). Mais à quoi ressemble l’exponentiation pour un nombre négatif?
Pascal nous fait réfléchir à nouveau. Ici, nous devons effectuer cette opération avec le module de notre numéro et prendre les données avec un résultat négatif. Ensuite, vérifiez l'uniformité du degré: si notre degré était pair, alors nous prenons le module du résultat. Dans ce cas, notre programme ressemblera à: r: = (- 1) * exp (b * ln (abs (a))); Si Round (b / 2) = b / 2 Alors r: = abs (r). La condition vérifie ici si le diplôme est pair ou non.
En conséquence, nous arrivons à un modèle plus universel.notre programme qui fonctionnera avec n'importe quel nombre. C'est-à-dire que nous devons maintenant intégrer tout ce qui précède en un. Dans l'image à droite, vous pouvez voir le texte complet de notre programme terminé. Faites attention au type de données spécifié. Contrairement au premier programme, il est utilisé ici. Réelparce que nous travaillons déjà avec des nombres, pas seulement des entiers. Nous avons donc pleinement réfléchi à l’augmentation du nombre réel. Il ne reste plus qu'à examiner une question.