SlideShare a Scribd company logo
UD3 PROGRAMACIÓ
Llenguatges de programació
 Creació d’un programa


› Tipus de dades i declaració de variables

› Estructures bàsiques de control

Entorn de treball de Gambas (Gambas
Almost Means Basic)
 Començant amb Gambas



Algorismes i programes:
› Algorisme  quan s’especifica i determinen

els pasos que s’han de seguir, així com
l’ordre en que s’han de donar, per a poder
realitzar o resoldre qualsevol activitat o
problema.
› Programa  algorisme codificat o traduït a
un llenguatge de programació i que, per
tant, entén l’ordinador.


Algorisme per a la preparació d’una truita:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

Cascar els ous al plat
Afegir-los sal
Batre els ous fins que les clares i gemmes s’han mesclat
Encendre el foc de la cuina
Tirar oli a la paella
Ficar la paella amb l’oli a calfar
Comprovar la temperatura de l’oli
Quan l’oli està calent, tirar el contingut del plat
Esperar uns segons fins que es cualle la base dels ous
Doblegar pel centre la base dels ous
Esperar uns segons i tornar a doblegar
Compactar lleugerament la truita
Esperar uns segons fins que acaba de cuallar
Traure la truita de la paella


Llenguatges
de
programació:
la
programació és al branca de la
informàtica que permet crear programes
propis per a resoldre distints problemes; per
a això, és necessari utilitzar SW específic
, anomenat genèricament llenguatges de
programació.
›
›
›
›

Llenguatges de baix nivell
Llenguatges d’alt nivell
Llenguatges de 4ª generació
Llenguatges orientats a objectes


Llenguatges de baix nivell:
› Llenguatge màquina  únic llenguatge que

entén l’ordinador ja que utilitza el codi
binari, és a dir, 0 i 1.

 Exemple: 0001 1010 0001 0010 (suma R1 i R2)
acumula el resultat en R1

› Llenguatge ensamblador  primer intent de

substituir al llenguatge màquina per un altre
més paregut al que utilitzen les persones.

 Exemple: Add R1,R2 (suma R1 i R2) acumula el
resultat en R1


Llenguatges d’alt nivell:
› Aconseguir programes portables
› Aproximar més les instruccions al llenguatge

humà
› Subministrar llibreries de rutines amb les
funcions més utilitzades normalment
Llenguatges de 4ª generació: es crearen
per a solucionar problemes més
concrets i per a aplicacions molt
específiques (SQL i 4GL).
 Llenguatges orientats a objectes: basats
en la programació estructurada, però, a
més a més, utilitzen diferents objectes o
controls gràfics (Visual C++, Visual
Java, Visual Basic, Gambas...)



La creació d’un programa s’ha
d’abordar en una sèrie de fases que han
de fer-se de forma seqüencial i
ordenada:
1. Anàlisi del problema: estudi detallat del

problema, amb la finalitat de definir el
procés que s’haurà de seguir per a
aconseguir l’automatització del problema
plantejat.
2. Recerca
de
l’algorisme:
utilització
d’organigrames i pseudocodis.
3. Codificació del programa: es tradueix al

llenguatge de programació escollit, l’algorisme
crear en la fase anterior.
4. Fase de proves: detecció de possibles errors
de disseny.
5. Creació de l’executable: es tradueix el
programa a llenguatge màquina en el que
apareix un arxiu *.EXE
6. Fase
d’explotació
i
manteniment:
desenvolupada diàriament amb l’ús del
programa; es realitzen canvis al programa per
a solucionar errades i adequar-lo a les noves
exigències dels usuaris.


Tipus de dades:

› Constants  el seu valor no canvia mai durant

l’execució del programa (MILL_METR)
› Variables  el seu valor canvia tantes voltes
com siga necessari (Dmillas, Dmetros)



A l’hora de nombrar una dada cal tenir en
compte:

a) Es pot utilitzar qualsevol dada alfanumèrica,

però sempre començant per una lletra
b) No es poden incloure espais en blanc
c) La longitud del nom < 32 caràcters
d) No es poden utilitzar punts ni altres caràcters
especials


Les sentències per a definir constants són
semblants a les de les variables.
Const nom = Valor
Const nom AS tipus de dada = valor
Tipus de dades

Declaració en Basic

