SlideShare a Scribd company logo
1 of 20
Download to read offline
Estudis d’Informàtica, Multimèdia i Telecomunicació
Programació
Pràctica 1
Estudiant
Nom: Marcos Baldoví Martínez
1
Exercici 1: Treball amb una seqüència heterogènia a l'entrada [20 %]
En una cadena de magatzems volen fer una estadística de les preferències dels seus
clients respecte els productes de la UE o de fora de la UE. En cada botiga, a la fi del
dia, a partir de les caixes es genera una seqüència del tipus:
<c1 q1 p1 c2 q2 p2 ..... cn qn pn 0> on
ci és el codi del producte i. Tots els codis són números de 8 xifres. Els productes
europeus comencen amb xifres del conjunt 0-4. Els de la resta del món
comencen amb les xifres 5-9.
qi és la quantitat de producte i adquirit.
pi és el preu unitari del producte i.
0 és el número 0 i indica el final de la seqüència
Tasca: Crear en llenguatge algorísmic el mòdul EU_import (acció o funció, el més
apropiat i justifiqueu la tria) que llegeixi de l'entrada estàndard la seqüència diària
corresponent a una botiga i retorni quin percentatge de la facturació es
correspon a productes de la UE
funció EU_import() :real
VAR:
c:enter;
q:enter;
p:real;
import_EU: real;
import_Total: real;
import:real;
FVAR;
import_EU=0;
import_Total=0;
c=llegir ();
mentre(c>0) fer
q=llegirEnter();
p=leer();
import=enterAReal(q)*p;
// llegirCaracter funcio que retorna un caracter introduït pel teclat del computador //
si(llegirCaracter(c)=0) import_EU=import_EU+import;
si(lllegirCaracter (c)=1) import_EU=import_EU+import;
si(llegirCaracter (c)=2) import_EU=import_EU+import;
si(lllegirCaracter (c)=3) import_EU=import_EU+import;
si(llegirCaracter (c)=4) import_EU=import_EU+import;
import_Total=import_Total+import;
c=llegir ();
fmentre
retorna import_EU*100/import_Total;
Valoració
- Determinació del tipus de mòdul, 0.1; justificació, 0.4.
- Determinació i justificació dels paràmetres paràmetres: 0.25.
- Determinació de variables: 0.25.
- Tractament de la seqüència: 1.0.
2
3
Exercici 2: Treball amb generació de seqüències [20 %]
Un matemàtic jubilat, quan va començar a treballar es va comprometre a fer la
seqüència de la seva vida: a copiar en una seqüència tots els números enters de tres
o més xifres que ha emprat al llarg de tota la seva carrera laboral. El dia que es va
jubilar va posar, per acabar la seqüència, un 1.
El matemàtic té la teoria que no totes les xifres tenen les mateixes probabilitats
d'aparèixer en un número de tres o més xifres i ara li toca mirar-se tota la seqüència de
la seva vida i comprovar la seva teoria.
Podríeu ajudar-lo?
Tasca: Creeu un mòdul myLifeSeq (acció o funció, el més adequat i justifiqueu la tria)
que rebi una xifra, llegeixi de l'entrada estàndard la seqüència i digui quants de
cops apareix la xifra en la seqüència de la vida del matemàtic.
Indicacions preceptives: La seqüència està constituïda per números, per la qual cosa
el tractament per seleccionar les seves xifres una a una, ha de ser un tractament
aritmètic. En aquests sentit ha de ser útil emprar els operadors div i mod.
funció
n m ..... 1
funcio myLifeSeq(i:enter)
llegir la seqüència
recorregut de la seqüència fins a 1
valor --> desglosar-ho en unitats 2012 --> 2, 0, 1, 2
comptar nombre de vegades que apareix i
retornar i
ffuncio
recorregut:
posicionar la seq.
mentre no fi
accions
avança
fmentre
function myLifeSeq(i: enter): enter
var
n,d,c:enter
fvar
c:=0;
n:=llegirEnter ();
mentre no (n=1) fes
//descomposar el nombre en digits
mentre no (n=0) fes
d:=n mod10;
n:=n div 10;
si (i=d) llavors c++;
fmentre
n:=llegirEnter ();
fmentre
retorna c;
Valoració
- Determinació del tipus de mòdul, 0.1; justificació, 0,4.
- Determinació de paràmetres: 0’25.
4
- Determinació de variables: 0.25.
- Tractament de la seqüència: 1.0.
5
Exercici 3: Treball amb seqüències en PHP [20 %]
Disposem d'una seqüència de tres o més números positius cadascun d'ells separat del
següent per un espai. La seqüència finalitza amb un zero.
Tasca: Es demana un programa que sigui capaç de llegir un fitxer que contingui una
cadena d'aquestes característiques i vagi escrivint en la pantalla blocs de quatre
provinents de la llista i separats per comes segons les següents normes
a. Els quatre números de cada línia s’escriuran ordenats de menor a major i
separats per comes.
b. La primera línia mostrarà els quatre primers números de la seqüència.
c. A cada línia nova es traurà el número més antic de la línia anterior i s’afegirà un
nou número de la seqüència.
Es pot observar com s’ha fet en la pantalla següent en què es tracta la
seqüència 12 11 10 9 8 7 6 5 4 3 2 1 0
Primer s’ha tractat 12 11 10 9, després 11 10 9 8, després 10 9 8 7, ..., 4 3 2 1
d. El 0 final no es considera part de les dades. Indica només la fi de la seqüència.
Quan s’arribi al 0 s’escriurà el missatge End of List
Indicacions preceptives
 El fitxer php rebrà el nom prac1_exer3.php
 La crida al programa serà del tipus
prac1_exer3.php? filename=data30
per la qual cosa s'haurà d'emprar la instrucció $filename=$_GET["filename"];
per carregar el nom del fitxer que incorpora la instrucció que assigna valor a la
variable $cadena. Un cop carregat aquest fitxer, es pot incorporar la instrucció al
programa mitjançant l'ordre include($filename)1
; ambdues instruccions ja
formen part de la plantilla i són les primeres del programa principal.
1
http://es2.php.net/manual/es/function.include.php
6
 Els fitxers de dades consten d’una única instrucció de php en què la variable
$cadena rep com valor una cadena de text integrada per una sèrie de números
enters i positius que estan separats per un espai i finalitza en un 0
Per exemple el fitxer data30 té el següent contingut
<?php
$cadena = "12 11 10 9 8 7 6 5 4 3 2 1 0";
?>
 Per tal de recollir els números un a un de la seqüència que conté la cadena,
s'aconsella emprar la combinació de les instruccions explode i array_shift.
Per tal d'obtenir de la cadena $string un a un els números que la formen, on s'ha
fet servir com separador el caracter $c, podeu emprar consecutivament:
 $var1 = explode ($c, $string);2
// crea una llista amb els valors de $string
 $var2 = array_shift($var1);3
// extrau el primer element de la llista
Podeu observar el codi i veure com funciona l'arxiu example.php que s'adjunta
a l'enunciat. La crida és del tipus example.php?filename=data53 i fa servir
com separador l'espai.
Si modifiqueu la instrucció
$var1 = explode(' ', $cadena);
a
$var1 = explode(', ', $cadena);
llavors estaríeu fent servir com separador la coma en lloc de l’espai i la
separació de la cadena en elements seria diferent
Podeu comprovar el funcionament del programa que se us demana que escriviu amb
la crida:
http://prog.uoc.edu/prac1/prac1_exer3.php?filename=data30
Podeu provar canviant els noms dels fitxers de dades (data30 a data33).
 Les instruccions per carregar el fitxer amb la variable $cadena i crear la llista de
