M3 - UF1 - T1

19
Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW) CFGS - 1r DAM-DAW CFGS - 1r DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 1/19 Continguts: M3 - UF1 - T1 UF1. Programació estructurada. 1. Estructura d’un programa informàtic. 1.1. Projectes de desenvolupament d’aplicacions. Entorn integrats de desenvolupament. 1.2. Blocs d’un programa informàtic. 1.3. Comentaris al codi. 1.4. Variables. Tipus i utilitat. 1.5. Utilització de variables. 1.6. Constants. Tipus i utilització. 1.7. Operadors del llenguatge de programació. 1.8. Conversions de tipus de dades. 1.9. Expressions** **Aquest apartat s’ha afegit respecte el temari oficial.

description

Introducció al C

Transcript of M3 - UF1 - T1

Page 1: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 1/19

Continguts: M3 - UF1 - T1

UF1. Programació estructurada.

1. Estructura d’un programa informàtic.

1.1. Projectes de desenvolupament d’aplicacions. Entorn integrats de

desenvolupament.

1.2. Blocs d’un programa informàtic.

1.3. Comentaris al codi.

1.4. Variables. Tipus i utilitat.

1.5. Utilització de variables.

1.6. Constants. Tipus i utilització.

1.7. Operadors del llenguatge de programació.

1.8. Conversions de tipus de dades.

1.9. Expressions**

**Aquest apartat s’ha afegit respecte el temari oficial.

Page 2: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 2/19

1. Estructura d’un programa informàtic

Objectius

1. Reconeix l'estructura d'un programa informàtic, identificant i relacionant els

elements propis del llenguatge de programació utilitzat.

1.1. Identifica els blocs que componen l'estructura d'un programa

informàtic.

1.2. Crea projectes de desenvolupament d'aplicacions i utilitza entorns

integrats de desenvolupament.

1.3. Identifica els diferents tipus de variables y la utilitat específica de

cadascun.

1.4. Modifica el codi d'un programa per crear i utilitzar variables.

1.5. Crea i utilitza constants i literals.

1.6. Classifica, reconeix i utilitza en expressions els operadors del

llenguatge.

1.7. Comprova el funcionament de les conversions de tipus explícites i

implícites.

1.8. Introdueix comentaris en el codi.

Page 3: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 3/19

1.1 Projectes de desenvolupament d’aplicacions. Entorns integrats de

desenvolupament.

Per tal d’aconseguir que el desenvolupament d’aplicacions sigui més productiu

existeixen els entorns de desenvolupament integrats (IDE)1. Aquests faciliten

a l’usuari, en un únic entorn, la possibilitat d’editar, compilar i depurar les

aplicacions.

En aquest curs aprendrem especificar els problemes en llenguatge algorísmic.

Aquest llenguatge no és res més que un llenguatge natural dotat de cert

formalisme per assegurar que hem entès correctament els enunciats.

Per programar els algorismes i fer els exercicis a la computadora utilitzarem el

llenguatge “C”. Així doncs, veurem entorns de desenvolupament preparats per

treballar amb aquest llenguatge.

D’entorns de desenvolupament integrat en trobem de codi lliure i de

propietaris. Entre aquests darrers hi ha la plataforma .NET de Microsoft

(anteriorment conegut com a Visual Studio) . Entre els de codi lliure

destacarem “Eclipse per a C/C++” i CodeBlocks.

Al laboratori aprendrem a utilitzar l’IDE anomenat “CodeBlocks” de codi lliure i

Multiplataforma. Tot i que podríem utilitzar perfectament altres entorns.

1 Integrated Development Environment. Entorn de desenvolupament integrat.

Page 4: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 4/19

1.2 Blocs d’un algorisme informàtic.

Conceptes bàsics i definicions d’algorisme o programa informàtic.

Per començar definirem alguns termes que ens són necessaris per entendre en

que consisteix la programació i quins són els seus objectius.

Definicions.

Algorisme: és una descripció no ambigua i precisa de les accions que cal fer

per a resoldre un problema ben definit en un temps finit.

Ben definit vol dir saber l’estat inicial o precondició i quin és l’estat final o

postcondició. La descripció es fa en llenguatge natural.

Podem pensar en un algorisme com una recepta o guió que cal seguir per a

