Академический Документы
Профессиональный Документы
Культура Документы
Y.Grusson
SEANCE 1
La Programmation Le langage Les concepts Lobjet Hritage vnement Prsentation de Visual Basic Mise en pratique
Y.Grusson
La Programmation
A tout moment un programme fonctionne ("tourne") sur un ordinateur. Le programme est toujours situ en mmoire centrale aprs son chargement en gnral depuis le disque dur. Il est excut par le processeur. Que signifie "excuter" ? Un programme est compos d'instructions. Chaque instruction reprsente une action lmentaire. Le processeur va chercher les instructions les unes aprs les autres en mmoire centrale pour faire (excuter) les actions lmentaires qu'elles reprsentent.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 4
La Programmation
Le programme utilise des donnes qui sont galement en mmoire centrale. Des donnes peuvent tre introduites en mmoire centrale par lutilisateur (saisie au clavier) la demande du programme. Des donnes peuvent tre introduites en mmoire depuis le disque dur (fichier) sans intervention de l'utilisateur. Le programme produit des rsultats (affichage l'cran, enregistrement sur disque, etc.)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 5
La Programmation
DONNEES cran
Clavier
PROGRAMME
Imp.
Souris
Mmoire centrale
Bande
Les Langages
Chaque type processeur (X386, Alpha, etc.) sont propre jeu d'instructions binaires. Par contre, le programmeur crit ses programmes dans un langage facilement comprhensible et indpendant des processeurs. La rencontre de ces deux extrmits se fera par l'intermdiaire d'une traduction. Il y a deux types de traduction :
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 7
Compilation / Interprtation
La Compilation : Elle se fait une seule fois
Programme crit par le programmeur
COMPILATEUR
Les langages sont varis : Assembleur, C, C++, Pascal, ADA, VisualBasic, Fortran, Cobol, etc.
Prcision : Le compilateur est spcifique la fois au processeur et au langage
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 8
Compilation / Interprtation
L'interprtation : Elle se fait chaque excution
On parle ici de script : JavaScript, HTML, VBScritp, les scripts des systme d'exploitation (MsDos, Unix, etc) Cette technique a t repopularise avec les dveloppements pour les applications Web
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 9
Le projet
Les Objets
Les proprits
Y.Grusson
14
ComboBox
CommandButton ListBox
Line
Y.Grusson
15
Y.Grusson
16
Hritage
Y.Grusson
17
Y.Grusson
18
Y.Grusson
19
SEANCE 2
LA STRUCTURE CONDITONNELLE La structure conditionnelle de programmation permet de mettre en place une alternative en fonction d'une condition. L'expression gnrale de cette structure est la suivante : SI Expression_Logique
ALORS Bloc d'instructions si l'expression logique est vraie SINON Bloc d'instructions si l'expression logique est fausse FIN DU SI
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 20
SEANCE 2
Syntaxe VB la plus gnrale : IF Expression_Logique THEN Bloc d'instructions si l'expression logique est vraie ELSE Bloc d'instructions si l'expression logique est fausse END IF Ou plus simple :
SEANCE 2
L'expression_logique est une expression calcule qui ne peut retourner que 2 valeurs : VRAI ou FAUX (TRUE ou FALSE) Comme toute opration elle a un ensemble d'oprateurs. Les plus courants sont : =, <, <=, >, >=, < >, ET, OU Exemples : A > 12 Zone.Text = "Bonjour" AGE >= 18 SURFACE1 < > SURFACE2 AGE > 18 ET DOMICILE = "Grenoble" (ET et OU relient deux expressions logiques)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 22
SEANCE 2
Exemple
Y.Grusson
23
SEANCE 2
Derrire le bouton :
Private Sub Command1_Click() Dim Rep as Integer If Val(Zone1.Text) >= Val(Zone2.Text) Then Rep = MsgBox("Oui, A est suprieur ou gal B", vbOKOnly, " A >= B ?") Else Rep = MsgBox("Non, A n'est pas suprieur ou gal B", vbOKOnly, " A >= B ?") End If End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 24
SEANCE 2
Y.Grusson
25
SEANCE 2
Private Sub Command1_Click() Utilisation d'un "SI" Dim Rep as Integer imbriqu (dans le "THEN" If Val(Zone1.Text) >= 5 Then ou le "ELSE") If Val(Zone1.Text) <= 10 Then rep = MsgBox("A est compris entre 5 et 10", vbOKOnly, "5<=A<=10") Else rep = MsgBox("A est exterieur [5 et 10]", vbOKOnly, "5<=A<=10") End If Else rep = MsgBox("A est exterieur [5 et 10]", vbOKOnly, "5<=A<=10") End If End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 26
SEANCE 2
Autre solution
Private Sub Command1_Click() Dim Rep as Integer If Val(Zone1.Text) >= 5 AND Val(Zone1.Text) <= 10 Then rep = MsgBox("A est compris entre 5 et 10", vbOKOnly, "5<=A<=10") Else rep = MsgBox("A est exterieur [5 et 10]", vbOKOnly, "5<=A<=10") End If End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 27
SEANCE 2
Syntaxe avec des structures imbriques :
IF Expression_Logique1 THEN Bloc d'instructions si l'expression logique1 est vraie (Ce bloc peut contenir une structure IFEND IF) ELSEIF Expression_Logique2 THEN Bloc d'instructions si l'expression logique2 est vraie ELSEIF Expression_Logique3 THEN Bloc d'instructions si l'expression logique3 est vraie . ELSE Bloc d'instructions pour tous les autres cas (Optionnel) END IF
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 28
SEANCE 2
Y.Grusson
29
SEANCE 2
Private Sub BCalculer_Click() Dim Rep as integer If Len(ZValeur.Text) = 0 Then Rep = MsgBox("A doit tre saisi", vbOKOnly, "Erreur") ElseIf Opt1.Value = Checked Then LResult.Caption = "Rsultat = " & Str(Val(ZValeur.Text) * 6) ElseIf Opt2.Value = Checked Then LResult.Caption = "Rsultat = " & Str(Val(ZValeur.Text) ^ 2) ElseIf Opt3.Value = Checked Then LResult.Caption = "Rsultat = " & Str(Val(ZValeur.Text) / 3) ElseIf Opt4.Value = Checked Then LResult.Caption = "Rsultat = " & Str(Val(ZValeur.Text) ^ 3) Else Rep = MsgBox("Il faut cocher...", vbOKOnly, "Erreur") End If Attention : ELSEIF et non ELSE IF. Pas de END IF pour fermer End Sub les ELSEIF.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 30
SEANCE 2
Y.Grusson
31
SEANCE 2
Private Sub CIci_Click() Dim Rep As Integer Select Case Val(ZColor.Text) Attention cette structure Case 1 n'est possible qu'avec un Ovale.FillColor = vbRed choix multiple sur la Case 2 mme valeur numrique Ovale.FillColor = vbYellow Case 3 ici Val(ZColor.Text)Ovale.FillColor = vbGreen Case 4 Ovale.FillColor = vbWhite Case Else Rep = MsgBox("Out", vbOKOnly, "Pfff!!!") End Select End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 32
SEANCE 2
Syntaxe du SELECT CASE . END SELECT :
. Case Else
Bloc d'instructions pour tous les autres cas (optionnel)
End Select
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 33
SEANCE 3
LA STRUCTURE REPETITIVE Cette structure va permettre de rpter un bloc d'instructions. La syntaxe la plus gnrale de cette structure est la suivante : TANT QUE Expression_Logique FAIRE Bloc d'instructions excuter tant que l'expression logique RESTE vraie FIN TANT QUE
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 34
SEANCE 3
Le bloc d'instructions est rpt "tant que l'expression logique reste vraie", ceci implique que : Pour s'arrter, il faut qu'elle deviennent fausse. Au moins une instruction dans le bloc doit donc faire voluer l'expression logique afin de la faire basculer de "vrai" "faux" (au risque sinon de rentrer dans une boucle infinie) De mme, il faut que l'expression logique soit initialise "vrai" (le plus gnralement) ou "faux". (Vous remarquerez qu'une structure "Tant Que" peut ne pas rpter son bloc d'instructions si l'expression logique est initialise "faux")
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 35
SEANCE 3
Il possible de rcrire la structure ainsi : Instruction(s) d'initialisation de l'expression logique TANT QUE Expression_Logique FAIRE
Bloc d'instructions excuter tant que l'expression logique RESTE vraie. Ce bloc doit contenir au moins une Instruction d'volution de l'expression logique
FIN TANT QUE
En gnral l'Expression_Logique possde un oprande fixe (limite a ne pas dpasser) et un oprande variable qui tend vers l'oprande fixe.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 36
SEANCE 3
Syntaxe Visual Basic du "Tant Que"
DO WHILE Expression_logique Bloc d'instructions excuter tant que l'expression logique RESTE vraie
LOOP
Y.Grusson
37
SEANCE 3
Il existe deux autres structures rptitives : La structure REPETER REPETER Bloc d'instructions jusqu' ce que l'expression devienne FAUSSE JUSQU' Expression-logique En Visual Basic DO Bloc d'instructions LOOP UNTIL Expression-logique Ici, l'expression est value la fin de la boucle ; Par consquent, le bloc est excut au moins une fois.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 38
SEANCE 3
La structure POUR POUR Variable = Val_dbut Val_Fin PAS Val_pas FAIRE Bloc d'instructions FIN POUR En Visual Basic FOR Variable = Val_dbut TO Val_Fin STEP Val_pas Bloc d'instructions NEXT Remarque : Le pas est par dfaut gal 1 et la variable est de type entier.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 39
SEANCE 3
Exemple
Y.Grusson
40
SEANCE 3
Solution avec une structure DO WHILE. Private Sub BLancer_Click() Dim I As Integer Dim Total As Integer (Dclaration locales de 2 variables) Total = 0 I = 1 (Initialisation de l'expression logique) Do While I <= Val(ZLimite.Text) Total = Total + I I = I + 1 (Evolution de l'expression logique) Loop ZTotal.Text = Str(Total) End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 41
SEANCE 3
Solution avec une structure DO UNTIL Private Sub BLancer_Click() Dim I As Integer Dim Total As Integer (Dclaration locales de 2 variables) Total = 0 I = 1 (Initialisation de l'expression logique) Do Total = Total + I I=I+1 (Dclaration locales de 2 variables) Loop Until I > Val(ZLimite.Text) ZTotal.Text = Str(Total) End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 42
SEANCE 3
Solution avec une structure FOR NEXT Private Sub BLancer_Click() Dim I As Integer Dim Total As Integer (Dclaration locales de 2 variables) Total = 0 For I = 1 To Val(ZLimite.Text) (Le For initialise I avec I=1) Total = Total + I Next (Le NEXT fait voluer I en excutant I=I+1) ZTotal.Text = Str(Total) End Sub Cette solution est la plus adapte ce problme
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 43
SEANCE 4
Y.Grusson
44
SEANCE 5
Procdures et Fonctions
Ces deux notions correspondent la notion plus gnrale de "sous-programme" (terme qui n'est plus utilis actuellement). Le premier objectif d'une procdure ou d'une fonction est d'crire qu'une seule fois une partie de programme qui se rpte dans le mme programme ou dans plusieurs programmes. Le second objectif est de fractionner un (gros) programme en plusieurs parties (plus petites) dveloppes en gnral par des personnes diffrentes.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 45
SEANCE 5
Premier exemple de procdure :
Y.Grusson
46
SEANCE 5
Ce problme sera rsolu l'aide d'une procdure qui "dira" si un nombre entier est pair ou non. Cette procdure sera rutilisable dans un autre programme.
D'une faon gnrale, les procdures (ou fonctions) doivent tre considres comme des programmes autonomes. De ce fait : Elles n'utilisent que des variables locales Elles n'utilisent pas de composants graphiques (sauf si le composant fait partie des paramtres)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 47
SEANCE 5
La procdure demande (un nombre entier est-il pair ou impair ?) devra donc communiquer avec le programme qui l'utilise. Pour rpondre la question la procdure devra donc : Connatre le nombre entier concern, Donner sa rponse. La communication entre la procdure (ou la fonction) se fera au travers d'une interface.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 48
SEANCE 5
L'interface :
Programme Principal (ou appelant) 1 2 3 4 4 Interface
Le programme communique les donnes (ici le nombre entier) La procdure rcupre les donnes
Procdure
49
SEANCE 5
Sub PairOuiOuNon(ByVal Nbre As Long, ByRef RepON As Boolean) RepON = False If Nbre Mod 2 = 0 Then RepON = True La procdure rcupre la valeur d'ALEAS dans End If La procdure rpond la variable NBRE. End Sub par true ou false dans la Private Sub BGenerer_Click() variable RepON. Dim OuiNon As Boolean Dim Aleas As Long La valeur contenue par Dim I As Integer "ALEAS" est passe la Randomize procdure Liste.Clear La rponse de la procdure est rcupre For I = 1 To 20 dans OUINON Aleas = Int(Rnd * 200) Call PairOuiOuNon(Aleas, OuiNon) If OuiNon = True Then Liste.AddItem (Aleas) Next End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 50
SEANCE 5
Procdure (Syntaxe gnrale) La procdure : Sub Nom_procedure (Paramtres ) Ou Sub Nom_procedure ( )
Corps de la procdure
Absence de paramtres
End Sub
Appel de la procdure :
Call Nom_procedure(Paramtres) Ou Call Nom_procedure
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 51
SEANCE 5
Procdure (Syntaxe dtaille)
Sub Nom_Procedure (ByVal NVar1 as type_NVar1, ByRef Nvar2 as type_NVar2, ) (Rcupration des valeurs de Var1 et Var2 dans NVar1 et NVar2) Modifications ventuelles de NVar1 et NVar2 End Sub Attention l'ordre Appel de la procdure :
(Initialisation de Var1 et Var2) Call Nom_Procedure (Var1, Var2,) (Rcupration de la valeur de NVar2 dans Var2. Par contre Var1 n'est pas touche par les modifications de NVar1)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 52
SEANCE 5
Il est galement possible d'appeler une procdure en prcisant directement des valeurs. Par exemple: Sub LaProc (Byval Age as integer, Byval Nom as string) . End Sub Call LaProc (12, "Pierre")
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 53
SEANCE 5
Second exemple de procdure : Exemple : crire une procdure qui calcule n !
Y.Grusson
54
SEANCE 5
Sub Factoriel(ByVal N As Long, ByRef Prod As Double) Dim I As Integer Prod = 1 For I = 1 To N Prod = Prod * I Next End Sub Private Sub BFacto_Click() Dim Facto As Double Facto = 1 Call Factoriel(Val(Zn.Text), Facto) ZFacto.Text = Str(Facto) End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 55
SEANCE 5
Contre exemple : Passons les deux paramtres par valeur
Sub Factoriel(ByVal N As Long, ByVal Prod As Double) Dim I As Integer Prod = 1 For I = 1 To N Prod = Prod * I Next End Sub
Private Sub BFacto_Click() Dim Facto As Double Facto = 1 Call Factoriel(Val(Zn.Text), Facto) ZFacto.Text = Str(Facto) End Sub
Y.Grusson
56
SEANCE 5
Contre exemple : Passons les deux paramtres par valeur
La variable FACTO n'a pas t influence par la procdure et conserver sa valeur d'appel
Y.Grusson
57
SEANCE 6
Procdures et Fonctions
Les FONCTIONS jouent un rle identique celui des procdures, elles peuvent possder des paramtres et retourner des rsultats grce eux. Deux diffrences nanmoins, les fonctions : Retournent obligatoirement un rsultat. S'utilisent toujours dans une expression.
(De nombreuses fonctions du langage ont dj t utilises : Ucase, Lcase, Mid, Len, Sqr, Rnd, etc.)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier
58
SEANCE 6
Exemple de fonction :
Y.Grusson
59
SEANCE 6
Function Resultat(ByVal N As Long, ByVal Puis As Integer) As Long Resultat = N ^ Puis End Function Private Sub BCarre_Click() Dim I As Integer For I = Val(ZDebut) To Val(ZFin) Carre.AddItem (Resultat(I, 2)) Next End Sub
Private Sub BCube_Click() Dim I As Integer For I = Val(ZDebut) To Val(ZFin) Cube.AddItem (Resultat(I, 3)) Next End Sub
60
Y.Grusson
SEANCE 6
Syntaxe :
La fonction : Function Nom_Fonc (Paramtres ventuels) As type_du rsultat Corps de la fonction contenant au moins une fois l'instruction Nom_Fonc = .. End Function Appel de la fonction :
SEANCE 6
Annexe
Function Resultat(ByVal N As Long, ByVal Puis As Integer) As Long En conservant les 2 boutons, les 2 Resultat = N ^ Puis procdures peuvent-elles se runir End Function en une seule ? Private Sub BCarre_Click() Dim I As Integer For I = Val(ZDebut) To Val(ZFin) Carre.AddItem (Resultat(I, 2)) Next End Sub
Y.Grusson
Private Sub BCube_Click() Dim I As Integer For I = Val(ZDebut) To Val(ZFin) Cube.AddItem (Resultat(I, 3)) Next End Sub
62
SEANCE 6
Annexe Crer un bouton puis le copier et le coller afin d'obtenir un groupe de composants indics
Y.Grusson
63
SEANCE 6
Annexe
Function Resultat(ByVal N As Long, ByVal Puis As Integer) As Long Resultat = N ^ Puis End Function
Private Sub Btn_Click(Index As Integer) Dim I As Integer For I = Val(ZDebut) To Val(ZFin) Select Case Index Case 0 Carre.AddItem (Resultat(I, 2)) Case 1 Cube.AddItem (Resultat(I, 3)) End Select Next End Sub Y.Grusson IUT Gnie Civil
Universit Joseph Fourier
64
SEANCE 7
Les TABLEAUX Un tableau est une structure de donnes qui permet de stocker en mmoire des informations gnralement de mme type. Chaque valeur est repre dans le tableau par un indice qui indique sa position. Un tableau est une variable complexe.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 65
SEANCE 7
Reprsentation d'un tableau une dimension : Nom du tableau : PRIX
12.5 1 1.6 2 15 3 12.1 16.9 1.24 4 5 6 8.4 7 9.0 8 0.60 22.8 3.45 9 10 11
Ce tableau contient des rels. Il contient 11 lments. Le Nme lment sera not PRIX(N) c'est dire Nom_du_tableau (Numro_de_l'lment) Exemple : la valeur du 7me lment, not PRIX(7) est 8.4
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 66
SEANCE 7
Un tableau doit tre DECLARE puis INITIALISE avant d'tre EXPLOITE. Type de la donne contenue par le tableau DECLARATION : PRIVATE (ou DIM) PRIX ( 1 TO 11 ) AS SINGLE
Nom du tableau
SEANCE 7
DECLARATION : (autres exemples) DIM SEMAINE (1 TO 7) AS STRING DIM AGE (0 TO 15) AS INTEGER DIM REPONSE (0 TO 20) AS BOOLEAN DIM CACLIENT (1 TO 358) AS DOUBLE
Y.Grusson
68
SEANCE 7
INITIALISATION : Un tableau tant une structure implante en mmoire centrale (comme une variable simple), il est obligatoire de l'initialise (le remplir) au dbut de chaque programme. Cette opration peut se faire : Manuellement (saisie par l'utilisateur dans une zone de texte puis affectation au tableau) Automatiquement A l'activation du programme A partir d'un source de sauvegarde (fichier).
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 69
SEANCE 7
A l'activation du programme : Private AGE(0 To 5) As Integer Private Sub Form_activate() AGE(0) = 5 AGE(1) = 12 AGE(2) = 3 AGE(3) = 45 AGE(4) = 48 AGE(5) = 16 End Sub
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 70
SEANCE 7
Saisie par l'utilisateur puis affecte au tableau : Soit Zsaisie un TextBox et I = 3 AGE(I) = Val(Zsaisie.Text) permettra d'affecte la valeur saisie dans la zone Zsaisie au troisime lment du tableau AGE. Remplissage alatoire DIM NBRE(1 TO 10) AS DOUBLE RANDOMIZE FOR J=1 TO 10 NBRE(J) = INT(RND*100) NEXT
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 71
SEANCE 7
Cas particulier : L'indice peut lui-mme avoir une signification dans le contexte trait. Par exemple : DIM EFFECTIF (1 TO 45) AS LONG EFFECTIF est un tableau dans lequel le Nme lment contient le nombre de personnes ayant l'ge N (l'indice correspond la classe d'ge). Soit ZAge et ZEffectif, deux TextBox EFFECTIF(Val(ZAge.text)) = Val(ZEffectif.Text) Permet d'affecter l'effectif (saisi dans ZEffectif) la classe d'ge correspondante (saisi dans ZAge)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 72
SEANCE 7
EXPLOITATION : L'exploitation peut se faire : DIRECTEMENT en accdant directement l'lment en utilisant son indice : Liste.AddItem = Str(AGE(6)) EFFECTIF(Val(ZAge.text)) = Val(ZEffectif.Text) INDIRECTEMENT en parcourant le tableau soit pour utiliser toutes les donnes soit pour rechercher une valeur dont on ne connat pas l'indice.
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 73
SEANCE 7
Exemples : DIM EFFECTIF (1 TO 45) AS LONG Combien de personnes ont 28 ans : ZONE.TEXT = STR(EFFECTIF(28))
Quel est l'effectif total de la population ? FOR I = 1 TO 45 TOTAL = TOTAL + EFFECTIF(I) NEXT ZONE.TEXT = STR(TOTAL)
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 74
SEANCE 7
Quel est la premire classe d'ge ayant un effectif suprieur ou gal 2000 ?
FOR I=1 TO 45 IF EFFECTIF(I) >= 2000 THEN ZAGE.TEXT = STR(I) ZEFFECTIF.TEXT = STR(EFFECTIF(I)) END IF NEXT
SEANCE 7
Quel est la premire classe d'ge ayant un effectif suprieur ou gal 2000 ?
I=1 TROUVE = FALSE DO WHILE TROUVE = FALSE AND I <= 45 IF EFFECTIF(I) >= 2000 THEN TROUVE = TRUE I=I+1 LOOP IF TROUVE = TRUE THEN ZAGE.TEXT = STR(I-1) ZEFFECTIF.TEXT = STR(EFFECTIF(I-1) END IF
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 76
SEANCE 7
Quel est la premire classe d'ge ayant un effectif suprieur ou gal 2000 ? (autre solution)
I=1 DO WHILE EFFECTIF(I) < 2000 AND I <= 45 I=I+1 LOOP IF I <= 45 THEN ZAGE.TEXT = STR(I-1) ZEFFECTIF.TEXT = STR(EFFECTIF(I-1) END IF
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 77
SEANCE 7
Les tableaux 2 dimensions
Ces tableaux se dfinissent l'aide de 2 coordonnes, le premier reprsentant la ligne, le second la colonne. Par exemple :
1 1 A 2 R 3 Z 4 K
2
3
Y.Grusson
Q
O
M
F
W
P
X
R
78
SEANCE 7
1 2 3 4
1
2 3
A
Q O
R
M F
Z
W P
K
X R
COLONNE de 1 4
79
SEANCE 7
1 2 3 4
1
2 3
A
Q O
R
M F
Z
W P
K
X R
Coordonne de la ligne
Y.Grusson
Coordonne de la colonne
80
SEANCE 7
Parcours d'un tableau Le parcours d'un tableau se fera l'aide de deux structures rptitives imbriques, par exemple :
PRIVATE VOLUME(1 TO 12, 1 TO 15) AS DOUBLE RANDOMIZE FOR L = 1 TO 12 FOR C = 1 to 15 VOLUME(L,C)=RND*250 NEXT C NEXT L
Y.Grusson IUT Gnie Civil Universit Joseph Fourier 81
SEANCE 8
Y.Grusson
82