números rebuts ($data) ja formen part de la plantilla.
 Els fitxers de dades s'hauran d'ubicar a la mateixa carpeta que els php
Nota important
Una de les feines a realitzar és ordenar cada bloc de 4 números a tractar i es una
tasca que ha de programar l’estudiant. En PHP existeix la funció sort que ordena els
elements que formen part d’un array. Queda especialment prohibit l’ús de la funció
sort de PHP en la resolució d’aquest problema.
Valoració
- Tractament de la seqüència: 1.2
- Procés d’ordenament de un conjunt de 4 números: 0.4.
- Concisió en l'ús de composicions i estalvi de variables: 0.4
2
http://es2.php.net/manual/es/function.explode.php
3
http://es2.php.net/manual/es/function.array-shift.php
7
//Aquí heu de posar el vostre codi
<?php
/************* FUNCTION *************/
//functions code
function LF()
{ //line feed
print "<br />";
}
function ordenar($n,$p)
{
//ordenar l'array de quatre posicions
$i=0;
$pos=$p;
while($i<4)
{
$j=$i+1;
while($j<4)
{
if($n[$i]>$n[$j])
{
$aux=$n[$i];
$n[$i]=$n[$j];
$n[$j]=$aux;
}
$j++;
}
$i++;
}
imprimir($n);
//retorna la posicio on va $p
}
8
function imprimir($n)
{
//imprimir els 4 valors de n
$i=0;
while($i<4)
{
echo $n[$i];
if($i<3) echo ", ";
$i++;
}
echo "<br>";
}
/************* MAIN *************/
//main code
$filename = $_GET["filename"];
include($filename);
$data = explode(" ",$cadena);
$i=0;
$n[0]=$data[$i];
$n[1]=$data[$i+1];
$n[2]=$data[$i+2];
$n[3]=$data[$i+3];
ordenar($n, 0);
$pos=0;
$i=$i+3;
if($n[3]==0)
{
$fi=1;
}else{
$fi=0;
}
while($fi==0)
{
$i++;
9
$n[$pos]=$data[$i];
if($n[$pos]==0) $fi=1;
ordenar($n, $pos);
$pos++;
if($pos==4) $pos=0;
}
?>
10
Exercici 4: Treball amb seqüències de seqüències en PHP [20 %]
Els nostres amics de la xavalla, han decidit que, en lloc de trobar-se i mirar que duen a
les butxaques, escriuran una seqüència. Primer de tot han decidit codificar les
monedes de manera que amb un 1 es codifica la moneda d’1 cèntim, amb un 2 la de 2
cèntims, amb un 3 la de 5 cèntims i així, de manera creixent fins que el 8 codifica la
moneda de 2 €.
Cada amic escriu la seva part de la seqüència posant al principi el seu nom, després el
codi de tot el que contenen les butxaques i després un 0 que indica que s’ha acabat
amb les seves monedes. Després del zero continua el nom i les monedes d’un altre
amic i un altre zero, etc. Al final de tot hi posen el caràcter '#'.
Per exemple:
Solo 2 4 4 6 0 Leia 3 1 2 5 8 0 Chewbacca 2 4 4 0 #
Conté les dades de 3 amics:
1. Solo amb una moneda de 2 cèntims, dues de 10 cèntims i una de 50 cèntims.
2. Leia amb una moneda de 5 cèntims, una de 1, una de 2, una de 20 i una de 2
euros.
3. Chewbacca amb una moneda de 2 cèntims i 2 de 10.
Tasca: Crear un programa que sigui capaç de mostrar en pantalla els continguts de les
butxaques dels amics, el total de cadascú i al final digui quin dels amics té més
diners; tot això seguint normes exposades a partir de la seqüència que es llegirà
d'un arxiu de dades que la carrega a la variable $cadena.
11
Indicacions preceptives
 El fitxer php rebrà el nom prac1_exer4.php
 La crida al programa serà del tipus
prac1_exer4.php? filename=data40
 Es faciliten les imatges per mostrar el contingut de les butxaques
1c.png 2c.png 5c.png 10c.png 20c.png 50c.png 1e.png 2e.png
 Per a l'execució, totes les imatges se situaran a la mateixa carpeta de localhost
que el fitxer php
 Es faciliten arxius de dades de prova amb noms data40, data41, ..., data43. Els
arxius, que són arxius de text, s'hauran d'ubicar a la mateixa carpeta que el fitxer
php.
 Es crearà la function putImage que rebrà el valor d’una moneda i mostrarà la
seva imatge a la pantalla. Sempre que s’hagi de mostrar una moneda es farà
servir aquesta function.
 Es crearà la function getValue que rebrà com paràmetre un número enter
entre 1 i 8 (codi) i retornarà el valor de la moneda a què equival segons la
següent taula .
codi 1 2 3 4 5 6 7 8
valor 0.01 € 0.02 € 0.05 € 0.10 € 0.20 € 0.50 € 1 € 2 €
 Les instruccions que llegeixen la cadena de dades i posen les dades en la llista de
nom $data ja formen part de la plantilla i no s’han de modificar.
 Podeu comprovar el funcionament del programa que se us demana que escriviu
amb la crida:
http://prog.uoc.edu/prac1/prac1_exer4.php?filename=data40 o, si voleu, canviant
el nom del fitxer de dades
Consells
El programa ha de veure’s com el tractament d’una seqüència on cadascun dels
elements és una seqüència.
 La seqüència principal finalitza en trobar el caràcter “#” i els elements d’aquesta
seqüència estan formats per un nom i una seqüència de xifres.
 Les seqüències secundàries són seqüències de xifres que finalitzen amb un 0
 Recordeu que la instrucció array_shift($data) agafarà cada vegada una dada
elemental (un nom, un número) i no pot agafar una seqüència de cop.
 Podeu emprar per a la confecció d’aquest exercici (i és aconsellable), functions