Cadena de caràcters

String

Sencer
Llarg
Decimal
Decimal de doble
precisió
Data i hora

Descripció

Fins a 64 Kb de longitud

Integer

-32768 < x < 32767

Long

-2.147.483.648 < x
<2.147.483.647

Single

-3.4x1038 < x < 3.4 x 1038

Double

-1’79x10308<x<1’79x10308

Date
UD3 PROGRAMACIÓ
UD3 PROGRAMACIÓ


Exemple:
dissenya
l’algorisme
corresponent a un programa que llig el
valor corresponent a una distància en
milles marines i l’escriu expressada en
metres (1 milla= 1852 metres)


Les dades poden comportar-se de 2
formes diferents en un programa:
› Constants: el seu valor no canvia durant

l’execució del programa.
Llenguatge de programació
lliure
derivat de Visual Basic.
 La llicència pública general GNU és una
llicència creada per la Free Software
Foundation a mitjans dels 80, i està
orientada principalment a protegir la
lliure distribució, modificació i ús de SW.



Permet crear formularis, botons
comandament, quadres de text...

de
Objecte: tot programa orientat a
objectes es basa en la utilització
d’objectes
(finestres,
botons
d’acció, barres de desplaçament, llistes
desplegables...)
 Event: és una acció que es pot realitzar
amb un objecte (fer clic amb el
ratolí, passar el ratolí sobre l’objecte...)

Missatge: quan s’executa un programa
orientat a objectes, tots els objectes
implicats en ell estan rebent missatges
de què és el que passa amb altres
objectes.
 Procediment: la resposta que pot donar
un objecte a un missatge concret és la
designada per l’usuari mitjançant el
procediment.

Formulari del programa

Quan l’usuari emplena els
camps del formulari i li
dona a Command1, es
realitza el procediment
associat a l’event “fer clic”

Tots els objectes del
formulari estan esperant
missatges del que està
passant

Què és el que passa
davant l’event “fer
clic”
1.
2.
3.
4.

Afegir i preparar els formularis (finestres)
Afegir els objectes als formularis
Modificar les propietats dels objectes i
formularis
Crear els procediments associats als
events dels objectes
UD3 PROGRAMACIÓ
Hi ha moltes propietats d’un objecte que
es poden modificar i permeten definir
perfectament el seu aspecte.
 Una de les propietats més importants és
el nom, ja que serà el que s’haurà
d’utilitzar sempre que es desitja fer
al·lusió a ell.
 Per defecte, el programa nombra als
objectes de forma genèrica amb el nom
de la classe de l’objecte i un nombre.



Cada propietat pot ser modificada:
1. Abans d’executar el programa
a) Seleccionar l’objecte
b) Buscar la propietat en la finestra de Propietats
c) Esborrar el valor de la propietat per defecte i
escriure el nou valor

2. Durant l’execució del programa



Escriure la sentència adequada en alguns dels
procediments que constitueixen el programa
La forma general de fer referència a una propietat
d’un objecte és:

Objecte.Propietat

Label3.Text
Cada
control
té
uns
events
determinats, encara que la majoria
d’ells són comuns a tots els controls.
 Els events d’un control poden introduir-se
en el codi del programa fent clic amb el
botó dret del ratolí i triant l’opció Event.

1.

Crear un formulari com aquest:
2.

Al polsar sobre el botó d’executar es
completen els camps:





Nom complet: s’utilitza l’operador & per a
concatenar cadenes de text.
Majúscules: Ucase(labelx.text)
Minúscules: Lcase (labelx.text)
Longitud: Len (label.text)


La declaració de variables es realitza de
la forma:
Tipus de dades

Valors

Boolean

True (vertader) o False (fals)

Integer

-32768 < x <32767

Long

-2147483648< x < 21474783647

Single

Equival al Float en C

Float

Equival al Doble en C

Date

Valor de tipus data i hora

String

Cadenes de caràcters


Exemple:
Les variables declarades fins ara sols
estaran disponibles dins el procediment en
que es declaren.
 Si
volem
emprar-la
en
tot
el
programa, haurem de fer-ho de la següent
forma:




Les constants sols es poden declarar al
principi del programa, mai dins el
procediment:
Crea un nou formulari per a calcular la
longitud d’una circumferència i la seua
àrea a partir del valor del radi.
2. Utilitza 3 variables:
1.




