Llenguatges de Programacio - GRAM-2 Solucio Examen Primera Convocatoria 2002-2003 1. const MAXF:=100 MAXC:=10 fconst tipus animacio = taula [1..MAXF] de frame frame = tupla r:rodona q:quadrat text:cadena fons:color ftupla text = taula {1..MAXC] de caracter rodona = tupla pos:posicio radi:enter col:color ftupla quadrat = tupla pos:posicio tam:enter col:color ftupla color = tupla r, g, b:enter ftupla posicio = tupla x, y: enter ftupla ftipus 2. accio LlegirFrame (E/S f:frame) EscriureFrase ("entre color de fons (R,G,B):") LlegirEnter (f.fons.r) LlegirEnter (f.fons.g) LlegirEnter (f.fons.b) EscriureFrase ("entre posicio de rodona (X,Y):") LlegirEnter (f.r.pos.x) LlegirEnter (f.r.pos.Y) EscriureFrase ("entre radi de rodona:") LlegirEnter (f.r.radi) EscriureFrase ("entre color de rodona (R,G,B):") LlegirEnter (f.r.col.r) LlegirEnter (f.r.col.g) LlegirEnter (f.r.col.b) EscriureFrase ("entre posicio de quadrat (X,Y):") LlegirEnter (f.q.pos.x) LlegirEnter (f.q.pos.Y) EscriureFrase ("entre tamany de quadrat:") LlegirEnter (f.q.tam) EscriureFrase ("entre color de quadrat (R,G,B):") LlegirEnter (f.q.col.r) LlegirEnter (f.q.col.g) LlegirEnter (f.q.col.b) faccio 3. accio endivinaText (E f:frame) var t, resp:cadena i:enter fvar EscriureFrase ("entre texte d'intent") LlegirFrase (t) per i de 1 a MAXC si f.text[i] = t[i] llavors resp[i]:='N' altrament resp[i]:='-' fsi fper EscriureFrase (resp) faccio 4, Algorisme animacio var a:animacio i:enter fvar avanq:=(25-5)/10 avanr:=(15-5)/10 per i:=1 a 10 fer a[i].fons.r:=255 a[i].fons.g:=255 a[i].fons.b:=255 a[i].q.col.r:=255 a[i].q.col.r:=0 a[i].q.col.r:=0 a[i].q.tam:=4 a[i].q.pos.x:=10 a[i].q.pos.y:=25 - avanq*i a[i].r.col.r:=0 a[i].r.col.g:=255 a[i].r.col.b:=0 a[i].r.radi:=3 a[i].r.pos.x:=5 + avanr*i a[i].r.pos.y:=10 a[i].text:="ADIVINAME" fper fAlgorisme