I. Introduction Delphi est un environnement de développement de type RAD (Rapid
I. Introduction Delphi est un environnement de développement de type RAD (Rapid Application Develop- ment) basé sur le langage Pascal. Il permet de réaliser rapidement et simplement des applica- tions Windows. Cette rapidité et cette simplicité de développement sont dues à une conception visuelle de l’application. Delphi propose un ensemble très complet de composants visuels prêts à l’emploi incluant la quasi-totalité des composants Windows (boutons, boîtes de dialogue, me- nus, barres d’outils…) ainsi que des experts permettant de créer facilement divers types d’applications et de librairies. Pour maîtriser le développement d’une application sous Delphi, il est indispensable d’aborder les trois sujets suivants : le langage Pascal et la programmation orientée objet ; l’Environnement de Développement Intégré (EDI) de Delphi ; les objets de Delphi et la hiérarchie de classe de sa bibliothèque. Nous complèterons cette approche par la connexion aux bases de données avec Delphi. NB : Ce support de cours ne se veut nullement exhaustif. Ce n’est qu’une référence de base. Le lecteur est encouragé à compléter sa lecture avec les références citées à la fin du docu- ment… et à s’entraîner à programmer sous Delphi ! D’autre part, ce support ne traite que de la version 3 de Delphi. II. Le langage Pascal 1. Éléments du langage a) Identificateurs et instructions Un identificateur est un nom permettant au compilateur d’identifier un objet donné. Les noms de variables, par exemple, sont des identificateurs. Un identificateur doit commencer par une lettre. Les caractères suivants peuvent être des lettres, des chiffres ou le caractère _. Majuscu- les et minuscules ne sont pas différenciées. Seuls les 63 premiers caractères d’un identifica- teur sont pris en considération par le compilateur. Identificateur valide : Ma_variable01 Identificateur invalide : 9variable Outre les variables, constantes, etc., un programme Pascal contient des mots réservés que l’utilisateur ne peut pas employer. Ce groupe d’identificateurs particuliers correspond aux composants du langage Pascal. And Else In Or To Asm End Inherited Packed Try Array Except Inline Procedure Type Begin Exports Interface Program Unit Case File Label Record Until Const Finally Library Repeat Uses Constructor For Mod Set Var Destructor Function Nil Shl While Div Goto* Not Shr With Do If Object String Xor Downto Implementation Of Then Liste des mots réservés de Pascal b) Opérateurs Affectation Ex. resultat:=100; Opérateurs arithmétiques Multiplication : * Division entière : div * Ce n’est pas parce que le goto existe en Pascal qu’il faut l’utiliser ! Séquence souvenir Le langage de programmation Pascal a été conçu en 1968 par Niklaus Wirth. Division : / Modulo : mod Addition : + Soustraction : - Opérateurs logiques Et logique : and Ou logique : or Ou exclusif : xor Négation : not Opérateurs de relation Égal : = Différent : <> Supérieur/Supérieur ou égal : > >= Inférieur/Inférieur ou égal : < <= Appartenance à un ensemble : in c) Commentaires (* … *) ou { … } NB : Il est possible d’imbriquer ces deux types de commentaires. 2. Types de données a) Types prédéfinis Types entiers Domaine Byte 0..255 Shortint -128..127 Integer -32768..32767 Word 0..65535 Longint -2147483648..2147483647 Types réels Domaine Single 1,5.10-45..3,4.1038 Real 2,9.10-39..1,7.1038 Double 5,0.10-324..1,7.10308 Extended 3,4.10-4951..1,1.104932 Type booléen Domaine Boolean True | False Types caractères Domaine Char Caractère alphanumérique String[n] Chaîne de n caractères (n = 255 au maximum) String Chaîne de 255 caractères Types tableaux Array[imin..imax, …] of <type> b) Types personnalisés La déclaration d’un type utilisateur s’effectue dans une clause type. Énumérations Ex. Type jour = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche); Intervalles Ex. Type chiffre = 0..9; jour_ouvrable = lundi..vendredi; Ensembles Ex. Type des_entiers = set of integer; {déclaration de la variable ens de type des_entiers} ens:=[1,2,3]; ens:=[]; {ensemble vide} Opérations ensemblistes : + union * intersection - différence Tableaux Ex. Type tab_reels = array[1..100] of real; {tableau de 100 réels} matrice = array[1..4,1..4] of integer; {matrice 4x4} {Déclaration des variables t de type tab_reels et de m de type matrice} t[1]:=1.5; m[1,3]:=10; Enregistrements Ex. Type personne = record nom: string; prenom: string; age: byte; end; {Déclaration de la variable p de type Personne} p.nom:=’Darmont’; with p do begin prenom: =’Jér ôme’; age=:27; end; 3. Squelette d’un programme Pascal a) Squelette Program Nom_du_programme; Uses {unités} Const {Déclarat ion de constante s} Type {Déclarat ion de types personnal isés} Var {Déclarat ion de variables } {Procédures et fonctions} Begin {Bloc principal du programme} End. b) Notion de bloc Un bloc est une portion de code délimitée par le couple d’instructions begin..end. c) Déclaration des constantes Ex. Const PI=3.1416; NOM=’Université Lyon 2’; d) Déclaration des variables Ex. numero, i: integer; {deux variables de même type} tab: array[1..10] of real; phrase: string; {idem avec des types personnalisés} jour: jour_ouvrable; ens: des_entiers; m: matrice; 4. Entrées/sorties a) Lecture au clavier Ex. Readln (une_variable); b) Écriture à l’écran Ex. Write (‘Coucou ! ’); Writeln (‘La valeur de la variable est : ’, une_variable); NB : Ces instructions sont définies dans l’unité Crt de Pascal, qu’il faut appeler en début de programme par la commande Uses Crt ;. 5. Structures de contrôle a) Branchements conditionnels If…then…else If {condition} then {Instruction si condition vérifiée} Else {Instruction si condition non vérifiée}; NB : La partie else est optionnelle. Ex. If a>=0 then writeln(‘A est positif’); If ville=’Lyon’ then bool_lyon:=true Else bool_lyon:=false; If a>b then If a<c then writeln(‘B < A < C’) Else writeln(‘A > B’); Case…of Case {variable} of {valeur1}: {Instruction}; {valeur2}: {Instruction}; … else {Instruction par défaut}; end ; NB : La partie else est optionnelle. Ex. Case a of 0: writeln(‘zéro’); 6: writeln(‘six’); 9: writeln(‘neuf’); end ; Case ch of ‘A’..’Z’: writeln(‘Majuscule’); ‘a’..’z’: writeln(‘Minuscule’); ‘0’..’9’: writeln(‘Chiffre’); else writeln(‘Autre caractère’); end; b) Boucles While…do Exécute des instructions tant qu’une condition est vérifiée. While {condition} do {instructions} Ex. i:=1; While i<=10 do Begin Write(i,’ ‘); i:=i+1; End; Writeln(‘*’ ); Repeat…until Exécute des instructions jusqu’à ce qu’une condition soit vérifiée. Repeat {instructions} until {condition}; Ex. i:=1; Repeat Write(i,’ ‘); i:=i+1; Until i=10; Writeln(‘*’ ); NB : La boucle Repeat…until ne nécessite pas de bloc begin…end pour exécuter plusieurs instructions. For…to|downto…do Exécute des instructions un nombre fini de fois suivant un ordre croissant ou décroissant. For {variable}:={valeur min} to {valeur max} do {instructions} For {variable}:={valeur max} downto {valeur min} do {instructions} Ex. For i:=1 to 10 do Write(i,’ ‘); Writeln(‘*’); Choix d’une boucle Nombre d’itérations connu Au moins une exécution Test avant exécution For Repeat While 6. Procédures et fonctions Les procédures et les fonctions permettent de diviser un programme en unités plus petites (des sous-programmes) pour mieux le structurer. La seule différence entre procédure et fonction est que cette dernière renvoie une valeur au programme ou au sous-programme appelant. a) Squelette de déclaration Procedure NomP({paramètres}); Type {Déclaration de types locaux} Const {Déclaration de constantes locales} Var {Déclaration de variables locales} {procédures | fonctions locales} Begin {Corps de la procédure} End; Function NomF({paramètres}): {type}; Type {Déclaration de types locaux} Const {Déclaration de constantes locales} Var {Déclaration de variables locales} {procédures | fonctions locales} Begin {Corps de la fonction} NomF:={valeur de retour}; End; b) Exemples de sous-programmes Procedure PN_P(nombre: real); Const N=25; Var i: integer; res: real; Begin res:=1; For i:=1 to N do res:=res*nombre; Writeln(res); End; Function PN_F(nombre: real):real; Const N=25; Var i: integer; res: real; Begin res:=1; For i:=1 to N do res:=res*nombre; PN_F:=res; End; c) Mode de passage des paramètres Le passage de paramètres fournit des valeurs à un sous-programme lors de son appel (cf. exemples ci-dessus). Ce passage de paramètres peut s’effectuer : en faisant une copie des valeurs à passer (passage par valeur), ce qui permet de modi- fier les copies locales sans influencer la valeur initiale (paramètres en entrée) ; en fournissant l’adresse des valeurs (passage par adresse ou par référence), ce qui permet de modifier la valeur initiale (paramètres en sortie ou en entrée/sortie). Dans les exemples ci-dessus, les paramètres sont passés par valeur. Exemple de passage par adresse Procedure PN_P2(var nombre: real); Const N=25; Var i: integer; res: real; Begin res:=1; For i:=1 to N do res:=res*nombre; nombre:=res; End; NB : Un appel de procédure du type PN_P2(n); aura le même effet qu’un appel de fonction du type n:=PN_F(n);. d) Visibilité des variables et des sous-programmes Une variable globale est utilisable par tous les sous-programmes du programme. Une varia- ble locale n’est utilisable que dans le sous-programme où elle est déclarée. Les procédures et les fonctions sont soumises aux mêmes règles que les variables. 7. Les unités Une unité est un fichier séparé pouvant contenir des constantes, des types, des variables et des sous-programmes disponibles pour la construction d’autres applications. L’utilisation des uni- tés permet de partager des données et des sous-programmes entre plusieurs applications. a) Squelette d’une unité Unit Nom_unite; Interface {Déclarations publiques} Implementation {Déclarations privées} {Corps des procédures et des fonctions} Initialization {Code d’initialisation} End. b) Visibilité d’une unité En-tête C’est le nom de l’unité (8 caractères maxi). Il figure dans la partie uses d’un programme ou d’une uploads/Litterature/ delphi-first-approche.pdf
Documents similaires










-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 27, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.4822MB