Page 1 sur 1

Question de débutant sur les tableaux

Publié : dim. 14/mars/2010 8:44
par Francis13
Question de débutant sur les tableaux

Code : Tout sélectionner

  ;les tableaux

;En C on peut créer et initialiser un tableau comme ceci:
;Code : C 
;	int tableau[4] = {10, 23}; // Valeurs insérées : 10, 23, 0, 0
;     int tableau[5]={1,2,3,4,5};
 
;En  PB avec Dim on crée un tableau:(exemple de l'aide)
;Syntax
;Dim nom.<type>(<expression>, [<expression>], ...)
;
;Dim tableau.l(5)=1,2,3,4,5                            ==
;Dim prenom.s(5)=(al,mo,ko,mi,dz)                        ==  rien ne fonctionne
;Dim prenom.s(5) =(<uj>,<ok>,<io>,<uy>,<yt>)         ==        ''
;Dim tableau.s(3) =("toto","tata","utut")                ==         ''
;Dim tableau.l(2) =((1),(2))                           ==


;En PB peut-on initialiser un tableau avec des valeurs diverses d'une manière
;similaire au langage C (si oui comment ) ?
;
Dim tableau.l(3)
tableau(0) =1
tableau(1) =2
tableau(2) =3
tableau(3) =4
For i.l =0 To 3
Debug tableau(i)
Next i
je n'ayant pas trouvé d'exemple de code dans les tutos,je pose le problème dans le forum.
Merci d'avance pour vos explications.

Re: Question de débutant sur les tableaux

Publié : dim. 14/mars/2010 9:56
par Backup
.....................

Re: Question de débutant sur les tableaux

Publié : dim. 14/mars/2010 22:04
par Francis13
bonsoir Dobro
je te remercie pour tes explications.
Pour la pratique j'ai testé avec ces quelques lignes.

Code : Tout sélectionner

;read les data
OpenConsole()
EnableGraphicalConsole(1)
Define.l i
Dim tableau.s(7)
For i =0 To 6
Read.s jour$
tableau(i) =jour$
PrintN(tableau(i))
Next i
;
jour =DayOfWeek(Date())
datum$ = FormatDate("%dd,%mm,%yyyy",Date())
text$ =" Nous sommes le " + tableau(jour) +" " + datum$ 
time$ = FormatDate("%hh:%ii:%ss", Date())
message$ =text$ +"   il est  "+ time$
PrintN("")
Print( message$)

DataSection
Data.s "dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"
EndDataSection
PrintN("")
PrintN("tapez entree pour quitter")
Input()
CloseConsole()
End
:D

Re: Question de débutant sur les tableaux

Publié : lun. 15/mars/2010 1:50
par Backup
cool ! :)

Re: Question de débutant sur les tableaux

Publié : mar. 27/avr./2010 0:51
par boddhi
Petite précision :
Francis13 a écrit : ;En PB avec Dim on crée un tableau:(exemple de l'aide)
;Syntax
;Dim nom.<type>(<expression>, [<expression>], ...)
;
;Dim tableau.l(5)=1,2,3,4,5 ==
;Dim prenom.s(5)=(al,mo,ko,mi,dz) == rien ne fonctionne
;Dim prenom.s(5) =(<uj>,<ok>,<io>,<uy>,<yt>) == ''
;Dim tableau.s(3) =("toto","tata","utut") == ''
;Dim tableau.l(2) =((1),(2)) ==
(<expression>, [<expression>], ...) : expression signifie ici dimension du tableau qui peut être indiquée par une valeur, une variable ou résultat d'une expression.
La première dimension est obligatoire. Les [] (qui expriment le caractère facultatif de ce qu'ils encadrent) indiquent que d'autres dimensions peuvent être ajoutées selon les besoins du programmeur. Ce ne sont en rien des délimiteurs. Tout comme les <> qui précisent la nature de ce qui doit être saisi en permettant de le distinguer des mots-clés (instructions et fonctions BASIC), variables, etc.

Ainsi :

Code : Tout sélectionner

Dim Nom.s(9)
créera un tableau (à une dimension) qui pourra contenir 10 valeurs indexées de 0 à 9.

De même :

Code : Tout sélectionner

Dim Coordonnées.l(9,9)
créera un tableau (à deux dimensions) qui pourra contenir 100 valeurs indexées comme suit (0,0),(0,1),...,(1,0),(1,1) jusqu'à (9,9).

Si ma mémoire est bonne, à l'inverse d'autres langages, il n'est pas possible sous PB d'alimenter un tableau lors de sa déclaration.

Re: Question de débutant sur les tableaux

Publié : mar. 27/avr./2010 9:38
par MLD
Salut Francis13
Pour faire la fonction heure et date de ton exemple, tu peut aussi le faire sans tableau.
Regarde ce code pour avoir l'heure et la date, dans la barre de titre d'une fenêtre.
Tu peu aussi l'adapter a ce que tu veux

Tu lances avec ceci.

Code : Tout sélectionner

Handle = WindowID (#Fenetre) ;Handle de la fenêtre 
Tim1 = SetTimer_ (Handle, 2, 50, @TimerProc2())
Tu écris cette procedure

Code : Tout sélectionner

Procedure TimerProc2(hwnd.l, uMsg.l, idEvent.l, dwTime.l) ;timer pour faire date + pendule dans la barre de titre
     Select uMsg 
         Case #WM_TIMER 
             Select idEvent 
              Case 2
               Select DayOfWeek( Date())
                Case 0
                Jour$ = "Dimanche"
                Case 1
                Jour$ = "Lundi"
                Case 2
                Jour$ = "Mardi"
                Case 3
                Jour$ = "Mercredi"
                Case 4
                Jour$ = "Jeudi"
                Case 5
                Jour$ = "Vendredi"
                Case 6
                Jour$ = "Samedi"
               EndSelect
               Date$ = Jour$ +":" + FormatDate(" %dd : %mm : %yyyy | %hh : %ii : %ss", Date())                      
               SetWindowTitle((#Fenetre,"Ma fenêtre test " + Space(150) + Date$) 
           EndSelect 
     EndSelect      
EndProcedure 
Et tu supprimes le timer comme ceci.

Code : Tout sélectionner

KillTimer_(WindowID(#Fenetre),Tim1) 
Bonne journée :D
Michel

Re: Question de débutant sur les tableaux

Publié : mar. 27/avr./2010 10:44
par Patrick88
et une instruction DIM personnalisée :mrgreen:

Code : Tout sélectionner

Macro _DimNum(tabl,type,taille,chaine)
  Dim tabl.type(taille) ; on pourrait même supprimer le paramètre taille et le remplacer par un CountString(chaine,",")
 
  For ind = 0 To CountString(chaine,",")
    tabl(ind) = Val(StringField(chaine,ind+1,","))
  Next
EndMacro

;Dim tableau.l(3)
_DimNum(tableau,l,3,"1,2,3,4")

; tableau(0) =1
; tableau(1) =2
; tableau(2) =3
; tableau(3) =4
For i.l =0 To 3
Debug tableau(i)
Next i
et ça marche, j'en suis le premier epatateté....