Bonjour !
J'ai voulu écrire en Pascal l'équivalent d'une fonction très commode du langage FreeBASIC, à savoir la Fonction IIf. Cette fonction permet de remplacer
parIf ceci=vrai then n=A else n=B
Rien de bien difficile à première vue.n=IIf(ceci, A, B)
Cependant, la fonction originale admet plusieurs types d'argument : nombre entier, nombre réel, pointeur. Elle peut servir à composer une chaîne de caractères.
Deuxième chose, les expressions A et B ne sont évaluées que si la condition est vraie.
Cette fonction existe-t-elle dans le langage Pascal sous un autre nom ?
Si elle n'existe pas, comment pourrait-on l'écrire ?
En attendant voici mon essai, qui se limite à un argument de type Integer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 { Extrait du manuel FreeBASIC: ---------------------------- IIf Fonction conditionnelle qui retourne une des deux valeurs. Syntaxe IIf ( condition, expr_if_true, expr_if_false ) Paramètres condition La condition à tester. expr_if_true Une expression à évaluer et à retourner si la condition est vraie. Elle doit retourner une valeur numérique, qui peut être un nombre entier, un nombre à virgule flottante ou un pointeur. expr_if_false Une expression à évaluer et à retourner si la condition est fausse. Elle doit avoir le même type de nombre que expr_if_true. } Program FonctionIIf; Function IIf(condition: boolean; a,b: Integer): Integer; Begin If condition Then IIf:=a Else IIf:=b; End; Var i: Byte; s: Integer; Begin s:=0; For i:=0 To 99 Do Begin s := s + IIf ( Odd(i), i, 0 ); End; Write('La somme des nombres impairs compris entre 0 et 99 est gale '); WriteLn(s,'.'); End.
Partager