provinents de les PACs anteriors be sigui directament o bé adaptades als nous
imperatius. Podeu emprar functions construïdes per vosaltres o bé provinents de
les solucions.
Valoració
- Funcio putImage: 0.3
- Funció getValue: 0.3
- Tractament de la seqüència: 1.0
12
- Concisió en l'ús de composicions i estalvi de variables: 0.4
13
//Aquí heu de posar el vostre codi
<?php
/************* FUNCTION *************/
//functions code
function LF()
{ //line feed
print "<br />";
}// de LF
function putImage($img)
{
print "<img src='$img.png'>";
}
function getValue($coin)
{
$table_coins_values=array(0, 0.01, 0.02, 0.05, 0.10, 0.20, 0.50, 1.00, 2.00, 5.00, 10.00, 20.00, 50.00);
return $table_coins_values[$coin];
}
function maxim_value($seq, $nSeq)
{
$max=0;
$i=0;
while($i<$nSeq)
{
if($seq[$max]['value']<$seq[$i]['value']) $max=$i;
$i++;
}
echo "Is most rich ".$seq[$max]['nom']." <br> Pocket money ".$seq[$max]['value'];
}
/************* MAIN *************/
//main code
$filename = $_GET["filename"];
14
include($filename);
$data = explode(" ",$cadena);
$table_coins=array(' ','1c','2c','5c','10c','20c','50c','1e','2e','5e','10e','20e','50e');
$fi=0;
$inici_seq=1;
$nSeq=0;
$i=0;
while($fi==0)
{
if($inici_seq==1)
{
$nom=$data[$i];
if($nom=='#')
{
$fi=1;
LF();
}else
{
$inici_seq=0;
$seq[$nSeq]['nom']=$nom;
$seq[$nSeq]['value']=0;
LF();
echo $nom;
LF();
}
}else
{
$coin=$data[$i];
if($coin==0)
{
$inici_seq=1;
echo $seq[$nSeq]['value'];
$nSeq++;
}else
{
putImage($table_coins[$coin]);
15
$seq[$nSeq]['value']=$seq[$nSeq]['value']+getValue($coin);
}
}
$i++;
}
maxim_value($seq,$nSeq);
?>
16
Exercici 5: Treball amb seqüències de caràcters a l'entrada en PHP [20 %]
Un espia ha dissenyat un mecanisme per enviar missatges codificats dins d’un text
que finalitza amb el caràcter ‘#’. Es tracta que entre les lletres d’un text d’aspecte
inofensiu hi introdueix el caràcter '@'per indicar que vindrà un caràcter del missatge
amagat.
Primer va posar simplement la '@' just abans del caràcter que amagava. Per exemple
la cadena de text:
“Amada @Laur@a,@ mucho@s pal@omos y @palom@as van@ @bolando com@o
@buitres bl@ancos#”
amagava el missatge “La sopa boba”. (en el text codificat s’han subratllat els caràcters
codificats i nosaltres no avaluarem l’ortografia de l’espia)
Com que el van descobrir molt aviat ara ha pensat en posar la lletra codificada a
diferents distàncies de la '@', primer a distancia 0, després a distància 1, després a
distancia 2 i anar repetint (0, 1, 2)
Veiem un exemple d’aquest revolucionari mètode:
“A@mada @Laura, muchos @palom@o@s y palomas van bolando como bui@tres
blanco@s#”
amaga el missatge “malo es”. (en el text codificat s’han subratllat els caràcters
codificats per comprovar les distàncies i marcat en vermell els caràcter intercalats)
Tasca: Crear un programa que rebi un fitxer que conté una cadena de text i escrigui en
la pantalla la cadena completa i, sota, el missatge codificat.
Els textos que empra per intercalar les ‘@’ mai tenen dins del seu contingut original
ni el caràcter ‘@’ ni el caràcter ‘#’, de manera que si quan es treballa amb una
cadena de text es troba la ‘@’ sabem que després, a la distància que calgui, vindrà
una lletra codificada. I si es troba un ‘#’ és que ja ha acabat el missatge i no cal
mirar més.
17
Indicacions preceptives
 El fitxer php rebrà el nom prac1_exer5.php
 La crida al programa serà del tipus
prac1_exer5.php?filename=data50
 Les instruccions per carregar el fitxer de dades i posar el text a la variable
$cadena ja formen part del programa principal de la plantilla .
 Podeu comprovar el funcionament del programa que se us demana que escriviu
amb la crida:
http://prog.uoc.edu/prac1/prac1_exer5.php?filename=data50 o canviant el nom del
fitxer de dades.
 Es faciliten diversos arxius de dades amb els noms data50 a data53. Són fitxers
de text i podeu obrir-los per comprovar el contingut: una instrucció php que
assigna valor a $cadena.
 No es pot emprar variables globals.
Consells
 Recordeu que es poden agafar un a un els caràcters que formen una cadena de
text emprant el nom de la variable i l’index del caràcter que volem tractar. El
primer caràcter d’una cadena té l’index 0.
Per exemple, si tenim la instrucció $text=”Hola”; llavors $text[0] és la ‘H’;
$text[1] és la ‘o’; $text[2] és la ‘l’; i $text[3] és la ‘a’.
 Recordeu que per concatenar dues cadenes de text o una cadena i un caràcter
existeix l’operador punt (.).
Per exemple $a = “Hola “.$name.”, què tal?”; en el cas que la variable
$name tingués com contingut el valor “Laura”, faria que el contingut de $a passés
a ser “Hola Laura, què tal?”.
Valoració
- Treball amb la cadena de text: 0.7
- Tractament de la seqüència: 1.0
- Concisió en l'ús de composicions i estalvi de variables: 0.3
18
//Aquí heu de posar el vostre codi
<?php
/************* FUNCTION *************/
//functions code
function LF()
{ //line feed
print "<br />";
}// de LF
function nova_distancia($distancia)
{
$distancia++;
return $distancia%3;
}
function imprimir_missatge($cadena, $text)
{
echo 'Light missage';
LF();
echo $cadena;
LF();
echo 'Shadow missage';
LF();
echo $text;
}
/************* MAIN *************/
//main code
$filename = $_GET["filename"];
include($filename);
$text='';
$distancia=0;
$index=0;
$fi=0;
19
while($fi==0)
{
if($cadena[$index]=='@')
{
$text=$text.$cadena[$index+$distancia+1];
$distancia=nova_distancia($distancia);
}else if ($cadena[$index]=='#')
{
$fi=1;
}
$index++;
}
imprimir_missatge($cadena,$text);
?>
20

More Related Content

What's hot

Programació - PAC 2 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 2 - Multimedia (UOC) - Paquita RibasProgramació - PAC 2 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 2 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasProgramació - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasPaquita Ribas
 
Programació - PAC 1 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 1 - Multimedia (UOC) - Paquita RibasProgramació - PAC 1 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 1 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasProgramació - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasPaquita Ribas
 
Programació - Pac3 - Lidia Bria
Programació - Pac3 - Lidia BriaProgramació - Pac3 - Lidia Bria
Programació - Pac3 - Lidia BriaLidia Bria
 
Programació - Pac1 - Solució - Lídia Bria
Programació - Pac1 - Solució - Lídia BriaProgramació - Pac1 - Solució - Lídia Bria
Programació - Pac1 - Solució - Lídia BriaLidia Bria
 
Programació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaProgramació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaLidia Bria
 
Programació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaProgramació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaLidia Bria
 
Programació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaProgramació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaLidia Bria
 
Programació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaProgramació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaLidia Bria
 
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita RibasPaquita Ribas
 
Programació - Pràctica2 - Solució - Lídia Bria
Programació - Pràctica2 - Solució - Lídia BriaProgramació - Pràctica2 - Solució - Lídia Bria
Programació - Pràctica2 - Solució - Lídia BriaLidia Bria
 
Funcions, límits i les seves aplicacions - Mònica Orpí i Mañé
Funcions, límits i les seves aplicacions - Mònica Orpí i MañéFuncions, límits i les seves aplicacions - Mònica Orpí i Mañé
Funcions, límits i les seves aplicacions - Mònica Orpí i MañéMònica Orpí Mañé
 
Programació - Pràctica 1 - Solució - Lidia Bria
Programació - Pràctica 1 - Solució - Lidia BriaProgramació - Pràctica 1 - Solució - Lidia Bria
Programació - Pràctica 1 - Solució - Lidia BriaLidia Bria
 
Exercicis de selectivitat creixement, extrems
Exercicis de selectivitat creixement, extremsExercicis de selectivitat creixement, extrems
Exercicis de selectivitat creixement, extremsjosepmarialluch
 
1 Funcions domini i recorregut
1 Funcions domini i recorregut1 Funcions domini i recorregut
1 Funcions domini i recorreguteixarc
 
Joc derivades batx
Joc derivades batxJoc derivades batx
Joc derivades batxxaviermoron
 

What's hot (20)

Programació - PAC 2 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 2 - Multimedia (UOC) - Paquita RibasProgramació - PAC 2 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 2 - Multimedia (UOC) - Paquita Ribas
 
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasProgramació - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
 
| PROGRAMACIO | Pract2 solucio
| PROGRAMACIO | Pract2 solucio | PROGRAMACIO | Pract2 solucio
| PROGRAMACIO | Pract2 solucio
 