3.

Radi
Circumferència
Cercle

Utilitza una constant per al valor de
PI=3’1416
UD3 PROGRAMACIÓ


Existeix un altra forma d’introduir
dades, diferent a escriure-la en un
quadre de text, que consisteix en utilitzar
la funció InputBox.
Camps no obligatoris
S’utilitzen per a prendre decisions
lògiques, pel que també s’anomenen
estructures de decisió o alternatives.
 SENTÈNCIA IF:


› La sentència IF avalua una condició i, en

cas de complir-se, executa una
d’instruccions
determinades;
en
contrari, executa altres alternatives.

sèrie
cas
Operador

Escriptura

Igual que

=

Major que

>

Menor que

<

Major o igual que
Menor o igual que

Escriptura

<=

Distint de

Operador

>=

<>

Descripció

AND

L’operador Y obliga a complir-se totes les
condicions incloses en la expressió.

O

OR

L’operador O fa que l’expressió s’avalue a
vertadera quan es compleix una o varies
de les condicions.

Negació

NOT

L’expressió s’avalua a vertader quan NO
es compleix la condició.

Y
1.
2.

Crea un formulari que compare (major
o menor) dos nombres sencers.
Elabora un formulari que, a més a
més,
de
comparar
3
nombres
sencers, els ordene de major a menor.


ESTRUCTURA SELECT CASE:
› Estructura múltiple; és a dir, el programa

avaluarà cadascuna de les condicions
expressada en la estructura i anirà actuant
adequadament.

SELECT CASE expressió
CASE condició 1 SENTÈNCIA 1
CASE condició 2 SENTÈNCIA 2
CASE condició 3 SENTÈNCIA 3
...
END SELECT
UD3 PROGRAMACIÓ
1.

Crea un nou formulari que deixe
visualitzar el nom del mes, en funció del
valor
introduït
en
una
variable
mitjançant un InputBox.
Les instruccions repetitives o bucles
permeten
executar
un
conjunt
d’instruccions mentre s’acompleix una
determinada condició; a aquestes
instruccions se les denomina cos del
bucle.
 Son varies les sentències que permeten
crear
bucles:
For...Next, While...Wend, Do...Loop, Goto,
For each...Next



Sentència For...Next:
› Variable = Valor inicial (inicialitza el comptador)
› Step increment (com augmenta o disminueix la variable)
› To valor final (quan es para el comptador)

› Next (envia el programa a la 1ª línia)
For variable = valor inicial To valor final [step increment]
Sentència 1
Sentència 2
...
Next [variable]
Anem a crear un formulari que ens
deixe imprimir en una llista els 50 primers
nombres naturals.
2. A continuació, intentarem crear un
programa que obtinga la suma dels
nombres sencers compresos entre els 2
que s’especifiquen en 2 quadres de
text.
1.


Sentències Do..Loop:

Do While (cond)
…
Sentències
…
Loop

Do Until (cond)
…
Sentències
…
Loop

Do
…
Sentències
…
Loop While
(cond)

Do
...
Sentències
...
Loop Until (cond)

El bucle es realitzarà
mentre s’acompleix la
condició, que s’avalua
al principi.

El bucle es realitzarà
fins que s’acompleix la
condició, que s’avalua
al principi.

El bucle es
realitzarà
mentre
s’acompleix la
condició, que
s’avalua
al
final.

El
bucle
es
realitzarà fins que
s’acompleix
la
condició,
que
s’avalua al final.

More Related Content

PPTX
UD3 Programació
PPTX
Ud1 xarxes d’ordinadors
PPTX
Figures 3D
PPTX
UD4 Web
PPTX
Edició digital
PPTX
Màquines i mecanismes
PPTX
Internet
PPTX
UD Estructures
UD3 Programació
Ud1 xarxes d’ordinadors
Figures 3D
UD4 Web
Edició digital
Màquines i mecanismes
Internet
UD Estructures

Similar to UD3 PROGRAMACIÓ (20)

DOCX
Guia d'estils jordi
PDF
Programació - Pràctica1 - Lidia Bria
PPTX
Programem la placa Arduino - Presentación para la asignatura de robótica
PPT
Microsoft project
 