resoldre un problema determinat.

Quan el processador és una computadora, l’algorisme expressat amb un

conjunt d’accions que entén la computadora s’anomena programa.

Exercici: Intenta fer el guió d’una recepta de cuina com ara una truita de

patates.

Page 5: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 5/19

Estructura genèrica d’un Algorisme.

algorisme momAlgorisme és

const

[definició de constants]

fconst

tipus

[definició de tipus]

ftipus

var

[declaració de variables]

fvar

{acció 1}

{acció 2}

...

falgorisme

Convencions:

[ ] tot el que està entre claudàtors són parts opcionals. És a dir, pot ser que en

determinats algorismes hi sigui i en altres no.

paraulesReservades les paraules que estan en color blau són paraules

reservades del llenguatge algorísmic (també anomenat pseudocodi). Això

significa que no és poden utilitzar per altres finalitats. A la pissarra les paraules

reservades probablement les subratllarem.

Observacions:

L’algorisme comença amb la paraula algorisme i acaba amb falgorisme.

Aquesta és l’única part que sempre ha d’aparèixer. La resta són

opcionals.

Després hi ha la definició de constants que farem servir a l’algorisme.

Després hi ha la definició dels tipus de dades que farem servir.

Després hi ha la declaració de variables que farem servir.

Page 6: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 6/19

Finalment hi ha la part més important de l’algorisme: una successió

d’accions, que són les que modificaran els valors de les variables que

hem declarat de cara a obtenir els resultats desitjats.

És interessant fixar-se en la indentació dels diferents apartats d’un algorisme !

Exemple d’algorisme:

Algorisme DolceFarNiente és

//això és un comentari. L’algorisme no fa res.

falgorisme

La traducció de l’estructura d’un algorisme a l’estructura d’un programa en

llenguatge C és el que mostra la següent taula:

Algorísmica Traducció a C

algorisme nom

declaració de constants

declaració de tipus

declaració de variables

sentències executables

falgorisme

definició d’accions i funcions

declaració de llibreries

declaració de constants

declaració de tipus

definició d’accions i funcions

void main(void)

{

declaració de variables

sentències executables

}

[declaració d’accions i funcions]

Per saber-ne més sobre l’estructura d’un programa en llenguatge “C” podeu

consultar el material del laboratori.

Page 7: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 7/19

1.3 Comentaris al codi.

En la programació sovint és necessari afegir comentaris a les línies de codi.

Així, també podem facilitar la comprensió del nostre codi a altres

programadors.

Nosaltres utilitzarem en notació algorísmica la mateixa sintaxi que s’utilitza en

llenguatge “C” per escriure els comentaris.