Programació - PAC 1 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 1 - Multimedia (UOC) - Paquita RibasProgramació - PAC 1 - Multimedia (UOC) - Paquita Ribas
Programació - PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita RibasProgramació - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
Programació - PAC 1 correcció - Multimèdia (UOC) - Paquita Ribas
 
Programació - Pac3 - Lidia Bria
Programació - Pac3 - Lidia BriaProgramació - Pac3 - Lidia Bria
Programació - Pac3 - Lidia Bria
 
Programació - Pac1 - Solució - Lídia Bria
Programació - Pac1 - Solució - Lídia BriaProgramació - Pac1 - Solució - Lídia Bria
Programació - Pac1 - Solució - Lídia Bria
 
Programació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaProgramació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia Bria
 
Programació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaProgramació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia Bria
 
Programació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaProgramació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia Bria
 
Programació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaProgramació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia Bria
 
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Programació - Pràctica2 - Solució - Lídia Bria
Programació - Pràctica2 - Solució - Lídia BriaProgramació - Pràctica2 - Solució - Lídia Bria
Programació - Pràctica2 - Solució - Lídia Bria
 
Funcions, límits i les seves aplicacions - Mònica Orpí i Mañé
Funcions, límits i les seves aplicacions - Mònica Orpí i MañéFuncions, límits i les seves aplicacions - Mònica Orpí i Mañé
Funcions, límits i les seves aplicacions - Mònica Orpí i Mañé
 
Programació - Pràctica 1 - Solució - Lidia Bria
Programació - Pràctica 1 - Solució - Lidia BriaProgramació - Pràctica 1 - Solució - Lidia Bria
Programació - Pràctica 1 - Solució - Lidia Bria
 
Exercicis de selectivitat creixement, extrems
Exercicis de selectivitat creixement, extremsExercicis de selectivitat creixement, extrems
Exercicis de selectivitat creixement, extrems
 
Anàlisi 1
Anàlisi 1Anàlisi 1
Anàlisi 1
 
1 Funcions domini i recorregut
1 Funcions domini i recorregut1 Funcions domini i recorregut
1 Funcions domini i recorregut
 
Funcions
Funcions Funcions
Funcions
 
Joc derivades batx
Joc derivades batxJoc derivades batx
Joc derivades batx
 

Viewers also liked

Changes to our horror opening
Changes to our horror openingChanges to our horror opening
Changes to our horror openingjackfowler16
 
Aplicacions Interactives multiplataforma_pac1
Aplicacions Interactives multiplataforma_pac1Aplicacions Interactives multiplataforma_pac1
Aplicacions Interactives multiplataforma_pac1Marcos Baldovi
 
Evaluation question 1
Evaluation question 1Evaluation question 1
Evaluation question 1jackfowler16
 
Aplicacions Interactives multiplataforma_pac2
Aplicacions Interactives multiplataforma_pac2Aplicacions Interactives multiplataforma_pac2
Aplicacions Interactives multiplataforma_pac2Marcos Baldovi
 
Audience feedback final draft
Audience feedback final draftAudience feedback final draft
Audience feedback final draftjackfowler16
 
Lenguatges i Estàndarts web Pac01
Lenguatges i Estàndarts web Pac01Lenguatges i Estàndarts web Pac01
Lenguatges i Estàndarts web Pac01Marcos Baldovi
 
Evaluation question 1 redone
Evaluation question 1 redoneEvaluation question 1 redone
Evaluation question 1 redonejackfowler16
 
Technologies used question 4 redone
Technologies used   question 4 redoneTechnologies used   question 4 redone
Technologies used question 4 redonejackfowler16
 
Photo shoot day power point put onto wix
Photo shoot day power point   put onto wixPhoto shoot day power point   put onto wix
Photo shoot day power point put onto wixjackfowler16
 
Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Marcos Baldovi
 

Viewers also liked (20)

ADG_pac2
ADG_pac2ADG_pac2
ADG_pac2
 
Changes to our horror opening
Changes to our horror openingChanges to our horror opening
Changes to our horror opening
 
Aplicacions Interactives multiplataforma_pac1
Aplicacions Interactives multiplataforma_pac1Aplicacions Interactives multiplataforma_pac1
Aplicacions Interactives multiplataforma_pac1
 
Evaluation question 1
Evaluation question 1Evaluation question 1
Evaluation question 1
 
Disseny Gràfic_Pac2
Disseny Gràfic_Pac2Disseny Gràfic_Pac2
Disseny Gràfic_Pac2
 
Aplicacions Interactives multiplataforma_pac2
Aplicacions Interactives multiplataforma_pac2Aplicacions Interactives multiplataforma_pac2
Aplicacions Interactives multiplataforma_pac2
 
gestpro_pac2
gestpro_pac2gestpro_pac2
gestpro_pac2
 
Audience feedback final draft
Audience feedback final draftAudience feedback final draft
Audience feedback final draft
 
Dhea and estrogen
Dhea and estrogenDhea and estrogen
Dhea and estrogen
 
animació_pac3
animació_pac3animació_pac3
animació_pac3
 
Lenguatges i Estàndarts web Pac01
Lenguatges i Estàndarts web Pac01Lenguatges i Estàndarts web Pac01
Lenguatges i Estàndarts web Pac01
 
Evaluation question 1 redone
Evaluation question 1 redoneEvaluation question 1 redone
Evaluation question 1 redone
 
CT-3215
CT-3215CT-3215
CT-3215
 
Technologies used question 4 redone
Technologies used   question 4 redoneTechnologies used   question 4 redone
Technologies used question 4 redone
 
Photo shoot day power point put onto wix
Photo shoot day power point   put onto wixPhoto shoot day power point   put onto wix
Photo shoot day power point put onto wix
 
animació_Practica1
animació_Practica1 animació_Practica1
animació_Practica1
 
Camera diagrams
Camera diagramsCamera diagrams
Camera diagrams
 
Riforma della partecipazione popolare
Riforma della partecipazione popolareRiforma della partecipazione popolare
Riforma della partecipazione popolare
 
Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3Aplicacions Interactives multiplataforma_pac3
Aplicacions Interactives multiplataforma_pac3
 
ADG_pac4
ADG_pac4ADG_pac4
ADG_pac4
 

Similar to Prog_prac1

| programacion | PRACTICA 2 - Madel Ortiz
| programacion | PRACTICA 2 - Madel Ortiz| programacion | PRACTICA 2 - Madel Ortiz
| programacion | PRACTICA 2 - Madel OrtizArdillita Trepadora
 
Programació - Pac2 - Lidia Bria
Programació - Pac2 - Lidia BriaProgramació - Pac2 - Lidia Bria
Programació - Pac2 - Lidia BriaLidia Bria
 
Programem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaProgramem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaemunoz341
 
Programació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaProgramació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaLidia Bria
 
Matemàtiques 3r i 4t eso
Matemàtiques 3r i 4t esoMatemàtiques 3r i 4t eso
Matemàtiques 3r i 4t esoAlbert Sola
 
Electrònica Digital
Electrònica DigitalElectrònica Digital
Electrònica Digitalclopez64
 
Guia d'estils jordi
Guia d'estils jordiGuia d'estils jordi
Guia d'estils jordiLa Salle
 
Eso2 ut3-programacio
Eso2 ut3-programacioEso2 ut3-programacio
Eso2 ut3-programaciolluís nater
 
Operacions combinades
Operacions combinadesOperacions combinades
Operacions combinadesceedukat
 
Pac2 Matematiques per a multimedia 2
Pac2 Matematiques per a multimedia 2Pac2 Matematiques per a multimedia 2
Pac2 Matematiques per a multimedia 2Joan Ignasi
 
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia Bria
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia BriaMatemàtiques per Multimèdia II - Pac2 - Solució - Lidia Bria
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia BriaLidia Bria
 

