5 Les tableaux
Les tableaux permettent de stocker des valeurs jusqu’à la fin de l’exécution du programme. Le programme peut accéder à n’importe quelle case du tableau, celles-ci étant numérotées, ceci permet de l’organiser et d’accéder plus facilement aux données qui y sont stockées.
5.1 Déclaration d’un tableau à une dimension :
Syntaxe :
Var nom_du_tableau : Array [case_min .. case_sup] of type_de_variable ;
Case_min et case_max représente les numéros des cases du tableau, elles doivent être séparées par deux points.
5.2 Appeler ou écrire une case d’un tableau :
Chaque case d’un tableau est numérotée, c’est ainsi que l’on pourra choisir l’emplacement dans le tableau de la donnée que l’on souhaite, soit récupérer ou entrer.
Syntaxe : nom_du_tableau[i]
Avec i le numéro de la case avec laquelle on souhaite travailler
Exemple : nom_du_tableau [3] := 10 ;
Writeln(nom_du_tableau[3]) ;
Résultat : 10
5.3 Déclaration d’un tableau à plusieurs dimension :
Pour ajouter des dimensions à son tableau, il suffit d’entrer des bornes supplémentaires entre les crochets, chaque dimension séparée par une virgule :
syntaxe :
Var nom_du_tableau : Array [min1..max1, min2..max2,…] of type_de_variable ;
L’appel d’une case s’effectue alors : nom_du_tableau[i,u,…] suivant le nombre de dimension du tableau, en respectant l’ordre dans lequel les dimensions ont été déclarées.
6 Opérations sur les nombres
Nous allons voir dans cette partie une liste non exhaustive des différentes commandes avec lesquelles l’on peut travailler les nombres. Soit a un nombre :
+ : addition
- : soustraction
/ : Division
* : multiplication
<= : inférieur ou égale
>= : supérieur ou égale
> : Supérieur
< : Inférieur
<> : différent
Trunc(a) : prend la partie entière de a.
a mod b : renvoi le reste de la division euclidienne de a par b.
x := random(a) ; choisi un nombre aléatoire dans a. (pour utiliser random, il faut implémenter uses randomize avant le corp du programme)
a DIV b : renvoi le quotient de la division de a par b.
ROUND(a) : renvoi l’arrondi à l’unité la plus proche.
7 Les strings et les Chars
7.1 Opérations sur les char :
Voici un liste des commandes principales pour travailler les char.
Soit a un char :
ord(a) : renvoi la symbole ASCII de a.
chr(a) : renvoi le valeur numérique ASCII de n.
pred(a) : renvoi le caractère qui précède a dans la table ASCII
succ(a) : renvoi le caractère qui suit a dans la table ASCII
7.2 Opération sur les strings :
Soit a et deux string, b et c deux nombres :
Pour entrer une valeur dans un string, il faut ajouter des simple coat autour de la valeur :
Exemple : a := ‘coucou’ ;
On peut additionner deux strings: a := ‘TI’ b := ‘TO’ a :=a+b a = TITO
Un string, ou une chaine de caractères, peut être assimilé à un tableau de caractères à une dimension. Ainsi, il est possible de travailler sur un caractère.
Exemple : a := ‘TOTO’ ;
On a : a[1] = T
Pour limiter la le nombre de caractère que peut avoir un string, il faut déclarer un nouveau type, et préciser le nombre maximal de caractère que peut contenir ce type :
Syntaxe : type nom_du_type = string[max_caractères] ;
Voici un liste des commandes principales pour travailler les string.
Lenght(a) : renvoi la longueur du string
Pos(sc,a) : renvoi la position de la première occurrence de la chaine sc dans le string a.
Copy(a,b,c) : renvoi la sous-chaine de a de la position b sur une longueur c.
8 Les types
Chaque variables doit être associées à un type. Comme nous l’avons vu, celui-ci peut être INTEGER, STRING, CHAR, BOOLEAN, etc… Cepandant, il est possible aussi de créer ses propres types.
Nous verrons dans cette partie comment créer ses propres types, et deux types particuliers, les types énumérés et les types enregistrements.
8.1 Créer ses types
Créer ses types permet de personnaliser ses variables afin que le programme soit plus clair, ou encore donner des caractéristiques particulières à des types déjà existants, comme nous l’avons vu pour limiter le nombre de caractères d’un string.
Syntaxe : type nom_type = nouveau type ;
Exemple : type chaine = string[20] ;
Type entier = integer ;
Type tableau = array [1..10] of integer ;
Ceci permet de declarer ses variables selon ces types :
Exemple : var tab1 : tableau ;
var int : entier ;
8.2 Le type énuméré
Le type énuméré associe une variable une liste spécifique de valeurs limitée à 256. Cette variable ne pourra prendre que ces valeurs et aucune autre.
Syntaxe : type nom_du_type = (valeur1, valeur2, valeur3, valeur4, etc…) ;
Exemple :
type jour =( lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
var today : jour ;
begin
readln(today) ;
case today of
lundi : writeln(‘aujourd’hui c’est lundi’) ;
mardi : writeln(‘aujourd’hui c’est mardi’) ;
mercredi : writeln(‘aujourd’hui c’est mercredi’) ;
jeudi : writeln(‘aujourd’hui c’est jeudi’) ;
vendredi : writeln(‘aujourd’hui c’est vendredi’) ;
samedi : writeln(‘aujourd’hui c’est samedi’) ;
dimanche : writeln(‘aujourd’hui c’est dimanche’) ;
end ;
END.
8.3 le type enregistrement
Le type enregistrement fait d’une variable appartenant à ce type, une « unité de stockage » de variable. En effet, le type enregistrement permet de garder dans une variable plusieurs informations. Celle-ci peut donc contenir des STRING, des INTEGER, des BOOLEAN, etc.
Syntaxe : type nom_du_type = record
Sous_type1 : type1 ;
Sous_type2 : type2 ;
Sous_type3 : type3 ;
Etc.
End ;
Exemple : type eleve = record
Nom : string ;
Prenom : string[15] ;
Age : integer ;
Sexe : char ;
Notes : array [1..20] of integer ;
End ;