Professional Documents
Culture Documents
M3-Programacio Classe 2
M3-Programacio Classe 2
Els diagrames de flux són una eina complementaria del pseudocodi i ajuda de vegades a
entendre les estructures bàsiques de programació d’una forma gràfica. Per un altre costat, per fer
el disseny d’un programa llarg amb els diagrames de flux, es fa difícil de treballar, ja que
ocupen moltes pàgines. Aquí us faré una breu introducció al tema, només per tenir una altre
forma d’entendre les estructures de programació que hem vist fins ara.
Els símbols que fem servir quan fem un diagrama de flux són els següents
Procediment o subrutina a
part del programa principal TrobarLletra
( ja la veurem amb més
detall al segon trimestre)
Per exemple, per calcular el sou d’un treballador, ens fan falta saber les hores treballades, i el
preu per hora. Si fem el pseudocodi, el que farem és
Inici
Variables
Entera :Hores
Llegir hores
souBrut=hores*PREU_HORA
escriure souBrut
Inici
Llegir
hores
souBrut hores*PREU_HORA
Escriure souBrut
Final
Aquest diagrama de flux, ens informa de les accions que hem de fer en el nostre programa d’una
forma visual. Ara veurem les estructures selectives, i les estructures repetitives amb diagrames
de flux.
Estructures selectives
Són les que ens permeten triar entre dos o més camins d’execució depenent del valor de la
condició que posem. En pseudocodi, són com aquest exemple
D=b*b-4*a*c
Si D>0 llavors
X1=(-b+ARREL(D))/(2*a)
X2=(-b-ARREL(D))/(2*a)
Escriure X1,X2
si no
final si
D b*b-4*a*c
NO
D>=0? Escriure “NO HI HA ARRELS"
Si
X1(-B-ARREL(D))/(2*A)
X2(-B+ARREL(D))/(2*A)
Escriure X1,X2
Continuar
Aquí veiem que la estructura selectiva si, ens permet modificar el flux d’execució del programa
depenent del valor del Discriminant ( D) de la equació de segon grau. Veiem que el flux
d’execució és únic, o anem per un camí o per un altre. El flux final es selecciona depenent del
valor de D, per això es coneixen com estructures selectives.
De vegades, ens podem trobar amb moltes estructures si, cosa que fa complex el codi. Per això
hi ha les estructures en cas de, que permeten triar un camí, de entre un seguit de camins
depenent d’un valor, per exemple, per escriure el mes de l’any en lletres, a partir del mes de
l’any en número ho podem fer amb un cas que depèn del número de mes
Llegir mesNumero
En Cas de mesNumero
Cas 1
Escriure “Gener”
Cas 2
Escriure “Febrer”
Etc
Final en cas de
mesNumer
o
1 2 3
Escriu
“GENER”
Estructures Repetitives
Són les que permeten repetir una acció o accions, tantes vegades com calgui i es coneixen com
bucles. En tenim dos tipus:
Les estructures per tenen el següent pseudocodi, recordeu que cal tenir un índex que anirà des
de un valor inicial fins a un valor final, amb un increment opcional ( en general per defecte
l’increment és 1)
Accions
Final per
Per exemple, per sumar els números enters parells entre 2 i 100 farem
Enter numero
Enter suma
Suma0
Suma suma+numero
Final per
Escriure suma
suma0
Numero0
Sumasuma+numero
Numeronumero+2
Numero=<10
0 si
no
Escriure Suma
Quan no sabem el número d’iteracions ( de vegades) que es repetirà el bucle, aleshores hem de
triar una estructura mentre, ja que aquesta ens permet controlar l’execució del bucle depenent
d’una condició ( entrada del usuari, longitud d’un fitxer etc). Per exemple si un usuari vol
escriure noms, fins a que escrigui la cadena FINAL, com no sabem quan l’usuari es cansarà
d’escriure.
Cadena entrada
Constant cadena CENTINELA”FINAL”
Llegir entrada
Escriure cadena
Llegir cadena
Final mentre
inici
Llegir entrada
Entrada<>CENTINEL
A
SI
Escriu entrada
Llegir entrada
Continua l’execució
Aquí podem parlar d’una instrucció que té molt mala premsa en programació, el famós GOTO,
que ens permet tornar enrere. En aquest curs està prohibit fer servir el GOTO, tot i que de
vegades en codi antic potser us trobeu algun goto heretat. En general el goto és una mostra de
programació dolenta, que dona lloc al anomenat codi spaguetti ( el flux d’execució va torna
enrere en un punt, després en un altre) i per això s’ha d’evitar.
Aquí també hem fet servir una constant, anomenada CENTINELA, que ens permet controlar el
bucle mentre que hem fet. Imaginem que volem canviar la paraula que controla el final del
bucle, només hem d’anar a la constant i donar-li un altre valor.