Similar to Prog_prac1 (18)

| programacion | PRACTICA 2 - Madel Ortiz
| programacion | PRACTICA 2 - Madel Ortiz| programacion | PRACTICA 2 - Madel Ortiz
| programacion | PRACTICA 2 - Madel Ortiz
 
PW_pac1
PW_pac1PW_pac1
PW_pac1
 
Programació - Pac2 - Lidia Bria
Programació - Pac2 - Lidia BriaProgramació - Pac2 - Lidia Bria
Programació - Pac2 - Lidia Bria
 
Programem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaProgramem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robótica
 
Programació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaProgramació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia Bria
 
Matemàtiques 3r i 4t eso
Matemàtiques 3r i 4t esoMatemàtiques 3r i 4t eso
Matemàtiques 3r i 4t eso
 
Electrònica Digital
Electrònica DigitalElectrònica Digital
Electrònica Digital
 
Pw p tema 1 nombres racionals
Pw p tema 1 nombres racionalsPw p tema 1 nombres racionals
Pw p tema 1 nombres racionals
 
Guia d'estils jordi
Guia d'estils jordiGuia d'estils jordi
Guia d'estils jordi
 
Eso2 ut3-programacio
Eso2 ut3-programacioEso2 ut3-programacio
Eso2 ut3-programacio
 
Operacions combinades
Operacions combinadesOperacions combinades
Operacions combinades
 
Pac2 Matematiques per a multimedia 2
Pac2 Matematiques per a multimedia 2Pac2 Matematiques per a multimedia 2
Pac2 Matematiques per a multimedia 2
 
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia Bria
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia BriaMatemàtiques per Multimèdia II - Pac2 - Solució - Lidia Bria
Matemàtiques per Multimèdia II - Pac2 - Solució - Lidia Bria
 
UD3 Programació
UD3 ProgramacióUD3 Programació
UD3 Programació
 
Fraccions
FraccionsFraccions
Fraccions
 
Fraccions
FraccionsFraccions
Fraccions
 
Python
PythonPython
Python
 
formules-rstudio.pdf
formules-rstudio.pdfformules-rstudio.pdf
formules-rstudio.pdf
 

More from Marcos Baldovi

Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018
Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018
Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018Marcos Baldovi
 
Comportament d'Usuaris Marcos baldovi Resum Researching UX
Comportament d'Usuaris Marcos baldovi Resum Researching UXComportament d'Usuaris Marcos baldovi Resum Researching UX
Comportament d'Usuaris Marcos baldovi Resum Researching UXMarcos Baldovi
 
Comportament d'Usuaris Marcos baldovi Practica 1
Comportament d'Usuaris Marcos baldovi Practica 1Comportament d'Usuaris Marcos baldovi Practica 1
Comportament d'Usuaris Marcos baldovi Practica 1Marcos Baldovi
 
Comportament d'Usuaris Marcos baldovi PAC2
Comportament d'Usuaris Marcos baldovi PAC2Comportament d'Usuaris Marcos baldovi PAC2
Comportament d'Usuaris Marcos baldovi PAC2Marcos Baldovi
 
Comportament d'Usuaris Marcos baldovi PAC1
Comportament d'Usuaris Marcos baldovi PAC1Comportament d'Usuaris Marcos baldovi PAC1
Comportament d'Usuaris Marcos baldovi PAC1Marcos Baldovi
 
Fotografia Digital Marcos baldovi Prova Sintesis
Fotografia Digital Marcos baldovi Prova SintesisFotografia Digital Marcos baldovi Prova Sintesis
Fotografia Digital Marcos baldovi Prova SintesisMarcos Baldovi
 
Fotografia Digital Marcos baldovi practica 2
Fotografia Digital Marcos baldovi practica 2Fotografia Digital Marcos baldovi practica 2
Fotografia Digital Marcos baldovi practica 2Marcos Baldovi
 
Fotografia Digital Marcos baldovi practica 1
Fotografia Digital Marcos baldovi practica 1Fotografia Digital Marcos baldovi practica 1
Fotografia Digital Marcos baldovi practica 1Marcos Baldovi
 
Fotografia Digital Marcos baldovi pac3
Fotografia Digital Marcos baldovi pac3Fotografia Digital Marcos baldovi pac3
Fotografia Digital Marcos baldovi pac3Marcos Baldovi
 
Fotografia Digital Marcos baldovi pac2
Fotografia Digital Marcos baldovi pac2Fotografia Digital Marcos baldovi pac2
Fotografia Digital Marcos baldovi pac2Marcos Baldovi
 
Fotografia Digital Marcos baldovi pac1
Fotografia Digital Marcos baldovi pac1Fotografia Digital Marcos baldovi pac1
Fotografia Digital Marcos baldovi pac1Marcos Baldovi
 
Mercat i Legislació Marcos baldovi PAC4
Mercat i Legislació Marcos baldovi PAC4Mercat i Legislació Marcos baldovi PAC4
Mercat i Legislació Marcos baldovi PAC4Marcos Baldovi
 
Mercat i Legislació Marcos baldovi PAC3
Mercat i Legislació Marcos baldovi PAC3Mercat i Legislació Marcos baldovi PAC3
Mercat i Legislació Marcos baldovi PAC3Marcos Baldovi
 
Mercat i Legislació Marcos baldovi PAC2
Mercat i Legislació Marcos baldovi PAC2Mercat i Legislació Marcos baldovi PAC2
Mercat i Legislació Marcos baldovi PAC2Marcos Baldovi
 
Marcos Baldoví Disseny D'interacció Practica FInal
Marcos Baldoví Disseny D'interacció Practica FInalMarcos Baldoví Disseny D'interacció Practica FInal
Marcos Baldoví Disseny D'interacció Practica FInalMarcos Baldovi
 
Marcos Baldoví Disseny D'interacció PAC2
Marcos Baldoví Disseny D'interacció PAC2Marcos Baldoví Disseny D'interacció PAC2
Marcos Baldoví Disseny D'interacció PAC2Marcos Baldovi
 
Marcos Baldoví Disseny D'interacció PAC1
Marcos Baldoví Disseny D'interacció PAC1Marcos Baldoví Disseny D'interacció PAC1
Marcos Baldoví Disseny D'interacció PAC1Marcos Baldovi
 
Metodología i Desenvolupament de Projectes en Xarxa PRACTICA
Metodología i Desenvolupament de Projectes en Xarxa PRACTICAMetodología i Desenvolupament de Projectes en Xarxa PRACTICA
Metodología i Desenvolupament de Projectes en Xarxa PRACTICAMarcos Baldovi
 
Metodología i Desenvolupament de Projectes en Xarxa PAC3
Metodología i Desenvolupament de Projectes en Xarxa PAC3Metodología i Desenvolupament de Projectes en Xarxa PAC3
Metodología i Desenvolupament de Projectes en Xarxa PAC3Marcos Baldovi
 
Metodología i Desenvolupament de Projectes en Xarxa PAC 2
Metodología i Desenvolupament de Projectes en Xarxa PAC 2Metodología i Desenvolupament de Projectes en Xarxa PAC 2
Metodología i Desenvolupament de Projectes en Xarxa PAC 2Marcos Baldovi
 

More from Marcos Baldovi (20)

Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018
Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018
Comportament d'Usuaris Marcos baldovi Prova Sintesis 2018
 
Comportament d'Usuaris Marcos baldovi Resum Researching UX
Comportament d'Usuaris Marcos baldovi Resum Researching UXComportament d'Usuaris Marcos baldovi Resum Researching UX
Comportament d'Usuaris Marcos baldovi Resum Researching UX
 