PDF
Ri03 programacio basica_robots
PPT
El framework Cakephp
ODP
Sergi software
ODP
Jose software
PDF
Aplicacions Interactives multiplataforma_pac1
PDF
Tractament i publicació d'imatge i vídeo ipract1
PDF
PDF
T4 cap missatge
ODP
Migració al programari lliure: reptes i oportunitats
PPTX
CGD2021 - "Canvi cultural, agilitat, qualitat i sostenibilitat del desenvolup...
PDF
Full stack R
PDF
Fonaments i Evolució de la Mutimedia PAC 2
DOCX
Treball oppen office
PPT
Interconnection Project (Software Application)
PPTX
Curs 1.5 Publicació de Dades
PPT
Guia d'estils jordi
Programació - Pràctica1 - Lidia Bria
Programem la placa Arduino - Presentación para la asignatura de robótica
Microsoft project
 
Ri03 programacio basica_robots
El framework Cakephp
Sergi software
Jose software
Aplicacions Interactives multiplataforma_pac1
Tractament i publicació d'imatge i vídeo ipract1
T4 cap missatge
Migració al programari lliure: reptes i oportunitats
CGD2021 - "Canvi cultural, agilitat, qualitat i sostenibilitat del desenvolup...
Full stack R
Fonaments i Evolució de la Mutimedia PAC 2
Treball oppen office
Interconnection Project (Software Application)
Curs 1.5 Publicació de Dades
Ad

