18
[ Estudis d’Informàtica, Multimèdia i Telecomunicació Programació Pràctica 2 Cognoms: Villarreal Quintana Nombre: Jaume

PRA2_PA

Embed Size (px)

DESCRIPTION

PRÀCTICA 2 de l'assignatura de Programació Algorítmica [UOC - Grau en Multimèdia]

Citation preview

Data

[Estudis dInformtica, Multimdia i Telecomunicaci Programaci

Prctica 2Cognoms: Villarreal QuintanaNombre: JaumeExercici 1: Cerques en taules de taules [20 %]

En un concessionari d'autombils mantenen informatitzades totes les dades estadstiques de facturaci mensual dels seus treballadors. En concret, mantenen la informaci en dues taules definides de la segent manera:venedor: taula [50] de cadena {on es mantenen els noms dels 50 venedors}

facturaci: taula [50][12] de real {on es mant, per a cada venedor, la facturaci de cada mes de l'any}Tasca: Crear el mdul recordVendes (acci o funci, el ms adequat) que rebi la taula de venedors i la de facturaci d'un any i escrigui el nom del venedor amb el rcord anual de facturaci i el nom del mes en qu ho va aconseguir.

funci mes (number:ent):cadena

var

arrayMesos:=taula[12]de cadena;

mes:=cadena:

fvar

arrayMesos[1]:='gener';

arrayMesos[2]:='febrer';

arrayMesos[3]:='mar';

arrayMesos[4]:='abril';

arrayMesos[5]:='maig';

arrayMesos[6]:='juny';

arrayMesos[7]:='juliol';

arrayMesos[8]:='agost';

arrayMesos[9]:='setembre';

arrayMesos[10]:='octubre';

arrayMesos[11]:='novembre';

arrayMesos[12]:='desembre';

mes:=arrayMesos[number];

retorna mes;ffuncio

acci recordVendes (ent arrayVenedor:taula[50]de cadena, ent arrayFct:

taula[50][12]de real)

var

i,j,posRecord:=enter;

fctRecord:=real;

mesRecord:=cadena;

fvar

i:=1;

j:=1;

posRecord:=1;

fctRecord:= arrayFct[i][j];

per i fins 50 fer

per j fins 12 fer

si arrayFct[i][j]>fctRecord llavors

arrayFct[i][j]:=fctRecord

posRecord:=i;

mesRecord:=mes(j);

fsi

fper

j:=1;

fper

escriureReal(fctRecord);

escriureCadena(arrayVenedor[posRecord]);

escriureCadena(mesRecord);faccio Exercici 2: Treball taules de taules en PHP [30 %]

Fem servir una taula de taules per emmagatzemar les dades de un tauler de colors. A cadascuna de les posicions de la taula s'emmagatzema un carcter (R, G, B, Y) que s'ha d'interpretar per un color (vermell, verd, blau, groc), de manera que la taula:Les dades que porten la informaci de les mides i el contingut de la taula es troben en seqncies del tipus { high width c1 c2 ... cn}

on

high s l'alada del tauler mesurada en quadres

width s l'amplada del tauler mesurada en quadres

c1 c2 ... cn sn els caracters que informen per als colors. (n = high * width)Tasca: Crear un conjunt de functions en php que manipulin i cren taules de taules segons les indicacions. El programa principal i la function per carregar les dades des d'arxiu a la taula de taules ja formen part de la plantilla.

El programa s'escriur a la plantilla prac2_exer2_plantilla.php que es renombrar a prac2_exer2.php pel lliurament.

Podeu provar el funcionament a l'enlla

http://phppract.comlu.com/prac2/prac2_exer2.php?filename=data28Indicacions Per a dur a terme aquesta tasca es faciliten.

Fitxers de seqncies amb el nom data20 a data28 Les imatges corresponents als quadrets monocroms

R.pngG.pngB.pngY.png

La plantilla porta incorporada la function getData que llegeix el parmetre de nom filename, carrega les dades i crea l'array bidimensional que retorna. La plantilla porta incorporat el programa principal amb la crida a getData i les crides a les function que l'estudiant ha d'implementar. El codi que va escrit a la plantilla no s'ha de modificar. Els fitxers de dades i d'imatge s'han d'ubicar a la mateixa carpeta de localhost que el fitxer php. S'ha de crear la function printBoard que rebi la taula de taules i posi en pantalla les imatges de color segons el patr de carcters de la taula. El resultat ha de ser del tipus

si b els quadrets d'una filera queden ben units, s normal que els d'una filera quedin una mica separats dels de la filera anterior. Aix s degut als salts de lnia que en HTML deixen un espai entre lnies.

S'ha de crear la function transposeBoard que rep una taula de taules i en retorna una altra de transposada, s a dir, on les fileres es corresponen a les columnes originals. S'ha de crear la function colorChange que ha de rebre tres parmetres, primer la taula de taules, i segon i tercer dos carcters c1 i c2 (del conjunt RGBY) de manera que retornar un nou array bidimensional on els quadres del color c1 hauran passat al color c2 i els de color c2 a color c1. Per exemple si c1 s 'R' i c2 s 'Y' el resultat seria S'ha de crear la function negative que rep la taula de taules i en retorna una altra on cada quadre de color s'ha convertit en el color negatiu ( R G, B Y)

S'ha de crear la function aleatory que no rep cap parmetre i crea una taula bidimensional de mides aleatries entre 2 i 9 quadres i emplenada tamb aleatriament. Per generar nombres aleatoris podeu fer servir la funci rand de php que s'ha fet servir en anteriors activitats. Per obtenir la dimensi d'una taula, es pot fer servir la funci count de php. En el cas de taules de taules la funci count aplicada a la variable retornar quantes fileres t la taula i aplicada a una filera, indicar quantes columnes t la filera. No es poden emprar variables global. En les instruccions print no es pot posar una posici d'array directament dins d'una cadena constant. Cal emprar l'operador de concatenaci (punt).

per exemple, la instrucci

print " $oneDog[$i] "escriuria una casella d'una taula amb el contingut exacte $oneDog[$i] en lloc del continguts d'aquesta casella de l'array. Per obtenir el resultat desitjat s'ha d'emprar la concatenaci

print "".$oneDog[$i]."" Recordeu que, a diferencia de les taules en llenguatge algorsmic que comencen en la posici 1, en PHP la primera posici dels arrays s la posici 0.Avaluaci

Es valorar especialment l'aplicaci correcta dels esquemes de cerca, recorregut i/o tractament adequats al problema conjuntament amb l's adequat dels ndex de les taules.

Copieu aqu el codi de la vostra soluci

Practica2_Exer2 Color Board

Color Board

Jaume Villarreal Quintana

Exercici 3: Disseny i treball amb tuples [20 %]

Una distribudora de vdeos assaja la informatitzaci de les seves dades de gesti de la videoteca i amb aquest objectiu us demana que creeu les dades estructurades adequades Tasca: Dissenyeu la dada estructurada date adequada per mantenir una data exposada en format numric

tipus

date =tupla

dia,mes,any:enter;

ftuplaftipus Dissenyeu la data estructurada fitxa_video capa d'emmagatzemar la informaci d'un vdeo: nom del vdeo, nom de la productora, nom del director, durada expressada en minuts, data d'inici de vigncia de la llicncia de distribuci i data final de la llicncia de distribuci.

tipus

fitxa_video=tupla

titol,productora,director:cadena;

durada:enter;

data_inici,data_final:date;

ftuplaftipusPer mantenir tota la informaci de la biblioteca de vdeos s'ha creat la tupla biblioteca de la segent manera

biblioteca = tupla

video: taula [10000] de fitxa_video; {fitxes dels vdeos}

qtty : enter; {nmero que indica quantes fitxes estan plenes}

ftupla

i la variable videoteca del tipus biblioteca, on s'ha entrat tota la informaci de manera que totes les fitxes plenes estan posades consecutivament des de la primera posici. Escriviu l'expressi que digui si el darrer vdeo entrat finalitza la seva llicncia ms enll del 2012

var

videoteca:biblioteca;

fi_llicencia:boole;fvarsi videoteca.video[qtty].data_final.any>2012 llavors

fi_llicencia:=cert;

sino

fi_llicencia=fals;

fsi

Escriviu en mdul curts (acci o funci, el ms adequat) que rebi una durada i la videoteca i escrigui els noms i durades i posicions a la taula video, dels vdeos de durada inferior o igual a la rebuda.

accio curts (ent limit:enter, ent vidoeteca:biblioteca)

var

i:enter;

fvar

i:=1;

mentre i

RGRBYGGYBYRBGRYB

representa

RGRBYGGYBYRBGRYB

RYBGGGYRRGRYBYBB

es converteix en

RGRBYGGYBYRBGRYB

YGYBRGGRBRYBGYRB

es converteix en

http://php.net/manual/es/function.rand.php

http://php.net/manual/es/function.count.php

recordeu que en PHP la primera posici dels arrays s la posici 0