Accueil > Manip’s > Delphi > Atelier Delphi pour les Nuls > Exercices > Addition > Ex2- Correction du Programme Addition 1
Ex2- Correction du Programme Addition 1
samedi 12 avril 2008, par
Notre premier Programme ne nous donne pas tout à fait le résultat escompté
- A la question 1+1
-
- On nous répond "11"
POURQUOI ?
Parce que dans cette ligne de code
Label1.caption := Edit1.text + Edit2.text ;
Nous avons demandé au programme d’additionner 2 TEXTES (en clair une concaténation), et non pas 2 nombres
Et si je mets "Bout à Bout" 1 et 1, ça me donne bien "11"
Pour additionner 2 nombres Entiers, il faut transformer notre saisie d’un texte en nombre :
Nous utiliserons la Fonction StrToInt (string to integer) de cette façon :
label1.caption := StrToInt ( Edit1.text ) + StrToInt ( Edit2.text ) ;
J’appuie sur F9 pour compiler le Module
Oops encore un Bug
Que c’est il passé, j’ai pourtant bien additionné 2 entiers ?
J’obtiens bien un nombre, mais je tente de placer un Nombre dans un Caption qui attend un texte !!!
- Je dois donc faire la conversion inverse avec IntToStr (Integer to String) :
label1.caption :=
IntToStr(
StrToInt ( Edit1.text ) +
StrToInt ( Edit2.text ) ) ;
Attention aux 2 T (dans IntTo et bon appariement des parenthèses)
[1]
Cette fois ci ça marche :
[1] Remarquez que le code Pascal ne tient pas compte des sauts de lignes qui placés ici rendent le code beaucoup plus lisible
Messages
1. Ex2- Correction du Programme Addition 1, 13 avril 2008, 11:29, par BlueGYN
Q
> Je trouve compliqué cette transformation de string en integer et vice versa tout le temps, visual basic est bien plus simple.
Quand tu regardes Delphi en venant du Basic ou du Php, tu te dis :
Par contre quand tu débarques du langage C, tu te dis
:’-))
Basic et Php sont des langages interprétés qui utilisent un pseudo code, très proche du langage Macro
=> Ces langages sont des langages dirigés vers l’Utilisateur, et donc axés simplicité en contre partie d’une certaine limitation
L’éditeur C ou Pascal (qui est d’ailleurs commun sous Delphi) parle directement à la machine
Et le code textuel de ton programme est écrit "comme si tu parlais à la machine"
Avec ses conventions, qui sont pour le quidam "relativement très stupides"
La machine veut toujours savoir, très précisément, si elle te réserve un octet ou deux octets, ou un nombre indéfini d’octets (qu’on appelle aussi un pointeur)
A chaque fois que tu testes ton code (en appuyant sur F9), c’est ton exécutable lui même qui est entièrement reconstruit à une vitesse phénoménale qui a fait la gloire du TurboPascal
=> Ces langages sont des langages dirigés vers la Machine, et donc axés efficacité & puissance en contre partie d’une absence complète de limitation
Il faut relire la première Leçon, ou je qualifie le Pascal de
langage "Obtus et Paranoïaque"
langage "fortement typé"
Ex1- 1er Programme = ADDITION
Tu n’as pas le choix, si tu veux parler à ta machine , du dois apprendre son langage.
Pascal c’est peu la Formule 1 à portée de Tous ’la vraie formule 1 étant le langage C, dont la syntaxe et complètement inaccessible au débutant)