Comentari d’una línia ( // ): Per comentar una línia afegirem dues barres

//. Tot el que aparegui després de les dues barres i fins al final de la

mateixa línia serà interpretat com un comentari.

Exemple:

// això és un comentari

A:=2 ; //això també és un comentari

Comentari de més d’una línia ( /* */): Els comentaris que ocupen més

d’una línia començaran per /* i acabaran per */ . Tot el que hi hagi

entre aquestes dues expressions serà considerat com un comentari.

Exemple:

/* això és un comentari

que ocupa més duna línia */

Page 8: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 8/19

1.4 Variables. Tipus i utilitat.

És un nom simbòlic associat a una determinada cel·la de memòria en la que

es pot guardar un cert valor per recuperar-lo més endavant.

Exemples:

edat : enter

es_solter: boolea

Tipus.

El tipus d’una variable determina el conjunt de valors possibles que pot

prendre. En conseqüència determina també:

o l’espai de memòria que ocupa,

o la seva representació interna,

o les operacions que es podran dur a terme amb aquella variable

El nostre llenguatge algorísmic reconeix quatre tipus elementals o bàsics:

o enter

o real

o caràcter

o booleà

Tipus de dades elementals

enter qualsevol nombre enter 512

real qualsevol nombre real 3.5e-3

caràcter qualsevol caràcter d’una taula* ‘D’

boolea només pot ser cert o fals cert,fals

* El tipus caràcter pot prendre qualsevol valor d’una taula de caràcters, que

inclou les lletres de l’abecedari, els dígits decimals i una sèrie de símbols

addicionals, com ara símbols de puntuació, espais en blanc, etc. Normalment

es fa servir la taula de caràcters ASCII.

* C no té cap implementació primitiva del tipus booleà. Així doncs, la manera

de fer-ho és afegir un nou tipus de la següent forma:

typedef enum {FALS=0, CERT=1} boolea;

Page 9: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 9/19

que defineix el tipus booleà i assigna als seus elements FALS i CERT els

valors 0 i 1, respectivament.

Declaració de variables en llenguatge algorísmic.

Si volem fer servir una variable en un algorisme, cal que la declarem en el bloc

de declaració de variables:

algorisme momAlgorisme és

const

[definició de constants]

fconst

tipus

[definició de tipus]

ftipus

var

[declaració de variables]

fvar

{acció 1}

{acció 2}

...

falgorisme

En llenguatge algorísmic, totes les variables es declaren en el bloc var i fvar,

amb el format:

var

nom : tipus

fvar

Page 10: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 10/19

Exemple (fixeu-vos que en la mateixa línia es poden declarar més d’una

variable):

var

edat, pes: enter

velocitat, temps: real

lletraNIF: caracter

es_casat: boolea

fvar

1.5 Utilització de variables.

Qüestions sobre el nom:

El nom de les variables es posa normalment en minúscules (excepte

inicials de noms compostos).

El nom ha de ser un identificador únic vàlid. Un identificador és vàlid

quan:

o Només està format per lletres, números i el caràcter de subratllat

‘_’, sense que puguin aparèixer altres caràcters com signes de

puntuació o espais en blanc. No pot començar per un número.

o No coincideix amb cap de les paraules clau del llenguatge (var,

const, mentre, etc.).

o Es tria de forma que sigui expressiu del seu contingut.

Qüestions sobre el tipus:

El tipus ha de ser un dels quatre tipus elementals: enter, real, caràcter o

booleà., o un tipus definit per l’usuari al bloc de definició de tipus (ho

veurem més endavant).

És interessant notar que quan es tractava de constants parlàvem de definició

(perquè li donàvem ja el valor que tindrà durant tota l’execució de l’algorisme),

mentre que quan es tracta de variables parlem de declaració (perquè només

diem com es diu la variable i de quin tipus és). Quan una variable es declara,

el seu valor resta indeterminat fins que s’hi assigna un valor inicial a una

variable (inicialització).

Page 11: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 11/19

1.6 Constants. Tipus i utilització.

Una constants és exactament el mateix que una variable de la qual no es

permet alterar el seu contingut, és a dir, manté sempre el seu valor.

Exemples: PI, E, VELOCITAT_DE_LA_LLUM.

També reben el nom de constants tots els valors que poden aparèixer en una

expressió. En aquest cas, però, no necessitem cap nom perquè només

s’utilitzen en el lloc puntual en que apareixen.

Pel que fa al tipus de les constants és aplicable tot el que s’ha dit sobre el

tipus de les variables.

Definició de constants en llenguatge algorísmic.

Si volem fer servir una constant en llenguatge algorismic, cal que la definim en

el bloc de definició de constants:

algorisme momAlgorisme és

const

[definició de constants]

fconst

tipus

[definició de tipus]

ftipus

var

[declaració de variables]

fvar

{acció 1}

{acció 2}

...

falgorisme

Page 12: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 12/19

En llenguatge algorísmic, totes les constants es defineixen en el bloc const i

fconst, amb el format:

const

nom : tipus = valor

fconst

Exemple (fixeu-vos que es defineix en una línia separada):

const

DIES_EN_UN_ANY : enter = 365

PI : real = 3.14159

PRIMERA_LLETRA : caracter = ‘A’

fconst

Qüestions sobre el nom:

El nom de les constants es posa normalment en majúscules

El nom ha de ser un identificador únic vàlid. Un identificador és vàlid

quan:

o Només està format per lletres, números i el caràcter de subratllat

‘_’, sense que puguin aparèixer altres caràcters com signes de

puntuació o espais en blanc. No pot començar per un número.

o No coincideix amb cap de les paraules clau del llenguatge (var,

const, mentre, etc.).

o Es tria de forma que sigui expressiu del seu contingut.

Qüestions sobre el tipus:

El tipus ha de ser un dels quatre tipus elementals: enter, real, caràcter o

booleà.

Qüestions sobre el valor:

Si la constant és un enter, es posa el valor de la forma habitual: 222, -

34...

Si la constant és un real, ha de dur o bé el punt decimal, o bé la lletra

d’exponencial “e”: 12.33, 443e-2, 4.0

Page 13: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 13/19

Si la constant és un caràcter, el posa entre cometes simples: ‘a’, ‘A’,...

Si la constant és un boolea, el valor només pot ser cert o fals.

1.7 Operadors del llenguatge de programació.

En realitat veurem els operadors en llenguatge algorísmic. Els operadors en

llenguatge de programació ho veureu al material de laboratori.

Amb les dades d’un determinat tipus (enter, real, caràcter, i boolea) podrem fer

unes operacions predefinides que es corresponen amb les que sap fer la unitat

aritmètico-lògica del processador. Aquestes operacions es representen amb

símbols especials anomenats operadors.

El llenguatge algorísmic té quatre tipus d’operadors:

Operadors aritmètics.

Operadors aritmètics pels enters

+ Suma de dos enters, essent el resultat un enter

- Resta de dos enters, essent el resultat un enter

* Producte de dos enters, essent el resultat un enter

div Divisió entera de dos enters, essent el resultat un enter

mod Residu de la divisió entera de dos enters, essent el resultat un enter

Exemples:

14 div 4 dóna com a resultat 3

14 mod 4 dóna com a resultat 2

Operadors aritmètics pels reals

+ Suma de dos reals, essent el resultat un real

- Resta de dos reals, essent el resultat un real

* Producte de dos reals, essent el resultat un real

/ Divisió de dos reals, essent el resultat un real

Exemples:

15.0 / 5.0 = 3.0

Page 14: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 14/19

Operadors lògics.

Operadors lògics

i Retorna cert quan els dos operands són cert. Altrament retorna fals.

o Retorna cert quan qualsevol dels dos operands sigui cert. Quan tots

dos són fals retorna fals.

no Retorna cert si l’operand era fals, i a l’inrevés.

Exemples:

(a>b) i (b>c)

Operadors relacionals.

Permeten comparar dos operands del mateix tipus, segons una relació

d’ordre. El resultat és un booleà.

o L’ordre dels enters i dels reals coincideix amb l’ordre habitual.

o L’ordre dels caràcters està determinat per l’ordre de la seva

codificació ASCII. Fixeu-vos que en el codi ASCII es representa

l’ordre alfabètic de les lletres.

o L’ordre dels booleans (pràcticament no es fa servir) es defineix

forma arbitrària: fals < cert

Operadors relacionals

= Igual

< Estrictament més petit.

≤ Més petit o igual

> Estrictament major.

≥ Major o igual

≠ Diferent

Page 15: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 15/19

1.8 Conversions de tipus de dades.

Donat que no es pot operar directament un enter amb un real, cal disposar

d’operadors de conversió:

Exemples:

2.0 + real( 3 div 4 )

34 + enter( 12.0 / 4.0)

Resum de les operacions definides per cada tipus.

Operadors definits per cada tipus

Aritmètics Lògics Relacionals Conversió

enter + - * div mod = < ≤ > ≥ ≠ real()

real + - * / = < ≤ > ≥ ≠ enter()

caràcter = < ≤ > ≥ ≠

boolea i o no = < ≤ > ≥ ≠

Llevat que s’indiqui el contrari, aquestes són les úniques operacions que es

poden aplicar sobre les dades de tipus elementals. Qualsevol altre operació

que necessitem (factorial, valor absolut, etc...) cal definir-la a partir d’aquests

operadors predefinits.

Operadors de conversió

real(e) Retorna la representació real de l’enter e.

enter(r) Retorna la part entera del real r.

Page 16: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 16/19

Comentaris sobre les operacions amb enters i reals. Divisió real i divisió entera. És important diferenciar la divisió entre enters i la divisió entre reals. La divisió entre reals és la divisió típica amb xifres decimals, que denotem amb “/”.

5.0 / 2.0 dóna 2.5

En canvi la divisió entre enters és diferent, doncs obtenim un quocient i un

residu, tots dos enters:

El quocient enter de la divisió de 5 entre 2 es denota per 5 div 2

El residu de la divisió de 5 entre 2 es denota per 5 mod 2

Conversió obligatòria entre enters i reals

És important recordar que, en una mateixa operació, no es poden barrejar

directament enters amb reals (recordeu que la representació interna és

diferent!).

Cal recordar també que els valors reals, per ser considerats com a tals, han de

tenir o bé un punt decimal o bé la “e” d'exponent: 1.2, 3e-3, 3.0, etc. En cas

contrari es representarien internament com enters!

No és correcte fer

2.3 + 5

perquè l'operació suma requereix tots dos operands enters o tots dos reals.

Si volem fer l'operació, hem de convertir un dels dos al tipus de l'altre:

enter( 2.3 ) +5

que dóna 7, o bé:

2.3 + real( 5 )

que dóna 7.3 .

5 2

2 1

Page 17: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 17/19

1.9 Expressions.

A apartats anteriors hem vist que les dades (variables, constants) es poden

combinar amb un conjunt d’operadors predefinits. La combinació resultant

s’anomena expressió:

Expressió: seqüència de variables i constants combinades amb operadors i

parèntesis.

Exemples d’expressions:

(a + 1) mod n 2.0 * PI *512.5 ‘z’ a > b

Tipus d’una expressió: El tipus d’una expressió és el tipus del resultat que s’obté quan s’avalua.

(a + 1) mod n és de tipus enter. 2.0 * PI *512.5 és de tipus real. ‘z’ és de tipus caràcter. a > b és de tipus booleà!

Una expressió és correcta quan compleix tots aquests requeriments:

Els operadors que conté són operadors predefinits.

Tots els operadors que apareixen tenen exactament el mateix nombre

d’operands que indica la seva definició (observeu tots són binaris,

excepte la negació i els de conversió, que són unaris) i el tipus

d’aquests són els esperats per l’operador. Observeu que els operands

poden ser variables, constats amb nom (p. ex. PI), constants sense

nom (p. ex. 3.14), i altres expressions.

Page 18: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 18/19

Avaluació d’expressions.

Avaluar una expressió vol dir realitzar les operacions que indica. Ja vam veure

la interpretació que té cada operador per separat. Ara només queda establir

les regles que determinen l’ordre en que s’aparellen i s’avaluen els operadors

quan una expressió conté més d’un operador.

1. Els operadors dels nivells més interns de parèntesis s’apliquen abans que

els dels nivells més interns.

2. Dintre d’un mateix nivell de parèntesis, per decidir l’ordre de les operacions

s’utilitza una taula que determina la prioritat dels operadors, de forma que

els operadors més prioritaris s’apliquen abans que els menys prioritaris:

3. Els operadors d’un mateix nivell de parèntesis que tinguin la mateixa

prioritat s’avaluen en l’ordre en que apareixen a l’expressió, és a dir,

d’esquerra a dreta.

Exemples:

a>5 i b<4 equival a

(a>5) i (b<4)

a + 4 > 5 o 3 + 5 mod 2 < 3 equival a

( (a + 4) > 5 ) o ( (3 + (5 mod 2) )<3)

Page 19: M3 - UF1 - T1

Generalitat de Catalunya Departament d’Educació Institut Almatà de Balaguer

Tècnic superior en Desenvolupament d’Aplicacions Multiplataforma (DAM) Tècnic superior en Desenvolupament d’Aplicacions Web (DAW)

CFGS - 1r – DAM-DAW

CFGS - 1r – DAM_DAW - M3 - UF1 - T1 Material fet per APM. Pàgina 19/19

Del darrer exemple es pot observar la conveniència d’utilitzar parèntesis en

expressions llargues.

Errors comuns amb expressions.

En altres àmbits es fa servir la notació

1< a < 10

per indicar que a està entre 1 i 10. Observeu que en llenguatge algorísmic cal

escriure-ho com:

(1<a) i (a<10)

ja que la primera no és una expressió vàlida en llenguatge algorísmic.

Si b és una variable de tipus booleà, l’expressió

b = cert

donarà com a resultat cert quan b sigui cert, i fals quan b sigui fals. Per tant,

l’expressió anterior és equivalent a:

b

Anàlogament, l’expressió

b = fals

és millor escriure-la com:

no b