UD3 PROGRAMACIÓ

  • 2. Llenguatges de programació  Creació d’un programa  › Tipus de dades i declaració de variables › Estructures bàsiques de control Entorn de treball de Gambas (Gambas Almost Means Basic)  Començant amb Gambas 
  • 3.  Algorismes i programes: › Algorisme  quan s’especifica i determinen els pasos que s’han de seguir, així com l’ordre en que s’han de donar, per a poder realitzar o resoldre qualsevol activitat o problema. › Programa  algorisme codificat o traduït a un llenguatge de programació i que, per tant, entén l’ordinador.
  • 4.  Algorisme per a la preparació d’una truita: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Cascar els ous al plat Afegir-los sal Batre els ous fins que les clares i gemmes s’han mesclat Encendre el foc de la cuina Tirar oli a la paella Ficar la paella amb l’oli a calfar Comprovar la temperatura de l’oli Quan l’oli està calent, tirar el contingut del plat Esperar uns segons fins que es cualle la base dels ous Doblegar pel centre la base dels ous Esperar uns segons i tornar a doblegar Compactar lleugerament la truita Esperar uns segons fins que acaba de cuallar Traure la truita de la paella
  • 5.  Llenguatges de programació: la programació és al branca de la informàtica que permet crear programes propis per a resoldre distints problemes; per a això, és necessari utilitzar SW específic , anomenat genèricament llenguatges de programació. › › › › Llenguatges de baix nivell Llenguatges d’alt nivell Llenguatges de 4ª generació Llenguatges orientats a objectes
  • 6.  Llenguatges de baix nivell: › Llenguatge màquina  únic llenguatge que entén l’ordinador ja que utilitza el codi binari, és a dir, 0 i 1.  Exemple: 0001 1010 0001 0010 (suma R1 i R2) acumula el resultat en R1 › Llenguatge ensamblador  primer intent de substituir al llenguatge màquina per un altre més paregut al que utilitzen les persones.  Exemple: Add R1,R2 (suma R1 i R2) acumula el resultat en R1
  • 7.  Llenguatges d’alt nivell: › Aconseguir programes portables › Aproximar més les instruccions al llenguatge humà › Subministrar llibreries de rutines amb les funcions més utilitzades normalment
  • 8. Llenguatges de 4ª generació: es crearen per a solucionar problemes més concrets i per a aplicacions molt específiques (SQL i 4GL).  Llenguatges orientats a objectes: basats en la programació estructurada, però, a més a més, utilitzen diferents objectes o controls gràfics (Visual C++, Visual Java, Visual Basic, Gambas...) 
  • 9.  La creació d’un programa s’ha d’abordar en una sèrie de fases que han de fer-se de forma seqüencial i ordenada: 1. Anàlisi del problema: estudi detallat del problema, amb la finalitat de definir el procés que s’haurà de seguir per a aconseguir l’automatització del problema plantejat. 2. Recerca de l’algorisme: utilització d’organigrames i pseudocodis.
  • 10. 3. Codificació del programa: es tradueix al llenguatge de programació escollit, l’algorisme crear en la fase anterior. 4. Fase de proves: detecció de possibles errors de disseny. 5. Creació de l’executable: es tradueix el programa a llenguatge màquina en el que apareix un arxiu *.EXE 6. Fase d’explotació i manteniment: desenvolupada diàriament amb l’ús del programa; es realitzen canvis al programa per a solucionar errades i adequar-lo a les noves exigències dels usuaris.
  • 11.  Tipus de dades: › Constants  el seu valor no canvia mai durant l’execució del programa (MILL_METR) › Variables  el seu valor canvia tantes voltes com siga necessari (Dmillas, Dmetros)  A l’hora de nombrar una dada cal tenir en compte: a) Es pot utilitzar qualsevol dada alfanumèrica, però sempre començant per una lletra b) No es poden incloure espais en blanc c) La longitud del nom < 32 caràcters d) No es poden utilitzar punts ni altres caràcters especials
  • 12.  Les sentències per a definir constants són semblants a les de les variables. Const nom = Valor Const nom AS tipus de dada = valor
  • 13. Tipus de dades Declaració en Basic Cadena de caràcters String Sencer Llarg Decimal Decimal de doble precisió Data i hora Descripció Fins a 64 Kb de longitud Integer -32768 < x < 32767 Long -2.147.483.648 < x <2.147.483.647 Single -3.4x1038 < x < 3.4 x 1038 Double -1’79x10308<x<1’79x10308 Date
  • 16.  Exemple: dissenya l’algorisme corresponent a un programa que llig el valor corresponent a una distància en milles marines i l’escriu expressada en metres (1 milla= 1852 metres)
  • 17.  Les dades poden comportar-se de 2 formes diferents en un programa: › Constants: el seu valor no canvia durant l’execució del programa.
  • 18. Llenguatge de programació lliure derivat de Visual Basic.  La llicència pública general GNU és una llicència creada per la Free Software Foundation a mitjans dels 80, i està orientada principalment a protegir la lliure distribució, modificació i ús de SW. 
  • 19.  Permet crear formularis, botons comandament, quadres de text... de
  • 20. Objecte: tot programa orientat a objectes es basa en la utilització d’objectes (finestres, botons d’acció, barres de desplaçament, llistes desplegables...)  Event: és una acció que es pot realitzar amb un objecte (fer clic amb el ratolí, passar el ratolí sobre l’objecte...) 
  • 21. Missatge: quan s’executa un programa orientat a objectes, tots els objectes implicats en ell estan rebent missatges de què és el que passa amb altres objectes.  Procediment: la resposta que pot donar un objecte a un missatge concret és la designada per l’usuari mitjançant el procediment. 
  • 22. Formulari del programa Quan l’usuari emplena els camps del formulari i li dona a Command1, es realitza el procediment associat a l’event “fer clic” Tots els objectes del formulari estan esperant missatges del que està passant Què és el que passa davant l’event “fer clic”
  • 23. 1. 2. 3. 4. Afegir i preparar els formularis (finestres) Afegir els objectes als formularis Modificar les propietats dels objectes i formularis Crear els procediments associats als events dels objectes
  • 25. Hi ha moltes propietats d’un objecte que es poden modificar i permeten definir perfectament el seu aspecte.  Una de les propietats més importants és el nom, ja que serà el que s’haurà d’utilitzar sempre que es desitja fer al·lusió a ell.  Per defecte, el programa nombra als objectes de forma genèrica amb el nom de la classe de l’objecte i un nombre. 
  • 26.  Cada propietat pot ser modificada: 1. Abans d’executar el programa a) Seleccionar l’objecte b) Buscar la propietat en la finestra de Propietats c) Esborrar el valor de la propietat per defecte i escriure el nou valor 2. Durant l’execució del programa   Escriure la sentència adequada en alguns dels procediments que constitueixen el programa La forma general de fer referència a una propietat d’un objecte és: Objecte.Propietat Label3.Text
  • 27. Cada control té uns events determinats, encara que la majoria d’ells són comuns a tots els controls.  Els events d’un control poden introduir-se en el codi del programa fent clic amb el botó dret del ratolí i triant l’opció Event. 
  • 28. 1. Crear un formulari com aquest:
  • 29. 2. Al polsar sobre el botó d’executar es completen els camps:     Nom complet: s’utilitza l’operador & per a concatenar cadenes de text. Majúscules: Ucase(labelx.text) Minúscules: Lcase (labelx.text) Longitud: Len (label.text)
  • 30.  La declaració de variables es realitza de la forma: Tipus de dades Valors Boolean True (vertader) o False (fals) Integer -32768 < x <32767 Long -2147483648< x < 21474783647 Single Equival al Float en C Float Equival al Doble en C Date Valor de tipus data i hora String Cadenes de caràcters
  • 32. Les variables declarades fins ara sols estaran disponibles dins el procediment en que es declaren.  Si volem emprar-la en tot el programa, haurem de fer-ho de la següent forma:   Les constants sols es poden declarar al principi del programa, mai dins el procediment:
  • 33. Crea un nou formulari per a calcular la longitud d’una circumferència i la seua àrea a partir del valor del radi. 2. Utilitza 3 variables: 1.    3. Radi Circumferència Cercle Utilitza una constant per al valor de PI=3’1416
  • 35.  Existeix un altra forma d’introduir dades, diferent a escriure-la en un quadre de text, que consisteix en utilitzar la funció InputBox. Camps no obligatoris
  • 36. S’utilitzen per a prendre decisions lògiques, pel que també s’anomenen estructures de decisió o alternatives.  SENTÈNCIA IF:  › La sentència IF avalua una condició i, en cas de complir-se, executa una d’instruccions determinades; en contrari, executa altres alternatives. sèrie cas
  • 37. Operador Escriptura Igual que = Major que > Menor que < Major o igual que Menor o igual que Escriptura <= Distint de Operador >= <> Descripció AND L’operador Y obliga a complir-se totes les condicions incloses en la expressió. O OR L’operador O fa que l’expressió s’avalue a vertadera quan es compleix una o varies de les condicions. Negació NOT L’expressió s’avalua a vertader quan NO es compleix la condició. Y
  • 38. 1. 2. Crea un formulari que compare (major o menor) dos nombres sencers. Elabora un formulari que, a més a més, de comparar 3 nombres sencers, els ordene de major a menor.
  • 39.  ESTRUCTURA SELECT CASE: › Estructura múltiple; és a dir, el programa avaluarà cadascuna de les condicions expressada en la estructura i anirà actuant adequadament. SELECT CASE expressió CASE condició 1 SENTÈNCIA 1 CASE condició 2 SENTÈNCIA 2 CASE condició 3 SENTÈNCIA 3 ... END SELECT
  • 41. 1. Crea un nou formulari que deixe visualitzar el nom del mes, en funció del valor introduït en una variable mitjançant un InputBox.
  • 42. Les instruccions repetitives o bucles permeten executar un conjunt d’instruccions mentre s’acompleix una determinada condició; a aquestes instruccions se les denomina cos del bucle.  Son varies les sentències que permeten crear bucles: For...Next, While...Wend, Do...Loop, Goto, For each...Next 
  • 43.  Sentència For...Next: › Variable = Valor inicial (inicialitza el comptador) › Step increment (com augmenta o disminueix la variable) › To valor final (quan es para el comptador) › Next (envia el programa a la 1ª línia) For variable = valor inicial To valor final [step increment] Sentència 1 Sentència 2 ... Next [variable]
  • 44. Anem a crear un formulari que ens deixe imprimir en una llista els 50 primers nombres naturals. 2. A continuació, intentarem crear un programa que obtinga la suma dels nombres sencers compresos entre els 2 que s’especifiquen en 2 quadres de text. 1.
  • 45.  Sentències Do..Loop: Do While (cond) … Sentències … Loop Do Until (cond) … Sentències … Loop Do … Sentències … Loop While (cond) Do ... Sentències ... Loop Until (cond) El bucle es realitzarà mentre s’acompleix la condició, que s’avalua al principi. El bucle es realitzarà fins que s’acompleix la condició, que s’avalua al principi. El bucle es realitzarà mentre s’acompleix la condició, que s’avalua al final. El bucle es realitzarà fins que s’acompleix la condició, que s’avalua al final.