Comportament d'Usuaris Marcos baldovi Practica 1
Comportament d'Usuaris Marcos baldovi Practica 1Comportament d'Usuaris Marcos baldovi Practica 1
Comportament d'Usuaris Marcos baldovi Practica 1
 
Comportament d'Usuaris Marcos baldovi PAC2
Comportament d'Usuaris Marcos baldovi PAC2Comportament d'Usuaris Marcos baldovi PAC2
Comportament d'Usuaris Marcos baldovi PAC2
 
Comportament d'Usuaris Marcos baldovi PAC1
Comportament d'Usuaris Marcos baldovi PAC1Comportament d'Usuaris Marcos baldovi PAC1
Comportament d'Usuaris Marcos baldovi PAC1
 
Fotografia Digital Marcos baldovi Prova Sintesis
Fotografia Digital Marcos baldovi Prova SintesisFotografia Digital Marcos baldovi Prova Sintesis
Fotografia Digital Marcos baldovi Prova Sintesis
 
Fotografia Digital Marcos baldovi practica 2
Fotografia Digital Marcos baldovi practica 2Fotografia Digital Marcos baldovi practica 2
Fotografia Digital Marcos baldovi practica 2
 
Fotografia Digital Marcos baldovi practica 1
Fotografia Digital Marcos baldovi practica 1Fotografia Digital Marcos baldovi practica 1
Fotografia Digital Marcos baldovi practica 1
 
Fotografia Digital Marcos baldovi pac3
Fotografia Digital Marcos baldovi pac3Fotografia Digital Marcos baldovi pac3
Fotografia Digital Marcos baldovi pac3
 
Fotografia Digital Marcos baldovi pac2
Fotografia Digital Marcos baldovi pac2Fotografia Digital Marcos baldovi pac2
Fotografia Digital Marcos baldovi pac2
 
Fotografia Digital Marcos baldovi pac1
Fotografia Digital Marcos baldovi pac1Fotografia Digital Marcos baldovi pac1
Fotografia Digital Marcos baldovi pac1
 
Mercat i Legislació Marcos baldovi PAC4
Mercat i Legislació Marcos baldovi PAC4Mercat i Legislació Marcos baldovi PAC4
Mercat i Legislació Marcos baldovi PAC4
 
Mercat i Legislació Marcos baldovi PAC3
Mercat i Legislació Marcos baldovi PAC3Mercat i Legislació Marcos baldovi PAC3
Mercat i Legislació Marcos baldovi PAC3
 
Mercat i Legislació Marcos baldovi PAC2
Mercat i Legislació Marcos baldovi PAC2Mercat i Legislació Marcos baldovi PAC2
Mercat i Legislació Marcos baldovi PAC2
 
Marcos Baldoví Disseny D'interacció Practica FInal
Marcos Baldoví Disseny D'interacció Practica FInalMarcos Baldoví Disseny D'interacció Practica FInal
Marcos Baldoví Disseny D'interacció Practica FInal
 
Marcos Baldoví Disseny D'interacció PAC2
Marcos Baldoví Disseny D'interacció PAC2Marcos Baldoví Disseny D'interacció PAC2
Marcos Baldoví Disseny D'interacció PAC2
 
Marcos Baldoví Disseny D'interacció PAC1
Marcos Baldoví Disseny D'interacció PAC1Marcos Baldoví Disseny D'interacció PAC1
Marcos Baldoví Disseny D'interacció PAC1
 
Metodología i Desenvolupament de Projectes en Xarxa PRACTICA
Metodología i Desenvolupament de Projectes en Xarxa PRACTICAMetodología i Desenvolupament de Projectes en Xarxa PRACTICA
Metodología i Desenvolupament de Projectes en Xarxa PRACTICA
 
Metodología i Desenvolupament de Projectes en Xarxa PAC3
Metodología i Desenvolupament de Projectes en Xarxa PAC3Metodología i Desenvolupament de Projectes en Xarxa PAC3
Metodología i Desenvolupament de Projectes en Xarxa PAC3
 
Metodología i Desenvolupament de Projectes en Xarxa PAC 2
Metodología i Desenvolupament de Projectes en Xarxa PAC 2Metodología i Desenvolupament de Projectes en Xarxa PAC 2
Metodología i Desenvolupament de Projectes en Xarxa PAC 2
 

