Accueil        Lexique        Unités        Algorithmes        TUTORIEL        Groupe Facebook   

Sommaire Tutoriel

Convertir des types de variable à la volée

Ce chapitre est réservés aux initiés des langages de programmation.

Comme nous l'avons entrevu dans les chapitres précédents, il peut être nécessaire d'effectuer une conversion de type d'une variable. Les fonctions que nous voyons ici sont l'équivalent des Cast en langage C, sauf qu'en Pascal, les conversions ne peuvent se faire qu'au sein d'une même nature (Réel ou entier) de variables.

  1. Exemples de code
  2. Tableau de Conversions d'entiers
  3. Conversions des réels
  4. Conversions des chaînes de caractère
  5. Notions vues dans ce cours

  1. Exemples de code

    Programme

    Soit le programme suivant :
    Program conversion1;
    var
    	b1, b2 : byte;
    	l1,l2,l3 : LongInt;
    Begin
    	l1 := 14258;
    	l2 := 58405;
    	l3 := l1*l2;
    	b1 := byte(L3);
    	writeln('Résultat de ',l1,' par ',l2,' = ',L3);
    	writeln('Résultat converti en byte de ',l1,' par ',l2,' = ',B1);
    	writeln('Résultat converti en byte de ',l1,' par ',l2,' = ',L3 MOD 256);
    	writeln('Résultat converti en caractère de ',l1,' par ',l2,' = ',chr(b1));
    	writeln('Résultat converti en caractère de ',l1,' par ',l2,' = ',chr(L3));
    	Readln;
    End.
    
  2. Ce programme permet de voir les effets de conversions d'entiers : Testons maintenant les conversions en booléens :
    Program conversion2;
    var
    	b1, b2 : byte;
    	l1 : LongInt;
    Begin
    	l1 := 14258;
    	b1 := byte(L3);
    	bool1:=false;
    	bool2:=true;
    	writeln('Bool 1 = ',bool1,', bool2 = ', bool2);
    	writeln('Bool 1 en byte = ',byte(bool1),', bool2 en byte = ', byte(bool2));
    	writeln ('b1 (',b1,') en booléen = ',boolean(b1));
    	writeln ('L1 (',L1,') en booléen = ',boolean(L1));
    	writeln ('b2 (',b2,') en booléen = ',boolean(b2));
    	Readln;
    End.
    
    Les résultats de ce programme nous montrent que:
  3. Tableau des fonctions de conversions entières en Pascal

    FonctionTypes de variable compatiblesEffet
    ord()CharDonne le code ASCII de la variable de type char
    chr()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en caractère l'Octet de poids faible (le plus à droite) de la variable Entière concernée
    byte()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type Byte l'Octet de poids faible (le plus à droite) de la variable Entière concernée
    ShortINt()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type ShortInt l'Octet de poids faible (le plus à droite) de la variable Entière concernée
    Integer()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type Integer la variable Entière concernée : Si cette variable est plus courte, elle est complétée à gauche par des 0. Si elle est plus longue, seuls les 2 octets de poids faibles seront utilisés.
    Word()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type Word la variable Entière concernée : Si cette variable est plus courte, elle est complétée à gauche par des 0. Si elle est plus longue, seuls les 2 octets de poids faibles seront utilisés.
    LongInt()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type LongInt la variable Entière concernée : Si cette variable est plus courte, elle est complétée à gauche par des 0.
    Pointer()Byte, ShortInt, Integer, Word, LongINt, PointerConvertit en type Pointer la variable Entière concernée : Si cette variable est plus courte, elle est complétée à gauche par des 0.

  4. Conversions de réels

    Il semblerait qu'en Pascal (Pure Pascal 1.1), il ne soit pas possible de convertir des types réels...

  5. Conversion de Chaînes de caractères

    A partir de Pure Pascal 1.1 et Turbo Pascal 7, il existe 2 types de chaînes de caractère. Le type classique String et le type PChar qui est le même type que celui du langage C (pointeur sur chaine se terinant par le caractère NULL). 2 nouvelles fonctions (en vérité, des Procedures) ont été ajoutées à l'Unité System (standard) de Pascal pour effectuer les conversions :
    ProcédureTypes de variables compatiblesEffet
    CToPascalString( pasStr , cStr )PCharConvertit la chaine CStr de type C (Pchar) en chaîne pasStr de type String. Les caractères en excédant de la chaine C (au delà de 255) sont supprimés.
    PascalToCString( pasStr , cStr )StringConvertit la chaine pasStr de type String en chaîne CStr de type C (PChar).

  6. Notions vues dans ce cours

    • Conversion d'entiers
    • Valeurs boléennes d'entiers
    • Conversions de types de chaïnes

Sommaire Tutoriel


Copyright © 2021 par Albatros Concept (Bruno Aubin)