Prog_prac1

  • 1. Estudis d’Informàtica, Multimèdia i Telecomunicació Programació Pràctica 1 Estudiant Nom: Marcos Baldoví Martínez 1
  • 2. Exercici 1: Treball amb una seqüència heterogènia a l'entrada [20 %] En una cadena de magatzems volen fer una estadística de les preferències dels seus clients respecte els productes de la UE o de fora de la UE. En cada botiga, a la fi del dia, a partir de les caixes es genera una seqüència del tipus: <c1 q1 p1 c2 q2 p2 ..... cn qn pn 0> on ci és el codi del producte i. Tots els codis són números de 8 xifres. Els productes europeus comencen amb xifres del conjunt 0-4. Els de la resta del món comencen amb les xifres 5-9. qi és la quantitat de producte i adquirit. pi és el preu unitari del producte i. 0 és el número 0 i indica el final de la seqüència Tasca: Crear en llenguatge algorísmic el mòdul EU_import (acció o funció, el més apropiat i justifiqueu la tria) que llegeixi de l'entrada estàndard la seqüència diària corresponent a una botiga i retorni quin percentatge de la facturació es correspon a productes de la UE funció EU_import() :real VAR: c:enter; q:enter; p:real; import_EU: real; import_Total: real; import:real; FVAR; import_EU=0; import_Total=0; c=llegir (); mentre(c>0) fer q=llegirEnter(); p=leer(); import=enterAReal(q)*p; // llegirCaracter funcio que retorna un caracter introduït pel teclat del computador // si(llegirCaracter(c)=0) import_EU=import_EU+import; si(lllegirCaracter (c)=1) import_EU=import_EU+import; si(llegirCaracter (c)=2) import_EU=import_EU+import; si(lllegirCaracter (c)=3) import_EU=import_EU+import; si(llegirCaracter (c)=4) import_EU=import_EU+import; import_Total=import_Total+import; c=llegir (); fmentre retorna import_EU*100/import_Total; Valoració - Determinació del tipus de mòdul, 0.1; justificació, 0.4. - Determinació i justificació dels paràmetres paràmetres: 0.25. - Determinació de variables: 0.25. - Tractament de la seqüència: 1.0. 2
  • 3. 3
  • 4. Exercici 2: Treball amb generació de seqüències [20 %] Un matemàtic jubilat, quan va començar a treballar es va comprometre a fer la seqüència de la seva vida: a copiar en una seqüència tots els números enters de tres o més xifres que ha emprat al llarg de tota la seva carrera laboral. El dia que es va jubilar va posar, per acabar la seqüència, un 1. El matemàtic té la teoria que no totes les xifres tenen les mateixes probabilitats d'aparèixer en un número de tres o més xifres i ara li toca mirar-se tota la seqüència de la seva vida i comprovar la seva teoria. Podríeu ajudar-lo? Tasca: Creeu un mòdul myLifeSeq (acció o funció, el més adequat i justifiqueu la tria) que rebi una xifra, llegeixi de l'entrada estàndard la seqüència i digui quants de cops apareix la xifra en la seqüència de la vida del matemàtic. Indicacions preceptives: La seqüència està constituïda per números, per la qual cosa el tractament per seleccionar les seves xifres una a una, ha de ser un tractament aritmètic. En aquests sentit ha de ser útil emprar els operadors div i mod. funció n m ..... 1 funcio myLifeSeq(i:enter) llegir la seqüència recorregut de la seqüència fins a 1 valor --> desglosar-ho en unitats 2012 --> 2, 0, 1, 2 comptar nombre de vegades que apareix i retornar i ffuncio recorregut: posicionar la seq. mentre no fi accions avança fmentre function myLifeSeq(i: enter): enter var n,d,c:enter fvar c:=0; n:=llegirEnter (); mentre no (n=1) fes //descomposar el nombre en digits mentre no (n=0) fes d:=n mod10; n:=n div 10; si (i=d) llavors c++; fmentre n:=llegirEnter (); fmentre retorna c; Valoració - Determinació del tipus de mòdul, 0.1; justificació, 0,4. - Determinació de paràmetres: 0’25. 4
  • 5. - Determinació de variables: 0.25. - Tractament de la seqüència: 1.0. 5
  • 6. Exercici 3: Treball amb seqüències en PHP [20 %] Disposem d'una seqüència de tres o més números positius cadascun d'ells separat del següent per un espai. La seqüència finalitza amb un zero. Tasca: Es demana un programa que sigui capaç de llegir un fitxer que contingui una cadena d'aquestes característiques i vagi escrivint en la pantalla blocs de quatre provinents de la llista i separats per comes segons les següents normes a. Els quatre números de cada línia s’escriuran ordenats de menor a major i separats per comes. b. La primera línia mostrarà els quatre primers números de la seqüència. c. A cada línia nova es traurà el número més antic de la línia anterior i s’afegirà un nou número de la seqüència. Es pot observar com s’ha fet en la pantalla següent en què es tracta la seqüència 12 11 10 9 8 7 6 5 4 3 2 1 0 Primer s’ha tractat 12 11 10 9, després 11 10 9 8, després 10 9 8 7, ..., 4 3 2 1 d. El 0 final no es considera part de les dades. Indica només la fi de la seqüència. Quan s’arribi al 0 s’escriurà el missatge End of List Indicacions preceptives  El fitxer php rebrà el nom prac1_exer3.php  La crida al programa serà del tipus prac1_exer3.php? filename=data30 per la qual cosa s'haurà d'emprar la instrucció $filename=$_GET["filename"]; per carregar el nom del fitxer que incorpora la instrucció que assigna valor a la variable $cadena. Un cop carregat aquest fitxer, es pot incorporar la instrucció al programa mitjançant l'ordre include($filename)1 ; ambdues instruccions ja formen part de la plantilla i són les primeres del programa principal. 1 http://es2.php.net/manual/es/function.include.php 6
  • 7.  Els fitxers de dades consten d’una única instrucció de php en què la variable $cadena rep com valor una cadena de text integrada per una sèrie de números enters i positius que estan separats per un espai i finalitza en un 0 Per exemple el fitxer data30 té el següent contingut <?php $cadena = "12 11 10 9 8 7 6 5 4 3 2 1 0"; ?>  Per tal de recollir els números un a un de la seqüència que conté la cadena, s'aconsella emprar la combinació de les instruccions explode i array_shift. Per tal d'obtenir de la cadena $string un a un els números que la formen, on s'ha fet servir com separador el caracter $c, podeu emprar consecutivament:  $var1 = explode ($c, $string);2 // crea una llista amb els valors de $string  $var2 = array_shift($var1);3 // extrau el primer element de la llista Podeu observar el codi i veure com funciona l'arxiu example.php que s'adjunta a l'enunciat. La crida és del tipus example.php?filename=data53 i fa servir com separador l'espai. Si modifiqueu la instrucció $var1 = explode(' ', $cadena); a $var1 = explode(', ', $cadena); llavors estaríeu fent servir com separador la coma en lloc de l’espai i la separació de la cadena en elements seria diferent Podeu comprovar el funcionament del programa que se us demana que escriviu amb la crida: http://prog.uoc.edu/prac1/prac1_exer3.php?filename=data30 Podeu provar canviant els noms dels fitxers de dades (data30 a data33).  Les instruccions per carregar el fitxer amb la variable $cadena i crear la llista de números rebuts ($data) ja formen part de la plantilla.  Els fitxers de dades s'hauran d'ubicar a la mateixa carpeta que els php Nota important Una de les feines a realitzar és ordenar cada bloc de 4 números a tractar i es una tasca que ha de programar l’estudiant. En PHP existeix la funció sort que ordena els elements que formen part d’un array. Queda especialment prohibit l’ús de la funció sort de PHP en la resolució d’aquest problema. Valoració - Tractament de la seqüència: 1.2 - Procés d’ordenament de un conjunt de 4 números: 0.4. - Concisió en l'ús de composicions i estalvi de variables: 0.4 2 http://es2.php.net/manual/es/function.explode.php 3 http://es2.php.net/manual/es/function.array-shift.php 7
  • 8. //Aquí heu de posar el vostre codi <?php /************* FUNCTION *************/ //functions code function LF() { //line feed print "<br />"; } function ordenar($n,$p) { //ordenar l'array de quatre posicions $i=0; $pos=$p; while($i<4) { $j=$i+1; while($j<4) { if($n[$i]>$n[$j]) { $aux=$n[$i]; $n[$i]=$n[$j]; $n[$j]=$aux; } $j++; } $i++; } imprimir($n); //retorna la posicio on va $p } 8
  • 9. function imprimir($n) { //imprimir els 4 valors de n $i=0; while($i<4) { echo $n[$i]; if($i<3) echo ", "; $i++; } echo "<br>"; } /************* MAIN *************/ //main code $filename = $_GET["filename"]; include($filename); $data = explode(" ",$cadena); $i=0; $n[0]=$data[$i]; $n[1]=$data[$i+1]; $n[2]=$data[$i+2]; $n[3]=$data[$i+3]; ordenar($n, 0); $pos=0; $i=$i+3; if($n[3]==0) { $fi=1; }else{ $fi=0; } while($fi==0) { $i++; 9
  • 11. Exercici 4: Treball amb seqüències de seqüències en PHP [20 %] Els nostres amics de la xavalla, han decidit que, en lloc de trobar-se i mirar que duen a les butxaques, escriuran una seqüència. Primer de tot han decidit codificar les monedes de manera que amb un 1 es codifica la moneda d’1 cèntim, amb un 2 la de 2 cèntims, amb un 3 la de 5 cèntims i així, de manera creixent fins que el 8 codifica la moneda de 2 €. Cada amic escriu la seva part de la seqüència posant al principi el seu nom, després el codi de tot el que contenen les butxaques i després un 0 que indica que s’ha acabat amb les seves monedes. Després del zero continua el nom i les monedes d’un altre amic i un altre zero, etc. Al final de tot hi posen el caràcter '#'. Per exemple: Solo 2 4 4 6 0 Leia 3 1 2 5 8 0 Chewbacca 2 4 4 0 # Conté les dades de 3 amics: 1. Solo amb una moneda de 2 cèntims, dues de 10 cèntims i una de 50 cèntims. 2. Leia amb una moneda de 5 cèntims, una de 1, una de 2, una de 20 i una de 2 euros. 3. Chewbacca amb una moneda de 2 cèntims i 2 de 10. Tasca: Crear un programa que sigui capaç de mostrar en pantalla els continguts de les butxaques dels amics, el total de cadascú i al final digui quin dels amics té més diners; tot això seguint normes exposades a partir de la seqüència que es llegirà d'un arxiu de dades que la carrega a la variable $cadena. 11
  • 12. Indicacions preceptives  El fitxer php rebrà el nom prac1_exer4.php  La crida al programa serà del tipus prac1_exer4.php? filename=data40  Es faciliten les imatges per mostrar el contingut de les butxaques 1c.png 2c.png 5c.png 10c.png 20c.png 50c.png 1e.png 2e.png  Per a l'execució, totes les imatges se situaran a la mateixa carpeta de localhost que el fitxer php  Es faciliten arxius de dades de prova amb noms data40, data41, ..., data43. Els arxius, que són arxius de text, s'hauran d'ubicar a la mateixa carpeta que el fitxer php.  Es crearà la function putImage que rebrà el valor d’una moneda i mostrarà la seva imatge a la pantalla. Sempre que s’hagi de mostrar una moneda es farà servir aquesta function.  Es crearà la function getValue que rebrà com paràmetre un número enter entre 1 i 8 (codi) i retornarà el valor de la moneda a què equival segons la següent taula . codi 1 2 3 4 5 6 7 8 valor 0.01 € 0.02 € 0.05 € 0.10 € 0.20 € 0.50 € 1 € 2 €  Les instruccions que llegeixen la cadena de dades i posen les dades en la llista de nom $data ja formen part de la plantilla i no s’han de modificar.  Podeu comprovar el funcionament del programa que se us demana que escriviu amb la crida: http://prog.uoc.edu/prac1/prac1_exer4.php?filename=data40 o, si voleu, canviant el nom del fitxer de dades Consells El programa ha de veure’s com el tractament d’una seqüència on cadascun dels elements és una seqüència.  La seqüència principal finalitza en trobar el caràcter “#” i els elements d’aquesta seqüència estan formats per un nom i una seqüència de xifres.  Les seqüències secundàries són seqüències de xifres que finalitzen amb un 0  Recordeu que la instrucció array_shift($data) agafarà cada vegada una dada elemental (un nom, un número) i no pot agafar una seqüència de cop.  Podeu emprar per a la confecció d’aquest exercici (i és aconsellable), functions provinents de les PACs anteriors be sigui directament o bé adaptades als nous imperatius. Podeu emprar functions construïdes per vosaltres o bé provinents de les solucions. Valoració - Funcio putImage: 0.3 - Funció getValue: 0.3 - Tractament de la seqüència: 1.0 12
  • 13. - Concisió en l'ús de composicions i estalvi de variables: 0.4 13
  • 14. //Aquí heu de posar el vostre codi <?php /************* FUNCTION *************/ //functions code function LF() { //line feed print "<br />"; }// de LF function putImage($img) { print "<img src='$img.png'>"; } function getValue($coin) { $table_coins_values=array(0, 0.01, 0.02, 0.05, 0.10, 0.20, 0.50, 1.00, 2.00, 5.00, 10.00, 20.00, 50.00); return $table_coins_values[$coin]; } function maxim_value($seq, $nSeq) { $max=0; $i=0; while($i<$nSeq) { if($seq[$max]['value']<$seq[$i]['value']) $max=$i; $i++; } echo "Is most rich ".$seq[$max]['nom']." <br> Pocket money ".$seq[$max]['value']; } /************* MAIN *************/ //main code $filename = $_GET["filename"]; 14
  • 15. include($filename); $data = explode(" ",$cadena); $table_coins=array(' ','1c','2c','5c','10c','20c','50c','1e','2e','5e','10e','20e','50e'); $fi=0; $inici_seq=1; $nSeq=0; $i=0; while($fi==0) { if($inici_seq==1) { $nom=$data[$i]; if($nom=='#') { $fi=1; LF(); }else { $inici_seq=0; $seq[$nSeq]['nom']=$nom; $seq[$nSeq]['value']=0; LF(); echo $nom; LF(); } }else { $coin=$data[$i]; if($coin==0) { $inici_seq=1; echo $seq[$nSeq]['value']; $nSeq++; }else { putImage($table_coins[$coin]); 15
  • 17. Exercici 5: Treball amb seqüències de caràcters a l'entrada en PHP [20 %] Un espia ha dissenyat un mecanisme per enviar missatges codificats dins d’un text que finalitza amb el caràcter ‘#’. Es tracta que entre les lletres d’un text d’aspecte inofensiu hi introdueix el caràcter '@'per indicar que vindrà un caràcter del missatge amagat. Primer va posar simplement la '@' just abans del caràcter que amagava. Per exemple la cadena de text: “Amada @Laur@a,@ mucho@s pal@omos y @palom@as van@ @bolando com@o @buitres bl@ancos#” amagava el missatge “La sopa boba”. (en el text codificat s’han subratllat els caràcters codificats i nosaltres no avaluarem l’ortografia de l’espia) Com que el van descobrir molt aviat ara ha pensat en posar la lletra codificada a diferents distàncies de la '@', primer a distancia 0, després a distància 1, després a distancia 2 i anar repetint (0, 1, 2) Veiem un exemple d’aquest revolucionari mètode: “A@mada @Laura, muchos @palom@o@s y palomas van bolando como bui@tres blanco@s#” amaga el missatge “malo es”. (en el text codificat s’han subratllat els caràcters codificats per comprovar les distàncies i marcat en vermell els caràcter intercalats) Tasca: Crear un programa que rebi un fitxer que conté una cadena de text i escrigui en la pantalla la cadena completa i, sota, el missatge codificat. Els textos que empra per intercalar les ‘@’ mai tenen dins del seu contingut original ni el caràcter ‘@’ ni el caràcter ‘#’, de manera que si quan es treballa amb una cadena de text es troba la ‘@’ sabem que després, a la distància que calgui, vindrà una lletra codificada. I si es troba un ‘#’ és que ja ha acabat el missatge i no cal mirar més. 17
  • 18. Indicacions preceptives  El fitxer php rebrà el nom prac1_exer5.php  La crida al programa serà del tipus prac1_exer5.php?filename=data50  Les instruccions per carregar el fitxer de dades i posar el text a la variable $cadena ja formen part del programa principal de la plantilla .  Podeu comprovar el funcionament del programa que se us demana que escriviu amb la crida: http://prog.uoc.edu/prac1/prac1_exer5.php?filename=data50 o canviant el nom del fitxer de dades.  Es faciliten diversos arxius de dades amb els noms data50 a data53. Són fitxers de text i podeu obrir-los per comprovar el contingut: una instrucció php que assigna valor a $cadena.  No es pot emprar variables globals. Consells  Recordeu que es poden agafar un a un els caràcters que formen una cadena de text emprant el nom de la variable i l’index del caràcter que volem tractar. El primer caràcter d’una cadena té l’index 0. Per exemple, si tenim la instrucció $text=”Hola”; llavors $text[0] és la ‘H’; $text[1] és la ‘o’; $text[2] és la ‘l’; i $text[3] és la ‘a’.  Recordeu que per concatenar dues cadenes de text o una cadena i un caràcter existeix l’operador punt (.). Per exemple $a = “Hola “.$name.”, què tal?”; en el cas que la variable $name tingués com contingut el valor “Laura”, faria que el contingut de $a passés a ser “Hola Laura, què tal?”. Valoració - Treball amb la cadena de text: 0.7 - Tractament de la seqüència: 1.0 - Concisió en l'ús de composicions i estalvi de variables: 0.3 18
  • 19. //Aquí heu de posar el vostre codi <?php /************* FUNCTION *************/ //functions code function LF() { //line feed print "<br />"; }// de LF function nova_distancia($distancia) { $distancia++; return $distancia%3; } function imprimir_missatge($cadena, $text) { echo 'Light missage'; LF(); echo $cadena; LF(); echo 'Shadow missage'; LF(); echo $text; } /************* MAIN *************/ //main code $filename = $_GET["filename"]; include($filename); $text=''; $distancia=0; $index=0; $fi=0; 19