<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
		<id>http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsort</id>
		<title>wikiserver - Contribucions de l’usuari [ca]</title>
		<link rel="self" type="application/atom+xml" href="http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rsort"/>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php/Especial:Contribucions/Rsort"/>
		<updated>2026-04-27T07:35:15Z</updated>
		<subtitle>Contribucions de l’usuari</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=19309</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=19309"/>
				<updated>2026-04-24T15:39:16Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Normalització 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Normalització 1==&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Considereu la relació universal formada pels atributs Assig (assignatura), Aula, Alum (alumne), Prof (professor), Hora i Nota (qualificació).&lt;br /&gt;
&lt;br /&gt;
Se sap que cada assignatura té un únic professor; una aula, en un moment determinat, només pot estar ocupada per una única assignatura, i per cada assignatura hi ha una qualificació.&lt;br /&gt;
&lt;br /&gt;
A partir de la relació universal, dissenyeu l’esquema de dependències funcionals i apliqueu el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
Definició de la relació universal:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (Assig, Aula, Alum, Prof, Hora, Nota)&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions de l’enunciat, és aquest:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio1.png |500px|center| Solució normalització exercici 1]]&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar la formada pels atributs Assig, Aula, Hora i Alum, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL ('''''Assig, Aula, Hora, Alum''''', Prof, Nota)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs que no formen part de la clau primària i que tenen dependència funcional no total de la clau.&lt;br /&gt;
&lt;br /&gt;
En efecte, l’atribut Prof depèn d’Assig, i no pas de Nota. També, l’atribut Nota depèn dels atributs Assig i Alum. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPAIS ('''''Aula, Hora''''', Assig)&lt;br /&gt;
&lt;br /&gt;
DOCÈNCIA ('''''Assig''''', Prof)&lt;br /&gt;
&lt;br /&gt;
QUALIFICACIONS ('''''Assig, Alum''''', Nota)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les tres relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben 4FN, ja que cap d’elles no té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en 5FN, ja que cap d’elles no té dependències de reunió.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Normalització 2==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una federació esportiva vol informatitzar les dades dels esportistes federats, els quals han de ser, obligatòriament, membres d’algun club esportiu. A aquest efecte, es considera que els esportistes estan identificats per un número de federat i poden haver estat en diferents clubs, identificats per un codi, diverses vegades. A part, cada esportista ha passat, al llarg de la seva història, per diferents categories.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència de l’esportista i del club. Ah! les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de la federació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Esp (esportista); Dir (direcció); Ciu (ciutat); Cat (categoria)&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio2.png |600px|center| Solució normalització exercici 2]]&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que un esportista no tindrà dues vegades la mateixa categoria, és a dir, en passar d’aleví a infantil, ja no tornarà a ser aleví mai, per la qual cosa, donat un esportista i una categoria, només ens podem trobar amb una data d’inici a la categoria (DataIniCat) i una data final de la categoria (DataFiCat). No passa el mateix en el cas del club al qual pertany un esportista, ja que com es dedueix de l’enunciat, un esportista pot passar per un club diverses vegades. Per tant, la data de finalització en un club (DataFiClub) depèn funcionalment de l’esportista, el club i la data d’inici en el club (DataIniClub).&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar NúmEsp, CodClub, DataIniClub i Categoria, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp, NomCiu)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CLUBS (_NumEsp, CodClub, DataIniClub_, DataFiClub)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CATEGORIES (_NúmEsp, Categoria_, DataIniCat, DataFiCat)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les quatre relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES i CLUBS no es troben en 3FN donat que existeix dependència funcional transitiva:&lt;br /&gt;
&lt;br /&gt;
NumEsp -- &amp;gt;  CodCiuEsp -- &amp;gt; NomCiu   i&lt;br /&gt;
&lt;br /&gt;
CodClub -- &amp;gt;  CodCiuClub -- &amp;gt; NomCiu&lt;br /&gt;
&lt;br /&gt;
Per tal de posar les relacions en 3FN creem una relació nova:&lt;br /&gt;
&lt;br /&gt;
CIUTATS (_CodCiu_, NomCiu)&lt;br /&gt;
&lt;br /&gt;
i eliminem el NomCiu de les relacions ESPORTISTES i CLUBS:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub)&lt;br /&gt;
&lt;br /&gt;
Ara totes les relacions es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Normalització 3==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una associació d’escoles vol informatitzar les dades dels alumnes matriculats en les escoles membres al llarg de la seva història. A aquest efecte, es considera que els alumnes estan identificats per un DNI i es poden matricular d’un curs determinat en diferents escoles, identificades per un codi, per seguir-hi diferents tipus d’estudis, els quals s’identifiquen per un mateix codi en totes les escoles. També interessa saber, per a cada curs, en quin únic nivell d’aquells estudis està matriculat, el grup i l’aula, considerant que cada grup d’un nivell determinat, en cada curs, té assignada una única aula.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència actuals de l’alumne i de l’escola, i el nom dels estudis. Ah, les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de l’associació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal següent:&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (DNIAlu, NomAlu, AdrAlu, CodCiuAlu, NomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Alu (alumne); Adr (adreça); Ciu (ciutat); Esc (escola); Est (estudis)&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio3.png |600px|center| Solució normalització exercici 3]]&lt;br /&gt;
&lt;br /&gt;
Fixeu-vos que un alumne en una escola per a uns estudis i en un curs està en un únic nivell i grup. L’aula no és un fet que s’hagi d’assignar a l’alumne, ja que és cada grup d’un nivell d’uns estudis en un curs i en una escola que té una aula assignada.&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar dni_alu, cod_esc, cod_est i curs, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (DniAlu, NomAlu, AdrAlu, CodCiuAlu, MomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ALUMNES (DNIAlu, NomAlu, AdrAlu, CodCiuAlu)&lt;br /&gt;
&lt;br /&gt;
ESCOLES (CodEsc, NomEsc, AdrEsc, CodCiuEsc)&lt;br /&gt;
&lt;br /&gt;
CIUTATS (CodCiu, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESTUDIS (CodEst, NomEst)&lt;br /&gt;
&lt;br /&gt;
MATRÍCULES (DNIAlu, CodEsc, CodEst, Curs, Nivell, Grup)&lt;br /&gt;
&lt;br /&gt;
ASSIGNACIÓ_AULES (CodEsc, CodEst, Curs, Nivell, Grup, Aula)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les sis relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19308</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19308"/>
				<updated>2026-04-24T15:27:06Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Empresa de comidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Id_curs''''', Data_inici, Data_final, Codi_curs, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Id_curs, DNI_alumne''''', Nota) ON {Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, Id_gabia) ON {Id_gabia} REFERENCIA GABIA &lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT ADMET VALORS NULS&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''Id_agencia, Num_reserva'''', Data_ini, Data_fin, DNI_CLI) ON {DNI_CLI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''Id_agencia, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {Id_agencia, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
&lt;br /&gt;
SENSE ADMETRE VALORS NULS&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, excepte:&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon) &lt;br /&gt;
&lt;br /&gt;
AVALADOR ('''''DNI_CLI''''', DNI_AVAL) ON {DNI_CLI} REFERENCIA CLIENT I ON {DNI_AVAL} REFERENCIA CLIENT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) ON {Num_magatzem} REFERENCIA MAGATZEM&lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
Curs ('''''Num_curs''''', Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor ('''''DNI''''', Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
Assignatura ('''''Nom_assig, Num_curs''''') ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup ('''Lletra, Id_curs''', DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir ('''Nom_assig, Num_curs, Lletra, Id_curs''', Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula ('''Num_aula''', Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne ('''Num_matricula''', Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} referencia Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} referencia Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} referencia Vivenda on {dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis: Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} referencia Bloc y {Dni } referencia Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona: Dni, Telefon on {Dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Cognoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Porta }ref Pis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
LINIA ('''''Id_linia''''', Color, Hora_primer, Hora_darrer)&lt;br /&gt;
&lt;br /&gt;
ESTACIO ('''''Id_estacio''''', Nom, Hora_obrir, Hora_tancar)&lt;br /&gt;
&lt;br /&gt;
ACCES ('''''Id_estacio, Num_acces''''', Carrer, Portal) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
COTXERA ('''''Id_estacio''''', Num_trens, Num_vagons) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
TREN ('''''Id_tren''''', Model, Data_compra, Max_vagons, Id_estacio) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
ARRIBADA ('''''Id_arribada''''', Sentit, Numero, Data_hora_arr, Data_hora_sor, Id_tren) ON {Id_tren} REFERENCIA TREN&lt;br /&gt;
&lt;br /&gt;
CONSTAR ('''''Id_linia, Id_estacio''''', Ordre, Segons_ant, Segons_seg) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
PASSAR ('''''Id_linia, Id_estacio''''', Id_arribada) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO I {Id_arribada} REFERENCIA {ARRIBADA}&lt;br /&gt;
&lt;br /&gt;
SERVIR ('''''Id_tren, Data_inici''''', Id_linia, Data_final) ON {Id_tren} REFERENCIA TREN I {Id_linia} REFERENCIA LINIA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EQUIP ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
COMPONENT ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''NIF''''', Nom, Cognoms, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
SECCIO ('''''Id_seccio''''', Nom) &lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''Id_Emp''''', DNI, Nom, Cognoms, Id_seccio) ON {Id_seccio} REFERENCIA SECCIO&lt;br /&gt;
&lt;br /&gt;
COMPOSAR ('''''Codi_equip, Codi_component''''', Quantitat) ON {Codi_equip} REFERENCIA EQUIP I {Codi_component} REFERENCIA COMPONENT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_EQ ('''''Codi_equip, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_equip} REFERENCIA EQUIP , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_CP ('''''Codi_component, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_component} REFERENCIA COMPONENT , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
LLIBRE ( ''''''ISBN'''''' , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( ''''''Id_autor'''''' , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ''''''ISBN, id_autor'''''') ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( ''''''Id _editorial'''''' , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ''''''ISBN, Id_editorial'''''' ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ''''''ISBN'''''' , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ''''''ISBN'''''' , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( ''''''Id_magatzem'''''' , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ''''''ISBN, Id_magatzem'''''' , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( ''''''Codi'''''' , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( ''''''Codi'''''', Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( ''''''NIF'''''' , Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( ''''''Id_cistella'''''' , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( ''''''Id_cistella , ISBN'''''' , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19307</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19307"/>
				<updated>2026-04-24T14:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Empresa de comidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=19306</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=19306"/>
				<updated>2026-04-24T14:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Normalització 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Normalització 1==&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Considereu la relació universal formada pels atributs Assig (assignatura), Aula, Alum (alumne), Prof (professor), Hora i Nota (qualificació).&lt;br /&gt;
&lt;br /&gt;
Se sap que cada assignatura té un únic professor; una aula, en un moment determinat, només pot estar ocupada per una única assignatura, i per cada assignatura hi ha una qualificació.&lt;br /&gt;
&lt;br /&gt;
A partir de la relació universal, dissenyeu l’esquema de dependències funcionals i apliqueu el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
Definició de la relació universal:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (Assig, Aula, Alum, Prof, Hora, Nota)&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions de l’enunciat, és aquest:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio1.png |500px|center| Solució normalització exercici 1]]&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar la formada pels atributs Assig, Aula, Hora i Alum, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL ('''''Assig, Aula, Hora, Alum''''', Prof, Nota)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs que no formen part de la clau primària i que tenen dependència funcional no total de la clau.&lt;br /&gt;
&lt;br /&gt;
En efecte, l’atribut Prof depèn d’Assig, i no pas de Nota. També, l’atribut Nota depèn dels atributs Assig i Alum. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPAIS ('''''Aula, Hora''''', Assig)&lt;br /&gt;
&lt;br /&gt;
DOCÈNCIA ('''''Assig''''', Prof)&lt;br /&gt;
&lt;br /&gt;
QUALIFICACIONS ('''''Assig, Alum''''', Nota)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les tres relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben 4FN, ja que cap d’elles no té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en 5FN, ja que cap d’elles no té dependències de reunió.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Normalització 2==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una federació esportiva vol informatitzar les dades dels esportistes federats, els quals han de ser, obligatòriament, membres d’algun club esportiu. A aquest efecte, es considera que els esportistes estan identificats per un número de federat i poden haver estat en diferents clubs, identificats per un codi, diverses vegades. A part, cada esportista ha passat, al llarg de la seva història, per diferents categories.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència de l’esportista i del club. Ah! les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de la federació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Esp (esportista); Dir (direcció); Ciu (ciutat); Cat (categoria)&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio2.png |600px|center| Solució normalització exercici 2]]&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que un esportista no tindrà dues vegades la mateixa categoria, és a dir, en passar d’aleví a infantil, ja no tornarà a ser aleví mai, per la qual cosa, donat un esportista i una categoria, només ens podem trobar amb una data d’inici a la categoria (DataIniCat) i una data final de la categoria (DataFiCat). No passa el mateix en el cas del club al qual pertany un esportista, ja que com es dedueix de l’enunciat, un esportista pot passar per un club diverses vegades. Per tant, la data de finalització en un club (DataFiClub) depèn funcionalment de l’esportista, el club i la data d’inici en el club (DataIniClub).&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar NúmEsp, CodClub, DataIniClub i Categoria, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp, NomCiu)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CLUBS (_NumEsp, CodClub, DataIniClub_, DataFiClub)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CATEGORIES (_NúmEsp, Categoria_, DataIniCat, DataFiCat)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les quatre relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES i CLUBS no es troben en 3FN donat que existeix dependència funcional transitiva:&lt;br /&gt;
&lt;br /&gt;
NumEsp -- &amp;gt;  CodCiuEsp -- &amp;gt; NomCiu   i&lt;br /&gt;
&lt;br /&gt;
CodClub -- &amp;gt;  CodCiuClub -- &amp;gt; NomCiu&lt;br /&gt;
&lt;br /&gt;
Per tal de posar les relacions en 3FN creem una relació nova:&lt;br /&gt;
&lt;br /&gt;
CIUTATS (_CodCiu_, NomCiu)&lt;br /&gt;
&lt;br /&gt;
i eliminem el NomCiu de les relacions ESPORTISTES i CLUBS:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub)&lt;br /&gt;
&lt;br /&gt;
Ara totes les relacions es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Normalització 3==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una associació d’escoles vol informatitzar les dades dels alumnes matriculats en les escoles membres al llarg de la seva història. A aquest efecte, es considera que els alumnes estan identificats per un DNI i es poden matricular d’un curs determinat en diferents escoles, identificades per un codi, per seguir-hi diferents tipus d’estudis, els quals s’identifiquen per un mateix codi en totes les escoles. També interessa saber, per a cada curs, en quin únic nivell d’aquells estudis està matriculat, el grup i l’aula, considerant que cada grup d’un nivell determinat, en cada curs, té assignada una única aula.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència actuals de l’alumne i de l’escola, i el nom dels estudis. Ah, les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de l’associació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal següent:&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (DNIAlu, NomAlu, AdrAlu, CodCiuAlu, NomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Alu (alumne); Adr (adreça); Ciu (ciutat); Esc (escola); Est (estudis)&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio3.png |600px|center| Solució normalització exercici 3]]&lt;br /&gt;
&lt;br /&gt;
Fixeu-vos que un alumne en una escola per a uns estudis i en un curs està en un únic nivell i grup. L’aula no és un fet que s’hagi d’assignar a l’alumne, ja que és cada grup d’un nivell d’uns estudis en un curs i en una escola que té una aula assignada.&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar dni_alu, cod_esc, cod_est i curs, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (DniAlu, NomAlu, AdrAlu, CodCiuAlu, MomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ALUMNES (DNIAlu, NomAlu, AdrAlu, CodCiuAlu)&lt;br /&gt;
&lt;br /&gt;
ESCOLES (CodEsc, NomEsc, AdrEsc, CodCiuEsc)&lt;br /&gt;
&lt;br /&gt;
CIUTATS (CodCiu, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESTUDIS (CodEst, NomEst)&lt;br /&gt;
&lt;br /&gt;
MATRÍCULES (DNIAlu, CodEsc, CodEst, Curs, Nivell, Grup)&lt;br /&gt;
&lt;br /&gt;
ASSIGNACIÓ_AULES (CodEsc, CodEst, Curs, Nivell, Grup, Aula)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les sis relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19305</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19305"/>
				<updated>2026-04-24T14:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Empresa de comidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19304</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19304"/>
				<updated>2026-04-20T18:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Alquiler automóviles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Id_curs''''', Data_inici, Data_final, Codi_curs, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Id_curs, DNI_alumne''''', Nota) ON {Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, Id_gabia) ON {Id_gabia} REFERENCIA GABIA &lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT ADMET VALORS NULS&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''Id_agencia, Num_reserva'''', Data_ini, Data_fin, DNI_CLI) ON {DNI_CLI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''Id_agencia, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {Id_agencia, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
&lt;br /&gt;
SENSE ADMETRE VALORS NULS&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, excepte:&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon) &lt;br /&gt;
&lt;br /&gt;
AVALADOR ('''''DNI_CLI''''', DNI_AVAL) ON {DNI_CLI} REFERENCIA CLIENT I ON {DNI_AVAL} REFERENCIA CLIENT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) ON {Num_magatzem} REFERENCIA MAGATZEM&lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
Curs ('''''Num_curs''''', Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor ('''''DNI''''', Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
Assignatura ('''''Nom_assig, Num_curs''''') ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup ('''Lletra, Id_curs''', DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir ('''Nom_assig, Num_curs, Lletra, Id_curs''', Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula ('''Num_aula''', Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne ('''Num_matricula''', Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} referencia Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} referencia Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} referencia Vivenda on {dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis: Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} referencia Bloc y {Dni } referencia Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona: Dni, Telefon on {Dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Cognoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Porta }ref Pis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
LINIA ('''''Id_linia''''', Color, Hora_primer, Hora_darrer)&lt;br /&gt;
&lt;br /&gt;
ESTACIO ('''''Id_estacio''''', Nom, Hora_obrir, Hora_tancar)&lt;br /&gt;
&lt;br /&gt;
ACCES ('''''Id_estacio, Num_acces''''', Carrer, Portal) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
COTXERA ('''''Id_estacio''''', Num_trens, Num_vagons) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
TREN ('''''Id_tren''''', Model, Data_compra, Max_vagons, Id_estacio) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
ARRIBADA ('''''Id_arribada''''', Sentit, Numero, Data_hora_arr, Data_hora_sor, Id_tren) ON {Id_tren} REFERENCIA TREN&lt;br /&gt;
&lt;br /&gt;
CONSTAR ('''''Id_linia, Id_estacio''''', Ordre, Segons_ant, Segons_seg) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
PASSAR ('''''Id_linia, Id_estacio''''', Id_arribada) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO I {Id_arribada} REFERENCIA {ARRIBADA}&lt;br /&gt;
&lt;br /&gt;
SERVIR ('''''Id_tren, Data_inici''''', Id_linia, Data_final) ON {Id_tren} REFERENCIA TREN I {Id_linia} REFERENCIA LINIA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EQUIP ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
COMPONENT ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''NIF''''', Nom, Cognoms, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
SECCIO ('''''Id_seccio''''', Nom) &lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''Id_Emp''''', DNI, Nom, Cognoms, Id_seccio) ON {Id_seccio} REFERENCIA SECCIO&lt;br /&gt;
&lt;br /&gt;
COMPOSAR ('''''Codi_equip, Codi_component''''', Quantitat) ON {Codi_equip} REFERENCIA EQUIP I {Codi_component} REFERENCIA COMPONENT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_EQ ('''''Codi_equip, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_equip} REFERENCIA EQUIP , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_CP ('''''Codi_component, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_component} REFERENCIA COMPONENT , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
LLIBRE ( ''''''ISBN'''''' , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( ''''''Id_autor'''''' , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ''''''ISBN, id_autor'''''') ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( ''''''Id _editorial'''''' , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ''''''ISBN, Id_editorial'''''' ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ''''''ISBN'''''' , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ''''''ISBN'''''' , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( ''''''Id_magatzem'''''' , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ''''''ISBN, Id_magatzem'''''' , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( ''''''Codi'''''' , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( ''''''Codi'''''', Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( ''''''NIF'''''' , Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( ''''''Id_cistella'''''' , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( ''''''Id_cistella , ISBN'''''' , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19303</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19303"/>
				<updated>2026-04-20T18:02:51Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Empresa de comidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19302</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19302"/>
				<updated>2026-04-20T17:40:26Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Alquiler automóviles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19301</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19301"/>
				<updated>2026-04-20T16:45:21Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19300</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19300"/>
				<updated>2026-04-20T13:26:46Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un nom per teclat i després escriure un missatge de salutació&lt;br /&gt;
::Dades d'entrada: nom (cadena)&lt;br /&gt;
::Variables: nom (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nom&lt;br /&gt;
::2. Escriure missatge de salutació&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Saludar&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Escribir &amp;quot;Diguem el teu nom:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Hola &amp;quot;,nom;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la base i l'alçada del triangle i calcular el perímetre i el àrea&lt;br /&gt;
::Dades d'entrada: base(real), alçada(real)&lt;br /&gt;
::Informació de sortida: perímetre(real) i àrea(real)&lt;br /&gt;
::Variables: base, alçada, perímetre i àrea (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir base i altura&lt;br /&gt;
::2. Calcular perímetre(2*base + 2*alçada)&lt;br /&gt;
::3. Calcular àrea (base * altura&lt;br /&gt;
::4. Mostrar perímetre i àrea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Rectangle&lt;br /&gt;
	Definir base,alcada,perimetre,area como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la base:&amp;quot;;&lt;br /&gt;
	Leer base;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la alçada:&amp;quot;;&lt;br /&gt;
	Leer alcada;&lt;br /&gt;
	perimetre &amp;lt;- 2 * base + 2 * alcada;&lt;br /&gt;
	area &amp;lt;- base * alcada;&lt;br /&gt;
	Escribir &amp;quot;El perí­metre és &amp;quot;,perimetre,&amp;quot; y el àrea es &amp;quot;,area;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la longitud dels dos catets i calcular la hipotenusa. &lt;br /&gt;
::(Teorema de Pitàgores)&lt;br /&gt;
::Variables d'entrada: catet1(real), catet2(real)&lt;br /&gt;
::Variables de sortida: hipotenusa(real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir la longitud dels catets&lt;br /&gt;
::2. Calcular hipotenusa (En un triangle rectangle el quadrat de la hipotenusa  és igual a la suma dels quadrats dels catets.)&lt;br /&gt;
::Per tant la hipotenusa és igual a l'arrel quadrada de la suma dels quadrats dels catets (funció raiz).&lt;br /&gt;
::3. Mostrar la hipotenusa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHipotenusa&lt;br /&gt;
	Definir catet1,catet2,hipotenusa como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el catet 1:&amp;quot;;&lt;br /&gt;
	Leer catet1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la catet 2:&amp;quot;;&lt;br /&gt;
	Leer catet2;&lt;br /&gt;
	hipotenusa &amp;lt;- raiz(catet1 ^ 2 + catet2 ^ 2);&lt;br /&gt;
	Escribir &amp;quot;La hipotenusa és &amp;quot;, hipotenusa;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algorisme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir dos números, calcular la suma, resta, multiplicació i divisió. &lt;br /&gt;
::Dades d'entrada: Els dos números (real)&lt;br /&gt;
::Informació de sortida: suma, resta, multiplicació, divisió(real)&lt;br /&gt;
::Variables: num1, num2 (Real). &lt;br /&gt;
::Considero que les sortides no cal desar-la en variables.&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els números&lt;br /&gt;
::2. Mostrar suma, resta, multiplicació i divisió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Calcular&lt;br /&gt;
   Definir num1,num2 Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir &amp;quot;La suma &amp;quot;, num1+num2;&lt;br /&gt;
   Escribir &amp;quot;La resta és &amp;quot;, num1-num2;&lt;br /&gt;
   Escribir &amp;quot;La multiplicació és &amp;quot;, num1*num2;&lt;br /&gt;
   Escribir &amp;quot;La divisió és &amp;quot;, num1/num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir tres números i calcular la mitjana. Suma dels tres partits 3.&lt;br /&gt;
::Dades d'entrada: els tres números (real)&lt;br /&gt;
::Informació de sortida: la mitjana (real)&lt;br /&gt;
::Variables: num1,num2,num3, mitjana (Real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els tres números&lt;br /&gt;
::2. Calcular la mitjana: (num1+num2+num3)/3&lt;br /&gt;
:.3. Mostrar la mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularMitjana&lt;br /&gt;
   Definir num1,num2,num3, mitjana Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 3:&amp;quot;;&lt;br /&gt;
   Leer num3;&lt;br /&gt;
   mitjana &amp;lt;- (num1 + num2 + num3) /3;&lt;br /&gt;
   Escribir &amp;quot;La mitjana és &amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.&lt;br /&gt;
::Dades d'entrada: minuts (entero)&lt;br /&gt;
::Informació de sortida:hores i minuts (entero)&lt;br /&gt;
::Variables: minuts, res_hores, res_minuts (entero).&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir els minuts&lt;br /&gt;
::2. Calcular a quantes hores correspon, divisió sencera entre 60.&lt;br /&gt;
::3. calcular els minuts restants: resta de la divisió entre 60.&lt;br /&gt;
::4. Mostrar hores i minuts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHoras&lt;br /&gt;
	Definir minuts, res_hores, res_min como Entero;&lt;br /&gt;
	Escribir &amp;quot;Indica la quantitat de minuts:&amp;quot;;&lt;br /&gt;
	Leer minuts;&lt;br /&gt;
	res_hores&amp;lt;-trunc(minuts / 60);&lt;br /&gt;
	res_min&amp;lt;-minuts % 60;&lt;br /&gt;
	Escribir res_hores,&amp;quot; horas i &amp;quot;,res_min,&amp;quot; minuts.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El venedor té un sou base més una comissió del 10% per cada venda. &lt;br /&gt;
::Fa tres vendes.&lt;br /&gt;
::Dades dentrada: sou base, les tres vendes (real).&lt;br /&gt;
::Informació de sortida: comissions i sou total (real).&lt;br /&gt;
::Variables: sou_base, venda1, venda2, venda3, comissió(real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir sou base&lt;br /&gt;
::2. Llegir les tres vendes&lt;br /&gt;
::3. Calculeu les comissions. Suma del 10% de cada venda.&lt;br /&gt;
::4. Mostra comissió&lt;br /&gt;
::5. Mostra sou total: sou_base+comissió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_base, venda1, venda2, venda3, comissio como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica el sou base:&amp;quot;;&lt;br /&gt;
	Leer sou_base;&lt;br /&gt;
	Escribir &amp;quot;Indica import primera venda 1:&amp;quot;;&lt;br /&gt;
	Leer venda1;&lt;br /&gt;
	Escribir &amp;quot;Indica import segona venda 2:&amp;quot;;&lt;br /&gt;
	Leer venda2;&lt;br /&gt;
	Escribir &amp;quot;Indica import tercera venda 3:&amp;quot;;&lt;br /&gt;
	Leer venda3;&lt;br /&gt;
	comissio&amp;lt;-venda1*0.1+venda2*0.1+venda3*0.1;&lt;br /&gt;
	Escribir &amp;quot;Comissió per vendes:&amp;quot;,comissio;&lt;br /&gt;
	Escribir &amp;quot;Sou total:&amp;quot;, sou_base+comissio;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final. &lt;br /&gt;
::Posteriorment es calculen els percentatges i es sumen.&lt;br /&gt;
::Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).&lt;br /&gt;
::Informació de sortida: nota final (real).&lt;br /&gt;
::Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir les notes parcials, de l'examen final i de la feina.&lt;br /&gt;
::2. Calculem la nota 55% de la mitjana de les notes parcials, més el 30% de la nota de l'examen més 15% de la nota del treball.&lt;br /&gt;
::3. Mostra nota final&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularNota&lt;br /&gt;
	Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 1:&amp;quot;;&lt;br /&gt;
	Leer parcial1;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 2:&amp;quot;;&lt;br /&gt;
	Leer parcial2;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 3:&amp;quot;;&lt;br /&gt;
	Leer parcial3;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del examen:&amp;quot;;&lt;br /&gt;
	Leer examen;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del treball:&amp;quot;;&lt;br /&gt;
	Leer treball;&lt;br /&gt;
	nota &amp;lt;- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;&lt;br /&gt;
	Escribir &amp;quot;Nota final:&amp;quot;, nota;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen el valor de dues variables (el tipus pot ser el que vulguem). &lt;br /&gt;
::Cal intercanviar els valors de les variables&lt;br /&gt;
::Dades d'entrada: dos números en dues variables (enters).&lt;br /&gt;
::Informació de sortida: Les dues variables però amb les dades canviades (enter)&lt;br /&gt;
::Variables: num1, num2 (enters).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els dos números&lt;br /&gt;
::2. Intercanvio els valors. Necessito una variable auxiliar (aux). &lt;br /&gt;
:: Assigno &amp;quot;num1&amp;quot; a &amp;quot;aux&amp;quot;, &amp;quot;num2&amp;quot; a &amp;quot;num1&amp;quot; i &amp;quot;aux&amp;quot; a &amp;quot;num2&amp;quot;&lt;br /&gt;
::3. Mostra &amp;quot;num1&amp;quot; i &amp;quot;num2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso IntercanviarVariables&lt;br /&gt;
	Definir num1,num2,aux  como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	aux &amp;lt;- num1;&lt;br /&gt;
	num1 &amp;lt;- num2;&lt;br /&gt;
	num2 &amp;lt;- aux;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num1: &amp;quot;, num1;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num2: &amp;quot;, num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen la quantitat de monedes que tenim (de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) i calculem els diners que tenim (euros i cèntims)&lt;br /&gt;
::Dades d'entrada: monedes de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) (Enteros).&lt;br /&gt;
::Informació de sortida: total de diners: euros i cèntims (Enteros)&lt;br /&gt;
::Variables: euro2, euro1, cent50, cent20, cent10, total_euros, total_centims (Enteros)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el monedes de 2e, 1e, 50 cèntims, 20 cèntims i 10 cèntims.&lt;br /&gt;
::2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
::3. Calcular cèntims (monedes de 50c * 50 + moneda de 20c * 20 + moneda de 10c * 10)&lt;br /&gt;
::4. Convertir cèntims a euros (divisió sencera entre 100)&lt;br /&gt;
::5. Mostrar euros i cèntims totals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularDiners&lt;br /&gt;
	Definir euro2,euro1,cent50,cent20,cent10 como Entero;&lt;br /&gt;
	Definir total_euros, total_centims Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 2 euros:&amp;quot;;&lt;br /&gt;
	Leer euro2;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 1 euro:&amp;quot;;&lt;br /&gt;
	Leer euro1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 50 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent50;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 20 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent20;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 10 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent10;&lt;br /&gt;
	//2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
	total_euros &amp;lt;- euro2 * 2 + euro1;&lt;br /&gt;
	//3. Calcular cèntims (monedes de 50c * 50 + monedes de 20c * 20 + monedes de 10c * 10&lt;br /&gt;
	total_centims &amp;lt;- cent50 * 50 + cent20 * 20 + cent10 * 10;&lt;br /&gt;
	//4. Convertir cèntims a euros (divisió entera entre 100)&lt;br /&gt;
	total_euros &amp;lt;- total_euros + trunc(total_centims / 100);&lt;br /&gt;
	total_centims &amp;lt;- total_centims % 100;&lt;br /&gt;
	Escribir total_euros,&amp;quot; euros i &amp;quot;,total_centims,&amp;quot; cèntims.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.&lt;br /&gt;
::Dades d'entrada: número (enter)&lt;br /&gt;
::Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.&lt;br /&gt;
::Variables: num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el número&lt;br /&gt;
::2. Si el nombre és igual 0 escriviu &amp;quot;És igual a 0&amp;quot;&lt;br /&gt;
::3. En cas contrari si és més gran que 0 escriure &amp;quot;És més gran que 0&amp;quot;&lt;br /&gt;
::4. En altre cas escriure &amp;quot;És menor que 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularPositiuNegatiuZero&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Escribir &amp;quot;Digue'm el número :&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Si num=0 Entonces&lt;br /&gt;
		Escribir &amp;quot;És igual a 0&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			Escribir &amp;quot;És positiu&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Escribir &amp;quot;És negatiu&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat nom i contrasenya&lt;br /&gt;
::si coincideixen amb les correctes indiquem que s'ha entrat al sistema.&lt;br /&gt;
::en cas contrari indiquem que el nom o la clau són incorrectes&lt;br /&gt;
::Dades d'entrada: usuari, password (cadena)&lt;br /&gt;
::Informació de sortida: Missatges d'encert o error.&lt;br /&gt;
::Variables: usuari, password (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir l'usuari&lt;br /&gt;
::2. Llegir el password&lt;br /&gt;
::3. Si l'usuari és igual a &amp;quot;pcarbonell&amp;quot; i el password és igual a &amp;quot;pc1673&amp;quot; &lt;br /&gt;
::escriure &amp;quot;Has entrat al sistema&amp;quot;&lt;br /&gt;
::4. En cas contrari mostrar el missatge &amp;quot;Usuari/password incorrecte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Procéso Login&lt;br /&gt;
	Definir usuari, password como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix l'usuari:&amp;quot;;&lt;br /&gt;
	Leer usuari;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el password:&amp;quot;;&lt;br /&gt;
	Leer password;&lt;br /&gt;
	Si usuari=&amp;quot;pcarbonell&amp;quot; Y password=&amp;quot;pc1673&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Has entrat al sistema&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;Usuari/password incorrecte&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat dos números: nota i edat i un caràcter sexe.&lt;br /&gt;
::Es mostra &amp;quot;ACCEPTADA&amp;quot; si nota&amp;gt;=5, edat&amp;gt;=18 i el sexe és femení.&lt;br /&gt;
::Si es compleix les mateixes condicions però amb el sexe masculí -&amp;gt; &amp;quot;POSSIBLE&amp;quot; en cas contrari es mostra &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
::Dades d'entrada: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
::Informació de sortida: Missatge d'informació&lt;br /&gt;
::Variables: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir la nota, l'edat i el sexe&lt;br /&gt;
::2. si nota&amp;gt;=5, edat&amp;gt;=18 &lt;br /&gt;
::3. si sexe=&amp;quot;F&amp;quot; mostrar &amp;quot;ACCEPTADA&amp;quot; -&amp;gt; funció Mayusculas()&lt;br /&gt;
::4. si sexe=&amp;quot;M&amp;quot; mostrar &amp;quot;POSSIBLE&amp;quot;&lt;br /&gt;
::5. En cas contrari, mostrar &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComprovarNotaEdatSexe&lt;br /&gt;
	Definir nota,edat como Entero;&lt;br /&gt;
	Definir sexe como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la nota:&amp;quot;;&lt;br /&gt;
	Leer nota;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la edat:&amp;quot;;&lt;br /&gt;
	Leer edat;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el sexe (F/M):&amp;quot;;&lt;br /&gt;
	Leer sexe;&lt;br /&gt;
	Si nota&amp;gt;=5 Y edat&amp;gt;=18 Entonces&lt;br /&gt;
		Si Mayusculas(sexe)=&amp;quot;F&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Acceptada&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(sexe)=&amp;quot;M&amp;quot; Entonces&lt;br /&gt;
				Escribir &amp;quot;Possible&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El preu final del raïm es calcula multiplicant els quilos recollits pel preu de cada quilo. El preu per quilo es calcula a partir del preu inicial sumant o restant una quantitat determinada segons la mida i el tipus del raïm.&lt;br /&gt;
::Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)&lt;br /&gt;
::Informació de sortida: Preu final en euros (real) o missatge d'error&lt;br /&gt;
::Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir preu_inicial, quilos&lt;br /&gt;
::2. Llegir tipus&lt;br /&gt;
::3. Si tipus no és &amp;quot;A&amp;quot; o &amp;quot;B&amp;quot; tornar missatge d'error.&lt;br /&gt;
::4. Llegir la mida&lt;br /&gt;
::5. Si la mida no és &amp;quot;1&amp;quot; o &amp;quot;2&amp;quot; tornar missatge d'error.&lt;br /&gt;
::6. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;1&amp;quot; summe a preu_inicial 20 cèntims.&lt;br /&gt;
::7. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;2&amp;quot; summe a preu_inicial 30 cèntims.&lt;br /&gt;
::8. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;1&amp;quot; resta a preu_inicial 20 cèntims.&lt;br /&gt;
::9. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;2&amp;quot; resta a preu_inicial 30 cèntims.&lt;br /&gt;
::10. El preu_final = preu_inicial * quilos&lt;br /&gt;
::11. Mostra preu final/100 euros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso PreuUva&lt;br /&gt;
	Definir tipus como Caracter;&lt;br /&gt;
	Definir mida como Caracter;&lt;br /&gt;
	Definir preu_inicial,preu_final como Real;&lt;br /&gt;
	Definir quilos como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el preu inicial per quilos del UVA (cèntims):&amp;quot;;&lt;br /&gt;
	Leer preu_inicial;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix quants quilos has venut:&amp;quot;;&lt;br /&gt;
	Leer quilos;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el tipus de lUVA (A/B):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
	&lt;br /&gt;
	Si Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;A&amp;quot; Y Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Tipus incorrecte&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix la mida del UVA (1/2):&amp;quot;;&lt;br /&gt;
		Leer mida;&lt;br /&gt;
		Si mida&amp;lt;&amp;gt;&amp;quot;1&amp;quot; Y mida&amp;lt;&amp;gt;&amp;quot;2&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Mida incorrecte&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(tipus)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			SiNo&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
			preu_final&amp;lt;-preu_inicial * quilos;&lt;br /&gt;
			Escribir &amp;quot;El guany és&amp;quot;,preu_final/100, &amp;quot;euros.&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DescompteComercial&lt;br /&gt;
	&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Definir preuOriginal, descompte, preuFinal como Real;&lt;br /&gt;
	Definir codiDescompte como Entero;&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom de larticle: &amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el preu original: &amp;quot;;&lt;br /&gt;
	Leer preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi de descompte: &amp;quot;;&lt;br /&gt;
	Leer codiDescompte;&lt;br /&gt;
	&lt;br /&gt;
	Segun codiDescompte Hacer&lt;br /&gt;
		1: descompte &amp;lt;- preuOriginal * 0.10;&lt;br /&gt;
		2: descompte &amp;lt;- preuOriginal * 0.15;&lt;br /&gt;
		3: descompte &amp;lt;- preuOriginal * 0.20;&lt;br /&gt;
		De Otro Modo: descompte &amp;lt;- 0;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
	preuFinal &amp;lt;- preuOriginal - descompte;&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Article: &amp;quot;, nom;&lt;br /&gt;
	Escribir &amp;quot;Preu original: &amp;quot;, preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Descompte: &amp;quot;, descompte;&lt;br /&gt;
	Escribir &amp;quot;Preu final: &amp;quot;, preuFinal;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Area&lt;br /&gt;
	&lt;br /&gt;
	Definir figura Como Entero; &lt;br /&gt;
	Definir areaFig, costat, ample, llarg, base, alcada, radi Como Real;&lt;br /&gt;
	Escribir &amp;quot;Escull la figura geomètrica&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;1 Quadrat , 2 Rectangle , 3 Triangle , 4 Cercle&amp;quot;;&lt;br /&gt;
	Leer figura; &lt;br /&gt;
	&lt;br /&gt;
	Segun figura Hacer&lt;br /&gt;
		1 : &lt;br /&gt;
			Escribir &amp;quot;Introdueix la mida dun costat del quadrat&amp;quot;;&lt;br /&gt;
			Leer costat;&lt;br /&gt;
			areaFig &amp;lt;- costat * costat;&lt;br /&gt;
			&lt;br /&gt;
		2 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix lample del rectangle&amp;quot;;&lt;br /&gt;
			Leer ample;&lt;br /&gt;
			Escribir &amp;quot;Introdueix el llarg del rectangle&amp;quot;;&lt;br /&gt;
			Leer llarg;&lt;br /&gt;
			areaFig &amp;lt;- ample * llarg;&lt;br /&gt;
			&lt;br /&gt;
		3 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix la alçada del triangle&amp;quot;;&lt;br /&gt;
			Leer alcada;&lt;br /&gt;
			Escribir &amp;quot;Introdueix la base del triangle&amp;quot;;&lt;br /&gt;
			Leer base;&lt;br /&gt;
			areaFig &amp;lt;- (base * alcada) / 2;&lt;br /&gt;
			&lt;br /&gt;
		4 :&lt;br /&gt;
			Escribir &amp;quot;Ingrese el radio del circulo&amp;quot;;&lt;br /&gt;
		Leer radi;&lt;br /&gt;
			areaFig &amp;lt;- PI * radi * radi;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;làrea de la figura és: &amp;quot; , areaFig;	&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 False&lt;br /&gt;
b) num1=1 num2=2 False&lt;br /&gt;
c) num1=2 num2=1 False&lt;br /&gt;
d) num1=2 num2=2 True&lt;br /&gt;
e) num1=0 num2=0 False&lt;br /&gt;
f) num1=1 num2=0 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 True&lt;br /&gt;
b) num1=3 num2=4 False&lt;br /&gt;
c) num1=4 num2=3 True&lt;br /&gt;
d) num1=4 num2=4 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 True&lt;br /&gt;
b) num1=1 num2=2 num3=3 True&lt;br /&gt;
c) num1=1 num2=3 num3=2 False&lt;br /&gt;
d) num1=2 num2=1 num3=3 True&lt;br /&gt;
e) num1=2 num2=3 num3=1 False&lt;br /&gt;
f) num1=3 num2=2 num3=1 True&lt;br /&gt;
g) num1=3 num2=1 num3=2 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num4 Y num3 &amp;gt; num4) &lt;br /&gt;
&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3)&lt;br /&gt;
&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3 Y num1 !=num4) &lt;br /&gt;
&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num3 Y num2 &amp;lt; num4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
&lt;br /&gt;
   ((notaLit + notaCat + notaMat) / 3) &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
&lt;br /&gt;
  ((notaMat &amp;gt; (notaLit + notaCat + notaMat) / 3) Y (notaCat &amp;gt; (notaLit + notaCat + notaMat))&lt;br /&gt;
&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 O notaCat &amp;gt; 5 O notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 Y notaCat &amp;gt; 5 Y notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; vendesP2 Y vendesP1 &amp;gt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt;= 200 Y vendesP2&amp;gt;= 200 Y vendesP3 &amp;gt;= 200)&lt;br /&gt;
&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; 400 O vendesP2 &amp;gt; 400 O vendesP3 &amp;gt; 400)&lt;br /&gt;
&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3) / 3) &amp;gt; 500&lt;br /&gt;
&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP2 &amp;lt; vendesP1 O vendesP2 &amp;lt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3 &amp;gt;= 500) Y (vendesP1 + vendesP2 + vendesP3 &amp;lt;= 1000))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
::Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre.&lt;br /&gt;
::Informació de sortida: El resultat del factorial&lt;br /&gt;
::Variables: num, comptador (enter), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
::2. Inicialitza variables: resultat = 1&lt;br /&gt;
::3. Per a comptador=2 fins num&lt;br /&gt;
:::::4. resultat=resultat*comptador&lt;br /&gt;
::5. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador como Entero;&lt;br /&gt;
	Definir resultat como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para comptador&amp;lt;-2 Hasta num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El resultat és&amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un nombre. Si és senar, li sumo 1 i ja és parell. Llegim el segon número.&lt;br /&gt;
::Escric el número des del primer fins al segon de dos en dos.&lt;br /&gt;
::Dades d'entrada: dos números&lt;br /&gt;
::Informació de sortida: Els nombres parells que hi ha entre els dos anteriors&lt;br /&gt;
::Variables: num, num1, num2 (enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir num1,num2&lt;br /&gt;
::2. Si num1 és senar -&amp;gt; num1=num1+1&lt;br /&gt;
::3. Des de num1 fins a num2 de 2 en 2&lt;br /&gt;
::::4. Escriure el número&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso NumerosParells&lt;br /&gt;
	Definir num,num1,num2 Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	Si num1 % 2 = 1 Entonces&lt;br /&gt;
		num1&amp;lt;-num1+1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Para num&amp;lt;-num1 Hasta num2 Con Paso 2 Hacer&lt;br /&gt;
			Escribir Sin Saltar num,&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demana la quantitat de números que es llegiran. Anem introduint números.&lt;br /&gt;
::Hem de comptar els positius, negatius i zeros.&lt;br /&gt;
::Dades d'entrada: Quantitat de números, els números.&lt;br /&gt;
::Informació de sortida: Quantitat de positius, de negatius i de zeros.&lt;br /&gt;
::Variables: quantitat_num,num,cont_positius,cont_negatius,cont_zeros(enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo els comptadors&lt;br /&gt;
::2. Llegir quantitat de números&lt;br /&gt;
::3. Des d'1 fins a quantitat de números&lt;br /&gt;
::::4. Llegir num&lt;br /&gt;
::::5. Si num&amp;gt; 0-&amp;gt; increment cont_positius&lt;br /&gt;
::::6. Si num&amp;lt; 0-&amp;gt; increment cont_negatius&lt;br /&gt;
::::7. Si num = 0-&amp;gt; increment cont_zeros.&lt;br /&gt;
::8Mostra cont_postius, cont_negatius, cont_zeros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComptarNumerosPositiusNegatiusIZeros&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir quantitat_num,i Como Entero;&lt;br /&gt;
	Definir cont_negatius,cont_positius,cont_zeros Como Entero;&lt;br /&gt;
	cont_negatius &amp;lt;- 0;&lt;br /&gt;
	cont_positius &amp;lt;- 0;&lt;br /&gt;
	cont_zeros &amp;lt;- 0;&lt;br /&gt;
	Escribir &amp;quot;Quants números introduiràs?:&amp;quot;;&lt;br /&gt;
	Leer quantitat_num;&lt;br /&gt;
	Para i&amp;lt;-1 Hasta quantitat_num Hacer&lt;br /&gt;
		Escribir &amp;quot;Nombre &amp;quot;,i,&amp;quot;:&amp;quot; ;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			cont_positius &amp;lt;- cont_positius + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si num&amp;lt;0 Entonces&lt;br /&gt;
				cont_negatius &amp;lt;- cont_negatius + 1;&lt;br /&gt;
				Sino&lt;br /&gt;
				cont_zeros &amp;lt;- cont_zeros + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Números positius:&amp;quot;,cont_positius;&lt;br /&gt;
	Escribir &amp;quot;Números negatius:&amp;quot;,cont_negatius;&lt;br /&gt;
	Escribir &amp;quot;Nombre igual a 0:&amp;quot;,cont_zeros;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que mostri la taula de multiplicar d'un número introduït per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim el número del que volem mostrar la taula&lt;br /&gt;
::Necessitem un comptador per comptar d'1 a 10&lt;br /&gt;
:.Hem de repetir 10 vegades -&amp;gt; A cada volta hem de mostrar: el comptador * el número = resultat de la multiplicació&lt;br /&gt;
::Dades d'entrada: El número de la taula i un comptador d'1 a 10.&lt;br /&gt;
::Informació de sortida: Les 10 operacions de la taula de multiplicació&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir taula&lt;br /&gt;
::2. Des de nombre d'1 a 10&lt;br /&gt;
::::3. Mostrar num * taula = (num*taula)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulaMultiplicar&lt;br /&gt;
	Definir num, numTaula Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols mostrar la taula de multiplicar?:&amp;quot;;&lt;br /&gt;
	Leer numTaula;&lt;br /&gt;
	Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Escribir num,&amp;quot; * &amp;quot;, numTaula,&amp;quot; = &amp;quot;,num*numTaula;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::He de repetir 10 vegades (des del número 1 fins al 10) mostrar la taula de multiplicar d'aquest número.&lt;br /&gt;
::Com hem vist en l'exercici 4, per fer una taula de multiplicar hem de repetir 10 vegades per mostrar cada línia de la taula.&lt;br /&gt;
::Per tant necessito dos bucles imbricats.&lt;br /&gt;
::Dades d'entrada: Res&lt;br /&gt;
::Informació de sortida: Les deu taules de multiplicar&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Per a taula des d'1 fins a 10&lt;br /&gt;
::::2. Per num des d'1 fins a 10&lt;br /&gt;
::::::3. Mostrar taula * num = (taula*num)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulesDeMultiplicar&lt;br /&gt;
	Definir taula,num Como Entero;&lt;br /&gt;
	Para taula&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
			Escribir taula,&amp;quot; * &amp;quot;,num,&amp;quot; = &amp;quot;, taula*num;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Esperar Tecla;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Calcular el sou i les hores treballades dun empleat en una setmana (6 dies).&lt;br /&gt;
::Cal anar introduint la quantitat d'hores que treballa cada dia.&lt;br /&gt;
::Hem de saber quant es paga l'hora treballada.&lt;br /&gt;
::Cal anar acumulant les hores treballades cada dia, per poder calcular el sou.&lt;br /&gt;
::Dades d'entrada: Sou per hora, hores.&lt;br /&gt;
::Informació de sortida: Les hores acumulades, i el sou de la setmana.&lt;br /&gt;
::Variables: sou_per_hora (Real),hores, hores_acum, dia(enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1.- Inicialitzo les hores acumulades&lt;br /&gt;
::2.- Llegir sou per hora (sou)&lt;br /&gt;
::3.- Des del dia 1 al 6&lt;br /&gt;
::::4.- Llegir hores treballades&lt;br /&gt;
::::5.- Acumular les hores treballades&lt;br /&gt;
::6.- Mostrar Les hores acumulades&lt;br /&gt;
::7.- Mostrar el sou -&amp;gt; hores acumulades * sou per hora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir hores, hores_acum Como  Entero;&lt;br /&gt;
	Definir dia Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix el sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para dia&amp;lt;-1 hasta 6 Hacer&lt;br /&gt;
		Escribir &amp;quot;Quantes hores has treballat el dia &amp;quot;,dia,&amp;quot;?:&amp;quot;;&lt;br /&gt;
		Leer hores;&lt;br /&gt;
		hores_acum &amp;lt;- hores_acum + hores;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Hores acumulades a la setmana:&amp;quot;,hores_acum;&lt;br /&gt;
	Escribir &amp;quot;Sou:&amp;quot;,sou_per_hora*hores_acum;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal calcular el sou d'un nombre de treballadors, per tant necessitem el nombre de treballadors que té lempresa. També necessitem saber el sou per hora, i per cada treballador cal demanar les hores que ha treballat a la setmana.&lt;br /&gt;
::Per cada treballador cal mostrar el sou setmanal i en finalitzar el programa mostrem el total de sous pagats.&lt;br /&gt;
::Dades d'entrada: Nombre de treballadors, sou per hora, hores treballades per cada treballador.&lt;br /&gt;
::Informació de sortida: Sou de cada treballador, total pagat.&lt;br /&gt;
::Variables: hores_per_setmana, hores_acum (enter), sou_per_hora (real), treballadors, treballador (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo l'acumulador d'hores&lt;br /&gt;
::2. Llegir el nombre de treballadors&lt;br /&gt;
::3. Llegir sou per hora&lt;br /&gt;
::4. Per cada treballador&lt;br /&gt;
::::5. Llegir hores treballades per setmana&lt;br /&gt;
::::6. Mostrar sou (hores_per_setmana*sou_per_hora&lt;br /&gt;
::::7. Acumular hores treballades&lt;br /&gt;
::8. Mostrar total de pagament (hores_acum*sou_per_hora)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSalari&lt;br /&gt;
	Definir hores_per_setmana, hores_acum Como Entero;&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir treballadors, treballador Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Quants treballadors té l'empresa?:&amp;quot;;&lt;br /&gt;
	Leer treballadors;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para treballador&amp;lt;-1 Hasta treballadors Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Quantes hores ha treballat el treballador, treballador, ?&amp;quot;;&lt;br /&gt;
		Leer hores_per_setmana;&lt;br /&gt;
		hores_acum&amp;lt;-horas_acum+hores_per_setmana;&lt;br /&gt;
		Escribir &amp;quot;El treballador &amp;quot;,treballador,&amp;quot; té de sou &amp;quot;,hores_per_setmana*sou_per_hora; &lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El pagament als &amp;quot;treballadors,&amp;quot; treballadors és: &amp;quot;,hores_acum*sou_per_hora;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Fei un algoritme que mostri el següent quadrat  d'asteríscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratAstriscos&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratBlanc&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Si (fila = 1 o fila = num o col = 1 o col = num) Entonces&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;  &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	  Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-num Hasta fila Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col,&amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1. Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Hem de generar un nombre aleatori (funció aleatori) de l'1 al 100.&lt;br /&gt;
:: Necessitem un comptador per comptar els 10 intents. Al principi val 10 i anirà decrementant.&lt;br /&gt;
:: Mentre no encerti el número i em quedin intents:&lt;br /&gt;
:: Llegeixo un número&lt;br /&gt;
:: Ho comparo amb el nombre generat (dic si és més gran o més petit)&lt;br /&gt;
:: Demano un altre nombre&lt;br /&gt;
:: Puc acabar el bucle per dues raons: si he endevinat el número (he guanyat) i mostro els intents que he necessitat.&lt;br /&gt;
:: sinó he perdut, he utilitzat els 10 intents i mostro el número generat.&lt;br /&gt;
:: Dades d'entrada: número demanat a l'usuari.&lt;br /&gt;
:: Informació de sortida: Has guanyat i els intents, o has perdut i el número.&lt;br /&gt;
:: Variables: num_scret, num_ingressat, intents (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
:: 1. Genero un nombre aleatori de l'1 al 100 (num_secret)&lt;br /&gt;
:: 2. intents = 10&lt;br /&gt;
:: 3. Llegir num&lt;br /&gt;
:: 4. Mentre num&amp;lt;&amp;gt; num_secret i intents&amp;gt;1&lt;br /&gt;
:::: 5. Si num_screto&amp;gt;num -&amp;gt; Escriure &amp;quot;Molt baix&amp;quot;&lt;br /&gt;
:::: 6. Si num_screto&amp;lt;num -&amp;gt; Escriure &amp;quot;Molt alt&amp;quot;&lt;br /&gt;
:::: 7. intents=intents-1&lt;br /&gt;
:::: 8. Escriure intents&lt;br /&gt;
:::: 9. Llegir num&lt;br /&gt;
:: 10. Si num_secreo=num -&amp;gt; Escriure &amp;quot;Has guanyat&amp;quot;, intents&lt;br /&gt;
:: 11. SiNo -&amp;gt; Escriure &amp;quot;Has perdut, num_secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Adivina_Numero&lt;br /&gt;
    Definir intents,num_secret,num_ingressat Como Entero;&lt;br /&gt;
    intents &amp;lt;- 10;&lt;br /&gt;
    num_secret &amp;lt;- Aleatorio(1,100);&lt;br /&gt;
    &lt;br /&gt;
    Escribir &amp;quot;Endevineu el nombre (d'1 a 100):&amp;quot;;&lt;br /&gt;
    Leer num_ingressat;&lt;br /&gt;
    Mientras num_secret&amp;lt;&amp;gt;num_ingressat Y intents&amp;gt;1 Hacer&lt;br /&gt;
        Si num_secret&amp;gt;num_ingressat Entonces&lt;br /&gt;
            Escribir &amp;quot;Molt baix&amp;quot;;&lt;br /&gt;
        Sino &lt;br /&gt;
            Escribir &amp;quot;Molt alt&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
        intents &amp;lt;- intents-1;&lt;br /&gt;
        Escribir &amp;quot;Li queden &amp;quot;,intents,&amp;quot; intents:&amp;quot;;&lt;br /&gt;
        Leer num_ingressat;&lt;br /&gt;
    FinMientras&lt;br /&gt;
    &lt;br /&gt;
    Si num_secret=num_ingressat Entonces&lt;br /&gt;
        Escribir &amp;quot;Exacte! Vostè endevino a &amp;quot;,11-intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;El nombre era: &amp;quot;,num_secret;&lt;br /&gt;
    FinSi&lt;br /&gt;
    &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Anem demanant números fins a introduir un 0.&lt;br /&gt;
:: Necessitem un acumulador per anar fent les sumes intermèdies.&lt;br /&gt;
:: A més necessitem un comptador, per calcular la mitjana (suma/quantitat)&lt;br /&gt;
:: Dades d'entrada: números, un acumulador per sumar i un comptador&lt;br /&gt;
:: Informació de sortida: La suma i la mitjana&lt;br /&gt;
:: Variables:num, suma, cont enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzat: suma = 0, cont = 0&lt;br /&gt;
::2. Llegir num&lt;br /&gt;
::3. Mentre num&amp;lt;&amp;gt;0&lt;br /&gt;
:::: 4. Acumul: suma = suma + num&lt;br /&gt;
:::: 5. Conte si num&amp;lt;&amp;gt;0: cont=cont+1&lt;br /&gt;
:::. 6. Llegir num&lt;br /&gt;
::7. Si cont=0 (No hem introduït cap número)-&amp;gt; mitjana=0&lt;br /&gt;
::8. SiNo -&amp;gt; mitjana=suma/cont;&lt;br /&gt;
::9. Mostrar suma i mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSumaMitjana&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir suma,cont como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	suma &amp;lt;- 0;&lt;br /&gt;
	cont &amp;lt;-0;&lt;br /&gt;
	//Amb el mentre si el primer número és 0 no entrarà al bucle&lt;br /&gt;
	Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		suma &amp;lt;- suma + num;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
		Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	//Si cont=0 no puc fer la divisió&lt;br /&gt;
	Si cont&amp;gt;0 Entonces&lt;br /&gt;
		mitjana &amp;lt;- suma / cont;&lt;br /&gt;
	SiNo&lt;br /&gt;
		mitjana &amp;lt;-0;&lt;br /&gt;
	FinSi&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Suma:&amp;quot;,suma;&lt;br /&gt;
	Escribir &amp;quot;Mitjana:&amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
:: Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre&lt;br /&gt;
:: Informació de sortida: El resultat del factorial&lt;br /&gt;
:: Variables: num, comptador (entero), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
:.2. Inicials variables&lt;br /&gt;
:: comptador = 2&lt;br /&gt;
:: resultat = 1&lt;br /&gt;
:: 3. Mentre comptador&amp;lt;=num fer&lt;br /&gt;
:::: 4. resultat=resultat*comptador&lt;br /&gt;
:::: 5. comptador=comptador+1&lt;br /&gt;
:. 6. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador Como Entero;&lt;br /&gt;
	Definir resultat Como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm  un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	comptador &amp;lt;- 2;&lt;br /&gt;
	Mientras comptador&amp;lt;=num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
		comptador &amp;lt;- comptador + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El resultat és &amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un número i anem comprovant si és divisible entre 2 fins a l'arrel quadrada del nombre. Si és divisible per algun número no és primer.&lt;br /&gt;
::Si no és divisible per cap nombre és primer.&lt;br /&gt;
::Per saber si és divisible fem servir l'operador mòdul.&lt;br /&gt;
::Dades d'entrada: el número a comprovar si és primer o no&lt;br /&gt;
::Informació de sortida: Un missatge dient si és primer o no&lt;br /&gt;
::Variables: numero_es_primer (entero), num (entero) comptador des de 2 fins arrel quadrada del num_es_primer, es_primer (lógico)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Suposo que el nombre és primer -&amp;gt; és_primer&amp;lt;-Verdadero&lt;br /&gt;
::2. Llegir num_ces_primer&lt;br /&gt;
::3. Mentre no final (num &amp;lt; número primer?) i el número primer? no sigui divisible pel num&lt;br /&gt;
::::4. Incrementem el num&lt;br /&gt;
::5. Si es_primer -&amp;gt; Mostra &amp;quot;És primer&amp;quot;&lt;br /&gt;
::6. Si no -&amp;gt; Mostra &amp;quot;No és primer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EsPrimo&lt;br /&gt;
	Definir num,div Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número per comprovar si és primer:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
        div &amp;lt;- 2;&lt;br /&gt;
	Mientras div&amp;lt;&amp;gt;num Y num % div &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
		div &amp;lt;- div +1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Si div = num Entonces&lt;br /&gt;
		Escribir &amp;quot;És Primer&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No és Primer&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval.&lt;br /&gt;
: Si el límit inferior és més gran que el superior ho ha de tornar a demanar.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Demanem un interval (límit inferior i superior)&lt;br /&gt;
:: Ens hem d'assegurar que el límit inferior sigui menor que el superior.&lt;br /&gt;
:: Es van demanant números fins que s'introdueixi el 0.&lt;br /&gt;
:: Si el nombre pertany a l'interval -&amp;gt; ho vaig sumant (necessito un acumulador)&lt;br /&gt;
:: Si el número no pertany a l'interval, ho explico (necessito un comptador)&lt;br /&gt;
:: Si el nombre és igual a algun límit, allò índic (necessito un indicador)&lt;br /&gt;
:: Al final mostro la suma dels números que pertanyen a l'interval.&lt;br /&gt;
:: Mostreu el comptador de número que no pertanyen a l'interval.&lt;br /&gt;
:: Indico si hem introduït un número igual a algun límit&lt;br /&gt;
:: Dades d'entrada: límit superior i inferior de l'interval i els números.&lt;br /&gt;
:: Informació de sortida: La suma dels que pertanyen a l'interval, el comptador dels números que no pertanyen a l'interval i indico si un nombre ha estat igual a algun interval&lt;br /&gt;
:: Variables: lim_inf, lim_sup, num, suma_dins_interval, cont_fora_interval (enters), igual_limits (Lògic)&lt;br /&gt;
&lt;br /&gt;
:Diseny&lt;br /&gt;
::1. Inicialitzo l'acumulador, el comptador i l'indicat&lt;br /&gt;
::2. Repetir -&amp;gt; llegir lim_inf i lim_sup fins que lim_inf&amp;lt;lim_sup&lt;br /&gt;
::3. Llegir núm&lt;br /&gt;
::4. Mentre num sigui diferent de 0&lt;br /&gt;
::::5. Si num pertany a l'interval -&amp;gt; acumula la suma&lt;br /&gt;
::::6. Sinó -&amp;gt; increment comptador&lt;br /&gt;
::::7. Si és igual a algun interval -&amp;gt; Ho indico (indicador a cert)&lt;br /&gt;
::::8. Llegir núm&lt;br /&gt;
::9. Mostra la suma dels números pertanyents a l'interval&lt;br /&gt;
::10. Mostra el comptador de números no pertanyents a l'interval&lt;br /&gt;
::11. Si l'indicador = Veritable -&amp;gt; Mostra &amp;quot;Un nombre = a interval&amp;quot;&lt;br /&gt;
::12. SiNo -&amp;gt; Mostra &amp;quot;No has introduït un número igual a l'interval&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Interval&lt;br /&gt;
	Definir lim_inf, lim_sup como Entero;&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Definir suma_dins_interval Como Entero;&lt;br /&gt;
	Definir cont_fora_interval Como Entero;&lt;br /&gt;
	Definir igual_limits Como Logico;&lt;br /&gt;
	suma_dins_interval &amp;lt;- 0;&lt;br /&gt;
	cont_fora_interval &amp;lt;- 0;&lt;br /&gt;
	igual_limits &amp;lt;- Falso;&lt;br /&gt;
	//M'asseguro que el lim_inf és menor que el lim_sup&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_inf;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_sup;&lt;br /&gt;
	Mientras lim_inf &amp;gt;= lim_sup Hacer&lt;br /&gt;
		Escribir &amp;quot;ERROR: El límit inferior ha de ser menor que el superior.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_inf;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_sup;&lt;br /&gt;
	FinMientras&lt;br /&gt;
		&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		//Pertany a l'interval&lt;br /&gt;
		Si num&amp;gt;lim_inf Y num&amp;lt;lim_sup Entonces&lt;br /&gt;
			suma_dins_interval&amp;lt;- suma_dins_interval + num;&lt;br /&gt;
		SiNo &lt;br /&gt;
			//Nombre igual a algun dels límits&lt;br /&gt;
			Si num=lim_inf O num=lim_sup Entonces&lt;br /&gt;
				igual_limits &amp;lt;- Verdadero;&lt;br /&gt;
			Sino&lt;br /&gt;
			//No pertany a l'interval&lt;br /&gt;
			cont_fora_interval &amp;lt;- cont_fora_interval + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;La suma dels números dins de linterval és &amp;quot;,suma_dins_interval;&lt;br /&gt;
	Escribir &amp;quot;La quantitat de números fora de linterval és &amp;quot;,cont_fora_interval;&lt;br /&gt;
	Si igual_limits Entonces&lt;br /&gt;
		Escribir &amp;quot;Sha introduït algun nombre igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No sha introduït cap número igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Notes_Alumnes&lt;br /&gt;
	Definir alumne Como Cadena;&lt;br /&gt;
	Definir nota_practica, nota_problemes, nota_teoria, nota_final Como Real;&lt;br /&gt;
        Escribir &amp;quot;Introduïu el nom de l'alumne: &amp;quot;;&lt;br /&gt;
	Leer alumne;&lt;br /&gt;
        Mientras alumne&amp;lt;&amp;gt;&amp;quot;&amp;quot; Hacer&lt;br /&gt;
        //si introduïm un nom d'alumne correcte, entrés al bucle&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de la pràctica: &amp;quot;;&lt;br /&gt;
        	Leer nota_practica;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota dels problemes: &amp;quot;;&lt;br /&gt;
        	Leer nota_problemes;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de teoria&amp;quot;;&lt;br /&gt;
        	Leer nota_teoria;&lt;br /&gt;
        	//comprovem si les notes tenen un rang correcte&lt;br /&gt;
        	Si (nota_practica&amp;lt;=10 y nota_practica&amp;gt;=0) y (nota_problemes&amp;lt;=10 y nota_problemes&amp;gt;=0) y (nota_teoria&amp;lt;=10 y nota_teoria&amp;gt;=0) Entonces&lt;br /&gt;
			Escribir &amp;quot;L'alumne &amp;quot;, alumne;&lt;br /&gt;
                	Escribir &amp;quot;La nota practica és &amp;quot; nota_practica;&lt;br /&gt;
                	Escribir &amp;quot;La nota de problemes és &amp;quot;, nota_problemes;&lt;br /&gt;
                	Escribir &amp;quot;La nota de teoria és &amp;quot; nota_teoria;&lt;br /&gt;
                	nota_final&amp;lt;-(nota_practica * 0,1)+(nota_problemes * 0.5)+(nota_teoria*0.4);&lt;br /&gt;
                	Escribir &amp;quot;La nota final és &amp;quot; nota_final;&lt;br /&gt;
        	SiNo&lt;br /&gt;
                Escribir &amp;quot;Has escrit una nota incorrecta, Torna a introduir les notes!&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
		Escribir &amp;quot;Introdueix el nom d'un altre alumne&amp;quot;;&lt;br /&gt;
		Leer alumne;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso UBER&lt;br /&gt;
        Definir nroViatges,temps,acum,cont,contMenys30,contEntre30i45,contMes45 Como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	&lt;br /&gt;
	contMenys30 &amp;lt;- 0;  //comptador&lt;br /&gt;
	contEntre30i45 &amp;lt;- 0;&lt;br /&gt;
	contMes45 &amp;lt;- 0;&lt;br /&gt;
	acum &amp;lt;- 0;   //acumulador&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Introduïu el número de viatges del dia: &amp;quot;;&lt;br /&gt;
	Leer nroViatges;&lt;br /&gt;
	&lt;br /&gt;
	cont &amp;lt;- 1;&lt;br /&gt;
	Mientras cont &amp;lt;= nroViajes Hacer&lt;br /&gt;
		Escribir &amp;quot;Introduïu el temps del viatge &amp;quot;,cont;&lt;br /&gt;
		Leer temps; &lt;br /&gt;
		&lt;br /&gt;
		si temps&amp;lt;30 Entonces &lt;br /&gt;
			contMenys30 &amp;lt;- contMenys30 + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			si temps &amp;gt;= 30 y temps &amp;lt; 45 Entonces &lt;br /&gt;
				contEntre30i45 &amp;lt;- contEntre30i45 + 1;&lt;br /&gt;
			Sino&lt;br /&gt;
				contMes45 &amp;lt;- contMes45 + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		&lt;br /&gt;
		acum &amp;lt;- acum + temps;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
	Fin Mientras &lt;br /&gt;
		&lt;br /&gt;
	mitjana &amp;lt;- acum / nroViajes;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Nro de viatges : &amp;quot;,nroViatges;&lt;br /&gt;
	Escribir &amp;quot;Mitjana dels temps: &amp;quot;,mitjana;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar menys de 30 minuts:: &amp;quot;,contMenys30;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar entre 30 a 45 minuts: &amp;quot;,contEntre30i45; &lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar més de 45 minuts: &amp;quot;,contMes45;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis prova===&lt;br /&gt;
&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TresN&lt;br /&gt;
	Definir num, cont Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Escriu un numero enter i positiu: &amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        Leer num;&lt;br /&gt;
	&lt;br /&gt;
        Si num &amp;gt; 0  Entonces &lt;br /&gt;
            cont &amp;lt;- 1;&lt;br /&gt;
&lt;br /&gt;
            Mientras num != 1 Hacer&lt;br /&gt;
                Si num % 2 = 0 Entonces&lt;br /&gt;
                    num &amp;lt;- num / 2;&lt;br /&gt;
                SiNo &lt;br /&gt;
                    num &amp;lt;- (num * 3) + 1;&lt;br /&gt;
                &lt;br /&gt;
                cont &amp;lt;- cont + 1;&lt;br /&gt;
                Escribir Sin Saltar num, &amp;quot; &amp;quot;;&lt;br /&gt;
            FinMientras&lt;br /&gt;
&lt;br /&gt;
            Escribir &amp;quot;Ha donat &amp;quot;,cont,&amp;quot; voltes.&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;El número ha de ser positiu!!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Data&lt;br /&gt;
	Definir dia, mes, diesPerMes, diaSeguent, mesSeguent Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	Escribir &amp;quot;Introdueix el dia: &amp;quot;;&lt;br /&gt;
        Leer dia;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el mes: &amp;quot;;&lt;br /&gt;
        Leer mes;&lt;br /&gt;
	&lt;br /&gt;
        diesPerMes &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
        Segun Mes Hacer&lt;br /&gt;
            1, 3, 5, 7, 8, 10, 12: diesPerMes &amp;lt;- 31;&lt;br /&gt;
            4, 6, 9, 11: diesPerMes &amp;lt;- 30;&lt;br /&gt;
            2: diesPerMes &amp;lt;- 28;&lt;br /&gt;
        FinSegun&lt;br /&gt;
&lt;br /&gt;
        diaSeguent &amp;lt;- dia+5;&lt;br /&gt;
        &lt;br /&gt;
        Si diaSeguent&amp;gt;diesPerMes Entonces&lt;br /&gt;
            diaSeguent &amp;lt;- diaSeguent-diesPerMes;&lt;br /&gt;
            mes &amp;lt;-- mes + 1;&lt;br /&gt;
            Si mes&amp;gt;12 Entonces&lt;br /&gt;
                mes &amp;lt;-- 1;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Escribir diaSeguent, &amp;quot; &amp;quot;, mes;&lt;br /&gt;
&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso XY&lt;br /&gt;
	Definir carActual, carAnterior Como Caracter;&lt;br /&gt;
        Definir cont Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	carAnterior=&amp;quot; &amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
        Leer carActual;&lt;br /&gt;
	&lt;br /&gt;
        cont &amp;lt;- 1;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (cont &amp;lt; 10000 &amp;amp;&amp;amp; (carAnterior != 'X' O carActual != 'Y')) Hacer&lt;br /&gt;
                &lt;br /&gt;
            carAnterior = carActual;&lt;br /&gt;
	    Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
            Leer carActual;&lt;br /&gt;
            cont &amp;lt;- cont + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si (carAnterior != 'X' Y carActual != 'Y') Entonces&lt;br /&gt;
		Escribir &amp;quot;Apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir divisor, numero Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el número: &amp;quot;;&lt;br /&gt;
        Leer numero;&lt;br /&gt;
	&lt;br /&gt;
        divisor &amp;lt;- 2;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (divisor &amp;lt; numero Y numero % divisor != 0) Hacer&lt;br /&gt;
                &lt;br /&gt;
            divisor &amp;lt;- divisor + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si divisor = numero Entonces&lt;br /&gt;
	    Escribir &amp;quot;No té cap divisor&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
	    Escribir &amp;quot;El primer divisor és: &amp;quot;, divisor;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir x1, x2, punt, min, max, distanciaDreta, distanciaEsquerra  Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix la primera coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la segona coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x2;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el punt: &amp;quot;;&lt;br /&gt;
        Leer punt;&lt;br /&gt;
	&lt;br /&gt;
	Si x1 &amp;lt; x2 Entonces&lt;br /&gt;
           min &amp;lt;- x1;&lt;br /&gt;
           max &amp;lt;- x2;&lt;br /&gt;
	SiNo&lt;br /&gt;
           min &amp;lt;- x2;&lt;br /&gt;
           max &amp;lt;- x1;&lt;br /&gt;
	FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaDreta = max - punt;  &lt;br /&gt;
        Si (distanciaDreta &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaDreta = distanciaDreta * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaEsquerra = min - punt;&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaEsquerra = distanciaEsquerra * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (punt &amp;gt;= min Y punt &amp;lt;= max) {&lt;br /&gt;
            Escribir &amp;quot;Dins&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Fora&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt;= distanciaDreta) {&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaEsquerra;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaDreta;&lt;br /&gt;
        FinSi&lt;br /&gt;
      &lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis prova CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalculNomines&lt;br /&gt;
	Definir tipus, hores, diesBaixa, sou Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
&lt;br /&gt;
	Mientras tipus &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Si tipus &amp;lt; 1 O tipus &amp;gt; 3 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Tipus no vàlid. Torna a intentar-ho.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre dhores treballades:&amp;quot;;&lt;br /&gt;
        	Leer hores;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre de dies de baixa:&amp;quot;;&lt;br /&gt;
        	Leer diesBaixa;&lt;br /&gt;
&lt;br /&gt;
        	Segun tipus Hacer&lt;br /&gt;
            	1:&lt;br /&gt;
                	sou &amp;lt;- hores * 12;&lt;br /&gt;
            	2:&lt;br /&gt;
                	sou &amp;lt;- hores * 15;&lt;br /&gt;
            	3:&lt;br /&gt;
                	sou &amp;lt;- hores * 25;&lt;br /&gt;
                	Si hores &amp;gt; 160 Entonces&lt;br /&gt;
                    	   sou &amp;lt;- sou + 500;&lt;br /&gt;
                	FinSi&lt;br /&gt;
        	FinSegun&lt;br /&gt;
&lt;br /&gt;
        	Si diesBaixa &amp;gt; 5 Entonces&lt;br /&gt;
            	   sou &amp;lt;- sou * 0.9;&lt;br /&gt;
            	   Escribir &amp;quot;Penalització aplicada per dies de baixa.&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
&lt;br /&gt;
        	Escribir &amp;quot;El sou del treballador és:&amp;quot;, sou, &amp;quot;€&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
    	   Leer tipus;&lt;br /&gt;
	FinMientras        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa s'ha de repetir per diversos vols fins que es detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ControlPassatgers&lt;br /&gt;
        Definir codiVol, nacionals, internacionals, total, volMaxInternacionals Como Entero;&lt;br /&gt;
	Definir percentatgeInternacionals, maxPercentatge Como Real;&lt;br /&gt;
	maxPercentatge &amp;lt;- 0;&lt;br /&gt;
	volMaxInternacionals &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
	Leer codiVol;&lt;br /&gt;
&lt;br /&gt;
	Mientras codiVol &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers nacionals:&amp;quot;;&lt;br /&gt;
    	   Leer nacionals;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers internacionals:&amp;quot;;&lt;br /&gt;
    	   Leer internacionals;&lt;br /&gt;
&lt;br /&gt;
    	   total &amp;lt;- nacionals + internacionals;&lt;br /&gt;
    	   Escribir &amp;quot;El vol &amp;quot;, codiVol, &amp;quot; té un total de &amp;quot;, total, &amp;quot; passatgers.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    	   Si total &amp;gt; 0 Entonces&lt;br /&gt;
        	percentatgeInternacionals &amp;lt;- (internacionals / total) * 100;&lt;br /&gt;
        	Escribir &amp;quot;Percentatge de passatgers internacionals: &amp;quot;, percentatgeInternacionals, &amp;quot;%&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        	Si percentatgeInternacionals &amp;gt; maxPercentatge Entonces&lt;br /&gt;
            	   maxPercentatge &amp;lt;- percentatgeInternacionals;&lt;br /&gt;
            	   volMaxInternacionals &amp;lt;- codiVol;&lt;br /&gt;
        	FinSi&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;El vol no té passatgers.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer codiVol;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;El vol amb més percentatge de passatgers internacionals és el vol &amp;quot;, volMaxInternacionals, &amp;quot; amb un &amp;quot;, maxPercentatge, &amp;quot;% de passatgers internacionals.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SeguimentAtletisme&lt;br /&gt;
        Definir dorsal, millorDorsal, pitjorDorsal Como Entero;&lt;br /&gt;
	Definir temps1, temps2, temps3 Como Real;&lt;br /&gt;
	Definir millorMitjana, pitjorMitjana, mitjana Como Real;&lt;br /&gt;
	millorMitjana &amp;lt;- 999999;&lt;br /&gt;
	pitjorMitjana &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
	Leer dorsal;&lt;br /&gt;
&lt;br /&gt;
	Mientras dorsal &amp;lt;&amp;gt; -1 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la primera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps1;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la segona cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps2;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la tercera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps3;&lt;br /&gt;
&lt;br /&gt;
       	   mitjana &amp;lt;- (temps1 + temps2 + temps3) / 3;&lt;br /&gt;
     	   Escribir &amp;quot;La mitjana de temps per latleta amb dorsal &amp;quot;, dorsal, &amp;quot; és: &amp;quot;, mitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
    	   Si mitjana &amp;lt; millorMitjana Entonces&lt;br /&gt;
        	millorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	millorDorsal &amp;lt;- dorsal;&lt;br /&gt;
     	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; pitjorMitjana Entonces&lt;br /&gt;
        	pitjorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	pitjorDorsal &amp;lt;- dorsal;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; 10 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; no ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer dorsal;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Latleta amb millor mitjana és el dorsal &amp;quot;, millorDorsal, &amp;quot; amb una mitjana de &amp;quot;, millorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Latleta amb pitjor mitjana és el dorsal &amp;quot;, pitjorDorsal, &amp;quot; amb una mitjana de &amp;quot;, pitjorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratCubVector&lt;br /&gt;
	Definir vector_numeros Como Entero;&lt;br /&gt;
	Dimension vector_numeros[10];&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	//Primer recorregut per llegir el vector&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		vector_numeros[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Segon recorregut per mostrar el resultat&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		Escribir vector_numeros[index],&amp;quot; &amp;quot;,vector_numeros[index]^2,&amp;quot; &amp;quot;,vector_numeros[index]^3;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorInvers&lt;br /&gt;
	Definir vector1,vector2 Como Cadenas;&lt;br /&gt;
	Dimension vector1[5],vector2[5];&lt;br /&gt;
	Definir indicador1,indicador2 Como Entero;&lt;br /&gt;
	Definir tam_vector1,tam_vector2 Como Entero;&lt;br /&gt;
	//Defineixo la mida dels vectors per utilitzar-los en els recorreguts&lt;br /&gt;
	tam_vector1&amp;lt;-5;&lt;br /&gt;
	tam_vector2&amp;lt;-5;&lt;br /&gt;
	//RRecorro el vector1 i llegeixo cada element per teclat&lt;br /&gt;
	Para indicador1&amp;lt;-0 hasta tam_vector1-1 hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dónam la cadena &amp;quot;,indicador1+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer vector1[indicador1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	indicador2&amp;lt;-0;&lt;br /&gt;
	//Recorro el vector1 des del final al principi&lt;br /&gt;
	//Cada element el guardo al vector2&lt;br /&gt;
	Para indicador1&amp;lt;-tam_vector1-1 hasta 0 con paso -1 hacer&lt;br /&gt;
		vector2[indicador2]&amp;lt;-vector1[indicador1];&lt;br /&gt;
		indicador2&amp;lt;-indicador2+1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro el vector2 per mostrar-lo&lt;br /&gt;
	Para indicador2&amp;lt;-0 hasta tam_vector2-1 hacer&lt;br /&gt;
		Escribir &amp;quot;La cadena &amp;quot;,indicador2+1,&amp;quot;: &amp;quot;,vector2[indicador2];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorNotes&lt;br /&gt;
	Definir notes Como Entero;&lt;br /&gt;
	Dimension notes[5];&lt;br /&gt;
	Definir tam_notes como Entero;&lt;br /&gt;
	Definir nota_mitjana Como Real;&lt;br /&gt;
	Definir suma,nota_max,nota_min, nota como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	tam_notes&amp;lt;-5;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer nota;&lt;br /&gt;
		Mientras nota&amp;lt;0 o nota&amp;gt;10 Hacer&lt;br /&gt;
			//Comprovem que sigui un nombre &amp;gt;=0 i &amp;lt;=10&lt;br /&gt;
			&lt;br /&gt;
			Escribir sin saltar &amp;quot;Nota incorrecte. Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
			Leer nota;&lt;br /&gt;
		FinMientras&lt;br /&gt;
		notes[index] &amp;lt;- nota;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suposo que la nota màxima i la mínima és aquesta primera&lt;br /&gt;
	nota_max&amp;lt;-notes[0];&lt;br /&gt;
	nota_min&amp;lt;-notes[0];&lt;br /&gt;
	&lt;br /&gt;
	suma&amp;lt;-0;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		//Acumulo la nota per calcular la mitjana&lt;br /&gt;
		suma&amp;lt;-suma+notes[index];&lt;br /&gt;
		//Actualitzo la nota màxima si en trobo una de més gran&lt;br /&gt;
		Si notes[index]&amp;gt;nota_max Entonces&lt;br /&gt;
			nota_max&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		//Actualitzo la nota mínima si en trobo una de més petita&lt;br /&gt;
		Si notes[index]&amp;lt;nota_min Entonces&lt;br /&gt;
			nota_min&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calculo la mitjana, tenint en compte la mida del vector&lt;br /&gt;
	nota_mitjana&amp;lt;-suma/tam_notes;&lt;br /&gt;
	//Mostro resultats&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir sin Saltar &amp;quot;Notes:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin Saltar notes[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Nota mitjana: &amp;quot;,nota_mitjana;&lt;br /&gt;
	Escribir &amp;quot;Nota màxima: &amp;quot;,nota_max;&lt;br /&gt;
	Escribir &amp;quot;Nota mínima: &amp;quot;,nota_min;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorPositiu&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir tam_vector,index,num como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Recorro el vector i vaig inicialitzant els seus elements&lt;br /&gt;
	//No faig servir un para, perquè si introdueixo un nombre negatiu sortim del bucle&lt;br /&gt;
	//També acabo el bucle si introdueixo tots els elements de vector&lt;br /&gt;
	//El nombre negatiu em serveix d'indicador que fins a aquesta posició el vector té element&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número al vector. Número &amp;quot;,index+1;&lt;br /&gt;
		Leer vector[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que index=tam_vector O vector[index-1]&amp;lt;0;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Recorro fins a la mida del vector o trobi un nombre negatiu&lt;br /&gt;
	Escribir &amp;quot;Elements del vector&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector-1 Y vector[index]&amp;gt;=0 Hacer&lt;br /&gt;
		Escribir sin saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso OrdenarVector&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir canvis,aux Como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir tam_vector Como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Inicialitzo el vector amb valors aleatoris&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 hacer&lt;br /&gt;
		vector[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Repetiré l'ordenació fins que no hagi canviat cap número&lt;br /&gt;
	Repetir &lt;br /&gt;
		canvis&amp;lt;-0;&lt;br /&gt;
		//Recorre fins a l'antepenúltim&lt;br /&gt;
		//Intercanvio els valors de dos elements consecutius si no estan ordenats&lt;br /&gt;
		Para index&amp;lt;-0 hasta tam_vector-2 Hacer&lt;br /&gt;
			Si vector[index]&amp;gt;vector[index+1] Entonces&lt;br /&gt;
				aux&amp;lt;-vector[index];&lt;br /&gt;
				vector[index]&amp;lt;-vector[index+1];&lt;br /&gt;
				vector[index+1]&amp;lt;-aux;&lt;br /&gt;
				canvis&amp;lt;-canvis+1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	Hasta Que canvis=0;&lt;br /&gt;
	//Recorro el vector ordenat&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DiesDelMes&lt;br /&gt;
	Definir dies Como Entero;&lt;br /&gt;
	Dimension dies[12];&lt;br /&gt;
	Definir nom_mes Como Caracter;&lt;br /&gt;
	Dimension nom_mes[12];&lt;br /&gt;
	Definir mes como Entero;&lt;br /&gt;
	dies[0]&amp;lt;-31;&lt;br /&gt;
	dies[1]&amp;lt;-28;&lt;br /&gt;
	dies[2]&amp;lt;-31;&lt;br /&gt;
	dies[3]&amp;lt;-30;&lt;br /&gt;
	dies[4]&amp;lt;-31;&lt;br /&gt;
	dies[5]&amp;lt;-30;&lt;br /&gt;
	dies[6]&amp;lt;-31;&lt;br /&gt;
	dies[7]&amp;lt;-31;&lt;br /&gt;
	dies[8]&amp;lt;-30;&lt;br /&gt;
	dies[9]&amp;lt;-31;&lt;br /&gt;
	dies[10]&amp;lt;-30;&lt;br /&gt;
	dies[11]&amp;lt;-31;&lt;br /&gt;
	nom_mes[0]&amp;lt;-&amp;quot;Gener&amp;quot;;&lt;br /&gt;
	nom_mes[1]&amp;lt;-&amp;quot;Febrer&amp;quot;;&lt;br /&gt;
	nom_mes[2]&amp;lt;-&amp;quot;Març&amp;quot;;&lt;br /&gt;
	nom_mes[3]&amp;lt;-&amp;quot;Abril&amp;quot;;&lt;br /&gt;
	nom_mes[4]&amp;lt;-&amp;quot;Maig&amp;quot;;&lt;br /&gt;
	nom_mes[5]&amp;lt;-&amp;quot;Juny&amp;quot;;&lt;br /&gt;
	nom_mes[6]&amp;lt;-&amp;quot;Juliol&amp;quot;;&lt;br /&gt;
	nom_mes[7]&amp;lt;-&amp;quot;Agost&amp;quot;;&lt;br /&gt;
	nom_mes[8]&amp;lt;-&amp;quot;Setembre&amp;quot;;&lt;br /&gt;
	nom_mes[9]&amp;lt;-&amp;quot;Octubre&amp;quot;;&lt;br /&gt;
	nom_mes[10]&amp;lt;-&amp;quot;Novembre&amp;quot;;&lt;br /&gt;
	nom_mes[11]&amp;lt;-&amp;quot;Desembre&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
	Leer mes;&lt;br /&gt;
	Mientras mes &amp;lt; 1 o mes &amp;gt; 12 Hacer	&lt;br /&gt;
		Escribir &amp;quot;Error: mes incorrecte.&amp;quot;;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
                Leer mes;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El mes de &amp;quot;,nom_mes[mes-1],&amp;quot; té &amp;quot;,dies[mes-1],&amp;quot; dies.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SumarVectors&lt;br /&gt;
	Definir vector1,vector2,vector3 Como Entero;&lt;br /&gt;
	Dimension vector1[5],vector2[5],vector3[5];&lt;br /&gt;
	Definir tam_vector como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-5;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector1:&amp;quot;;&lt;br /&gt;
		Leer vector1[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector2:&amp;quot;;&lt;br /&gt;
		Leer vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		vector3[index]&amp;lt;-vector1[index]+vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;La suma dels vectors és:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar vector3[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats, numAlum Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms, nom Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Mientras nom &amp;lt;&amp;gt;&amp;quot;*&amp;quot; Y index &amp;lt; tam_vector Hacer&lt;br /&gt;
	    noms[index] &amp;lt;- nom;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Diguem la seva edat:&amp;quot;;&lt;br /&gt;
		Leer edats[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
		Leer nom;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	numAlum &amp;lt;- index;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors dedat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;numAlum Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Digue'm el nom d'un alumne:&amp;quot;;&lt;br /&gt;
		Leer noms[index];&lt;br /&gt;
		Si noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Entonces&lt;br /&gt;
			Escribir sin saltar &amp;quot;Digue'm la seva edat:&amp;quot;;&lt;br /&gt;
			Leer edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que noms[index-1]=&amp;quot;*&amp;quot; o index=tam_vector;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors d'edat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ExTemperatures&lt;br /&gt;
	Definir temperatures Como Real;&lt;br /&gt;
	Dimension temperatures[5,2];&lt;br /&gt;
	Definir existeix_temperatura Como Logico;&lt;br /&gt;
	Definir index,cant_dies como Entero;&lt;br /&gt;
	Definir temp_max, temp_min como Real;&lt;br /&gt;
	cant_dies&amp;lt;-5;&lt;br /&gt;
	//Recorregut per emplenar la taula (5 dies amb temp mínima i màxima)&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mínima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura màxima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar temperatura mitjana&lt;br /&gt;
	Escribir &amp;quot;Temperatures mitjanes&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mitjana:&amp;quot;,(temperatures[index,0]+temperatures[index,1])/2;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calcular temperatura mínima més petita&lt;br /&gt;
	temp_min&amp;lt;-temperatures[0,0];&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]&amp;lt;temp_min Entonces&lt;br /&gt;
			temp_min&amp;lt;-temperatures[index,0];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar els dies amb menys temperatura&lt;br /&gt;
	Escribir &amp;quot;Dies amb menys temperatura&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;==========================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]=temp_min Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Dies amb temperatura màxima&lt;br /&gt;
	existeix_temperatura&amp;lt;-Falso;&lt;br /&gt;
	Escribir &amp;quot;Dies amb temperatura màxima&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===========================&amp;quot;;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix una temperatura:&amp;quot;;&lt;br /&gt;
	Leer temp_max;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,1]=temp_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
			existeix_temperatura&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Si no existeix_temperatura Entonces&lt;br /&gt;
		Escribir &amp;quot;No hi ha cap dia amb aquesta temperatura.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Tabla&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;Introduïu el número de la fila &amp;quot;,fila+1,&amp;quot; i columna &amp;quot;,col+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les files&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la fila &amp;quot;,fila+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les columnes&lt;br /&gt;
	Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la columna &amp;quot;,col+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Diagonal&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	//Recorro la taula &lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic en alguna diagonal inicialitzo a 1&lt;br /&gt;
			Si fila=col o fila=(num_files-1)-col Entonces&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			//No estic en diagonal, inicialitzo a 0&lt;br /&gt;
			SiNo&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CostatExtern&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,15];&lt;br /&gt;
	Definir num_files,num_cols como Entero;&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-15;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic a l'extrem esquerre, dret, superior o inferior&lt;br /&gt;
			Si fila=0 o fila=num_files-1 o col=0 o col= num_cols-1 Entonces&lt;br /&gt;
				//Inicialitzo a 1&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				//SiNo inicialitzo a 0&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
&lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dies, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
	Leer num_conductors;&lt;br /&gt;
	Mientras num_conductors&amp;gt;mida_conductors_max Hacer&lt;br /&gt;
		Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
		//El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
		Si num_conductors&amp;gt;mida_conductors_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta que num_conductors&amp;lt;=mida_conductors_max;&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::preu (taula de 3 reals), quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::suma, numMajor, articlesSucursal2, majorRec, totalSucursal, totalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Sucursals&lt;br /&gt;
	Definir preu, quantitat, suma, numMajor,articlesSucursal2, majorRec, totalSucursal, totalEmpresa Como Real;&lt;br /&gt;
	Definir indexArt, indexSucursal como Entero;&lt;br /&gt;
	&lt;br /&gt;
	Dimension preu[5], quantitat[4,5];&lt;br /&gt;
	&lt;br /&gt;
	// Llegir preus&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		Escribir 'Introdueixi el preu de larticle ',indexArt+1,': ';&lt;br /&gt;
		Leer preu[indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Llegir quantitats&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			Escribir 'Introdueixi la quantitat de larticle ',indexArt+1,', en Sucursal ',indexSucursal+1,': ';&lt;br /&gt;
			Leer quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Sumar quantitats per articles&lt;br /&gt;
	Escribir 'Quantitats per articles:';&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		suma &amp;lt;- 0;&lt;br /&gt;
		Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			suma&amp;lt;-quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Total article ',indexArt+1,': ' ,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Informar total articles sucursal 2&lt;br /&gt;
	articlesSucursal2&amp;lt;-0;&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		articlesSucursal2&amp;lt;-articlesSucursal2+quantitat[1,indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Total Sucursal 2:',articlesSucursal2;&lt;br /&gt;
	&lt;br /&gt;
	// Informar Sucursal 1, Article 3:&lt;br /&gt;
	Escribir 'Sucursal 1, Article 3: ',quantitat[0,2];&lt;br /&gt;
	&lt;br /&gt;
	// Acumular total de cada sucursal (totalSucursal) i&lt;br /&gt;
	// total de la empresa (totalEmpresa)&lt;br /&gt;
	majorRec&amp;lt;-0;&lt;br /&gt;
	numMajor&amp;lt;-0;&lt;br /&gt;
	totalEmpresa&amp;lt;-0;&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		totalSucursal&amp;lt;-0;&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			totalSucursal&amp;lt;-totalSucursal+(quantitat[indexSucursal,indexArt]*preu[indexArt]);&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Recaudacions Sucursal ',indexSucursal+1,': ',totalSucursal;&lt;br /&gt;
		//Calculo la sucursal amb més recaudació&lt;br /&gt;
		Si totalSucursal&amp;gt;majorRec entonces&lt;br /&gt;
			majorRec&amp;lt;-totalSucursal;&lt;br /&gt;
			numMajor&amp;lt;-indexSucursal+1;&lt;br /&gt;
		FinSi&lt;br /&gt;
		totalEmpresa&amp;lt;-totalEmpresa+totalSucursal;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Recaudació total de la empresa: ',totalEmpresa;&lt;br /&gt;
	Escribir 'Sucursal de Major Recaudació: ',numMajor;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Travessa&lt;br /&gt;
	Definir index, numEquips Como Entero;&lt;br /&gt;
	Definir equips Como Caracter;&lt;br /&gt;
	Dimension equips[15,2];&lt;br /&gt;
	Definir resultats Como Entero;&lt;br /&gt;
	Dimension resultats[15,2];&lt;br /&gt;
	numEquips&amp;lt;-15;&lt;br /&gt;
	//Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit&lt;br /&gt;
	Para index&amp;lt;-0 hasta numEquips-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 1 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 2 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,1];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,0],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,1],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;TRAVESSA&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;========&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	// Recorro les taules, mostro el nom dels equips i el resultat del partit (per a cada partit)&lt;br /&gt;
	// Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
	// Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
	// Una X si hi ha empat&lt;br /&gt;
	Para index&amp;lt;-0 hasta num_equipos-1 Hacer&lt;br /&gt;
		Si resultados[index,0]&amp;gt;resultados[index,1] Entonces&lt;br /&gt;
			Escribir equipos[index,0], &amp;quot; - &amp;quot;,equipos[index,0],&amp;quot; -&amp;gt; 1&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si resultats[index,0]&amp;lt;resultats[index,1] Entonces&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; 2&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; X&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/// Programa per convertir nombres entre decimal i binari&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio, nombre Como Entero;&lt;br /&gt;
	Definir binari Como Cadena;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions&lt;br /&gt;
        Escribir &amp;quot;1. Convertir de decimal a binari&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Convertir de binari a decimal&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Convertir un nombre decimal a binari&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre enter: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer nombre;&lt;br /&gt;
                Escribir &amp;quot;En binari: &amp;quot;, ConvertirABinari(nombre);&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Convertir un nombre binari a decimal&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre en binari: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer binari;&lt;br /&gt;
                Si EsBinari(binari) Entonces&lt;br /&gt;
                    Escribir &amp;quot;En decimal: &amp;quot;, ConvertirADecimal(binari);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: No és un nombre binari vàlid.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:;&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre decimal a binari&lt;br /&gt;
Funcion binari &amp;lt;- ConvertirABinari(nombre)&lt;br /&gt;
    Definir binari Como Cadena;&lt;br /&gt;
    binari &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
    Si nombre = 0 Entonces&lt;br /&gt;
        binari &amp;lt;- &amp;quot;0&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    // Aplicar el mètode de divisió successiva per obtenir la representació binària&lt;br /&gt;
    Mientras nombre &amp;gt; 0 Hacer&lt;br /&gt;
        binari &amp;lt;- Concatenar(ConvertirATexto(nombre mod 2), binari);&lt;br /&gt;
        nombre &amp;lt;- trunc(nombre / 2);&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre binari a decimal&lt;br /&gt;
Funcion decimal &amp;lt;- ConvertirADecimal(binari)&lt;br /&gt;
    Definir decimal, i, pot2 Como Entero;&lt;br /&gt;
    decimal &amp;lt;- 0;&lt;br /&gt;
    pot2 &amp;lt;- 1;&lt;br /&gt;
    i &amp;lt;- longitud(binari) - 1;&lt;br /&gt;
    Mientras i &amp;gt;= 0 Hacer&lt;br /&gt;
        // Multiplicar cada bit pel seu pes i sumar al resultat&lt;br /&gt;
        decimal &amp;lt;- decimal + ConvertirANumero(subcadena(binari, i, i)) * pot2;&lt;br /&gt;
        pot2 &amp;lt;- pot2 * 2;&lt;br /&gt;
        i &amp;lt;- i - 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per verificar si una cadena és un nombre binari vàlid&lt;br /&gt;
Funcion esValid &amp;lt;- EsBinari(binari)&lt;br /&gt;
    Definir esValid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    esValid &amp;lt;- Verdadero;&lt;br /&gt;
    i &amp;lt;- 0;&lt;br /&gt;
    // Comprovar que tots els caràcters són '0' o '1'&lt;br /&gt;
    Mientras i &amp;lt; longitud(binari) Y esValid Hacer&lt;br /&gt;
        Si no (subcadena(binari, i, i) = &amp;quot;0&amp;quot; O subcadena(binari, i, i) = &amp;quot;1&amp;quot;) Entonces&lt;br /&gt;
            esValid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
        i &amp;lt;- i + 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Programa per gestionar DNI: obtenir la lletra, validar un DNI i sortir&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio Como Entero;&lt;br /&gt;
	Definir numeroDNI, dni Como Cadena;&lt;br /&gt;
    opcio &amp;lt;- 0;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions &lt;br /&gt;
        Escribir &amp;quot;1. Obtenir lletra DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Validar DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
                Escribir &amp;quot;Introdueix el número del DNI (8 dígits): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer numeroDNI;&lt;br /&gt;
                Si validarNumeroDNI(numeroDNI) Entonces&lt;br /&gt;
                    Escribir &amp;quot;La lletra corresponent és: &amp;quot;, obtenirLletraDNI(numeroDNI);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El número de DNI ha de tenir 8 dígits numèrics.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Validar si un DNI complet (número i lletra) és correcte&lt;br /&gt;
                Escribir &amp;quot;Introdueix el DNI complet (8 dígits i 1 lletra): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer dni;&lt;br /&gt;
                Si validarDNI(dni) Entonces&lt;br /&gt;
                    Si esDNIValid(dni) Entonces&lt;br /&gt;
                        Escribir &amp;quot;El DNI és vàlid.&amp;quot;;&lt;br /&gt;
                    Sino&lt;br /&gt;
                        Escribir &amp;quot;El DNI no és vàlid.&amp;quot;;&lt;br /&gt;
                    FinSi&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El format del DNI no és correcte.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:&lt;br /&gt;
                // Finalitzar el programa&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un número de DNI té exactament 8 dígits numèrics&lt;br /&gt;
Funcion es_valid &amp;lt;- validarNumeroDNI(numero)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(numero) &amp;lt;&amp;gt; 8 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        i &amp;lt;- 0;&lt;br /&gt;
        Mientras i &amp;lt; 8 Y es_valid Hacer&lt;br /&gt;
            // Comprovar que cada caràcter és un dígit&lt;br /&gt;
            Si no (subcadena(numero, i, i) &amp;gt;= '0' Y subcadena(numero, i, i) &amp;lt;= '9') Entonces&lt;br /&gt;
				es_valid &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
            i &amp;lt;- i + 1;&lt;br /&gt;
        FinMientras&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un DNI complet té el format correcte (8 dígits + 1 lletra)&lt;br /&gt;
Funcion es_valid &amp;lt;- validarDNI(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(dni) &amp;lt;&amp;gt; 9 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        es_valid &amp;lt;- validarNumeroDNI(subcadena(dni,0,7);&lt;br /&gt;
        // Comprovar que l'últim caràcter és una lletra majúscula&lt;br /&gt;
        Si no (Mayusculas(subcadena(dni, 8, 8)) &amp;gt;= 'A') Y (Mayusculas(subcadena(dni, 8, 8)) &amp;lt;= 'Z') Entonces&lt;br /&gt;
            es_valid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
Funcion lletra &amp;lt;- obtenirLletraDNI(numero) &lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    Definir lletres Como Cadena;&lt;br /&gt;
    lletres &amp;lt;- &amp;quot;TRWAGMYFPDXBNJZSQVHLCKE&amp;quot;;&lt;br /&gt;
    Definir index Como Entero;&lt;br /&gt;
    // Calcular la lletra en base al residu del número de DNI dividit per 23&lt;br /&gt;
    index &amp;lt;- ConvertirANumero(numero) mod 23;&lt;br /&gt;
    lletra &amp;lt;- subcadena(lletres, index, index);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per comprovar si un DNI és vàlid comparant la lletra calculada amb la introduïda&lt;br /&gt;
Funcion es_valid &amp;lt;- esDNIValid(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir numero Como Cadena;&lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    // Separar el número i la lletra del DNI&lt;br /&gt;
    numero &amp;lt;- subcadena(dni, 0, 7);&lt;br /&gt;
    lletra &amp;lt;- mayusculas(subcadena(dni, 8, 8));&lt;br /&gt;
    // Validar el número i comparar la lletra calculada&lt;br /&gt;
    es_valid &amp;lt;- lletra = obtenirLletraDNI(numero);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EndevinarNumero&lt;br /&gt;
	Definir limit_inferior, limit_superior, elmeunumero Como Entero;&lt;br /&gt;
	Definir opcio como Caracter;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	intents&amp;lt;-0;	&lt;br /&gt;
	//Es demana el primer interval&lt;br /&gt;
	ObtenirLimits(limit_inferior, limit_superior);&lt;br /&gt;
	//Es va repetint fins que s'encerti el número&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Escrivim el número proposat (què serà el número intermedi de l'interval)&lt;br /&gt;
		elmeunumero&amp;lt;-generarNumero(limit_inferior,limit_superior);&lt;br /&gt;
		Escribir &amp;quot;Has pensant en el número?:&amp;quot;, elmeunumero;&lt;br /&gt;
		//Incrementem el nombre d'intents&lt;br /&gt;
		intents&amp;lt;-intents+1;&lt;br /&gt;
		//Llegim l'opció, si no heu encertat es modifica alguns dels límits i es torna a proposar un nou número&lt;br /&gt;
		opcio&amp;lt;-LlegirOpcio();&lt;br /&gt;
		Si no Mayusculas(opcio)=&amp;quot;S&amp;quot; Entonces&lt;br /&gt;
			actualitzarLimits(opcio, elmeunumero, limit_inferior, limit_superior);&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot;;&lt;br /&gt;
	//S'escriu els intents que ha necessitat per encertar-ho&lt;br /&gt;
	Escribir &amp;quot;Ho he encertat en &amp;quot;,intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion num &amp;lt;- generarNumero(liminf,limsup)&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	num&amp;lt;-Trunc((liminf+limsup)/2);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- llegirOpcio&lt;br /&gt;
	Definir opcio Como Caracter;&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;¿Es correcte?&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;S: si es correcte.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;A: si es més alt que el número a endevinar.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;B: si es més baix que el número a enevinar.&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot; o Mayusculas(opcio)=&amp;quot;A&amp;quot; o Mayusculas(opcio)=&amp;quot;B&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion actualitzarLimits(opcio, num, liminf Por Referencia, limsup Por Referencia)&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
		liminf&amp;lt;-num + 1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		limsup&amp;lt;-num - 1;&lt;br /&gt;
	FinSi             &lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion  ObtenirLimits(liminf Por Referencia, limsup por Referencia)&lt;br /&gt;
Escribir &amp;quot;Pensa un número...&amp;quot;;&lt;br /&gt;
//Es demana el primer interval&lt;br /&gt;
Escribir &amp;quot;Necessito saber linterval on es troba el número:&amp;quot;;&lt;br /&gt;
	Repetir&lt;br /&gt;
		liminf &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit inferior: &amp;quot;);&lt;br /&gt;
		limsup &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit superior: &amp;quot;);	&lt;br /&gt;
	Hasta Que liminf &amp;lt; limsup;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion limit &amp;lt;- llegirLimit(missatge) &lt;br /&gt;
    Definir limit Como Entero;&lt;br /&gt;
    Repetir&lt;br /&gt;
		Escribir missatge Sin Saltar;&lt;br /&gt;
		Leer limit;&lt;br /&gt;
    Hasta Que limit &amp;gt; 0;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/ Programa que gestiona l'inici de sessió amb un màxim de 3 intents&lt;br /&gt;
&lt;br /&gt;
Proceso GestioLogin&lt;br /&gt;
    Definir user, password Como Cadena;&lt;br /&gt;
    Definir intents Como Entero;&lt;br /&gt;
    Definir accedit Como Logico;&lt;br /&gt;
    intents &amp;lt;- 0;  // Inicialitzem el comptador d'intents&lt;br /&gt;
    accedit &amp;lt;- Falso;  // Inicialment, l'usuari no ha accedit correctament&lt;br /&gt;
	&lt;br /&gt;
    // Bucle que permet a l'usuari intentar accedir fins a 3 vegades&lt;br /&gt;
    Mientras intents &amp;lt; 3 Y NO accedit Hacer&lt;br /&gt;
	LlegirCredencials(user, password);  // Demanem les credencials a l'usuari&lt;br /&gt;
	accedit &amp;lt;- Login(user, password, intents);  // Intentem fer login&lt;br /&gt;
	&lt;br /&gt;
	// Si l'usuari ha fallat, mostrem missatge d'error i intents restants&lt;br /&gt;
	Si NO accedit Entonces&lt;br /&gt;
		Escribir &amp;quot;Usuari o contrasenya incorrectes. Intents restants: &amp;quot;, 3 - intents;&lt;br /&gt;
	FinSi&lt;br /&gt;
    FinMientras&lt;br /&gt;
	&lt;br /&gt;
    // Un cop acabats els intents, mostrem el missatge final&lt;br /&gt;
    MostrarMissatgeFinal(accedit);&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Procediment per llegir les credencials de l'usuari&lt;br /&gt;
Funcion LlegirCredencials(user Por Referencia, password Por Referencia)&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom dusuari:&amp;quot;;&lt;br /&gt;
    Leer user;&lt;br /&gt;
    Escribir &amp;quot;Introdueix la contrasenya:&amp;quot;;&lt;br /&gt;
    Leer password;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció que comprova si l'usuari i la contrasenya són correctes&lt;br /&gt;
// També incrementa el nombre d'intents si l'autenticació falla&lt;br /&gt;
Funcion validar&amp;lt;-Login(user, password, intents Por Referencia)&lt;br /&gt;
    Definir validar Como Logico;&lt;br /&gt;
    Si user = &amp;quot;user1&amp;quot; Y password = &amp;quot;1@-27&amp;quot; Entonces&lt;br /&gt;
        validar &amp;lt;- Verdadero; // Si les credencials són correctes, retornem Cert;&lt;br /&gt;
    Sino&lt;br /&gt;
        intents &amp;lt;- intents + 1;  // Si són incorrectes, incrementem el comptador d'intents&lt;br /&gt;
        validar &amp;lt;- Falso;  // Retornem Fals per indicar que no s'ha pogut iniciar sessió&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Procediment que mostra un missatge final segons si l'usuari ha accedit correctament o no&lt;br /&gt;
Funcion MostrarMissatgeFinal(accedit)&lt;br /&gt;
    Si accedit Entonces&lt;br /&gt;
        Escribir &amp;quot;Accés concedit!&amp;quot;;  // Si l'usuari ha entrat correctament, ho indiquem&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;Has superat el nombre dintents permesos. Accés denegat.&amp;quot;;  // Si ha esgotat els intents, deneguem l'accés&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Convertir_Temps&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
		opcio &amp;lt;- Menu();&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir &amp;quot;Total en segons: &amp;quot;, A_Seconds();&lt;br /&gt;
			2:&lt;br /&gt;
				Definir h, m, s Como Entero;&lt;br /&gt;
				A_HMS(h, m, s);&lt;br /&gt;
				Escribir &amp;quot;Hores: &amp;quot;, h, &amp;quot; Minuts: &amp;quot;, m, &amp;quot; Segons: &amp;quot;, s;&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Sortint del programa...&amp;quot;;&lt;br /&gt;
		Fin Segun;&lt;br /&gt;
	Hasta Que opcio = 3;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- Menu&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
	Escribir &amp;quot;Menú dopcions:&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;1. Convertir hores, minuts i segons a segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2. Convertir segons a hores, minuts i segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Selecciona una opció (1-3):&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que opcio &amp;gt;= 1 Y opcio &amp;lt;= 3;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion segons &amp;lt;- A_Seconds&lt;br /&gt;
	Definir h, m, s, segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix hores, minuts i segons: &amp;quot;;&lt;br /&gt;
	Leer h, m, s;&lt;br /&gt;
	segons &amp;lt;- (h * 3600) + (m * 60) + s;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion A_HMS(h Por Referencia, m Por Referencia, s Por Referencia )&lt;br /&gt;
	Definir segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix segons: &amp;quot;;&lt;br /&gt;
	Leer segons;&lt;br /&gt;
	h &amp;lt;- Trunc(segons / 3600);&lt;br /&gt;
	m &amp;lt;- Trunc((segons % 3600) / 60);&lt;br /&gt;
	s &amp;lt;- (segons % 3600) % 60;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirAPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment IncialitzarPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Recorre el vector i inicialitza els seus elements a *. &lt;br /&gt;
//El * representa que l'element és buit.&lt;br /&gt;
//Paràmetres d'entrada: Grandària del vector&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion InicialitzarPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	Para i&amp;lt;-0 hasta size_pila-1 Hacer&lt;br /&gt;
		pila[i]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció LongitudPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un comptador amb els elements de la pila.&lt;br /&gt;
//Recorre el vector mentre no troba un * o arriba al final.&lt;br /&gt;
//Paràmetres d'entrada: mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion size &amp;lt;- LongitudPila(pila,size_pila)&lt;br /&gt;
	Definir size Como Entero;&lt;br /&gt;
	size&amp;lt;-0;&lt;br /&gt;
	Mientras size&amp;lt;size_pila Y pila[size]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		size&amp;lt;-size+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaBuidaPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un valor lògic indicant si la pila és buida.&lt;br /&gt;
//Està buida si la longitud és 0.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultat &amp;lt;- EstaBuidaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=0 Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaPlenaPila: Rep un vector (pila) i la seva mida.&lt;br /&gt;
//Retorna un valor lògic indicant si la pila és plena.&lt;br /&gt;
//Està plena si la longitud és igual a la mida del vector.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultadt &amp;lt;- EstaPlenaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=size_pila Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment AfegirAPilaPila: Rep un vector (pila), la seva mida i un element (cadena)&lt;br /&gt;
//Si no està plena, afegeix l'element a la següent posició buida,&lt;br /&gt;
//l'index del qual és igual a la Longitud de la pila.&lt;br /&gt;
//Si és plena, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion AfegirAPila(cad, pila Por Referencia,size_pila)&lt;br /&gt;
	Si no EstaPlenaPila(pila,size_pila) Entonces&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)]&amp;lt;-cad;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot afegir element. La pila és plena&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció TreureDeLaPila: Rep un vector (pila), la seva mida i torna &lt;br /&gt;
//l'element que s'ha introduït en darrer lloc, si no és buida.&lt;br /&gt;
//L'índex d'aquest element serà la longitud de la pila - 1&lt;br /&gt;
//L'element en aquesta posició es buida, és a dir, s'inicialitza a &amp;quot;*&amp;quot;.&lt;br /&gt;
//Si és buida, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//Dada retornada: L'element&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion cad &amp;lt;- TreureDeLaPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir cad Como Caracter;&lt;br /&gt;
	Si no EstaBuidaPila(pila,size_pila) Entonces&lt;br /&gt;
		cad &amp;lt;- pila[LongitudPila(pila,size_pila)-1];&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)-1]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot treure element. La pila és buida&amp;quot;;&lt;br /&gt;
		cad&amp;lt;-&amp;quot;&amp;quot;;	&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EscriurePila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Mostra els elements del vector fins que arribi al final o es trobi un *.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion EscriurePila(pila,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	i&amp;lt;-0;&lt;br /&gt;
	Mientras i&amp;lt;size_pila y pila[i]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Escribir Sin Saltar pila[i],&amp;quot; &amp;quot;;&lt;br /&gt;
		i&amp;lt;-i+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Realitza un programa principal que ens permeti utilitzar funcions per manipular piles.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso ProgramaPila&lt;br /&gt;
	Definir lamevapila Como Caracter;&lt;br /&gt;
	Dimension lamevapila[10];&lt;br /&gt;
	Definir mida_pila como Entero;&lt;br /&gt;
	Definir element Como Caracter;&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	mida_pila&amp;lt;-10;&lt;br /&gt;
	InicialitzarPila(lamevapila,mida_pila);&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;1.- Afegir element a la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2.- Treure element de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3.- Longitud de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;4.- Mostrar pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;5.- Sortir&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir sin Saltar &amp;quot;Nom de la cadena per afegir a la pila:&amp;quot;;&lt;br /&gt;
				Leer element;&lt;br /&gt;
				AfegirAPila(element,lamevapila,mida_pila);&lt;br /&gt;
			2:&lt;br /&gt;
				Escribir TreureDeLaPila(lamevapila,mida_pila);&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Longitud: &amp;quot;,LongitudPila(lamevapila,mida_pila);&lt;br /&gt;
			4:&lt;br /&gt;
				EscriurePila(lamevapila,mida_pila);&lt;br /&gt;
			5:&lt;br /&gt;
				&lt;br /&gt;
			De Otro Modo:&lt;br /&gt;
				Escribir &amp;quot;Opció incorrecta&amp;quot;;&lt;br /&gt;
		FinSegun&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que opcio=5;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaRepetit: Rep un número i un vector de quatre números i comprova&lt;br /&gt;
// si el número està en el vector.&lt;br /&gt;
//Paràmetre d'entrada: Número i vector&lt;br /&gt;
//Dada retornada: Valor lògic: Vertader si el número està en el vector i fals si no.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion repetit &amp;lt;- EstaRepetit(num, vector)&lt;br /&gt;
	Definir repetit Como Logico;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	repetit &amp;lt;- Falso;&lt;br /&gt;
	Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si num = vector[index] Entonces&lt;br /&gt;
			repetit &amp;lt;- Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment GenerarSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//no repetits&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion GenerarSequencia(vector Por Referencia)&lt;br /&gt;
Definir index Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[index] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		num &amp;lt;- Aleatorio(0, 9);&lt;br /&gt;
	Hasta Que No EstaRepetit(num, vector);&lt;br /&gt;
	vector[index] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment LlegirSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//llegits per teclat per l'usuari, assegurant que no s'introdueix cap repetit.&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion LlegirSequencia(vector Por Referencia)&lt;br /&gt;
Definir i Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Definir repetit Como Logico;&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[i] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Número &amp;quot;, i+1, &amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		repetit &amp;lt;- EstaRepetit(num, vector);&lt;br /&gt;
		Si repetit Entonces&lt;br /&gt;
			Escribir &amp;quot;No has dindicar números repetits.&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que No repetit;&lt;br /&gt;
	vector[i] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment ComprovarSequencia: Rep dos vectors, el secret i l'introduït&lt;br /&gt;
//per l'usuari i retorna el nombre de coincidències en la mateixa posició (encerts)&lt;br /&gt;
//i les coincidències en posicions diferents (aproximacions).&lt;br /&gt;
//Paràmetres d'entrada: Dos vectors&lt;br /&gt;
//Paràmetre d'entrada i sortida: encerts i aproximacions&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion ComprovarSequencia(secret, usuari, e Por Referencia, a Por Referencia)&lt;br /&gt;
Definir index_secret Como Entero;&lt;br /&gt;
Definir index_usuari Como Entero;&lt;br /&gt;
Para index_secret &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Para index_usuari &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si secret[index_secret] = usuari[index_usuari] Entonces&lt;br /&gt;
			Si index_secret = index_usuari Entonces&lt;br /&gt;
				e &amp;lt;- e + 1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				a &amp;lt;- a + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Programem el joc &amp;quot;Mastermind&amp;quot;: el programa escull un número de quatre xifres&lt;br /&gt;
//sense repeticions que el jugador ha d'endevinar.&lt;br /&gt;
// * ENCERTS: dígits correctes en la mateixa posició.&lt;br /&gt;
// * APROXIMACIONS: dígits correctes però en posició incorrecta.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso Mastermind&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	Definir numero Como Cadena;&lt;br /&gt;
	Definir resultats Como Cadena;&lt;br /&gt;
	Dimension resultats[100];&lt;br /&gt;
	Dimension secret[4];&lt;br /&gt;
	Dimension usuari[4];&lt;br /&gt;
	Definir secret Como Entero;&lt;br /&gt;
	Definir usuari Como Entero;&lt;br /&gt;
	Definir encerts Como Entero;&lt;br /&gt;
	Definir aproximacions Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	GenerarSequencia(secret);&lt;br /&gt;
	intents &amp;lt;- 0;&lt;br /&gt;
	Repetir&lt;br /&gt;
		LlegirSequencia(usuari);&lt;br /&gt;
		encerts &amp;lt;- 0;&lt;br /&gt;
		aproximacions &amp;lt;- 0;&lt;br /&gt;
		ComprovarSequencia(secret, usuari, encerts, aproximacions);&lt;br /&gt;
		numero &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
		Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
			numero &amp;lt;- Concatenar(numero, ConvertirATexto(usuari[index]));&lt;br /&gt;
		FinPara&lt;br /&gt;
		resultats[intents] &amp;lt;- Concatenar(numero, Concatenar(&amp;quot; - ENCERTS: &amp;quot;, Concatenar(ConvertirATexto(encerts), Concatenar(&amp;quot; - APROXIMACIONS: &amp;quot;, ConvertirATexto(aproximacions)))));&lt;br /&gt;
		Borrar Pantalla;&lt;br /&gt;
		Para index &amp;lt;- intents Hasta 0 Con Paso -1 Hacer&lt;br /&gt;
			Escribir resultats[index];&lt;br /&gt;
		FinPara&lt;br /&gt;
		intents &amp;lt;- intents + 1;&lt;br /&gt;
	Hasta Que encerts = 4;&lt;br /&gt;
	Escribir &amp;quot;Felicitats! Has endevinat el número en &amp;quot;, intents, &amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el&lt;br /&gt;
programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso bacteris&lt;br /&gt;
    Definir generacio_actual, seguent_generacio, temp_matriu Como Entero;&lt;br /&gt;
	Dimension generacio_actual[30,30], seguent_generacio[30,30], temp_matriu[30,30];&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    Definir iteracions, i, j, mida Como Entero;&lt;br /&gt;
	&lt;br /&gt;
    iteracions &amp;lt;- 0;&lt;br /&gt;
    estable &amp;lt;- Falso;&lt;br /&gt;
	mida &amp;lt;- 30; &lt;br /&gt;
	&lt;br /&gt;
    GenerarGeneracioInicial(generacio_actual, mida);&lt;br /&gt;
    MostrarGeneracio(generacio_actual, mida);&lt;br /&gt;
	&lt;br /&gt;
    Mientras No estable Y iteracions &amp;lt; 500 Hacer&lt;br /&gt;
        GenerarSeguentGeneracio(generacio_actual, seguent_generacio, mida);&lt;br /&gt;
        estable &amp;lt;- CompararGeneracions(generacio_actual, seguent_generacio, mida);&lt;br /&gt;
        ActualitzarGeneracioActual(generacio_actual, seguent_generacio, mida);&lt;br /&gt;
		iteracions &amp;lt;- iteracions + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	MostrarGeneracio(generacio_actual, mida);&lt;br /&gt;
	Escribir &amp;quot;Nombre diteracions fins estabilització: &amp;quot;, iteracions;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Omple la matriu amb valors 0 o 1 aleatoris&lt;br /&gt;
SubProceso GenerarGeneracioInicial(matriu Por Referencia, mida)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
            matriu[i,j] &amp;lt;- Aleatorio(0,1);&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Mostra per pantalla la generació&lt;br /&gt;
SubProceso MostrarGeneracio(matriu, mida)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Escribir Sin Saltar matriu[i,j], &amp;quot; &amp;quot;;&lt;br /&gt;
        FinPara&lt;br /&gt;
        Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
    FinPara&lt;br /&gt;
    Escribir &amp;quot;------------------------------&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Genera la nova generació segons les regles&lt;br /&gt;
SubProceso GenerarSeguentGeneracio(actual, nova Por Referencia, mida)&lt;br /&gt;
    Definir i, j, v Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            v &amp;lt;- ComptarVeins(actual, i, j, mida);&lt;br /&gt;
            Si actual[i,j] = 1 Entonces&lt;br /&gt;
                Si v = 2 O v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Supervivència&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Mort (solitud o asfíxia)&lt;br /&gt;
                FinSi&lt;br /&gt;
            Sino&lt;br /&gt;
                Si v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Naixement&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Continua buida&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Compta quants veïns vius hi ha al voltant de (x, y)&lt;br /&gt;
Funcion count &amp;lt;- ComptarVeins(matriu, x, z, mida)&lt;br /&gt;
    Definir dx, dz, i, j, count Como Entero;&lt;br /&gt;
    count &amp;lt;- 0;&lt;br /&gt;
    Para dx &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para dz &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si No (dx = 0 Y dz = 0) Entonces&lt;br /&gt;
                i &amp;lt;- x + dx;&lt;br /&gt;
                j &amp;lt;- z + dz;&lt;br /&gt;
                Si i &amp;gt;= 0 Y i &amp;lt;= mida - 1 Y j &amp;gt;= 0 Y j &amp;lt;= mida - 1 Entonces&lt;br /&gt;
                    count &amp;lt;- count + matriu[i,j];&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
	&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Compara dues generacions per veure si són iguals&lt;br /&gt;
Funcion estable &amp;lt;- CompararGeneracions(gen1, gen2, mida)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    estable &amp;lt;- Verdadero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si gen1[i,j] &amp;lt;&amp;gt; gen2[i,j] Entonces&lt;br /&gt;
                estable &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinFuncion	&lt;br /&gt;
	&lt;br /&gt;
SubProceso  ActualitzarGeneracioActual(gen1 Por Referencia, gen2, mida)&lt;br /&gt;
	Definir i, j Como Entero;&lt;br /&gt;
		Para i &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
			Para j &amp;lt;- 0 Hasta mida - 1 Hacer&lt;br /&gt;
				gen1[i,j] &amp;lt;- gen2[i,j];&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19299</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19299"/>
				<updated>2026-04-20T12:57:20Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un nom per teclat i després escriure un missatge de salutació&lt;br /&gt;
::Dades d'entrada: nom (cadena)&lt;br /&gt;
::Variables: nom (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nom&lt;br /&gt;
::2. Escriure missatge de salutació&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Saludar&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Escribir &amp;quot;Diguem el teu nom:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Hola &amp;quot;,nom;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la base i l'alçada del triangle i calcular el perímetre i el àrea&lt;br /&gt;
::Dades d'entrada: base(real), alçada(real)&lt;br /&gt;
::Informació de sortida: perímetre(real) i àrea(real)&lt;br /&gt;
::Variables: base, alçada, perímetre i àrea (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir base i altura&lt;br /&gt;
::2. Calcular perímetre(2*base + 2*alçada)&lt;br /&gt;
::3. Calcular àrea (base * altura&lt;br /&gt;
::4. Mostrar perímetre i àrea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Rectangle&lt;br /&gt;
	Definir base,alcada,perimetre,area como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la base:&amp;quot;;&lt;br /&gt;
	Leer base;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la alçada:&amp;quot;;&lt;br /&gt;
	Leer alcada;&lt;br /&gt;
	perimetre &amp;lt;- 2 * base + 2 * alcada;&lt;br /&gt;
	area &amp;lt;- base * alcada;&lt;br /&gt;
	Escribir &amp;quot;El perí­metre és &amp;quot;,perimetre,&amp;quot; y el àrea es &amp;quot;,area;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la longitud dels dos catets i calcular la hipotenusa. &lt;br /&gt;
::(Teorema de Pitàgores)&lt;br /&gt;
::Variables d'entrada: catet1(real), catet2(real)&lt;br /&gt;
::Variables de sortida: hipotenusa(real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir la longitud dels catets&lt;br /&gt;
::2. Calcular hipotenusa (En un triangle rectangle el quadrat de la hipotenusa  és igual a la suma dels quadrats dels catets.)&lt;br /&gt;
::Per tant la hipotenusa és igual a l'arrel quadrada de la suma dels quadrats dels catets (funció raiz).&lt;br /&gt;
::3. Mostrar la hipotenusa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHipotenusa&lt;br /&gt;
	Definir catet1,catet2,hipotenusa como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el catet 1:&amp;quot;;&lt;br /&gt;
	Leer catet1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la catet 2:&amp;quot;;&lt;br /&gt;
	Leer catet2;&lt;br /&gt;
	hipotenusa &amp;lt;- raiz(catet1 ^ 2 + catet2 ^ 2);&lt;br /&gt;
	Escribir &amp;quot;La hipotenusa és &amp;quot;, hipotenusa;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algorisme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir dos números, calcular la suma, resta, multiplicació i divisió. &lt;br /&gt;
::Dades d'entrada: Els dos números (real)&lt;br /&gt;
::Informació de sortida: suma, resta, multiplicació, divisió(real)&lt;br /&gt;
::Variables: num1, num2 (Real). &lt;br /&gt;
::Considero que les sortides no cal desar-la en variables.&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els números&lt;br /&gt;
::2. Mostrar suma, resta, multiplicació i divisió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Calcular&lt;br /&gt;
   Definir num1,num2 Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir &amp;quot;La suma &amp;quot;, num1+num2;&lt;br /&gt;
   Escribir &amp;quot;La resta és &amp;quot;, num1-num2;&lt;br /&gt;
   Escribir &amp;quot;La multiplicació és &amp;quot;, num1*num2;&lt;br /&gt;
   Escribir &amp;quot;La divisió és &amp;quot;, num1/num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir tres números i calcular la mitjana. Suma dels tres partits 3.&lt;br /&gt;
::Dades d'entrada: els tres números (real)&lt;br /&gt;
::Informació de sortida: la mitjana (real)&lt;br /&gt;
::Variables: num1,num2,num3, mitjana (Real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els tres números&lt;br /&gt;
::2. Calcular la mitjana: (num1+num2+num3)/3&lt;br /&gt;
:.3. Mostrar la mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularMitjana&lt;br /&gt;
   Definir num1,num2,num3, mitjana Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 3:&amp;quot;;&lt;br /&gt;
   Leer num3;&lt;br /&gt;
   mitjana &amp;lt;- (num1 + num2 + num3) /3;&lt;br /&gt;
   Escribir &amp;quot;La mitjana és &amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.&lt;br /&gt;
::Dades d'entrada: minuts (entero)&lt;br /&gt;
::Informació de sortida:hores i minuts (entero)&lt;br /&gt;
::Variables: minuts, res_hores, res_minuts (entero).&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir els minuts&lt;br /&gt;
::2. Calcular a quantes hores correspon, divisió sencera entre 60.&lt;br /&gt;
::3. calcular els minuts restants: resta de la divisió entre 60.&lt;br /&gt;
::4. Mostrar hores i minuts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHoras&lt;br /&gt;
	Definir minuts, res_hores, res_min como Entero;&lt;br /&gt;
	Escribir &amp;quot;Indica la quantitat de minuts:&amp;quot;;&lt;br /&gt;
	Leer minuts;&lt;br /&gt;
	res_hores&amp;lt;-trunc(minuts / 60);&lt;br /&gt;
	res_min&amp;lt;-minuts % 60;&lt;br /&gt;
	Escribir res_hores,&amp;quot; horas i &amp;quot;,res_min,&amp;quot; minuts.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El venedor té un sou base més una comissió del 10% per cada venda. &lt;br /&gt;
::Fa tres vendes.&lt;br /&gt;
::Dades dentrada: sou base, les tres vendes (real).&lt;br /&gt;
::Informació de sortida: comissions i sou total (real).&lt;br /&gt;
::Variables: sou_base, venda1, venda2, venda3, comissió(real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir sou base&lt;br /&gt;
::2. Llegir les tres vendes&lt;br /&gt;
::3. Calculeu les comissions. Suma del 10% de cada venda.&lt;br /&gt;
::4. Mostra comissió&lt;br /&gt;
::5. Mostra sou total: sou_base+comissió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_base, venda1, venda2, venda3, comissio como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica el sou base:&amp;quot;;&lt;br /&gt;
	Leer sou_base;&lt;br /&gt;
	Escribir &amp;quot;Indica import primera venda 1:&amp;quot;;&lt;br /&gt;
	Leer venda1;&lt;br /&gt;
	Escribir &amp;quot;Indica import segona venda 2:&amp;quot;;&lt;br /&gt;
	Leer venda2;&lt;br /&gt;
	Escribir &amp;quot;Indica import tercera venda 3:&amp;quot;;&lt;br /&gt;
	Leer venda3;&lt;br /&gt;
	comissio&amp;lt;-venda1*0.1+venda2*0.1+venda3*0.1;&lt;br /&gt;
	Escribir &amp;quot;Comissió per vendes:&amp;quot;,comissio;&lt;br /&gt;
	Escribir &amp;quot;Sou total:&amp;quot;, sou_base+comissio;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final. &lt;br /&gt;
::Posteriorment es calculen els percentatges i es sumen.&lt;br /&gt;
::Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).&lt;br /&gt;
::Informació de sortida: nota final (real).&lt;br /&gt;
::Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir les notes parcials, de l'examen final i de la feina.&lt;br /&gt;
::2. Calculem la nota 55% de la mitjana de les notes parcials, més el 30% de la nota de l'examen més 15% de la nota del treball.&lt;br /&gt;
::3. Mostra nota final&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularNota&lt;br /&gt;
	Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 1:&amp;quot;;&lt;br /&gt;
	Leer parcial1;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 2:&amp;quot;;&lt;br /&gt;
	Leer parcial2;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 3:&amp;quot;;&lt;br /&gt;
	Leer parcial3;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del examen:&amp;quot;;&lt;br /&gt;
	Leer examen;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del treball:&amp;quot;;&lt;br /&gt;
	Leer treball;&lt;br /&gt;
	nota &amp;lt;- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;&lt;br /&gt;
	Escribir &amp;quot;Nota final:&amp;quot;, nota;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen el valor de dues variables (el tipus pot ser el que vulguem). &lt;br /&gt;
::Cal intercanviar els valors de les variables&lt;br /&gt;
::Dades d'entrada: dos números en dues variables (enters).&lt;br /&gt;
::Informació de sortida: Les dues variables però amb les dades canviades (enter)&lt;br /&gt;
::Variables: num1, num2 (enters).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els dos números&lt;br /&gt;
::2. Intercanvio els valors. Necessito una variable auxiliar (aux). &lt;br /&gt;
:: Assigno &amp;quot;num1&amp;quot; a &amp;quot;aux&amp;quot;, &amp;quot;num2&amp;quot; a &amp;quot;num1&amp;quot; i &amp;quot;aux&amp;quot; a &amp;quot;num2&amp;quot;&lt;br /&gt;
::3. Mostra &amp;quot;num1&amp;quot; i &amp;quot;num2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso IntercanviarVariables&lt;br /&gt;
	Definir num1,num2,aux  como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	aux &amp;lt;- num1;&lt;br /&gt;
	num1 &amp;lt;- num2;&lt;br /&gt;
	num2 &amp;lt;- aux;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num1: &amp;quot;, num1;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num2: &amp;quot;, num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen la quantitat de monedes que tenim (de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) i calculem els diners que tenim (euros i cèntims)&lt;br /&gt;
::Dades d'entrada: monedes de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) (Enteros).&lt;br /&gt;
::Informació de sortida: total de diners: euros i cèntims (Enteros)&lt;br /&gt;
::Variables: euro2, euro1, cent50, cent20, cent10, total_euros, total_centims (Enteros)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el monedes de 2e, 1e, 50 cèntims, 20 cèntims i 10 cèntims.&lt;br /&gt;
::2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
::3. Calcular cèntims (monedes de 50c * 50 + moneda de 20c * 20 + moneda de 10c * 10)&lt;br /&gt;
::4. Convertir cèntims a euros (divisió sencera entre 100)&lt;br /&gt;
::5. Mostrar euros i cèntims totals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularDiners&lt;br /&gt;
	Definir euro2,euro1,cent50,cent20,cent10 como Entero;&lt;br /&gt;
	Definir total_euros, total_centims Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 2 euros:&amp;quot;;&lt;br /&gt;
	Leer euro2;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 1 euro:&amp;quot;;&lt;br /&gt;
	Leer euro1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 50 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent50;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 20 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent20;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 10 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent10;&lt;br /&gt;
	//2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
	total_euros &amp;lt;- euro2 * 2 + euro1;&lt;br /&gt;
	//3. Calcular cèntims (monedes de 50c * 50 + monedes de 20c * 20 + monedes de 10c * 10&lt;br /&gt;
	total_centims &amp;lt;- cent50 * 50 + cent20 * 20 + cent10 * 10;&lt;br /&gt;
	//4. Convertir cèntims a euros (divisió entera entre 100)&lt;br /&gt;
	total_euros &amp;lt;- total_euros + trunc(total_centims / 100);&lt;br /&gt;
	total_centims &amp;lt;- total_centims % 100;&lt;br /&gt;
	Escribir total_euros,&amp;quot; euros i &amp;quot;,total_centims,&amp;quot; cèntims.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.&lt;br /&gt;
::Dades d'entrada: número (enter)&lt;br /&gt;
::Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.&lt;br /&gt;
::Variables: num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el número&lt;br /&gt;
::2. Si el nombre és igual 0 escriviu &amp;quot;És igual a 0&amp;quot;&lt;br /&gt;
::3. En cas contrari si és més gran que 0 escriure &amp;quot;És més gran que 0&amp;quot;&lt;br /&gt;
::4. En altre cas escriure &amp;quot;És menor que 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularPositiuNegatiuZero&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Escribir &amp;quot;Digue'm el número :&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Si num=0 Entonces&lt;br /&gt;
		Escribir &amp;quot;És igual a 0&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			Escribir &amp;quot;És positiu&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Escribir &amp;quot;És negatiu&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat nom i contrasenya&lt;br /&gt;
::si coincideixen amb les correctes indiquem que s'ha entrat al sistema.&lt;br /&gt;
::en cas contrari indiquem que el nom o la clau són incorrectes&lt;br /&gt;
::Dades d'entrada: usuari, password (cadena)&lt;br /&gt;
::Informació de sortida: Missatges d'encert o error.&lt;br /&gt;
::Variables: usuari, password (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir l'usuari&lt;br /&gt;
::2. Llegir el password&lt;br /&gt;
::3. Si l'usuari és igual a &amp;quot;pcarbonell&amp;quot; i el password és igual a &amp;quot;pc1673&amp;quot; &lt;br /&gt;
::escriure &amp;quot;Has entrat al sistema&amp;quot;&lt;br /&gt;
::4. En cas contrari mostrar el missatge &amp;quot;Usuari/password incorrecte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Procéso Login&lt;br /&gt;
	Definir usuari, password como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix l'usuari:&amp;quot;;&lt;br /&gt;
	Leer usuari;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el password:&amp;quot;;&lt;br /&gt;
	Leer password;&lt;br /&gt;
	Si usuari=&amp;quot;pcarbonell&amp;quot; Y password=&amp;quot;pc1673&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Has entrat al sistema&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;Usuari/password incorrecte&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat dos números: nota i edat i un caràcter sexe.&lt;br /&gt;
::Es mostra &amp;quot;ACCEPTADA&amp;quot; si nota&amp;gt;=5, edat&amp;gt;=18 i el sexe és femení.&lt;br /&gt;
::Si es compleix les mateixes condicions però amb el sexe masculí -&amp;gt; &amp;quot;POSSIBLE&amp;quot; en cas contrari es mostra &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
::Dades d'entrada: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
::Informació de sortida: Missatge d'informació&lt;br /&gt;
::Variables: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir la nota, l'edat i el sexe&lt;br /&gt;
::2. si nota&amp;gt;=5, edat&amp;gt;=18 &lt;br /&gt;
::3. si sexe=&amp;quot;F&amp;quot; mostrar &amp;quot;ACCEPTADA&amp;quot; -&amp;gt; funció Mayusculas()&lt;br /&gt;
::4. si sexe=&amp;quot;M&amp;quot; mostrar &amp;quot;POSSIBLE&amp;quot;&lt;br /&gt;
::5. En cas contrari, mostrar &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComprovarNotaEdatSexe&lt;br /&gt;
	Definir nota,edat como Entero;&lt;br /&gt;
	Definir sexe como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la nota:&amp;quot;;&lt;br /&gt;
	Leer nota;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la edat:&amp;quot;;&lt;br /&gt;
	Leer edat;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el sexe (F/M):&amp;quot;;&lt;br /&gt;
	Leer sexe;&lt;br /&gt;
	Si nota&amp;gt;=5 Y edat&amp;gt;=18 Entonces&lt;br /&gt;
		Si Mayusculas(sexe)=&amp;quot;F&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Acceptada&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(sexe)=&amp;quot;M&amp;quot; Entonces&lt;br /&gt;
				Escribir &amp;quot;Possible&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El preu final del raïm es calcula multiplicant els quilos recollits pel preu de cada quilo. El preu per quilo es calcula a partir del preu inicial sumant o restant una quantitat determinada segons la mida i el tipus del raïm.&lt;br /&gt;
::Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)&lt;br /&gt;
::Informació de sortida: Preu final en euros (real) o missatge d'error&lt;br /&gt;
::Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir preu_inicial, quilos&lt;br /&gt;
::2. Llegir tipus&lt;br /&gt;
::3. Si tipus no és &amp;quot;A&amp;quot; o &amp;quot;B&amp;quot; tornar missatge d'error.&lt;br /&gt;
::4. Llegir la mida&lt;br /&gt;
::5. Si la mida no és &amp;quot;1&amp;quot; o &amp;quot;2&amp;quot; tornar missatge d'error.&lt;br /&gt;
::6. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;1&amp;quot; summe a preu_inicial 20 cèntims.&lt;br /&gt;
::7. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;2&amp;quot; summe a preu_inicial 30 cèntims.&lt;br /&gt;
::8. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;1&amp;quot; resta a preu_inicial 20 cèntims.&lt;br /&gt;
::9. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;2&amp;quot; resta a preu_inicial 30 cèntims.&lt;br /&gt;
::10. El preu_final = preu_inicial * quilos&lt;br /&gt;
::11. Mostra preu final/100 euros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso PreuUva&lt;br /&gt;
	Definir tipus como Caracter;&lt;br /&gt;
	Definir mida como Caracter;&lt;br /&gt;
	Definir preu_inicial,preu_final como Real;&lt;br /&gt;
	Definir quilos como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el preu inicial per quilos del UVA (cèntims):&amp;quot;;&lt;br /&gt;
	Leer preu_inicial;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix quants quilos has venut:&amp;quot;;&lt;br /&gt;
	Leer quilos;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el tipus de lUVA (A/B):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
	&lt;br /&gt;
	Si Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;A&amp;quot; Y Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Tipus incorrecte&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix la mida del UVA (1/2):&amp;quot;;&lt;br /&gt;
		Leer mida;&lt;br /&gt;
		Si mida&amp;lt;&amp;gt;&amp;quot;1&amp;quot; Y mida&amp;lt;&amp;gt;&amp;quot;2&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Mida incorrecte&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(tipus)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			SiNo&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
			preu_final&amp;lt;-preu_inicial * quilos;&lt;br /&gt;
			Escribir &amp;quot;El guany és&amp;quot;,preu_final/100, &amp;quot;euros.&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DescompteComercial&lt;br /&gt;
	&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Definir preuOriginal, descompte, preuFinal como Real;&lt;br /&gt;
	Definir codiDescompte como Entero;&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom de larticle: &amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el preu original: &amp;quot;;&lt;br /&gt;
	Leer preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi de descompte: &amp;quot;;&lt;br /&gt;
	Leer codiDescompte;&lt;br /&gt;
	&lt;br /&gt;
	Segun codiDescompte Hacer&lt;br /&gt;
		1: descompte &amp;lt;- preuOriginal * 0.10;&lt;br /&gt;
		2: descompte &amp;lt;- preuOriginal * 0.15;&lt;br /&gt;
		3: descompte &amp;lt;- preuOriginal * 0.20;&lt;br /&gt;
		De Otro Modo: descompte &amp;lt;- 0;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
	preuFinal &amp;lt;- preuOriginal - descompte;&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Article: &amp;quot;, nom;&lt;br /&gt;
	Escribir &amp;quot;Preu original: &amp;quot;, preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Descompte: &amp;quot;, descompte;&lt;br /&gt;
	Escribir &amp;quot;Preu final: &amp;quot;, preuFinal;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Area&lt;br /&gt;
	&lt;br /&gt;
	Definir figura Como Entero; &lt;br /&gt;
	Definir areaFig, costat, ample, llarg, base, alcada, radi Como Real;&lt;br /&gt;
	Escribir &amp;quot;Escull la figura geomètrica&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;1 Quadrat , 2 Rectangle , 3 Triangle , 4 Cercle&amp;quot;;&lt;br /&gt;
	Leer figura; &lt;br /&gt;
	&lt;br /&gt;
	Segun figura Hacer&lt;br /&gt;
		1 : &lt;br /&gt;
			Escribir &amp;quot;Introdueix la mida dun costat del quadrat&amp;quot;;&lt;br /&gt;
			Leer costat;&lt;br /&gt;
			areaFig &amp;lt;- costat * costat;&lt;br /&gt;
			&lt;br /&gt;
		2 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix lample del rectangle&amp;quot;;&lt;br /&gt;
			Leer ample;&lt;br /&gt;
			Escribir &amp;quot;Introdueix el llarg del rectangle&amp;quot;;&lt;br /&gt;
			Leer llarg;&lt;br /&gt;
			areaFig &amp;lt;- ample * llarg;&lt;br /&gt;
			&lt;br /&gt;
		3 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix la alçada del triangle&amp;quot;;&lt;br /&gt;
			Leer alcada;&lt;br /&gt;
			Escribir &amp;quot;Introdueix la base del triangle&amp;quot;;&lt;br /&gt;
			Leer base;&lt;br /&gt;
			areaFig &amp;lt;- (base * alcada) / 2;&lt;br /&gt;
			&lt;br /&gt;
		4 :&lt;br /&gt;
			Escribir &amp;quot;Ingrese el radio del circulo&amp;quot;;&lt;br /&gt;
		Leer radi;&lt;br /&gt;
			areaFig &amp;lt;- PI * radi * radi;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;làrea de la figura és: &amp;quot; , areaFig;	&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 False&lt;br /&gt;
b) num1=1 num2=2 False&lt;br /&gt;
c) num1=2 num2=1 False&lt;br /&gt;
d) num1=2 num2=2 True&lt;br /&gt;
e) num1=0 num2=0 False&lt;br /&gt;
f) num1=1 num2=0 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 True&lt;br /&gt;
b) num1=3 num2=4 False&lt;br /&gt;
c) num1=4 num2=3 True&lt;br /&gt;
d) num1=4 num2=4 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 True&lt;br /&gt;
b) num1=1 num2=2 num3=3 True&lt;br /&gt;
c) num1=1 num2=3 num3=2 False&lt;br /&gt;
d) num1=2 num2=1 num3=3 True&lt;br /&gt;
e) num1=2 num2=3 num3=1 False&lt;br /&gt;
f) num1=3 num2=2 num3=1 True&lt;br /&gt;
g) num1=3 num2=1 num3=2 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num4 Y num3 &amp;gt; num4) &lt;br /&gt;
&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3)&lt;br /&gt;
&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3 Y num1 !=num4) &lt;br /&gt;
&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num3 Y num2 &amp;lt; num4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
&lt;br /&gt;
   ((notaLit + notaCat + notaMat) / 3) &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
&lt;br /&gt;
  ((notaMat &amp;gt; (notaLit + notaCat + notaMat) / 3) Y (notaCat &amp;gt; (notaLit + notaCat + notaMat))&lt;br /&gt;
&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 O notaCat &amp;gt; 5 O notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 Y notaCat &amp;gt; 5 Y notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; vendesP2 Y vendesP1 &amp;gt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt;= 200 Y vendesP2&amp;gt;= 200 Y vendesP3 &amp;gt;= 200)&lt;br /&gt;
&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; 400 O vendesP2 &amp;gt; 400 O vendesP3 &amp;gt; 400)&lt;br /&gt;
&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3) / 3) &amp;gt; 500&lt;br /&gt;
&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP2 &amp;lt; vendesP1 O vendesP2 &amp;lt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3 &amp;gt;= 500) Y (vendesP1 + vendesP2 + vendesP3 &amp;lt;= 1000))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
::Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre.&lt;br /&gt;
::Informació de sortida: El resultat del factorial&lt;br /&gt;
::Variables: num, comptador (enter), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
::2. Inicialitza variables: resultat = 1&lt;br /&gt;
::3. Per a comptador=2 fins num&lt;br /&gt;
:::::4. resultat=resultat*comptador&lt;br /&gt;
::5. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador como Entero;&lt;br /&gt;
	Definir resultat como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para comptador&amp;lt;-2 Hasta num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El resultat és&amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un nombre. Si és senar, li sumo 1 i ja és parell. Llegim el segon número.&lt;br /&gt;
::Escric el número des del primer fins al segon de dos en dos.&lt;br /&gt;
::Dades d'entrada: dos números&lt;br /&gt;
::Informació de sortida: Els nombres parells que hi ha entre els dos anteriors&lt;br /&gt;
::Variables: num, num1, num2 (enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir num1,num2&lt;br /&gt;
::2. Si num1 és senar -&amp;gt; num1=num1+1&lt;br /&gt;
::3. Des de num1 fins a num2 de 2 en 2&lt;br /&gt;
::::4. Escriure el número&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso NumerosParells&lt;br /&gt;
	Definir num,num1,num2 Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	Si num1 % 2 = 1 Entonces&lt;br /&gt;
		num1&amp;lt;-num1+1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Para num&amp;lt;-num1 Hasta num2 Con Paso 2 Hacer&lt;br /&gt;
			Escribir Sin Saltar num,&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demana la quantitat de números que es llegiran. Anem introduint números.&lt;br /&gt;
::Hem de comptar els positius, negatius i zeros.&lt;br /&gt;
::Dades d'entrada: Quantitat de números, els números.&lt;br /&gt;
::Informació de sortida: Quantitat de positius, de negatius i de zeros.&lt;br /&gt;
::Variables: quantitat_num,num,cont_positius,cont_negatius,cont_zeros(enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo els comptadors&lt;br /&gt;
::2. Llegir quantitat de números&lt;br /&gt;
::3. Des d'1 fins a quantitat de números&lt;br /&gt;
::::4. Llegir num&lt;br /&gt;
::::5. Si num&amp;gt; 0-&amp;gt; increment cont_positius&lt;br /&gt;
::::6. Si num&amp;lt; 0-&amp;gt; increment cont_negatius&lt;br /&gt;
::::7. Si num = 0-&amp;gt; increment cont_zeros.&lt;br /&gt;
::8Mostra cont_postius, cont_negatius, cont_zeros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComptarNumerosPositiusNegatiusIZeros&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir quantitat_num,i Como Entero;&lt;br /&gt;
	Definir cont_negatius,cont_positius,cont_zeros Como Entero;&lt;br /&gt;
	cont_negatius &amp;lt;- 0;&lt;br /&gt;
	cont_positius &amp;lt;- 0;&lt;br /&gt;
	cont_zeros &amp;lt;- 0;&lt;br /&gt;
	Escribir &amp;quot;Quants números introduiràs?:&amp;quot;;&lt;br /&gt;
	Leer quantitat_num;&lt;br /&gt;
	Para i&amp;lt;-1 Hasta quantitat_num Hacer&lt;br /&gt;
		Escribir &amp;quot;Nombre &amp;quot;,i,&amp;quot;:&amp;quot; ;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			cont_positius &amp;lt;- cont_positius + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si num&amp;lt;0 Entonces&lt;br /&gt;
				cont_negatius &amp;lt;- cont_negatius + 1;&lt;br /&gt;
				Sino&lt;br /&gt;
				cont_zeros &amp;lt;- cont_zeros + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Números positius:&amp;quot;,cont_positius;&lt;br /&gt;
	Escribir &amp;quot;Números negatius:&amp;quot;,cont_negatius;&lt;br /&gt;
	Escribir &amp;quot;Nombre igual a 0:&amp;quot;,cont_zeros;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que mostri la taula de multiplicar d'un número introduït per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim el número del que volem mostrar la taula&lt;br /&gt;
::Necessitem un comptador per comptar d'1 a 10&lt;br /&gt;
:.Hem de repetir 10 vegades -&amp;gt; A cada volta hem de mostrar: el comptador * el número = resultat de la multiplicació&lt;br /&gt;
::Dades d'entrada: El número de la taula i un comptador d'1 a 10.&lt;br /&gt;
::Informació de sortida: Les 10 operacions de la taula de multiplicació&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir taula&lt;br /&gt;
::2. Des de nombre d'1 a 10&lt;br /&gt;
::::3. Mostrar num * taula = (num*taula)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulaMultiplicar&lt;br /&gt;
	Definir num, numTaula Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols mostrar la taula de multiplicar?:&amp;quot;;&lt;br /&gt;
	Leer numTaula;&lt;br /&gt;
	Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Escribir num,&amp;quot; * &amp;quot;, numTaula,&amp;quot; = &amp;quot;,num*numTaula;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::He de repetir 10 vegades (des del número 1 fins al 10) mostrar la taula de multiplicar d'aquest número.&lt;br /&gt;
::Com hem vist en l'exercici 4, per fer una taula de multiplicar hem de repetir 10 vegades per mostrar cada línia de la taula.&lt;br /&gt;
::Per tant necessito dos bucles imbricats.&lt;br /&gt;
::Dades d'entrada: Res&lt;br /&gt;
::Informació de sortida: Les deu taules de multiplicar&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Per a taula des d'1 fins a 10&lt;br /&gt;
::::2. Per num des d'1 fins a 10&lt;br /&gt;
::::::3. Mostrar taula * num = (taula*num)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulesDeMultiplicar&lt;br /&gt;
	Definir taula,num Como Entero;&lt;br /&gt;
	Para taula&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
			Escribir taula,&amp;quot; * &amp;quot;,num,&amp;quot; = &amp;quot;, taula*num;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Esperar Tecla;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Calcular el sou i les hores treballades dun empleat en una setmana (6 dies).&lt;br /&gt;
::Cal anar introduint la quantitat d'hores que treballa cada dia.&lt;br /&gt;
::Hem de saber quant es paga l'hora treballada.&lt;br /&gt;
::Cal anar acumulant les hores treballades cada dia, per poder calcular el sou.&lt;br /&gt;
::Dades d'entrada: Sou per hora, hores.&lt;br /&gt;
::Informació de sortida: Les hores acumulades, i el sou de la setmana.&lt;br /&gt;
::Variables: sou_per_hora (Real),hores, hores_acum, dia(enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1.- Inicialitzo les hores acumulades&lt;br /&gt;
::2.- Llegir sou per hora (sou)&lt;br /&gt;
::3.- Des del dia 1 al 6&lt;br /&gt;
::::4.- Llegir hores treballades&lt;br /&gt;
::::5.- Acumular les hores treballades&lt;br /&gt;
::6.- Mostrar Les hores acumulades&lt;br /&gt;
::7.- Mostrar el sou -&amp;gt; hores acumulades * sou per hora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir hores, hores_acum Como  Entero;&lt;br /&gt;
	Definir dia Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix el sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para dia&amp;lt;-1 hasta 6 Hacer&lt;br /&gt;
		Escribir &amp;quot;Quantes hores has treballat el dia &amp;quot;,dia,&amp;quot;?:&amp;quot;;&lt;br /&gt;
		Leer hores;&lt;br /&gt;
		hores_acum &amp;lt;- hores_acum + hores;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Hores acumulades a la setmana:&amp;quot;,hores_acum;&lt;br /&gt;
	Escribir &amp;quot;Sou:&amp;quot;,sou_per_hora*hores_acum;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal calcular el sou d'un nombre de treballadors, per tant necessitem el nombre de treballadors que té lempresa. També necessitem saber el sou per hora, i per cada treballador cal demanar les hores que ha treballat a la setmana.&lt;br /&gt;
::Per cada treballador cal mostrar el sou setmanal i en finalitzar el programa mostrem el total de sous pagats.&lt;br /&gt;
::Dades d'entrada: Nombre de treballadors, sou per hora, hores treballades per cada treballador.&lt;br /&gt;
::Informació de sortida: Sou de cada treballador, total pagat.&lt;br /&gt;
::Variables: hores_per_setmana, hores_acum (enter), sou_per_hora (real), treballadors, treballador (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo l'acumulador d'hores&lt;br /&gt;
::2. Llegir el nombre de treballadors&lt;br /&gt;
::3. Llegir sou per hora&lt;br /&gt;
::4. Per cada treballador&lt;br /&gt;
::::5. Llegir hores treballades per setmana&lt;br /&gt;
::::6. Mostrar sou (hores_per_setmana*sou_per_hora&lt;br /&gt;
::::7. Acumular hores treballades&lt;br /&gt;
::8. Mostrar total de pagament (hores_acum*sou_per_hora)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSalari&lt;br /&gt;
	Definir hores_per_setmana, hores_acum Como Entero;&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir treballadors, treballador Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Quants treballadors té l'empresa?:&amp;quot;;&lt;br /&gt;
	Leer treballadors;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para treballador&amp;lt;-1 Hasta treballadors Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Quantes hores ha treballat el treballador, treballador, ?&amp;quot;;&lt;br /&gt;
		Leer hores_per_setmana;&lt;br /&gt;
		hores_acum&amp;lt;-horas_acum+hores_per_setmana;&lt;br /&gt;
		Escribir &amp;quot;El treballador &amp;quot;,treballador,&amp;quot; té de sou &amp;quot;,hores_per_setmana*sou_per_hora; &lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El pagament als &amp;quot;treballadors,&amp;quot; treballadors és: &amp;quot;,hores_acum*sou_per_hora;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Fei un algoritme que mostri el següent quadrat  d'asteríscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratAstriscos&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratBlanc&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Si (fila = 1 o fila = num o col = 1 o col = num) Entonces&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;  &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	  Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-num Hasta fila Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col,&amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1. Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Hem de generar un nombre aleatori (funció aleatori) de l'1 al 100.&lt;br /&gt;
:: Necessitem un comptador per comptar els 10 intents. Al principi val 10 i anirà decrementant.&lt;br /&gt;
:: Mentre no encerti el número i em quedin intents:&lt;br /&gt;
:: Llegeixo un número&lt;br /&gt;
:: Ho comparo amb el nombre generat (dic si és més gran o més petit)&lt;br /&gt;
:: Demano un altre nombre&lt;br /&gt;
:: Puc acabar el bucle per dues raons: si he endevinat el número (he guanyat) i mostro els intents que he necessitat.&lt;br /&gt;
:: sinó he perdut, he utilitzat els 10 intents i mostro el número generat.&lt;br /&gt;
:: Dades d'entrada: número demanat a l'usuari.&lt;br /&gt;
:: Informació de sortida: Has guanyat i els intents, o has perdut i el número.&lt;br /&gt;
:: Variables: num_scret, num_ingressat, intents (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
:: 1. Genero un nombre aleatori de l'1 al 100 (num_secret)&lt;br /&gt;
:: 2. intents = 10&lt;br /&gt;
:: 3. Llegir num&lt;br /&gt;
:: 4. Mentre num&amp;lt;&amp;gt; num_secret i intents&amp;gt;1&lt;br /&gt;
:::: 5. Si num_screto&amp;gt;num -&amp;gt; Escriure &amp;quot;Molt baix&amp;quot;&lt;br /&gt;
:::: 6. Si num_screto&amp;lt;num -&amp;gt; Escriure &amp;quot;Molt alt&amp;quot;&lt;br /&gt;
:::: 7. intents=intents-1&lt;br /&gt;
:::: 8. Escriure intents&lt;br /&gt;
:::: 9. Llegir num&lt;br /&gt;
:: 10. Si num_secreo=num -&amp;gt; Escriure &amp;quot;Has guanyat&amp;quot;, intents&lt;br /&gt;
:: 11. SiNo -&amp;gt; Escriure &amp;quot;Has perdut, num_secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Adivina_Numero&lt;br /&gt;
    Definir intents,num_secret,num_ingressat Como Entero;&lt;br /&gt;
    intents &amp;lt;- 10;&lt;br /&gt;
    num_secret &amp;lt;- Aleatorio(1,100);&lt;br /&gt;
    &lt;br /&gt;
    Escribir &amp;quot;Endevineu el nombre (d'1 a 100):&amp;quot;;&lt;br /&gt;
    Leer num_ingressat;&lt;br /&gt;
    Mientras num_secret&amp;lt;&amp;gt;num_ingressat Y intents&amp;gt;1 Hacer&lt;br /&gt;
        Si num_secret&amp;gt;num_ingressat Entonces&lt;br /&gt;
            Escribir &amp;quot;Molt baix&amp;quot;;&lt;br /&gt;
        Sino &lt;br /&gt;
            Escribir &amp;quot;Molt alt&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
        intents &amp;lt;- intents-1;&lt;br /&gt;
        Escribir &amp;quot;Li queden &amp;quot;,intents,&amp;quot; intents:&amp;quot;;&lt;br /&gt;
        Leer num_ingressat;&lt;br /&gt;
    FinMientras&lt;br /&gt;
    &lt;br /&gt;
    Si num_secret=num_ingressat Entonces&lt;br /&gt;
        Escribir &amp;quot;Exacte! Vostè endevino a &amp;quot;,11-intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;El nombre era: &amp;quot;,num_secret;&lt;br /&gt;
    FinSi&lt;br /&gt;
    &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Anem demanant números fins a introduir un 0.&lt;br /&gt;
:: Necessitem un acumulador per anar fent les sumes intermèdies.&lt;br /&gt;
:: A més necessitem un comptador, per calcular la mitjana (suma/quantitat)&lt;br /&gt;
:: Dades d'entrada: números, un acumulador per sumar i un comptador&lt;br /&gt;
:: Informació de sortida: La suma i la mitjana&lt;br /&gt;
:: Variables:num, suma, cont enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzat: suma = 0, cont = 0&lt;br /&gt;
::2. Llegir num&lt;br /&gt;
::3. Mentre num&amp;lt;&amp;gt;0&lt;br /&gt;
:::: 4. Acumul: suma = suma + num&lt;br /&gt;
:::: 5. Conte si num&amp;lt;&amp;gt;0: cont=cont+1&lt;br /&gt;
:::. 6. Llegir num&lt;br /&gt;
::7. Si cont=0 (No hem introduït cap número)-&amp;gt; mitjana=0&lt;br /&gt;
::8. SiNo -&amp;gt; mitjana=suma/cont;&lt;br /&gt;
::9. Mostrar suma i mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSumaMitjana&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir suma,cont como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	suma &amp;lt;- 0;&lt;br /&gt;
	cont &amp;lt;-0;&lt;br /&gt;
	//Amb el mentre si el primer número és 0 no entrarà al bucle&lt;br /&gt;
	Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		suma &amp;lt;- suma + num;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
		Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	//Si cont=0 no puc fer la divisió&lt;br /&gt;
	Si cont&amp;gt;0 Entonces&lt;br /&gt;
		mitjana &amp;lt;- suma / cont;&lt;br /&gt;
	SiNo&lt;br /&gt;
		mitjana &amp;lt;-0;&lt;br /&gt;
	FinSi&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Suma:&amp;quot;,suma;&lt;br /&gt;
	Escribir &amp;quot;Mitjana:&amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
:: Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre&lt;br /&gt;
:: Informació de sortida: El resultat del factorial&lt;br /&gt;
:: Variables: num, comptador (entero), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
:.2. Inicials variables&lt;br /&gt;
:: comptador = 2&lt;br /&gt;
:: resultat = 1&lt;br /&gt;
:: 3. Mentre comptador&amp;lt;=num fer&lt;br /&gt;
:::: 4. resultat=resultat*comptador&lt;br /&gt;
:::: 5. comptador=comptador+1&lt;br /&gt;
:. 6. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador Como Entero;&lt;br /&gt;
	Definir resultat Como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm  un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	comptador &amp;lt;- 2;&lt;br /&gt;
	Mientras comptador&amp;lt;=num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
		comptador &amp;lt;- comptador + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El resultat és &amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un número i anem comprovant si és divisible entre 2 fins a l'arrel quadrada del nombre. Si és divisible per algun número no és primer.&lt;br /&gt;
::Si no és divisible per cap nombre és primer.&lt;br /&gt;
::Per saber si és divisible fem servir l'operador mòdul.&lt;br /&gt;
::Dades d'entrada: el número a comprovar si és primer o no&lt;br /&gt;
::Informació de sortida: Un missatge dient si és primer o no&lt;br /&gt;
::Variables: numero_es_primer (entero), num (entero) comptador des de 2 fins arrel quadrada del num_es_primer, es_primer (lógico)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Suposo que el nombre és primer -&amp;gt; és_primer&amp;lt;-Verdadero&lt;br /&gt;
::2. Llegir num_ces_primer&lt;br /&gt;
::3. Mentre no final (num &amp;lt; número primer?) i el número primer? no sigui divisible pel num&lt;br /&gt;
::::4. Incrementem el num&lt;br /&gt;
::5. Si es_primer -&amp;gt; Mostra &amp;quot;És primer&amp;quot;&lt;br /&gt;
::6. Si no -&amp;gt; Mostra &amp;quot;No és primer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EsPrimo&lt;br /&gt;
	Definir num,div Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número per comprovar si és primer:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
        div &amp;lt;- 2;&lt;br /&gt;
	Mientras div&amp;lt;&amp;gt;num Y num % div &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
		div &amp;lt;- div +1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Si div = num Entonces&lt;br /&gt;
		Escribir &amp;quot;És Primer&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No és Primer&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval.&lt;br /&gt;
: Si el límit inferior és més gran que el superior ho ha de tornar a demanar.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Demanem un interval (límit inferior i superior)&lt;br /&gt;
:: Ens hem d'assegurar que el límit inferior sigui menor que el superior.&lt;br /&gt;
:: Es van demanant números fins que s'introdueixi el 0.&lt;br /&gt;
:: Si el nombre pertany a l'interval -&amp;gt; ho vaig sumant (necessito un acumulador)&lt;br /&gt;
:: Si el número no pertany a l'interval, ho explico (necessito un comptador)&lt;br /&gt;
:: Si el nombre és igual a algun límit, allò índic (necessito un indicador)&lt;br /&gt;
:: Al final mostro la suma dels números que pertanyen a l'interval.&lt;br /&gt;
:: Mostreu el comptador de número que no pertanyen a l'interval.&lt;br /&gt;
:: Indico si hem introduït un número igual a algun límit&lt;br /&gt;
:: Dades d'entrada: límit superior i inferior de l'interval i els números.&lt;br /&gt;
:: Informació de sortida: La suma dels que pertanyen a l'interval, el comptador dels números que no pertanyen a l'interval i indico si un nombre ha estat igual a algun interval&lt;br /&gt;
:: Variables: lim_inf, lim_sup, num, suma_dins_interval, cont_fora_interval (enters), igual_limits (Lògic)&lt;br /&gt;
&lt;br /&gt;
:Diseny&lt;br /&gt;
::1. Inicialitzo l'acumulador, el comptador i l'indicat&lt;br /&gt;
::2. Repetir -&amp;gt; llegir lim_inf i lim_sup fins que lim_inf&amp;lt;lim_sup&lt;br /&gt;
::3. Llegir núm&lt;br /&gt;
::4. Mentre num sigui diferent de 0&lt;br /&gt;
::::5. Si num pertany a l'interval -&amp;gt; acumula la suma&lt;br /&gt;
::::6. Sinó -&amp;gt; increment comptador&lt;br /&gt;
::::7. Si és igual a algun interval -&amp;gt; Ho indico (indicador a cert)&lt;br /&gt;
::::8. Llegir núm&lt;br /&gt;
::9. Mostra la suma dels números pertanyents a l'interval&lt;br /&gt;
::10. Mostra el comptador de números no pertanyents a l'interval&lt;br /&gt;
::11. Si l'indicador = Veritable -&amp;gt; Mostra &amp;quot;Un nombre = a interval&amp;quot;&lt;br /&gt;
::12. SiNo -&amp;gt; Mostra &amp;quot;No has introduït un número igual a l'interval&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Interval&lt;br /&gt;
	Definir lim_inf, lim_sup como Entero;&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Definir suma_dins_interval Como Entero;&lt;br /&gt;
	Definir cont_fora_interval Como Entero;&lt;br /&gt;
	Definir igual_limits Como Logico;&lt;br /&gt;
	suma_dins_interval &amp;lt;- 0;&lt;br /&gt;
	cont_fora_interval &amp;lt;- 0;&lt;br /&gt;
	igual_limits &amp;lt;- Falso;&lt;br /&gt;
	//M'asseguro que el lim_inf és menor que el lim_sup&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_inf;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_sup;&lt;br /&gt;
	Mientras lim_inf &amp;gt;= lim_sup Hacer&lt;br /&gt;
		Escribir &amp;quot;ERROR: El límit inferior ha de ser menor que el superior.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_inf;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_sup;&lt;br /&gt;
	FinMientras&lt;br /&gt;
		&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		//Pertany a l'interval&lt;br /&gt;
		Si num&amp;gt;lim_inf Y num&amp;lt;lim_sup Entonces&lt;br /&gt;
			suma_dins_interval&amp;lt;- suma_dins_interval + num;&lt;br /&gt;
		SiNo &lt;br /&gt;
			//Nombre igual a algun dels límits&lt;br /&gt;
			Si num=lim_inf O num=lim_sup Entonces&lt;br /&gt;
				igual_limits &amp;lt;- Verdadero;&lt;br /&gt;
			Sino&lt;br /&gt;
			//No pertany a l'interval&lt;br /&gt;
			cont_fora_interval &amp;lt;- cont_fora_interval + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;La suma dels números dins de linterval és &amp;quot;,suma_dins_interval;&lt;br /&gt;
	Escribir &amp;quot;La quantitat de números fora de linterval és &amp;quot;,cont_fora_interval;&lt;br /&gt;
	Si igual_limits Entonces&lt;br /&gt;
		Escribir &amp;quot;Sha introduït algun nombre igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No sha introduït cap número igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Notes_Alumnes&lt;br /&gt;
	Definir alumne Como Cadena;&lt;br /&gt;
	Definir nota_practica, nota_problemes, nota_teoria, nota_final Como Real;&lt;br /&gt;
        Escribir &amp;quot;Introduïu el nom de l'alumne: &amp;quot;;&lt;br /&gt;
	Leer alumne;&lt;br /&gt;
        Mientras alumne&amp;lt;&amp;gt;&amp;quot;&amp;quot; Hacer&lt;br /&gt;
        //si introduïm un nom d'alumne correcte, entrés al bucle&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de la pràctica: &amp;quot;;&lt;br /&gt;
        	Leer nota_practica;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota dels problemes: &amp;quot;;&lt;br /&gt;
        	Leer nota_problemes;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de teoria&amp;quot;;&lt;br /&gt;
        	Leer nota_teoria;&lt;br /&gt;
        	//comprovem si les notes tenen un rang correcte&lt;br /&gt;
        	Si (nota_practica&amp;lt;=10 y nota_practica&amp;gt;=0) y (nota_problemes&amp;lt;=10 y nota_problemes&amp;gt;=0) y (nota_teoria&amp;lt;=10 y nota_teoria&amp;gt;=0) Entonces&lt;br /&gt;
			Escribir &amp;quot;L'alumne &amp;quot;, alumne;&lt;br /&gt;
                	Escribir &amp;quot;La nota practica és &amp;quot; nota_practica;&lt;br /&gt;
                	Escribir &amp;quot;La nota de problemes és &amp;quot;, nota_problemes;&lt;br /&gt;
                	Escribir &amp;quot;La nota de teoria és &amp;quot; nota_teoria;&lt;br /&gt;
                	nota_final&amp;lt;-(nota_practica * 0,1)+(nota_problemes * 0.5)+(nota_teoria*0.4);&lt;br /&gt;
                	Escribir &amp;quot;La nota final és &amp;quot; nota_final;&lt;br /&gt;
        	SiNo&lt;br /&gt;
                Escribir &amp;quot;Has escrit una nota incorrecta, Torna a introduir les notes!&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
		Escribir &amp;quot;Introdueix el nom d'un altre alumne&amp;quot;;&lt;br /&gt;
		Leer alumne;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso UBER&lt;br /&gt;
        Definir nroViatges,temps,acum,cont,contMenys30,contEntre30i45,contMes45 Como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	&lt;br /&gt;
	contMenys30 &amp;lt;- 0;  //comptador&lt;br /&gt;
	contEntre30i45 &amp;lt;- 0;&lt;br /&gt;
	contMes45 &amp;lt;- 0;&lt;br /&gt;
	acum &amp;lt;- 0;   //acumulador&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Introduïu el número de viatges del dia: &amp;quot;;&lt;br /&gt;
	Leer nroViatges;&lt;br /&gt;
	&lt;br /&gt;
	cont &amp;lt;- 1;&lt;br /&gt;
	Mientras cont &amp;lt;= nroViajes Hacer&lt;br /&gt;
		Escribir &amp;quot;Introduïu el temps del viatge &amp;quot;,cont;&lt;br /&gt;
		Leer temps; &lt;br /&gt;
		&lt;br /&gt;
		si temps&amp;lt;30 Entonces &lt;br /&gt;
			contMenys30 &amp;lt;- contMenys30 + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			si temps &amp;gt;= 30 y temps &amp;lt; 45 Entonces &lt;br /&gt;
				contEntre30i45 &amp;lt;- contEntre30i45 + 1;&lt;br /&gt;
			Sino&lt;br /&gt;
				contMes45 &amp;lt;- contMes45 + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		&lt;br /&gt;
		acum &amp;lt;- acum + temps;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
	Fin Mientras &lt;br /&gt;
		&lt;br /&gt;
	mitjana &amp;lt;- acum / nroViajes;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Nro de viatges : &amp;quot;,nroViatges;&lt;br /&gt;
	Escribir &amp;quot;Mitjana dels temps: &amp;quot;,mitjana;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar menys de 30 minuts:: &amp;quot;,contMenys30;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar entre 30 a 45 minuts: &amp;quot;,contEntre30i45; &lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar més de 45 minuts: &amp;quot;,contMes45;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis prova===&lt;br /&gt;
&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TresN&lt;br /&gt;
	Definir num, cont Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Escriu un numero enter i positiu: &amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        Leer num;&lt;br /&gt;
	&lt;br /&gt;
        Si num &amp;gt; 0  Entonces &lt;br /&gt;
            cont &amp;lt;- 1;&lt;br /&gt;
&lt;br /&gt;
            Mientras num != 1 Hacer&lt;br /&gt;
                Si num % 2 = 0 Entonces&lt;br /&gt;
                    num &amp;lt;- num / 2;&lt;br /&gt;
                SiNo &lt;br /&gt;
                    num &amp;lt;- (num * 3) + 1;&lt;br /&gt;
                &lt;br /&gt;
                cont &amp;lt;- cont + 1;&lt;br /&gt;
                Escribir Sin Saltar num, &amp;quot; &amp;quot;;&lt;br /&gt;
            FinMientras&lt;br /&gt;
&lt;br /&gt;
            Escribir &amp;quot;Ha donat &amp;quot;,cont,&amp;quot; voltes.&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;El número ha de ser positiu!!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Data&lt;br /&gt;
	Definir dia, mes, diesPerMes, diaSeguent, mesSeguent Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	Escribir &amp;quot;Introdueix el dia: &amp;quot;;&lt;br /&gt;
        Leer dia;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el mes: &amp;quot;;&lt;br /&gt;
        Leer mes;&lt;br /&gt;
	&lt;br /&gt;
        diesPerMes &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
        Segun Mes Hacer&lt;br /&gt;
            1, 3, 5, 7, 8, 10, 12: diesPerMes &amp;lt;- 31;&lt;br /&gt;
            4, 6, 9, 11: diesPerMes &amp;lt;- 30;&lt;br /&gt;
            2: diesPerMes &amp;lt;- 28;&lt;br /&gt;
        FinSegun&lt;br /&gt;
&lt;br /&gt;
        diaSeguent &amp;lt;- dia+5;&lt;br /&gt;
        &lt;br /&gt;
        Si diaSeguent&amp;gt;diesPerMes Entonces&lt;br /&gt;
            diaSeguent &amp;lt;- diaSeguent-diesPerMes;&lt;br /&gt;
            mes &amp;lt;-- mes + 1;&lt;br /&gt;
            Si mes&amp;gt;12 Entonces&lt;br /&gt;
                mes &amp;lt;-- 1;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Escribir diaSeguent, &amp;quot; &amp;quot;, mes;&lt;br /&gt;
&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso XY&lt;br /&gt;
	Definir carActual, carAnterior Como Caracter;&lt;br /&gt;
        Definir cont Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	carAnterior=&amp;quot; &amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
        Leer carActual;&lt;br /&gt;
	&lt;br /&gt;
        cont &amp;lt;- 1;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (cont &amp;lt; 10000 &amp;amp;&amp;amp; (carAnterior != 'X' O carActual != 'Y')) Hacer&lt;br /&gt;
                &lt;br /&gt;
            carAnterior = carActual;&lt;br /&gt;
	    Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
            Leer carActual;&lt;br /&gt;
            cont &amp;lt;- cont + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si (carAnterior != 'X' Y carActual != 'Y') Entonces&lt;br /&gt;
		Escribir &amp;quot;Apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir divisor, numero Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el número: &amp;quot;;&lt;br /&gt;
        Leer numero;&lt;br /&gt;
	&lt;br /&gt;
        divisor &amp;lt;- 2;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (divisor &amp;lt; numero Y numero % divisor != 0) Hacer&lt;br /&gt;
                &lt;br /&gt;
            divisor &amp;lt;- divisor + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si divisor = numero Entonces&lt;br /&gt;
	    Escribir &amp;quot;No té cap divisor&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
	    Escribir &amp;quot;El primer divisor és: &amp;quot;, divisor;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir x1, x2, punt, min, max, distanciaDreta, distanciaEsquerra  Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix la primera coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la segona coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x2;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el punt: &amp;quot;;&lt;br /&gt;
        Leer punt;&lt;br /&gt;
	&lt;br /&gt;
	Si x1 &amp;lt; x2 Entonces&lt;br /&gt;
           min &amp;lt;- x1;&lt;br /&gt;
           max &amp;lt;- x2;&lt;br /&gt;
	SiNo&lt;br /&gt;
           min &amp;lt;- x2;&lt;br /&gt;
           max &amp;lt;- x1;&lt;br /&gt;
	FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaDreta = max - punt;  &lt;br /&gt;
        Si (distanciaDreta &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaDreta = distanciaDreta * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaEsquerra = min - punt;&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaEsquerra = distanciaEsquerra * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (punt &amp;gt;= min Y punt &amp;lt;= max) {&lt;br /&gt;
            Escribir &amp;quot;Dins&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Fora&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt;= distanciaDreta) {&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaEsquerra;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaDreta;&lt;br /&gt;
        FinSi&lt;br /&gt;
      &lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis prova CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalculNomines&lt;br /&gt;
	Definir tipus, hores, diesBaixa, sou Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
&lt;br /&gt;
	Mientras tipus &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Si tipus &amp;lt; 1 O tipus &amp;gt; 3 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Tipus no vàlid. Torna a intentar-ho.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre dhores treballades:&amp;quot;;&lt;br /&gt;
        	Leer hores;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre de dies de baixa:&amp;quot;;&lt;br /&gt;
        	Leer diesBaixa;&lt;br /&gt;
&lt;br /&gt;
        	Segun tipus Hacer&lt;br /&gt;
            	1:&lt;br /&gt;
                	sou &amp;lt;- hores * 12;&lt;br /&gt;
            	2:&lt;br /&gt;
                	sou &amp;lt;- hores * 15;&lt;br /&gt;
            	3:&lt;br /&gt;
                	sou &amp;lt;- hores * 25;&lt;br /&gt;
                	Si hores &amp;gt; 160 Entonces&lt;br /&gt;
                    	   sou &amp;lt;- sou + 500;&lt;br /&gt;
                	FinSi&lt;br /&gt;
        	FinSegun&lt;br /&gt;
&lt;br /&gt;
        	Si diesBaixa &amp;gt; 5 Entonces&lt;br /&gt;
            	   sou &amp;lt;- sou * 0.9;&lt;br /&gt;
            	   Escribir &amp;quot;Penalització aplicada per dies de baixa.&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
&lt;br /&gt;
        	Escribir &amp;quot;El sou del treballador és:&amp;quot;, sou, &amp;quot;€&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
    	   Leer tipus;&lt;br /&gt;
	FinMientras        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa s'ha de repetir per diversos vols fins que es detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ControlPassatgers&lt;br /&gt;
        Definir codiVol, nacionals, internacionals, total, volMaxInternacionals Como Entero;&lt;br /&gt;
	Definir percentatgeInternacionals, maxPercentatge Como Real;&lt;br /&gt;
	maxPercentatge &amp;lt;- 0;&lt;br /&gt;
	volMaxInternacionals &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
	Leer codiVol;&lt;br /&gt;
&lt;br /&gt;
	Mientras codiVol &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers nacionals:&amp;quot;;&lt;br /&gt;
    	   Leer nacionals;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers internacionals:&amp;quot;;&lt;br /&gt;
    	   Leer internacionals;&lt;br /&gt;
&lt;br /&gt;
    	   total &amp;lt;- nacionals + internacionals;&lt;br /&gt;
    	   Escribir &amp;quot;El vol &amp;quot;, codiVol, &amp;quot; té un total de &amp;quot;, total, &amp;quot; passatgers.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    	   Si total &amp;gt; 0 Entonces&lt;br /&gt;
        	percentatgeInternacionals &amp;lt;- (internacionals / total) * 100;&lt;br /&gt;
        	Escribir &amp;quot;Percentatge de passatgers internacionals: &amp;quot;, percentatgeInternacionals, &amp;quot;%&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        	Si percentatgeInternacionals &amp;gt; maxPercentatge Entonces&lt;br /&gt;
            	   maxPercentatge &amp;lt;- percentatgeInternacionals;&lt;br /&gt;
            	   volMaxInternacionals &amp;lt;- codiVol;&lt;br /&gt;
        	FinSi&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;El vol no té passatgers.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer codiVol;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;El vol amb més percentatge de passatgers internacionals és el vol &amp;quot;, volMaxInternacionals, &amp;quot; amb un &amp;quot;, maxPercentatge, &amp;quot;% de passatgers internacionals.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SeguimentAtletisme&lt;br /&gt;
        Definir dorsal, millorDorsal, pitjorDorsal Como Entero;&lt;br /&gt;
	Definir temps1, temps2, temps3 Como Real;&lt;br /&gt;
	Definir millorMitjana, pitjorMitjana, mitjana Como Real;&lt;br /&gt;
	millorMitjana &amp;lt;- 999999;&lt;br /&gt;
	pitjorMitjana &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
	Leer dorsal;&lt;br /&gt;
&lt;br /&gt;
	Mientras dorsal &amp;lt;&amp;gt; -1 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la primera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps1;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la segona cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps2;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la tercera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps3;&lt;br /&gt;
&lt;br /&gt;
       	   mitjana &amp;lt;- (temps1 + temps2 + temps3) / 3;&lt;br /&gt;
     	   Escribir &amp;quot;La mitjana de temps per latleta amb dorsal &amp;quot;, dorsal, &amp;quot; és: &amp;quot;, mitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
    	   Si mitjana &amp;lt; millorMitjana Entonces&lt;br /&gt;
        	millorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	millorDorsal &amp;lt;- dorsal;&lt;br /&gt;
     	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; pitjorMitjana Entonces&lt;br /&gt;
        	pitjorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	pitjorDorsal &amp;lt;- dorsal;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; 10 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; no ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer dorsal;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Latleta amb millor mitjana és el dorsal &amp;quot;, millorDorsal, &amp;quot; amb una mitjana de &amp;quot;, millorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Latleta amb pitjor mitjana és el dorsal &amp;quot;, pitjorDorsal, &amp;quot; amb una mitjana de &amp;quot;, pitjorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratCubVector&lt;br /&gt;
	Definir vector_numeros Como Entero;&lt;br /&gt;
	Dimension vector_numeros[10];&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	//Primer recorregut per llegir el vector&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		vector_numeros[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Segon recorregut per mostrar el resultat&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		Escribir vector_numeros[index],&amp;quot; &amp;quot;,vector_numeros[index]^2,&amp;quot; &amp;quot;,vector_numeros[index]^3;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorInvers&lt;br /&gt;
	Definir vector1,vector2 Como Cadenas;&lt;br /&gt;
	Dimension vector1[5],vector2[5];&lt;br /&gt;
	Definir indicador1,indicador2 Como Entero;&lt;br /&gt;
	Definir tam_vector1,tam_vector2 Como Entero;&lt;br /&gt;
	//Defineixo la mida dels vectors per utilitzar-los en els recorreguts&lt;br /&gt;
	tam_vector1&amp;lt;-5;&lt;br /&gt;
	tam_vector2&amp;lt;-5;&lt;br /&gt;
	//RRecorro el vector1 i llegeixo cada element per teclat&lt;br /&gt;
	Para indicador1&amp;lt;-0 hasta tam_vector1-1 hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dónam la cadena &amp;quot;,indicador1+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer vector1[indicador1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	indicador2&amp;lt;-0;&lt;br /&gt;
	//Recorro el vector1 des del final al principi&lt;br /&gt;
	//Cada element el guardo al vector2&lt;br /&gt;
	Para indicador1&amp;lt;-tam_vector1-1 hasta 0 con paso -1 hacer&lt;br /&gt;
		vector2[indicador2]&amp;lt;-vector1[indicador1];&lt;br /&gt;
		indicador2&amp;lt;-indicador2+1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro el vector2 per mostrar-lo&lt;br /&gt;
	Para indicador2&amp;lt;-0 hasta tam_vector2-1 hacer&lt;br /&gt;
		Escribir &amp;quot;La cadena &amp;quot;,indicador2+1,&amp;quot;: &amp;quot;,vector2[indicador2];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorNotes&lt;br /&gt;
	Definir notes Como Entero;&lt;br /&gt;
	Dimension notes[5];&lt;br /&gt;
	Definir tam_notes como Entero;&lt;br /&gt;
	Definir nota_mitjana Como Real;&lt;br /&gt;
	Definir suma,nota_max,nota_min, nota como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	tam_notes&amp;lt;-5;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer nota;&lt;br /&gt;
		Mientras nota&amp;lt;0 o nota&amp;gt;10 Hacer&lt;br /&gt;
			//Comprovem que sigui un nombre &amp;gt;=0 i &amp;lt;=10&lt;br /&gt;
			&lt;br /&gt;
			Escribir sin saltar &amp;quot;Nota incorrecte. Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
			Leer nota;&lt;br /&gt;
		FinMientras&lt;br /&gt;
		notes[index] &amp;lt;- nota;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suposo que la nota màxima i la mínima és aquesta primera&lt;br /&gt;
	nota_max&amp;lt;-notes[0];&lt;br /&gt;
	nota_min&amp;lt;-notes[0];&lt;br /&gt;
	&lt;br /&gt;
	suma&amp;lt;-0;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		//Acumulo la nota per calcular la mitjana&lt;br /&gt;
		suma&amp;lt;-suma+notes[index];&lt;br /&gt;
		//Actualitzo la nota màxima si en trobo una de més gran&lt;br /&gt;
		Si notes[index]&amp;gt;nota_max Entonces&lt;br /&gt;
			nota_max&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		//Actualitzo la nota mínima si en trobo una de més petita&lt;br /&gt;
		Si notes[index]&amp;lt;nota_min Entonces&lt;br /&gt;
			nota_min&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calculo la mitjana, tenint en compte la mida del vector&lt;br /&gt;
	nota_mitjana&amp;lt;-suma/tam_notes;&lt;br /&gt;
	//Mostro resultats&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir sin Saltar &amp;quot;Notes:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin Saltar notes[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Nota mitjana: &amp;quot;,nota_mitjana;&lt;br /&gt;
	Escribir &amp;quot;Nota màxima: &amp;quot;,nota_max;&lt;br /&gt;
	Escribir &amp;quot;Nota mínima: &amp;quot;,nota_min;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorPositiu&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir tam_vector,index,num como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Recorro el vector i vaig inicialitzant els seus elements&lt;br /&gt;
	//No faig servir un para, perquè si introdueixo un nombre negatiu sortim del bucle&lt;br /&gt;
	//També acabo el bucle si introdueixo tots els elements de vector&lt;br /&gt;
	//El nombre negatiu em serveix d'indicador que fins a aquesta posició el vector té element&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número al vector. Número &amp;quot;,index+1;&lt;br /&gt;
		Leer vector[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que index=tam_vector O vector[index-1]&amp;lt;0;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Recorro fins a la mida del vector o trobi un nombre negatiu&lt;br /&gt;
	Escribir &amp;quot;Elements del vector&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector-1 Y vector[index]&amp;gt;=0 Hacer&lt;br /&gt;
		Escribir sin saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso OrdenarVector&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir canvis,aux Como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir tam_vector Como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Inicialitzo el vector amb valors aleatoris&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 hacer&lt;br /&gt;
		vector[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Repetiré l'ordenació fins que no hagi canviat cap número&lt;br /&gt;
	Repetir &lt;br /&gt;
		canvis&amp;lt;-0;&lt;br /&gt;
		//Recorre fins a l'antepenúltim&lt;br /&gt;
		//Intercanvio els valors de dos elements consecutius si no estan ordenats&lt;br /&gt;
		Para index&amp;lt;-0 hasta tam_vector-2 Hacer&lt;br /&gt;
			Si vector[index]&amp;gt;vector[index+1] Entonces&lt;br /&gt;
				aux&amp;lt;-vector[index];&lt;br /&gt;
				vector[index]&amp;lt;-vector[index+1];&lt;br /&gt;
				vector[index+1]&amp;lt;-aux;&lt;br /&gt;
				canvis&amp;lt;-canvis+1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	Hasta Que canvis=0;&lt;br /&gt;
	//Recorro el vector ordenat&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DiesDelMes&lt;br /&gt;
	Definir dies Como Entero;&lt;br /&gt;
	Dimension dies[12];&lt;br /&gt;
	Definir nom_mes Como Caracter;&lt;br /&gt;
	Dimension nom_mes[12];&lt;br /&gt;
	Definir mes como Entero;&lt;br /&gt;
	dies[0]&amp;lt;-31;&lt;br /&gt;
	dies[1]&amp;lt;-28;&lt;br /&gt;
	dies[2]&amp;lt;-31;&lt;br /&gt;
	dies[3]&amp;lt;-30;&lt;br /&gt;
	dies[4]&amp;lt;-31;&lt;br /&gt;
	dies[5]&amp;lt;-30;&lt;br /&gt;
	dies[6]&amp;lt;-31;&lt;br /&gt;
	dies[7]&amp;lt;-31;&lt;br /&gt;
	dies[8]&amp;lt;-30;&lt;br /&gt;
	dies[9]&amp;lt;-31;&lt;br /&gt;
	dies[10]&amp;lt;-30;&lt;br /&gt;
	dies[11]&amp;lt;-31;&lt;br /&gt;
	nom_mes[0]&amp;lt;-&amp;quot;Gener&amp;quot;;&lt;br /&gt;
	nom_mes[1]&amp;lt;-&amp;quot;Febrer&amp;quot;;&lt;br /&gt;
	nom_mes[2]&amp;lt;-&amp;quot;Març&amp;quot;;&lt;br /&gt;
	nom_mes[3]&amp;lt;-&amp;quot;Abril&amp;quot;;&lt;br /&gt;
	nom_mes[4]&amp;lt;-&amp;quot;Maig&amp;quot;;&lt;br /&gt;
	nom_mes[5]&amp;lt;-&amp;quot;Juny&amp;quot;;&lt;br /&gt;
	nom_mes[6]&amp;lt;-&amp;quot;Juliol&amp;quot;;&lt;br /&gt;
	nom_mes[7]&amp;lt;-&amp;quot;Agost&amp;quot;;&lt;br /&gt;
	nom_mes[8]&amp;lt;-&amp;quot;Setembre&amp;quot;;&lt;br /&gt;
	nom_mes[9]&amp;lt;-&amp;quot;Octubre&amp;quot;;&lt;br /&gt;
	nom_mes[10]&amp;lt;-&amp;quot;Novembre&amp;quot;;&lt;br /&gt;
	nom_mes[11]&amp;lt;-&amp;quot;Desembre&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
	Leer mes;&lt;br /&gt;
	Mientras mes &amp;lt; 1 o mes &amp;gt; 12 Hacer	&lt;br /&gt;
		Escribir &amp;quot;Error: mes incorrecte.&amp;quot;;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
                Leer mes;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El mes de &amp;quot;,nom_mes[mes-1],&amp;quot; té &amp;quot;,dies[mes-1],&amp;quot; dies.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SumarVectors&lt;br /&gt;
	Definir vector1,vector2,vector3 Como Entero;&lt;br /&gt;
	Dimension vector1[5],vector2[5],vector3[5];&lt;br /&gt;
	Definir tam_vector como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-5;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector1:&amp;quot;;&lt;br /&gt;
		Leer vector1[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector2:&amp;quot;;&lt;br /&gt;
		Leer vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		vector3[index]&amp;lt;-vector1[index]+vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;La suma dels vectors és:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar vector3[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats, numAlum Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms, nom Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Mientras nom &amp;lt;&amp;gt;&amp;quot;*&amp;quot; Y index &amp;lt; tam_vector Hacer&lt;br /&gt;
	    noms[index] &amp;lt;- nom;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Diguem la seva edat:&amp;quot;;&lt;br /&gt;
		Leer edats[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
		Leer nom;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	numAlum &amp;lt;- index;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors dedat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;numAlum Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Digue'm el nom d'un alumne:&amp;quot;;&lt;br /&gt;
		Leer noms[index];&lt;br /&gt;
		Si noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Entonces&lt;br /&gt;
			Escribir sin saltar &amp;quot;Digue'm la seva edat:&amp;quot;;&lt;br /&gt;
			Leer edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que noms[index-1]=&amp;quot;*&amp;quot; o index=tam_vector;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors d'edat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ExTemperatures&lt;br /&gt;
	Definir temperatures Como Real;&lt;br /&gt;
	Dimension temperatures[5,2];&lt;br /&gt;
	Definir existeix_temperatura Como Logico;&lt;br /&gt;
	Definir index,cant_dies como Entero;&lt;br /&gt;
	Definir temp_max, temp_min como Real;&lt;br /&gt;
	cant_dies&amp;lt;-5;&lt;br /&gt;
	//Recorregut per emplenar la taula (5 dies amb temp mínima i màxima)&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mínima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura màxima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar temperatura mitjana&lt;br /&gt;
	Escribir &amp;quot;Temperatures mitjanes&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mitjana:&amp;quot;,(temperatures[index,0]+temperatures[index,1])/2;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calcular temperatura mínima més petita&lt;br /&gt;
	temp_min&amp;lt;-temperatures[0,0];&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]&amp;lt;temp_min Entonces&lt;br /&gt;
			temp_min&amp;lt;-temperatures[index,0];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar els dies amb menys temperatura&lt;br /&gt;
	Escribir &amp;quot;Dies amb menys temperatura&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;==========================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]=temp_min Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Dies amb temperatura màxima&lt;br /&gt;
	existeix_temperatura&amp;lt;-Falso;&lt;br /&gt;
	Escribir &amp;quot;Dies amb temperatura màxima&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===========================&amp;quot;;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix una temperatura:&amp;quot;;&lt;br /&gt;
	Leer temp_max;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,1]=temp_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
			existeix_temperatura&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Si no existeix_temperatura Entonces&lt;br /&gt;
		Escribir &amp;quot;No hi ha cap dia amb aquesta temperatura.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Tabla&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;Introduïu el número de la fila &amp;quot;,fila+1,&amp;quot; i columna &amp;quot;,col+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les files&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la fila &amp;quot;,fila+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les columnes&lt;br /&gt;
	Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la columna &amp;quot;,col+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Diagonal&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	//Recorro la taula &lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic en alguna diagonal inicialitzo a 1&lt;br /&gt;
			Si fila=col o fila=(num_files-1)-col Entonces&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			//No estic en diagonal, inicialitzo a 0&lt;br /&gt;
			SiNo&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CostatExtern&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,15];&lt;br /&gt;
	Definir num_files,num_cols como Entero;&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-15;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic a l'extrem esquerre, dret, superior o inferior&lt;br /&gt;
			Si fila=0 o fila=num_files-1 o col=0 o col= num_cols-1 Entonces&lt;br /&gt;
				//Inicialitzo a 1&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				//SiNo inicialitzo a 0&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
&lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dies, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
	Leer num_conductors;&lt;br /&gt;
	Mientras num_conductors&amp;gt;mida_conductors_max Hacer&lt;br /&gt;
		Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
		//El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
		Si num_conductors&amp;gt;mida_conductors_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta que num_conductors&amp;lt;=mida_conductors_max;&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::preu (taula de 3 reals), quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::suma, numMajor, articlesSucursal2, majorRec, totalSucursal, totalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Sucursals&lt;br /&gt;
	Definir preu, quantitat, suma, numMajor,articlesSucursal2, majorRec, totalSucursal, totalEmpresa Como Real;&lt;br /&gt;
	Definir indexArt, indexSucursal como Entero;&lt;br /&gt;
	&lt;br /&gt;
	Dimension preu[5], quantitat[4,5];&lt;br /&gt;
	&lt;br /&gt;
	// Llegir preus&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		Escribir 'Introdueixi el preu de larticle ',indexArt+1,': ';&lt;br /&gt;
		Leer preu[indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Llegir quantitats&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			Escribir 'Introdueixi la quantitat de larticle ',indexArt+1,', en Sucursal ',indexSucursal+1,': ';&lt;br /&gt;
			Leer quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Sumar quantitats per articles&lt;br /&gt;
	Escribir 'Quantitats per articles:';&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		suma &amp;lt;- 0;&lt;br /&gt;
		Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			suma&amp;lt;-quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Total article ',indexArt+1,': ' ,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Informar total articles sucursal 2&lt;br /&gt;
	articlesSucursal2&amp;lt;-0;&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		articlesSucursal2&amp;lt;-articlesSucursal2+quantitat[1,indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Total Sucursal 2:',articlesSucursal2;&lt;br /&gt;
	&lt;br /&gt;
	// Informar Sucursal 1, Article 3:&lt;br /&gt;
	Escribir 'Sucursal 1, Article 3: ',quantitat[0,2];&lt;br /&gt;
	&lt;br /&gt;
	// Acumular total de cada sucursal (totalSucursal) i&lt;br /&gt;
	// total de la empresa (totalEmpresa)&lt;br /&gt;
	majorRec&amp;lt;-0;&lt;br /&gt;
	numMajor&amp;lt;-0;&lt;br /&gt;
	totalEmpresa&amp;lt;-0;&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		totalSucursal&amp;lt;-0;&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			totalSucursal&amp;lt;-totalSucursal+(quantitat[indexSucursal,indexArt]*preu[indexArt]);&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Recaudacions Sucursal ',indexSucursal+1,': ',totalSucursal;&lt;br /&gt;
		//Calculo la sucursal amb més recaudació&lt;br /&gt;
		Si totalSucursal&amp;gt;majorRec entonces&lt;br /&gt;
			majorRec&amp;lt;-totalSucursal;&lt;br /&gt;
			numMajor&amp;lt;-indexSucursal+1;&lt;br /&gt;
		FinSi&lt;br /&gt;
		totalEmpresa&amp;lt;-totalEmpresa+totalSucursal;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Recaudació total de la empresa: ',totalEmpresa;&lt;br /&gt;
	Escribir 'Sucursal de Major Recaudació: ',numMajor;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Travessa&lt;br /&gt;
	Definir index, numEquips Como Entero;&lt;br /&gt;
	Definir equips Como Caracter;&lt;br /&gt;
	Dimension equips[15,2];&lt;br /&gt;
	Definir resultats Como Entero;&lt;br /&gt;
	Dimension resultats[15,2];&lt;br /&gt;
	numEquips&amp;lt;-15;&lt;br /&gt;
	//Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit&lt;br /&gt;
	Para index&amp;lt;-0 hasta numEquips-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 1 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 2 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,1];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,0],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,1],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;TRAVESSA&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;========&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	// Recorro les taules, mostro el nom dels equips i el resultat del partit (per a cada partit)&lt;br /&gt;
	// Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
	// Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
	// Una X si hi ha empat&lt;br /&gt;
	Para index&amp;lt;-0 hasta num_equipos-1 Hacer&lt;br /&gt;
		Si resultados[index,0]&amp;gt;resultados[index,1] Entonces&lt;br /&gt;
			Escribir equipos[index,0], &amp;quot; - &amp;quot;,equipos[index,0],&amp;quot; -&amp;gt; 1&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si resultats[index,0]&amp;lt;resultats[index,1] Entonces&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; 2&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; X&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/// Programa per convertir nombres entre decimal i binari&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio, nombre Como Entero;&lt;br /&gt;
	Definir binari Como Cadena;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions&lt;br /&gt;
        Escribir &amp;quot;1. Convertir de decimal a binari&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Convertir de binari a decimal&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Convertir un nombre decimal a binari&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre enter: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer nombre;&lt;br /&gt;
                Escribir &amp;quot;En binari: &amp;quot;, ConvertirABinari(nombre);&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Convertir un nombre binari a decimal&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre en binari: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer binari;&lt;br /&gt;
                Si EsBinari(binari) Entonces&lt;br /&gt;
                    Escribir &amp;quot;En decimal: &amp;quot;, ConvertirADecimal(binari);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: No és un nombre binari vàlid.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:;&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre decimal a binari&lt;br /&gt;
Funcion binari &amp;lt;- ConvertirABinari(nombre)&lt;br /&gt;
    Definir binari Como Cadena;&lt;br /&gt;
    binari &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
    Si nombre = 0 Entonces&lt;br /&gt;
        binari &amp;lt;- &amp;quot;0&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    // Aplicar el mètode de divisió successiva per obtenir la representació binària&lt;br /&gt;
    Mientras nombre &amp;gt; 0 Hacer&lt;br /&gt;
        binari &amp;lt;- Concatenar(ConvertirATexto(nombre mod 2), binari);&lt;br /&gt;
        nombre &amp;lt;- trunc(nombre / 2);&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre binari a decimal&lt;br /&gt;
Funcion decimal &amp;lt;- ConvertirADecimal(binari)&lt;br /&gt;
    Definir decimal, i, pot2 Como Entero;&lt;br /&gt;
    decimal &amp;lt;- 0;&lt;br /&gt;
    pot2 &amp;lt;- 1;&lt;br /&gt;
    i &amp;lt;- longitud(binari) - 1;&lt;br /&gt;
    Mientras i &amp;gt;= 0 Hacer&lt;br /&gt;
        // Multiplicar cada bit pel seu pes i sumar al resultat&lt;br /&gt;
        decimal &amp;lt;- decimal + ConvertirANumero(subcadena(binari, i, i)) * pot2;&lt;br /&gt;
        pot2 &amp;lt;- pot2 * 2;&lt;br /&gt;
        i &amp;lt;- i - 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per verificar si una cadena és un nombre binari vàlid&lt;br /&gt;
Funcion esValid &amp;lt;- EsBinari(binari)&lt;br /&gt;
    Definir esValid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    esValid &amp;lt;- Verdadero;&lt;br /&gt;
    i &amp;lt;- 0;&lt;br /&gt;
    // Comprovar que tots els caràcters són '0' o '1'&lt;br /&gt;
    Mientras i &amp;lt; longitud(binari) Y esValid Hacer&lt;br /&gt;
        Si no (subcadena(binari, i, i) = &amp;quot;0&amp;quot; O subcadena(binari, i, i) = &amp;quot;1&amp;quot;) Entonces&lt;br /&gt;
            esValid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
        i &amp;lt;- i + 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Programa per gestionar DNI: obtenir la lletra, validar un DNI i sortir&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio Como Entero;&lt;br /&gt;
	Definir numeroDNI, dni Como Cadena;&lt;br /&gt;
    opcio &amp;lt;- 0;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions &lt;br /&gt;
        Escribir &amp;quot;1. Obtenir lletra DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Validar DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
                Escribir &amp;quot;Introdueix el número del DNI (8 dígits): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer numeroDNI;&lt;br /&gt;
                Si validarNumeroDNI(numeroDNI) Entonces&lt;br /&gt;
                    Escribir &amp;quot;La lletra corresponent és: &amp;quot;, obtenirLletraDNI(numeroDNI);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El número de DNI ha de tenir 8 dígits numèrics.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Validar si un DNI complet (número i lletra) és correcte&lt;br /&gt;
                Escribir &amp;quot;Introdueix el DNI complet (8 dígits i 1 lletra): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer dni;&lt;br /&gt;
                Si validarDNI(dni) Entonces&lt;br /&gt;
                    Si esDNIValid(dni) Entonces&lt;br /&gt;
                        Escribir &amp;quot;El DNI és vàlid.&amp;quot;;&lt;br /&gt;
                    Sino&lt;br /&gt;
                        Escribir &amp;quot;El DNI no és vàlid.&amp;quot;;&lt;br /&gt;
                    FinSi&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El format del DNI no és correcte.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:&lt;br /&gt;
                // Finalitzar el programa&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un número de DNI té exactament 8 dígits numèrics&lt;br /&gt;
Funcion es_valid &amp;lt;- validarNumeroDNI(numero)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(numero) &amp;lt;&amp;gt; 8 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        i &amp;lt;- 0;&lt;br /&gt;
        Mientras i &amp;lt; 8 Y es_valid Hacer&lt;br /&gt;
            // Comprovar que cada caràcter és un dígit&lt;br /&gt;
            Si no (subcadena(numero, i, i) &amp;gt;= '0' Y subcadena(numero, i, i) &amp;lt;= '9') Entonces&lt;br /&gt;
				es_valid &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
            i &amp;lt;- i + 1;&lt;br /&gt;
        FinMientras&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un DNI complet té el format correcte (8 dígits + 1 lletra)&lt;br /&gt;
Funcion es_valid &amp;lt;- validarDNI(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(dni) &amp;lt;&amp;gt; 9 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        es_valid &amp;lt;- validarNumeroDNI(subcadena(dni,0,7);&lt;br /&gt;
        // Comprovar que l'últim caràcter és una lletra majúscula&lt;br /&gt;
        Si no (Mayusculas(subcadena(dni, 8, 8)) &amp;gt;= 'A') Y (Mayusculas(subcadena(dni, 8, 8)) &amp;lt;= 'Z') Entonces&lt;br /&gt;
            es_valid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
Funcion lletra &amp;lt;- obtenirLletraDNI(numero) &lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    Definir lletres Como Cadena;&lt;br /&gt;
    lletres &amp;lt;- &amp;quot;TRWAGMYFPDXBNJZSQVHLCKE&amp;quot;;&lt;br /&gt;
    Definir index Como Entero;&lt;br /&gt;
    // Calcular la lletra en base al residu del número de DNI dividit per 23&lt;br /&gt;
    index &amp;lt;- ConvertirANumero(numero) mod 23;&lt;br /&gt;
    lletra &amp;lt;- subcadena(lletres, index, index);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per comprovar si un DNI és vàlid comparant la lletra calculada amb la introduïda&lt;br /&gt;
Funcion es_valid &amp;lt;- esDNIValid(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir numero Como Cadena;&lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    // Separar el número i la lletra del DNI&lt;br /&gt;
    numero &amp;lt;- subcadena(dni, 0, 7);&lt;br /&gt;
    lletra &amp;lt;- mayusculas(subcadena(dni, 8, 8));&lt;br /&gt;
    // Validar el número i comparar la lletra calculada&lt;br /&gt;
    es_valid &amp;lt;- lletra = obtenirLletraDNI(numero);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EndevinarNumero&lt;br /&gt;
	Definir limit_inferior, limit_superior, elmeunumero Como Entero;&lt;br /&gt;
	Definir opcio como Caracter;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	intents&amp;lt;-0;	&lt;br /&gt;
	//Es demana el primer interval&lt;br /&gt;
	ObtenirLimits(limit_inferior, limit_superior);&lt;br /&gt;
	//Es va repetint fins que s'encerti el número&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Escrivim el número proposat (què serà el número intermedi de l'interval)&lt;br /&gt;
		elmeunumero&amp;lt;-generarNumero(limit_inferior,limit_superior);&lt;br /&gt;
		Escribir &amp;quot;Has pensant en el número?:&amp;quot;, elmeunumero;&lt;br /&gt;
		//Incrementem el nombre d'intents&lt;br /&gt;
		intents&amp;lt;-intents+1;&lt;br /&gt;
		//Llegim l'opció, si no heu encertat es modifica alguns dels límits i es torna a proposar un nou número&lt;br /&gt;
		opcio&amp;lt;-LlegirOpcio();&lt;br /&gt;
		Si no Mayusculas(opcio)=&amp;quot;S&amp;quot; Entonces&lt;br /&gt;
			actualitzarLimits(opcio, elmeunumero, limit_inferior, limit_superior);&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot;;&lt;br /&gt;
	//S'escriu els intents que ha necessitat per encertar-ho&lt;br /&gt;
	Escribir &amp;quot;Ho he encertat en &amp;quot;,intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion num &amp;lt;- generarNumero(liminf,limsup)&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	num&amp;lt;-Trunc((liminf+limsup)/2);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- llegirOpcio&lt;br /&gt;
	Definir opcio Como Caracter;&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;¿Es correcte?&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;S: si es correcte.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;A: si es més alt que el número a endevinar.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;B: si es més baix que el número a enevinar.&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot; o Mayusculas(opcio)=&amp;quot;A&amp;quot; o Mayusculas(opcio)=&amp;quot;B&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion actualitzarLimits(opcio, num, liminf Por Referencia, limsup Por Referencia)&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
		liminf&amp;lt;-num + 1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		limsup&amp;lt;-num - 1;&lt;br /&gt;
	FinSi             &lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion  ObtenirLimits(liminf Por Referencia, limsup por Referencia)&lt;br /&gt;
Escribir &amp;quot;Pensa un número...&amp;quot;;&lt;br /&gt;
//Es demana el primer interval&lt;br /&gt;
Escribir &amp;quot;Necessito saber linterval on es troba el número:&amp;quot;;&lt;br /&gt;
	Repetir&lt;br /&gt;
		liminf &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit inferior: &amp;quot;);&lt;br /&gt;
		limsup &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit superior: &amp;quot;);	&lt;br /&gt;
	Hasta Que liminf &amp;lt; limsup;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion limit &amp;lt;- llegirLimit(missatge) &lt;br /&gt;
    Definir limit Como Entero;&lt;br /&gt;
    Repetir&lt;br /&gt;
		Escribir missatge Sin Saltar;&lt;br /&gt;
		Leer limit;&lt;br /&gt;
    Hasta Que limit &amp;gt; 0;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/ Programa que gestiona l'inici de sessió amb un màxim de 3 intents&lt;br /&gt;
&lt;br /&gt;
Proceso GestioLogin&lt;br /&gt;
    Definir user, password Como Cadena;&lt;br /&gt;
    Definir intents Como Entero;&lt;br /&gt;
    Definir accedit Como Logico;&lt;br /&gt;
    intents &amp;lt;- 0;  // Inicialitzem el comptador d'intents&lt;br /&gt;
    accedit &amp;lt;- Falso;  // Inicialment, l'usuari no ha accedit correctament&lt;br /&gt;
	&lt;br /&gt;
    // Bucle que permet a l'usuari intentar accedir fins a 3 vegades&lt;br /&gt;
    Mientras intents &amp;lt; 3 Y NO accedit Hacer&lt;br /&gt;
	LlegirCredencials(user, password);  // Demanem les credencials a l'usuari&lt;br /&gt;
	accedit &amp;lt;- Login(user, password, intents);  // Intentem fer login&lt;br /&gt;
	&lt;br /&gt;
	// Si l'usuari ha fallat, mostrem missatge d'error i intents restants&lt;br /&gt;
	Si NO accedit Entonces&lt;br /&gt;
		Escribir &amp;quot;Usuari o contrasenya incorrectes. Intents restants: &amp;quot;, 3 - intents;&lt;br /&gt;
	FinSi&lt;br /&gt;
    FinMientras&lt;br /&gt;
	&lt;br /&gt;
    // Un cop acabats els intents, mostrem el missatge final&lt;br /&gt;
    MostrarMissatgeFinal(accedit);&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Procediment per llegir les credencials de l'usuari&lt;br /&gt;
Funcion LlegirCredencials(user Por Referencia, password Por Referencia)&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom dusuari:&amp;quot;;&lt;br /&gt;
    Leer user;&lt;br /&gt;
    Escribir &amp;quot;Introdueix la contrasenya:&amp;quot;;&lt;br /&gt;
    Leer password;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció que comprova si l'usuari i la contrasenya són correctes&lt;br /&gt;
// També incrementa el nombre d'intents si l'autenticació falla&lt;br /&gt;
Funcion validar&amp;lt;-Login(user, password, intents Por Referencia)&lt;br /&gt;
    Definir validar Como Logico;&lt;br /&gt;
    Si user = &amp;quot;user1&amp;quot; Y password = &amp;quot;1@-27&amp;quot; Entonces&lt;br /&gt;
        validar &amp;lt;- Verdadero; // Si les credencials són correctes, retornem Cert;&lt;br /&gt;
    Sino&lt;br /&gt;
        intents &amp;lt;- intents + 1;  // Si són incorrectes, incrementem el comptador d'intents&lt;br /&gt;
        validar &amp;lt;- Falso;  // Retornem Fals per indicar que no s'ha pogut iniciar sessió&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Procediment que mostra un missatge final segons si l'usuari ha accedit correctament o no&lt;br /&gt;
Funcion MostrarMissatgeFinal(accedit)&lt;br /&gt;
    Si accedit Entonces&lt;br /&gt;
        Escribir &amp;quot;Accés concedit!&amp;quot;;  // Si l'usuari ha entrat correctament, ho indiquem&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;Has superat el nombre dintents permesos. Accés denegat.&amp;quot;;  // Si ha esgotat els intents, deneguem l'accés&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Convertir_Temps&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
		opcio &amp;lt;- Menu();&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir &amp;quot;Total en segons: &amp;quot;, A_Seconds();&lt;br /&gt;
			2:&lt;br /&gt;
				Definir h, m, s Como Entero;&lt;br /&gt;
				A_HMS(h, m, s);&lt;br /&gt;
				Escribir &amp;quot;Hores: &amp;quot;, h, &amp;quot; Minuts: &amp;quot;, m, &amp;quot; Segons: &amp;quot;, s;&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Sortint del programa...&amp;quot;;&lt;br /&gt;
		Fin Segun;&lt;br /&gt;
	Hasta Que opcio = 3;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- Menu&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
	Escribir &amp;quot;Menú dopcions:&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;1. Convertir hores, minuts i segons a segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2. Convertir segons a hores, minuts i segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Selecciona una opció (1-3):&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que opcio &amp;gt;= 1 Y opcio &amp;lt;= 3;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion segons &amp;lt;- A_Seconds&lt;br /&gt;
	Definir h, m, s, segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix hores, minuts i segons: &amp;quot;;&lt;br /&gt;
	Leer h, m, s;&lt;br /&gt;
	segons &amp;lt;- (h * 3600) + (m * 60) + s;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion A_HMS(h Por Referencia, m Por Referencia, s Por Referencia )&lt;br /&gt;
	Definir segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix segons: &amp;quot;;&lt;br /&gt;
	Leer segons;&lt;br /&gt;
	h &amp;lt;- Trunc(segons / 3600);&lt;br /&gt;
	m &amp;lt;- Trunc((segons % 3600) / 60);&lt;br /&gt;
	s &amp;lt;- (segons % 3600) % 60;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirAPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment IncialitzarPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Recorre el vector i inicialitza els seus elements a *. &lt;br /&gt;
//El * representa que l'element és buit.&lt;br /&gt;
//Paràmetres d'entrada: Grandària del vector&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion InicialitzarPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	Para i&amp;lt;-0 hasta size_pila-1 Hacer&lt;br /&gt;
		pila[i]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció LongitudPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un comptador amb els elements de la pila.&lt;br /&gt;
//Recorre el vector mentre no troba un * o arriba al final.&lt;br /&gt;
//Paràmetres d'entrada: mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion size &amp;lt;- LongitudPila(pila,size_pila)&lt;br /&gt;
	Definir size Como Entero;&lt;br /&gt;
	size&amp;lt;-0;&lt;br /&gt;
	Mientras size&amp;lt;size_pila Y pila[size]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		size&amp;lt;-size+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaBuidaPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un valor lògic indicant si la pila és buida.&lt;br /&gt;
//Està buida si la longitud és 0.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultat &amp;lt;- EstaBuidaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=0 Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaPlenaPila: Rep un vector (pila) i la seva mida.&lt;br /&gt;
//Retorna un valor lògic indicant si la pila és plena.&lt;br /&gt;
//Està plena si la longitud és igual a la mida del vector.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultadt &amp;lt;- EstaPlenaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=size_pila Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment AfegirAPilaPila: Rep un vector (pila), la seva mida i un element (cadena)&lt;br /&gt;
//Si no està plena, afegeix l'element a la següent posició buida,&lt;br /&gt;
//l'index del qual és igual a la Longitud de la pila.&lt;br /&gt;
//Si és plena, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion AfegirAPila(cad, pila Por Referencia,size_pila)&lt;br /&gt;
	Si no EstaPlenaPila(pila,size_pila) Entonces&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)]&amp;lt;-cad;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot afegir element. La pila és plena&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció TreureDeLaPila: Rep un vector (pila), la seva mida i torna &lt;br /&gt;
//l'element que s'ha introduït en darrer lloc, si no és buida.&lt;br /&gt;
//L'índex d'aquest element serà la longitud de la pila - 1&lt;br /&gt;
//L'element en aquesta posició es buida, és a dir, s'inicialitza a &amp;quot;*&amp;quot;.&lt;br /&gt;
//Si és buida, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//Dada retornada: L'element&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion cad &amp;lt;- TreureDeLaPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir cad Como Caracter;&lt;br /&gt;
	Si no EstaBuidaPila(pila,size_pila) Entonces&lt;br /&gt;
		cad &amp;lt;- pila[LongitudPila(pila,size_pila)-1];&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)-1]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot treure element. La pila és buida&amp;quot;;&lt;br /&gt;
		cad&amp;lt;-&amp;quot;&amp;quot;;	&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EscriurePila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Mostra els elements del vector fins que arribi al final o es trobi un *.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion EscriurePila(pila,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	i&amp;lt;-0;&lt;br /&gt;
	Mientras i&amp;lt;size_pila y pila[i]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Escribir Sin Saltar pila[i],&amp;quot; &amp;quot;;&lt;br /&gt;
		i&amp;lt;-i+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Realitza un programa principal que ens permeti utilitzar funcions per manipular piles.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso ProgramaPila&lt;br /&gt;
	Definir lamevapila Como Caracter;&lt;br /&gt;
	Dimension lamevapila[10];&lt;br /&gt;
	Definir mida_pila como Entero;&lt;br /&gt;
	Definir element Como Caracter;&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	mida_pila&amp;lt;-10;&lt;br /&gt;
	InicialitzarPila(lamevapila,mida_pila);&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;1.- Afegir element a la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2.- Treure element de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3.- Longitud de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;4.- Mostrar pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;5.- Sortir&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir sin Saltar &amp;quot;Nom de la cadena per afegir a la pila:&amp;quot;;&lt;br /&gt;
				Leer element;&lt;br /&gt;
				AfegirAPila(element,lamevapila,mida_pila);&lt;br /&gt;
			2:&lt;br /&gt;
				Escribir TreureDeLaPila(lamevapila,mida_pila);&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Longitud: &amp;quot;,LongitudPila(lamevapila,mida_pila);&lt;br /&gt;
			4:&lt;br /&gt;
				EscriurePila(lamevapila,mida_pila);&lt;br /&gt;
			5:&lt;br /&gt;
				&lt;br /&gt;
			De Otro Modo:&lt;br /&gt;
				Escribir &amp;quot;Opció incorrecta&amp;quot;;&lt;br /&gt;
		FinSegun&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que opcio=5;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaRepetit: Rep un número i un vector de quatre números i comprova&lt;br /&gt;
// si el número està en el vector.&lt;br /&gt;
//Paràmetre d'entrada: Número i vector&lt;br /&gt;
//Dada retornada: Valor lògic: Vertader si el número està en el vector i fals si no.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion repetit &amp;lt;- EstaRepetit(num, vector)&lt;br /&gt;
	Definir repetit Como Logico;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	repetit &amp;lt;- Falso;&lt;br /&gt;
	Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si num = vector[index] Entonces&lt;br /&gt;
			repetit &amp;lt;- Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment GenerarSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//no repetits&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion GenerarSequencia(vector Por Referencia)&lt;br /&gt;
Definir index Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[index] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		num &amp;lt;- Aleatorio(0, 9);&lt;br /&gt;
	Hasta Que No EstaRepetit(num, vector);&lt;br /&gt;
	vector[index] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment LlegirSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//llegits per teclat per l'usuari, assegurant que no s'introdueix cap repetit.&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion LlegirSequencia(vector Por Referencia)&lt;br /&gt;
Definir i Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Definir repetit Como Logico;&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[i] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Número &amp;quot;, i+1, &amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		repetit &amp;lt;- EstaRepetit(num, vector);&lt;br /&gt;
		Si repetit Entonces&lt;br /&gt;
			Escribir &amp;quot;No has dindicar números repetits.&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que No repetit;&lt;br /&gt;
	vector[i] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment ComprovarSequencia: Rep dos vectors, el secret i l'introduït&lt;br /&gt;
//per l'usuari i retorna el nombre de coincidències en la mateixa posició (encerts)&lt;br /&gt;
//i les coincidències en posicions diferents (aproximacions).&lt;br /&gt;
//Paràmetres d'entrada: Dos vectors&lt;br /&gt;
//Paràmetre d'entrada i sortida: encerts i aproximacions&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion ComprovarSequencia(secret, usuari, e Por Referencia, a Por Referencia)&lt;br /&gt;
Definir index_secret Como Entero;&lt;br /&gt;
Definir index_usuari Como Entero;&lt;br /&gt;
Para index_secret &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Para index_usuari &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si secret[index_secret] = usuari[index_usuari] Entonces&lt;br /&gt;
			Si index_secret = index_usuari Entonces&lt;br /&gt;
				e &amp;lt;- e + 1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				a &amp;lt;- a + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Programem el joc &amp;quot;Mastermind&amp;quot;: el programa escull un número de quatre xifres&lt;br /&gt;
//sense repeticions que el jugador ha d'endevinar.&lt;br /&gt;
// * ENCERTS: dígits correctes en la mateixa posició.&lt;br /&gt;
// * APROXIMACIONS: dígits correctes però en posició incorrecta.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso Mastermind&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	Definir numero Como Cadena;&lt;br /&gt;
	Definir resultats Como Cadena;&lt;br /&gt;
	Dimension resultats[100];&lt;br /&gt;
	Dimension secret[4];&lt;br /&gt;
	Dimension usuari[4];&lt;br /&gt;
	Definir secret Como Entero;&lt;br /&gt;
	Definir usuari Como Entero;&lt;br /&gt;
	Definir encerts Como Entero;&lt;br /&gt;
	Definir aproximacions Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	GenerarSequencia(secret);&lt;br /&gt;
	intents &amp;lt;- 0;&lt;br /&gt;
	Repetir&lt;br /&gt;
		LlegirSequencia(usuari);&lt;br /&gt;
		encerts &amp;lt;- 0;&lt;br /&gt;
		aproximacions &amp;lt;- 0;&lt;br /&gt;
		ComprovarSequencia(secret, usuari, encerts, aproximacions);&lt;br /&gt;
		numero &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
		Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
			numero &amp;lt;- Concatenar(numero, ConvertirATexto(usuari[index]));&lt;br /&gt;
		FinPara&lt;br /&gt;
		resultats[intents] &amp;lt;- Concatenar(numero, Concatenar(&amp;quot; - ENCERTS: &amp;quot;, Concatenar(ConvertirATexto(encerts), Concatenar(&amp;quot; - APROXIMACIONS: &amp;quot;, ConvertirATexto(aproximacions)))));&lt;br /&gt;
		Borrar Pantalla;&lt;br /&gt;
		Para index &amp;lt;- intents Hasta 0 Con Paso -1 Hacer&lt;br /&gt;
			Escribir resultats[index];&lt;br /&gt;
		FinPara&lt;br /&gt;
		intents &amp;lt;- intents + 1;&lt;br /&gt;
	Hasta Que encerts = 4;&lt;br /&gt;
	Escribir &amp;quot;Felicitats! Has endevinat el número en &amp;quot;, intents, &amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el&lt;br /&gt;
programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso bacteris&lt;br /&gt;
    Definir generacio_actual, seguent_generacio, temp_matriu Como Entero;&lt;br /&gt;
	Dimension generacio_actual[30,30], seguent_generacio[30,30], temp_matriu[30,30];&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    Definir iteracions, i, j Como Entero;&lt;br /&gt;
	&lt;br /&gt;
    iteracions &amp;lt;- 0;&lt;br /&gt;
    estable &amp;lt;- Falso;&lt;br /&gt;
	&lt;br /&gt;
    GenerarGeneracioInicial(generacio_actual);&lt;br /&gt;
    MostrarGeneracio(generacio_actual);&lt;br /&gt;
	&lt;br /&gt;
    Mientras No estable Y iteracions &amp;lt; 500 Hacer&lt;br /&gt;
        GenerarSeguentGeneracio(generacio_actual, seguent_generacio);&lt;br /&gt;
        estable &amp;lt;- CompararGeneracions(generacio_actual, seguent_generacio);&lt;br /&gt;
        &lt;br /&gt;
        // Copiem seguent_generacio a generacio_actual&lt;br /&gt;
        Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
				generacio_actual[i,j] &amp;lt;- seguent_generacio[i,j];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
&lt;br /&gt;
iteracions &amp;lt;- iteracions + 1;&lt;br /&gt;
FinMientras&lt;br /&gt;
&lt;br /&gt;
MostrarGeneracio(generacio_actual);&lt;br /&gt;
Escribir &amp;quot;Nombre diteracions fins estabilització: &amp;quot;, iteracions;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Omple la matriu amb valors 0 o 1 aleatoris&lt;br /&gt;
SubProceso GenerarGeneracioInicial(matriu Por Referencia)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
            matriu[i,j] &amp;lt;- Aleatorio(0,1);&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Mostra per pantalla la generació&lt;br /&gt;
SubProceso MostrarGeneracio(matriu)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Escribir Sin Saltar matriu[i,j], &amp;quot; &amp;quot;;&lt;br /&gt;
        FinPara&lt;br /&gt;
        Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
    FinPara&lt;br /&gt;
    Escribir &amp;quot;------------------------------&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Genera la nova generació segons les regles&lt;br /&gt;
SubProceso GenerarSeguentGeneracio(actual, nova Por Referencia)&lt;br /&gt;
    Definir i, j, v Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            v &amp;lt;- ComptarVeins(actual, i, j);&lt;br /&gt;
            Si actual[i,j] = 1 Entonces&lt;br /&gt;
                Si v = 2 O v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Supervivència&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Mort (solitud o asfíxia)&lt;br /&gt;
                FinSi&lt;br /&gt;
            Sino&lt;br /&gt;
                Si v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Naixement&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Continua buida&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Compta quants veïns vius hi ha al voltant de (x, y)&lt;br /&gt;
Funcion count &amp;lt;- ComptarVeins(matriu, x, z)&lt;br /&gt;
    Definir dx, dz, i, j, count Como Entero;&lt;br /&gt;
    count &amp;lt;- 0;&lt;br /&gt;
    Para dx &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para dz &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si No (dx = 0 Y dz = 0) Entonces&lt;br /&gt;
                i &amp;lt;- x + dx;&lt;br /&gt;
                j &amp;lt;- z + dz;&lt;br /&gt;
                Si i &amp;gt;= 0 Y i &amp;lt;= 29 Y j &amp;gt;= 0 Y j &amp;lt;= 29 Entonces&lt;br /&gt;
                    count &amp;lt;- count + matriu[i,j];&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Compara dues generacions per veure si són iguals&lt;br /&gt;
Funcion estable &amp;lt;- CompararGeneracions(gen1, gen2)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    estable &amp;lt;- Verdadero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si gen1[i,j] &amp;lt;&amp;gt; gen2[i,j] Entonces&lt;br /&gt;
                estable &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
   &lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19298</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19298"/>
				<updated>2026-04-17T15:36:59Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Academia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Id_curs''''', Data_inici, Data_final, Codi_curs, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Id_curs, DNI_alumne''''', Nota) ON {Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, Id_gabia) ON {Id_gabia} REFERENCIA GABIA &lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT ADMET VALORS NULS&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''Id_agencia, Num_reserva'''', Data_ini, Data_fin, DNI_CLI) ON {DNI_CLI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''Id_agencia, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {Id_agencia, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
&lt;br /&gt;
SENSE ADMETRE VALORS NULS&lt;br /&gt;
&lt;br /&gt;
Tot igual, excepte:&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon) &lt;br /&gt;
&lt;br /&gt;
AVALADOR ('''''DNI_CLI''''', DNI_AVAL) ON {DNI_CLI} REFERENCIA CLIENT I ON {DNI_AVAL} REFERENCIA CLIENT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) ON {Num_magatzem} REFERENCIA MAGATZEM&lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
Curs ('''''Num_curs''''', Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor ('''''DNI''''', Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
Assignatura ('''''Nom_assig, Num_curs''''') ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup ('''Lletra, Id_curs''', DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir ('''Nom_assig, Num_curs, Lletra, Id_curs''', Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula ('''Num_aula''', Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne ('''Num_matricula''', Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} referencia Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} referencia Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} referencia Vivenda on {dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis: Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} referencia Bloc y {Dni } referencia Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona: Dni, Telefon on {Dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Cognoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Porta }ref Pis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
LINIA ('''''Id_linia''''', Color, Hora_primer, Hora_darrer)&lt;br /&gt;
&lt;br /&gt;
ESTACIO ('''''Id_estacio''''', Nom, Hora_obrir, Hora_tancar)&lt;br /&gt;
&lt;br /&gt;
ACCES ('''''Id_estacio, Num_acces''''', Carrer, Portal) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
COTXERA ('''''Id_estacio''''', Num_trens, Num_vagons) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
TREN ('''''Id_tren''''', Model, Data_compra, Max_vagons, Id_estacio) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
ARRIBADA ('''''Id_arribada''''', Sentit, Numero, Data_hora_arr, Data_hora_sor, Id_tren) ON {Id_tren} REFERENCIA TREN&lt;br /&gt;
&lt;br /&gt;
CONSTAR ('''''Id_linia, Id_estacio''''', Ordre, Segons_ant, Segons_seg) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
PASSAR ('''''Id_linia, Id_estacio''''', Id_arribada) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO I {Id_arribada} REFERENCIA {ARRIBADA}&lt;br /&gt;
&lt;br /&gt;
SERVIR ('''''Id_tren, Data_inici''''', Id_linia, Data_final) ON {Id_tren} REFERENCIA TREN I {Id_linia} REFERENCIA LINIA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EQUIP ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
COMPONENT ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''NIF''''', Nom, Cognoms, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
SECCIO ('''''Id_seccio''''', Nom) &lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''Id_Emp''''', DNI, Nom, Cognoms, Id_seccio) ON {Id_seccio} REFERENCIA SECCIO&lt;br /&gt;
&lt;br /&gt;
COMPOSAR ('''''Codi_equip, Codi_component''''', Quantitat) ON {Codi_equip} REFERENCIA EQUIP I {Codi_component} REFERENCIA COMPONENT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_EQ ('''''Codi_equip, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_equip} REFERENCIA EQUIP , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_CP ('''''Codi_component, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_component} REFERENCIA COMPONENT , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
LLIBRE ( ''''''ISBN'''''' , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( ''''''Id_autor'''''' , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ''''''ISBN, id_autor'''''') ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( ''''''Id _editorial'''''' , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ''''''ISBN, Id_editorial'''''' ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ''''''ISBN'''''' , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ''''''ISBN'''''' , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( ''''''Id_magatzem'''''' , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ''''''ISBN, Id_magatzem'''''' , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( ''''''Codi'''''' , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( ''''''Codi'''''', Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( ''''''NIF'''''' , Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( ''''''Id_cistella'''''' , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( ''''''Id_cistella , ISBN'''''' , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19297</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19297"/>
				<updated>2026-04-17T15:20:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Biblioteca v1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Id_curs''''', Data_inici, Data_final, Codi_curs, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Id_curs, DNI_alumne''''', Nota) ON {Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, Id_gabia) ON {Id_gabia} REFERENCIA GABIA &lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT ADMET VALORS NULS&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''Id_agencia, Num_reserva'''', Data_ini, Data_fin, DNI_CLI) ON {DNI_CLI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''Id_agencia, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {Id_agencia, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
&lt;br /&gt;
SENSE ADMETRE VALORS NULS&lt;br /&gt;
&lt;br /&gt;
Tot igual, excepte:&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon) &lt;br /&gt;
&lt;br /&gt;
AVALADOR ('''''DNI_CLI''''', DNI_AVAL) ON {DNI_CLI} REFERENCIA CLIENT I ON {DNI_AVAL} REFERENCIA CLIENT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) ON {Num_magatzem} REFERENCIA MAGATZEM&lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
Curs ('''''Num_curs''''', Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor ('''''DNI''''', Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
Assignatura ('''''Nom_assig, Num_curs''''') ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup ('''Lletra, Id_curs''', DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir ('''Nom_assig, Num_curs, Lletra, Id_curs''', Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula ('''Num_aula''', Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne ('''Num_matricula''', Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} referencia Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} referencia Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} referencia Vivenda on {dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis: Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} referencia Bloc y {Dni } referencia Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona: Dni, Telefon on {Dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Cognoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Porta }ref Pis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
LINIA ('''''Id_linia''''', Color, Hora_primer, Hora_darrer)&lt;br /&gt;
&lt;br /&gt;
ESTACIO ('''''Id_estacio''''', Nom, Hora_obrir, Hora_tancar)&lt;br /&gt;
&lt;br /&gt;
ACCES ('''''Id_estacio, Num_acces''''', Carrer, Portal) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
COTXERA ('''''Id_estacio''''', Num_trens, Num_vagons) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
TREN ('''''Id_tren''''', Model, Data_compra, Max_vagons, Id_estacio) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
ARRIBADA ('''''Id_arribada''''', Sentit, Numero, Data_hora_arr, Data_hora_sor, Id_tren) ON {Id_tren} REFERENCIA TREN&lt;br /&gt;
&lt;br /&gt;
CONSTAR ('''''Id_linia, Id_estacio''''', Ordre, Segons_ant, Segons_seg) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
PASSAR ('''''Id_linia, Id_estacio''''', Id_arribada) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO I {Id_arribada} REFERENCIA {ARRIBADA}&lt;br /&gt;
&lt;br /&gt;
SERVIR ('''''Id_tren, Data_inici''''', Id_linia, Data_final) ON {Id_tren} REFERENCIA TREN I {Id_linia} REFERENCIA LINIA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EQUIP ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
COMPONENT ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''NIF''''', Nom, Cognoms, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
SECCIO ('''''Id_seccio''''', Nom) &lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''Id_Emp''''', DNI, Nom, Cognoms, Id_seccio) ON {Id_seccio} REFERENCIA SECCIO&lt;br /&gt;
&lt;br /&gt;
COMPOSAR ('''''Codi_equip, Codi_component''''', Quantitat) ON {Codi_equip} REFERENCIA EQUIP I {Codi_component} REFERENCIA COMPONENT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_EQ ('''''Codi_equip, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_equip} REFERENCIA EQUIP , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_CP ('''''Codi_component, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_component} REFERENCIA COMPONENT , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
LLIBRE ( ''''''ISBN'''''' , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( ''''''Id_autor'''''' , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ''''''ISBN, id_autor'''''') ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( ''''''Id _editorial'''''' , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ''''''ISBN, Id_editorial'''''' ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ''''''ISBN'''''' , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ''''''ISBN'''''' , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( ''''''Id_magatzem'''''' , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ''''''ISBN, Id_magatzem'''''' , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( ''''''Codi'''''' , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( ''''''Codi'''''', Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( ''''''NIF'''''' , Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( ''''''Id_cistella'''''' , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( ''''''Id_cistella , ISBN'''''' , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19296</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19296"/>
				<updated>2026-04-17T14:57:55Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Perrera municipal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19295</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19295"/>
				<updated>2026-04-17T14:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19294</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19294"/>
				<updated>2026-04-16T13:39:20Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19293</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=19293"/>
				<updated>2026-04-13T15:45:44Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Id_curs''''', Data_inici, Data_final, Codi_curs, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Id_curs, DNI_alumne''''', Nota) ON {Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, Id_gabia) ON {Id_gabia} REFERENCIA GABIA &lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT ADMET VALORS NULS&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''Id_agencia, Num_reserva'''', Data_ini, Data_fin, DNI_CLI) ON {DNI_CLI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''Id_agencia, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {Id_agencia, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
&lt;br /&gt;
SENSE ADMETRE VALORS NULS&lt;br /&gt;
&lt;br /&gt;
Tot igual, excepte:&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon) &lt;br /&gt;
&lt;br /&gt;
AVALADOR ('''''DNI_CLI''''', DNI_AVAL) ON {DNI_CLI} REFERENCIA CLIENT I ON {DNI_AVAL} REFERENCIA CLIENT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) ON {Num_magatzem} REFERENCIA MAGATZEM&lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
Curs ('''''Num_curs''''', Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor ('''''DNI''''', Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
Assignatura ('''''Nom_assig, Num_curs''''') ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup ('''Lletra, Id_curs''', DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir ('''Nom_assig, Num_curs, Lletra, Id_curs''', Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula ('''Num_aula''', Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne ('''Num_matricula''', Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} referencia Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} referencia Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} referencia Vivenda on {dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis: Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} referencia Bloc y {Dni } referencia Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona: Dni, Telefon on {Dni} referencia Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Cognoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Porta }ref Pis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
LINIA ('''''Id_linia''''', Color, Hora_primer, Hora_darrer)&lt;br /&gt;
&lt;br /&gt;
ESTACIO ('''''Id_estacio''''', Nom, Hora_obrir, Hora_tancar)&lt;br /&gt;
&lt;br /&gt;
ACCES ('''''Id_estacio, Num_acces''''', Carrer, Portal) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
COTXERA ('''''Id_estacio''''', Num_trens, Num_vagons) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
TREN ('''''Id_tren''''', Model, Data_compra, Max_vagons, Id_estacio) ON {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
ARRIBADA ('''''Id_arribada''''', Sentit, Numero, Data_hora_arr, Data_hora_sor, Id_tren) ON {Id_tren} REFERENCIA TREN&lt;br /&gt;
&lt;br /&gt;
CONSTAR ('''''Id_linia, Id_estacio''''', Ordre, Segons_ant, Segons_seg) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO&lt;br /&gt;
&lt;br /&gt;
PASSAR ('''''Id_linia, Id_estacio''''', Id_arribada) ON {Id_linia} REFERENCIA LINIA I {Id_estacio} REFERENCIA ESTACIO I {Id_arribada} REFERENCIA {ARRIBADA}&lt;br /&gt;
&lt;br /&gt;
SERVIR ('''''Id_tren, Data_inici''''', Id_linia, Data_final) ON {Id_tren} REFERENCIA TREN I {Id_linia} REFERENCIA LINIA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EQUIP ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
COMPONENT ('''''Codi''''', Descripcio, Preu, Stock)&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''NIF''''', Nom, Cognoms, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
SECCIO ('''''Id_seccio''''', Nom) &lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''Id_Emp''''', DNI, Nom, Cognoms, Id_seccio) ON {Id_seccio} REFERENCIA SECCIO&lt;br /&gt;
&lt;br /&gt;
COMPOSAR ('''''Codi_equip, Codi_component''''', Quantitat) ON {Codi_equip} REFERENCIA EQUIP I {Codi_component} REFERENCIA COMPONENT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_EQ ('''''Codi_equip, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_equip} REFERENCIA EQUIP , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
COMPRAR_CP ('''''Codi_component, NIF, Data''''', Id_Emp, Quantitat) ON {Codi_component} REFERENCIA COMPONENT , {NIF} REFERENCIA CLIENT I {Id_Emp} REFERENCIA EMPLEAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
LLIBRE ( ''''''ISBN'''''' , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( ''''''Id_autor'''''' , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ''''''ISBN, id_autor'''''') ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( ''''''Id _editorial'''''' , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ''''''ISBN, Id_editorial'''''' ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ''''''ISBN'''''' , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ''''''ISBN'''''' , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( ''''''Id_magatzem'''''' , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ''''''ISBN, Id_magatzem'''''' , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( ''''''Codi'''''' , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( ''''''Codi'''''', Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( ''''''NIF'''''' , Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( ''''''Id_cistella'''''' , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( ''''''Id_cistella , ISBN'''''' , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19292</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19292"/>
				<updated>2026-04-13T15:43:21Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19291</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19291"/>
				<updated>2026-04-13T15:41:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19290</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19290"/>
				<updated>2026-04-13T15:40:00Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19289</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19289"/>
				<updated>2026-04-13T14:06:58Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un nom per teclat i després escriure un missatge de salutació&lt;br /&gt;
::Dades d'entrada: nom (cadena)&lt;br /&gt;
::Variables: nom (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nom&lt;br /&gt;
::2. Escriure missatge de salutació&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Saludar&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Escribir &amp;quot;Diguem el teu nom:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Hola &amp;quot;,nom;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la base i l'alçada del triangle i calcular el perímetre i el àrea&lt;br /&gt;
::Dades d'entrada: base(real), alçada(real)&lt;br /&gt;
::Informació de sortida: perímetre(real) i àrea(real)&lt;br /&gt;
::Variables: base, alçada, perímetre i àrea (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir base i altura&lt;br /&gt;
::2. Calcular perímetre(2*base + 2*alçada)&lt;br /&gt;
::3. Calcular àrea (base * altura&lt;br /&gt;
::4. Mostrar perímetre i àrea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Rectangle&lt;br /&gt;
	Definir base,alcada,perimetre,area como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la base:&amp;quot;;&lt;br /&gt;
	Leer base;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la alçada:&amp;quot;;&lt;br /&gt;
	Leer alcada;&lt;br /&gt;
	perimetre &amp;lt;- 2 * base + 2 * alcada;&lt;br /&gt;
	area &amp;lt;- base * alcada;&lt;br /&gt;
	Escribir &amp;quot;El perí­metre és &amp;quot;,perimetre,&amp;quot; y el àrea es &amp;quot;,area;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la longitud dels dos catets i calcular la hipotenusa. &lt;br /&gt;
::(Teorema de Pitàgores)&lt;br /&gt;
::Variables d'entrada: catet1(real), catet2(real)&lt;br /&gt;
::Variables de sortida: hipotenusa(real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir la longitud dels catets&lt;br /&gt;
::2. Calcular hipotenusa (En un triangle rectangle el quadrat de la hipotenusa  és igual a la suma dels quadrats dels catets.)&lt;br /&gt;
::Per tant la hipotenusa és igual a l'arrel quadrada de la suma dels quadrats dels catets (funció raiz).&lt;br /&gt;
::3. Mostrar la hipotenusa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHipotenusa&lt;br /&gt;
	Definir catet1,catet2,hipotenusa como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el catet 1:&amp;quot;;&lt;br /&gt;
	Leer catet1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la catet 2:&amp;quot;;&lt;br /&gt;
	Leer catet2;&lt;br /&gt;
	hipotenusa &amp;lt;- raiz(catet1 ^ 2 + catet2 ^ 2);&lt;br /&gt;
	Escribir &amp;quot;La hipotenusa és &amp;quot;, hipotenusa;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algorisme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir dos números, calcular la suma, resta, multiplicació i divisió. &lt;br /&gt;
::Dades d'entrada: Els dos números (real)&lt;br /&gt;
::Informació de sortida: suma, resta, multiplicació, divisió(real)&lt;br /&gt;
::Variables: num1, num2 (Real). &lt;br /&gt;
::Considero que les sortides no cal desar-la en variables.&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els números&lt;br /&gt;
::2. Mostrar suma, resta, multiplicació i divisió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Calcular&lt;br /&gt;
   Definir num1,num2 Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir &amp;quot;La suma &amp;quot;, num1+num2;&lt;br /&gt;
   Escribir &amp;quot;La resta és &amp;quot;, num1-num2;&lt;br /&gt;
   Escribir &amp;quot;La multiplicació és &amp;quot;, num1*num2;&lt;br /&gt;
   Escribir &amp;quot;La divisió és &amp;quot;, num1/num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir tres números i calcular la mitjana. Suma dels tres partits 3.&lt;br /&gt;
::Dades d'entrada: els tres números (real)&lt;br /&gt;
::Informació de sortida: la mitjana (real)&lt;br /&gt;
::Variables: num1,num2,num3, mitjana (Real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els tres números&lt;br /&gt;
::2. Calcular la mitjana: (num1+num2+num3)/3&lt;br /&gt;
:.3. Mostrar la mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularMitjana&lt;br /&gt;
   Definir num1,num2,num3, mitjana Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 3:&amp;quot;;&lt;br /&gt;
   Leer num3;&lt;br /&gt;
   mitjana &amp;lt;- (num1 + num2 + num3) /3;&lt;br /&gt;
   Escribir &amp;quot;La mitjana és &amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.&lt;br /&gt;
::Dades d'entrada: minuts (entero)&lt;br /&gt;
::Informació de sortida:hores i minuts (entero)&lt;br /&gt;
::Variables: minuts, res_hores, res_minuts (entero).&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir els minuts&lt;br /&gt;
::2. Calcular a quantes hores correspon, divisió sencera entre 60.&lt;br /&gt;
::3. calcular els minuts restants: resta de la divisió entre 60.&lt;br /&gt;
::4. Mostrar hores i minuts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHoras&lt;br /&gt;
	Definir minuts, res_hores, res_min como Entero;&lt;br /&gt;
	Escribir &amp;quot;Indica la quantitat de minuts:&amp;quot;;&lt;br /&gt;
	Leer minuts;&lt;br /&gt;
	res_hores&amp;lt;-trunc(minuts / 60);&lt;br /&gt;
	res_min&amp;lt;-minuts % 60;&lt;br /&gt;
	Escribir res_hores,&amp;quot; horas i &amp;quot;,res_min,&amp;quot; minuts.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El venedor té un sou base més una comissió del 10% per cada venda. &lt;br /&gt;
::Fa tres vendes.&lt;br /&gt;
::Dades dentrada: sou base, les tres vendes (real).&lt;br /&gt;
::Informació de sortida: comissions i sou total (real).&lt;br /&gt;
::Variables: sou_base, venda1, venda2, venda3, comissió(real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir sou base&lt;br /&gt;
::2. Llegir les tres vendes&lt;br /&gt;
::3. Calculeu les comissions. Suma del 10% de cada venda.&lt;br /&gt;
::4. Mostra comissió&lt;br /&gt;
::5. Mostra sou total: sou_base+comissió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_base, venda1, venda2, venda3, comissio como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica el sou base:&amp;quot;;&lt;br /&gt;
	Leer sou_base;&lt;br /&gt;
	Escribir &amp;quot;Indica import primera venda 1:&amp;quot;;&lt;br /&gt;
	Leer venda1;&lt;br /&gt;
	Escribir &amp;quot;Indica import segona venda 2:&amp;quot;;&lt;br /&gt;
	Leer venda2;&lt;br /&gt;
	Escribir &amp;quot;Indica import tercera venda 3:&amp;quot;;&lt;br /&gt;
	Leer venda3;&lt;br /&gt;
	comissio&amp;lt;-venda1*0.1+venda2*0.1+venda3*0.1;&lt;br /&gt;
	Escribir &amp;quot;Comissió per vendes:&amp;quot;,comissio;&lt;br /&gt;
	Escribir &amp;quot;Sou total:&amp;quot;, sou_base+comissio;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final. &lt;br /&gt;
::Posteriorment es calculen els percentatges i es sumen.&lt;br /&gt;
::Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).&lt;br /&gt;
::Informació de sortida: nota final (real).&lt;br /&gt;
::Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir les notes parcials, de l'examen final i de la feina.&lt;br /&gt;
::2. Calculem la nota 55% de la mitjana de les notes parcials, més el 30% de la nota de l'examen més 15% de la nota del treball.&lt;br /&gt;
::3. Mostra nota final&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularNota&lt;br /&gt;
	Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 1:&amp;quot;;&lt;br /&gt;
	Leer parcial1;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 2:&amp;quot;;&lt;br /&gt;
	Leer parcial2;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 3:&amp;quot;;&lt;br /&gt;
	Leer parcial3;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del examen:&amp;quot;;&lt;br /&gt;
	Leer examen;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del treball:&amp;quot;;&lt;br /&gt;
	Leer treball;&lt;br /&gt;
	nota &amp;lt;- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;&lt;br /&gt;
	Escribir &amp;quot;Nota final:&amp;quot;, nota;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen el valor de dues variables (el tipus pot ser el que vulguem). &lt;br /&gt;
::Cal intercanviar els valors de les variables&lt;br /&gt;
::Dades d'entrada: dos números en dues variables (enters).&lt;br /&gt;
::Informació de sortida: Les dues variables però amb les dades canviades (enter)&lt;br /&gt;
::Variables: num1, num2 (enters).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els dos números&lt;br /&gt;
::2. Intercanvio els valors. Necessito una variable auxiliar (aux). &lt;br /&gt;
:: Assigno &amp;quot;num1&amp;quot; a &amp;quot;aux&amp;quot;, &amp;quot;num2&amp;quot; a &amp;quot;num1&amp;quot; i &amp;quot;aux&amp;quot; a &amp;quot;num2&amp;quot;&lt;br /&gt;
::3. Mostra &amp;quot;num1&amp;quot; i &amp;quot;num2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso IntercanviarVariables&lt;br /&gt;
	Definir num1,num2,aux  como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	aux &amp;lt;- num1;&lt;br /&gt;
	num1 &amp;lt;- num2;&lt;br /&gt;
	num2 &amp;lt;- aux;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num1: &amp;quot;, num1;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num2: &amp;quot;, num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen la quantitat de monedes que tenim (de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) i calculem els diners que tenim (euros i cèntims)&lt;br /&gt;
::Dades d'entrada: monedes de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) (Enteros).&lt;br /&gt;
::Informació de sortida: total de diners: euros i cèntims (Enteros)&lt;br /&gt;
::Variables: euro2, euro1, cent50, cent20, cent10, total_euros, total_centims (Enteros)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el monedes de 2e, 1e, 50 cèntims, 20 cèntims i 10 cèntims.&lt;br /&gt;
::2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
::3. Calcular cèntims (monedes de 50c * 50 + moneda de 20c * 20 + moneda de 10c * 10)&lt;br /&gt;
::4. Convertir cèntims a euros (divisió sencera entre 100)&lt;br /&gt;
::5. Mostrar euros i cèntims totals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularDiners&lt;br /&gt;
	Definir euro2,euro1,cent50,cent20,cent10 como Entero;&lt;br /&gt;
	Definir total_euros, total_centims Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 2 euros:&amp;quot;;&lt;br /&gt;
	Leer euro2;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 1 euro:&amp;quot;;&lt;br /&gt;
	Leer euro1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 50 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent50;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 20 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent20;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 10 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent10;&lt;br /&gt;
	//2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
	total_euros &amp;lt;- euro2 * 2 + euro1;&lt;br /&gt;
	//3. Calcular cèntims (monedes de 50c * 50 + monedes de 20c * 20 + monedes de 10c * 10&lt;br /&gt;
	total_centims &amp;lt;- cent50 * 50 + cent20 * 20 + cent10 * 10;&lt;br /&gt;
	//4. Convertir cèntims a euros (divisió entera entre 100)&lt;br /&gt;
	total_euros &amp;lt;- total_euros + trunc(total_centims / 100);&lt;br /&gt;
	total_centims &amp;lt;- total_centims % 100;&lt;br /&gt;
	Escribir total_euros,&amp;quot; euros i &amp;quot;,total_centims,&amp;quot; cèntims.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.&lt;br /&gt;
::Dades d'entrada: número (enter)&lt;br /&gt;
::Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.&lt;br /&gt;
::Variables: num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el número&lt;br /&gt;
::2. Si el nombre és igual 0 escriviu &amp;quot;És igual a 0&amp;quot;&lt;br /&gt;
::3. En cas contrari si és més gran que 0 escriure &amp;quot;És més gran que 0&amp;quot;&lt;br /&gt;
::4. En altre cas escriure &amp;quot;És menor que 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularPositiuNegatiuZero&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Escribir &amp;quot;Digue'm el número :&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Si num=0 Entonces&lt;br /&gt;
		Escribir &amp;quot;És igual a 0&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			Escribir &amp;quot;És positiu&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Escribir &amp;quot;És negatiu&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat nom i contrasenya&lt;br /&gt;
::si coincideixen amb les correctes indiquem que s'ha entrat al sistema.&lt;br /&gt;
::en cas contrari indiquem que el nom o la clau són incorrectes&lt;br /&gt;
::Dades d'entrada: usuari, password (cadena)&lt;br /&gt;
::Informació de sortida: Missatges d'encert o error.&lt;br /&gt;
::Variables: usuari, password (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir l'usuari&lt;br /&gt;
::2. Llegir el password&lt;br /&gt;
::3. Si l'usuari és igual a &amp;quot;pcarbonell&amp;quot; i el password és igual a &amp;quot;pc1673&amp;quot; &lt;br /&gt;
::escriure &amp;quot;Has entrat al sistema&amp;quot;&lt;br /&gt;
::4. En cas contrari mostrar el missatge &amp;quot;Usuari/password incorrecte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Procéso Login&lt;br /&gt;
	Definir usuari, password como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix l'usuari:&amp;quot;;&lt;br /&gt;
	Leer usuari;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el password:&amp;quot;;&lt;br /&gt;
	Leer password;&lt;br /&gt;
	Si usuari=&amp;quot;pcarbonell&amp;quot; Y password=&amp;quot;pc1673&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Has entrat al sistema&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;Usuari/password incorrecte&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat dos números: nota i edat i un caràcter sexe.&lt;br /&gt;
::Es mostra &amp;quot;ACCEPTADA&amp;quot; si nota&amp;gt;=5, edat&amp;gt;=18 i el sexe és femení.&lt;br /&gt;
::Si es compleix les mateixes condicions però amb el sexe masculí -&amp;gt; &amp;quot;POSSIBLE&amp;quot; en cas contrari es mostra &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
::Dades d'entrada: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
::Informació de sortida: Missatge d'informació&lt;br /&gt;
::Variables: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir la nota, l'edat i el sexe&lt;br /&gt;
::2. si nota&amp;gt;=5, edat&amp;gt;=18 &lt;br /&gt;
::3. si sexe=&amp;quot;F&amp;quot; mostrar &amp;quot;ACCEPTADA&amp;quot; -&amp;gt; funció Mayusculas()&lt;br /&gt;
::4. si sexe=&amp;quot;M&amp;quot; mostrar &amp;quot;POSSIBLE&amp;quot;&lt;br /&gt;
::5. En cas contrari, mostrar &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComprovarNotaEdatSexe&lt;br /&gt;
	Definir nota,edat como Entero;&lt;br /&gt;
	Definir sexe como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la nota:&amp;quot;;&lt;br /&gt;
	Leer nota;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la edat:&amp;quot;;&lt;br /&gt;
	Leer edat;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el sexe (F/M):&amp;quot;;&lt;br /&gt;
	Leer sexe;&lt;br /&gt;
	Si nota&amp;gt;=5 Y edat&amp;gt;=18 Entonces&lt;br /&gt;
		Si Mayusculas(sexe)=&amp;quot;F&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Acceptada&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(sexe)=&amp;quot;M&amp;quot; Entonces&lt;br /&gt;
				Escribir &amp;quot;Possible&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El preu final del raïm es calcula multiplicant els quilos recollits pel preu de cada quilo. El preu per quilo es calcula a partir del preu inicial sumant o restant una quantitat determinada segons la mida i el tipus del raïm.&lt;br /&gt;
::Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)&lt;br /&gt;
::Informació de sortida: Preu final en euros (real) o missatge d'error&lt;br /&gt;
::Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir preu_inicial, quilos&lt;br /&gt;
::2. Llegir tipus&lt;br /&gt;
::3. Si tipus no és &amp;quot;A&amp;quot; o &amp;quot;B&amp;quot; tornar missatge d'error.&lt;br /&gt;
::4. Llegir la mida&lt;br /&gt;
::5. Si la mida no és &amp;quot;1&amp;quot; o &amp;quot;2&amp;quot; tornar missatge d'error.&lt;br /&gt;
::6. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;1&amp;quot; summe a preu_inicial 20 cèntims.&lt;br /&gt;
::7. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;2&amp;quot; summe a preu_inicial 30 cèntims.&lt;br /&gt;
::8. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;1&amp;quot; resta a preu_inicial 20 cèntims.&lt;br /&gt;
::9. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;2&amp;quot; resta a preu_inicial 30 cèntims.&lt;br /&gt;
::10. El preu_final = preu_inicial * quilos&lt;br /&gt;
::11. Mostra preu final/100 euros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso PreuUva&lt;br /&gt;
	Definir tipus como Caracter;&lt;br /&gt;
	Definir mida como Caracter;&lt;br /&gt;
	Definir preu_inicial,preu_final como Real;&lt;br /&gt;
	Definir quilos como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el preu inicial per quilos del UVA (cèntims):&amp;quot;;&lt;br /&gt;
	Leer preu_inicial;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix quants quilos has venut:&amp;quot;;&lt;br /&gt;
	Leer quilos;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el tipus de lUVA (A/B):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
	&lt;br /&gt;
	Si Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;A&amp;quot; Y Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Tipus incorrecte&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix la mida del UVA (1/2):&amp;quot;;&lt;br /&gt;
		Leer mida;&lt;br /&gt;
		Si mida&amp;lt;&amp;gt;&amp;quot;1&amp;quot; Y mida&amp;lt;&amp;gt;&amp;quot;2&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Mida incorrecte&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(tipus)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			SiNo&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
			preu_final&amp;lt;-preu_inicial * quilos;&lt;br /&gt;
			Escribir &amp;quot;El guany és&amp;quot;,preu_final/100, &amp;quot;euros.&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DescompteComercial&lt;br /&gt;
	&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Definir preuOriginal, descompte, preuFinal como Real;&lt;br /&gt;
	Definir codiDescompte como Entero;&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom de larticle: &amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el preu original: &amp;quot;;&lt;br /&gt;
	Leer preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi de descompte: &amp;quot;;&lt;br /&gt;
	Leer codiDescompte;&lt;br /&gt;
	&lt;br /&gt;
	Segun codiDescompte Hacer&lt;br /&gt;
		1: descompte &amp;lt;- preuOriginal * 0.10;&lt;br /&gt;
		2: descompte &amp;lt;- preuOriginal * 0.15;&lt;br /&gt;
		3: descompte &amp;lt;- preuOriginal * 0.20;&lt;br /&gt;
		De Otro Modo: descompte &amp;lt;- 0;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
	preuFinal &amp;lt;- preuOriginal - descompte;&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Article: &amp;quot;, nom;&lt;br /&gt;
	Escribir &amp;quot;Preu original: &amp;quot;, preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Descompte: &amp;quot;, descompte;&lt;br /&gt;
	Escribir &amp;quot;Preu final: &amp;quot;, preuFinal;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Area&lt;br /&gt;
	&lt;br /&gt;
	Definir figura Como Entero; &lt;br /&gt;
	Definir areaFig, costat, ample, llarg, base, alcada, radi Como Real;&lt;br /&gt;
	Escribir &amp;quot;Escull la figura geomètrica&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;1 Quadrat , 2 Rectangle , 3 Triangle , 4 Cercle&amp;quot;;&lt;br /&gt;
	Leer figura; &lt;br /&gt;
	&lt;br /&gt;
	Segun figura Hacer&lt;br /&gt;
		1 : &lt;br /&gt;
			Escribir &amp;quot;Introdueix la mida dun costat del quadrat&amp;quot;;&lt;br /&gt;
			Leer costat;&lt;br /&gt;
			areaFig &amp;lt;- costat * costat;&lt;br /&gt;
			&lt;br /&gt;
		2 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix lample del rectangle&amp;quot;;&lt;br /&gt;
			Leer ample;&lt;br /&gt;
			Escribir &amp;quot;Introdueix el llarg del rectangle&amp;quot;;&lt;br /&gt;
			Leer llarg;&lt;br /&gt;
			areaFig &amp;lt;- ample * llarg;&lt;br /&gt;
			&lt;br /&gt;
		3 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix la alçada del triangle&amp;quot;;&lt;br /&gt;
			Leer alcada;&lt;br /&gt;
			Escribir &amp;quot;Introdueix la base del triangle&amp;quot;;&lt;br /&gt;
			Leer base;&lt;br /&gt;
			areaFig &amp;lt;- (base * alcada) / 2;&lt;br /&gt;
			&lt;br /&gt;
		4 :&lt;br /&gt;
			Escribir &amp;quot;Ingrese el radio del circulo&amp;quot;;&lt;br /&gt;
		Leer radi;&lt;br /&gt;
			areaFig &amp;lt;- PI * radi * radi;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;làrea de la figura és: &amp;quot; , areaFig;	&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 False&lt;br /&gt;
b) num1=1 num2=2 False&lt;br /&gt;
c) num1=2 num2=1 False&lt;br /&gt;
d) num1=2 num2=2 True&lt;br /&gt;
e) num1=0 num2=0 False&lt;br /&gt;
f) num1=1 num2=0 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 True&lt;br /&gt;
b) num1=3 num2=4 False&lt;br /&gt;
c) num1=4 num2=3 True&lt;br /&gt;
d) num1=4 num2=4 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 True&lt;br /&gt;
b) num1=1 num2=2 num3=3 True&lt;br /&gt;
c) num1=1 num2=3 num3=2 False&lt;br /&gt;
d) num1=2 num2=1 num3=3 True&lt;br /&gt;
e) num1=2 num2=3 num3=1 False&lt;br /&gt;
f) num1=3 num2=2 num3=1 True&lt;br /&gt;
g) num1=3 num2=1 num3=2 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num4 Y num3 &amp;gt; num4) &lt;br /&gt;
&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3)&lt;br /&gt;
&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3 Y num1 !=num4) &lt;br /&gt;
&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num3 Y num2 &amp;lt; num4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
&lt;br /&gt;
   ((notaLit + notaCat + notaMat) / 3) &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
&lt;br /&gt;
  ((notaMat &amp;gt; (notaLit + notaCat + notaMat) / 3) Y (notaCat &amp;gt; (notaLit + notaCat + notaMat))&lt;br /&gt;
&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 O notaCat &amp;gt; 5 O notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 Y notaCat &amp;gt; 5 Y notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; vendesP2 Y vendesP1 &amp;gt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt;= 200 Y vendesP2&amp;gt;= 200 Y vendesP3 &amp;gt;= 200)&lt;br /&gt;
&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; 400 O vendesP2 &amp;gt; 400 O vendesP3 &amp;gt; 400)&lt;br /&gt;
&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3) / 3) &amp;gt; 500&lt;br /&gt;
&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP2 &amp;lt; vendesP1 O vendesP2 &amp;lt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3 &amp;gt;= 500) Y (vendesP1 + vendesP2 + vendesP3 &amp;lt;= 1000))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
::Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre.&lt;br /&gt;
::Informació de sortida: El resultat del factorial&lt;br /&gt;
::Variables: num, comptador (enter), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
::2. Inicialitza variables: resultat = 1&lt;br /&gt;
::3. Per a comptador=2 fins num&lt;br /&gt;
:::::4. resultat=resultat*comptador&lt;br /&gt;
::5. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador como Entero;&lt;br /&gt;
	Definir resultat como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para comptador&amp;lt;-2 Hasta num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El resultat és&amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un nombre. Si és senar, li sumo 1 i ja és parell. Llegim el segon número.&lt;br /&gt;
::Escric el número des del primer fins al segon de dos en dos.&lt;br /&gt;
::Dades d'entrada: dos números&lt;br /&gt;
::Informació de sortida: Els nombres parells que hi ha entre els dos anteriors&lt;br /&gt;
::Variables: num, num1, num2 (enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir num1,num2&lt;br /&gt;
::2. Si num1 és senar -&amp;gt; num1=num1+1&lt;br /&gt;
::3. Des de num1 fins a num2 de 2 en 2&lt;br /&gt;
::::4. Escriure el número&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso NumerosParells&lt;br /&gt;
	Definir num,num1,num2 Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	Si num1 % 2 = 1 Entonces&lt;br /&gt;
		num1&amp;lt;-num1+1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Para num&amp;lt;-num1 Hasta num2 Con Paso 2 Hacer&lt;br /&gt;
			Escribir Sin Saltar num,&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demana la quantitat de números que es llegiran. Anem introduint números.&lt;br /&gt;
::Hem de comptar els positius, negatius i zeros.&lt;br /&gt;
::Dades d'entrada: Quantitat de números, els números.&lt;br /&gt;
::Informació de sortida: Quantitat de positius, de negatius i de zeros.&lt;br /&gt;
::Variables: quantitat_num,num,cont_positius,cont_negatius,cont_zeros(enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo els comptadors&lt;br /&gt;
::2. Llegir quantitat de números&lt;br /&gt;
::3. Des d'1 fins a quantitat de números&lt;br /&gt;
::::4. Llegir num&lt;br /&gt;
::::5. Si num&amp;gt; 0-&amp;gt; increment cont_positius&lt;br /&gt;
::::6. Si num&amp;lt; 0-&amp;gt; increment cont_negatius&lt;br /&gt;
::::7. Si num = 0-&amp;gt; increment cont_zeros.&lt;br /&gt;
::8Mostra cont_postius, cont_negatius, cont_zeros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComptarNumerosPositiusNegatiusIZeros&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir quantitat_num,i Como Entero;&lt;br /&gt;
	Definir cont_negatius,cont_positius,cont_zeros Como Entero;&lt;br /&gt;
	cont_negatius &amp;lt;- 0;&lt;br /&gt;
	cont_positius &amp;lt;- 0;&lt;br /&gt;
	cont_zeros &amp;lt;- 0;&lt;br /&gt;
	Escribir &amp;quot;Quants números introduiràs?:&amp;quot;;&lt;br /&gt;
	Leer quantitat_num;&lt;br /&gt;
	Para i&amp;lt;-1 Hasta quantitat_num Hacer&lt;br /&gt;
		Escribir &amp;quot;Nombre &amp;quot;,i,&amp;quot;:&amp;quot; ;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			cont_positius &amp;lt;- cont_positius + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si num&amp;lt;0 Entonces&lt;br /&gt;
				cont_negatius &amp;lt;- cont_negatius + 1;&lt;br /&gt;
				Sino&lt;br /&gt;
				cont_zeros &amp;lt;- cont_zeros + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Números positius:&amp;quot;,cont_positius;&lt;br /&gt;
	Escribir &amp;quot;Números negatius:&amp;quot;,cont_negatius;&lt;br /&gt;
	Escribir &amp;quot;Nombre igual a 0:&amp;quot;,cont_zeros;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que mostri la taula de multiplicar d'un número introduït per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim el número del que volem mostrar la taula&lt;br /&gt;
::Necessitem un comptador per comptar d'1 a 10&lt;br /&gt;
:.Hem de repetir 10 vegades -&amp;gt; A cada volta hem de mostrar: el comptador * el número = resultat de la multiplicació&lt;br /&gt;
::Dades d'entrada: El número de la taula i un comptador d'1 a 10.&lt;br /&gt;
::Informació de sortida: Les 10 operacions de la taula de multiplicació&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir taula&lt;br /&gt;
::2. Des de nombre d'1 a 10&lt;br /&gt;
::::3. Mostrar num * taula = (num*taula)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulaMultiplicar&lt;br /&gt;
	Definir num, numTaula Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols mostrar la taula de multiplicar?:&amp;quot;;&lt;br /&gt;
	Leer numTaula;&lt;br /&gt;
	Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Escribir num,&amp;quot; * &amp;quot;, numTaula,&amp;quot; = &amp;quot;,num*numTaula;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::He de repetir 10 vegades (des del número 1 fins al 10) mostrar la taula de multiplicar d'aquest número.&lt;br /&gt;
::Com hem vist en l'exercici 4, per fer una taula de multiplicar hem de repetir 10 vegades per mostrar cada línia de la taula.&lt;br /&gt;
::Per tant necessito dos bucles imbricats.&lt;br /&gt;
::Dades d'entrada: Res&lt;br /&gt;
::Informació de sortida: Les deu taules de multiplicar&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Per a taula des d'1 fins a 10&lt;br /&gt;
::::2. Per num des d'1 fins a 10&lt;br /&gt;
::::::3. Mostrar taula * num = (taula*num)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulesDeMultiplicar&lt;br /&gt;
	Definir taula,num Como Entero;&lt;br /&gt;
	Para taula&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
			Escribir taula,&amp;quot; * &amp;quot;,num,&amp;quot; = &amp;quot;, taula*num;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Esperar Tecla;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Calcular el sou i les hores treballades dun empleat en una setmana (6 dies).&lt;br /&gt;
::Cal anar introduint la quantitat d'hores que treballa cada dia.&lt;br /&gt;
::Hem de saber quant es paga l'hora treballada.&lt;br /&gt;
::Cal anar acumulant les hores treballades cada dia, per poder calcular el sou.&lt;br /&gt;
::Dades d'entrada: Sou per hora, hores.&lt;br /&gt;
::Informació de sortida: Les hores acumulades, i el sou de la setmana.&lt;br /&gt;
::Variables: sou_per_hora (Real),hores, hores_acum, dia(enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1.- Inicialitzo les hores acumulades&lt;br /&gt;
::2.- Llegir sou per hora (sou)&lt;br /&gt;
::3.- Des del dia 1 al 6&lt;br /&gt;
::::4.- Llegir hores treballades&lt;br /&gt;
::::5.- Acumular les hores treballades&lt;br /&gt;
::6.- Mostrar Les hores acumulades&lt;br /&gt;
::7.- Mostrar el sou -&amp;gt; hores acumulades * sou per hora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir hores, hores_acum Como  Entero;&lt;br /&gt;
	Definir dia Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix el sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para dia&amp;lt;-1 hasta 6 Hacer&lt;br /&gt;
		Escribir &amp;quot;Quantes hores has treballat el dia &amp;quot;,dia,&amp;quot;?:&amp;quot;;&lt;br /&gt;
		Leer hores;&lt;br /&gt;
		hores_acum &amp;lt;- hores_acum + hores;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Hores acumulades a la setmana:&amp;quot;,hores_acum;&lt;br /&gt;
	Escribir &amp;quot;Sou:&amp;quot;,sou_per_hora*hores_acum;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal calcular el sou d'un nombre de treballadors, per tant necessitem el nombre de treballadors que té lempresa. També necessitem saber el sou per hora, i per cada treballador cal demanar les hores que ha treballat a la setmana.&lt;br /&gt;
::Per cada treballador cal mostrar el sou setmanal i en finalitzar el programa mostrem el total de sous pagats.&lt;br /&gt;
::Dades d'entrada: Nombre de treballadors, sou per hora, hores treballades per cada treballador.&lt;br /&gt;
::Informació de sortida: Sou de cada treballador, total pagat.&lt;br /&gt;
::Variables: hores_per_setmana, hores_acum (enter), sou_per_hora (real), treballadors, treballador (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo l'acumulador d'hores&lt;br /&gt;
::2. Llegir el nombre de treballadors&lt;br /&gt;
::3. Llegir sou per hora&lt;br /&gt;
::4. Per cada treballador&lt;br /&gt;
::::5. Llegir hores treballades per setmana&lt;br /&gt;
::::6. Mostrar sou (hores_per_setmana*sou_per_hora&lt;br /&gt;
::::7. Acumular hores treballades&lt;br /&gt;
::8. Mostrar total de pagament (hores_acum*sou_per_hora)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSalari&lt;br /&gt;
	Definir hores_per_setmana, hores_acum Como Entero;&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir treballadors, treballador Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Quants treballadors té l'empresa?:&amp;quot;;&lt;br /&gt;
	Leer treballadors;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para treballador&amp;lt;-1 Hasta treballadors Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Quantes hores ha treballat el treballador, treballador, ?&amp;quot;;&lt;br /&gt;
		Leer hores_per_setmana;&lt;br /&gt;
		hores_acum&amp;lt;-horas_acum+hores_per_setmana;&lt;br /&gt;
		Escribir &amp;quot;El treballador &amp;quot;,treballador,&amp;quot; té de sou &amp;quot;,hores_per_setmana*sou_per_hora; &lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El pagament als &amp;quot;treballadors,&amp;quot; treballadors és: &amp;quot;,hores_acum*sou_per_hora;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Fei un algoritme que mostri el següent quadrat  d'asteríscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratAstriscos&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratBlanc&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Si (fila = 1 o fila = num o col = 1 o col = num) Entonces&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;  &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	  Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-num Hasta fila Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col,&amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1. Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Hem de generar un nombre aleatori (funció aleatori) de l'1 al 100.&lt;br /&gt;
:: Necessitem un comptador per comptar els 10 intents. Al principi val 10 i anirà decrementant.&lt;br /&gt;
:: Mentre no encerti el número i em quedin intents:&lt;br /&gt;
:: Llegeixo un número&lt;br /&gt;
:: Ho comparo amb el nombre generat (dic si és més gran o més petit)&lt;br /&gt;
:: Demano un altre nombre&lt;br /&gt;
:: Puc acabar el bucle per dues raons: si he endevinat el número (he guanyat) i mostro els intents que he necessitat.&lt;br /&gt;
:: sinó he perdut, he utilitzat els 10 intents i mostro el número generat.&lt;br /&gt;
:: Dades d'entrada: número demanat a l'usuari.&lt;br /&gt;
:: Informació de sortida: Has guanyat i els intents, o has perdut i el número.&lt;br /&gt;
:: Variables: num_scret, num_ingressat, intents (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
:: 1. Genero un nombre aleatori de l'1 al 100 (num_secret)&lt;br /&gt;
:: 2. intents = 10&lt;br /&gt;
:: 3. Llegir num&lt;br /&gt;
:: 4. Mentre num&amp;lt;&amp;gt; num_secret i intents&amp;gt;1&lt;br /&gt;
:::: 5. Si num_screto&amp;gt;num -&amp;gt; Escriure &amp;quot;Molt baix&amp;quot;&lt;br /&gt;
:::: 6. Si num_screto&amp;lt;num -&amp;gt; Escriure &amp;quot;Molt alt&amp;quot;&lt;br /&gt;
:::: 7. intents=intents-1&lt;br /&gt;
:::: 8. Escriure intents&lt;br /&gt;
:::: 9. Llegir num&lt;br /&gt;
:: 10. Si num_secreo=num -&amp;gt; Escriure &amp;quot;Has guanyat&amp;quot;, intents&lt;br /&gt;
:: 11. SiNo -&amp;gt; Escriure &amp;quot;Has perdut, num_secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Adivina_Numero&lt;br /&gt;
    Definir intents,num_secret,num_ingressat Como Entero;&lt;br /&gt;
    intents &amp;lt;- 10;&lt;br /&gt;
    num_secret &amp;lt;- Aleatorio(1,100);&lt;br /&gt;
    &lt;br /&gt;
    Escribir &amp;quot;Endevineu el nombre (d'1 a 100):&amp;quot;;&lt;br /&gt;
    Leer num_ingressat;&lt;br /&gt;
    Mientras num_secret&amp;lt;&amp;gt;num_ingressat Y intents&amp;gt;1 Hacer&lt;br /&gt;
        Si num_secret&amp;gt;num_ingressat Entonces&lt;br /&gt;
            Escribir &amp;quot;Molt baix&amp;quot;;&lt;br /&gt;
        Sino &lt;br /&gt;
            Escribir &amp;quot;Molt alt&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
        intents &amp;lt;- intents-1;&lt;br /&gt;
        Escribir &amp;quot;Li queden &amp;quot;,intents,&amp;quot; intents:&amp;quot;;&lt;br /&gt;
        Leer num_ingressat;&lt;br /&gt;
    FinMientras&lt;br /&gt;
    &lt;br /&gt;
    Si num_secret=num_ingressat Entonces&lt;br /&gt;
        Escribir &amp;quot;Exacte! Vostè endevino a &amp;quot;,11-intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;El nombre era: &amp;quot;,num_secret;&lt;br /&gt;
    FinSi&lt;br /&gt;
    &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Anem demanant números fins a introduir un 0.&lt;br /&gt;
:: Necessitem un acumulador per anar fent les sumes intermèdies.&lt;br /&gt;
:: A més necessitem un comptador, per calcular la mitjana (suma/quantitat)&lt;br /&gt;
:: Dades d'entrada: números, un acumulador per sumar i un comptador&lt;br /&gt;
:: Informació de sortida: La suma i la mitjana&lt;br /&gt;
:: Variables:num, suma, cont enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzat: suma = 0, cont = 0&lt;br /&gt;
::2. Llegir num&lt;br /&gt;
::3. Mentre num&amp;lt;&amp;gt;0&lt;br /&gt;
:::: 4. Acumul: suma = suma + num&lt;br /&gt;
:::: 5. Conte si num&amp;lt;&amp;gt;0: cont=cont+1&lt;br /&gt;
:::. 6. Llegir num&lt;br /&gt;
::7. Si cont=0 (No hem introduït cap número)-&amp;gt; mitjana=0&lt;br /&gt;
::8. SiNo -&amp;gt; mitjana=suma/cont;&lt;br /&gt;
::9. Mostrar suma i mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSumaMitjana&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir suma,cont como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	suma &amp;lt;- 0;&lt;br /&gt;
	cont &amp;lt;-0;&lt;br /&gt;
	//Amb el mentre si el primer número és 0 no entrarà al bucle&lt;br /&gt;
	Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		suma &amp;lt;- suma + num;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
		Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	//Si cont=0 no puc fer la divisió&lt;br /&gt;
	Si cont&amp;gt;0 Entonces&lt;br /&gt;
		mitjana &amp;lt;- suma / cont;&lt;br /&gt;
	SiNo&lt;br /&gt;
		mitjana &amp;lt;-0;&lt;br /&gt;
	FinSi&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Suma:&amp;quot;,suma;&lt;br /&gt;
	Escribir &amp;quot;Mitjana:&amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
:: Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre&lt;br /&gt;
:: Informació de sortida: El resultat del factorial&lt;br /&gt;
:: Variables: num, comptador (entero), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
:.2. Inicials variables&lt;br /&gt;
:: comptador = 2&lt;br /&gt;
:: resultat = 1&lt;br /&gt;
:: 3. Mentre comptador&amp;lt;=num fer&lt;br /&gt;
:::: 4. resultat=resultat*comptador&lt;br /&gt;
:::: 5. comptador=comptador+1&lt;br /&gt;
:. 6. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador Como Entero;&lt;br /&gt;
	Definir resultat Como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm  un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	comptador &amp;lt;- 2;&lt;br /&gt;
	Mientras comptador&amp;lt;=num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
		comptador &amp;lt;- comptador + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El resultat és &amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un número i anem comprovant si és divisible entre 2 fins a l'arrel quadrada del nombre. Si és divisible per algun número no és primer.&lt;br /&gt;
::Si no és divisible per cap nombre és primer.&lt;br /&gt;
::Per saber si és divisible fem servir l'operador mòdul.&lt;br /&gt;
::Dades d'entrada: el número a comprovar si és primer o no&lt;br /&gt;
::Informació de sortida: Un missatge dient si és primer o no&lt;br /&gt;
::Variables: numero_es_primer (entero), num (entero) comptador des de 2 fins arrel quadrada del num_es_primer, es_primer (lógico)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Suposo que el nombre és primer -&amp;gt; és_primer&amp;lt;-Verdadero&lt;br /&gt;
::2. Llegir num_ces_primer&lt;br /&gt;
::3. Mentre no final (num &amp;lt; número primer?) i el número primer? no sigui divisible pel num&lt;br /&gt;
::::4. Incrementem el num&lt;br /&gt;
::5. Si es_primer -&amp;gt; Mostra &amp;quot;És primer&amp;quot;&lt;br /&gt;
::6. Si no -&amp;gt; Mostra &amp;quot;No és primer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EsPrimo&lt;br /&gt;
	Definir num,div Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número per comprovar si és primer:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
        div &amp;lt;- 2;&lt;br /&gt;
	Mientras div&amp;lt;&amp;gt;num Y num % div &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
		div &amp;lt;- div +1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Si div = num Entonces&lt;br /&gt;
		Escribir &amp;quot;És Primer&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No és Primer&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval.&lt;br /&gt;
: Si el límit inferior és més gran que el superior ho ha de tornar a demanar.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Demanem un interval (límit inferior i superior)&lt;br /&gt;
:: Ens hem d'assegurar que el límit inferior sigui menor que el superior.&lt;br /&gt;
:: Es van demanant números fins que s'introdueixi el 0.&lt;br /&gt;
:: Si el nombre pertany a l'interval -&amp;gt; ho vaig sumant (necessito un acumulador)&lt;br /&gt;
:: Si el número no pertany a l'interval, ho explico (necessito un comptador)&lt;br /&gt;
:: Si el nombre és igual a algun límit, allò índic (necessito un indicador)&lt;br /&gt;
:: Al final mostro la suma dels números que pertanyen a l'interval.&lt;br /&gt;
:: Mostreu el comptador de número que no pertanyen a l'interval.&lt;br /&gt;
:: Indico si hem introduït un número igual a algun límit&lt;br /&gt;
:: Dades d'entrada: límit superior i inferior de l'interval i els números.&lt;br /&gt;
:: Informació de sortida: La suma dels que pertanyen a l'interval, el comptador dels números que no pertanyen a l'interval i indico si un nombre ha estat igual a algun interval&lt;br /&gt;
:: Variables: lim_inf, lim_sup, num, suma_dins_interval, cont_fora_interval (enters), igual_limits (Lògic)&lt;br /&gt;
&lt;br /&gt;
:Diseny&lt;br /&gt;
::1. Inicialitzo l'acumulador, el comptador i l'indicat&lt;br /&gt;
::2. Repetir -&amp;gt; llegir lim_inf i lim_sup fins que lim_inf&amp;lt;lim_sup&lt;br /&gt;
::3. Llegir núm&lt;br /&gt;
::4. Mentre num sigui diferent de 0&lt;br /&gt;
::::5. Si num pertany a l'interval -&amp;gt; acumula la suma&lt;br /&gt;
::::6. Sinó -&amp;gt; increment comptador&lt;br /&gt;
::::7. Si és igual a algun interval -&amp;gt; Ho indico (indicador a cert)&lt;br /&gt;
::::8. Llegir núm&lt;br /&gt;
::9. Mostra la suma dels números pertanyents a l'interval&lt;br /&gt;
::10. Mostra el comptador de números no pertanyents a l'interval&lt;br /&gt;
::11. Si l'indicador = Veritable -&amp;gt; Mostra &amp;quot;Un nombre = a interval&amp;quot;&lt;br /&gt;
::12. SiNo -&amp;gt; Mostra &amp;quot;No has introduït un número igual a l'interval&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Interval&lt;br /&gt;
	Definir lim_inf, lim_sup como Entero;&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Definir suma_dins_interval Como Entero;&lt;br /&gt;
	Definir cont_fora_interval Como Entero;&lt;br /&gt;
	Definir igual_limits Como Logico;&lt;br /&gt;
	suma_dins_interval &amp;lt;- 0;&lt;br /&gt;
	cont_fora_interval &amp;lt;- 0;&lt;br /&gt;
	igual_limits &amp;lt;- Falso;&lt;br /&gt;
	//M'asseguro que el lim_inf és menor que el lim_sup&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_inf;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_sup;&lt;br /&gt;
	Mientras lim_inf &amp;gt;= lim_sup Hacer&lt;br /&gt;
		Escribir &amp;quot;ERROR: El límit inferior ha de ser menor que el superior.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_inf;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_sup;&lt;br /&gt;
	FinMientras&lt;br /&gt;
		&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		//Pertany a l'interval&lt;br /&gt;
		Si num&amp;gt;lim_inf Y num&amp;lt;lim_sup Entonces&lt;br /&gt;
			suma_dins_interval&amp;lt;- suma_dins_interval + num;&lt;br /&gt;
		SiNo &lt;br /&gt;
			//Nombre igual a algun dels límits&lt;br /&gt;
			Si num=lim_inf O num=lim_sup Entonces&lt;br /&gt;
				igual_limits &amp;lt;- Verdadero;&lt;br /&gt;
			Sino&lt;br /&gt;
			//No pertany a l'interval&lt;br /&gt;
			cont_fora_interval &amp;lt;- cont_fora_interval + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;La suma dels números dins de linterval és &amp;quot;,suma_dins_interval;&lt;br /&gt;
	Escribir &amp;quot;La quantitat de números fora de linterval és &amp;quot;,cont_fora_interval;&lt;br /&gt;
	Si igual_limits Entonces&lt;br /&gt;
		Escribir &amp;quot;Sha introduït algun nombre igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No sha introduït cap número igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Notes_Alumnes&lt;br /&gt;
	Definir alumne Como Cadena;&lt;br /&gt;
	Definir nota_practica, nota_problemes, nota_teoria, nota_final Como Real;&lt;br /&gt;
        Escribir &amp;quot;Introduïu el nom de l'alumne: &amp;quot;;&lt;br /&gt;
	Leer alumne;&lt;br /&gt;
        Mientras alumne&amp;lt;&amp;gt;&amp;quot;&amp;quot; Hacer&lt;br /&gt;
        //si introduïm un nom d'alumne correcte, entrés al bucle&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de la pràctica: &amp;quot;;&lt;br /&gt;
        	Leer nota_practica;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota dels problemes: &amp;quot;;&lt;br /&gt;
        	Leer nota_problemes;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de teoria&amp;quot;;&lt;br /&gt;
        	Leer nota_teoria;&lt;br /&gt;
        	//comprovem si les notes tenen un rang correcte&lt;br /&gt;
        	Si (nota_practica&amp;lt;=10 y nota_practica&amp;gt;=0) y (nota_problemes&amp;lt;=10 y nota_problemes&amp;gt;=0) y (nota_teoria&amp;lt;=10 y nota_teoria&amp;gt;=0) Entonces&lt;br /&gt;
			Escribir &amp;quot;L'alumne &amp;quot;, alumne;&lt;br /&gt;
                	Escribir &amp;quot;La nota practica és &amp;quot; nota_practica;&lt;br /&gt;
                	Escribir &amp;quot;La nota de problemes és &amp;quot;, nota_problemes;&lt;br /&gt;
                	Escribir &amp;quot;La nota de teoria és &amp;quot; nota_teoria;&lt;br /&gt;
                	nota_final&amp;lt;-(nota_practica * 0,1)+(nota_problemes * 0.5)+(nota_teoria*0.4);&lt;br /&gt;
                	Escribir &amp;quot;La nota final és &amp;quot; nota_final;&lt;br /&gt;
        	SiNo&lt;br /&gt;
                Escribir &amp;quot;Has escrit una nota incorrecta, Torna a introduir les notes!&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
		Escribir &amp;quot;Introdueix el nom d'un altre alumne&amp;quot;;&lt;br /&gt;
		Leer alumne;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso UBER&lt;br /&gt;
        Definir nroViatges,temps,acum,cont,contMenys30,contEntre30i45,contMes45 Como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	&lt;br /&gt;
	contMenys30 &amp;lt;- 0;  //comptador&lt;br /&gt;
	contEntre30i45 &amp;lt;- 0;&lt;br /&gt;
	contMes45 &amp;lt;- 0;&lt;br /&gt;
	acum &amp;lt;- 0;   //acumulador&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Introduïu el número de viatges del dia: &amp;quot;;&lt;br /&gt;
	Leer nroViatges;&lt;br /&gt;
	&lt;br /&gt;
	cont &amp;lt;- 1;&lt;br /&gt;
	Mientras cont &amp;lt;= nroViajes Hacer&lt;br /&gt;
		Escribir &amp;quot;Introduïu el temps del viatge &amp;quot;,cont;&lt;br /&gt;
		Leer temps; &lt;br /&gt;
		&lt;br /&gt;
		si temps&amp;lt;30 Entonces &lt;br /&gt;
			contMenys30 &amp;lt;- contMenys30 + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			si temps &amp;gt;= 30 y temps &amp;lt; 45 Entonces &lt;br /&gt;
				contEntre30i45 &amp;lt;- contEntre30i45 + 1;&lt;br /&gt;
			Sino&lt;br /&gt;
				contMes45 &amp;lt;- contMes45 + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		&lt;br /&gt;
		acum &amp;lt;- acum + temps;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
	Fin Mientras &lt;br /&gt;
		&lt;br /&gt;
	mitjana &amp;lt;- acum / nroViajes;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Nro de viatges : &amp;quot;,nroViatges;&lt;br /&gt;
	Escribir &amp;quot;Mitjana dels temps: &amp;quot;,mitjana;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar menys de 30 minuts:: &amp;quot;,contMenys30;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar entre 30 a 45 minuts: &amp;quot;,contEntre30i45; &lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar més de 45 minuts: &amp;quot;,contMes45;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis prova===&lt;br /&gt;
&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TresN&lt;br /&gt;
	Definir num, cont Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Escriu un numero enter i positiu: &amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        Leer num;&lt;br /&gt;
	&lt;br /&gt;
        Si num &amp;gt; 0  Entonces &lt;br /&gt;
            cont &amp;lt;- 1;&lt;br /&gt;
&lt;br /&gt;
            Mientras num != 1 Hacer&lt;br /&gt;
                Si num % 2 = 0 Entonces&lt;br /&gt;
                    num &amp;lt;- num / 2;&lt;br /&gt;
                SiNo &lt;br /&gt;
                    num &amp;lt;- (num * 3) + 1;&lt;br /&gt;
                &lt;br /&gt;
                cont &amp;lt;- cont + 1;&lt;br /&gt;
                Escribir Sin Saltar num, &amp;quot; &amp;quot;;&lt;br /&gt;
            FinMientras&lt;br /&gt;
&lt;br /&gt;
            Escribir &amp;quot;Ha donat &amp;quot;,cont,&amp;quot; voltes.&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;El número ha de ser positiu!!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Data&lt;br /&gt;
	Definir dia, mes, diesPerMes, diaSeguent, mesSeguent Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	Escribir &amp;quot;Introdueix el dia: &amp;quot;;&lt;br /&gt;
        Leer dia;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el mes: &amp;quot;;&lt;br /&gt;
        Leer mes;&lt;br /&gt;
	&lt;br /&gt;
        diesPerMes &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
        Segun Mes Hacer&lt;br /&gt;
            1, 3, 5, 7, 8, 10, 12: diesPerMes &amp;lt;- 31;&lt;br /&gt;
            4, 6, 9, 11: diesPerMes &amp;lt;- 30;&lt;br /&gt;
            2: diesPerMes &amp;lt;- 28;&lt;br /&gt;
        FinSegun&lt;br /&gt;
&lt;br /&gt;
        diaSeguent &amp;lt;- dia+5;&lt;br /&gt;
        &lt;br /&gt;
        Si diaSeguent&amp;gt;diesPerMes Entonces&lt;br /&gt;
            diaSeguent &amp;lt;- diaSeguent-diesPerMes;&lt;br /&gt;
            mes &amp;lt;-- mes + 1;&lt;br /&gt;
            Si mes&amp;gt;12 Entonces&lt;br /&gt;
                mes &amp;lt;-- 1;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Escribir diaSeguent, &amp;quot; &amp;quot;, mes;&lt;br /&gt;
&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso XY&lt;br /&gt;
	Definir carActual, carAnterior Como Caracter;&lt;br /&gt;
        Definir cont Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	carAnterior=&amp;quot; &amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
        Leer carActual;&lt;br /&gt;
	&lt;br /&gt;
        cont &amp;lt;- 1;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (cont &amp;lt; 10000 &amp;amp;&amp;amp; (carAnterior != 'X' O carActual != 'Y')) Hacer&lt;br /&gt;
                &lt;br /&gt;
            carAnterior = carActual;&lt;br /&gt;
	    Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
            Leer carActual;&lt;br /&gt;
            cont &amp;lt;- cont + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si (carAnterior != 'X' Y carActual != 'Y') Entonces&lt;br /&gt;
		Escribir &amp;quot;Apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir divisor, numero Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el número: &amp;quot;;&lt;br /&gt;
        Leer numero;&lt;br /&gt;
	&lt;br /&gt;
        divisor &amp;lt;- 2;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (divisor &amp;lt; numero Y numero % divisor != 0) Hacer&lt;br /&gt;
                &lt;br /&gt;
            divisor &amp;lt;- divisor + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si divisor = numero Entonces&lt;br /&gt;
	    Escribir &amp;quot;No té cap divisor&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
	    Escribir &amp;quot;El primer divisor és: &amp;quot;, divisor;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir x1, x2, punt, min, max, distanciaDreta, distanciaEsquerra  Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix la primera coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la segona coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x2;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el punt: &amp;quot;;&lt;br /&gt;
        Leer punt;&lt;br /&gt;
	&lt;br /&gt;
	Si x1 &amp;lt; x2 Entonces&lt;br /&gt;
           min &amp;lt;- x1;&lt;br /&gt;
           max &amp;lt;- x2;&lt;br /&gt;
	SiNo&lt;br /&gt;
           min &amp;lt;- x2;&lt;br /&gt;
           max &amp;lt;- x1;&lt;br /&gt;
	FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaDreta = max - punt;  &lt;br /&gt;
        Si (distanciaDreta &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaDreta = distanciaDreta * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaEsquerra = min - punt;&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaEsquerra = distanciaEsquerra * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (punt &amp;gt;= min Y punt &amp;lt;= max) {&lt;br /&gt;
            Escribir &amp;quot;Dins&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Fora&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt;= distanciaDreta) {&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaEsquerra;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaDreta;&lt;br /&gt;
        FinSi&lt;br /&gt;
      &lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis prova CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalculNomines&lt;br /&gt;
	Definir tipus, hores, diesBaixa, sou Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
&lt;br /&gt;
	Mientras tipus &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Si tipus &amp;lt; 1 O tipus &amp;gt; 3 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Tipus no vàlid. Torna a intentar-ho.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre dhores treballades:&amp;quot;;&lt;br /&gt;
        	Leer hores;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre de dies de baixa:&amp;quot;;&lt;br /&gt;
        	Leer diesBaixa;&lt;br /&gt;
&lt;br /&gt;
        	Segun tipus Hacer&lt;br /&gt;
            	1:&lt;br /&gt;
                	sou &amp;lt;- hores * 12;&lt;br /&gt;
            	2:&lt;br /&gt;
                	sou &amp;lt;- hores * 15;&lt;br /&gt;
            	3:&lt;br /&gt;
                	sou &amp;lt;- hores * 25;&lt;br /&gt;
                	Si hores &amp;gt; 160 Entonces&lt;br /&gt;
                    	   sou &amp;lt;- sou + 500;&lt;br /&gt;
                	FinSi&lt;br /&gt;
        	FinSegun&lt;br /&gt;
&lt;br /&gt;
        	Si diesBaixa &amp;gt; 5 Entonces&lt;br /&gt;
            	   sou &amp;lt;- sou * 0.9;&lt;br /&gt;
            	   Escribir &amp;quot;Penalització aplicada per dies de baixa.&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
&lt;br /&gt;
        	Escribir &amp;quot;El sou del treballador és:&amp;quot;, sou, &amp;quot;€&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
    	   Leer tipus;&lt;br /&gt;
	FinMientras        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa s'ha de repetir per diversos vols fins que es detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ControlPassatgers&lt;br /&gt;
        Definir codiVol, nacionals, internacionals, total, volMaxInternacionals Como Entero;&lt;br /&gt;
	Definir percentatgeInternacionals, maxPercentatge Como Real;&lt;br /&gt;
	maxPercentatge &amp;lt;- 0;&lt;br /&gt;
	volMaxInternacionals &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
	Leer codiVol;&lt;br /&gt;
&lt;br /&gt;
	Mientras codiVol &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers nacionals:&amp;quot;;&lt;br /&gt;
    	   Leer nacionals;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers internacionals:&amp;quot;;&lt;br /&gt;
    	   Leer internacionals;&lt;br /&gt;
&lt;br /&gt;
    	   total &amp;lt;- nacionals + internacionals;&lt;br /&gt;
    	   Escribir &amp;quot;El vol &amp;quot;, codiVol, &amp;quot; té un total de &amp;quot;, total, &amp;quot; passatgers.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    	   Si total &amp;gt; 0 Entonces&lt;br /&gt;
        	percentatgeInternacionals &amp;lt;- (internacionals / total) * 100;&lt;br /&gt;
        	Escribir &amp;quot;Percentatge de passatgers internacionals: &amp;quot;, percentatgeInternacionals, &amp;quot;%&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        	Si percentatgeInternacionals &amp;gt; maxPercentatge Entonces&lt;br /&gt;
            	   maxPercentatge &amp;lt;- percentatgeInternacionals;&lt;br /&gt;
            	   volMaxInternacionals &amp;lt;- codiVol;&lt;br /&gt;
        	FinSi&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;El vol no té passatgers.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer codiVol;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;El vol amb més percentatge de passatgers internacionals és el vol &amp;quot;, volMaxInternacionals, &amp;quot; amb un &amp;quot;, maxPercentatge, &amp;quot;% de passatgers internacionals.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SeguimentAtletisme&lt;br /&gt;
        Definir dorsal, millorDorsal, pitjorDorsal Como Entero;&lt;br /&gt;
	Definir temps1, temps2, temps3 Como Real;&lt;br /&gt;
	Definir millorMitjana, pitjorMitjana, mitjana Como Real;&lt;br /&gt;
	millorMitjana &amp;lt;- 999999;&lt;br /&gt;
	pitjorMitjana &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
	Leer dorsal;&lt;br /&gt;
&lt;br /&gt;
	Mientras dorsal &amp;lt;&amp;gt; -1 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la primera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps1;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la segona cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps2;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la tercera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps3;&lt;br /&gt;
&lt;br /&gt;
       	   mitjana &amp;lt;- (temps1 + temps2 + temps3) / 3;&lt;br /&gt;
     	   Escribir &amp;quot;La mitjana de temps per latleta amb dorsal &amp;quot;, dorsal, &amp;quot; és: &amp;quot;, mitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
    	   Si mitjana &amp;lt; millorMitjana Entonces&lt;br /&gt;
        	millorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	millorDorsal &amp;lt;- dorsal;&lt;br /&gt;
     	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; pitjorMitjana Entonces&lt;br /&gt;
        	pitjorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	pitjorDorsal &amp;lt;- dorsal;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; 10 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; no ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer dorsal;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Latleta amb millor mitjana és el dorsal &amp;quot;, millorDorsal, &amp;quot; amb una mitjana de &amp;quot;, millorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Latleta amb pitjor mitjana és el dorsal &amp;quot;, pitjorDorsal, &amp;quot; amb una mitjana de &amp;quot;, pitjorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratCubVector&lt;br /&gt;
	Definir vector_numeros Como Entero;&lt;br /&gt;
	Dimension vector_numeros[10];&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	//Primer recorregut per llegir el vector&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		vector_numeros[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Segon recorregut per mostrar el resultat&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		Escribir vector_numeros[index],&amp;quot; &amp;quot;,vector_numeros[index]^2,&amp;quot; &amp;quot;,vector_numeros[index]^3;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorInvers&lt;br /&gt;
	Definir vector1,vector2 Como Cadenas;&lt;br /&gt;
	Dimension vector1[5],vector2[5];&lt;br /&gt;
	Definir indicador1,indicador2 Como Entero;&lt;br /&gt;
	Definir tam_vector1,tam_vector2 Como Entero;&lt;br /&gt;
	//Defineixo la mida dels vectors per utilitzar-los en els recorreguts&lt;br /&gt;
	tam_vector1&amp;lt;-5;&lt;br /&gt;
	tam_vector2&amp;lt;-5;&lt;br /&gt;
	//RRecorro el vector1 i llegeixo cada element per teclat&lt;br /&gt;
	Para indicador1&amp;lt;-0 hasta tam_vector1-1 hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dónam la cadena &amp;quot;,indicador1+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer vector1[indicador1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	indicador2&amp;lt;-0;&lt;br /&gt;
	//Recorro el vector1 des del final al principi&lt;br /&gt;
	//Cada element el guardo al vector2&lt;br /&gt;
	Para indicador1&amp;lt;-tam_vector1-1 hasta 0 con paso -1 hacer&lt;br /&gt;
		vector2[indicador2]&amp;lt;-vector1[indicador1];&lt;br /&gt;
		indicador2&amp;lt;-indicador2+1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro el vector2 per mostrar-lo&lt;br /&gt;
	Para indicador2&amp;lt;-0 hasta tam_vector2-1 hacer&lt;br /&gt;
		Escribir &amp;quot;La cadena &amp;quot;,indicador2+1,&amp;quot;: &amp;quot;,vector2[indicador2];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorNotes&lt;br /&gt;
	Definir notes Como Entero;&lt;br /&gt;
	Dimension notes[5];&lt;br /&gt;
	Definir tam_notes como Entero;&lt;br /&gt;
	Definir nota_mitjana Como Real;&lt;br /&gt;
	Definir suma,nota_max,nota_min, nota como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	tam_notes&amp;lt;-5;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer nota;&lt;br /&gt;
		Mientras nota&amp;lt;0 o nota&amp;gt;10 Hacer&lt;br /&gt;
			//Comprovem que sigui un nombre &amp;gt;=0 i &amp;lt;=10&lt;br /&gt;
			&lt;br /&gt;
			Escribir sin saltar &amp;quot;Nota incorrecte. Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
			Leer nota;&lt;br /&gt;
		FinMientras&lt;br /&gt;
		notes[index] &amp;lt;- nota;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suposo que la nota màxima i la mínima és aquesta primera&lt;br /&gt;
	nota_max&amp;lt;-notes[0];&lt;br /&gt;
	nota_min&amp;lt;-notes[0];&lt;br /&gt;
	&lt;br /&gt;
	suma&amp;lt;-0;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		//Acumulo la nota per calcular la mitjana&lt;br /&gt;
		suma&amp;lt;-suma+notes[index];&lt;br /&gt;
		//Actualitzo la nota màxima si en trobo una de més gran&lt;br /&gt;
		Si notes[index]&amp;gt;nota_max Entonces&lt;br /&gt;
			nota_max&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		//Actualitzo la nota mínima si en trobo una de més petita&lt;br /&gt;
		Si notes[index]&amp;lt;nota_min Entonces&lt;br /&gt;
			nota_min&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calculo la mitjana, tenint en compte la mida del vector&lt;br /&gt;
	nota_mitjana&amp;lt;-suma/tam_notes;&lt;br /&gt;
	//Mostro resultats&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir sin Saltar &amp;quot;Notes:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin Saltar notes[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Nota mitjana: &amp;quot;,nota_mitjana;&lt;br /&gt;
	Escribir &amp;quot;Nota màxima: &amp;quot;,nota_max;&lt;br /&gt;
	Escribir &amp;quot;Nota mínima: &amp;quot;,nota_min;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorPositiu&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir tam_vector,index,num como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Recorro el vector i vaig inicialitzant els seus elements&lt;br /&gt;
	//No faig servir un para, perquè si introdueixo un nombre negatiu sortim del bucle&lt;br /&gt;
	//També acabo el bucle si introdueixo tots els elements de vector&lt;br /&gt;
	//El nombre negatiu em serveix d'indicador que fins a aquesta posició el vector té element&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número al vector. Número &amp;quot;,index+1;&lt;br /&gt;
		Leer vector[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que index=tam_vector O vector[index-1]&amp;lt;0;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Recorro fins a la mida del vector o trobi un nombre negatiu&lt;br /&gt;
	Escribir &amp;quot;Elements del vector&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector-1 Y vector[index]&amp;gt;=0 Hacer&lt;br /&gt;
		Escribir sin saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso OrdenarVector&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir canvis,aux Como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir tam_vector Como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Inicialitzo el vector amb valors aleatoris&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 hacer&lt;br /&gt;
		vector[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Repetiré l'ordenació fins que no hagi canviat cap número&lt;br /&gt;
	Repetir &lt;br /&gt;
		canvis&amp;lt;-0;&lt;br /&gt;
		//Recorre fins a l'antepenúltim&lt;br /&gt;
		//Intercanvio els valors de dos elements consecutius si no estan ordenats&lt;br /&gt;
		Para index&amp;lt;-0 hasta tam_vector-2 Hacer&lt;br /&gt;
			Si vector[index]&amp;gt;vector[index+1] Entonces&lt;br /&gt;
				aux&amp;lt;-vector[index];&lt;br /&gt;
				vector[index]&amp;lt;-vector[index+1];&lt;br /&gt;
				vector[index+1]&amp;lt;-aux;&lt;br /&gt;
				canvis&amp;lt;-canvis+1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	Hasta Que canvis=0;&lt;br /&gt;
	//Recorro el vector ordenat&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DiesDelMes&lt;br /&gt;
	Definir dies Como Entero;&lt;br /&gt;
	Dimension dies[12];&lt;br /&gt;
	Definir nom_mes Como Caracter;&lt;br /&gt;
	Dimension nom_mes[12];&lt;br /&gt;
	Definir mes como Entero;&lt;br /&gt;
	dies[0]&amp;lt;-31;&lt;br /&gt;
	dies[1]&amp;lt;-28;&lt;br /&gt;
	dies[2]&amp;lt;-31;&lt;br /&gt;
	dies[3]&amp;lt;-30;&lt;br /&gt;
	dies[4]&amp;lt;-31;&lt;br /&gt;
	dies[5]&amp;lt;-30;&lt;br /&gt;
	dies[6]&amp;lt;-31;&lt;br /&gt;
	dies[7]&amp;lt;-31;&lt;br /&gt;
	dies[8]&amp;lt;-30;&lt;br /&gt;
	dies[9]&amp;lt;-31;&lt;br /&gt;
	dies[10]&amp;lt;-30;&lt;br /&gt;
	dies[11]&amp;lt;-31;&lt;br /&gt;
	nom_mes[0]&amp;lt;-&amp;quot;Gener&amp;quot;;&lt;br /&gt;
	nom_mes[1]&amp;lt;-&amp;quot;Febrer&amp;quot;;&lt;br /&gt;
	nom_mes[2]&amp;lt;-&amp;quot;Març&amp;quot;;&lt;br /&gt;
	nom_mes[3]&amp;lt;-&amp;quot;Abril&amp;quot;;&lt;br /&gt;
	nom_mes[4]&amp;lt;-&amp;quot;Maig&amp;quot;;&lt;br /&gt;
	nom_mes[5]&amp;lt;-&amp;quot;Juny&amp;quot;;&lt;br /&gt;
	nom_mes[6]&amp;lt;-&amp;quot;Juliol&amp;quot;;&lt;br /&gt;
	nom_mes[7]&amp;lt;-&amp;quot;Agost&amp;quot;;&lt;br /&gt;
	nom_mes[8]&amp;lt;-&amp;quot;Setembre&amp;quot;;&lt;br /&gt;
	nom_mes[9]&amp;lt;-&amp;quot;Octubre&amp;quot;;&lt;br /&gt;
	nom_mes[10]&amp;lt;-&amp;quot;Novembre&amp;quot;;&lt;br /&gt;
	nom_mes[11]&amp;lt;-&amp;quot;Desembre&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
	Leer mes;&lt;br /&gt;
	Mientras mes &amp;lt; 1 o mes &amp;gt; 12 Hacer	&lt;br /&gt;
		Escribir &amp;quot;Error: mes incorrecte.&amp;quot;;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
                Leer mes;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El mes de &amp;quot;,nom_mes[mes-1],&amp;quot; té &amp;quot;,dies[mes-1],&amp;quot; dies.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SumarVectors&lt;br /&gt;
	Definir vector1,vector2,vector3 Como Entero;&lt;br /&gt;
	Dimension vector1[5],vector2[5],vector3[5];&lt;br /&gt;
	Definir tam_vector como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-5;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector1:&amp;quot;;&lt;br /&gt;
		Leer vector1[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector2:&amp;quot;;&lt;br /&gt;
		Leer vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		vector3[index]&amp;lt;-vector1[index]+vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;La suma dels vectors és:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar vector3[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats, numAlum Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms, nom Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Mientras nom &amp;lt;&amp;gt;&amp;quot;*&amp;quot; Y index &amp;lt; tam_vector Hacer&lt;br /&gt;
	    noms[index] &amp;lt;- nom;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Diguem la seva edat:&amp;quot;;&lt;br /&gt;
		Leer edats[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
		Leer nom;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	numAlum &amp;lt;- index;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors dedat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;numAlum Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Digue'm el nom d'un alumne:&amp;quot;;&lt;br /&gt;
		Leer noms[index];&lt;br /&gt;
		Si noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Entonces&lt;br /&gt;
			Escribir sin saltar &amp;quot;Digue'm la seva edat:&amp;quot;;&lt;br /&gt;
			Leer edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que noms[index-1]=&amp;quot;*&amp;quot; o index=tam_vector;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors d'edat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ExTemperatures&lt;br /&gt;
	Definir temperatures Como Real;&lt;br /&gt;
	Dimension temperatures[5,2];&lt;br /&gt;
	Definir existeix_temperatura Como Logico;&lt;br /&gt;
	Definir index,cant_dies como Entero;&lt;br /&gt;
	Definir temp_max, temp_min como Real;&lt;br /&gt;
	cant_dies&amp;lt;-5;&lt;br /&gt;
	//Recorregut per emplenar la taula (5 dies amb temp mínima i màxima)&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mínima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura màxima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar temperatura mitjana&lt;br /&gt;
	Escribir &amp;quot;Temperatures mitjanes&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mitjana:&amp;quot;,(temperatures[index,0]+temperatures[index,1])/2;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calcular temperatura mínima més petita&lt;br /&gt;
	temp_min&amp;lt;-temperatures[0,0];&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]&amp;lt;temp_min Entonces&lt;br /&gt;
			temp_min&amp;lt;-temperatures[index,0];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar els dies amb menys temperatura&lt;br /&gt;
	Escribir &amp;quot;Dies amb menys temperatura&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;==========================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]=temp_min Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Dies amb temperatura màxima&lt;br /&gt;
	existeix_temperatura&amp;lt;-Falso;&lt;br /&gt;
	Escribir &amp;quot;Dies amb temperatura màxima&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===========================&amp;quot;;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix una temperatura:&amp;quot;;&lt;br /&gt;
	Leer temp_max;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,1]=temp_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
			existeix_temperatura&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Si no existeix_temperatura Entonces&lt;br /&gt;
		Escribir &amp;quot;No hi ha cap dia amb aquesta temperatura.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Tabla&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;Introduïu el número de la fila &amp;quot;,fila+1,&amp;quot; i columna &amp;quot;,col+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les files&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la fila &amp;quot;,fila+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les columnes&lt;br /&gt;
	Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la columna &amp;quot;,col+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Diagonal&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	//Recorro la taula &lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic en alguna diagonal inicialitzo a 1&lt;br /&gt;
			Si fila=col o fila=(num_files-1)-col Entonces&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			//No estic en diagonal, inicialitzo a 0&lt;br /&gt;
			SiNo&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CostatExtern&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,15];&lt;br /&gt;
	Definir num_files,num_cols como Entero;&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-15;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic a l'extrem esquerre, dret, superior o inferior&lt;br /&gt;
			Si fila=0 o fila=num_files-1 o col=0 o col= num_cols-1 Entonces&lt;br /&gt;
				//Inicialitzo a 1&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				//SiNo inicialitzo a 0&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
&lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dies, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
	Leer num_conductors;&lt;br /&gt;
	Mientras num_conductors&amp;gt;mida_conductors_max Hacer&lt;br /&gt;
		Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
		//El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
		Si num_conductors&amp;gt;mida_conductors_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta que num_conductors&amp;lt;=mida_conductors_max;&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::preu (taula de 3 reals), quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::suma, numMajor, articlesSucursal2, majorRec, totalSucursal, totalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Sucursals&lt;br /&gt;
	Definir preu, quantitat, suma, numMajor,articlesSucursal2, majorRec, totalSucursal, totalEmpresa Como Real;&lt;br /&gt;
	Definir indexArt, indexSucursal como Entero;&lt;br /&gt;
	&lt;br /&gt;
	Dimension preu[5], quantitat[4,5];&lt;br /&gt;
	&lt;br /&gt;
	// Llegir preus&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		Escribir 'Introdueixi el preu de larticle ',indexArt+1,': ';&lt;br /&gt;
		Leer preu[indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Llegir quantitats&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			Escribir 'Introdueixi la quantitat de larticle ',indexArt+1,', en Sucursal ',indexSucursal+1,': ';&lt;br /&gt;
			Leer quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Sumar quantitats per articles&lt;br /&gt;
	Escribir 'Quantitats per articles:';&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		suma &amp;lt;- 0;&lt;br /&gt;
		Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			suma&amp;lt;-quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Total article ',indexArt+1,': ' ,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Informar total articles sucursal 2&lt;br /&gt;
	articlesSucursal2&amp;lt;-0;&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		articlesSucursal2&amp;lt;-articlesSucursal2+quantitat[1,indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Total Sucursal 2:',articlesSucursal2;&lt;br /&gt;
	&lt;br /&gt;
	// Informar Sucursal 1, Article 3:&lt;br /&gt;
	Escribir 'Sucursal 1, Article 3: ',quantitat[0,2];&lt;br /&gt;
	&lt;br /&gt;
	// Acumular total de cada sucursal (totalSucursal) i&lt;br /&gt;
	// total de la empresa (totalEmpresa)&lt;br /&gt;
	majorRec&amp;lt;-0;&lt;br /&gt;
	numMajor&amp;lt;-0;&lt;br /&gt;
	totalEmpresa&amp;lt;-0;&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		totalSucursal&amp;lt;-0;&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			totalSucursal&amp;lt;-totalSucursal+(quantitat[indexSucursal,indexArt]*preu[indexArt]);&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Recaudacions Sucursal ',indexSucursal+1,': ',totalSucursal;&lt;br /&gt;
		//Calculo la sucursal amb més recaudació&lt;br /&gt;
		Si totalSucursal&amp;gt;majorRec entonces&lt;br /&gt;
			majorRec&amp;lt;-totalSucursal;&lt;br /&gt;
			numMajor&amp;lt;-indexSucursal+1;&lt;br /&gt;
		FinSi&lt;br /&gt;
		totalEmpresa&amp;lt;-totalEmpresa+totalSucursal;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Recaudació total de la empresa: ',totalEmpresa;&lt;br /&gt;
	Escribir 'Sucursal de Major Recaudació: ',numMajor;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Travessa&lt;br /&gt;
	Definir index, numEquips Como Entero;&lt;br /&gt;
	Definir equips Como Caracter;&lt;br /&gt;
	Dimension equips[15,2];&lt;br /&gt;
	Definir resultats Como Entero;&lt;br /&gt;
	Dimension resultats[15,2];&lt;br /&gt;
	numEquips&amp;lt;-15;&lt;br /&gt;
	//Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit&lt;br /&gt;
	Para index&amp;lt;-0 hasta numEquips-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 1 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 2 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,1];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,0],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,1],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;TRAVESSA&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;========&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	// Recorro les taules, mostro el nom dels equips i el resultat del partit (per a cada partit)&lt;br /&gt;
	// Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
	// Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
	// Una X si hi ha empat&lt;br /&gt;
	Para index&amp;lt;-0 hasta num_equipos-1 Hacer&lt;br /&gt;
		Si resultados[index,0]&amp;gt;resultados[index,1] Entonces&lt;br /&gt;
			Escribir equipos[index,0], &amp;quot; - &amp;quot;,equipos[index,0],&amp;quot; -&amp;gt; 1&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si resultats[index,0]&amp;lt;resultats[index,1] Entonces&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; 2&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; X&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/// Programa per convertir nombres entre decimal i binari&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio, nombre Como Entero;&lt;br /&gt;
	Definir binari Como Cadena;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions&lt;br /&gt;
        Escribir &amp;quot;1. Convertir de decimal a binari&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Convertir de binari a decimal&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Convertir un nombre decimal a binari&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre enter: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer nombre;&lt;br /&gt;
                Escribir &amp;quot;En binari: &amp;quot;, ConvertirABinari(nombre);&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Convertir un nombre binari a decimal&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre en binari: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer binari;&lt;br /&gt;
                Si EsBinari(binari) Entonces&lt;br /&gt;
                    Escribir &amp;quot;En decimal: &amp;quot;, ConvertirADecimal(binari);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: No és un nombre binari vàlid.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:;&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre decimal a binari&lt;br /&gt;
Funcion binari &amp;lt;- ConvertirABinari(nombre)&lt;br /&gt;
    Definir binari Como Cadena;&lt;br /&gt;
    binari &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
    Si nombre = 0 Entonces&lt;br /&gt;
        binari &amp;lt;- &amp;quot;0&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    // Aplicar el mètode de divisió successiva per obtenir la representació binària&lt;br /&gt;
    Mientras nombre &amp;gt; 0 Hacer&lt;br /&gt;
        binari &amp;lt;- Concatenar(ConvertirATexto(nombre mod 2), binari);&lt;br /&gt;
        nombre &amp;lt;- trunc(nombre / 2);&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre binari a decimal&lt;br /&gt;
Funcion decimal &amp;lt;- ConvertirADecimal(binari)&lt;br /&gt;
    Definir decimal, i, pot2 Como Entero;&lt;br /&gt;
    decimal &amp;lt;- 0;&lt;br /&gt;
    pot2 &amp;lt;- 1;&lt;br /&gt;
    i &amp;lt;- longitud(binari) - 1;&lt;br /&gt;
    Mientras i &amp;gt;= 0 Hacer&lt;br /&gt;
        // Multiplicar cada bit pel seu pes i sumar al resultat&lt;br /&gt;
        decimal &amp;lt;- decimal + ConvertirANumero(subcadena(binari, i, i)) * pot2;&lt;br /&gt;
        pot2 &amp;lt;- pot2 * 2;&lt;br /&gt;
        i &amp;lt;- i - 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per verificar si una cadena és un nombre binari vàlid&lt;br /&gt;
Funcion esValid &amp;lt;- EsBinari(binari)&lt;br /&gt;
    Definir esValid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    esValid &amp;lt;- Verdadero;&lt;br /&gt;
    i &amp;lt;- 0;&lt;br /&gt;
    // Comprovar que tots els caràcters són '0' o '1'&lt;br /&gt;
    Mientras i &amp;lt; longitud(binari) Y esValid Hacer&lt;br /&gt;
        Si no (subcadena(binari, i, i) = &amp;quot;0&amp;quot; O subcadena(binari, i, i) = &amp;quot;1&amp;quot;) Entonces&lt;br /&gt;
            esValid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
        i &amp;lt;- i + 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Programa per gestionar DNI: obtenir la lletra, validar un DNI i sortir&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio Como Entero;&lt;br /&gt;
	Definir numeroDNI, dni Como Cadena;&lt;br /&gt;
    opcio &amp;lt;- 0;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions &lt;br /&gt;
        Escribir &amp;quot;1. Obtenir lletra DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Validar DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
                Escribir &amp;quot;Introdueix el número del DNI (8 dígits): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer numeroDNI;&lt;br /&gt;
                Si validarNumeroDNI(numeroDNI) Entonces&lt;br /&gt;
                    Escribir &amp;quot;La lletra corresponent és: &amp;quot;, obtenirLletraDNI(numeroDNI);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El número de DNI ha de tenir 8 dígits numèrics.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Validar si un DNI complet (número i lletra) és correcte&lt;br /&gt;
                Escribir &amp;quot;Introdueix el DNI complet (8 dígits i 1 lletra): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer dni;&lt;br /&gt;
                Si validarDNI(dni) Entonces&lt;br /&gt;
                    Si esDNIValid(dni) Entonces&lt;br /&gt;
                        Escribir &amp;quot;El DNI és vàlid.&amp;quot;;&lt;br /&gt;
                    Sino&lt;br /&gt;
                        Escribir &amp;quot;El DNI no és vàlid.&amp;quot;;&lt;br /&gt;
                    FinSi&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El format del DNI no és correcte.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:&lt;br /&gt;
                // Finalitzar el programa&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un número de DNI té exactament 8 dígits numèrics&lt;br /&gt;
Funcion es_valid &amp;lt;- validarNumeroDNI(numero)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(numero) &amp;lt;&amp;gt; 8 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        i &amp;lt;- 0;&lt;br /&gt;
        Mientras i &amp;lt; 8 Y es_valid Hacer&lt;br /&gt;
            // Comprovar que cada caràcter és un dígit&lt;br /&gt;
            Si no (subcadena(numero, i, i) &amp;gt;= '0' Y subcadena(numero, i, i) &amp;lt;= '9') Entonces&lt;br /&gt;
				es_valid &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
            i &amp;lt;- i + 1;&lt;br /&gt;
        FinMientras&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un DNI complet té el format correcte (8 dígits + 1 lletra)&lt;br /&gt;
Funcion es_valid &amp;lt;- validarDNI(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(dni) &amp;lt;&amp;gt; 9 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        es_valid &amp;lt;- validarNumeroDNI(subcadena(dni,0,7);&lt;br /&gt;
        // Comprovar que l'últim caràcter és una lletra majúscula&lt;br /&gt;
        Si no (Mayusculas(subcadena(dni, 8, 8)) &amp;gt;= 'A') Y (Mayusculas(subcadena(dni, 8, 8)) &amp;lt;= 'Z') Entonces&lt;br /&gt;
            es_valid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
Funcion lletra &amp;lt;- obtenirLletraDNI(numero) &lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    Definir lletres Como Cadena;&lt;br /&gt;
    lletres &amp;lt;- &amp;quot;TRWAGMYFPDXBNJZSQVHLCKE&amp;quot;;&lt;br /&gt;
    Definir index Como Entero;&lt;br /&gt;
    // Calcular la lletra en base al residu del número de DNI dividit per 23&lt;br /&gt;
    index &amp;lt;- ConvertirANumero(numero) mod 23;&lt;br /&gt;
    lletra &amp;lt;- subcadena(lletres, index, index);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per comprovar si un DNI és vàlid comparant la lletra calculada amb la introduïda&lt;br /&gt;
Funcion es_valid &amp;lt;- esDNIValid(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir numero Como Cadena;&lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    // Separar el número i la lletra del DNI&lt;br /&gt;
    numero &amp;lt;- subcadena(dni, 0, 7);&lt;br /&gt;
    lletra &amp;lt;- mayusculas(subcadena(dni, 8, 8));&lt;br /&gt;
    // Validar el número i comparar la lletra calculada&lt;br /&gt;
    es_valid &amp;lt;- lletra = obtenirLletraDNI(numero);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EndevinarNumero&lt;br /&gt;
	Definir limit_inferior, limit_superior, elmeunumero Como Entero;&lt;br /&gt;
	Definir opcio como Caracter;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	intents&amp;lt;-0;	&lt;br /&gt;
	//Es demana el primer interval&lt;br /&gt;
	ObtenirLimits(limit_inferior, limit_superior);&lt;br /&gt;
	//Es va repetint fins que s'encerti el número&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Escrivim el número proposat (què serà el número intermedi de l'interval)&lt;br /&gt;
		elmeunumero&amp;lt;-generarNumero(limit_inferior,limit_superior);&lt;br /&gt;
		Escribir &amp;quot;Has pensant en el número?:&amp;quot;, elmeunumero;&lt;br /&gt;
		//Incrementem el nombre d'intents&lt;br /&gt;
		intents&amp;lt;-intents+1;&lt;br /&gt;
		//Llegim l'opció, si no heu encertat es modifica alguns dels límits i es torna a proposar un nou número&lt;br /&gt;
		opcio&amp;lt;-LlegirOpcio();&lt;br /&gt;
		Si no Mayusculas(opcio)=&amp;quot;S&amp;quot; Entonces&lt;br /&gt;
			actualitzarLimits(opcio, elmeunumero, limit_inferior, limit_superior);&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot;;&lt;br /&gt;
	//S'escriu els intents que ha necessitat per encertar-ho&lt;br /&gt;
	Escribir &amp;quot;Ho he encertat en &amp;quot;,intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion num &amp;lt;- generarNumero(liminf,limsup)&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	num&amp;lt;-Trunc((liminf+limsup)/2);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- llegirOpcio&lt;br /&gt;
	Definir opcio Como Caracter;&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;¿Es correcte?&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;S: si es correcte.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;A: si es més alt que el número a endevinar.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;B: si es més baix que el número a enevinar.&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot; o Mayusculas(opcio)=&amp;quot;A&amp;quot; o Mayusculas(opcio)=&amp;quot;B&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion actualitzarLimits(opcio, num, liminf Por Referencia, limsup Por Referencia)&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
		liminf&amp;lt;-num + 1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		limsup&amp;lt;-num - 1;&lt;br /&gt;
	FinSi             &lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion  ObtenirLimits(liminf Por Referencia, limsup por Referencia)&lt;br /&gt;
Escribir &amp;quot;Pensa un número...&amp;quot;;&lt;br /&gt;
//Es demana el primer interval&lt;br /&gt;
Escribir &amp;quot;Necessito saber linterval on es troba el número:&amp;quot;;&lt;br /&gt;
	Repetir&lt;br /&gt;
		liminf &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit inferior: &amp;quot;);&lt;br /&gt;
		limsup &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit superior: &amp;quot;);	&lt;br /&gt;
	Hasta Que liminf &amp;lt; limsup;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion limit &amp;lt;- llegirLimit(missatge) &lt;br /&gt;
    Definir limit Como Entero;&lt;br /&gt;
    Repetir&lt;br /&gt;
		Escribir missatge Sin Saltar;&lt;br /&gt;
		Leer limit;&lt;br /&gt;
    Hasta Que limit &amp;gt; 0;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/ Programa que gestiona l'inici de sessió amb un màxim de 3 intents&lt;br /&gt;
&lt;br /&gt;
Proceso GestioLogin&lt;br /&gt;
    Definir user, password Como Cadena;&lt;br /&gt;
    Definir intents Como Entero;&lt;br /&gt;
    Definir accedit Como Logico;&lt;br /&gt;
    intents &amp;lt;- 0;  // Inicialitzem el comptador d'intents&lt;br /&gt;
    accedit &amp;lt;- Falso;  // Inicialment, l'usuari no ha accedit correctament&lt;br /&gt;
	&lt;br /&gt;
    // Bucle que permet a l'usuari intentar accedir fins a 3 vegades&lt;br /&gt;
    Mientras intents &amp;lt; 3 Y NO accedit Hacer&lt;br /&gt;
	LlegirCredencials(user, password);  // Demanem les credencials a l'usuari&lt;br /&gt;
	accedit &amp;lt;- Login(user, password, intents);  // Intentem fer login&lt;br /&gt;
	&lt;br /&gt;
	// Si l'usuari ha fallat, mostrem missatge d'error i intents restants&lt;br /&gt;
	Si NO accedit Entonces&lt;br /&gt;
		Escribir &amp;quot;Usuari o contrasenya incorrectes. Intents restants: &amp;quot;, 3 - intents;&lt;br /&gt;
	FinSi&lt;br /&gt;
    FinMientras&lt;br /&gt;
	&lt;br /&gt;
    // Un cop acabats els intents, mostrem el missatge final&lt;br /&gt;
    MostrarMissatgeFinal(accedit);&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Procediment per llegir les credencials de l'usuari&lt;br /&gt;
Funcion LlegirCredencials(user Por Referencia, password Por Referencia)&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom dusuari:&amp;quot;;&lt;br /&gt;
    Leer user;&lt;br /&gt;
    Escribir &amp;quot;Introdueix la contrasenya:&amp;quot;;&lt;br /&gt;
    Leer password;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció que comprova si l'usuari i la contrasenya són correctes&lt;br /&gt;
// També incrementa el nombre d'intents si l'autenticació falla&lt;br /&gt;
Funcion validar&amp;lt;-Login(user, password, intents Por Referencia)&lt;br /&gt;
    Definir validar Como Logico;&lt;br /&gt;
    Si user = &amp;quot;user1&amp;quot; Y password = &amp;quot;1@-27&amp;quot; Entonces&lt;br /&gt;
        validar &amp;lt;- Verdadero; // Si les credencials són correctes, retornem Cert;&lt;br /&gt;
    Sino&lt;br /&gt;
        intents &amp;lt;- intents + 1;  // Si són incorrectes, incrementem el comptador d'intents&lt;br /&gt;
        validar &amp;lt;- Falso;  // Retornem Fals per indicar que no s'ha pogut iniciar sessió&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Procediment que mostra un missatge final segons si l'usuari ha accedit correctament o no&lt;br /&gt;
Funcion MostrarMissatgeFinal(accedit)&lt;br /&gt;
    Si accedit Entonces&lt;br /&gt;
        Escribir &amp;quot;Accés concedit!&amp;quot;;  // Si l'usuari ha entrat correctament, ho indiquem&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;Has superat el nombre dintents permesos. Accés denegat.&amp;quot;;  // Si ha esgotat els intents, deneguem l'accés&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Convertir_Temps&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
		opcio &amp;lt;- Menu();&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir &amp;quot;Total en segons: &amp;quot;, A_Seconds();&lt;br /&gt;
			2:&lt;br /&gt;
				Definir h, m, s Como Entero;&lt;br /&gt;
				A_HMS(h, m, s);&lt;br /&gt;
				Escribir &amp;quot;Hores: &amp;quot;, h, &amp;quot; Minuts: &amp;quot;, m, &amp;quot; Segons: &amp;quot;, s;&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Sortint del programa...&amp;quot;;&lt;br /&gt;
		Fin Segun;&lt;br /&gt;
	Hasta Que opcio = 3;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- Menu&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
	Escribir &amp;quot;Menú dopcions:&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;1. Convertir hores, minuts i segons a segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2. Convertir segons a hores, minuts i segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Selecciona una opció (1-3):&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que opcio &amp;gt;= 1 Y opcio &amp;lt;= 3;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion segons &amp;lt;- A_Seconds&lt;br /&gt;
	Definir h, m, s, segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix hores, minuts i segons: &amp;quot;;&lt;br /&gt;
	Leer h, m, s;&lt;br /&gt;
	segons &amp;lt;- (h * 3600) + (m * 60) + s;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion A_HMS(h Por Referencia, m Por Referencia, s Por Referencia )&lt;br /&gt;
	Definir segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix segons: &amp;quot;;&lt;br /&gt;
	Leer segons;&lt;br /&gt;
	h &amp;lt;- Trunc(segons / 3600);&lt;br /&gt;
	m &amp;lt;- Trunc((segons % 3600) / 60);&lt;br /&gt;
	s &amp;lt;- (segons % 3600) % 60;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirAPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment IncialitzarPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Recorre el vector i inicialitza els seus elements a *. &lt;br /&gt;
//El * representa que l'element és buit.&lt;br /&gt;
//Paràmetres d'entrada: Grandària del vector&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion InicialitzarPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	Para i&amp;lt;-0 hasta size_pila-1 Hacer&lt;br /&gt;
		pila[i]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció LongitudPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un comptador amb els elements de la pila.&lt;br /&gt;
//Recorre el vector mentre no troba un * o arriba al final.&lt;br /&gt;
//Paràmetres d'entrada: mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion size &amp;lt;- LongitudPila(pila,size_pila)&lt;br /&gt;
	Definir size Como Entero;&lt;br /&gt;
	size&amp;lt;-0;&lt;br /&gt;
	Mientras size&amp;lt;size_pila Y pila[size]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		size&amp;lt;-size+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaBuidaPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un valor lògic indicant si la pila és buida.&lt;br /&gt;
//Està buida si la longitud és 0.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultat &amp;lt;- EstaBuidaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=0 Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaPlenaPila: Rep un vector (pila) i la seva mida.&lt;br /&gt;
//Retorna un valor lògic indicant si la pila és plena.&lt;br /&gt;
//Està plena si la longitud és igual a la mida del vector.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultadt &amp;lt;- EstaPlenaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=size_pila Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment AfegirAPilaPila: Rep un vector (pila), la seva mida i un element (cadena)&lt;br /&gt;
//Si no està plena, afegeix l'element a la següent posició buida,&lt;br /&gt;
//l'index del qual és igual a la Longitud de la pila.&lt;br /&gt;
//Si és plena, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion AfegirAPila(cad, pila Por Referencia,size_pila)&lt;br /&gt;
	Si no EstaPlenaPila(pila,size_pila) Entonces&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)]&amp;lt;-cad;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot afegir element. La pila és plena&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció TreureDeLaPila: Rep un vector (pila), la seva mida i torna &lt;br /&gt;
//l'element que s'ha introduït en darrer lloc, si no és buida.&lt;br /&gt;
//L'índex d'aquest element serà la longitud de la pila - 1&lt;br /&gt;
//L'element en aquesta posició es buida, és a dir, s'inicialitza a &amp;quot;*&amp;quot;.&lt;br /&gt;
//Si és buida, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//Dada retornada: L'element&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion cad &amp;lt;- TreureDeLaPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir cad Como Caracter;&lt;br /&gt;
	Si no EstaBuidaPila(pila,size_pila) Entonces&lt;br /&gt;
		cad &amp;lt;- pila[LongitudPila(pila,size_pila)-1];&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)-1]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot treure element. La pila és buida&amp;quot;;&lt;br /&gt;
		cad&amp;lt;-&amp;quot;&amp;quot;;	&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EscriurePila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Mostra els elements del vector fins que arribi al final o es trobi un *.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion EscriurePila(pila,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	i&amp;lt;-0;&lt;br /&gt;
	Mientras i&amp;lt;size_pila y pila[i]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Escribir Sin Saltar pila[i],&amp;quot; &amp;quot;;&lt;br /&gt;
		i&amp;lt;-i+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Realitza un programa principal que ens permeti utilitzar funcions per manipular piles.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso ProgramaPila&lt;br /&gt;
	Definir lamevapila Como Caracter;&lt;br /&gt;
	Dimension lamevapila[10];&lt;br /&gt;
	Definir mida_pila como Entero;&lt;br /&gt;
	Definir element Como Caracter;&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	mida_pila&amp;lt;-10;&lt;br /&gt;
	InicialitzarPila(lamevapila,mida_pila);&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;1.- Afegir element a la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2.- Treure element de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3.- Longitud de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;4.- Mostrar pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;5.- Sortir&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir sin Saltar &amp;quot;Nom de la cadena per afegir a la pila:&amp;quot;;&lt;br /&gt;
				Leer element;&lt;br /&gt;
				AfegirAPila(element,lamevapila,mida_pila);&lt;br /&gt;
			2:&lt;br /&gt;
				Escribir TreureDeLaPila(lamevapila,mida_pila);&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Longitud: &amp;quot;,LongitudPila(lamevapila,mida_pila);&lt;br /&gt;
			4:&lt;br /&gt;
				EscriurePila(lamevapila,mida_pila);&lt;br /&gt;
			5:&lt;br /&gt;
				&lt;br /&gt;
			De Otro Modo:&lt;br /&gt;
				Escribir &amp;quot;Opció incorrecta&amp;quot;;&lt;br /&gt;
		FinSegun&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que opcio=5;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaRepetit: Rep un número i un vector de quatre números i comprova&lt;br /&gt;
// si el número està en el vector.&lt;br /&gt;
//Paràmetre d'entrada: Número i vector&lt;br /&gt;
//Dada retornada: Valor lògic: Vertader si el número està en el vector i fals si no.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion repetit &amp;lt;- EstaRepetit(num, vector)&lt;br /&gt;
	Definir repetit Como Logico;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	repetit &amp;lt;- Falso;&lt;br /&gt;
	Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si num = vector[index] Entonces&lt;br /&gt;
			repetit &amp;lt;- Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment GenerarSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//no repetits&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion GenerarSequencia(vector Por Referencia)&lt;br /&gt;
Definir index Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[index] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		num &amp;lt;- Aleatorio(0, 9);&lt;br /&gt;
	Hasta Que No EstaRepetit(num, vector);&lt;br /&gt;
	vector[index] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment LlegirSequencia: Rep un vector que s'inicialitza amb 4 enters&lt;br /&gt;
//llegits per teclat per l'usuari, assegurant que no s'introdueix cap repetit.&lt;br /&gt;
//Paràmetre d'entrada i sortida: Vector de 4 enters&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion LlegirSequencia(vector Por Referencia)&lt;br /&gt;
Definir i Como Entero;&lt;br /&gt;
Definir num Como Entero;&lt;br /&gt;
Definir repetit Como Logico;&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	vector[i] &amp;lt;- -1;&lt;br /&gt;
FinPara&lt;br /&gt;
Para i &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Número &amp;quot;, i+1, &amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		repetit &amp;lt;- EstaRepetit(num, vector);&lt;br /&gt;
		Si repetit Entonces&lt;br /&gt;
			Escribir &amp;quot;No has dindicar números repetits.&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que No repetit;&lt;br /&gt;
	vector[i] &amp;lt;- num;&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment ComprovarSequencia: Rep dos vectors, el secret i l'introduït&lt;br /&gt;
//per l'usuari i retorna el nombre de coincidències en la mateixa posició (encerts)&lt;br /&gt;
//i les coincidències en posicions diferents (aproximacions).&lt;br /&gt;
//Paràmetres d'entrada: Dos vectors&lt;br /&gt;
//Paràmetre d'entrada i sortida: encerts i aproximacions&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion ComprovarSequencia(secret, usuari, e Por Referencia, a Por Referencia)&lt;br /&gt;
Definir index_secret Como Entero;&lt;br /&gt;
Definir index_usuari Como Entero;&lt;br /&gt;
Para index_secret &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
	Para index_usuari &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
		Si secret[index_secret] = usuari[index_usuari] Entonces&lt;br /&gt;
			Si index_secret = index_usuari Entonces&lt;br /&gt;
				e &amp;lt;- e + 1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				a &amp;lt;- a + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Programem el joc &amp;quot;Mastermind&amp;quot;: el programa escull un número de quatre xifres&lt;br /&gt;
//sense repeticions que el jugador ha d'endevinar.&lt;br /&gt;
// * ENCERTS: dígits correctes en la mateixa posició.&lt;br /&gt;
// * APROXIMACIONS: dígits correctes però en posició incorrecta.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso Mastermind&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	Definir numero Como Cadena;&lt;br /&gt;
	Definir resultats Como Cadena;&lt;br /&gt;
	Dimension resultats[100];&lt;br /&gt;
	Dimension secret[4];&lt;br /&gt;
	Dimension usuari[4];&lt;br /&gt;
	Definir secret Como Entero;&lt;br /&gt;
	Definir usuari Como Entero;&lt;br /&gt;
	Definir encerts Como Entero;&lt;br /&gt;
	Definir aproximacions Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	GenerarSequencia(secret);&lt;br /&gt;
	intents &amp;lt;- 0;&lt;br /&gt;
	Repetir&lt;br /&gt;
		LlegirSequencia(usuari);&lt;br /&gt;
		encerts &amp;lt;- 0;&lt;br /&gt;
		aproximacions &amp;lt;- 0;&lt;br /&gt;
		ComprovarSequencia(secret, usuari, encerts, aproximacions);&lt;br /&gt;
		numero &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
		Para index &amp;lt;- 0 Hasta 3 Hacer&lt;br /&gt;
			numero &amp;lt;- Concatenar(numero, ConvertirATexto(usuari[index]));&lt;br /&gt;
		FinPara&lt;br /&gt;
		resultats[intents] &amp;lt;- Concatenar(numero, Concatenar(&amp;quot; - ENCERTS: &amp;quot;, Concatenar(ConvertirATexto(encerts), Concatenar(&amp;quot; - APROXIMACIONS: &amp;quot;, ConvertirATexto(aproximacions)))));&lt;br /&gt;
		Borrar Pantalla;&lt;br /&gt;
		Para index &amp;lt;- intents Hasta 0 Con Paso -1 Hacer&lt;br /&gt;
			Escribir resultats[index];&lt;br /&gt;
		FinPara&lt;br /&gt;
		intents &amp;lt;- intents + 1;&lt;br /&gt;
	Hasta Que encerts = 4;&lt;br /&gt;
	Escribir &amp;quot;Felicitats! Has endevinat el número en &amp;quot;, intents, &amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el&lt;br /&gt;
programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso bacteris&lt;br /&gt;
    Definir generacio_actual, seguent_generacio, temp_matriu Como Entero;&lt;br /&gt;
	Dimension generacio_actual[30,30], seguent_generacio[30,30], temp_matriu[30,30];&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    Definir iteracions, i, j Como Entero;&lt;br /&gt;
	&lt;br /&gt;
    iteracions &amp;lt;- 0;&lt;br /&gt;
    estable &amp;lt;- Falso;&lt;br /&gt;
	&lt;br /&gt;
    GenerarGeneracioInicial(generacio_actual);&lt;br /&gt;
    MostrarGeneracio(generacio_actual);&lt;br /&gt;
	&lt;br /&gt;
    Mientras No estable Y iteracions &amp;lt; 500 Hacer&lt;br /&gt;
        GenerarSeguentGeneracio(generacio_actual, seguent_generacio);&lt;br /&gt;
        estable &amp;lt;- CompararGeneracions(generacio_actual, seguent_generacio);&lt;br /&gt;
        &lt;br /&gt;
        // Copiem seguent_generacio a generacio_actual&lt;br /&gt;
        Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
				generacio_actual[i,j] &amp;lt;- seguent_generacio[i,j];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
&lt;br /&gt;
iteracions &amp;lt;- iteracions + 1;&lt;br /&gt;
FinMientras&lt;br /&gt;
&lt;br /&gt;
MostrarGeneracio(generacio_actual);&lt;br /&gt;
Escribir &amp;quot;Nombre diteracions fins estabilització: &amp;quot;, iteracions;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Omple la matriu amb valors 0 o 1 aleatoris&lt;br /&gt;
SubProceso GenerarGeneracioInicial(matriu Por Referencia)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
            matriu[i,j] &amp;lt;- Aleatorio(0,1);&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Mostra per pantalla la generació&lt;br /&gt;
SubProceso MostrarGeneracio(matriu)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Escribir Sin Saltar matriu[i,j], &amp;quot; &amp;quot;;&lt;br /&gt;
        FinPara&lt;br /&gt;
        Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
    FinPara&lt;br /&gt;
    Escribir &amp;quot;------------------------------&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Genera la nova generació segons les regles&lt;br /&gt;
SubProceso GenerarSeguentGeneracio(actual, nova Por Referencia)&lt;br /&gt;
    Definir i, j, v Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            v &amp;lt;- ComptarVeins(actual, i, j);&lt;br /&gt;
            Si actual[i,j] = 1 Entonces&lt;br /&gt;
                Si v = 2 O v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Supervivència&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Mort (solitud o asfíxia)&lt;br /&gt;
                FinSi&lt;br /&gt;
            Sino&lt;br /&gt;
                Si v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Naixement&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Continua buida&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Compta quants veïns vius hi ha al voltant de (x, y)&lt;br /&gt;
Funcion count &amp;lt;- ComptarVeins(matriu, x, z)&lt;br /&gt;
    Definir dx, dz, i, j, count Como Entero;&lt;br /&gt;
    count &amp;lt;- 0;&lt;br /&gt;
    Para dx &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para dz &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si No (dx = 0 Y dz = 0) Entonces&lt;br /&gt;
                i &amp;lt;- x + dx;&lt;br /&gt;
                j &amp;lt;- z + dz;&lt;br /&gt;
                Si i &amp;gt;= 0 Y i &amp;lt;= 29 Y j &amp;gt;= 0 Y j &amp;lt;= 29 Entonces&lt;br /&gt;
                    count &amp;lt;- count + matriu[i,j];&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Compara dues generacions per veure si són iguals&lt;br /&gt;
Funcion estable &amp;lt;- CompararGeneracions(gen1, gen2)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    estable &amp;lt;- Verdadero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si gen1[i,j] &amp;lt;&amp;gt; gen2[i,j] Entonces&lt;br /&gt;
                estable &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
   &lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19288</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19288"/>
				<updated>2026-04-13T13:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un nom per teclat i després escriure un missatge de salutació&lt;br /&gt;
::Dades d'entrada: nom (cadena)&lt;br /&gt;
::Variables: nom (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nom&lt;br /&gt;
::2. Escriure missatge de salutació&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Saludar&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Escribir &amp;quot;Diguem el teu nom:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Hola &amp;quot;,nom;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la base i l'alçada del triangle i calcular el perímetre i el àrea&lt;br /&gt;
::Dades d'entrada: base(real), alçada(real)&lt;br /&gt;
::Informació de sortida: perímetre(real) i àrea(real)&lt;br /&gt;
::Variables: base, alçada, perímetre i àrea (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir base i altura&lt;br /&gt;
::2. Calcular perímetre(2*base + 2*alçada)&lt;br /&gt;
::3. Calcular àrea (base * altura&lt;br /&gt;
::4. Mostrar perímetre i àrea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Rectangle&lt;br /&gt;
	Definir base,alcada,perimetre,area como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la base:&amp;quot;;&lt;br /&gt;
	Leer base;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la alçada:&amp;quot;;&lt;br /&gt;
	Leer alcada;&lt;br /&gt;
	perimetre &amp;lt;- 2 * base + 2 * alcada;&lt;br /&gt;
	area &amp;lt;- base * alcada;&lt;br /&gt;
	Escribir &amp;quot;El perí­metre és &amp;quot;,perimetre,&amp;quot; y el àrea es &amp;quot;,area;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la longitud dels dos catets i calcular la hipotenusa. &lt;br /&gt;
::(Teorema de Pitàgores)&lt;br /&gt;
::Variables d'entrada: catet1(real), catet2(real)&lt;br /&gt;
::Variables de sortida: hipotenusa(real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir la longitud dels catets&lt;br /&gt;
::2. Calcular hipotenusa (En un triangle rectangle el quadrat de la hipotenusa  és igual a la suma dels quadrats dels catets.)&lt;br /&gt;
::Per tant la hipotenusa és igual a l'arrel quadrada de la suma dels quadrats dels catets (funció raiz).&lt;br /&gt;
::3. Mostrar la hipotenusa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHipotenusa&lt;br /&gt;
	Definir catet1,catet2,hipotenusa como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el catet 1:&amp;quot;;&lt;br /&gt;
	Leer catet1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la catet 2:&amp;quot;;&lt;br /&gt;
	Leer catet2;&lt;br /&gt;
	hipotenusa &amp;lt;- raiz(catet1 ^ 2 + catet2 ^ 2);&lt;br /&gt;
	Escribir &amp;quot;La hipotenusa és &amp;quot;, hipotenusa;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algorisme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir dos números, calcular la suma, resta, multiplicació i divisió. &lt;br /&gt;
::Dades d'entrada: Els dos números (real)&lt;br /&gt;
::Informació de sortida: suma, resta, multiplicació, divisió(real)&lt;br /&gt;
::Variables: num1, num2 (Real). &lt;br /&gt;
::Considero que les sortides no cal desar-la en variables.&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els números&lt;br /&gt;
::2. Mostrar suma, resta, multiplicació i divisió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Calcular&lt;br /&gt;
   Definir num1,num2 Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir &amp;quot;La suma &amp;quot;, num1+num2;&lt;br /&gt;
   Escribir &amp;quot;La resta és &amp;quot;, num1-num2;&lt;br /&gt;
   Escribir &amp;quot;La multiplicació és &amp;quot;, num1*num2;&lt;br /&gt;
   Escribir &amp;quot;La divisió és &amp;quot;, num1/num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir tres números i calcular la mitjana. Suma dels tres partits 3.&lt;br /&gt;
::Dades d'entrada: els tres números (real)&lt;br /&gt;
::Informació de sortida: la mitjana (real)&lt;br /&gt;
::Variables: num1,num2,num3, mitjana (Real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els tres números&lt;br /&gt;
::2. Calcular la mitjana: (num1+num2+num3)/3&lt;br /&gt;
:.3. Mostrar la mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularMitjana&lt;br /&gt;
   Definir num1,num2,num3, mitjana Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 3:&amp;quot;;&lt;br /&gt;
   Leer num3;&lt;br /&gt;
   mitjana &amp;lt;- (num1 + num2 + num3) /3;&lt;br /&gt;
   Escribir &amp;quot;La mitjana és &amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.&lt;br /&gt;
::Dades d'entrada: minuts (entero)&lt;br /&gt;
::Informació de sortida:hores i minuts (entero)&lt;br /&gt;
::Variables: minuts, res_hores, res_minuts (entero).&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir els minuts&lt;br /&gt;
::2. Calcular a quantes hores correspon, divisió sencera entre 60.&lt;br /&gt;
::3. calcular els minuts restants: resta de la divisió entre 60.&lt;br /&gt;
::4. Mostrar hores i minuts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHoras&lt;br /&gt;
	Definir minuts, res_hores, res_min como Entero;&lt;br /&gt;
	Escribir &amp;quot;Indica la quantitat de minuts:&amp;quot;;&lt;br /&gt;
	Leer minuts;&lt;br /&gt;
	res_hores&amp;lt;-trunc(minuts / 60);&lt;br /&gt;
	res_min&amp;lt;-minuts % 60;&lt;br /&gt;
	Escribir res_hores,&amp;quot; horas i &amp;quot;,res_min,&amp;quot; minuts.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El venedor té un sou base més una comissió del 10% per cada venda. &lt;br /&gt;
::Fa tres vendes.&lt;br /&gt;
::Dades dentrada: sou base, les tres vendes (real).&lt;br /&gt;
::Informació de sortida: comissions i sou total (real).&lt;br /&gt;
::Variables: sou_base, venda1, venda2, venda3, comissió(real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir sou base&lt;br /&gt;
::2. Llegir les tres vendes&lt;br /&gt;
::3. Calculeu les comissions. Suma del 10% de cada venda.&lt;br /&gt;
::4. Mostra comissió&lt;br /&gt;
::5. Mostra sou total: sou_base+comissió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_base, venda1, venda2, venda3, comissio como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica el sou base:&amp;quot;;&lt;br /&gt;
	Leer sou_base;&lt;br /&gt;
	Escribir &amp;quot;Indica import primera venda 1:&amp;quot;;&lt;br /&gt;
	Leer venda1;&lt;br /&gt;
	Escribir &amp;quot;Indica import segona venda 2:&amp;quot;;&lt;br /&gt;
	Leer venda2;&lt;br /&gt;
	Escribir &amp;quot;Indica import tercera venda 3:&amp;quot;;&lt;br /&gt;
	Leer venda3;&lt;br /&gt;
	comissio&amp;lt;-venda1*0.1+venda2*0.1+venda3*0.1;&lt;br /&gt;
	Escribir &amp;quot;Comissió per vendes:&amp;quot;,comissio;&lt;br /&gt;
	Escribir &amp;quot;Sou total:&amp;quot;, sou_base+comissio;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final. &lt;br /&gt;
::Posteriorment es calculen els percentatges i es sumen.&lt;br /&gt;
::Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).&lt;br /&gt;
::Informació de sortida: nota final (real).&lt;br /&gt;
::Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir les notes parcials, de l'examen final i de la feina.&lt;br /&gt;
::2. Calculem la nota 55% de la mitjana de les notes parcials, més el 30% de la nota de l'examen més 15% de la nota del treball.&lt;br /&gt;
::3. Mostra nota final&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularNota&lt;br /&gt;
	Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 1:&amp;quot;;&lt;br /&gt;
	Leer parcial1;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 2:&amp;quot;;&lt;br /&gt;
	Leer parcial2;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 3:&amp;quot;;&lt;br /&gt;
	Leer parcial3;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del examen:&amp;quot;;&lt;br /&gt;
	Leer examen;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del treball:&amp;quot;;&lt;br /&gt;
	Leer treball;&lt;br /&gt;
	nota &amp;lt;- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;&lt;br /&gt;
	Escribir &amp;quot;Nota final:&amp;quot;, nota;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen el valor de dues variables (el tipus pot ser el que vulguem). &lt;br /&gt;
::Cal intercanviar els valors de les variables&lt;br /&gt;
::Dades d'entrada: dos números en dues variables (enters).&lt;br /&gt;
::Informació de sortida: Les dues variables però amb les dades canviades (enter)&lt;br /&gt;
::Variables: num1, num2 (enters).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els dos números&lt;br /&gt;
::2. Intercanvio els valors. Necessito una variable auxiliar (aux). &lt;br /&gt;
:: Assigno &amp;quot;num1&amp;quot; a &amp;quot;aux&amp;quot;, &amp;quot;num2&amp;quot; a &amp;quot;num1&amp;quot; i &amp;quot;aux&amp;quot; a &amp;quot;num2&amp;quot;&lt;br /&gt;
::3. Mostra &amp;quot;num1&amp;quot; i &amp;quot;num2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso IntercanviarVariables&lt;br /&gt;
	Definir num1,num2,aux  como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	aux &amp;lt;- num1;&lt;br /&gt;
	num1 &amp;lt;- num2;&lt;br /&gt;
	num2 &amp;lt;- aux;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num1: &amp;quot;, num1;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num2: &amp;quot;, num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen la quantitat de monedes que tenim (de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) i calculem els diners que tenim (euros i cèntims)&lt;br /&gt;
::Dades d'entrada: monedes de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) (Enteros).&lt;br /&gt;
::Informació de sortida: total de diners: euros i cèntims (Enteros)&lt;br /&gt;
::Variables: euro2, euro1, cent50, cent20, cent10, total_euros, total_centims (Enteros)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el monedes de 2e, 1e, 50 cèntims, 20 cèntims i 10 cèntims.&lt;br /&gt;
::2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
::3. Calcular cèntims (monedes de 50c * 50 + moneda de 20c * 20 + moneda de 10c * 10)&lt;br /&gt;
::4. Convertir cèntims a euros (divisió sencera entre 100)&lt;br /&gt;
::5. Mostrar euros i cèntims totals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularDiners&lt;br /&gt;
	Definir euro2,euro1,cent50,cent20,cent10 como Entero;&lt;br /&gt;
	Definir total_euros, total_centims Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 2 euros:&amp;quot;;&lt;br /&gt;
	Leer euro2;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 1 euro:&amp;quot;;&lt;br /&gt;
	Leer euro1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 50 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent50;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 20 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent20;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 10 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent10;&lt;br /&gt;
	//2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
	total_euros &amp;lt;- euro2 * 2 + euro1;&lt;br /&gt;
	//3. Calcular cèntims (monedes de 50c * 50 + monedes de 20c * 20 + monedes de 10c * 10&lt;br /&gt;
	total_centims &amp;lt;- cent50 * 50 + cent20 * 20 + cent10 * 10;&lt;br /&gt;
	//4. Convertir cèntims a euros (divisió entera entre 100)&lt;br /&gt;
	total_euros &amp;lt;- total_euros + trunc(total_centims / 100);&lt;br /&gt;
	total_centims &amp;lt;- total_centims % 100;&lt;br /&gt;
	Escribir total_euros,&amp;quot; euros i &amp;quot;,total_centims,&amp;quot; cèntims.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.&lt;br /&gt;
::Dades d'entrada: número (enter)&lt;br /&gt;
::Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.&lt;br /&gt;
::Variables: num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el número&lt;br /&gt;
::2. Si el nombre és igual 0 escriviu &amp;quot;És igual a 0&amp;quot;&lt;br /&gt;
::3. En cas contrari si és més gran que 0 escriure &amp;quot;És més gran que 0&amp;quot;&lt;br /&gt;
::4. En altre cas escriure &amp;quot;És menor que 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularPositiuNegatiuZero&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Escribir &amp;quot;Digue'm el número :&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Si num=0 Entonces&lt;br /&gt;
		Escribir &amp;quot;És igual a 0&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			Escribir &amp;quot;És positiu&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Escribir &amp;quot;És negatiu&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat nom i contrasenya&lt;br /&gt;
::si coincideixen amb les correctes indiquem que s'ha entrat al sistema.&lt;br /&gt;
::en cas contrari indiquem que el nom o la clau són incorrectes&lt;br /&gt;
::Dades d'entrada: usuari, password (cadena)&lt;br /&gt;
::Informació de sortida: Missatges d'encert o error.&lt;br /&gt;
::Variables: usuari, password (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir l'usuari&lt;br /&gt;
::2. Llegir el password&lt;br /&gt;
::3. Si l'usuari és igual a &amp;quot;pcarbonell&amp;quot; i el password és igual a &amp;quot;pc1673&amp;quot; &lt;br /&gt;
::escriure &amp;quot;Has entrat al sistema&amp;quot;&lt;br /&gt;
::4. En cas contrari mostrar el missatge &amp;quot;Usuari/password incorrecte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Procéso Login&lt;br /&gt;
	Definir usuari, password como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix l'usuari:&amp;quot;;&lt;br /&gt;
	Leer usuari;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el password:&amp;quot;;&lt;br /&gt;
	Leer password;&lt;br /&gt;
	Si usuari=&amp;quot;pcarbonell&amp;quot; Y password=&amp;quot;pc1673&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Has entrat al sistema&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;Usuari/password incorrecte&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat dos números: nota i edat i un caràcter sexe.&lt;br /&gt;
::Es mostra &amp;quot;ACCEPTADA&amp;quot; si nota&amp;gt;=5, edat&amp;gt;=18 i el sexe és femení.&lt;br /&gt;
::Si es compleix les mateixes condicions però amb el sexe masculí -&amp;gt; &amp;quot;POSSIBLE&amp;quot; en cas contrari es mostra &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
::Dades d'entrada: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
::Informació de sortida: Missatge d'informació&lt;br /&gt;
::Variables: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir la nota, l'edat i el sexe&lt;br /&gt;
::2. si nota&amp;gt;=5, edat&amp;gt;=18 &lt;br /&gt;
::3. si sexe=&amp;quot;F&amp;quot; mostrar &amp;quot;ACCEPTADA&amp;quot; -&amp;gt; funció Mayusculas()&lt;br /&gt;
::4. si sexe=&amp;quot;M&amp;quot; mostrar &amp;quot;POSSIBLE&amp;quot;&lt;br /&gt;
::5. En cas contrari, mostrar &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComprovarNotaEdatSexe&lt;br /&gt;
	Definir nota,edat como Entero;&lt;br /&gt;
	Definir sexe como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la nota:&amp;quot;;&lt;br /&gt;
	Leer nota;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la edat:&amp;quot;;&lt;br /&gt;
	Leer edat;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el sexe (F/M):&amp;quot;;&lt;br /&gt;
	Leer sexe;&lt;br /&gt;
	Si nota&amp;gt;=5 Y edat&amp;gt;=18 Entonces&lt;br /&gt;
		Si Mayusculas(sexe)=&amp;quot;F&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Acceptada&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(sexe)=&amp;quot;M&amp;quot; Entonces&lt;br /&gt;
				Escribir &amp;quot;Possible&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El preu final del raïm es calcula multiplicant els quilos recollits pel preu de cada quilo. El preu per quilo es calcula a partir del preu inicial sumant o restant una quantitat determinada segons la mida i el tipus del raïm.&lt;br /&gt;
::Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)&lt;br /&gt;
::Informació de sortida: Preu final en euros (real) o missatge d'error&lt;br /&gt;
::Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir preu_inicial, quilos&lt;br /&gt;
::2. Llegir tipus&lt;br /&gt;
::3. Si tipus no és &amp;quot;A&amp;quot; o &amp;quot;B&amp;quot; tornar missatge d'error.&lt;br /&gt;
::4. Llegir la mida&lt;br /&gt;
::5. Si la mida no és &amp;quot;1&amp;quot; o &amp;quot;2&amp;quot; tornar missatge d'error.&lt;br /&gt;
::6. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;1&amp;quot; summe a preu_inicial 20 cèntims.&lt;br /&gt;
::7. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;2&amp;quot; summe a preu_inicial 30 cèntims.&lt;br /&gt;
::8. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;1&amp;quot; resta a preu_inicial 20 cèntims.&lt;br /&gt;
::9. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;2&amp;quot; resta a preu_inicial 30 cèntims.&lt;br /&gt;
::10. El preu_final = preu_inicial * quilos&lt;br /&gt;
::11. Mostra preu final/100 euros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso PreuUva&lt;br /&gt;
	Definir tipus como Caracter;&lt;br /&gt;
	Definir mida como Caracter;&lt;br /&gt;
	Definir preu_inicial,preu_final como Real;&lt;br /&gt;
	Definir quilos como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el preu inicial per quilos del UVA (cèntims):&amp;quot;;&lt;br /&gt;
	Leer preu_inicial;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix quants quilos has venut:&amp;quot;;&lt;br /&gt;
	Leer quilos;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el tipus de lUVA (A/B):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
	&lt;br /&gt;
	Si Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;A&amp;quot; Y Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Tipus incorrecte&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix la mida del UVA (1/2):&amp;quot;;&lt;br /&gt;
		Leer mida;&lt;br /&gt;
		Si mida&amp;lt;&amp;gt;&amp;quot;1&amp;quot; Y mida&amp;lt;&amp;gt;&amp;quot;2&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Mida incorrecte&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(tipus)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			SiNo&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
			preu_final&amp;lt;-preu_inicial * quilos;&lt;br /&gt;
			Escribir &amp;quot;El guany és&amp;quot;,preu_final/100, &amp;quot;euros.&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DescompteComercial&lt;br /&gt;
	&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Definir preuOriginal, descompte, preuFinal como Real;&lt;br /&gt;
	Definir codiDescompte como Entero;&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom de larticle: &amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el preu original: &amp;quot;;&lt;br /&gt;
	Leer preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi de descompte: &amp;quot;;&lt;br /&gt;
	Leer codiDescompte;&lt;br /&gt;
	&lt;br /&gt;
	Segun codiDescompte Hacer&lt;br /&gt;
		1: descompte &amp;lt;- preuOriginal * 0.10;&lt;br /&gt;
		2: descompte &amp;lt;- preuOriginal * 0.15;&lt;br /&gt;
		3: descompte &amp;lt;- preuOriginal * 0.20;&lt;br /&gt;
		De Otro Modo: descompte &amp;lt;- 0;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
	preuFinal &amp;lt;- preuOriginal - descompte;&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Article: &amp;quot;, nom;&lt;br /&gt;
	Escribir &amp;quot;Preu original: &amp;quot;, preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Descompte: &amp;quot;, descompte;&lt;br /&gt;
	Escribir &amp;quot;Preu final: &amp;quot;, preuFinal;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Area&lt;br /&gt;
	&lt;br /&gt;
	Definir figura Como Entero; &lt;br /&gt;
	Definir areaFig, costat, ample, llarg, base, alcada, radi Como Real;&lt;br /&gt;
	Escribir &amp;quot;Escull la figura geomètrica&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;1 Quadrat , 2 Rectangle , 3 Triangle , 4 Cercle&amp;quot;;&lt;br /&gt;
	Leer figura; &lt;br /&gt;
	&lt;br /&gt;
	Segun figura Hacer&lt;br /&gt;
		1 : &lt;br /&gt;
			Escribir &amp;quot;Introdueix la mida dun costat del quadrat&amp;quot;;&lt;br /&gt;
			Leer costat;&lt;br /&gt;
			areaFig &amp;lt;- costat * costat;&lt;br /&gt;
			&lt;br /&gt;
		2 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix lample del rectangle&amp;quot;;&lt;br /&gt;
			Leer ample;&lt;br /&gt;
			Escribir &amp;quot;Introdueix el llarg del rectangle&amp;quot;;&lt;br /&gt;
			Leer llarg;&lt;br /&gt;
			areaFig &amp;lt;- ample * llarg;&lt;br /&gt;
			&lt;br /&gt;
		3 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix la alçada del triangle&amp;quot;;&lt;br /&gt;
			Leer alcada;&lt;br /&gt;
			Escribir &amp;quot;Introdueix la base del triangle&amp;quot;;&lt;br /&gt;
			Leer base;&lt;br /&gt;
			areaFig &amp;lt;- (base * alcada) / 2;&lt;br /&gt;
			&lt;br /&gt;
		4 :&lt;br /&gt;
			Escribir &amp;quot;Ingrese el radio del circulo&amp;quot;;&lt;br /&gt;
		Leer radi;&lt;br /&gt;
			areaFig &amp;lt;- PI * radi * radi;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;làrea de la figura és: &amp;quot; , areaFig;	&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 False&lt;br /&gt;
b) num1=1 num2=2 False&lt;br /&gt;
c) num1=2 num2=1 False&lt;br /&gt;
d) num1=2 num2=2 True&lt;br /&gt;
e) num1=0 num2=0 False&lt;br /&gt;
f) num1=1 num2=0 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 True&lt;br /&gt;
b) num1=3 num2=4 False&lt;br /&gt;
c) num1=4 num2=3 True&lt;br /&gt;
d) num1=4 num2=4 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 True&lt;br /&gt;
b) num1=1 num2=2 num3=3 True&lt;br /&gt;
c) num1=1 num2=3 num3=2 False&lt;br /&gt;
d) num1=2 num2=1 num3=3 True&lt;br /&gt;
e) num1=2 num2=3 num3=1 False&lt;br /&gt;
f) num1=3 num2=2 num3=1 True&lt;br /&gt;
g) num1=3 num2=1 num3=2 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num4 Y num3 &amp;gt; num4) &lt;br /&gt;
&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3)&lt;br /&gt;
&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3 Y num1 !=num4) &lt;br /&gt;
&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num3 Y num2 &amp;lt; num4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
&lt;br /&gt;
   ((notaLit + notaCat + notaMat) / 3) &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
&lt;br /&gt;
  ((notaMat &amp;gt; (notaLit + notaCat + notaMat) / 3) Y (notaCat &amp;gt; (notaLit + notaCat + notaMat))&lt;br /&gt;
&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 O notaCat &amp;gt; 5 O notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 Y notaCat &amp;gt; 5 Y notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; vendesP2 Y vendesP1 &amp;gt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt;= 200 Y vendesP2&amp;gt;= 200 Y vendesP3 &amp;gt;= 200)&lt;br /&gt;
&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; 400 O vendesP2 &amp;gt; 400 O vendesP3 &amp;gt; 400)&lt;br /&gt;
&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3) / 3) &amp;gt; 500&lt;br /&gt;
&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP2 &amp;lt; vendesP1 O vendesP2 &amp;lt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3 &amp;gt;= 500) Y (vendesP1 + vendesP2 + vendesP3 &amp;lt;= 1000))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
::Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre.&lt;br /&gt;
::Informació de sortida: El resultat del factorial&lt;br /&gt;
::Variables: num, comptador (enter), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
::2. Inicialitza variables: resultat = 1&lt;br /&gt;
::3. Per a comptador=2 fins num&lt;br /&gt;
:::::4. resultat=resultat*comptador&lt;br /&gt;
::5. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador como Entero;&lt;br /&gt;
	Definir resultat como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para comptador&amp;lt;-2 Hasta num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El resultat és&amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un nombre. Si és senar, li sumo 1 i ja és parell. Llegim el segon número.&lt;br /&gt;
::Escric el número des del primer fins al segon de dos en dos.&lt;br /&gt;
::Dades d'entrada: dos números&lt;br /&gt;
::Informació de sortida: Els nombres parells que hi ha entre els dos anteriors&lt;br /&gt;
::Variables: num, num1, num2 (enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir num1,num2&lt;br /&gt;
::2. Si num1 és senar -&amp;gt; num1=num1+1&lt;br /&gt;
::3. Des de num1 fins a num2 de 2 en 2&lt;br /&gt;
::::4. Escriure el número&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso NumerosParells&lt;br /&gt;
	Definir num,num1,num2 Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	Si num1 % 2 = 1 Entonces&lt;br /&gt;
		num1&amp;lt;-num1+1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Para num&amp;lt;-num1 Hasta num2 Con Paso 2 Hacer&lt;br /&gt;
			Escribir Sin Saltar num,&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demana la quantitat de números que es llegiran. Anem introduint números.&lt;br /&gt;
::Hem de comptar els positius, negatius i zeros.&lt;br /&gt;
::Dades d'entrada: Quantitat de números, els números.&lt;br /&gt;
::Informació de sortida: Quantitat de positius, de negatius i de zeros.&lt;br /&gt;
::Variables: quantitat_num,num,cont_positius,cont_negatius,cont_zeros(enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo els comptadors&lt;br /&gt;
::2. Llegir quantitat de números&lt;br /&gt;
::3. Des d'1 fins a quantitat de números&lt;br /&gt;
::::4. Llegir num&lt;br /&gt;
::::5. Si num&amp;gt; 0-&amp;gt; increment cont_positius&lt;br /&gt;
::::6. Si num&amp;lt; 0-&amp;gt; increment cont_negatius&lt;br /&gt;
::::7. Si num = 0-&amp;gt; increment cont_zeros.&lt;br /&gt;
::8Mostra cont_postius, cont_negatius, cont_zeros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComptarNumerosPositiusNegatiusIZeros&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir quantitat_num,i Como Entero;&lt;br /&gt;
	Definir cont_negatius,cont_positius,cont_zeros Como Entero;&lt;br /&gt;
	cont_negatius &amp;lt;- 0;&lt;br /&gt;
	cont_positius &amp;lt;- 0;&lt;br /&gt;
	cont_zeros &amp;lt;- 0;&lt;br /&gt;
	Escribir &amp;quot;Quants números introduiràs?:&amp;quot;;&lt;br /&gt;
	Leer quantitat_num;&lt;br /&gt;
	Para i&amp;lt;-1 Hasta quantitat_num Hacer&lt;br /&gt;
		Escribir &amp;quot;Nombre &amp;quot;,i,&amp;quot;:&amp;quot; ;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			cont_positius &amp;lt;- cont_positius + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si num&amp;lt;0 Entonces&lt;br /&gt;
				cont_negatius &amp;lt;- cont_negatius + 1;&lt;br /&gt;
				Sino&lt;br /&gt;
				cont_zeros &amp;lt;- cont_zeros + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Números positius:&amp;quot;,cont_positius;&lt;br /&gt;
	Escribir &amp;quot;Números negatius:&amp;quot;,cont_negatius;&lt;br /&gt;
	Escribir &amp;quot;Nombre igual a 0:&amp;quot;,cont_zeros;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que mostri la taula de multiplicar d'un número introduït per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim el número del que volem mostrar la taula&lt;br /&gt;
::Necessitem un comptador per comptar d'1 a 10&lt;br /&gt;
:.Hem de repetir 10 vegades -&amp;gt; A cada volta hem de mostrar: el comptador * el número = resultat de la multiplicació&lt;br /&gt;
::Dades d'entrada: El número de la taula i un comptador d'1 a 10.&lt;br /&gt;
::Informació de sortida: Les 10 operacions de la taula de multiplicació&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir taula&lt;br /&gt;
::2. Des de nombre d'1 a 10&lt;br /&gt;
::::3. Mostrar num * taula = (num*taula)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulaMultiplicar&lt;br /&gt;
	Definir num, numTaula Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols mostrar la taula de multiplicar?:&amp;quot;;&lt;br /&gt;
	Leer numTaula;&lt;br /&gt;
	Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Escribir num,&amp;quot; * &amp;quot;, numTaula,&amp;quot; = &amp;quot;,num*numTaula;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::He de repetir 10 vegades (des del número 1 fins al 10) mostrar la taula de multiplicar d'aquest número.&lt;br /&gt;
::Com hem vist en l'exercici 4, per fer una taula de multiplicar hem de repetir 10 vegades per mostrar cada línia de la taula.&lt;br /&gt;
::Per tant necessito dos bucles imbricats.&lt;br /&gt;
::Dades d'entrada: Res&lt;br /&gt;
::Informació de sortida: Les deu taules de multiplicar&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Per a taula des d'1 fins a 10&lt;br /&gt;
::::2. Per num des d'1 fins a 10&lt;br /&gt;
::::::3. Mostrar taula * num = (taula*num)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulesDeMultiplicar&lt;br /&gt;
	Definir taula,num Como Entero;&lt;br /&gt;
	Para taula&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
			Escribir taula,&amp;quot; * &amp;quot;,num,&amp;quot; = &amp;quot;, taula*num;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Esperar Tecla;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Calcular el sou i les hores treballades dun empleat en una setmana (6 dies).&lt;br /&gt;
::Cal anar introduint la quantitat d'hores que treballa cada dia.&lt;br /&gt;
::Hem de saber quant es paga l'hora treballada.&lt;br /&gt;
::Cal anar acumulant les hores treballades cada dia, per poder calcular el sou.&lt;br /&gt;
::Dades d'entrada: Sou per hora, hores.&lt;br /&gt;
::Informació de sortida: Les hores acumulades, i el sou de la setmana.&lt;br /&gt;
::Variables: sou_per_hora (Real),hores, hores_acum, dia(enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1.- Inicialitzo les hores acumulades&lt;br /&gt;
::2.- Llegir sou per hora (sou)&lt;br /&gt;
::3.- Des del dia 1 al 6&lt;br /&gt;
::::4.- Llegir hores treballades&lt;br /&gt;
::::5.- Acumular les hores treballades&lt;br /&gt;
::6.- Mostrar Les hores acumulades&lt;br /&gt;
::7.- Mostrar el sou -&amp;gt; hores acumulades * sou per hora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir hores, hores_acum Como  Entero;&lt;br /&gt;
	Definir dia Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix el sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para dia&amp;lt;-1 hasta 6 Hacer&lt;br /&gt;
		Escribir &amp;quot;Quantes hores has treballat el dia &amp;quot;,dia,&amp;quot;?:&amp;quot;;&lt;br /&gt;
		Leer hores;&lt;br /&gt;
		hores_acum &amp;lt;- hores_acum + hores;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Hores acumulades a la setmana:&amp;quot;,hores_acum;&lt;br /&gt;
	Escribir &amp;quot;Sou:&amp;quot;,sou_per_hora*hores_acum;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal calcular el sou d'un nombre de treballadors, per tant necessitem el nombre de treballadors que té lempresa. També necessitem saber el sou per hora, i per cada treballador cal demanar les hores que ha treballat a la setmana.&lt;br /&gt;
::Per cada treballador cal mostrar el sou setmanal i en finalitzar el programa mostrem el total de sous pagats.&lt;br /&gt;
::Dades d'entrada: Nombre de treballadors, sou per hora, hores treballades per cada treballador.&lt;br /&gt;
::Informació de sortida: Sou de cada treballador, total pagat.&lt;br /&gt;
::Variables: hores_per_setmana, hores_acum (enter), sou_per_hora (real), treballadors, treballador (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo l'acumulador d'hores&lt;br /&gt;
::2. Llegir el nombre de treballadors&lt;br /&gt;
::3. Llegir sou per hora&lt;br /&gt;
::4. Per cada treballador&lt;br /&gt;
::::5. Llegir hores treballades per setmana&lt;br /&gt;
::::6. Mostrar sou (hores_per_setmana*sou_per_hora&lt;br /&gt;
::::7. Acumular hores treballades&lt;br /&gt;
::8. Mostrar total de pagament (hores_acum*sou_per_hora)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSalari&lt;br /&gt;
	Definir hores_per_setmana, hores_acum Como Entero;&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir treballadors, treballador Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Quants treballadors té l'empresa?:&amp;quot;;&lt;br /&gt;
	Leer treballadors;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para treballador&amp;lt;-1 Hasta treballadors Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Quantes hores ha treballat el treballador, treballador, ?&amp;quot;;&lt;br /&gt;
		Leer hores_per_setmana;&lt;br /&gt;
		hores_acum&amp;lt;-horas_acum+hores_per_setmana;&lt;br /&gt;
		Escribir &amp;quot;El treballador &amp;quot;,treballador,&amp;quot; té de sou &amp;quot;,hores_per_setmana*sou_per_hora; &lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El pagament als &amp;quot;treballadors,&amp;quot; treballadors és: &amp;quot;,hores_acum*sou_per_hora;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Fei un algoritme que mostri el següent quadrat  d'asteríscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratAstriscos&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratBlanc&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Si (fila = 1 o fila = num o col = 1 o col = num) Entonces&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;  &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	  Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-num Hasta fila Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col,&amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1. Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Hem de generar un nombre aleatori (funció aleatori) de l'1 al 100.&lt;br /&gt;
:: Necessitem un comptador per comptar els 10 intents. Al principi val 10 i anirà decrementant.&lt;br /&gt;
:: Mentre no encerti el número i em quedin intents:&lt;br /&gt;
:: Llegeixo un número&lt;br /&gt;
:: Ho comparo amb el nombre generat (dic si és més gran o més petit)&lt;br /&gt;
:: Demano un altre nombre&lt;br /&gt;
:: Puc acabar el bucle per dues raons: si he endevinat el número (he guanyat) i mostro els intents que he necessitat.&lt;br /&gt;
:: sinó he perdut, he utilitzat els 10 intents i mostro el número generat.&lt;br /&gt;
:: Dades d'entrada: número demanat a l'usuari.&lt;br /&gt;
:: Informació de sortida: Has guanyat i els intents, o has perdut i el número.&lt;br /&gt;
:: Variables: num_scret, num_ingressat, intents (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
:: 1. Genero un nombre aleatori de l'1 al 100 (num_secret)&lt;br /&gt;
:: 2. intents = 10&lt;br /&gt;
:: 3. Llegir num&lt;br /&gt;
:: 4. Mentre num&amp;lt;&amp;gt; num_secret i intents&amp;gt;1&lt;br /&gt;
:::: 5. Si num_screto&amp;gt;num -&amp;gt; Escriure &amp;quot;Molt baix&amp;quot;&lt;br /&gt;
:::: 6. Si num_screto&amp;lt;num -&amp;gt; Escriure &amp;quot;Molt alt&amp;quot;&lt;br /&gt;
:::: 7. intents=intents-1&lt;br /&gt;
:::: 8. Escriure intents&lt;br /&gt;
:::: 9. Llegir num&lt;br /&gt;
:: 10. Si num_secreo=num -&amp;gt; Escriure &amp;quot;Has guanyat&amp;quot;, intents&lt;br /&gt;
:: 11. SiNo -&amp;gt; Escriure &amp;quot;Has perdut, num_secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Adivina_Numero&lt;br /&gt;
    Definir intents,num_secret,num_ingressat Como Entero;&lt;br /&gt;
    intents &amp;lt;- 10;&lt;br /&gt;
    num_secret &amp;lt;- Aleatorio(1,100);&lt;br /&gt;
    &lt;br /&gt;
    Escribir &amp;quot;Endevineu el nombre (d'1 a 100):&amp;quot;;&lt;br /&gt;
    Leer num_ingressat;&lt;br /&gt;
    Mientras num_secret&amp;lt;&amp;gt;num_ingressat Y intents&amp;gt;1 Hacer&lt;br /&gt;
        Si num_secret&amp;gt;num_ingressat Entonces&lt;br /&gt;
            Escribir &amp;quot;Molt baix&amp;quot;;&lt;br /&gt;
        Sino &lt;br /&gt;
            Escribir &amp;quot;Molt alt&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
        intents &amp;lt;- intents-1;&lt;br /&gt;
        Escribir &amp;quot;Li queden &amp;quot;,intents,&amp;quot; intents:&amp;quot;;&lt;br /&gt;
        Leer num_ingressat;&lt;br /&gt;
    FinMientras&lt;br /&gt;
    &lt;br /&gt;
    Si num_secret=num_ingressat Entonces&lt;br /&gt;
        Escribir &amp;quot;Exacte! Vostè endevino a &amp;quot;,11-intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;El nombre era: &amp;quot;,num_secret;&lt;br /&gt;
    FinSi&lt;br /&gt;
    &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Anem demanant números fins a introduir un 0.&lt;br /&gt;
:: Necessitem un acumulador per anar fent les sumes intermèdies.&lt;br /&gt;
:: A més necessitem un comptador, per calcular la mitjana (suma/quantitat)&lt;br /&gt;
:: Dades d'entrada: números, un acumulador per sumar i un comptador&lt;br /&gt;
:: Informació de sortida: La suma i la mitjana&lt;br /&gt;
:: Variables:num, suma, cont enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzat: suma = 0, cont = 0&lt;br /&gt;
::2. Llegir num&lt;br /&gt;
::3. Mentre num&amp;lt;&amp;gt;0&lt;br /&gt;
:::: 4. Acumul: suma = suma + num&lt;br /&gt;
:::: 5. Conte si num&amp;lt;&amp;gt;0: cont=cont+1&lt;br /&gt;
:::. 6. Llegir num&lt;br /&gt;
::7. Si cont=0 (No hem introduït cap número)-&amp;gt; mitjana=0&lt;br /&gt;
::8. SiNo -&amp;gt; mitjana=suma/cont;&lt;br /&gt;
::9. Mostrar suma i mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSumaMitjana&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir suma,cont como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	suma &amp;lt;- 0;&lt;br /&gt;
	cont &amp;lt;-0;&lt;br /&gt;
	//Amb el mentre si el primer número és 0 no entrarà al bucle&lt;br /&gt;
	Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		suma &amp;lt;- suma + num;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
		Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	//Si cont=0 no puc fer la divisió&lt;br /&gt;
	Si cont&amp;gt;0 Entonces&lt;br /&gt;
		mitjana &amp;lt;- suma / cont;&lt;br /&gt;
	SiNo&lt;br /&gt;
		mitjana &amp;lt;-0;&lt;br /&gt;
	FinSi&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Suma:&amp;quot;,suma;&lt;br /&gt;
	Escribir &amp;quot;Mitjana:&amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
:: Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre&lt;br /&gt;
:: Informació de sortida: El resultat del factorial&lt;br /&gt;
:: Variables: num, comptador (entero), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
:.2. Inicials variables&lt;br /&gt;
:: comptador = 2&lt;br /&gt;
:: resultat = 1&lt;br /&gt;
:: 3. Mentre comptador&amp;lt;=num fer&lt;br /&gt;
:::: 4. resultat=resultat*comptador&lt;br /&gt;
:::: 5. comptador=comptador+1&lt;br /&gt;
:. 6. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador Como Entero;&lt;br /&gt;
	Definir resultat Como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm  un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	comptador &amp;lt;- 2;&lt;br /&gt;
	Mientras comptador&amp;lt;=num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
		comptador &amp;lt;- comptador + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El resultat és &amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un número i anem comprovant si és divisible entre 2 fins a l'arrel quadrada del nombre. Si és divisible per algun número no és primer.&lt;br /&gt;
::Si no és divisible per cap nombre és primer.&lt;br /&gt;
::Per saber si és divisible fem servir l'operador mòdul.&lt;br /&gt;
::Dades d'entrada: el número a comprovar si és primer o no&lt;br /&gt;
::Informació de sortida: Un missatge dient si és primer o no&lt;br /&gt;
::Variables: numero_es_primer (entero), num (entero) comptador des de 2 fins arrel quadrada del num_es_primer, es_primer (lógico)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Suposo que el nombre és primer -&amp;gt; és_primer&amp;lt;-Verdadero&lt;br /&gt;
::2. Llegir num_ces_primer&lt;br /&gt;
::3. Mentre no final (num &amp;lt; número primer?) i el número primer? no sigui divisible pel num&lt;br /&gt;
::::4. Incrementem el num&lt;br /&gt;
::5. Si es_primer -&amp;gt; Mostra &amp;quot;És primer&amp;quot;&lt;br /&gt;
::6. Si no -&amp;gt; Mostra &amp;quot;No és primer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EsPrimo&lt;br /&gt;
	Definir num,div Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número per comprovar si és primer:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
        div &amp;lt;- 2;&lt;br /&gt;
	Mientras div&amp;lt;&amp;gt;num Y num % div &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
		div &amp;lt;- div +1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Si div = num Entonces&lt;br /&gt;
		Escribir &amp;quot;És Primer&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No és Primer&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval.&lt;br /&gt;
: Si el límit inferior és més gran que el superior ho ha de tornar a demanar.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Demanem un interval (límit inferior i superior)&lt;br /&gt;
:: Ens hem d'assegurar que el límit inferior sigui menor que el superior.&lt;br /&gt;
:: Es van demanant números fins que s'introdueixi el 0.&lt;br /&gt;
:: Si el nombre pertany a l'interval -&amp;gt; ho vaig sumant (necessito un acumulador)&lt;br /&gt;
:: Si el número no pertany a l'interval, ho explico (necessito un comptador)&lt;br /&gt;
:: Si el nombre és igual a algun límit, allò índic (necessito un indicador)&lt;br /&gt;
:: Al final mostro la suma dels números que pertanyen a l'interval.&lt;br /&gt;
:: Mostreu el comptador de número que no pertanyen a l'interval.&lt;br /&gt;
:: Indico si hem introduït un número igual a algun límit&lt;br /&gt;
:: Dades d'entrada: límit superior i inferior de l'interval i els números.&lt;br /&gt;
:: Informació de sortida: La suma dels que pertanyen a l'interval, el comptador dels números que no pertanyen a l'interval i indico si un nombre ha estat igual a algun interval&lt;br /&gt;
:: Variables: lim_inf, lim_sup, num, suma_dins_interval, cont_fora_interval (enters), igual_limits (Lògic)&lt;br /&gt;
&lt;br /&gt;
:Diseny&lt;br /&gt;
::1. Inicialitzo l'acumulador, el comptador i l'indicat&lt;br /&gt;
::2. Repetir -&amp;gt; llegir lim_inf i lim_sup fins que lim_inf&amp;lt;lim_sup&lt;br /&gt;
::3. Llegir núm&lt;br /&gt;
::4. Mentre num sigui diferent de 0&lt;br /&gt;
::::5. Si num pertany a l'interval -&amp;gt; acumula la suma&lt;br /&gt;
::::6. Sinó -&amp;gt; increment comptador&lt;br /&gt;
::::7. Si és igual a algun interval -&amp;gt; Ho indico (indicador a cert)&lt;br /&gt;
::::8. Llegir núm&lt;br /&gt;
::9. Mostra la suma dels números pertanyents a l'interval&lt;br /&gt;
::10. Mostra el comptador de números no pertanyents a l'interval&lt;br /&gt;
::11. Si l'indicador = Veritable -&amp;gt; Mostra &amp;quot;Un nombre = a interval&amp;quot;&lt;br /&gt;
::12. SiNo -&amp;gt; Mostra &amp;quot;No has introduït un número igual a l'interval&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Interval&lt;br /&gt;
	Definir lim_inf, lim_sup como Entero;&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Definir suma_dins_interval Como Entero;&lt;br /&gt;
	Definir cont_fora_interval Como Entero;&lt;br /&gt;
	Definir igual_limits Como Logico;&lt;br /&gt;
	suma_dins_interval &amp;lt;- 0;&lt;br /&gt;
	cont_fora_interval &amp;lt;- 0;&lt;br /&gt;
	igual_limits &amp;lt;- Falso;&lt;br /&gt;
	//M'asseguro que el lim_inf és menor que el lim_sup&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_inf;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_sup;&lt;br /&gt;
	Mientras lim_inf &amp;gt;= lim_sup Hacer&lt;br /&gt;
		Escribir &amp;quot;ERROR: El límit inferior ha de ser menor que el superior.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_inf;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_sup;&lt;br /&gt;
	FinMientras&lt;br /&gt;
		&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		//Pertany a l'interval&lt;br /&gt;
		Si num&amp;gt;lim_inf Y num&amp;lt;lim_sup Entonces&lt;br /&gt;
			suma_dins_interval&amp;lt;- suma_dins_interval + num;&lt;br /&gt;
		SiNo &lt;br /&gt;
			//Nombre igual a algun dels límits&lt;br /&gt;
			Si num=lim_inf O num=lim_sup Entonces&lt;br /&gt;
				igual_limits &amp;lt;- Verdadero;&lt;br /&gt;
			Sino&lt;br /&gt;
			//No pertany a l'interval&lt;br /&gt;
			cont_fora_interval &amp;lt;- cont_fora_interval + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;La suma dels números dins de linterval és &amp;quot;,suma_dins_interval;&lt;br /&gt;
	Escribir &amp;quot;La quantitat de números fora de linterval és &amp;quot;,cont_fora_interval;&lt;br /&gt;
	Si igual_limits Entonces&lt;br /&gt;
		Escribir &amp;quot;Sha introduït algun nombre igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No sha introduït cap número igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Notes_Alumnes&lt;br /&gt;
	Definir alumne Como Cadena;&lt;br /&gt;
	Definir nota_practica, nota_problemes, nota_teoria, nota_final Como Real;&lt;br /&gt;
        Escribir &amp;quot;Introduïu el nom de l'alumne: &amp;quot;;&lt;br /&gt;
	Leer alumne;&lt;br /&gt;
        Mientras alumne&amp;lt;&amp;gt;&amp;quot;&amp;quot; Hacer&lt;br /&gt;
        //si introduïm un nom d'alumne correcte, entrés al bucle&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de la pràctica: &amp;quot;;&lt;br /&gt;
        	Leer nota_practica;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota dels problemes: &amp;quot;;&lt;br /&gt;
        	Leer nota_problemes;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de teoria&amp;quot;;&lt;br /&gt;
        	Leer nota_teoria;&lt;br /&gt;
        	//comprovem si les notes tenen un rang correcte&lt;br /&gt;
        	Si (nota_practica&amp;lt;=10 y nota_practica&amp;gt;=0) y (nota_problemes&amp;lt;=10 y nota_problemes&amp;gt;=0) y (nota_teoria&amp;lt;=10 y nota_teoria&amp;gt;=0) Entonces&lt;br /&gt;
			Escribir &amp;quot;L'alumne &amp;quot;, alumne;&lt;br /&gt;
                	Escribir &amp;quot;La nota practica és &amp;quot; nota_practica;&lt;br /&gt;
                	Escribir &amp;quot;La nota de problemes és &amp;quot;, nota_problemes;&lt;br /&gt;
                	Escribir &amp;quot;La nota de teoria és &amp;quot; nota_teoria;&lt;br /&gt;
                	nota_final&amp;lt;-(nota_practica * 0,1)+(nota_problemes * 0.5)+(nota_teoria*0.4);&lt;br /&gt;
                	Escribir &amp;quot;La nota final és &amp;quot; nota_final;&lt;br /&gt;
        	SiNo&lt;br /&gt;
                Escribir &amp;quot;Has escrit una nota incorrecta, Torna a introduir les notes!&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
		Escribir &amp;quot;Introdueix el nom d'un altre alumne&amp;quot;;&lt;br /&gt;
		Leer alumne;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso UBER&lt;br /&gt;
        Definir nroViatges,temps,acum,cont,contMenys30,contEntre30i45,contMes45 Como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	&lt;br /&gt;
	contMenys30 &amp;lt;- 0;  //comptador&lt;br /&gt;
	contEntre30i45 &amp;lt;- 0;&lt;br /&gt;
	contMes45 &amp;lt;- 0;&lt;br /&gt;
	acum &amp;lt;- 0;   //acumulador&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Introduïu el número de viatges del dia: &amp;quot;;&lt;br /&gt;
	Leer nroViatges;&lt;br /&gt;
	&lt;br /&gt;
	cont &amp;lt;- 1;&lt;br /&gt;
	Mientras cont &amp;lt;= nroViajes Hacer&lt;br /&gt;
		Escribir &amp;quot;Introduïu el temps del viatge &amp;quot;,cont;&lt;br /&gt;
		Leer temps; &lt;br /&gt;
		&lt;br /&gt;
		si temps&amp;lt;30 Entonces &lt;br /&gt;
			contMenys30 &amp;lt;- contMenys30 + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			si temps &amp;gt;= 30 y temps &amp;lt; 45 Entonces &lt;br /&gt;
				contEntre30i45 &amp;lt;- contEntre30i45 + 1;&lt;br /&gt;
			Sino&lt;br /&gt;
				contMes45 &amp;lt;- contMes45 + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		&lt;br /&gt;
		acum &amp;lt;- acum + temps;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
	Fin Mientras &lt;br /&gt;
		&lt;br /&gt;
	mitjana &amp;lt;- acum / nroViajes;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Nro de viatges : &amp;quot;,nroViatges;&lt;br /&gt;
	Escribir &amp;quot;Mitjana dels temps: &amp;quot;,mitjana;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar menys de 30 minuts:: &amp;quot;,contMenys30;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar entre 30 a 45 minuts: &amp;quot;,contEntre30i45; &lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar més de 45 minuts: &amp;quot;,contMes45;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis prova===&lt;br /&gt;
&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TresN&lt;br /&gt;
	Definir num, cont Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Escriu un numero enter i positiu: &amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        Leer num;&lt;br /&gt;
	&lt;br /&gt;
        Si num &amp;gt; 0  Entonces &lt;br /&gt;
            cont &amp;lt;- 1;&lt;br /&gt;
&lt;br /&gt;
            Mientras num != 1 Hacer&lt;br /&gt;
                Si num % 2 = 0 Entonces&lt;br /&gt;
                    num &amp;lt;- num / 2;&lt;br /&gt;
                SiNo &lt;br /&gt;
                    num &amp;lt;- (num * 3) + 1;&lt;br /&gt;
                &lt;br /&gt;
                cont &amp;lt;- cont + 1;&lt;br /&gt;
                Escribir Sin Saltar num, &amp;quot; &amp;quot;;&lt;br /&gt;
            FinMientras&lt;br /&gt;
&lt;br /&gt;
            Escribir &amp;quot;Ha donat &amp;quot;,cont,&amp;quot; voltes.&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;El número ha de ser positiu!!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Data&lt;br /&gt;
	Definir dia, mes, diesPerMes, diaSeguent, mesSeguent Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	Escribir &amp;quot;Introdueix el dia: &amp;quot;;&lt;br /&gt;
        Leer dia;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el mes: &amp;quot;;&lt;br /&gt;
        Leer mes;&lt;br /&gt;
	&lt;br /&gt;
        diesPerMes &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
        Segun Mes Hacer&lt;br /&gt;
            1, 3, 5, 7, 8, 10, 12: diesPerMes &amp;lt;- 31;&lt;br /&gt;
            4, 6, 9, 11: diesPerMes &amp;lt;- 30;&lt;br /&gt;
            2: diesPerMes &amp;lt;- 28;&lt;br /&gt;
        FinSegun&lt;br /&gt;
&lt;br /&gt;
        diaSeguent &amp;lt;- dia+5;&lt;br /&gt;
        &lt;br /&gt;
        Si diaSeguent&amp;gt;diesPerMes Entonces&lt;br /&gt;
            diaSeguent &amp;lt;- diaSeguent-diesPerMes;&lt;br /&gt;
            mes &amp;lt;-- mes + 1;&lt;br /&gt;
            Si mes&amp;gt;12 Entonces&lt;br /&gt;
                mes &amp;lt;-- 1;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Escribir diaSeguent, &amp;quot; &amp;quot;, mes;&lt;br /&gt;
&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso XY&lt;br /&gt;
	Definir carActual, carAnterior Como Caracter;&lt;br /&gt;
        Definir cont Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	carAnterior=&amp;quot; &amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
        Leer carActual;&lt;br /&gt;
	&lt;br /&gt;
        cont &amp;lt;- 1;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (cont &amp;lt; 10000 &amp;amp;&amp;amp; (carAnterior != 'X' O carActual != 'Y')) Hacer&lt;br /&gt;
                &lt;br /&gt;
            carAnterior = carActual;&lt;br /&gt;
	    Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
            Leer carActual;&lt;br /&gt;
            cont &amp;lt;- cont + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si (carAnterior != 'X' Y carActual != 'Y') Entonces&lt;br /&gt;
		Escribir &amp;quot;Apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir divisor, numero Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el número: &amp;quot;;&lt;br /&gt;
        Leer numero;&lt;br /&gt;
	&lt;br /&gt;
        divisor &amp;lt;- 2;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (divisor &amp;lt; numero Y numero % divisor != 0) Hacer&lt;br /&gt;
                &lt;br /&gt;
            divisor &amp;lt;- divisor + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si divisor = numero Entonces&lt;br /&gt;
	    Escribir &amp;quot;No té cap divisor&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
	    Escribir &amp;quot;El primer divisor és: &amp;quot;, divisor;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir x1, x2, punt, min, max, distanciaDreta, distanciaEsquerra  Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix la primera coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la segona coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x2;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el punt: &amp;quot;;&lt;br /&gt;
        Leer punt;&lt;br /&gt;
	&lt;br /&gt;
	Si x1 &amp;lt; x2 Entonces&lt;br /&gt;
           min &amp;lt;- x1;&lt;br /&gt;
           max &amp;lt;- x2;&lt;br /&gt;
	SiNo&lt;br /&gt;
           min &amp;lt;- x2;&lt;br /&gt;
           max &amp;lt;- x1;&lt;br /&gt;
	FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaDreta = max - punt;  &lt;br /&gt;
        Si (distanciaDreta &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaDreta = distanciaDreta * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaEsquerra = min - punt;&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaEsquerra = distanciaEsquerra * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (punt &amp;gt;= min Y punt &amp;lt;= max) {&lt;br /&gt;
            Escribir &amp;quot;Dins&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Fora&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt;= distanciaDreta) {&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaEsquerra;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaDreta;&lt;br /&gt;
        FinSi&lt;br /&gt;
      &lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis prova CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalculNomines&lt;br /&gt;
	Definir tipus, hores, diesBaixa, sou Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
&lt;br /&gt;
	Mientras tipus &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Si tipus &amp;lt; 1 O tipus &amp;gt; 3 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Tipus no vàlid. Torna a intentar-ho.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre dhores treballades:&amp;quot;;&lt;br /&gt;
        	Leer hores;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre de dies de baixa:&amp;quot;;&lt;br /&gt;
        	Leer diesBaixa;&lt;br /&gt;
&lt;br /&gt;
        	Segun tipus Hacer&lt;br /&gt;
            	1:&lt;br /&gt;
                	sou &amp;lt;- hores * 12;&lt;br /&gt;
            	2:&lt;br /&gt;
                	sou &amp;lt;- hores * 15;&lt;br /&gt;
            	3:&lt;br /&gt;
                	sou &amp;lt;- hores * 25;&lt;br /&gt;
                	Si hores &amp;gt; 160 Entonces&lt;br /&gt;
                    	   sou &amp;lt;- sou + 500;&lt;br /&gt;
                	FinSi&lt;br /&gt;
        	FinSegun&lt;br /&gt;
&lt;br /&gt;
        	Si diesBaixa &amp;gt; 5 Entonces&lt;br /&gt;
            	   sou &amp;lt;- sou * 0.9;&lt;br /&gt;
            	   Escribir &amp;quot;Penalització aplicada per dies de baixa.&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
&lt;br /&gt;
        	Escribir &amp;quot;El sou del treballador és:&amp;quot;, sou, &amp;quot;€&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
    	   Leer tipus;&lt;br /&gt;
	FinMientras        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa s'ha de repetir per diversos vols fins que es detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ControlPassatgers&lt;br /&gt;
        Definir codiVol, nacionals, internacionals, total, volMaxInternacionals Como Entero;&lt;br /&gt;
	Definir percentatgeInternacionals, maxPercentatge Como Real;&lt;br /&gt;
	maxPercentatge &amp;lt;- 0;&lt;br /&gt;
	volMaxInternacionals &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
	Leer codiVol;&lt;br /&gt;
&lt;br /&gt;
	Mientras codiVol &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers nacionals:&amp;quot;;&lt;br /&gt;
    	   Leer nacionals;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers internacionals:&amp;quot;;&lt;br /&gt;
    	   Leer internacionals;&lt;br /&gt;
&lt;br /&gt;
    	   total &amp;lt;- nacionals + internacionals;&lt;br /&gt;
    	   Escribir &amp;quot;El vol &amp;quot;, codiVol, &amp;quot; té un total de &amp;quot;, total, &amp;quot; passatgers.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    	   Si total &amp;gt; 0 Entonces&lt;br /&gt;
        	percentatgeInternacionals &amp;lt;- (internacionals / total) * 100;&lt;br /&gt;
        	Escribir &amp;quot;Percentatge de passatgers internacionals: &amp;quot;, percentatgeInternacionals, &amp;quot;%&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        	Si percentatgeInternacionals &amp;gt; maxPercentatge Entonces&lt;br /&gt;
            	   maxPercentatge &amp;lt;- percentatgeInternacionals;&lt;br /&gt;
            	   volMaxInternacionals &amp;lt;- codiVol;&lt;br /&gt;
        	FinSi&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;El vol no té passatgers.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer codiVol;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;El vol amb més percentatge de passatgers internacionals és el vol &amp;quot;, volMaxInternacionals, &amp;quot; amb un &amp;quot;, maxPercentatge, &amp;quot;% de passatgers internacionals.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SeguimentAtletisme&lt;br /&gt;
        Definir dorsal, millorDorsal, pitjorDorsal Como Entero;&lt;br /&gt;
	Definir temps1, temps2, temps3 Como Real;&lt;br /&gt;
	Definir millorMitjana, pitjorMitjana, mitjana Como Real;&lt;br /&gt;
	millorMitjana &amp;lt;- 999999;&lt;br /&gt;
	pitjorMitjana &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
	Leer dorsal;&lt;br /&gt;
&lt;br /&gt;
	Mientras dorsal &amp;lt;&amp;gt; -1 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la primera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps1;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la segona cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps2;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la tercera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps3;&lt;br /&gt;
&lt;br /&gt;
       	   mitjana &amp;lt;- (temps1 + temps2 + temps3) / 3;&lt;br /&gt;
     	   Escribir &amp;quot;La mitjana de temps per latleta amb dorsal &amp;quot;, dorsal, &amp;quot; és: &amp;quot;, mitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
    	   Si mitjana &amp;lt; millorMitjana Entonces&lt;br /&gt;
        	millorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	millorDorsal &amp;lt;- dorsal;&lt;br /&gt;
     	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; pitjorMitjana Entonces&lt;br /&gt;
        	pitjorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	pitjorDorsal &amp;lt;- dorsal;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; 10 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; no ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer dorsal;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Latleta amb millor mitjana és el dorsal &amp;quot;, millorDorsal, &amp;quot; amb una mitjana de &amp;quot;, millorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Latleta amb pitjor mitjana és el dorsal &amp;quot;, pitjorDorsal, &amp;quot; amb una mitjana de &amp;quot;, pitjorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratCubVector&lt;br /&gt;
	Definir vector_numeros Como Entero;&lt;br /&gt;
	Dimension vector_numeros[10];&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	//Primer recorregut per llegir el vector&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		vector_numeros[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Segon recorregut per mostrar el resultat&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		Escribir vector_numeros[index],&amp;quot; &amp;quot;,vector_numeros[index]^2,&amp;quot; &amp;quot;,vector_numeros[index]^3;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorInvers&lt;br /&gt;
	Definir vector1,vector2 Como Cadenas;&lt;br /&gt;
	Dimension vector1[5],vector2[5];&lt;br /&gt;
	Definir indicador1,indicador2 Como Entero;&lt;br /&gt;
	Definir tam_vector1,tam_vector2 Como Entero;&lt;br /&gt;
	//Defineixo la mida dels vectors per utilitzar-los en els recorreguts&lt;br /&gt;
	tam_vector1&amp;lt;-5;&lt;br /&gt;
	tam_vector2&amp;lt;-5;&lt;br /&gt;
	//RRecorro el vector1 i llegeixo cada element per teclat&lt;br /&gt;
	Para indicador1&amp;lt;-0 hasta tam_vector1-1 hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dónam la cadena &amp;quot;,indicador1+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer vector1[indicador1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	indicador2&amp;lt;-0;&lt;br /&gt;
	//Recorro el vector1 des del final al principi&lt;br /&gt;
	//Cada element el guardo al vector2&lt;br /&gt;
	Para indicador1&amp;lt;-tam_vector1-1 hasta 0 con paso -1 hacer&lt;br /&gt;
		vector2[indicador2]&amp;lt;-vector1[indicador1];&lt;br /&gt;
		indicador2&amp;lt;-indicador2+1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro el vector2 per mostrar-lo&lt;br /&gt;
	Para indicador2&amp;lt;-0 hasta tam_vector2-1 hacer&lt;br /&gt;
		Escribir &amp;quot;La cadena &amp;quot;,indicador2+1,&amp;quot;: &amp;quot;,vector2[indicador2];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorNotes&lt;br /&gt;
	Definir notes Como Entero;&lt;br /&gt;
	Dimension notes[5];&lt;br /&gt;
	Definir tam_notes como Entero;&lt;br /&gt;
	Definir nota_mitjana Como Real;&lt;br /&gt;
	Definir suma,nota_max,nota_min, nota como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	tam_notes&amp;lt;-5;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer nota;&lt;br /&gt;
		Mientras nota&amp;lt;0 o nota&amp;gt;10 Hacer&lt;br /&gt;
			//Comprovem que sigui un nombre &amp;gt;=0 i &amp;lt;=10&lt;br /&gt;
			&lt;br /&gt;
			Escribir sin saltar &amp;quot;Nota incorrecte. Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
			Leer nota;&lt;br /&gt;
		FinMientras&lt;br /&gt;
		notes[index] &amp;lt;- nota;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suposo que la nota màxima i la mínima és aquesta primera&lt;br /&gt;
	nota_max&amp;lt;-notes[0];&lt;br /&gt;
	nota_min&amp;lt;-notes[0];&lt;br /&gt;
	&lt;br /&gt;
	suma&amp;lt;-0;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		//Acumulo la nota per calcular la mitjana&lt;br /&gt;
		suma&amp;lt;-suma+notes[index];&lt;br /&gt;
		//Actualitzo la nota màxima si en trobo una de més gran&lt;br /&gt;
		Si notes[index]&amp;gt;nota_max Entonces&lt;br /&gt;
			nota_max&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		//Actualitzo la nota mínima si en trobo una de més petita&lt;br /&gt;
		Si notes[index]&amp;lt;nota_min Entonces&lt;br /&gt;
			nota_min&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calculo la mitjana, tenint en compte la mida del vector&lt;br /&gt;
	nota_mitjana&amp;lt;-suma/tam_notes;&lt;br /&gt;
	//Mostro resultats&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir sin Saltar &amp;quot;Notes:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin Saltar notes[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Nota mitjana: &amp;quot;,nota_mitjana;&lt;br /&gt;
	Escribir &amp;quot;Nota màxima: &amp;quot;,nota_max;&lt;br /&gt;
	Escribir &amp;quot;Nota mínima: &amp;quot;,nota_min;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorPositiu&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir tam_vector,index,num como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Recorro el vector i vaig inicialitzant els seus elements&lt;br /&gt;
	//No faig servir un para, perquè si introdueixo un nombre negatiu sortim del bucle&lt;br /&gt;
	//També acabo el bucle si introdueixo tots els elements de vector&lt;br /&gt;
	//El nombre negatiu em serveix d'indicador que fins a aquesta posició el vector té element&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número al vector. Número &amp;quot;,index+1;&lt;br /&gt;
		Leer vector[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que index=tam_vector O vector[index-1]&amp;lt;0;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Recorro fins a la mida del vector o trobi un nombre negatiu&lt;br /&gt;
	Escribir &amp;quot;Elements del vector&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector-1 Y vector[index]&amp;gt;=0 Hacer&lt;br /&gt;
		Escribir sin saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso OrdenarVector&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir canvis,aux Como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir tam_vector Como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Inicialitzo el vector amb valors aleatoris&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 hacer&lt;br /&gt;
		vector[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Repetiré l'ordenació fins que no hagi canviat cap número&lt;br /&gt;
	Repetir &lt;br /&gt;
		canvis&amp;lt;-0;&lt;br /&gt;
		//Recorre fins a l'antepenúltim&lt;br /&gt;
		//Intercanvio els valors de dos elements consecutius si no estan ordenats&lt;br /&gt;
		Para index&amp;lt;-0 hasta tam_vector-2 Hacer&lt;br /&gt;
			Si vector[index]&amp;gt;vector[index+1] Entonces&lt;br /&gt;
				aux&amp;lt;-vector[index];&lt;br /&gt;
				vector[index]&amp;lt;-vector[index+1];&lt;br /&gt;
				vector[index+1]&amp;lt;-aux;&lt;br /&gt;
				canvis&amp;lt;-canvis+1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	Hasta Que canvis=0;&lt;br /&gt;
	//Recorro el vector ordenat&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DiesDelMes&lt;br /&gt;
	Definir dies Como Entero;&lt;br /&gt;
	Dimension dies[12];&lt;br /&gt;
	Definir nom_mes Como Caracter;&lt;br /&gt;
	Dimension nom_mes[12];&lt;br /&gt;
	Definir mes como Entero;&lt;br /&gt;
	dies[0]&amp;lt;-31;&lt;br /&gt;
	dies[1]&amp;lt;-28;&lt;br /&gt;
	dies[2]&amp;lt;-31;&lt;br /&gt;
	dies[3]&amp;lt;-30;&lt;br /&gt;
	dies[4]&amp;lt;-31;&lt;br /&gt;
	dies[5]&amp;lt;-30;&lt;br /&gt;
	dies[6]&amp;lt;-31;&lt;br /&gt;
	dies[7]&amp;lt;-31;&lt;br /&gt;
	dies[8]&amp;lt;-30;&lt;br /&gt;
	dies[9]&amp;lt;-31;&lt;br /&gt;
	dies[10]&amp;lt;-30;&lt;br /&gt;
	dies[11]&amp;lt;-31;&lt;br /&gt;
	nom_mes[0]&amp;lt;-&amp;quot;Gener&amp;quot;;&lt;br /&gt;
	nom_mes[1]&amp;lt;-&amp;quot;Febrer&amp;quot;;&lt;br /&gt;
	nom_mes[2]&amp;lt;-&amp;quot;Març&amp;quot;;&lt;br /&gt;
	nom_mes[3]&amp;lt;-&amp;quot;Abril&amp;quot;;&lt;br /&gt;
	nom_mes[4]&amp;lt;-&amp;quot;Maig&amp;quot;;&lt;br /&gt;
	nom_mes[5]&amp;lt;-&amp;quot;Juny&amp;quot;;&lt;br /&gt;
	nom_mes[6]&amp;lt;-&amp;quot;Juliol&amp;quot;;&lt;br /&gt;
	nom_mes[7]&amp;lt;-&amp;quot;Agost&amp;quot;;&lt;br /&gt;
	nom_mes[8]&amp;lt;-&amp;quot;Setembre&amp;quot;;&lt;br /&gt;
	nom_mes[9]&amp;lt;-&amp;quot;Octubre&amp;quot;;&lt;br /&gt;
	nom_mes[10]&amp;lt;-&amp;quot;Novembre&amp;quot;;&lt;br /&gt;
	nom_mes[11]&amp;lt;-&amp;quot;Desembre&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
	Leer mes;&lt;br /&gt;
	Mientras mes &amp;lt; 1 o mes &amp;gt; 12 Hacer	&lt;br /&gt;
		Escribir &amp;quot;Error: mes incorrecte.&amp;quot;;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
                Leer mes;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El mes de &amp;quot;,nom_mes[mes-1],&amp;quot; té &amp;quot;,dies[mes-1],&amp;quot; dies.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SumarVectors&lt;br /&gt;
	Definir vector1,vector2,vector3 Como Entero;&lt;br /&gt;
	Dimension vector1[5],vector2[5],vector3[5];&lt;br /&gt;
	Definir tam_vector como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-5;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector1:&amp;quot;;&lt;br /&gt;
		Leer vector1[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector2:&amp;quot;;&lt;br /&gt;
		Leer vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		vector3[index]&amp;lt;-vector1[index]+vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;La suma dels vectors és:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar vector3[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats, numAlum Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms, nom Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Mientras nom &amp;lt;&amp;gt;&amp;quot;*&amp;quot; Y index &amp;lt; tam_vector Hacer&lt;br /&gt;
	    noms[index] &amp;lt;- nom;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Diguem la seva edat:&amp;quot;;&lt;br /&gt;
		Leer edats[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
		Leer nom;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	numAlum &amp;lt;- index;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors dedat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;numAlum Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Digue'm el nom d'un alumne:&amp;quot;;&lt;br /&gt;
		Leer noms[index];&lt;br /&gt;
		Si noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Entonces&lt;br /&gt;
			Escribir sin saltar &amp;quot;Digue'm la seva edat:&amp;quot;;&lt;br /&gt;
			Leer edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que noms[index-1]=&amp;quot;*&amp;quot; o index=tam_vector;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors d'edat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ExTemperatures&lt;br /&gt;
	Definir temperatures Como Real;&lt;br /&gt;
	Dimension temperatures[5,2];&lt;br /&gt;
	Definir existeix_temperatura Como Logico;&lt;br /&gt;
	Definir index,cant_dies como Entero;&lt;br /&gt;
	Definir temp_max, temp_min como Real;&lt;br /&gt;
	cant_dies&amp;lt;-5;&lt;br /&gt;
	//Recorregut per emplenar la taula (5 dies amb temp mínima i màxima)&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mínima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura màxima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar temperatura mitjana&lt;br /&gt;
	Escribir &amp;quot;Temperatures mitjanes&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mitjana:&amp;quot;,(temperatures[index,0]+temperatures[index,1])/2;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calcular temperatura mínima més petita&lt;br /&gt;
	temp_min&amp;lt;-temperatures[0,0];&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]&amp;lt;temp_min Entonces&lt;br /&gt;
			temp_min&amp;lt;-temperatures[index,0];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar els dies amb menys temperatura&lt;br /&gt;
	Escribir &amp;quot;Dies amb menys temperatura&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;==========================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]=temp_min Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Dies amb temperatura màxima&lt;br /&gt;
	existeix_temperatura&amp;lt;-Falso;&lt;br /&gt;
	Escribir &amp;quot;Dies amb temperatura màxima&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===========================&amp;quot;;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix una temperatura:&amp;quot;;&lt;br /&gt;
	Leer temp_max;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,1]=temp_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
			existeix_temperatura&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Si no existeix_temperatura Entonces&lt;br /&gt;
		Escribir &amp;quot;No hi ha cap dia amb aquesta temperatura.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Tabla&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;Introduïu el número de la fila &amp;quot;,fila+1,&amp;quot; i columna &amp;quot;,col+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les files&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la fila &amp;quot;,fila+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les columnes&lt;br /&gt;
	Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la columna &amp;quot;,col+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Diagonal&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	//Recorro la taula &lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic en alguna diagonal inicialitzo a 1&lt;br /&gt;
			Si fila=col o fila=(num_files-1)-col Entonces&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			//No estic en diagonal, inicialitzo a 0&lt;br /&gt;
			SiNo&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CostatExtern&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,15];&lt;br /&gt;
	Definir num_files,num_cols como Entero;&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-15;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic a l'extrem esquerre, dret, superior o inferior&lt;br /&gt;
			Si fila=0 o fila=num_files-1 o col=0 o col= num_cols-1 Entonces&lt;br /&gt;
				//Inicialitzo a 1&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				//SiNo inicialitzo a 0&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
&lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dies, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
	Leer num_conductors;&lt;br /&gt;
	Mientras num_conductors&amp;gt;mida_conductors_max Hacer&lt;br /&gt;
		Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
		//El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
		Si num_conductors&amp;gt;mida_conductors_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta que num_conductors&amp;lt;=mida_conductors_max;&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::preu (taula de 3 reals), quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::suma, numMajor, articlesSucursal2, majorRec, totalSucursal, totalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Sucursals&lt;br /&gt;
	Definir preu, quantitat, suma, numMajor,articlesSucursal2, majorRec, totalSucursal, totalEmpresa Como Real;&lt;br /&gt;
	Definir indexArt, indexSucursal como Entero;&lt;br /&gt;
	&lt;br /&gt;
	Dimension preu[5], quantitat[4,5];&lt;br /&gt;
	&lt;br /&gt;
	// Llegir preus&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		Escribir 'Introdueixi el preu de larticle ',indexArt+1,': ';&lt;br /&gt;
		Leer preu[indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Llegir quantitats&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			Escribir 'Introdueixi la quantitat de larticle ',indexArt+1,', en Sucursal ',indexSucursal+1,': ';&lt;br /&gt;
			Leer quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Sumar quantitats per articles&lt;br /&gt;
	Escribir 'Quantitats per articles:';&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		suma &amp;lt;- 0;&lt;br /&gt;
		Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			suma&amp;lt;-quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Total article ',indexArt+1,': ' ,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Informar total articles sucursal 2&lt;br /&gt;
	articlesSucursal2&amp;lt;-0;&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		articlesSucursal2&amp;lt;-articlesSucursal2+quantitat[1,indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Total Sucursal 2:',articlesSucursal2;&lt;br /&gt;
	&lt;br /&gt;
	// Informar Sucursal 1, Article 3:&lt;br /&gt;
	Escribir 'Sucursal 1, Article 3: ',quantitat[0,2];&lt;br /&gt;
	&lt;br /&gt;
	// Acumular total de cada sucursal (totalSucursal) i&lt;br /&gt;
	// total de la empresa (totalEmpresa)&lt;br /&gt;
	majorRec&amp;lt;-0;&lt;br /&gt;
	numMajor&amp;lt;-0;&lt;br /&gt;
	totalEmpresa&amp;lt;-0;&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		totalSucursal&amp;lt;-0;&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			totalSucursal&amp;lt;-totalSucursal+(quantitat[indexSucursal,indexArt]*preu[indexArt]);&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Recaudacions Sucursal ',indexSucursal+1,': ',totalSucursal;&lt;br /&gt;
		//Calculo la sucursal amb més recaudació&lt;br /&gt;
		Si totalSucursal&amp;gt;majorRec entonces&lt;br /&gt;
			majorRec&amp;lt;-totalSucursal;&lt;br /&gt;
			numMajor&amp;lt;-indexSucursal+1;&lt;br /&gt;
		FinSi&lt;br /&gt;
		totalEmpresa&amp;lt;-totalEmpresa+totalSucursal;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Recaudació total de la empresa: ',totalEmpresa;&lt;br /&gt;
	Escribir 'Sucursal de Major Recaudació: ',numMajor;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Travessa&lt;br /&gt;
	Definir index, numEquips Como Entero;&lt;br /&gt;
	Definir equips Como Caracter;&lt;br /&gt;
	Dimension equips[15,2];&lt;br /&gt;
	Definir resultats Como Entero;&lt;br /&gt;
	Dimension resultats[15,2];&lt;br /&gt;
	numEquips&amp;lt;-15;&lt;br /&gt;
	//Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit&lt;br /&gt;
	Para index&amp;lt;-0 hasta numEquips-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 1 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 2 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,1];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,0],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,1],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;TRAVESSA&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;========&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	// Recorro les taules, mostro el nom dels equips i el resultat del partit (per a cada partit)&lt;br /&gt;
	// Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
	// Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
	// Una X si hi ha empat&lt;br /&gt;
	Para index&amp;lt;-0 hasta num_equipos-1 Hacer&lt;br /&gt;
		Si resultados[index,0]&amp;gt;resultados[index,1] Entonces&lt;br /&gt;
			Escribir equipos[index,0], &amp;quot; - &amp;quot;,equipos[index,0],&amp;quot; -&amp;gt; 1&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si resultats[index,0]&amp;lt;resultats[index,1] Entonces&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; 2&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; X&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/// Programa per convertir nombres entre decimal i binari&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio, nombre Como Entero;&lt;br /&gt;
	Definir binari Como Cadena;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions&lt;br /&gt;
        Escribir &amp;quot;1. Convertir de decimal a binari&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Convertir de binari a decimal&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Convertir un nombre decimal a binari&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre enter: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer nombre;&lt;br /&gt;
                Escribir &amp;quot;En binari: &amp;quot;, ConvertirABinari(nombre);&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Convertir un nombre binari a decimal&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre en binari: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer binari;&lt;br /&gt;
                Si EsBinari(binari) Entonces&lt;br /&gt;
                    Escribir &amp;quot;En decimal: &amp;quot;, ConvertirADecimal(binari);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: No és un nombre binari vàlid.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:;&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre decimal a binari&lt;br /&gt;
Funcion binari &amp;lt;- ConvertirABinari(nombre)&lt;br /&gt;
    Definir binari Como Cadena;&lt;br /&gt;
    binari &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
    Si nombre = 0 Entonces&lt;br /&gt;
        binari &amp;lt;- &amp;quot;0&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    // Aplicar el mètode de divisió successiva per obtenir la representació binària&lt;br /&gt;
    Mientras nombre &amp;gt; 0 Hacer&lt;br /&gt;
        binari &amp;lt;- Concatenar(ConvertirATexto(nombre mod 2), binari);&lt;br /&gt;
        nombre &amp;lt;- trunc(nombre / 2);&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre binari a decimal&lt;br /&gt;
Funcion decimal &amp;lt;- ConvertirADecimal(binari)&lt;br /&gt;
    Definir decimal, i, pot2 Como Entero;&lt;br /&gt;
    decimal &amp;lt;- 0;&lt;br /&gt;
    pot2 &amp;lt;- 1;&lt;br /&gt;
    i &amp;lt;- longitud(binari) - 1;&lt;br /&gt;
    Mientras i &amp;gt;= 0 Hacer&lt;br /&gt;
        // Multiplicar cada bit pel seu pes i sumar al resultat&lt;br /&gt;
        decimal &amp;lt;- decimal + ConvertirANumero(subcadena(binari, i, i)) * pot2;&lt;br /&gt;
        pot2 &amp;lt;- pot2 * 2;&lt;br /&gt;
        i &amp;lt;- i - 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per verificar si una cadena és un nombre binari vàlid&lt;br /&gt;
Funcion esValid &amp;lt;- EsBinari(binari)&lt;br /&gt;
    Definir esValid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    esValid &amp;lt;- Verdadero;&lt;br /&gt;
    i &amp;lt;- 0;&lt;br /&gt;
    // Comprovar que tots els caràcters són '0' o '1'&lt;br /&gt;
    Mientras i &amp;lt; longitud(binari) Y esValid Hacer&lt;br /&gt;
        Si no (subcadena(binari, i, i) = &amp;quot;0&amp;quot; O subcadena(binari, i, i) = &amp;quot;1&amp;quot;) Entonces&lt;br /&gt;
            esValid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
        i &amp;lt;- i + 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Programa per gestionar DNI: obtenir la lletra, validar un DNI i sortir&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio Como Entero;&lt;br /&gt;
	Definir numeroDNI, dni Como Cadena;&lt;br /&gt;
    opcio &amp;lt;- 0;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions &lt;br /&gt;
        Escribir &amp;quot;1. Obtenir lletra DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Validar DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
                Escribir &amp;quot;Introdueix el número del DNI (8 dígits): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer numeroDNI;&lt;br /&gt;
                Si validarNumeroDNI(numeroDNI) Entonces&lt;br /&gt;
                    Escribir &amp;quot;La lletra corresponent és: &amp;quot;, obtenirLletraDNI(numeroDNI);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El número de DNI ha de tenir 8 dígits numèrics.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Validar si un DNI complet (número i lletra) és correcte&lt;br /&gt;
                Escribir &amp;quot;Introdueix el DNI complet (8 dígits i 1 lletra): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer dni;&lt;br /&gt;
                Si validarDNI(dni) Entonces&lt;br /&gt;
                    Si esDNIValid(dni) Entonces&lt;br /&gt;
                        Escribir &amp;quot;El DNI és vàlid.&amp;quot;;&lt;br /&gt;
                    Sino&lt;br /&gt;
                        Escribir &amp;quot;El DNI no és vàlid.&amp;quot;;&lt;br /&gt;
                    FinSi&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El format del DNI no és correcte.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:&lt;br /&gt;
                // Finalitzar el programa&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un número de DNI té exactament 8 dígits numèrics&lt;br /&gt;
Funcion es_valid &amp;lt;- validarNumeroDNI(numero)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(numero) &amp;lt;&amp;gt; 8 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        i &amp;lt;- 0;&lt;br /&gt;
        Mientras i &amp;lt; 8 Y es_valid Hacer&lt;br /&gt;
            // Comprovar que cada caràcter és un dígit&lt;br /&gt;
            Si no (subcadena(numero, i, i) &amp;gt;= '0' Y subcadena(numero, i, i) &amp;lt;= '9') Entonces&lt;br /&gt;
				es_valid &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
            i &amp;lt;- i + 1;&lt;br /&gt;
        FinMientras&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un DNI complet té el format correcte (8 dígits + 1 lletra)&lt;br /&gt;
Funcion es_valid &amp;lt;- validarDNI(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(dni) &amp;lt;&amp;gt; 9 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        es_valid &amp;lt;- validarNumeroDNI(subcadena(dni,0,7);&lt;br /&gt;
        // Comprovar que l'últim caràcter és una lletra majúscula&lt;br /&gt;
        Si no (Mayusculas(subcadena(dni, 8, 8)) &amp;gt;= 'A') Y (Mayusculas(subcadena(dni, 8, 8)) &amp;lt;= 'Z') Entonces&lt;br /&gt;
            es_valid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
Funcion lletra &amp;lt;- obtenirLletraDNI(numero) &lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    Definir lletres Como Cadena;&lt;br /&gt;
    lletres &amp;lt;- &amp;quot;TRWAGMYFPDXBNJZSQVHLCKE&amp;quot;;&lt;br /&gt;
    Definir index Como Entero;&lt;br /&gt;
    // Calcular la lletra en base al residu del número de DNI dividit per 23&lt;br /&gt;
    index &amp;lt;- ConvertirANumero(numero) mod 23;&lt;br /&gt;
    lletra &amp;lt;- subcadena(lletres, index, index);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per comprovar si un DNI és vàlid comparant la lletra calculada amb la introduïda&lt;br /&gt;
Funcion es_valid &amp;lt;- esDNIValid(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir numero Como Cadena;&lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    // Separar el número i la lletra del DNI&lt;br /&gt;
    numero &amp;lt;- subcadena(dni, 0, 7);&lt;br /&gt;
    lletra &amp;lt;- mayusculas(subcadena(dni, 8, 8));&lt;br /&gt;
    // Validar el número i comparar la lletra calculada&lt;br /&gt;
    es_valid &amp;lt;- lletra = obtenirLletraDNI(numero);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EndevinarNumero&lt;br /&gt;
	Definir limit_inferior, limit_superior, elmeunumero Como Entero;&lt;br /&gt;
	Definir opcio como Caracter;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	intents&amp;lt;-0;	&lt;br /&gt;
	//Es demana el primer interval&lt;br /&gt;
	ObtenirLimits(limit_inferior, limit_superior);&lt;br /&gt;
	//Es va repetint fins que s'encerti el número&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Escrivim el número proposat (què serà el número intermedi de l'interval)&lt;br /&gt;
		elmeunumero&amp;lt;-generarNumero(limit_inferior,limit_superior);&lt;br /&gt;
		Escribir &amp;quot;Has pensant en el número?:&amp;quot;, elmeunumero;&lt;br /&gt;
		//Incrementem el nombre d'intents&lt;br /&gt;
		intents&amp;lt;-intents+1;&lt;br /&gt;
		//Llegim l'opció, si no heu encertat es modifica alguns dels límits i es torna a proposar un nou número&lt;br /&gt;
		opcio&amp;lt;-LlegirOpcio();&lt;br /&gt;
		Si no Mayusculas(opcio)=&amp;quot;S&amp;quot; Entonces&lt;br /&gt;
			actualitzarLimits(opcio, elmeunumero, limit_inferior, limit_superior);&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot;;&lt;br /&gt;
	//S'escriu els intents que ha necessitat per encertar-ho&lt;br /&gt;
	Escribir &amp;quot;Ho he encertat en &amp;quot;,intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion num &amp;lt;- generarNumero(liminf,limsup)&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	num&amp;lt;-Trunc((liminf+limsup)/2);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- llegirOpcio&lt;br /&gt;
	Definir opcio Como Caracter;&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;¿Es correcte?&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;S: si es correcte.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;A: si es més alt que el número a endevinar.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;B: si es més baix que el número a enevinar.&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot; o Mayusculas(opcio)=&amp;quot;A&amp;quot; o Mayusculas(opcio)=&amp;quot;B&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion actualitzarLimits(opcio, num, liminf Por Referencia, limsup Por Referencia)&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
		liminf&amp;lt;-num + 1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		limsup&amp;lt;-num - 1;&lt;br /&gt;
	FinSi             &lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion  ObtenirLimits(liminf Por Referencia, limsup por Referencia)&lt;br /&gt;
Escribir &amp;quot;Pensa un número...&amp;quot;;&lt;br /&gt;
//Es demana el primer interval&lt;br /&gt;
Escribir &amp;quot;Necessito saber linterval on es troba el número:&amp;quot;;&lt;br /&gt;
	Repetir&lt;br /&gt;
		liminf &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit inferior: &amp;quot;);&lt;br /&gt;
		limsup &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit superior: &amp;quot;);	&lt;br /&gt;
	Hasta Que liminf &amp;lt; limsup;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion limit &amp;lt;- llegirLimit(missatge) &lt;br /&gt;
    Definir limit Como Entero;&lt;br /&gt;
    Repetir&lt;br /&gt;
		Escribir missatge Sin Saltar;&lt;br /&gt;
		Leer limit;&lt;br /&gt;
    Hasta Que limit &amp;gt; 0;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/ Programa que gestiona l'inici de sessió amb un màxim de 3 intents&lt;br /&gt;
&lt;br /&gt;
Proceso GestioLogin&lt;br /&gt;
    Definir user, password Como Cadena;&lt;br /&gt;
    Definir intents Como Entero;&lt;br /&gt;
    Definir accedit Como Logico;&lt;br /&gt;
    intents &amp;lt;- 0;  // Inicialitzem el comptador d'intents&lt;br /&gt;
    accedit &amp;lt;- Falso;  // Inicialment, l'usuari no ha accedit correctament&lt;br /&gt;
	&lt;br /&gt;
    // Bucle que permet a l'usuari intentar accedir fins a 3 vegades&lt;br /&gt;
    Mientras intents &amp;lt; 3 Y NO accedit Hacer&lt;br /&gt;
	LlegirCredencials(user, password);  // Demanem les credencials a l'usuari&lt;br /&gt;
	accedit &amp;lt;- Login(user, password, intents);  // Intentem fer login&lt;br /&gt;
	&lt;br /&gt;
	// Si l'usuari ha fallat, mostrem missatge d'error i intents restants&lt;br /&gt;
	Si NO accedit Entonces&lt;br /&gt;
		Escribir &amp;quot;Usuari o contrasenya incorrectes. Intents restants: &amp;quot;, 3 - intents;&lt;br /&gt;
	FinSi&lt;br /&gt;
    FinMientras&lt;br /&gt;
	&lt;br /&gt;
    // Un cop acabats els intents, mostrem el missatge final&lt;br /&gt;
    MostrarMissatgeFinal(accedit);&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Procediment per llegir les credencials de l'usuari&lt;br /&gt;
Funcion LlegirCredencials(user Por Referencia, password Por Referencia)&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom dusuari:&amp;quot;;&lt;br /&gt;
    Leer user;&lt;br /&gt;
    Escribir &amp;quot;Introdueix la contrasenya:&amp;quot;;&lt;br /&gt;
    Leer password;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció que comprova si l'usuari i la contrasenya són correctes&lt;br /&gt;
// També incrementa el nombre d'intents si l'autenticació falla&lt;br /&gt;
Funcion validar&amp;lt;-Login(user, password, intents Por Referencia)&lt;br /&gt;
    Definir validar Como Logico;&lt;br /&gt;
    Si user = &amp;quot;user1&amp;quot; Y password = &amp;quot;1@-27&amp;quot; Entonces&lt;br /&gt;
        validar &amp;lt;- Verdadero; // Si les credencials són correctes, retornem Cert;&lt;br /&gt;
    Sino&lt;br /&gt;
        intents &amp;lt;- intents + 1;  // Si són incorrectes, incrementem el comptador d'intents&lt;br /&gt;
        validar &amp;lt;- Falso;  // Retornem Fals per indicar que no s'ha pogut iniciar sessió&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Procediment que mostra un missatge final segons si l'usuari ha accedit correctament o no&lt;br /&gt;
Funcion MostrarMissatgeFinal(accedit)&lt;br /&gt;
    Si accedit Entonces&lt;br /&gt;
        Escribir &amp;quot;Accés concedit!&amp;quot;;  // Si l'usuari ha entrat correctament, ho indiquem&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;Has superat el nombre dintents permesos. Accés denegat.&amp;quot;;  // Si ha esgotat els intents, deneguem l'accés&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Convertir_Temps&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
		opcio &amp;lt;- Menu();&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir &amp;quot;Total en segons: &amp;quot;, A_Seconds();&lt;br /&gt;
			2:&lt;br /&gt;
				Definir h, m, s Como Entero;&lt;br /&gt;
				A_HMS(h, m, s);&lt;br /&gt;
				Escribir &amp;quot;Hores: &amp;quot;, h, &amp;quot; Minuts: &amp;quot;, m, &amp;quot; Segons: &amp;quot;, s;&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Sortint del programa...&amp;quot;;&lt;br /&gt;
		Fin Segun;&lt;br /&gt;
	Hasta Que opcio = 3;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- Menu&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
	Escribir &amp;quot;Menú dopcions:&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;1. Convertir hores, minuts i segons a segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2. Convertir segons a hores, minuts i segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Selecciona una opció (1-3):&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que opcio &amp;gt;= 1 Y opcio &amp;lt;= 3;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion segons &amp;lt;- A_Seconds&lt;br /&gt;
	Definir h, m, s, segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix hores, minuts i segons: &amp;quot;;&lt;br /&gt;
	Leer h, m, s;&lt;br /&gt;
	segons &amp;lt;- (h * 3600) + (m * 60) + s;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion A_HMS(h Por Referencia, m Por Referencia, s Por Referencia )&lt;br /&gt;
	Definir segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix segons: &amp;quot;;&lt;br /&gt;
	Leer segons;&lt;br /&gt;
	h &amp;lt;- Trunc(segons / 3600);&lt;br /&gt;
	m &amp;lt;- Trunc((segons % 3600) / 60);&lt;br /&gt;
	s &amp;lt;- (segons % 3600) % 60;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirAPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment IncialitzarPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Recorre el vector i inicialitza els seus elements a *. &lt;br /&gt;
//El * representa que l'element és buit.&lt;br /&gt;
//Paràmetres d'entrada: Grandària del vector&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion InicialitzarPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	Para i&amp;lt;-0 hasta size_pila-1 Hacer&lt;br /&gt;
		pila[i]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció LongitudPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un comptador amb els elements de la pila.&lt;br /&gt;
//Recorre el vector mentre no troba un * o arriba al final.&lt;br /&gt;
//Paràmetres d'entrada: mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion size &amp;lt;- LongitudPila(pila,size_pila)&lt;br /&gt;
	Definir size Como Entero;&lt;br /&gt;
	size&amp;lt;-0;&lt;br /&gt;
	Mientras size&amp;lt;size_pila Y pila[size]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		size&amp;lt;-size+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaBuidaPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un valor lògic indicant si la pila és buida.&lt;br /&gt;
//Està buida si la longitud és 0.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultat &amp;lt;- EstaBuidaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=0 Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaPlenaPila: Rep un vector (pila) i la seva mida.&lt;br /&gt;
//Retorna un valor lògic indicant si la pila és plena.&lt;br /&gt;
//Està plena si la longitud és igual a la mida del vector.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultadt &amp;lt;- EstaPlenaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=size_pila Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment AfegirAPilaPila: Rep un vector (pila), la seva mida i un element (cadena)&lt;br /&gt;
//Si no està plena, afegeix l'element a la següent posició buida,&lt;br /&gt;
//l'index del qual és igual a la Longitud de la pila.&lt;br /&gt;
//Si és plena, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion AfegirAPila(cad, pila Por Referencia,size_pila)&lt;br /&gt;
	Si no EstaPlenaPila(pila,size_pila) Entonces&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)]&amp;lt;-cad;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot afegir element. La pila és plena&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció TreureDeLaPila: Rep un vector (pila), la seva mida i torna &lt;br /&gt;
//l'element que s'ha introduït en darrer lloc, si no és buida.&lt;br /&gt;
//L'índex d'aquest element serà la longitud de la pila - 1&lt;br /&gt;
//L'element en aquesta posició es buida, és a dir, s'inicialitza a &amp;quot;*&amp;quot;.&lt;br /&gt;
//Si és buida, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//Dada retornada: L'element&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion cad &amp;lt;- TreureDeLaPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir cad Como Caracter;&lt;br /&gt;
	Si no EstaBuidaPila(pila,size_pila) Entonces&lt;br /&gt;
		cad &amp;lt;- pila[LongitudPila(pila,size_pila)-1];&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)-1]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot treure element. La pila és buida&amp;quot;;&lt;br /&gt;
		cad&amp;lt;-&amp;quot;&amp;quot;;	&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EscriurePila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Mostra els elements del vector fins que arribi al final o es trobi un *.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion EscriurePila(pila,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	i&amp;lt;-0;&lt;br /&gt;
	Mientras i&amp;lt;size_pila y pila[i]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Escribir Sin Saltar pila[i],&amp;quot; &amp;quot;;&lt;br /&gt;
		i&amp;lt;-i+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Realitza un programa principal que ens permeti utilitzar funcions per manipular piles.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso ProgramaPila&lt;br /&gt;
	Definir lamevapila Como Caracter;&lt;br /&gt;
	Dimension lamevapila[10];&lt;br /&gt;
	Definir mida_pila como Entero;&lt;br /&gt;
	Definir element Como Caracter;&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	mida_pila&amp;lt;-10;&lt;br /&gt;
	InicialitzarPila(lamevapila,mida_pila);&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;1.- Afegir element a la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2.- Treure element de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3.- Longitud de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;4.- Mostrar pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;5.- Sortir&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir sin Saltar &amp;quot;Nom de la cadena per afegir a la pila:&amp;quot;;&lt;br /&gt;
				Leer element;&lt;br /&gt;
				AfegirAPila(element,lamevapila,mida_pila);&lt;br /&gt;
			2:&lt;br /&gt;
				Escribir TreureDeLaPila(lamevapila,mida_pila);&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Longitud: &amp;quot;,LongitudPila(lamevapila,mida_pila);&lt;br /&gt;
			4:&lt;br /&gt;
				EscriurePila(lamevapila,mida_pila);&lt;br /&gt;
			5:&lt;br /&gt;
				&lt;br /&gt;
			De Otro Modo:&lt;br /&gt;
				Escribir &amp;quot;Opció incorrecta&amp;quot;;&lt;br /&gt;
		FinSegun&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que opcio=5;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Función EstaRepetido: Recibe un número y un vector de cuatro números y comprueba&lt;br /&gt;
// si el número no está en el vector.&lt;br /&gt;
//Parámetro de entrada: Número y vector&lt;br /&gt;
//Dato devuelto: Valor lógico: Verdadero si el número está en el vector y falso si no.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion repetido &amp;lt;- EstaRepetido(num,vector)&lt;br /&gt;
	Definir repetido Como Logico;&lt;br /&gt;
	Definir indice Como Entero;&lt;br /&gt;
	repetido&amp;lt;-Falso;&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		Si num=vector[indice] Entonces&lt;br /&gt;
			repetido&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento GenerarSecuencia: Recibe un vector que se inicializa con 4 enteros &lt;br /&gt;
//no repetidos&lt;br /&gt;
//Parámetro de entrada y salida: Vector de 4 enteros&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion GenerarSecuencia(vector Por Referencia)&lt;br /&gt;
	Definir  indice Como Entero;&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	//Se incializa el vector para que se pueda comprobar si tiene algún número repetido&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		vector[indice] &amp;lt;- -1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Se inicializa cada elemento con un número&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		//Se comprueba que no tenga número repetidos&lt;br /&gt;
		Repetir&lt;br /&gt;
			num&amp;lt;-Aleatorio(0,9);&lt;br /&gt;
		Hasta Que no EstaRepetido(num,vector);&lt;br /&gt;
		vector[indice]&amp;lt;-num;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento LeerSecuencia: Recibe un vector que se inicializa con 4 enteros &lt;br /&gt;
//leídos por teclado por el usuario, asegurando de que no se introduce ninguno &lt;br /&gt;
//repetido.&lt;br /&gt;
//Parámetro de entrada y salida: Vector de 4 enteros&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion LeerSecuencia(vector por Referencia)&lt;br /&gt;
	Definir  i,num Como Entero;&lt;br /&gt;
	Definir repetido como Logico;&lt;br /&gt;
	//Se inicializa el vector para que se pueda comprobar si tiene algún número repetido&lt;br /&gt;
	Para i&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		vector[i] &amp;lt;- -1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Se inicializa cada elemento con un número leído por teclado&lt;br /&gt;
	Para i&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Repetir //Se comprueba que el número leído no se haya repetido&lt;br /&gt;
			Escribir sin Saltar &amp;quot;Número &amp;quot;,i+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer num;&lt;br /&gt;
			repetido&amp;lt;-EstaRepetido(num,vector);&lt;br /&gt;
			Si repetido Entonces&lt;br /&gt;
				Escribir &amp;quot;No debes indicar números repetidos.&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		Hasta Que no repetido;&lt;br /&gt;
		vector[i]&amp;lt;-num;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento ComprobarSecuencia: Recibe dos vectores, el secreto y el introducido&lt;br /&gt;
//por el usuario y devuelve el número de coincidencias en la misma posición (muertos)&lt;br /&gt;
// y las coincidencias en distintas posición (heridos).&lt;br /&gt;
//Parámetros de entrada: Dos vectores&lt;br /&gt;
//Parámetro de entrada y salida: muertos y heridos&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion ComprobarSecuencia(secreto,usuario,m Por Referencia,h Por Referencia)&lt;br /&gt;
	Definir indice_secreto,indice_usuario como Entero;&lt;br /&gt;
	//recorro los dos vectores&lt;br /&gt;
	Para indice_secreto&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indice_usuario&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			Si secreto[indice_secreto]=usuario[indice_usuario] Entonces&lt;br /&gt;
				//Si el elemento coincide y además están en la misma posición, incremento los muertos.&lt;br /&gt;
				Si indice_secreto=indice_usuario Entonces&lt;br /&gt;
					m&amp;lt;-m+1;&lt;br /&gt;
				SiNo&lt;br /&gt;
					//Si el elemento coincide pero no están en la misma posición, incremento los heridos.&lt;br /&gt;
					h&amp;lt;-h+1;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Vamos a programar el juego &amp;quot;Mastermind&amp;quot;, para ello el programa debe &amp;quot;eligir&amp;quot; un &lt;br /&gt;
//número de cuatro cifras (sin cifras repetidas), que será el código que el jugador &lt;br /&gt;
//debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en &lt;br /&gt;
//una propuesta de un código posible que escribe el jugador, y una respuesta del &lt;br /&gt;
//programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
// * Número de &amp;quot;MUERTOS&amp;quot;: Es la cantidad de dígitos que están en el número secreto &lt;br /&gt;
//y en la misma posición,&lt;br /&gt;
// * Número de &amp;quot;HERIDOS:&amp;quot; Es la cantidad de dígitos que están en el número secreto &lt;br /&gt;
//pero no en la misma posición.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso MisterMind&lt;br /&gt;
	Definir indice,intentos Como Entero;&lt;br /&gt;
	Definir numero Como Caracter;&lt;br /&gt;
	Definir resultados Como Caracter;&lt;br /&gt;
	Dimension resultados[100];&lt;br /&gt;
	Definir secreto,usuario como Entero;&lt;br /&gt;
	Definir muertos,heridos como Entero;&lt;br /&gt;
	Dimension secreto[4];&lt;br /&gt;
	Dimension usuario[4];&lt;br /&gt;
		&lt;br /&gt;
	//Se genera el número secreto a adivinar&lt;br /&gt;
	GenerarSecuencia(secreto);&lt;br /&gt;
	//Se repeti hasta que se acierte, número de muertos = 4&lt;br /&gt;
	intentos&amp;lt;-0;&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Leemos la secuencia propuesta por el usuario&lt;br /&gt;
		LeerSecuencia(usuario);&lt;br /&gt;
		muertos&amp;lt;-0;&lt;br /&gt;
		heridos&amp;lt;-0;&lt;br /&gt;
		//Se comprueba la propuesta&lt;br /&gt;
		ComprobarSecuencia(secreto,usuario,muertos,heridos);&lt;br /&gt;
		//Voy a guardar el numero, con el resultado&lt;br /&gt;
		numero&amp;lt;-&amp;quot;&amp;quot;;&lt;br /&gt;
		Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
			numero&amp;lt;-concatenar(numero,convertiratexto(usuario[indice]));&lt;br /&gt;
		FinPara&lt;br /&gt;
		//Y se imprimen los muertos y heridos&lt;br /&gt;
		resultados[intentos]&amp;lt;- Concatenar(numero,concatenar(&amp;quot; - MUERTOS: &amp;quot;,concatenar(convertiratexto(muertos),concatenar(&amp;quot; - HERIDOS: &amp;quot;,convertiratexto(heridos)))));&lt;br /&gt;
		//Muestro los resiltados&lt;br /&gt;
		Borrar Pantalla;&lt;br /&gt;
		Para indice&amp;lt;-intentos Hasta 0 con paso -1 Hacer&lt;br /&gt;
			Escribir resultados[indice];&lt;br /&gt;
		FinPara&lt;br /&gt;
		intentos&amp;lt;-intentos+1;&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que muertos=4;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el&lt;br /&gt;
programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso bacteris&lt;br /&gt;
    Definir generacio_actual, seguent_generacio, temp_matriu Como Entero;&lt;br /&gt;
	Dimension generacio_actual[30,30], seguent_generacio[30,30], temp_matriu[30,30];&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    Definir iteracions, i, j Como Entero;&lt;br /&gt;
	&lt;br /&gt;
    iteracions &amp;lt;- 0;&lt;br /&gt;
    estable &amp;lt;- Falso;&lt;br /&gt;
	&lt;br /&gt;
    GenerarGeneracioInicial(generacio_actual);&lt;br /&gt;
    MostrarGeneracio(generacio_actual);&lt;br /&gt;
	&lt;br /&gt;
    Mientras No estable Y iteracions &amp;lt; 500 Hacer&lt;br /&gt;
        GenerarSeguentGeneracio(generacio_actual, seguent_generacio);&lt;br /&gt;
        estable &amp;lt;- CompararGeneracions(generacio_actual, seguent_generacio);&lt;br /&gt;
        &lt;br /&gt;
        // Copiem seguent_generacio a generacio_actual&lt;br /&gt;
        Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
				generacio_actual[i,j] &amp;lt;- seguent_generacio[i,j];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
&lt;br /&gt;
iteracions &amp;lt;- iteracions + 1;&lt;br /&gt;
FinMientras&lt;br /&gt;
&lt;br /&gt;
MostrarGeneracio(generacio_actual);&lt;br /&gt;
Escribir &amp;quot;Nombre diteracions fins estabilització: &amp;quot;, iteracions;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Omple la matriu amb valors 0 o 1 aleatoris&lt;br /&gt;
SubProceso GenerarGeneracioInicial(matriu Por Referencia)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
            matriu[i,j] &amp;lt;- Aleatorio(0,1);&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Mostra per pantalla la generació&lt;br /&gt;
SubProceso MostrarGeneracio(matriu)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Escribir Sin Saltar matriu[i,j], &amp;quot; &amp;quot;;&lt;br /&gt;
        FinPara&lt;br /&gt;
        Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
    FinPara&lt;br /&gt;
    Escribir &amp;quot;------------------------------&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Genera la nova generació segons les regles&lt;br /&gt;
SubProceso GenerarSeguentGeneracio(actual, nova Por Referencia)&lt;br /&gt;
    Definir i, j, v Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            v &amp;lt;- ComptarVeins(actual, i, j);&lt;br /&gt;
            Si actual[i,j] = 1 Entonces&lt;br /&gt;
                Si v = 2 O v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Supervivència&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Mort (solitud o asfíxia)&lt;br /&gt;
                FinSi&lt;br /&gt;
            Sino&lt;br /&gt;
                Si v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Naixement&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Continua buida&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Compta quants veïns vius hi ha al voltant de (x, y)&lt;br /&gt;
Funcion count &amp;lt;- ComptarVeins(matriu, x, z)&lt;br /&gt;
    Definir dx, dz, i, j, count Como Entero;&lt;br /&gt;
    count &amp;lt;- 0;&lt;br /&gt;
    Para dx &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para dz &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si No (dx = 0 Y dz = 0) Entonces&lt;br /&gt;
                i &amp;lt;- x + dx;&lt;br /&gt;
                j &amp;lt;- z + dz;&lt;br /&gt;
                Si i &amp;gt;= 0 Y i &amp;lt;= 29 Y j &amp;gt;= 0 Y j &amp;lt;= 29 Entonces&lt;br /&gt;
                    count &amp;lt;- count + matriu[i,j];&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Compara dues generacions per veure si són iguals&lt;br /&gt;
Funcion estable &amp;lt;- CompararGeneracions(gen1, gen2)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    estable &amp;lt;- Verdadero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si gen1[i,j] &amp;lt;&amp;gt; gen2[i,j] Entonces&lt;br /&gt;
                estable &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
   &lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19287</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19287"/>
				<updated>2026-04-13T13:23:10Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis Recursivitat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algoritme amb pseudocodi que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algoritme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 &lt;br /&gt;
b) num1=1 num2=2 &lt;br /&gt;
c) num1=2 num2=1 &lt;br /&gt;
d) num1=2 num2=2 &lt;br /&gt;
e) num1=0 num2=0 &lt;br /&gt;
f) num1=1 num2=0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 &lt;br /&gt;
b) num1=3 num2=4 &lt;br /&gt;
c) num1=4 num2=3 &lt;br /&gt;
d) num1=4 num2=4 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 &lt;br /&gt;
b) num1=1 num2=2 num3=3 &lt;br /&gt;
c) num1=1 num2=3 num3=2 &lt;br /&gt;
d) num1=2 num2=1 num3=3 &lt;br /&gt;
e) num1=2 num2=3 num3=1 &lt;br /&gt;
f) num1=3 num2=2 num3=1 &lt;br /&gt;
g) num1=3 num2=1 num3=2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que demani un número ente 1 i 10 i mostri la seva taula de multiplicar.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1, Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval fins que el límit inferior sigui més gran que el superior.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis proves===&lt;br /&gt;
&lt;br /&gt;
==CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dias, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': Preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::Preu (taula de 5 reals), Quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::Suma, NumMajor, Aricles_Sucursal2, MajorRec, TotalSucursal, TotalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa en pseudocodi que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejercicio 14&lt;br /&gt;
&lt;br /&gt;
Vamos a crear un programa para trabajar con una pila. Una pila es una estructura de datos que nos permite guardar un conjunto de variables. La característica fundamental es que el último elemento que se añade al conjunto es el primero que se puede sacar.&lt;br /&gt;
&lt;br /&gt;
Para representar una pila vamos a utilizar un arreglo (vector) de cadena de caracteres con tamaño 10, por lo tanto la pila no podrá tener más de 10 elementos.&lt;br /&gt;
&lt;br /&gt;
Vamos a crear varias funciones para trabajar con la pila:&lt;br /&gt;
&lt;br /&gt;
IncializarPila: Como tenemos un arreglo de 10 elementos de cadenas tenemos que inicializarlo e introducir un carácter (por ejemplo un * que indique que ese elemento del arreglo no corresponde con un dato de la pila. Esta función inicializa el vector con ese carácter.&lt;br /&gt;
LongitudPila: Función que recibe una pila y devuelve el número de elementos que tiene.&lt;br /&gt;
EstaVaciaPila: Función que recibe una pila y que devuelve si la pila está vacía, no tiene elementos.&lt;br /&gt;
EstaLlenaPila: Función que recibe una pila y que devuelve si la pila está llena.&lt;br /&gt;
AddPila: función que recibe una cadena de caracteres y una pila, y añade la cadena a la pila, si no está llena. si esta llena muestra un mensaje de error.&lt;br /&gt;
SacarDeLaPila: Función que recibe una pila y devuelve el último elemento añadido y lo borra de la pila. Si la pila está vacía muestra un mensaje de error.&lt;br /&gt;
EscribirPila: Función que recibe una pila y muestra en pantalla los elementos de la pila.&lt;br /&gt;
Realiza un programa principal que nos permita usar las funciones anterior, que nos muestre un menú, con las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
Añadir elemento a la pila&lt;br /&gt;
Sacar elemento de la pila&lt;br /&gt;
Longitud de la pila&lt;br /&gt;
Mostrar pila&lt;br /&gt;
Salir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Más ejercicios&lt;br /&gt;
&lt;br /&gt;
Ejercicio 9&lt;br /&gt;
&lt;br /&gt;
Vamos a programar el juego “Mastermind”, para ello el programa debe “eligir” un número de cuatro cifras (sin cifras repetidas), que será el código que el jugador debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en una propuesta de un código posible que escribe el jugador, y una respuesta del programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
&lt;br /&gt;
Número de “MUERTOS”: Es la cantidad de dígitos que están en el número secreto y en la misma posición,&lt;br /&gt;
Número de “HERIDOS:” Es la cantidad de dígitos que están en el número secreto pero no en la misma posición.&lt;br /&gt;
Por ejemplo, si el código que eligió el programa es el 2607, y el jugador propone el 1406, el programa le debe responder un MUERTO (el 0, que está en el código original en el mismo lugar, el tercero), y un HERIDO (el 6, que también está en el código original, pero en la segunda posición, no en el cuarto como fue propuesto).&lt;br /&gt;
&lt;br /&gt;
Ejercicio 10&lt;br /&gt;
&lt;br /&gt;
Escribe un programa para jugar al ahorcado.&lt;br /&gt;
&lt;br /&gt;
Un jugador introduce una palabra secreta y otro jugador tratará de adivinarla.&lt;br /&gt;
Aparecerá la palabra oculta (se mostrará un conjunto de asteriscos con la longitud de la palabra que hay que adivinar).&lt;br /&gt;
El programa te va pidiendo letras.&lt;br /&gt;
Si la letra está en la palabra, se mostrar la palabra mostrando las letras acertadas y los asteriscos en las letras que faltan por averiguar.&lt;br /&gt;
Cada vez que se introduce una letra se muestra las letras que has introducido anteriormente.&lt;br /&gt;
Si la letra no se encuentra en la palabra se suma un fallo. Según el número de fallos se mostrará el dibujo del ahorcado cada vez ms completo.&lt;br /&gt;
Si introduces todas las letras de la palabra has ganada y te mostrará el número de intentos que has necesitado.&lt;br /&gt;
Si produces 6 fallos, habrás perdido y se mostrará el dibujo del ahorcado completo.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis previs===&lt;br /&gt;
&lt;br /&gt;
1. Feu un algoritme amb pseudocodi per calcular la distancia recorreguda (m) per un mòbil que té una velocitat constant (m/s) durant un temps T. Considerar moviment rectilini uniforme.&lt;br /&gt;
&lt;br /&gt;
2. Feu un algoritme amb pseudocodi per obtenir la nota mitjà d'un estudiant a partir de les seves tres notes parcials.&lt;br /&gt;
&lt;br /&gt;
3. Feu un algoritme amb pseudocodi que demani el nombre de respostes correctes, incorrectes i en blanc corresponents a una prova i mostri la puntuació final considerant, que per cada resposta correcte obtindrà 4 punts, per cada resposta incorrecta obtindrà -1 punt i per les respostes en blanc obtindrà 0 punts.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algoritme amb pseudocodi per trobar la paga d'un treballador en funció de les hores treballades en el mes i de la tarifa per hora.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme amb pseudocodi que a partir de l'any de naixement i de l'any actual ens indiqui si és o no major d'edat.&lt;br /&gt;
&lt;br /&gt;
6. Feu un algoritme amb pseudocodi que demani l'edat de dos germans i ens digui qui és el més gran i quants anys de diferència té amb el menor.&lt;br /&gt;
&lt;br /&gt;
7. Feu un algoritme amb pseudocodi que ens digui si una operari obté o no incentius en la seva producció setmanal (de dilluns a dissabte). Cal dir que per obtenir incentius cal que l'operari hagi obtingut una mitjà mínima en la seva producció diària de 100 unitats. &lt;br /&gt;
&lt;br /&gt;
8. Feu un algoritme amb pseudocodi que llegeixi 3 números enters diferents entre si i ens indiqui el número més gran dels tres.&lt;br /&gt;
&lt;br /&gt;
9. Feu un algoritme amb pseudocodi per identifica el tipus de triangle coneixent els seus costats.&lt;br /&gt;
&lt;br /&gt;
-Tots els costats diferents: Escalè / tots els costats iguals: Equilàter / la resta: Isòsceles  &lt;br /&gt;
&lt;br /&gt;
10. Feu un algoritme amb pseudocodi que llegeixi un número enter entre 1 i 10 i ens el mostri en números romans.&lt;br /&gt;
&lt;br /&gt;
(1: I; 2: II; 3: III; 4: IV 5: V; 6: VI; 7: VII; 8: VIII; 9: IX; 10: X)&lt;br /&gt;
&lt;br /&gt;
11.- Feu un algoritme amb pseudocodi per mostrar el nombres parells entre 1 i 10.&lt;br /&gt;
&lt;br /&gt;
12.- Feu un algoritme amb pseudocodi per mostrar el salari mitjà d'un grup d'empleats.&lt;br /&gt;
&lt;br /&gt;
13.- Feu un algoritme amb pseudocodi que demani l'edat de 200 persones i mostri quants majors i menors d'edat hi ha.&lt;br /&gt;
&lt;br /&gt;
===Exercicis PER===&lt;br /&gt;
&lt;br /&gt;
1. Imprimir els números del 1 al 100.&lt;br /&gt;
&lt;br /&gt;
2. Imprimir els números parells del 0 al 98.&lt;br /&gt;
&lt;br /&gt;
3. Imprimir els números del 100 al 1.&lt;br /&gt;
&lt;br /&gt;
4. Demanar cinc números i mostrar la suma.&lt;br /&gt;
&lt;br /&gt;
5. Igual que l'anterior però només sumant els valors més grans de 10.&lt;br /&gt;
&lt;br /&gt;
6. Calcular el producte dels números del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
7. Demanar cinc números i mostrar el valor més gran.&lt;br /&gt;
&lt;br /&gt;
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.&lt;br /&gt;
&lt;br /&gt;
8. Imprimir 20 asteriscos a la mateixa línia.&lt;br /&gt;
&lt;br /&gt;
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis Recursivitat==&lt;br /&gt;
&lt;br /&gt;
Indicar quina serà la sortida dels procediments següents:&lt;br /&gt;
&lt;br /&gt;
1a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
1b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final de veritat &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p1(6)'''?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p2(10,8)'''?&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p3(a, b)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p3(a - 1, b + a);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar b, &amp;quot; &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p3(5,3)'''?&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si eliminéssim el '''else''' ( fent sempre el print ) i des del programa principal féssim:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Para i &amp;lt;- 1 Hasta 5 Con Paso 1 Hacer&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;p3 (&amp;quot;, i, &amp;quot;):&amp;quot;;&lt;br /&gt;
    p3(i, 0);&lt;br /&gt;
Fin Para&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p4(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p4(a - 1);&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;fi? &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p4(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p4(a - 1);&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;fi? &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p4(5)'''?&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p5(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        a &amp;lt;- a - 1;&lt;br /&gt;
        p5(a);&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p5(5)'''?&lt;br /&gt;
&lt;br /&gt;
6)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p6(a)&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    Para i &amp;lt;- a Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
        p6(i - 1);&lt;br /&gt;
    Fin Para&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p6(4)'''?&lt;br /&gt;
&lt;br /&gt;
7)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Funcion f &amp;lt;- f1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        f &amp;lt;- f1(a - 1) + 1;&lt;br /&gt;
    SiNo&lt;br /&gt;
        f &amp;lt;- 0;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f1(10''')?&lt;br /&gt;
&lt;br /&gt;
8 )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Funcion f &amp;lt;- f2(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        f &amp;lt;- f2(a - 1) + a;&lt;br /&gt;
    SiNo&lt;br /&gt;
        f &amp;lt;- 0;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f2(10)'''?&lt;br /&gt;
&lt;br /&gt;
9)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Aquí tens la traducció a PSeInt:&lt;br /&gt;
&lt;br /&gt;
Funcion f &amp;lt;- f3(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        r &amp;lt;- a;&lt;br /&gt;
        Para i &amp;lt;- a-1 Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
            r &amp;lt;- r + f3(i);&lt;br /&gt;
        Fin Para&lt;br /&gt;
        f &amp;lt;- r;&lt;br /&gt;
    SiNo&lt;br /&gt;
        f &amp;lt;- a;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f3(6)'''?&lt;br /&gt;
&lt;br /&gt;
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla&lt;br /&gt;
&lt;br /&gt;
10)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Funcion f &amp;lt;- f4(x)&lt;br /&gt;
    Si x &amp;gt; 100 Entonces&lt;br /&gt;
        f &amp;lt;- x - 10;&lt;br /&gt;
    SiNo&lt;br /&gt;
        f &amp;lt;- f4(f4(x + 11));&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill.&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MPO_-_Pensament_computacional&amp;diff=19286</id>
		<title>MPO - Pensament computacional</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MPO_-_Pensament_computacional&amp;diff=19286"/>
				<updated>2026-04-13T13:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* AEA2 Pensament computacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==AEA1 Raonament lògic==&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Raponament lògic / AEA1A1: Exercicis |AEA1A1: Exercicis]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Raponament lògic / AEA1A1: Solucions exercicis |AEA1A1: Solucions exercicis]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.cs.us.es/~jalonso/cursos/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2 Pensament computacional==&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacional / Introducció | Introducció]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacional / Entorn de treball | Entorn de treball: PSeInt]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[MPO - Pensament computacional / AEA2A1: Seqüències - Castells de gots |AEA2A1: Seqüències - Castells de gots]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacional / AEA2A2: Seqüències - Laberints amb variables |AEA2A2: Seqüències - Laberints amb variables]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacional / AEA2A3: Reconeixement de patrons |AEA2A3: Reconeixement de patrons]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacionsl / AEA2A4: Seqüències - Diagrames de fluxe |AEA2A4: Seqüències - Diagrames de fluxe]]&lt;br /&gt;
&lt;br /&gt;
:*[[MPO - Pensament computacional / AEA2A5: Seqüències - Code.org |AEA2A5: Seqüències - Code.org]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Algoritmes / pseudocodi====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.josedomingo.org/pledin/2019/05/curso-introduccion-programacion-pseudocodigo// Continguts Pseudocodi PSeInt]&lt;br /&gt;
&lt;br /&gt;
:*[[MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi |Exercicis Pseudocodi]]&lt;br /&gt;
&lt;br /&gt;
:*[[MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi |Solucions Exercicis Pseudocodi]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--:*[[MOPT - Lògica i programacio / Pseudocodi: Continguts Pseudocodi |Pseudocodi]]--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19285</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19285"/>
				<updated>2026-04-13T13:16:55Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis Recursivitat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algoritme amb pseudocodi que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algoritme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 &lt;br /&gt;
b) num1=1 num2=2 &lt;br /&gt;
c) num1=2 num2=1 &lt;br /&gt;
d) num1=2 num2=2 &lt;br /&gt;
e) num1=0 num2=0 &lt;br /&gt;
f) num1=1 num2=0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 &lt;br /&gt;
b) num1=3 num2=4 &lt;br /&gt;
c) num1=4 num2=3 &lt;br /&gt;
d) num1=4 num2=4 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 &lt;br /&gt;
b) num1=1 num2=2 num3=3 &lt;br /&gt;
c) num1=1 num2=3 num3=2 &lt;br /&gt;
d) num1=2 num2=1 num3=3 &lt;br /&gt;
e) num1=2 num2=3 num3=1 &lt;br /&gt;
f) num1=3 num2=2 num3=1 &lt;br /&gt;
g) num1=3 num2=1 num3=2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que demani un número ente 1 i 10 i mostri la seva taula de multiplicar.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1, Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval fins que el límit inferior sigui més gran que el superior.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis proves===&lt;br /&gt;
&lt;br /&gt;
==CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dias, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': Preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::Preu (taula de 5 reals), Quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::Suma, NumMajor, Aricles_Sucursal2, MajorRec, TotalSucursal, TotalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa en pseudocodi que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejercicio 14&lt;br /&gt;
&lt;br /&gt;
Vamos a crear un programa para trabajar con una pila. Una pila es una estructura de datos que nos permite guardar un conjunto de variables. La característica fundamental es que el último elemento que se añade al conjunto es el primero que se puede sacar.&lt;br /&gt;
&lt;br /&gt;
Para representar una pila vamos a utilizar un arreglo (vector) de cadena de caracteres con tamaño 10, por lo tanto la pila no podrá tener más de 10 elementos.&lt;br /&gt;
&lt;br /&gt;
Vamos a crear varias funciones para trabajar con la pila:&lt;br /&gt;
&lt;br /&gt;
IncializarPila: Como tenemos un arreglo de 10 elementos de cadenas tenemos que inicializarlo e introducir un carácter (por ejemplo un * que indique que ese elemento del arreglo no corresponde con un dato de la pila. Esta función inicializa el vector con ese carácter.&lt;br /&gt;
LongitudPila: Función que recibe una pila y devuelve el número de elementos que tiene.&lt;br /&gt;
EstaVaciaPila: Función que recibe una pila y que devuelve si la pila está vacía, no tiene elementos.&lt;br /&gt;
EstaLlenaPila: Función que recibe una pila y que devuelve si la pila está llena.&lt;br /&gt;
AddPila: función que recibe una cadena de caracteres y una pila, y añade la cadena a la pila, si no está llena. si esta llena muestra un mensaje de error.&lt;br /&gt;
SacarDeLaPila: Función que recibe una pila y devuelve el último elemento añadido y lo borra de la pila. Si la pila está vacía muestra un mensaje de error.&lt;br /&gt;
EscribirPila: Función que recibe una pila y muestra en pantalla los elementos de la pila.&lt;br /&gt;
Realiza un programa principal que nos permita usar las funciones anterior, que nos muestre un menú, con las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
Añadir elemento a la pila&lt;br /&gt;
Sacar elemento de la pila&lt;br /&gt;
Longitud de la pila&lt;br /&gt;
Mostrar pila&lt;br /&gt;
Salir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Más ejercicios&lt;br /&gt;
&lt;br /&gt;
Ejercicio 9&lt;br /&gt;
&lt;br /&gt;
Vamos a programar el juego “Mastermind”, para ello el programa debe “eligir” un número de cuatro cifras (sin cifras repetidas), que será el código que el jugador debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en una propuesta de un código posible que escribe el jugador, y una respuesta del programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
&lt;br /&gt;
Número de “MUERTOS”: Es la cantidad de dígitos que están en el número secreto y en la misma posición,&lt;br /&gt;
Número de “HERIDOS:” Es la cantidad de dígitos que están en el número secreto pero no en la misma posición.&lt;br /&gt;
Por ejemplo, si el código que eligió el programa es el 2607, y el jugador propone el 1406, el programa le debe responder un MUERTO (el 0, que está en el código original en el mismo lugar, el tercero), y un HERIDO (el 6, que también está en el código original, pero en la segunda posición, no en el cuarto como fue propuesto).&lt;br /&gt;
&lt;br /&gt;
Ejercicio 10&lt;br /&gt;
&lt;br /&gt;
Escribe un programa para jugar al ahorcado.&lt;br /&gt;
&lt;br /&gt;
Un jugador introduce una palabra secreta y otro jugador tratará de adivinarla.&lt;br /&gt;
Aparecerá la palabra oculta (se mostrará un conjunto de asteriscos con la longitud de la palabra que hay que adivinar).&lt;br /&gt;
El programa te va pidiendo letras.&lt;br /&gt;
Si la letra está en la palabra, se mostrar la palabra mostrando las letras acertadas y los asteriscos en las letras que faltan por averiguar.&lt;br /&gt;
Cada vez que se introduce una letra se muestra las letras que has introducido anteriormente.&lt;br /&gt;
Si la letra no se encuentra en la palabra se suma un fallo. Según el número de fallos se mostrará el dibujo del ahorcado cada vez ms completo.&lt;br /&gt;
Si introduces todas las letras de la palabra has ganada y te mostrará el número de intentos que has necesitado.&lt;br /&gt;
Si produces 6 fallos, habrás perdido y se mostrará el dibujo del ahorcado completo.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis previs===&lt;br /&gt;
&lt;br /&gt;
1. Feu un algoritme amb pseudocodi per calcular la distancia recorreguda (m) per un mòbil que té una velocitat constant (m/s) durant un temps T. Considerar moviment rectilini uniforme.&lt;br /&gt;
&lt;br /&gt;
2. Feu un algoritme amb pseudocodi per obtenir la nota mitjà d'un estudiant a partir de les seves tres notes parcials.&lt;br /&gt;
&lt;br /&gt;
3. Feu un algoritme amb pseudocodi que demani el nombre de respostes correctes, incorrectes i en blanc corresponents a una prova i mostri la puntuació final considerant, que per cada resposta correcte obtindrà 4 punts, per cada resposta incorrecta obtindrà -1 punt i per les respostes en blanc obtindrà 0 punts.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algoritme amb pseudocodi per trobar la paga d'un treballador en funció de les hores treballades en el mes i de la tarifa per hora.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme amb pseudocodi que a partir de l'any de naixement i de l'any actual ens indiqui si és o no major d'edat.&lt;br /&gt;
&lt;br /&gt;
6. Feu un algoritme amb pseudocodi que demani l'edat de dos germans i ens digui qui és el més gran i quants anys de diferència té amb el menor.&lt;br /&gt;
&lt;br /&gt;
7. Feu un algoritme amb pseudocodi que ens digui si una operari obté o no incentius en la seva producció setmanal (de dilluns a dissabte). Cal dir que per obtenir incentius cal que l'operari hagi obtingut una mitjà mínima en la seva producció diària de 100 unitats. &lt;br /&gt;
&lt;br /&gt;
8. Feu un algoritme amb pseudocodi que llegeixi 3 números enters diferents entre si i ens indiqui el número més gran dels tres.&lt;br /&gt;
&lt;br /&gt;
9. Feu un algoritme amb pseudocodi per identifica el tipus de triangle coneixent els seus costats.&lt;br /&gt;
&lt;br /&gt;
-Tots els costats diferents: Escalè / tots els costats iguals: Equilàter / la resta: Isòsceles  &lt;br /&gt;
&lt;br /&gt;
10. Feu un algoritme amb pseudocodi que llegeixi un número enter entre 1 i 10 i ens el mostri en números romans.&lt;br /&gt;
&lt;br /&gt;
(1: I; 2: II; 3: III; 4: IV 5: V; 6: VI; 7: VII; 8: VIII; 9: IX; 10: X)&lt;br /&gt;
&lt;br /&gt;
11.- Feu un algoritme amb pseudocodi per mostrar el nombres parells entre 1 i 10.&lt;br /&gt;
&lt;br /&gt;
12.- Feu un algoritme amb pseudocodi per mostrar el salari mitjà d'un grup d'empleats.&lt;br /&gt;
&lt;br /&gt;
13.- Feu un algoritme amb pseudocodi que demani l'edat de 200 persones i mostri quants majors i menors d'edat hi ha.&lt;br /&gt;
&lt;br /&gt;
===Exercicis PER===&lt;br /&gt;
&lt;br /&gt;
1. Imprimir els números del 1 al 100.&lt;br /&gt;
&lt;br /&gt;
2. Imprimir els números parells del 0 al 98.&lt;br /&gt;
&lt;br /&gt;
3. Imprimir els números del 100 al 1.&lt;br /&gt;
&lt;br /&gt;
4. Demanar cinc números i mostrar la suma.&lt;br /&gt;
&lt;br /&gt;
5. Igual que l'anterior però només sumant els valors més grans de 10.&lt;br /&gt;
&lt;br /&gt;
6. Calcular el producte dels números del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
7. Demanar cinc números i mostrar el valor més gran.&lt;br /&gt;
&lt;br /&gt;
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.&lt;br /&gt;
&lt;br /&gt;
8. Imprimir 20 asteriscos a la mateixa línia.&lt;br /&gt;
&lt;br /&gt;
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis Recursivitat==&lt;br /&gt;
&lt;br /&gt;
Indicar quina serà la sortida dels procediments següents:&lt;br /&gt;
&lt;br /&gt;
1a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
1b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final de veritat &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p1(6)'''?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p2(10,8)'''?&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p3(a, b)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p3(a - 1, b + a);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar b, &amp;quot; &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p3(5,3)'''?&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si eliminéssim el '''else''' ( fent sempre el print ) i des del programa principal féssim:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Para i &amp;lt;- 1 Hasta 5 Con Paso 1 Hacer&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;p3 (&amp;quot;, i, &amp;quot;):&amp;quot;;&lt;br /&gt;
    p3(i, 0);&lt;br /&gt;
Fin Para&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p4(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p4(a - 1);&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;fi? &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p4(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p4(a - 1);&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;fi? &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p4(5)'''?&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p5( int a ) {&lt;br /&gt;
   if (a&amp;gt;0 {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      a=a-1;&lt;br /&gt;
      p5(a);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p5(5)'''?&lt;br /&gt;
&lt;br /&gt;
6)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p6(int a ){&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
   for ( int i =a; i&amp;gt;0;i--){&lt;br /&gt;
      p6(i-1);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p6(4)'''?&lt;br /&gt;
&lt;br /&gt;
7)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f1 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f1(a-1) + 1;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f1(10''')?&lt;br /&gt;
&lt;br /&gt;
8 )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f2 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f2(a-1) + a;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f2(10)'''?&lt;br /&gt;
&lt;br /&gt;
9)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f3 ( int a ) {&lt;br /&gt;
   int r,i,f;&lt;br /&gt;
   if (a&amp;gt;0) {&lt;br /&gt;
      r=a;&lt;br /&gt;
      for ( i= a-1;i&amp;gt;0;i--){&lt;br /&gt;
         r= r + f3(i);&lt;br /&gt;
      }&lt;br /&gt;
      f=r;&lt;br /&gt;
   }&lt;br /&gt;
   else f=a;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f3(6)'''?&lt;br /&gt;
&lt;br /&gt;
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla&lt;br /&gt;
&lt;br /&gt;
10)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f4( int x ){&lt;br /&gt;
   int f;&lt;br /&gt;
   if (x&amp;gt; 100)  f=x-10;&lt;br /&gt;
   else f= f4(f4(x+11));&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill.&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19284</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19284"/>
				<updated>2026-04-13T13:15:17Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis Recursivitat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algoritme amb pseudocodi que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algoritme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 &lt;br /&gt;
b) num1=1 num2=2 &lt;br /&gt;
c) num1=2 num2=1 &lt;br /&gt;
d) num1=2 num2=2 &lt;br /&gt;
e) num1=0 num2=0 &lt;br /&gt;
f) num1=1 num2=0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 &lt;br /&gt;
b) num1=3 num2=4 &lt;br /&gt;
c) num1=4 num2=3 &lt;br /&gt;
d) num1=4 num2=4 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 &lt;br /&gt;
b) num1=1 num2=2 num3=3 &lt;br /&gt;
c) num1=1 num2=3 num3=2 &lt;br /&gt;
d) num1=2 num2=1 num3=3 &lt;br /&gt;
e) num1=2 num2=3 num3=1 &lt;br /&gt;
f) num1=3 num2=2 num3=1 &lt;br /&gt;
g) num1=3 num2=1 num3=2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que demani un número ente 1 i 10 i mostri la seva taula de multiplicar.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1, Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval fins que el límit inferior sigui més gran que el superior.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis proves===&lt;br /&gt;
&lt;br /&gt;
==CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dias, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': Preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::Preu (taula de 5 reals), Quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::Suma, NumMajor, Aricles_Sucursal2, MajorRec, TotalSucursal, TotalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa en pseudocodi que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejercicio 14&lt;br /&gt;
&lt;br /&gt;
Vamos a crear un programa para trabajar con una pila. Una pila es una estructura de datos que nos permite guardar un conjunto de variables. La característica fundamental es que el último elemento que se añade al conjunto es el primero que se puede sacar.&lt;br /&gt;
&lt;br /&gt;
Para representar una pila vamos a utilizar un arreglo (vector) de cadena de caracteres con tamaño 10, por lo tanto la pila no podrá tener más de 10 elementos.&lt;br /&gt;
&lt;br /&gt;
Vamos a crear varias funciones para trabajar con la pila:&lt;br /&gt;
&lt;br /&gt;
IncializarPila: Como tenemos un arreglo de 10 elementos de cadenas tenemos que inicializarlo e introducir un carácter (por ejemplo un * que indique que ese elemento del arreglo no corresponde con un dato de la pila. Esta función inicializa el vector con ese carácter.&lt;br /&gt;
LongitudPila: Función que recibe una pila y devuelve el número de elementos que tiene.&lt;br /&gt;
EstaVaciaPila: Función que recibe una pila y que devuelve si la pila está vacía, no tiene elementos.&lt;br /&gt;
EstaLlenaPila: Función que recibe una pila y que devuelve si la pila está llena.&lt;br /&gt;
AddPila: función que recibe una cadena de caracteres y una pila, y añade la cadena a la pila, si no está llena. si esta llena muestra un mensaje de error.&lt;br /&gt;
SacarDeLaPila: Función que recibe una pila y devuelve el último elemento añadido y lo borra de la pila. Si la pila está vacía muestra un mensaje de error.&lt;br /&gt;
EscribirPila: Función que recibe una pila y muestra en pantalla los elementos de la pila.&lt;br /&gt;
Realiza un programa principal que nos permita usar las funciones anterior, que nos muestre un menú, con las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
Añadir elemento a la pila&lt;br /&gt;
Sacar elemento de la pila&lt;br /&gt;
Longitud de la pila&lt;br /&gt;
Mostrar pila&lt;br /&gt;
Salir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Más ejercicios&lt;br /&gt;
&lt;br /&gt;
Ejercicio 9&lt;br /&gt;
&lt;br /&gt;
Vamos a programar el juego “Mastermind”, para ello el programa debe “eligir” un número de cuatro cifras (sin cifras repetidas), que será el código que el jugador debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en una propuesta de un código posible que escribe el jugador, y una respuesta del programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
&lt;br /&gt;
Número de “MUERTOS”: Es la cantidad de dígitos que están en el número secreto y en la misma posición,&lt;br /&gt;
Número de “HERIDOS:” Es la cantidad de dígitos que están en el número secreto pero no en la misma posición.&lt;br /&gt;
Por ejemplo, si el código que eligió el programa es el 2607, y el jugador propone el 1406, el programa le debe responder un MUERTO (el 0, que está en el código original en el mismo lugar, el tercero), y un HERIDO (el 6, que también está en el código original, pero en la segunda posición, no en el cuarto como fue propuesto).&lt;br /&gt;
&lt;br /&gt;
Ejercicio 10&lt;br /&gt;
&lt;br /&gt;
Escribe un programa para jugar al ahorcado.&lt;br /&gt;
&lt;br /&gt;
Un jugador introduce una palabra secreta y otro jugador tratará de adivinarla.&lt;br /&gt;
Aparecerá la palabra oculta (se mostrará un conjunto de asteriscos con la longitud de la palabra que hay que adivinar).&lt;br /&gt;
El programa te va pidiendo letras.&lt;br /&gt;
Si la letra está en la palabra, se mostrar la palabra mostrando las letras acertadas y los asteriscos en las letras que faltan por averiguar.&lt;br /&gt;
Cada vez que se introduce una letra se muestra las letras que has introducido anteriormente.&lt;br /&gt;
Si la letra no se encuentra en la palabra se suma un fallo. Según el número de fallos se mostrará el dibujo del ahorcado cada vez ms completo.&lt;br /&gt;
Si introduces todas las letras de la palabra has ganada y te mostrará el número de intentos que has necesitado.&lt;br /&gt;
Si produces 6 fallos, habrás perdido y se mostrará el dibujo del ahorcado completo.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis previs===&lt;br /&gt;
&lt;br /&gt;
1. Feu un algoritme amb pseudocodi per calcular la distancia recorreguda (m) per un mòbil que té una velocitat constant (m/s) durant un temps T. Considerar moviment rectilini uniforme.&lt;br /&gt;
&lt;br /&gt;
2. Feu un algoritme amb pseudocodi per obtenir la nota mitjà d'un estudiant a partir de les seves tres notes parcials.&lt;br /&gt;
&lt;br /&gt;
3. Feu un algoritme amb pseudocodi que demani el nombre de respostes correctes, incorrectes i en blanc corresponents a una prova i mostri la puntuació final considerant, que per cada resposta correcte obtindrà 4 punts, per cada resposta incorrecta obtindrà -1 punt i per les respostes en blanc obtindrà 0 punts.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algoritme amb pseudocodi per trobar la paga d'un treballador en funció de les hores treballades en el mes i de la tarifa per hora.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme amb pseudocodi que a partir de l'any de naixement i de l'any actual ens indiqui si és o no major d'edat.&lt;br /&gt;
&lt;br /&gt;
6. Feu un algoritme amb pseudocodi que demani l'edat de dos germans i ens digui qui és el més gran i quants anys de diferència té amb el menor.&lt;br /&gt;
&lt;br /&gt;
7. Feu un algoritme amb pseudocodi que ens digui si una operari obté o no incentius en la seva producció setmanal (de dilluns a dissabte). Cal dir que per obtenir incentius cal que l'operari hagi obtingut una mitjà mínima en la seva producció diària de 100 unitats. &lt;br /&gt;
&lt;br /&gt;
8. Feu un algoritme amb pseudocodi que llegeixi 3 números enters diferents entre si i ens indiqui el número més gran dels tres.&lt;br /&gt;
&lt;br /&gt;
9. Feu un algoritme amb pseudocodi per identifica el tipus de triangle coneixent els seus costats.&lt;br /&gt;
&lt;br /&gt;
-Tots els costats diferents: Escalè / tots els costats iguals: Equilàter / la resta: Isòsceles  &lt;br /&gt;
&lt;br /&gt;
10. Feu un algoritme amb pseudocodi que llegeixi un número enter entre 1 i 10 i ens el mostri en números romans.&lt;br /&gt;
&lt;br /&gt;
(1: I; 2: II; 3: III; 4: IV 5: V; 6: VI; 7: VII; 8: VIII; 9: IX; 10: X)&lt;br /&gt;
&lt;br /&gt;
11.- Feu un algoritme amb pseudocodi per mostrar el nombres parells entre 1 i 10.&lt;br /&gt;
&lt;br /&gt;
12.- Feu un algoritme amb pseudocodi per mostrar el salari mitjà d'un grup d'empleats.&lt;br /&gt;
&lt;br /&gt;
13.- Feu un algoritme amb pseudocodi que demani l'edat de 200 persones i mostri quants majors i menors d'edat hi ha.&lt;br /&gt;
&lt;br /&gt;
===Exercicis PER===&lt;br /&gt;
&lt;br /&gt;
1. Imprimir els números del 1 al 100.&lt;br /&gt;
&lt;br /&gt;
2. Imprimir els números parells del 0 al 98.&lt;br /&gt;
&lt;br /&gt;
3. Imprimir els números del 100 al 1.&lt;br /&gt;
&lt;br /&gt;
4. Demanar cinc números i mostrar la suma.&lt;br /&gt;
&lt;br /&gt;
5. Igual que l'anterior però només sumant els valors més grans de 10.&lt;br /&gt;
&lt;br /&gt;
6. Calcular el producte dels números del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
7. Demanar cinc números i mostrar el valor més gran.&lt;br /&gt;
&lt;br /&gt;
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.&lt;br /&gt;
&lt;br /&gt;
8. Imprimir 20 asteriscos a la mateixa línia.&lt;br /&gt;
&lt;br /&gt;
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis Recursivitat==&lt;br /&gt;
&lt;br /&gt;
Indicar quina serà la sortida dels procediments següents:&lt;br /&gt;
&lt;br /&gt;
1a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
1b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final de veritat &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p1(6)'''?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p2(a, b)&lt;br /&gt;
    Si a % b != 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p2(a + 1, b);&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p2(10,8)'''?&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p3(a, b)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        p3(a - 1, b + a);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar b, &amp;quot; &amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p3(5,3)'''?&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si eliminéssim el '''else''' ( fent sempre el print ) i des del programa principal féssim:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Para i &amp;lt;- 1 Hasta 5 Con Paso 1 Hacer&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;p3 (&amp;quot;, i, &amp;quot;):&amp;quot;;&lt;br /&gt;
    p3(i, 0);&lt;br /&gt;
Fin Para&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      System.out.print(”fi? “);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(”fi? “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p4(5)'''?&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p5( int a ) {&lt;br /&gt;
   if (a&amp;gt;0 {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      a=a-1;&lt;br /&gt;
      p5(a);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p5(5)'''?&lt;br /&gt;
&lt;br /&gt;
6)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p6(int a ){&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
   for ( int i =a; i&amp;gt;0;i--){&lt;br /&gt;
      p6(i-1);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p6(4)'''?&lt;br /&gt;
&lt;br /&gt;
7)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f1 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f1(a-1) + 1;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f1(10''')?&lt;br /&gt;
&lt;br /&gt;
8 )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f2 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f2(a-1) + a;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f2(10)'''?&lt;br /&gt;
&lt;br /&gt;
9)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f3 ( int a ) {&lt;br /&gt;
   int r,i,f;&lt;br /&gt;
   if (a&amp;gt;0) {&lt;br /&gt;
      r=a;&lt;br /&gt;
      for ( i= a-1;i&amp;gt;0;i--){&lt;br /&gt;
         r= r + f3(i);&lt;br /&gt;
      }&lt;br /&gt;
      f=r;&lt;br /&gt;
   }&lt;br /&gt;
   else f=a;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f3(6)'''?&lt;br /&gt;
&lt;br /&gt;
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla&lt;br /&gt;
&lt;br /&gt;
10)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f4( int x ){&lt;br /&gt;
   int f;&lt;br /&gt;
   if (x&amp;gt; 100)  f=x-10;&lt;br /&gt;
   else f= f4(f4(x+11));&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill.&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19283</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19283"/>
				<updated>2026-04-13T13:12:05Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algoritme amb pseudocodi que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algoritme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 &lt;br /&gt;
b) num1=1 num2=2 &lt;br /&gt;
c) num1=2 num2=1 &lt;br /&gt;
d) num1=2 num2=2 &lt;br /&gt;
e) num1=0 num2=0 &lt;br /&gt;
f) num1=1 num2=0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 &lt;br /&gt;
b) num1=3 num2=4 &lt;br /&gt;
c) num1=4 num2=3 &lt;br /&gt;
d) num1=4 num2=4 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 &lt;br /&gt;
b) num1=1 num2=2 num3=3 &lt;br /&gt;
c) num1=1 num2=3 num3=2 &lt;br /&gt;
d) num1=2 num2=1 num3=3 &lt;br /&gt;
e) num1=2 num2=3 num3=1 &lt;br /&gt;
f) num1=3 num2=2 num3=1 &lt;br /&gt;
g) num1=3 num2=1 num3=2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que demani un número ente 1 i 10 i mostri la seva taula de multiplicar.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1, Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval fins que el límit inferior sigui més gran que el superior.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis proves===&lt;br /&gt;
&lt;br /&gt;
==CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dias, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': Preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::Preu (taula de 5 reals), Quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::Suma, NumMajor, Aricles_Sucursal2, MajorRec, TotalSucursal, TotalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa en pseudocodi que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejercicio 14&lt;br /&gt;
&lt;br /&gt;
Vamos a crear un programa para trabajar con una pila. Una pila es una estructura de datos que nos permite guardar un conjunto de variables. La característica fundamental es que el último elemento que se añade al conjunto es el primero que se puede sacar.&lt;br /&gt;
&lt;br /&gt;
Para representar una pila vamos a utilizar un arreglo (vector) de cadena de caracteres con tamaño 10, por lo tanto la pila no podrá tener más de 10 elementos.&lt;br /&gt;
&lt;br /&gt;
Vamos a crear varias funciones para trabajar con la pila:&lt;br /&gt;
&lt;br /&gt;
IncializarPila: Como tenemos un arreglo de 10 elementos de cadenas tenemos que inicializarlo e introducir un carácter (por ejemplo un * que indique que ese elemento del arreglo no corresponde con un dato de la pila. Esta función inicializa el vector con ese carácter.&lt;br /&gt;
LongitudPila: Función que recibe una pila y devuelve el número de elementos que tiene.&lt;br /&gt;
EstaVaciaPila: Función que recibe una pila y que devuelve si la pila está vacía, no tiene elementos.&lt;br /&gt;
EstaLlenaPila: Función que recibe una pila y que devuelve si la pila está llena.&lt;br /&gt;
AddPila: función que recibe una cadena de caracteres y una pila, y añade la cadena a la pila, si no está llena. si esta llena muestra un mensaje de error.&lt;br /&gt;
SacarDeLaPila: Función que recibe una pila y devuelve el último elemento añadido y lo borra de la pila. Si la pila está vacía muestra un mensaje de error.&lt;br /&gt;
EscribirPila: Función que recibe una pila y muestra en pantalla los elementos de la pila.&lt;br /&gt;
Realiza un programa principal que nos permita usar las funciones anterior, que nos muestre un menú, con las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
Añadir elemento a la pila&lt;br /&gt;
Sacar elemento de la pila&lt;br /&gt;
Longitud de la pila&lt;br /&gt;
Mostrar pila&lt;br /&gt;
Salir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Más ejercicios&lt;br /&gt;
&lt;br /&gt;
Ejercicio 9&lt;br /&gt;
&lt;br /&gt;
Vamos a programar el juego “Mastermind”, para ello el programa debe “eligir” un número de cuatro cifras (sin cifras repetidas), que será el código que el jugador debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en una propuesta de un código posible que escribe el jugador, y una respuesta del programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
&lt;br /&gt;
Número de “MUERTOS”: Es la cantidad de dígitos que están en el número secreto y en la misma posición,&lt;br /&gt;
Número de “HERIDOS:” Es la cantidad de dígitos que están en el número secreto pero no en la misma posición.&lt;br /&gt;
Por ejemplo, si el código que eligió el programa es el 2607, y el jugador propone el 1406, el programa le debe responder un MUERTO (el 0, que está en el código original en el mismo lugar, el tercero), y un HERIDO (el 6, que también está en el código original, pero en la segunda posición, no en el cuarto como fue propuesto).&lt;br /&gt;
&lt;br /&gt;
Ejercicio 10&lt;br /&gt;
&lt;br /&gt;
Escribe un programa para jugar al ahorcado.&lt;br /&gt;
&lt;br /&gt;
Un jugador introduce una palabra secreta y otro jugador tratará de adivinarla.&lt;br /&gt;
Aparecerá la palabra oculta (se mostrará un conjunto de asteriscos con la longitud de la palabra que hay que adivinar).&lt;br /&gt;
El programa te va pidiendo letras.&lt;br /&gt;
Si la letra está en la palabra, se mostrar la palabra mostrando las letras acertadas y los asteriscos en las letras que faltan por averiguar.&lt;br /&gt;
Cada vez que se introduce una letra se muestra las letras que has introducido anteriormente.&lt;br /&gt;
Si la letra no se encuentra en la palabra se suma un fallo. Según el número de fallos se mostrará el dibujo del ahorcado cada vez ms completo.&lt;br /&gt;
Si introduces todas las letras de la palabra has ganada y te mostrará el número de intentos que has necesitado.&lt;br /&gt;
Si produces 6 fallos, habrás perdido y se mostrará el dibujo del ahorcado completo.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis previs===&lt;br /&gt;
&lt;br /&gt;
1. Feu un algoritme amb pseudocodi per calcular la distancia recorreguda (m) per un mòbil que té una velocitat constant (m/s) durant un temps T. Considerar moviment rectilini uniforme.&lt;br /&gt;
&lt;br /&gt;
2. Feu un algoritme amb pseudocodi per obtenir la nota mitjà d'un estudiant a partir de les seves tres notes parcials.&lt;br /&gt;
&lt;br /&gt;
3. Feu un algoritme amb pseudocodi que demani el nombre de respostes correctes, incorrectes i en blanc corresponents a una prova i mostri la puntuació final considerant, que per cada resposta correcte obtindrà 4 punts, per cada resposta incorrecta obtindrà -1 punt i per les respostes en blanc obtindrà 0 punts.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algoritme amb pseudocodi per trobar la paga d'un treballador en funció de les hores treballades en el mes i de la tarifa per hora.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme amb pseudocodi que a partir de l'any de naixement i de l'any actual ens indiqui si és o no major d'edat.&lt;br /&gt;
&lt;br /&gt;
6. Feu un algoritme amb pseudocodi que demani l'edat de dos germans i ens digui qui és el més gran i quants anys de diferència té amb el menor.&lt;br /&gt;
&lt;br /&gt;
7. Feu un algoritme amb pseudocodi que ens digui si una operari obté o no incentius en la seva producció setmanal (de dilluns a dissabte). Cal dir que per obtenir incentius cal que l'operari hagi obtingut una mitjà mínima en la seva producció diària de 100 unitats. &lt;br /&gt;
&lt;br /&gt;
8. Feu un algoritme amb pseudocodi que llegeixi 3 números enters diferents entre si i ens indiqui el número més gran dels tres.&lt;br /&gt;
&lt;br /&gt;
9. Feu un algoritme amb pseudocodi per identifica el tipus de triangle coneixent els seus costats.&lt;br /&gt;
&lt;br /&gt;
-Tots els costats diferents: Escalè / tots els costats iguals: Equilàter / la resta: Isòsceles  &lt;br /&gt;
&lt;br /&gt;
10. Feu un algoritme amb pseudocodi que llegeixi un número enter entre 1 i 10 i ens el mostri en números romans.&lt;br /&gt;
&lt;br /&gt;
(1: I; 2: II; 3: III; 4: IV 5: V; 6: VI; 7: VII; 8: VIII; 9: IX; 10: X)&lt;br /&gt;
&lt;br /&gt;
11.- Feu un algoritme amb pseudocodi per mostrar el nombres parells entre 1 i 10.&lt;br /&gt;
&lt;br /&gt;
12.- Feu un algoritme amb pseudocodi per mostrar el salari mitjà d'un grup d'empleats.&lt;br /&gt;
&lt;br /&gt;
13.- Feu un algoritme amb pseudocodi que demani l'edat de 200 persones i mostri quants majors i menors d'edat hi ha.&lt;br /&gt;
&lt;br /&gt;
===Exercicis PER===&lt;br /&gt;
&lt;br /&gt;
1. Imprimir els números del 1 al 100.&lt;br /&gt;
&lt;br /&gt;
2. Imprimir els números parells del 0 al 98.&lt;br /&gt;
&lt;br /&gt;
3. Imprimir els números del 100 al 1.&lt;br /&gt;
&lt;br /&gt;
4. Demanar cinc números i mostrar la suma.&lt;br /&gt;
&lt;br /&gt;
5. Igual que l'anterior però només sumant els valors més grans de 10.&lt;br /&gt;
&lt;br /&gt;
6. Calcular el producte dels números del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
7. Demanar cinc números i mostrar el valor més gran.&lt;br /&gt;
&lt;br /&gt;
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.&lt;br /&gt;
&lt;br /&gt;
8. Imprimir 20 asteriscos a la mateixa línia.&lt;br /&gt;
&lt;br /&gt;
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis Recursivitat==&lt;br /&gt;
&lt;br /&gt;
Indicar quina serà la sortida dels procediments següents:&lt;br /&gt;
&lt;br /&gt;
1a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
1b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
    Escribir Sin Saltar &amp;quot;final de veritat &amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p1(6)'''?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p2( int a , int b) {&lt;br /&gt;
   if (a%b!=0) {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      p2(a+1,b);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      System.out.print(“final”);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p2( int a , int b) {&lt;br /&gt;
   if (a%b!=0) {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      p2(a+1,b);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(“final”);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p2(10,8)'''?&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p3(int a, int b ){&lt;br /&gt;
   if (a &amp;gt; 0){&lt;br /&gt;
      p3(a-1,b+a);&lt;br /&gt;
   }&lt;br /&gt;
   else&lt;br /&gt;
   {&lt;br /&gt;
      System.out.print(b+” “);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p3(5,3)'''?&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si eliminéssim el '''else''' ( fent sempre el print ) i des del programa principal féssim:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
for (int i=1;i&amp;lt;=5;i++){&lt;br /&gt;
   System.out.print (“p3 (“+ i+”):”);&lt;br /&gt;
   p3 (i,0);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      System.out.print(”fi? “);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(”fi? “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p4(5)'''?&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p5( int a ) {&lt;br /&gt;
   if (a&amp;gt;0 {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      a=a-1;&lt;br /&gt;
      p5(a);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p5(5)'''?&lt;br /&gt;
&lt;br /&gt;
6)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p6(int a ){&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
   for ( int i =a; i&amp;gt;0;i--){&lt;br /&gt;
      p6(i-1);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p6(4)'''?&lt;br /&gt;
&lt;br /&gt;
7)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f1 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f1(a-1) + 1;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f1(10''')?&lt;br /&gt;
&lt;br /&gt;
8 )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f2 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f2(a-1) + a;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f2(10)'''?&lt;br /&gt;
&lt;br /&gt;
9)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f3 ( int a ) {&lt;br /&gt;
   int r,i,f;&lt;br /&gt;
   if (a&amp;gt;0) {&lt;br /&gt;
      r=a;&lt;br /&gt;
      for ( i= a-1;i&amp;gt;0;i--){&lt;br /&gt;
         r= r + f3(i);&lt;br /&gt;
      }&lt;br /&gt;
      f=r;&lt;br /&gt;
   }&lt;br /&gt;
   else f=a;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f3(6)'''?&lt;br /&gt;
&lt;br /&gt;
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla&lt;br /&gt;
&lt;br /&gt;
10)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f4( int x ){&lt;br /&gt;
   int f;&lt;br /&gt;
   if (x&amp;gt; 100)  f=x-10;&lt;br /&gt;
   else f= f4(f4(x+11));&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill.&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19282</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Exercicis_Pseudocodi&amp;diff=19282"/>
				<updated>2026-04-13T13:10:44Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algoritme amb pseudocodi que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algoritme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 &lt;br /&gt;
b) num1=1 num2=2 &lt;br /&gt;
c) num1=2 num2=1 &lt;br /&gt;
d) num1=2 num2=2 &lt;br /&gt;
e) num1=0 num2=0 &lt;br /&gt;
f) num1=1 num2=0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 &lt;br /&gt;
b) num1=3 num2=4 &lt;br /&gt;
c) num1=4 num2=3 &lt;br /&gt;
d) num1=4 num2=4 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 &lt;br /&gt;
b) num1=1 num2=2 num3=3 &lt;br /&gt;
c) num1=1 num2=3 num3=2 &lt;br /&gt;
d) num1=2 num2=1 num3=3 &lt;br /&gt;
e) num1=2 num2=3 num3=1 &lt;br /&gt;
f) num1=3 num2=2 num3=1 &lt;br /&gt;
g) num1=3 num2=1 num3=2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que demani un número ente 1 i 10 i mostri la seva taula de multiplicar.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1, Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval fins que el límit inferior sigui més gran que el superior.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis proves===&lt;br /&gt;
&lt;br /&gt;
==CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dias, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': Preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::Preu (taula de 5 reals), Quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::Suma, NumMajor, Aricles_Sucursal2, MajorRec, TotalSucursal, TotalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa en pseudocodi que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejercicio 14&lt;br /&gt;
&lt;br /&gt;
Vamos a crear un programa para trabajar con una pila. Una pila es una estructura de datos que nos permite guardar un conjunto de variables. La característica fundamental es que el último elemento que se añade al conjunto es el primero que se puede sacar.&lt;br /&gt;
&lt;br /&gt;
Para representar una pila vamos a utilizar un arreglo (vector) de cadena de caracteres con tamaño 10, por lo tanto la pila no podrá tener más de 10 elementos.&lt;br /&gt;
&lt;br /&gt;
Vamos a crear varias funciones para trabajar con la pila:&lt;br /&gt;
&lt;br /&gt;
IncializarPila: Como tenemos un arreglo de 10 elementos de cadenas tenemos que inicializarlo e introducir un carácter (por ejemplo un * que indique que ese elemento del arreglo no corresponde con un dato de la pila. Esta función inicializa el vector con ese carácter.&lt;br /&gt;
LongitudPila: Función que recibe una pila y devuelve el número de elementos que tiene.&lt;br /&gt;
EstaVaciaPila: Función que recibe una pila y que devuelve si la pila está vacía, no tiene elementos.&lt;br /&gt;
EstaLlenaPila: Función que recibe una pila y que devuelve si la pila está llena.&lt;br /&gt;
AddPila: función que recibe una cadena de caracteres y una pila, y añade la cadena a la pila, si no está llena. si esta llena muestra un mensaje de error.&lt;br /&gt;
SacarDeLaPila: Función que recibe una pila y devuelve el último elemento añadido y lo borra de la pila. Si la pila está vacía muestra un mensaje de error.&lt;br /&gt;
EscribirPila: Función que recibe una pila y muestra en pantalla los elementos de la pila.&lt;br /&gt;
Realiza un programa principal que nos permita usar las funciones anterior, que nos muestre un menú, con las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
Añadir elemento a la pila&lt;br /&gt;
Sacar elemento de la pila&lt;br /&gt;
Longitud de la pila&lt;br /&gt;
Mostrar pila&lt;br /&gt;
Salir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Más ejercicios&lt;br /&gt;
&lt;br /&gt;
Ejercicio 9&lt;br /&gt;
&lt;br /&gt;
Vamos a programar el juego “Mastermind”, para ello el programa debe “eligir” un número de cuatro cifras (sin cifras repetidas), que será el código que el jugador debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en una propuesta de un código posible que escribe el jugador, y una respuesta del programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
&lt;br /&gt;
Número de “MUERTOS”: Es la cantidad de dígitos que están en el número secreto y en la misma posición,&lt;br /&gt;
Número de “HERIDOS:” Es la cantidad de dígitos que están en el número secreto pero no en la misma posición.&lt;br /&gt;
Por ejemplo, si el código que eligió el programa es el 2607, y el jugador propone el 1406, el programa le debe responder un MUERTO (el 0, que está en el código original en el mismo lugar, el tercero), y un HERIDO (el 6, que también está en el código original, pero en la segunda posición, no en el cuarto como fue propuesto).&lt;br /&gt;
&lt;br /&gt;
Ejercicio 10&lt;br /&gt;
&lt;br /&gt;
Escribe un programa para jugar al ahorcado.&lt;br /&gt;
&lt;br /&gt;
Un jugador introduce una palabra secreta y otro jugador tratará de adivinarla.&lt;br /&gt;
Aparecerá la palabra oculta (se mostrará un conjunto de asteriscos con la longitud de la palabra que hay que adivinar).&lt;br /&gt;
El programa te va pidiendo letras.&lt;br /&gt;
Si la letra está en la palabra, se mostrar la palabra mostrando las letras acertadas y los asteriscos en las letras que faltan por averiguar.&lt;br /&gt;
Cada vez que se introduce una letra se muestra las letras que has introducido anteriormente.&lt;br /&gt;
Si la letra no se encuentra en la palabra se suma un fallo. Según el número de fallos se mostrará el dibujo del ahorcado cada vez ms completo.&lt;br /&gt;
Si introduces todas las letras de la palabra has ganada y te mostrará el número de intentos que has necesitado.&lt;br /&gt;
Si produces 6 fallos, habrás perdido y se mostrará el dibujo del ahorcado completo.&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis previs===&lt;br /&gt;
&lt;br /&gt;
1. Feu un algoritme amb pseudocodi per calcular la distancia recorreguda (m) per un mòbil que té una velocitat constant (m/s) durant un temps T. Considerar moviment rectilini uniforme.&lt;br /&gt;
&lt;br /&gt;
2. Feu un algoritme amb pseudocodi per obtenir la nota mitjà d'un estudiant a partir de les seves tres notes parcials.&lt;br /&gt;
&lt;br /&gt;
3. Feu un algoritme amb pseudocodi que demani el nombre de respostes correctes, incorrectes i en blanc corresponents a una prova i mostri la puntuació final considerant, que per cada resposta correcte obtindrà 4 punts, per cada resposta incorrecta obtindrà -1 punt i per les respostes en blanc obtindrà 0 punts.&lt;br /&gt;
&lt;br /&gt;
4. Feu un algoritme amb pseudocodi per trobar la paga d'un treballador en funció de les hores treballades en el mes i de la tarifa per hora.&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme amb pseudocodi que a partir de l'any de naixement i de l'any actual ens indiqui si és o no major d'edat.&lt;br /&gt;
&lt;br /&gt;
6. Feu un algoritme amb pseudocodi que demani l'edat de dos germans i ens digui qui és el més gran i quants anys de diferència té amb el menor.&lt;br /&gt;
&lt;br /&gt;
7. Feu un algoritme amb pseudocodi que ens digui si una operari obté o no incentius en la seva producció setmanal (de dilluns a dissabte). Cal dir que per obtenir incentius cal que l'operari hagi obtingut una mitjà mínima en la seva producció diària de 100 unitats. &lt;br /&gt;
&lt;br /&gt;
8. Feu un algoritme amb pseudocodi que llegeixi 3 números enters diferents entre si i ens indiqui el número més gran dels tres.&lt;br /&gt;
&lt;br /&gt;
9. Feu un algoritme amb pseudocodi per identifica el tipus de triangle coneixent els seus costats.&lt;br /&gt;
&lt;br /&gt;
-Tots els costats diferents: Escalè / tots els costats iguals: Equilàter / la resta: Isòsceles  &lt;br /&gt;
&lt;br /&gt;
10. Feu un algoritme amb pseudocodi que llegeixi un número enter entre 1 i 10 i ens el mostri en números romans.&lt;br /&gt;
&lt;br /&gt;
(1: I; 2: II; 3: III; 4: IV 5: V; 6: VI; 7: VII; 8: VIII; 9: IX; 10: X)&lt;br /&gt;
&lt;br /&gt;
11.- Feu un algoritme amb pseudocodi per mostrar el nombres parells entre 1 i 10.&lt;br /&gt;
&lt;br /&gt;
12.- Feu un algoritme amb pseudocodi per mostrar el salari mitjà d'un grup d'empleats.&lt;br /&gt;
&lt;br /&gt;
13.- Feu un algoritme amb pseudocodi que demani l'edat de 200 persones i mostri quants majors i menors d'edat hi ha.&lt;br /&gt;
&lt;br /&gt;
===Exercicis PER===&lt;br /&gt;
&lt;br /&gt;
1. Imprimir els números del 1 al 100.&lt;br /&gt;
&lt;br /&gt;
2. Imprimir els números parells del 0 al 98.&lt;br /&gt;
&lt;br /&gt;
3. Imprimir els números del 100 al 1.&lt;br /&gt;
&lt;br /&gt;
4. Demanar cinc números i mostrar la suma.&lt;br /&gt;
&lt;br /&gt;
5. Igual que l'anterior però només sumant els valors més grans de 10.&lt;br /&gt;
&lt;br /&gt;
6. Calcular el producte dels números del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
7. Demanar cinc números i mostrar el valor més gran.&lt;br /&gt;
&lt;br /&gt;
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.&lt;br /&gt;
&lt;br /&gt;
8. Imprimir 20 asteriscos a la mateixa línia.&lt;br /&gt;
&lt;br /&gt;
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exercicis Recursivitat&lt;br /&gt;
&lt;br /&gt;
Indicar quina serà la sortida dels procediments següents:&lt;br /&gt;
&lt;br /&gt;
1a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SubProceso p1(a)&lt;br /&gt;
    Si a &amp;gt; 0 Entonces&lt;br /&gt;
        Escribir Sin Saltar a, &amp;quot; &amp;quot;;&lt;br /&gt;
        p1(a - 1);&lt;br /&gt;
    SiNo&lt;br /&gt;
        Escribir &amp;quot;final&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
1b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p1( int a ) {&lt;br /&gt;
   if (a&amp;gt;0) {&lt;br /&gt;
     System.out.print(a+” “);&lt;br /&gt;
     p1(a-1);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
     System.out.print(“final”)&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
   System.out.print(”final de veritat “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p1(6)'''?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p2( int a , int b) {&lt;br /&gt;
   if (a%b!=0) {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      p2(a+1,b);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      System.out.print(“final”);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p2( int a , int b) {&lt;br /&gt;
   if (a%b!=0) {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      p2(a+1,b);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(“final”);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p2(10,8)'''?&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p3(int a, int b ){&lt;br /&gt;
   if (a &amp;gt; 0){&lt;br /&gt;
      p3(a-1,b+a);&lt;br /&gt;
   }&lt;br /&gt;
   else&lt;br /&gt;
   {&lt;br /&gt;
      System.out.print(b+” “);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p3(5,3)'''?&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si eliminéssim el '''else''' ( fent sempre el print ) i des del programa principal féssim:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
for (int i=1;i&amp;lt;=5;i++){&lt;br /&gt;
   System.out.print (“p3 (“+ i+”):”);&lt;br /&gt;
   p3 (i,0);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4a)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      System.out.print(”fi? “);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4b)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p4 ( int a) {&lt;br /&gt;
   if (a&amp;gt; 0) {&lt;br /&gt;
      p4(a-1);&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(”fi? “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p4(5)'''?&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p5( int a ) {&lt;br /&gt;
   if (a&amp;gt;0 {&lt;br /&gt;
      System.out.print(a+” “);&lt;br /&gt;
      a=a-1;&lt;br /&gt;
      p5(a);&lt;br /&gt;
   }&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p5(5)'''?&lt;br /&gt;
&lt;br /&gt;
6)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void p6(int a ){&lt;br /&gt;
   System.out.print(a+” “);&lt;br /&gt;
   for ( int i =a; i&amp;gt;0;i--){&lt;br /&gt;
      p6(i-1);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quina seria la sortida si executéssim '''p6(4)'''?&lt;br /&gt;
&lt;br /&gt;
7)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f1 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f1(a-1) + 1;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f1(10''')?&lt;br /&gt;
&lt;br /&gt;
8 )&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f2 ( int a ) {&lt;br /&gt;
   int f;&lt;br /&gt;
   if ( a&amp;gt;0) f= f2(a-1) + a;&lt;br /&gt;
   else f=0;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que retornaria '''f2(10)'''?&lt;br /&gt;
&lt;br /&gt;
9)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f3 ( int a ) {&lt;br /&gt;
   int r,i,f;&lt;br /&gt;
   if (a&amp;gt;0) {&lt;br /&gt;
      r=a;&lt;br /&gt;
      for ( i= a-1;i&amp;gt;0;i--){&lt;br /&gt;
         r= r + f3(i);&lt;br /&gt;
      }&lt;br /&gt;
      f=r;&lt;br /&gt;
   }&lt;br /&gt;
   else f=a;&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f3(6)'''?&lt;br /&gt;
&lt;br /&gt;
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla&lt;br /&gt;
&lt;br /&gt;
10)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int f4( int x ){&lt;br /&gt;
   int f;&lt;br /&gt;
   if (x&amp;gt; 100)  f=x-10;&lt;br /&gt;
   else f= f4(f4(x+11));&lt;br /&gt;
   return f;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill.&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19281</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19281"/>
				<updated>2026-04-10T14:23:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Academia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19280</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19280"/>
				<updated>2026-04-10T14:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Academia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19279</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19279"/>
				<updated>2026-04-10T14:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19278</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19278"/>
				<updated>2026-04-10T14:18:29Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Libreria OnLine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19277</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19277"/>
				<updated>2026-04-10T14:17:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* líneas de metro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19276</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=19276"/>
				<updated>2026-04-10T14:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19275</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19275"/>
				<updated>2026-04-10T14:03:58Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* AEA4: Model relacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19274</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19274"/>
				<updated>2026-04-10T14:03:19Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19273</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19273"/>
				<updated>2026-03-27T15:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19272</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19272"/>
				<updated>2026-03-27T15:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19271</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19271"/>
				<updated>2026-03-27T14:54:55Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19270</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19270"/>
				<updated>2026-03-23T18:37:11Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19269</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19269"/>
				<updated>2026-03-23T18:36:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF1:_Big_Data_i_Intel%C2%B7lig%C3%A8ncia_de_negocis&amp;diff=19268</id>
		<title>M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF1:_Big_Data_i_Intel%C2%B7lig%C3%A8ncia_de_negocis&amp;diff=19268"/>
				<updated>2026-03-16T17:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Big Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Big Data==&lt;br /&gt;
&lt;br /&gt;
:*Concepte&lt;br /&gt;
&lt;br /&gt;
:*Elements 5V&lt;br /&gt;
&lt;br /&gt;
:*Beneficis&lt;br /&gt;
&lt;br /&gt;
:*Característica clau respecte a bases de dades tradicionals&lt;br /&gt;
&lt;br /&gt;
:*Sistemes per a l'anàlisi de dades&lt;br /&gt;
&lt;br /&gt;
:*Eina per processar grans volums de dades &lt;br /&gt;
&lt;br /&gt;
:*Riscos&lt;br /&gt;
&lt;br /&gt;
==Intel·ligència de negocis==&lt;br /&gt;
&lt;br /&gt;
:*Què és?&lt;br /&gt;
&lt;br /&gt;
:*Concepte&lt;br /&gt;
&lt;br /&gt;
:*Eines&lt;br /&gt;
&lt;br /&gt;
:*Utilització per millorar vendes&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19267</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19267"/>
				<updated>2026-03-16T16:52:20Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* AEA4: Model relacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== &amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19266</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19266"/>
				<updated>2026-03-16T16:40:08Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19265</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19265"/>
				<updated>2026-03-16T16:39:26Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19264</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19264"/>
				<updated>2026-03-16T16:39:04Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19263</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19263"/>
				<updated>2026-03-16T16:38:22Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19262</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19262"/>
				<updated>2026-03-16T16:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19261</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=19261"/>
				<updated>2026-03-16T16:36:09Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA1: Llenguatge de consulta SQL==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=64eIJ9ZPhhw Optimització de consultes]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis SELECT BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA2: Llenguatges SQL: DDL, DML i DCL==&lt;br /&gt;
&lt;br /&gt;
===Continguts DCL===&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts RA2: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
'''Per si voleu aprendre més sobre DCL:'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis DDL-DML-DCL BD HR: Llenguatges SQL |Exercicis DCL, DDL i DML BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL: DDL, DML i DCL |Solucions Exercicis DDL, DML i DCL BD HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum DDL-DML]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==AEA3: Llenguatge SQL: extensió procedimental==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis repàs PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA4: Model relacional==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====Bases de dades i Sistemes gestors de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Big Data i Intel·ligència de negocis |Big Data i Intel·ligència de negocis]]&lt;br /&gt;
&lt;br /&gt;
====LOPD==== --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital] --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Model lògic relacional====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==AEA5: Bases de dades no relacionals==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalització |Exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
: pàg:35, 41, 42, 43, 46, 47, 48, 50, 51&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
MOLT IMPORTANT ABANS DE FER ELS EXERCICIS ORACLE 21.c '''alter session set &amp;quot;_ORACLE_SCRIPT&amp;quot;=true''';&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Script eliminar taules | Script eliminar taules pràctiques]]  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;H1&amp;gt;Lliurament pràctiques&amp;lt;/H1&amp;gt;&lt;br /&gt;
&amp;lt;H2&amp;gt;Han de ser executables, això implica:&amp;lt;/H2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;FONT FACE=&amp;quot;courier&amp;quot; SIZE=4 COLOR=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilitzeu l'editor Pluma (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Han de sortir tots els enunciats comentats (--)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;S'han de lliurar en fitxers de text (sense cap format)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Al final s'han d'escriure les ordres per eliminar taules i tipus en ordre correcte (DROP TABLE ..., DROP TYPE ...)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 30/04/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 07/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 14/05/2024'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
'''Data: 25/05/23'''&lt;br /&gt;
&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Crear user en ORACLE 21.c==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER SESSION SET &amp;quot;_ORACLE_SCRIPT&amp;quot;=true; &lt;br /&gt;
CREATE USER iduser IDENTIFIED BY passuser&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP&lt;br /&gt;
QUOTA 10M ON USERS;&lt;br /&gt;
GRANT CONNECT TO iduser;&lt;br /&gt;
GRANT resource TO iduser;&lt;br /&gt;
GRANT CREATE VIEW TO iduser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]]&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19260</id>
		<title>MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MOPT_-_L%C3%B2gica_i_programacio_/_Pseudocodi:_Solucions_Exercicis_Pseudocodi&amp;diff=19260"/>
				<updated>2026-03-16T14:54:20Z</updated>
		
		<summary type="html">&lt;p&gt;Rsort: /* Exercicis programació estructurada */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercicis Seqüencials==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un nom per teclat i després escriure un missatge de salutació&lt;br /&gt;
::Dades d'entrada: nom (cadena)&lt;br /&gt;
::Variables: nom (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nom&lt;br /&gt;
::2. Escriure missatge de salutació&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Saludar&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Escribir &amp;quot;Diguem el teu nom:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Hola &amp;quot;,nom;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Calcular el perímetre i l'àrea d'un rectangle atesa la base i l'alçada.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la base i l'alçada del triangle i calcular el perímetre i el àrea&lt;br /&gt;
::Dades d'entrada: base(real), alçada(real)&lt;br /&gt;
::Informació de sortida: perímetre(real) i àrea(real)&lt;br /&gt;
::Variables: base, alçada, perímetre i àrea (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir base i altura&lt;br /&gt;
::2. Calcular perímetre(2*base + 2*alçada)&lt;br /&gt;
::3. Calcular àrea (base * altura&lt;br /&gt;
::4. Mostrar perímetre i àrea&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Rectangle&lt;br /&gt;
	Definir base,alcada,perimetre,area como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la base:&amp;quot;;&lt;br /&gt;
	Leer base;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la alçada:&amp;quot;;&lt;br /&gt;
	Leer alcada;&lt;br /&gt;
	perimetre &amp;lt;- 2 * base + 2 * alcada;&lt;br /&gt;
	area &amp;lt;- base * alcada;&lt;br /&gt;
	Escribir &amp;quot;El perí­metre és &amp;quot;,perimetre,&amp;quot; y el àrea es &amp;quot;,area;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Calcular la hipotenusa d'un triangle rectangle a partir dels seus catets.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir la longitud dels dos catets i calcular la hipotenusa. &lt;br /&gt;
::(Teorema de Pitàgores)&lt;br /&gt;
::Variables d'entrada: catet1(real), catet2(real)&lt;br /&gt;
::Variables de sortida: hipotenusa(real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir la longitud dels catets&lt;br /&gt;
::2. Calcular hipotenusa (En un triangle rectangle el quadrat de la hipotenusa  és igual a la suma dels quadrats dels catets.)&lt;br /&gt;
::Per tant la hipotenusa és igual a l'arrel quadrada de la suma dels quadrats dels catets (funció raiz).&lt;br /&gt;
::3. Mostrar la hipotenusa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHipotenusa&lt;br /&gt;
	Definir catet1,catet2,hipotenusa como Real;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el catet 1:&amp;quot;;&lt;br /&gt;
	Leer catet1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la catet 2:&amp;quot;;&lt;br /&gt;
	Leer catet2;&lt;br /&gt;
	hipotenusa &amp;lt;- raiz(catet1 ^ 2 + catet2 ^ 2);&lt;br /&gt;
	Escribir &amp;quot;La hipotenusa és &amp;quot;, hipotenusa;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Escriu un algorisme amb pseudocodi que demani dos valors numèrics i mostri la seva suma, resta, divisió i multiplicació.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir dos números, calcular la suma, resta, multiplicació i divisió. &lt;br /&gt;
::Dades d'entrada: Els dos números (real)&lt;br /&gt;
::Informació de sortida: suma, resta, multiplicació, divisió(real)&lt;br /&gt;
::Variables: num1, num2 (Real). &lt;br /&gt;
::Considero que les sortides no cal desar-la en variables.&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els números&lt;br /&gt;
::2. Mostrar suma, resta, multiplicació i divisió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Calcular&lt;br /&gt;
   Definir num1,num2 Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir &amp;quot;La suma &amp;quot;, num1+num2;&lt;br /&gt;
   Escribir &amp;quot;La resta és &amp;quot;, num1-num2;&lt;br /&gt;
   Escribir &amp;quot;La multiplicació és &amp;quot;, num1*num2;&lt;br /&gt;
   Escribir &amp;quot;La divisió és &amp;quot;, num1/num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Feu un algoritme per calcular la mitjana de tres números demanats per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir tres números i calcular la mitjana. Suma dels tres partits 3.&lt;br /&gt;
::Dades d'entrada: els tres números (real)&lt;br /&gt;
::Informació de sortida: la mitjana (real)&lt;br /&gt;
::Variables: num1,num2,num3, mitjana (Real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els tres números&lt;br /&gt;
::2. Calcular la mitjana: (num1+num2+num3)/3&lt;br /&gt;
:.3. Mostrar la mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularMitjana&lt;br /&gt;
   Definir num1,num2,num3, mitjana Como Real;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
   Leer num1;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
   Leer num2;&lt;br /&gt;
   Escribir Sin Saltar &amp;quot;Introdueix el número 3:&amp;quot;;&lt;br /&gt;
   Leer num3;&lt;br /&gt;
   mitjana &amp;lt;- (num1 + num2 + num3) /3;&lt;br /&gt;
   Escribir &amp;quot;La mitjana és &amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.&lt;br /&gt;
::Dades d'entrada: minuts (entero)&lt;br /&gt;
::Informació de sortida:hores i minuts (entero)&lt;br /&gt;
::Variables: minuts, res_hores, res_minuts (entero).&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir els minuts&lt;br /&gt;
::2. Calcular a quantes hores correspon, divisió sencera entre 60.&lt;br /&gt;
::3. calcular els minuts restants: resta de la divisió entre 60.&lt;br /&gt;
::4. Mostrar hores i minuts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularHoras&lt;br /&gt;
	Definir minuts, res_hores, res_min como Entero;&lt;br /&gt;
	Escribir &amp;quot;Indica la quantitat de minuts:&amp;quot;;&lt;br /&gt;
	Leer minuts;&lt;br /&gt;
	res_hores&amp;lt;-trunc(minuts / 60);&lt;br /&gt;
	res_min&amp;lt;-minuts % 60;&lt;br /&gt;
	Escribir res_hores,&amp;quot; horas i &amp;quot;,res_min,&amp;quot; minuts.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Un venedor rep un sou base més un 10% extra per comissió de les vendes, el venedor desitja saber quants diners obtindrà per concepte de comissions per les tres vendes que realitza al mes i el total que rebrà al mes prenent en compte el sou base i comissions.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El venedor té un sou base més una comissió del 10% per cada venda. &lt;br /&gt;
::Fa tres vendes.&lt;br /&gt;
::Dades dentrada: sou base, les tres vendes (real).&lt;br /&gt;
::Informació de sortida: comissions i sou total (real).&lt;br /&gt;
::Variables: sou_base, venda1, venda2, venda3, comissió(real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir sou base&lt;br /&gt;
::2. Llegir les tres vendes&lt;br /&gt;
::3. Calculeu les comissions. Suma del 10% de cada venda.&lt;br /&gt;
::4. Mostra comissió&lt;br /&gt;
::5. Mostra sou total: sou_base+comissió&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_base, venda1, venda2, venda3, comissio como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica el sou base:&amp;quot;;&lt;br /&gt;
	Leer sou_base;&lt;br /&gt;
	Escribir &amp;quot;Indica import primera venda 1:&amp;quot;;&lt;br /&gt;
	Leer venda1;&lt;br /&gt;
	Escribir &amp;quot;Indica import segona venda 2:&amp;quot;;&lt;br /&gt;
	Leer venda2;&lt;br /&gt;
	Escribir &amp;quot;Indica import tercera venda 3:&amp;quot;;&lt;br /&gt;
	Leer venda3;&lt;br /&gt;
	comissio&amp;lt;-venda1*0.1+venda2*0.1+venda3*0.1;&lt;br /&gt;
	Escribir &amp;quot;Comissió per vendes:&amp;quot;,comissio;&lt;br /&gt;
	Escribir &amp;quot;Sou total:&amp;quot;, sou_base+comissio;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Un alumne vol saber quina serà la seva qualificació final en la matèria d'Algorismes. Aquesta qualificació es compon dels percentatges següents:&lt;br /&gt;
&lt;br /&gt;
:* 55% de la mitjana de les tres qualificacions parcials.&lt;br /&gt;
:* 30% de la qualificació de lexamen final.&lt;br /&gt;
:* 15% de la qualificació d'un treball final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final. &lt;br /&gt;
::Posteriorment es calculen els percentatges i es sumen.&lt;br /&gt;
::Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).&lt;br /&gt;
::Informació de sortida: nota final (real).&lt;br /&gt;
::Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir les notes parcials, de l'examen final i de la feina.&lt;br /&gt;
::2. Calculem la nota 55% de la mitjana de les notes parcials, més el 30% de la nota de l'examen més 15% de la nota del treball.&lt;br /&gt;
::3. Mostra nota final&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularNota&lt;br /&gt;
	Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 1:&amp;quot;;&lt;br /&gt;
	Leer parcial1;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 2:&amp;quot;;&lt;br /&gt;
	Leer parcial2;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del parcial 3:&amp;quot;;&lt;br /&gt;
	Leer parcial3;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del examen:&amp;quot;;&lt;br /&gt;
	Leer examen;&lt;br /&gt;
	Escribir &amp;quot;Indica la nota del treball:&amp;quot;;&lt;br /&gt;
	Leer treball;&lt;br /&gt;
	nota &amp;lt;- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;&lt;br /&gt;
	Escribir &amp;quot;Nota final:&amp;quot;, nota;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Escriu un algoritme amb pseudocodi que demani dos valors numèrics, intercanviï els valors de les variables, i mostri les variables amb els valors intercanviats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen el valor de dues variables (el tipus pot ser el que vulguem). &lt;br /&gt;
::Cal intercanviar els valors de les variables&lt;br /&gt;
::Dades d'entrada: dos números en dues variables (enters).&lt;br /&gt;
::Informació de sortida: Les dues variables però amb les dades canviades (enter)&lt;br /&gt;
::Variables: num1, num2 (enters).&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir els dos números&lt;br /&gt;
::2. Intercanvio els valors. Necessito una variable auxiliar (aux). &lt;br /&gt;
:: Assigno &amp;quot;num1&amp;quot; a &amp;quot;aux&amp;quot;, &amp;quot;num2&amp;quot; a &amp;quot;num1&amp;quot; i &amp;quot;aux&amp;quot; a &amp;quot;num2&amp;quot;&lt;br /&gt;
::3. Mostra &amp;quot;num1&amp;quot; i &amp;quot;num2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso IntercanviarVariables&lt;br /&gt;
	Definir num1,num2,aux  como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix valor de la variable num2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	aux &amp;lt;- num1;&lt;br /&gt;
	num1 &amp;lt;- num2;&lt;br /&gt;
	num2 &amp;lt;- aux;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num1: &amp;quot;, num1;&lt;br /&gt;
	Escribir &amp;quot;Nou valor de num2: &amp;quot;, num2;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar un algorisme que ens digui els diners que tenim (en euros i cèntims) després de demanar-nos quantes monedes tenim de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims).&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demanen la quantitat de monedes que tenim (de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) i calculem els diners que tenim (euros i cèntims)&lt;br /&gt;
::Dades d'entrada: monedes de 2e, 1e, 50 cèntims, 20 cèntims o 10 cèntims) (Enteros).&lt;br /&gt;
::Informació de sortida: total de diners: euros i cèntims (Enteros)&lt;br /&gt;
::Variables: euro2, euro1, cent50, cent20, cent10, total_euros, total_centims (Enteros)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el monedes de 2e, 1e, 50 cèntims, 20 cèntims i 10 cèntims.&lt;br /&gt;
::2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
::3. Calcular cèntims (monedes de 50c * 50 + moneda de 20c * 20 + moneda de 10c * 10)&lt;br /&gt;
::4. Convertir cèntims a euros (divisió sencera entre 100)&lt;br /&gt;
::5. Mostrar euros i cèntims totals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularDiners&lt;br /&gt;
	Definir euro2,euro1,cent50,cent20,cent10 como Entero;&lt;br /&gt;
	Definir total_euros, total_centims Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 2 euros:&amp;quot;;&lt;br /&gt;
	Leer euro2;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 1 euro:&amp;quot;;&lt;br /&gt;
	Leer euro1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 50 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent50;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 20 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent20;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Monedes de 10 cèntims:&amp;quot;;&lt;br /&gt;
	Leer cent10;&lt;br /&gt;
	//2. Calcular Euros (sumar monedes de 2 euros * 2 + monedes de 1 euro&lt;br /&gt;
	total_euros &amp;lt;- euro2 * 2 + euro1;&lt;br /&gt;
	//3. Calcular cèntims (monedes de 50c * 50 + monedes de 20c * 20 + monedes de 10c * 10&lt;br /&gt;
	total_centims &amp;lt;- cent50 * 50 + cent20 * 20 + cent10 * 10;&lt;br /&gt;
	//4. Convertir cèntims a euros (divisió entera entre 100)&lt;br /&gt;
	total_euros &amp;lt;- total_euros + trunc(total_centims / 100);&lt;br /&gt;
	total_centims &amp;lt;- total_centims % 100;&lt;br /&gt;
	Escribir total_euros,&amp;quot; euros i &amp;quot;,total_centims,&amp;quot; cèntims.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura alternativa==&lt;br /&gt;
&lt;br /&gt;
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.&lt;br /&gt;
::Dades d'entrada: número (enter)&lt;br /&gt;
::Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.&lt;br /&gt;
::Variables: num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir el número&lt;br /&gt;
::2. Si el nombre és igual 0 escriviu &amp;quot;És igual a 0&amp;quot;&lt;br /&gt;
::3. En cas contrari si és més gran que 0 escriure &amp;quot;És més gran que 0&amp;quot;&lt;br /&gt;
::4. En altre cas escriure &amp;quot;És menor que 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularPositiuNegatiuZero&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Escribir &amp;quot;Digue'm el número :&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Si num=0 Entonces&lt;br /&gt;
		Escribir &amp;quot;És igual a 0&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			Escribir &amp;quot;És positiu&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Escribir &amp;quot;És negatiu&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Escriu un algorisme en pseudocodi  que demani un nom d'usuari i una contrasenya i si s'ha introduït &amp;quot;pcarbonell&amp;quot; i &amp;quot;pc1673&amp;quot; s'indica &amp;quot;Has entrat al sistema&amp;quot;, sinó hi ha un error.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat nom i contrasenya&lt;br /&gt;
::si coincideixen amb les correctes indiquem que s'ha entrat al sistema.&lt;br /&gt;
::en cas contrari indiquem que el nom o la clau són incorrectes&lt;br /&gt;
::Dades d'entrada: usuari, password (cadena)&lt;br /&gt;
::Informació de sortida: Missatges d'encert o error.&lt;br /&gt;
::Variables: usuari, password (cadena)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir l'usuari&lt;br /&gt;
::2. Llegir el password&lt;br /&gt;
::3. Si l'usuari és igual a &amp;quot;pcarbonell&amp;quot; i el password és igual a &amp;quot;pc1673&amp;quot; &lt;br /&gt;
::escriure &amp;quot;Has entrat al sistema&amp;quot;&lt;br /&gt;
::4. En cas contrari mostrar el missatge &amp;quot;Usuari/password incorrecte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Procéso Login&lt;br /&gt;
	Definir usuari, password como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix l'usuari:&amp;quot;;&lt;br /&gt;
	Leer usuari;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el password:&amp;quot;;&lt;br /&gt;
	Leer password;&lt;br /&gt;
	Si usuari=&amp;quot;pcarbonell&amp;quot; Y password=&amp;quot;pc1673&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Has entrat al sistema&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;Usuari/password incorrecte&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Algorisme que demani dos números 'nota' i 'edat' i un caràcter 'sexe' i mostri el missatge 'ACCEPTADA' si la nota és major o igual a cinc, l'edat és més gran o igual a divuit i el sexe és 'F'. En cas que es compleixi el mateix, però el sexe sigui 'M', heu d'imprimir 'POSSIBLE'. Si no es compleixen aquestes condicions cal mostrar 'NO ACCEPTADA'.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Demanem per teclat dos números: nota i edat i un caràcter sexe.&lt;br /&gt;
::Es mostra &amp;quot;ACCEPTADA&amp;quot; si nota&amp;gt;=5, edat&amp;gt;=18 i el sexe és femení.&lt;br /&gt;
::Si es compleix les mateixes condicions però amb el sexe masculí -&amp;gt; &amp;quot;POSSIBLE&amp;quot; en cas contrari es mostra &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
::Dades d'entrada: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
::Informació de sortida: Missatge d'informació&lt;br /&gt;
::Variables: nota, edat (enter) i sexe (cadena)&lt;br /&gt;
&lt;br /&gt;
::Disseny&lt;br /&gt;
::1. Llegir la nota, l'edat i el sexe&lt;br /&gt;
::2. si nota&amp;gt;=5, edat&amp;gt;=18 &lt;br /&gt;
::3. si sexe=&amp;quot;F&amp;quot; mostrar &amp;quot;ACCEPTADA&amp;quot; -&amp;gt; funció Mayusculas()&lt;br /&gt;
::4. si sexe=&amp;quot;M&amp;quot; mostrar &amp;quot;POSSIBLE&amp;quot;&lt;br /&gt;
::5. En cas contrari, mostrar &amp;quot;NO ACCEPTADA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComprovarNotaEdatSexe&lt;br /&gt;
	Definir nota,edat como Entero;&lt;br /&gt;
	Definir sexe como Cadena;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la nota:&amp;quot;;&lt;br /&gt;
	Leer nota;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix la edat:&amp;quot;;&lt;br /&gt;
	Leer edat;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el sexe (F/M):&amp;quot;;&lt;br /&gt;
	Leer sexe;&lt;br /&gt;
	Si nota&amp;gt;=5 Y edat&amp;gt;=18 Entonces&lt;br /&gt;
		Si Mayusculas(sexe)=&amp;quot;F&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Acceptada&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(sexe)=&amp;quot;M&amp;quot; Entonces&lt;br /&gt;
				Escribir &amp;quot;Possible&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No Acceptada&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. L'associació de vinicultors té com a política fixar un preu inicial al quilo de raïm, la qual es classifica en tipus A i B, i a més en mides 1 i 2. Quan es realitza la venda del producte, aquesta és d'un sol tipus i mida, es requereix determinar quant rebrà un productor pel raïm que lliura en un embarcament, considerant el següent: &lt;br /&gt;
:* Si és de tipus A, se li carreguen 20 cèntims al preu inicial quan és de mida 1; i 30 cèntims si és de mida 2. &lt;br /&gt;
:* Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2. &lt;br /&gt;
:* Realitzeu un algorisme per determinar l'import final.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::El preu final del raïm es calcula multiplicant els quilos recollits pel preu de cada quilo. El preu per quilo es calcula a partir del preu inicial sumant o restant una quantitat determinada segons la mida i el tipus del raïm.&lt;br /&gt;
::Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)&lt;br /&gt;
::Informació de sortida: Preu final en euros (real) o missatge d'error&lt;br /&gt;
::Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir preu_inicial, quilos&lt;br /&gt;
::2. Llegir tipus&lt;br /&gt;
::3. Si tipus no és &amp;quot;A&amp;quot; o &amp;quot;B&amp;quot; tornar missatge d'error.&lt;br /&gt;
::4. Llegir la mida&lt;br /&gt;
::5. Si la mida no és &amp;quot;1&amp;quot; o &amp;quot;2&amp;quot; tornar missatge d'error.&lt;br /&gt;
::6. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;1&amp;quot; summe a preu_inicial 20 cèntims.&lt;br /&gt;
::7. Si tipus és &amp;quot;A&amp;quot; i mida és &amp;quot;2&amp;quot; summe a preu_inicial 30 cèntims.&lt;br /&gt;
::8. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;1&amp;quot; resta a preu_inicial 20 cèntims.&lt;br /&gt;
::9. Si tipus és &amp;quot;B&amp;quot; i grandària és &amp;quot;2&amp;quot; resta a preu_inicial 30 cèntims.&lt;br /&gt;
::10. El preu_final = preu_inicial * quilos&lt;br /&gt;
::11. Mostra preu final/100 euros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso PreuUva&lt;br /&gt;
	Definir tipus como Caracter;&lt;br /&gt;
	Definir mida como Caracter;&lt;br /&gt;
	Definir preu_inicial,preu_final como Real;&lt;br /&gt;
	Definir quilos como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el preu inicial per quilos del UVA (cèntims):&amp;quot;;&lt;br /&gt;
	Leer preu_inicial;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix quants quilos has venut:&amp;quot;;&lt;br /&gt;
	Leer quilos;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el tipus de lUVA (A/B):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
	&lt;br /&gt;
	Si Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;A&amp;quot; Y Mayusculas(tipus)&amp;lt;&amp;gt;&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		Escribir &amp;quot;Tipus incorrecte&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix la mida del UVA (1/2):&amp;quot;;&lt;br /&gt;
		Leer mida;&lt;br /&gt;
		Si mida&amp;lt;&amp;gt;&amp;quot;1&amp;quot; Y mida&amp;lt;&amp;gt;&amp;quot;2&amp;quot; Entonces&lt;br /&gt;
			Escribir &amp;quot;Mida incorrecte&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si Mayusculas(tipus)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial+30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			SiNo&lt;br /&gt;
				Si mida=&amp;quot;1&amp;quot; Entonces&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-20;&lt;br /&gt;
				SiNo&lt;br /&gt;
					preu_inicial&amp;lt;-preu_inicial-30;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
			preu_final&amp;lt;-preu_inicial * quilos;&lt;br /&gt;
			Escribir &amp;quot;El guany és&amp;quot;,preu_final/100, &amp;quot;euros.&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi que demani el nom i preu original d'un article i el codi de descompte (si el codi és 1 els descompte és del 10%, si el codi és 2 el descompte és del 15%, si el codi és 3 el descompte és del 20%, altrament el descompte és del 0%. Cal mostrar l'article, el preu original, el descompte i el preu final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DescompteComercial&lt;br /&gt;
	&lt;br /&gt;
	Definir nom como Cadena;&lt;br /&gt;
	Definir preuOriginal, descompte, preuFinal como Real;&lt;br /&gt;
	Definir codiDescompte como Entero;&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom de larticle: &amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el preu original: &amp;quot;;&lt;br /&gt;
	Leer preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi de descompte: &amp;quot;;&lt;br /&gt;
	Leer codiDescompte;&lt;br /&gt;
	&lt;br /&gt;
	Segun codiDescompte Hacer&lt;br /&gt;
		1: descompte &amp;lt;- preuOriginal * 0.10;&lt;br /&gt;
		2: descompte &amp;lt;- preuOriginal * 0.15;&lt;br /&gt;
		3: descompte &amp;lt;- preuOriginal * 0.20;&lt;br /&gt;
		De Otro Modo: descompte &amp;lt;- 0;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
	preuFinal &amp;lt;- preuOriginal - descompte;&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Article: &amp;quot;, nom;&lt;br /&gt;
	Escribir &amp;quot;Preu original: &amp;quot;, preuOriginal;&lt;br /&gt;
	Escribir &amp;quot;Descompte: &amp;quot;, descompte;&lt;br /&gt;
	Escribir &amp;quot;Preu final: &amp;quot;, preuFinal;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Utilitzant l'estructura Segun ..., fes un algorisme en pseudocodi per calcular l'àrea de qualsevol de les següents figures geomètriques: Quadrat, Rectangle, Triangle i Cercle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Area&lt;br /&gt;
	&lt;br /&gt;
	Definir figura Como Entero; &lt;br /&gt;
	Definir areaFig, costat, ample, llarg, base, alcada, radi Como Real;&lt;br /&gt;
	Escribir &amp;quot;Escull la figura geomètrica&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;1 Quadrat , 2 Rectangle , 3 Triangle , 4 Cercle&amp;quot;;&lt;br /&gt;
	Leer figura; &lt;br /&gt;
	&lt;br /&gt;
	Segun figura Hacer&lt;br /&gt;
		1 : &lt;br /&gt;
			Escribir &amp;quot;Introdueix la mida dun costat del quadrat&amp;quot;;&lt;br /&gt;
			Leer costat;&lt;br /&gt;
			areaFig &amp;lt;- costat * costat;&lt;br /&gt;
			&lt;br /&gt;
		2 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix lample del rectangle&amp;quot;;&lt;br /&gt;
			Leer ample;&lt;br /&gt;
			Escribir &amp;quot;Introdueix el llarg del rectangle&amp;quot;;&lt;br /&gt;
			Leer llarg;&lt;br /&gt;
			areaFig &amp;lt;- ample * llarg;&lt;br /&gt;
			&lt;br /&gt;
		3 :&lt;br /&gt;
			Escribir &amp;quot;Introdueix la alçada del triangle&amp;quot;;&lt;br /&gt;
			Leer alcada;&lt;br /&gt;
			Escribir &amp;quot;Introdueix la base del triangle&amp;quot;;&lt;br /&gt;
			Leer base;&lt;br /&gt;
			areaFig &amp;lt;- (base * alcada) / 2;&lt;br /&gt;
			&lt;br /&gt;
		4 :&lt;br /&gt;
			Escribir &amp;quot;Ingrese el radio del circulo&amp;quot;;&lt;br /&gt;
		Leer radi;&lt;br /&gt;
			areaFig &amp;lt;- PI * radi * radi;&lt;br /&gt;
	FinSegun&lt;br /&gt;
	&lt;br /&gt;
Escribir &amp;quot;làrea de la figura és: &amp;quot; , areaFig;	&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&lt;br /&gt;
Avalueu les següents condicions en funció dels valors corresponents de les variables&lt;br /&gt;
&lt;br /&gt;
1. ((num1&amp;lt;num2) O ((num2&amp;gt;1) Y (num1&amp;gt;1)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 False&lt;br /&gt;
b) num1=1 num2=2 False&lt;br /&gt;
c) num1=2 num2=1 False&lt;br /&gt;
d) num1=2 num2=2 True&lt;br /&gt;
e) num1=0 num2=0 False&lt;br /&gt;
f) num1=1 num2=0 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. (((num1&amp;gt;3)Y(num1&amp;lt;6)) O NO((num2&amp;gt;3)Y(num2&amp;lt;6)))&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=3 num2=3 True&lt;br /&gt;
b) num1=3 num2=4 False&lt;br /&gt;
c) num1=4 num2=3 True&lt;br /&gt;
d) num1=4 num2=4 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. (num3&amp;gt;num1 Y num3&amp;gt;num2 O num1&amp;gt;=num2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) num1=1 num2=1 num3=1 True&lt;br /&gt;
b) num1=1 num2=2 num3=3 True&lt;br /&gt;
c) num1=1 num2=3 num3=2 False&lt;br /&gt;
d) num1=2 num2=1 num3=3 True&lt;br /&gt;
e) num1=2 num2=3 num3=1 False&lt;br /&gt;
f) num1=3 num2=2 num3=1 True&lt;br /&gt;
g) num1=3 num2=1 num3=2 True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Exercicis avaluar expressions lògiques===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num4 Y num3 &amp;gt; num4) &lt;br /&gt;
&lt;br /&gt;
b) Els valors de num1, num2 i num3 són idèntics.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3)&lt;br /&gt;
&lt;br /&gt;
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num1 == num2 Y num1 == num3 Y num1 !=num4) &lt;br /&gt;
&lt;br /&gt;
d) El valor de num2 està comprès, estrictament, entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.&lt;br /&gt;
&lt;br /&gt;
   (num2 &amp;gt; num3 Y num2 &amp;lt; num4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) La mitjana de les tres notes és superior a 5.&lt;br /&gt;
&lt;br /&gt;
   ((notaLit + notaCat + notaMat) / 3) &amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.&lt;br /&gt;
&lt;br /&gt;
  ((notaMat &amp;gt; (notaLit + notaCat + notaMat) / 3) Y (notaCat &amp;gt; (notaLit + notaCat + notaMat))&lt;br /&gt;
&lt;br /&gt;
c) Hi ha, com a mínim, una nota superior a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 O notaCat &amp;gt; 5 O notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Totes les notes són superiors a 5.&lt;br /&gt;
&lt;br /&gt;
  (notaLit &amp;gt; 5 Y notaCat &amp;gt; 5 Y notaMat &amp;gt; 5) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.&lt;br /&gt;
&lt;br /&gt;
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a) Les vendes del producte vendesP1 són les més elevades.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; vendesP2 Y vendesP1 &amp;gt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
b) Cap producte té unes vendes inferiors a 200.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt;= 200 Y vendesP2&amp;gt;= 200 Y vendesP3 &amp;gt;= 200)&lt;br /&gt;
&lt;br /&gt;
c) Algun producte té unes vendes superiors a 400.&lt;br /&gt;
&lt;br /&gt;
   (vendesP1 &amp;gt; 400 O vendesP2 &amp;gt; 400 O vendesP3 &amp;gt; 400)&lt;br /&gt;
&lt;br /&gt;
d) La mitjana de vendes és superior a 500.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3) / 3) &amp;gt; 500&lt;br /&gt;
&lt;br /&gt;
e) El producte vendesP2 no és el més venut.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP2 &amp;lt; vendesP1 O vendesP2 &amp;lt; vendesP3)&lt;br /&gt;
&lt;br /&gt;
f) El total de vendes està entre 500 i 1000.&lt;br /&gt;
&lt;br /&gt;
   ((vendesP1 + vendesP2 + vendesP3 &amp;gt;= 500) Y (vendesP1 + vendesP2 + vendesP3 &amp;lt;= 1000))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis estructura repetitiva==&lt;br /&gt;
&lt;br /&gt;
===Para===&lt;br /&gt;
&lt;br /&gt;
1. Crea una algorisme amb pseudocodi que demani un número i calculi el seu factorial (El factorial d'un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. Per exemple 5! = 1x2x3x4x5=120)&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
::Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre.&lt;br /&gt;
::Informació de sortida: El resultat del factorial&lt;br /&gt;
::Variables: num, comptador (enter), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
::2. Inicialitza variables: resultat = 1&lt;br /&gt;
::3. Per a comptador=2 fins num&lt;br /&gt;
:::::4. resultat=resultat*comptador&lt;br /&gt;
::5. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador como Entero;&lt;br /&gt;
	Definir resultat como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para comptador&amp;lt;-2 Hasta num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El resultat és&amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Feu un algorisme que imprimeixi tots els números parells entre dos números que se li demanin a l'usuari.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un nombre. Si és senar, li sumo 1 i ja és parell. Llegim el segon número.&lt;br /&gt;
::Escric el número des del primer fins al segon de dos en dos.&lt;br /&gt;
::Dades d'entrada: dos números&lt;br /&gt;
::Informació de sortida: Els nombres parells que hi ha entre els dos anteriors&lt;br /&gt;
::Variables: num, num1, num2 (enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir num1,num2&lt;br /&gt;
::2. Si num1 és senar -&amp;gt; num1=num1+1&lt;br /&gt;
::3. Des de num1 fins a num2 de 2 en 2&lt;br /&gt;
::::4. Escriure el número&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso NumerosParells&lt;br /&gt;
	Definir num,num1,num2 Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 1:&amp;quot;;&lt;br /&gt;
	Leer num1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix el número 2:&amp;quot;;&lt;br /&gt;
	Leer num2;&lt;br /&gt;
	Si num1 % 2 = 1 Entonces&lt;br /&gt;
		num1&amp;lt;-num1+1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Para num&amp;lt;-num1 Hasta num2 Con Paso 2 Hacer&lt;br /&gt;
			Escribir Sin Saltar num,&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Realitzar un algorisme que demani números (es demanarà per teclat la quantitat de números a introduir). El programa ha d'informar de quants números introduïts són més grans que 0, menors que 0 i iguals a 0.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Es demana la quantitat de números que es llegiran. Anem introduint números.&lt;br /&gt;
::Hem de comptar els positius, negatius i zeros.&lt;br /&gt;
::Dades d'entrada: Quantitat de números, els números.&lt;br /&gt;
::Informació de sortida: Quantitat de positius, de negatius i de zeros.&lt;br /&gt;
::Variables: quantitat_num,num,cont_positius,cont_negatius,cont_zeros(enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo els comptadors&lt;br /&gt;
::2. Llegir quantitat de números&lt;br /&gt;
::3. Des d'1 fins a quantitat de números&lt;br /&gt;
::::4. Llegir num&lt;br /&gt;
::::5. Si num&amp;gt; 0-&amp;gt; increment cont_positius&lt;br /&gt;
::::6. Si num&amp;lt; 0-&amp;gt; increment cont_negatius&lt;br /&gt;
::::7. Si num = 0-&amp;gt; increment cont_zeros.&lt;br /&gt;
::8Mostra cont_postius, cont_negatius, cont_zeros&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ComptarNumerosPositiusNegatiusIZeros&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir quantitat_num,i Como Entero;&lt;br /&gt;
	Definir cont_negatius,cont_positius,cont_zeros Como Entero;&lt;br /&gt;
	cont_negatius &amp;lt;- 0;&lt;br /&gt;
	cont_positius &amp;lt;- 0;&lt;br /&gt;
	cont_zeros &amp;lt;- 0;&lt;br /&gt;
	Escribir &amp;quot;Quants números introduiràs?:&amp;quot;;&lt;br /&gt;
	Leer quantitat_num;&lt;br /&gt;
	Para i&amp;lt;-1 Hasta quantitat_num Hacer&lt;br /&gt;
		Escribir &amp;quot;Nombre &amp;quot;,i,&amp;quot;:&amp;quot; ;&lt;br /&gt;
		Leer num;&lt;br /&gt;
		Si num&amp;gt;0 Entonces&lt;br /&gt;
			cont_positius &amp;lt;- cont_positius + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si num&amp;lt;0 Entonces&lt;br /&gt;
				cont_negatius &amp;lt;- cont_negatius + 1;&lt;br /&gt;
				Sino&lt;br /&gt;
				cont_zeros &amp;lt;- cont_zeros + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Números positius:&amp;quot;,cont_positius;&lt;br /&gt;
	Escribir &amp;quot;Números negatius:&amp;quot;,cont_negatius;&lt;br /&gt;
	Escribir &amp;quot;Nombre igual a 0:&amp;quot;,cont_zeros;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu un algorisme que mostri la taula de multiplicar d'un número introduït per teclat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim el número del que volem mostrar la taula&lt;br /&gt;
::Necessitem un comptador per comptar d'1 a 10&lt;br /&gt;
:.Hem de repetir 10 vegades -&amp;gt; A cada volta hem de mostrar: el comptador * el número = resultat de la multiplicació&lt;br /&gt;
::Dades d'entrada: El número de la taula i un comptador d'1 a 10.&lt;br /&gt;
::Informació de sortida: Les 10 operacions de la taula de multiplicació&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir taula&lt;br /&gt;
::2. Des de nombre d'1 a 10&lt;br /&gt;
::::3. Mostrar num * taula = (num*taula)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulaMultiplicar&lt;br /&gt;
	Definir num, numTaula Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols mostrar la taula de multiplicar?:&amp;quot;;&lt;br /&gt;
	Leer numTaula;&lt;br /&gt;
	Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Escribir num,&amp;quot; * &amp;quot;, numTaula,&amp;quot; = &amp;quot;,num*numTaula;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Feu un algorisme que mostri les taules de multiplicar del 1 al 10.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::He de repetir 10 vegades (des del número 1 fins al 10) mostrar la taula de multiplicar d'aquest número.&lt;br /&gt;
::Com hem vist en l'exercici 4, per fer una taula de multiplicar hem de repetir 10 vegades per mostrar cada línia de la taula.&lt;br /&gt;
::Per tant necessito dos bucles imbricats.&lt;br /&gt;
::Dades d'entrada: Res&lt;br /&gt;
::Informació de sortida: Les deu taules de multiplicar&lt;br /&gt;
::Variables: taula,num (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Per a taula des d'1 fins a 10&lt;br /&gt;
::::2. Per num des d'1 fins a 10&lt;br /&gt;
::::::3. Mostrar taula * num = (taula*num)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TaulesDeMultiplicar&lt;br /&gt;
	Definir taula,num Como Entero;&lt;br /&gt;
	Para taula&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
		Para num&amp;lt;-1 Hasta 10 Hacer&lt;br /&gt;
			Escribir taula,&amp;quot; * &amp;quot;,num,&amp;quot; = &amp;quot;, taula*num;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Esperar Tecla;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Una empresa té el registre de les hores que treballa diàriament un empleat durant la setmana (sis dies) i requereix determinar-ne el total, així com el sou que rebrà per les hores treballades.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Calcular el sou i les hores treballades dun empleat en una setmana (6 dies).&lt;br /&gt;
::Cal anar introduint la quantitat d'hores que treballa cada dia.&lt;br /&gt;
::Hem de saber quant es paga l'hora treballada.&lt;br /&gt;
::Cal anar acumulant les hores treballades cada dia, per poder calcular el sou.&lt;br /&gt;
::Dades d'entrada: Sou per hora, hores.&lt;br /&gt;
::Informació de sortida: Les hores acumulades, i el sou de la setmana.&lt;br /&gt;
::Variables: sou_per_hora (Real),hores, hores_acum, dia(enter)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1.- Inicialitzo les hores acumulades&lt;br /&gt;
::2.- Llegir sou per hora (sou)&lt;br /&gt;
::3.- Des del dia 1 al 6&lt;br /&gt;
::::4.- Llegir hores treballades&lt;br /&gt;
::::5.- Acumular les hores treballades&lt;br /&gt;
::6.- Mostrar Les hores acumulades&lt;br /&gt;
::7.- Mostrar el sou -&amp;gt; hores acumulades * sou per hora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSou&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir hores, hores_acum Como  Entero;&lt;br /&gt;
	Definir dia Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix el sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para dia&amp;lt;-1 hasta 6 Hacer&lt;br /&gt;
		Escribir &amp;quot;Quantes hores has treballat el dia &amp;quot;,dia,&amp;quot;?:&amp;quot;;&lt;br /&gt;
		Leer hores;&lt;br /&gt;
		hores_acum &amp;lt;- hores_acum + hores;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;Hores acumulades a la setmana:&amp;quot;,hores_acum;&lt;br /&gt;
	Escribir &amp;quot;Sou:&amp;quot;,sou_per_hora*hores_acum;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Una empresa paga als seus empleats amb base a les hores treballades a la setmana. &lt;br /&gt;
:Realitzeu un algorisme per determinar el sou setmanal de N treballadors i, a més, calculeu quant va pagar l'empresa pels N empleats.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Cal calcular el sou d'un nombre de treballadors, per tant necessitem el nombre de treballadors que té lempresa. També necessitem saber el sou per hora, i per cada treballador cal demanar les hores que ha treballat a la setmana.&lt;br /&gt;
::Per cada treballador cal mostrar el sou setmanal i en finalitzar el programa mostrem el total de sous pagats.&lt;br /&gt;
::Dades d'entrada: Nombre de treballadors, sou per hora, hores treballades per cada treballador.&lt;br /&gt;
::Informació de sortida: Sou de cada treballador, total pagat.&lt;br /&gt;
::Variables: hores_per_setmana, hores_acum (enter), sou_per_hora (real), treballadors, treballador (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzo l'acumulador d'hores&lt;br /&gt;
::2. Llegir el nombre de treballadors&lt;br /&gt;
::3. Llegir sou per hora&lt;br /&gt;
::4. Per cada treballador&lt;br /&gt;
::::5. Llegir hores treballades per setmana&lt;br /&gt;
::::6. Mostrar sou (hores_per_setmana*sou_per_hora&lt;br /&gt;
::::7. Acumular hores treballades&lt;br /&gt;
::8. Mostrar total de pagament (hores_acum*sou_per_hora)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSalari&lt;br /&gt;
	Definir hores_per_setmana, hores_acum Como Entero;&lt;br /&gt;
	Definir sou_per_hora Como Real;&lt;br /&gt;
	Definir treballadors, treballador Como Entero;&lt;br /&gt;
	hores_acum&amp;lt;-0;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Quants treballadors té l'empresa?:&amp;quot;;&lt;br /&gt;
	Leer treballadors;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Sou per hora:&amp;quot;;&lt;br /&gt;
	Leer sou_per_hora;&lt;br /&gt;
	Para treballador&amp;lt;-1 Hasta treballadors Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Quantes hores ha treballat el treballador, treballador, ?&amp;quot;;&lt;br /&gt;
		Leer hores_per_setmana;&lt;br /&gt;
		hores_acum&amp;lt;-horas_acum+hores_per_setmana;&lt;br /&gt;
		Escribir &amp;quot;El treballador &amp;quot;,treballador,&amp;quot; té de sou &amp;quot;,hores_per_setmana*sou_per_hora; &lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;El pagament als &amp;quot;treballadors,&amp;quot; treballadors és: &amp;quot;,hores_acum*sou_per_hora;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Para niats====&lt;br /&gt;
&lt;br /&gt;
1. Fei un algoritme que mostri el següent quadrat  d'asteríscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratAstriscos&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    *       *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratBlanc&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
			Si (fila = 1 o fila = num o col = 1 o col = num) Entonces&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;* &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar &amp;quot;  &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1&lt;br /&gt;
    1 2&lt;br /&gt;
    1 2 3&lt;br /&gt;
    ...&lt;br /&gt;
    1 2 3 ... N&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * &lt;br /&gt;
    * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	  Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
    * * * * &lt;br /&gt;
    * * * &lt;br /&gt;
    * * &lt;br /&gt;
    * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-num Hasta fila Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  &amp;quot;* &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5&lt;br /&gt;
    1 2 3 4 &lt;br /&gt;
    1 2 3 &lt;br /&gt;
    1 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col,&amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 4 3 2 1&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 2 1 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat dasteríscos?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
	    	Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1&lt;br /&gt;
    2 2 2 2 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    4 4&lt;br /&gt;
    5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 4 4 4 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 2&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 1 1 1 1 1 1&lt;br /&gt;
    1 2 3 4 5 6&lt;br /&gt;
    3 3 3 3 3&lt;br /&gt;
    1 2 3 4&lt;br /&gt;
    5 5 5 &lt;br /&gt;
    1 2&lt;br /&gt;
    7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-1 Hasta num Hacer&lt;br /&gt;
		Para col&amp;lt;-1 Hasta num-fila+1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    7 7 7 7 7 7 7&lt;br /&gt;
    6 5 4 3 2 1&lt;br /&gt;
    5 5 5 5 5&lt;br /&gt;
    4 3 2 1 &lt;br /&gt;
    3 3 3 &lt;br /&gt;
    2 1&lt;br /&gt;
    1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Si fila%2 = 1 Entonces&lt;br /&gt;
			Para col&amp;lt;-1 Hasta fila Hacer&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		SiNo&lt;br /&gt;
			Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinPara&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Solució amb dos bucles:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TriangleNums&lt;br /&gt;
	Definir num, fila, col Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;De quin número vols fer el quadrat?:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Para fila&amp;lt;-num Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
		Para col&amp;lt;-fila Hasta 1 Con Paso -1 Hacer&lt;br /&gt;
			Si fila%2 = 1 Entonces&lt;br /&gt;
				Escribir Sin Saltar  fila, &amp;quot; &amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir Sin Saltar  col, &amp;quot; &amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            *&lt;br /&gt;
          * *&lt;br /&gt;
        * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
    * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * *&lt;br /&gt;
      * * * *&lt;br /&gt;
        * * *&lt;br /&gt;
          * *&lt;br /&gt;
            *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Algun exercici més:&lt;br /&gt;
&lt;br /&gt;
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
      *   * &lt;br /&gt;
    *   *   *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    exemple 5             exemple 6&lt;br /&gt;
    *       *             *         *&lt;br /&gt;
      *   *                 *     * &lt;br /&gt;
        *                     * *  &lt;br /&gt;
      *   *                   * *  &lt;br /&gt;
    *       *               *     * &lt;br /&gt;
                          *         *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de d'un número imparell més gran de 3.&lt;br /&gt;
&lt;br /&gt;
Per exemple si num = 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
    * * A A A * *&lt;br /&gt;
    * B * A * C * &lt;br /&gt;
    * B B * C C *  &lt;br /&gt;
    * B * D * C *&lt;br /&gt;
    * * D D D * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
17. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         exemple alçada 9 i amplada 7 &lt;br /&gt;
 &lt;br /&gt;
                   * * * * * * * &lt;br /&gt;
                   * 2 2 2 2 2 *&lt;br /&gt;
                   * 3 3 3 3 3 *&lt;br /&gt;
                   * 4 4 4 4 4 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
                   * 6 6 6 6 6 *&lt;br /&gt;
                   * 7 7 7 7 7 *&lt;br /&gt;
                   * 8 8 8 8 8 *&lt;br /&gt;
                   * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
18. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
      * * * * * &lt;br /&gt;
        * * *  &lt;br /&gt;
          *            &lt;br /&gt;
        * * * &lt;br /&gt;
      * * * * *&lt;br /&gt;
    * * * * * * *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
19. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
      1 2 3 4 5 &lt;br /&gt;
        1 2 3  &lt;br /&gt;
          1  &lt;br /&gt;
        1 2 3 &lt;br /&gt;
      1 2 3 4 5&lt;br /&gt;
    1 2 3 4 5 6 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20. Mostra per pantalla aquesta &amp;quot;representació&amp;quot; a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
    o o o o o o o o o &lt;br /&gt;
    * # * # o # * # *  &lt;br /&gt;
    # * # * o * # * #&lt;br /&gt;
    * # * # o # * # * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pas previ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *  &lt;br /&gt;
    # * # * # * # * #&lt;br /&gt;
    * # * # * # * # *      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mientras===&lt;br /&gt;
&lt;br /&gt;
1. Crea un algoritme amb pseudoci que permeti endevinar un número. L'aplicació genera un número aleatori de l'1 al 100. A continuació va demanant números i va responent si el nombre a endevinar és més gran o més petit que l'introduït, a més dels intents que et queden (tens 10 intents per encertar-ho).&lt;br /&gt;
&lt;br /&gt;
El programa acaba quan s'encerta el número (a més et diu quants intents ho has encertat), si s'arriba al límit d'intents et mostra el número que havia generat.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Hem de generar un nombre aleatori (funció aleatori) de l'1 al 100.&lt;br /&gt;
:: Necessitem un comptador per comptar els 10 intents. Al principi val 10 i anirà decrementant.&lt;br /&gt;
:: Mentre no encerti el número i em quedin intents:&lt;br /&gt;
:: Llegeixo un número&lt;br /&gt;
:: Ho comparo amb el nombre generat (dic si és més gran o més petit)&lt;br /&gt;
:: Demano un altre nombre&lt;br /&gt;
:: Puc acabar el bucle per dues raons: si he endevinat el número (he guanyat) i mostro els intents que he necessitat.&lt;br /&gt;
:: sinó he perdut, he utilitzat els 10 intents i mostro el número generat.&lt;br /&gt;
:: Dades d'entrada: número demanat a l'usuari.&lt;br /&gt;
:: Informació de sortida: Has guanyat i els intents, o has perdut i el número.&lt;br /&gt;
:: Variables: num_scret, num_ingressat, intents (enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
:: 1. Genero un nombre aleatori de l'1 al 100 (num_secret)&lt;br /&gt;
:: 2. intents = 10&lt;br /&gt;
:: 3. Llegir num&lt;br /&gt;
:: 4. Mentre num&amp;lt;&amp;gt; num_secret i intents&amp;gt;1&lt;br /&gt;
:::: 5. Si num_screto&amp;gt;num -&amp;gt; Escriure &amp;quot;Molt baix&amp;quot;&lt;br /&gt;
:::: 6. Si num_screto&amp;lt;num -&amp;gt; Escriure &amp;quot;Molt alt&amp;quot;&lt;br /&gt;
:::: 7. intents=intents-1&lt;br /&gt;
:::: 8. Escriure intents&lt;br /&gt;
:::: 9. Llegir num&lt;br /&gt;
:: 10. Si num_secreo=num -&amp;gt; Escriure &amp;quot;Has guanyat&amp;quot;, intents&lt;br /&gt;
:: 11. SiNo -&amp;gt; Escriure &amp;quot;Has perdut, num_secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Adivina_Numero&lt;br /&gt;
    Definir intents,num_secret,num_ingressat Como Entero;&lt;br /&gt;
    intents &amp;lt;- 10;&lt;br /&gt;
    num_secret &amp;lt;- Aleatorio(1,100);&lt;br /&gt;
    &lt;br /&gt;
    Escribir &amp;quot;Endevineu el nombre (d'1 a 100):&amp;quot;;&lt;br /&gt;
    Leer num_ingressat;&lt;br /&gt;
    Mientras num_secret&amp;lt;&amp;gt;num_ingressat Y intents&amp;gt;1 Hacer&lt;br /&gt;
        Si num_secret&amp;gt;num_ingressat Entonces&lt;br /&gt;
            Escribir &amp;quot;Molt baix&amp;quot;;&lt;br /&gt;
        Sino &lt;br /&gt;
            Escribir &amp;quot;Molt alt&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
        intents &amp;lt;- intents-1;&lt;br /&gt;
        Escribir &amp;quot;Li queden &amp;quot;,intents,&amp;quot; intents:&amp;quot;;&lt;br /&gt;
        Leer num_ingressat;&lt;br /&gt;
    FinMientras&lt;br /&gt;
    &lt;br /&gt;
    Si num_secret=num_ingressat Entonces&lt;br /&gt;
        Escribir &amp;quot;Exacte! Vostè endevino a &amp;quot;,11-intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;El nombre era: &amp;quot;,num_secret;&lt;br /&gt;
    FinSi&lt;br /&gt;
    &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Algorisme que demani números fins que s'introdueixi un zero. Heu d'imprimir la suma i la mitjana de tots els números introduïts.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Anem demanant números fins a introduir un 0.&lt;br /&gt;
:: Necessitem un acumulador per anar fent les sumes intermèdies.&lt;br /&gt;
:: A més necessitem un comptador, per calcular la mitjana (suma/quantitat)&lt;br /&gt;
:: Dades d'entrada: números, un acumulador per sumar i un comptador&lt;br /&gt;
:: Informació de sortida: La suma i la mitjana&lt;br /&gt;
:: Variables:num, suma, cont enters)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Inicialitzat: suma = 0, cont = 0&lt;br /&gt;
::2. Llegir num&lt;br /&gt;
::3. Mentre num&amp;lt;&amp;gt;0&lt;br /&gt;
:::: 4. Acumul: suma = suma + num&lt;br /&gt;
:::: 5. Conte si num&amp;lt;&amp;gt;0: cont=cont+1&lt;br /&gt;
:::. 6. Llegir num&lt;br /&gt;
::7. Si cont=0 (No hem introduït cap número)-&amp;gt; mitjana=0&lt;br /&gt;
::8. SiNo -&amp;gt; mitjana=suma/cont;&lt;br /&gt;
::9. Mostrar suma i mitjana&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularSumaMitjana&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	Definir suma,cont como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	suma &amp;lt;- 0;&lt;br /&gt;
	cont &amp;lt;-0;&lt;br /&gt;
	//Amb el mentre si el primer número és 0 no entrarà al bucle&lt;br /&gt;
	Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		suma &amp;lt;- suma + num;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
		Escribir &amp;quot;Nombre (0 per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	//Si cont=0 no puc fer la divisió&lt;br /&gt;
	Si cont&amp;gt;0 Entonces&lt;br /&gt;
		mitjana &amp;lt;- suma / cont;&lt;br /&gt;
	SiNo&lt;br /&gt;
		mitjana &amp;lt;-0;&lt;br /&gt;
	FinSi&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Suma:&amp;quot;,suma;&lt;br /&gt;
	Escribir &amp;quot;Mitjana:&amp;quot;,mitjana;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea una aplicació que demani un número i calculi el seu factorial (El factorial de un nombre és el producte de tots els enters entre 1 i el mateix nombre i es representa pel nombre seguit d'un signe d'exclamació. &lt;br /&gt;
::Per exemple 5! = 1x2x3x4x5=120&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Necessito acumular les successives multiplicacions, començant per 2 fins al número indicat.&lt;br /&gt;
:: Dades d'entrada: número per calcular el factorial comptador per in comptant els números des de 2 al nombre&lt;br /&gt;
:: Informació de sortida: El resultat del factorial&lt;br /&gt;
:: Variables: num, comptador (entero), resultat (real)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Llegir nombre&lt;br /&gt;
:.2. Inicials variables&lt;br /&gt;
:: comptador = 2&lt;br /&gt;
:: resultat = 1&lt;br /&gt;
:: 3. Mentre comptador&amp;lt;=num fer&lt;br /&gt;
:::: 4. resultat=resultat*comptador&lt;br /&gt;
:::: 5. comptador=comptador+1&lt;br /&gt;
:. 6. Mostrar resultat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Factorial&lt;br /&gt;
	Definir num,comptador Como Entero;&lt;br /&gt;
	Definir resultat Como Real;&lt;br /&gt;
	resultat &amp;lt;- 1;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Digue'm  un número:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	comptador &amp;lt;- 2;&lt;br /&gt;
	Mientras comptador&amp;lt;=num Hacer&lt;br /&gt;
		resultat &amp;lt;- resultat * comptador;&lt;br /&gt;
		comptador &amp;lt;- comptador + 1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El resultat és &amp;quot;, resultat;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Feu una algorisme amb pseudocodi que digui si un número introduït per teclat és primer o no. &lt;br /&gt;
::Un nombre primer és aquell que només és divisible entre ell mateix i la unitat. &lt;br /&gt;
::Nota: N'hi ha prou amb provar fins a l'arrel quadrada del número per veure si és divisible per algun altre número.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
::Llegim un número i anem comprovant si és divisible entre 2 fins a l'arrel quadrada del nombre. Si és divisible per algun número no és primer.&lt;br /&gt;
::Si no és divisible per cap nombre és primer.&lt;br /&gt;
::Per saber si és divisible fem servir l'operador mòdul.&lt;br /&gt;
::Dades d'entrada: el número a comprovar si és primer o no&lt;br /&gt;
::Informació de sortida: Un missatge dient si és primer o no&lt;br /&gt;
::Variables: numero_es_primer (entero), num (entero) comptador des de 2 fins arrel quadrada del num_es_primer, es_primer (lógico)&lt;br /&gt;
&lt;br /&gt;
:Disseny&lt;br /&gt;
::1. Suposo que el nombre és primer -&amp;gt; és_primer&amp;lt;-Verdadero&lt;br /&gt;
::2. Llegir num_ces_primer&lt;br /&gt;
::3. Mentre no final (num &amp;lt; número primer?) i el número primer? no sigui divisible pel num&lt;br /&gt;
::::4. Incrementem el num&lt;br /&gt;
::5. Si es_primer -&amp;gt; Mostra &amp;quot;És primer&amp;quot;&lt;br /&gt;
::6. Si no -&amp;gt; Mostra &amp;quot;No és primer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EsPrimo&lt;br /&gt;
	Definir num,div Como Entero;&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número per comprovar si és primer:&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
        div &amp;lt;- 2;&lt;br /&gt;
	Mientras div&amp;lt;&amp;gt;num Y num % div &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
		div &amp;lt;- div +1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Si div = num Entonces&lt;br /&gt;
		Escribir &amp;quot;És Primer&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No és Primer&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5. Escriviu un algoritme amb pseudocodi que demani el límit inferior i superior d'un interval.&lt;br /&gt;
: Si el límit inferior és més gran que el superior ho ha de tornar a demanar.&lt;br /&gt;
: A continuació es van introduint números fins que introduïm el 0.&lt;br /&gt;
: Quan acabi el programa donarà les informacions següents:&lt;br /&gt;
::* La suma dels números que estan dins de l'interval (interval obert).&lt;br /&gt;
::* Quants números estan fora de l'interval.&lt;br /&gt;
::* He informat si hem introduït algun nombre igual als límits de l'interval.&lt;br /&gt;
&lt;br /&gt;
:Anàlisi&lt;br /&gt;
:: Demanem un interval (límit inferior i superior)&lt;br /&gt;
:: Ens hem d'assegurar que el límit inferior sigui menor que el superior.&lt;br /&gt;
:: Es van demanant números fins que s'introdueixi el 0.&lt;br /&gt;
:: Si el nombre pertany a l'interval -&amp;gt; ho vaig sumant (necessito un acumulador)&lt;br /&gt;
:: Si el número no pertany a l'interval, ho explico (necessito un comptador)&lt;br /&gt;
:: Si el nombre és igual a algun límit, allò índic (necessito un indicador)&lt;br /&gt;
:: Al final mostro la suma dels números que pertanyen a l'interval.&lt;br /&gt;
:: Mostreu el comptador de número que no pertanyen a l'interval.&lt;br /&gt;
:: Indico si hem introduït un número igual a algun límit&lt;br /&gt;
:: Dades d'entrada: límit superior i inferior de l'interval i els números.&lt;br /&gt;
:: Informació de sortida: La suma dels que pertanyen a l'interval, el comptador dels números que no pertanyen a l'interval i indico si un nombre ha estat igual a algun interval&lt;br /&gt;
:: Variables: lim_inf, lim_sup, num, suma_dins_interval, cont_fora_interval (enters), igual_limits (Lògic)&lt;br /&gt;
&lt;br /&gt;
:Diseny&lt;br /&gt;
::1. Inicialitzo l'acumulador, el comptador i l'indicat&lt;br /&gt;
::2. Repetir -&amp;gt; llegir lim_inf i lim_sup fins que lim_inf&amp;lt;lim_sup&lt;br /&gt;
::3. Llegir núm&lt;br /&gt;
::4. Mentre num sigui diferent de 0&lt;br /&gt;
::::5. Si num pertany a l'interval -&amp;gt; acumula la suma&lt;br /&gt;
::::6. Sinó -&amp;gt; increment comptador&lt;br /&gt;
::::7. Si és igual a algun interval -&amp;gt; Ho indico (indicador a cert)&lt;br /&gt;
::::8. Llegir núm&lt;br /&gt;
::9. Mostra la suma dels números pertanyents a l'interval&lt;br /&gt;
::10. Mostra el comptador de números no pertanyents a l'interval&lt;br /&gt;
::11. Si l'indicador = Veritable -&amp;gt; Mostra &amp;quot;Un nombre = a interval&amp;quot;&lt;br /&gt;
::12. SiNo -&amp;gt; Mostra &amp;quot;No has introduït un número igual a l'interval&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Interval&lt;br /&gt;
	Definir lim_inf, lim_sup como Entero;&lt;br /&gt;
	Definir num como Entero;&lt;br /&gt;
	Definir suma_dins_interval Como Entero;&lt;br /&gt;
	Definir cont_fora_interval Como Entero;&lt;br /&gt;
	Definir igual_limits Como Logico;&lt;br /&gt;
	suma_dins_interval &amp;lt;- 0;&lt;br /&gt;
	cont_fora_interval &amp;lt;- 0;&lt;br /&gt;
	igual_limits &amp;lt;- Falso;&lt;br /&gt;
	//M'asseguro que el lim_inf és menor que el lim_sup&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_inf;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
	Leer lim_sup;&lt;br /&gt;
	Mientras lim_inf &amp;gt;= lim_sup Hacer&lt;br /&gt;
		Escribir &amp;quot;ERROR: El límit inferior ha de ser menor que el superior.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit inferior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_inf;&lt;br /&gt;
		Escribir &amp;quot;Introdueix el límit superior de linterval:&amp;quot;;&lt;br /&gt;
		Leer lim_sup;&lt;br /&gt;
	FinMientras&lt;br /&gt;
		&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
	Leer num;&lt;br /&gt;
	Mientras num&amp;lt;&amp;gt;0 Hacer&lt;br /&gt;
		//Pertany a l'interval&lt;br /&gt;
		Si num&amp;gt;lim_inf Y num&amp;lt;lim_sup Entonces&lt;br /&gt;
			suma_dins_interval&amp;lt;- suma_dins_interval + num;&lt;br /&gt;
		SiNo &lt;br /&gt;
			//Nombre igual a algun dels límits&lt;br /&gt;
			Si num=lim_inf O num=lim_sup Entonces&lt;br /&gt;
				igual_limits &amp;lt;- Verdadero;&lt;br /&gt;
			Sino&lt;br /&gt;
			//No pertany a l'interval&lt;br /&gt;
			cont_fora_interval &amp;lt;- cont_fora_interval + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número (0, per sortir):&amp;quot;;&lt;br /&gt;
		Leer num;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;La suma dels números dins de linterval és &amp;quot;,suma_dins_interval;&lt;br /&gt;
	Escribir &amp;quot;La quantitat de números fora de linterval és &amp;quot;,cont_fora_interval;&lt;br /&gt;
	Si igual_limits Entonces&lt;br /&gt;
		Escribir &amp;quot;Sha introduït algun nombre igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No sha introduït cap número igual als límits de linterval.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Més exercicis iteratius===&lt;br /&gt;
&lt;br /&gt;
1. Calculeu les qualificacions d'un grup d'alumnes. La nota final de cada alumne es calcula segons el criteri següent: la part pràctica val el 10%; la part de problemes val el 50% i la part teòrica el 40%. L'algorisme llegirà el nom de l'alumne, les tres notes, escriurà el resultat i tornarà a demanar les dades del següent alumne fins que el nom sigui una cadena buida. Les notes han d'estar entre 0 i 10, si no ho estan, no imprimirà les notes, mostrarà un missatge d'error i tornarà a demanar un altre alumne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Notes_Alumnes&lt;br /&gt;
	Definir alumne Como Cadena;&lt;br /&gt;
	Definir nota_practica, nota_problemes, nota_teoria, nota_final Como Real;&lt;br /&gt;
        Escribir &amp;quot;Introduïu el nom de l'alumne: &amp;quot;;&lt;br /&gt;
	Leer alumne;&lt;br /&gt;
        Mientras alumne&amp;lt;&amp;gt;&amp;quot;&amp;quot; Hacer&lt;br /&gt;
        //si introduïm un nom d'alumne correcte, entrés al bucle&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de la pràctica: &amp;quot;;&lt;br /&gt;
        	Leer nota_practica;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota dels problemes: &amp;quot;;&lt;br /&gt;
        	Leer nota_problemes;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix la nota de teoria&amp;quot;;&lt;br /&gt;
        	Leer nota_teoria;&lt;br /&gt;
        	//comprovem si les notes tenen un rang correcte&lt;br /&gt;
        	Si (nota_practica&amp;lt;=10 y nota_practica&amp;gt;=0) y (nota_problemes&amp;lt;=10 y nota_problemes&amp;gt;=0) y (nota_teoria&amp;lt;=10 y nota_teoria&amp;gt;=0) Entonces&lt;br /&gt;
			Escribir &amp;quot;L'alumne &amp;quot;, alumne;&lt;br /&gt;
                	Escribir &amp;quot;La nota practica és &amp;quot; nota_practica;&lt;br /&gt;
                	Escribir &amp;quot;La nota de problemes és &amp;quot;, nota_problemes;&lt;br /&gt;
                	Escribir &amp;quot;La nota de teoria és &amp;quot; nota_teoria;&lt;br /&gt;
                	nota_final&amp;lt;-(nota_practica * 0,1)+(nota_problemes * 0.5)+(nota_teoria*0.4);&lt;br /&gt;
                	Escribir &amp;quot;La nota final és &amp;quot; nota_final;&lt;br /&gt;
        	SiNo&lt;br /&gt;
                Escribir &amp;quot;Has escrit una nota incorrecta, Torna a introduir les notes!&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
		Escribir &amp;quot;Introdueix el nom d'un altre alumne&amp;quot;;&lt;br /&gt;
		Leer alumne;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Un conductor d'UBER va prendre el temps (en minuts) que es va demorar des del punt de partida fins a la destinació. Elaboreu un algorisme amb pseudocodi que permeti ingressar cadascun dels temps en minuts i que mostri:&lt;br /&gt;
&lt;br /&gt;
::a) La mitjana dels temps&lt;br /&gt;
::b) El nombre de vegades que es va demorar menys de 30 minuts&lt;br /&gt;
::c) El nombre de vegades que es va demorar entre 30 a 45 minuts i&lt;br /&gt;
::d) Finalment el nombre de vegades que es va demorar més de 45 minuts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso UBER&lt;br /&gt;
        Definir nroViatges,temps,acum,cont,contMenys30,contEntre30i45,contMes45 Como Entero;&lt;br /&gt;
	Definir mitjana Como Real;&lt;br /&gt;
	&lt;br /&gt;
	contMenys30 &amp;lt;- 0;  //comptador&lt;br /&gt;
	contEntre30i45 &amp;lt;- 0;&lt;br /&gt;
	contMes45 &amp;lt;- 0;&lt;br /&gt;
	acum &amp;lt;- 0;   //acumulador&lt;br /&gt;
	&lt;br /&gt;
	Escribir &amp;quot;Introduïu el número de viatges del dia: &amp;quot;;&lt;br /&gt;
	Leer nroViatges;&lt;br /&gt;
	&lt;br /&gt;
	cont &amp;lt;- 1;&lt;br /&gt;
	Mientras cont &amp;lt;= nroViajes Hacer&lt;br /&gt;
		Escribir &amp;quot;Introduïu el temps del viatge &amp;quot;,cont;&lt;br /&gt;
		Leer temps; &lt;br /&gt;
		&lt;br /&gt;
		si temps&amp;lt;30 Entonces &lt;br /&gt;
			contMenys30 &amp;lt;- contMenys30 + 1;&lt;br /&gt;
		SiNo&lt;br /&gt;
			si temps &amp;gt;= 30 y temps &amp;lt; 45 Entonces &lt;br /&gt;
				contEntre30i45 &amp;lt;- contEntre30i45 + 1;&lt;br /&gt;
			Sino&lt;br /&gt;
				contMes45 &amp;lt;- contMes45 + 1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
		&lt;br /&gt;
		acum &amp;lt;- acum + temps;&lt;br /&gt;
		cont &amp;lt;- cont + 1;&lt;br /&gt;
	Fin Mientras &lt;br /&gt;
		&lt;br /&gt;
	mitjana &amp;lt;- acum / nroViajes;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Nro de viatges : &amp;quot;,nroViatges;&lt;br /&gt;
	Escribir &amp;quot;Mitjana dels temps: &amp;quot;,mitjana;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar menys de 30 minuts:: &amp;quot;,contMenys30;&lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar entre 30 a 45 minuts: &amp;quot;,contEntre30i45; &lt;br /&gt;
	Escribir &amp;quot;Vegades que es va demorar més de 45 minuts: &amp;quot;,contMes45;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Exercicis prova===&lt;br /&gt;
&lt;br /&gt;
====Prova 1====&lt;br /&gt;
&lt;br /&gt;
1. Demana un número enter positiu per teclat. Si el número és senar, el multipliquem per 3 i li sumem 1, si és parell el dividim per 2. Repetim aquest procés amb el nou valor acabant quan el número és 1. Per exemple, la següent seqüència és generada quan N=22:&lt;br /&gt;
&lt;br /&gt;
::22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1&lt;br /&gt;
&lt;br /&gt;
Fes un programa que fent aquests passos ens digui la quantitat de números generats fins a aconseguir arribar a l'1. A l'exemple anterior seria 16.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso TresN&lt;br /&gt;
	Definir num, cont Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Escriu un numero enter i positiu: &amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        Leer num;&lt;br /&gt;
	&lt;br /&gt;
        Si num &amp;gt; 0  Entonces &lt;br /&gt;
            cont &amp;lt;- 1;&lt;br /&gt;
&lt;br /&gt;
            Mientras num != 1 Hacer&lt;br /&gt;
                Si num % 2 = 0 Entonces&lt;br /&gt;
                    num &amp;lt;- num / 2;&lt;br /&gt;
                SiNo &lt;br /&gt;
                    num &amp;lt;- (num * 3) + 1;&lt;br /&gt;
                &lt;br /&gt;
                cont &amp;lt;- cont + 1;&lt;br /&gt;
                Escribir Sin Saltar num, &amp;quot; &amp;quot;;&lt;br /&gt;
            FinMientras&lt;br /&gt;
&lt;br /&gt;
            Escribir &amp;quot;Ha donat &amp;quot;,cont,&amp;quot; voltes.&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;El número ha de ser positiu!!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Llegirem dos números que representaran una data, el primer representa el dia i el segon representa el mes. Cal dir quina data serà després de cinc dies (suposarem que febrer té sempre 28 dies) &lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Entrada: 28 3 Sortida: 2/4&lt;br /&gt;
Entrada: 27 12 Sortida: 1/1&lt;br /&gt;
Entrada: 26 2 Sortida: 2/3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Data&lt;br /&gt;
	Definir dia, mes, diesPerMes, diaSeguent, mesSeguent Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	Escribir &amp;quot;Introdueix el dia: &amp;quot;;&lt;br /&gt;
        Leer dia;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el mes: &amp;quot;;&lt;br /&gt;
        Leer mes;&lt;br /&gt;
	&lt;br /&gt;
        diesPerMes &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
        Segun Mes Hacer&lt;br /&gt;
            1, 3, 5, 7, 8, 10, 12: diesPerMes &amp;lt;- 31;&lt;br /&gt;
            4, 6, 9, 11: diesPerMes &amp;lt;- 30;&lt;br /&gt;
            2: diesPerMes &amp;lt;- 28;&lt;br /&gt;
        FinSegun&lt;br /&gt;
&lt;br /&gt;
        diaSeguent &amp;lt;- dia+5;&lt;br /&gt;
        &lt;br /&gt;
        Si diaSeguent&amp;gt;diesPerMes Entonces&lt;br /&gt;
            diaSeguent &amp;lt;- diaSeguent-diesPerMes;&lt;br /&gt;
            mes &amp;lt;-- mes + 1;&lt;br /&gt;
            Si mes&amp;gt;12 Entonces&lt;br /&gt;
                mes &amp;lt;-- 1;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Escribir diaSeguent, &amp;quot; &amp;quot;, mes;&lt;br /&gt;
&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Donat un missatge secret de 10000 caràcters cal saber si dins aquest missatge apareix la seqüència “XY” (els dos caràcters seguits). Només cal dir si apareix o si no apareix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso XY&lt;br /&gt;
	Definir carActual, carAnterior Como Caracter;&lt;br /&gt;
        Definir cont Como Entero;&lt;br /&gt;
 &lt;br /&gt;
	carAnterior=&amp;quot; &amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
        Leer carActual;&lt;br /&gt;
	&lt;br /&gt;
        cont &amp;lt;- 1;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (cont &amp;lt; 10000 &amp;amp;&amp;amp; (carAnterior != 'X' O carActual != 'Y')) Hacer&lt;br /&gt;
                &lt;br /&gt;
            carAnterior = carActual;&lt;br /&gt;
	    Escribir &amp;quot;Introdueix un caràcter: &amp;quot;;&lt;br /&gt;
            Leer carActual;&lt;br /&gt;
            cont &amp;lt;- cont + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si (carAnterior != 'X' Y carActual != 'Y') Entonces&lt;br /&gt;
		Escribir &amp;quot;Apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No apareix la seqüència XY&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Donat un número entrat per teclat cal escriure el primer divisor d’aquest número. Aquest ha de ser diferent de 1 i del mateix número. Si no hi hagués cap, sortirà un missatge que informi d'això. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir divisor, numero Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el número: &amp;quot;;&lt;br /&gt;
        Leer numero;&lt;br /&gt;
	&lt;br /&gt;
        divisor &amp;lt;- 2;&lt;br /&gt;
            &lt;br /&gt;
        Mientras (divisor &amp;lt; numero Y numero % divisor != 0) Hacer&lt;br /&gt;
                &lt;br /&gt;
            divisor &amp;lt;- divisor + 1;&lt;br /&gt;
&lt;br /&gt;
        FinMientras&lt;br /&gt;
&lt;br /&gt;
	Si divisor = numero Entonces&lt;br /&gt;
	    Escribir &amp;quot;No té cap divisor&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
	    Escribir &amp;quot;El primer divisor és: &amp;quot;, divisor;&lt;br /&gt;
	FinSi&lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Una línia horitzontal la definim per les dues coordenades x dels dos extrems. Un punt es troba a la mateixa línia horitzontal i s'estableix amb la seva coordenada x. &lt;br /&gt;
&lt;br /&gt;
El programa llegirà tres números, els dos primers seran els extrems de la línia (no tenen perquè estar ordenats) i el tercer serà la coordenada del punt. El programa ha de respondre si el punt està dins la línia i la distància a l’extrem més proper.&lt;br /&gt;
&lt;br /&gt;
Exemples:&lt;br /&gt;
&lt;br /&gt;
:Entrada: 10 5 7&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;7&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::'''|--------o------------|'''&lt;br /&gt;
:Sortida: Dins. Distància 2&lt;br /&gt;
&lt;br /&gt;
:Entrada: 8 10 5&lt;br /&gt;
:::::5&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;8&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;10&lt;br /&gt;
:::::o------------'''|--------|'''&lt;br /&gt;
:Sortida: Fora. Distància 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Divisor&lt;br /&gt;
        Definir x1, x2, punt, min, max, distanciaDreta, distanciaEsquerra  Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix la primera coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x1;&lt;br /&gt;
	Escribir &amp;quot;Introdueix la segona coordenada de la línia: &amp;quot;;&lt;br /&gt;
        Leer x2;&lt;br /&gt;
	Escribir &amp;quot;Introdueix el punt: &amp;quot;;&lt;br /&gt;
        Leer punt;&lt;br /&gt;
	&lt;br /&gt;
	Si x1 &amp;lt; x2 Entonces&lt;br /&gt;
           min &amp;lt;- x1;&lt;br /&gt;
           max &amp;lt;- x2;&lt;br /&gt;
	SiNo&lt;br /&gt;
           min &amp;lt;- x2;&lt;br /&gt;
           max &amp;lt;- x1;&lt;br /&gt;
	FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaDreta = max - punt;  &lt;br /&gt;
        Si (distanciaDreta &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaDreta = distanciaDreta * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        distanciaEsquerra = min - punt;&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt; 0) Entonces&lt;br /&gt;
            distanciaEsquerra = distanciaEsquerra * -1;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (punt &amp;gt;= min Y punt &amp;lt;= max) {&lt;br /&gt;
            Escribir &amp;quot;Dins&amp;quot;;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Fora&amp;quot;;&lt;br /&gt;
        FinSi&lt;br /&gt;
&lt;br /&gt;
        Si (distanciaEsquerra &amp;lt;= distanciaDreta) {&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaEsquerra;&lt;br /&gt;
        SiNo&lt;br /&gt;
            Escribir &amp;quot;Distància: &amp;quot;, distanciaDreta;&lt;br /&gt;
        FinSi&lt;br /&gt;
      &lt;br /&gt;
     &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis prova CURS 2024-2025==&lt;br /&gt;
&lt;br /&gt;
1. Càlcul de nòmines en una empresa &lt;br /&gt;
&lt;br /&gt;
En una empresa, hi ha tres tipus de treballadors: administratius, operaris i directius. Cada tipus de treballador té una tarifa horària diferent: els administratius cobren 12 € per hora, els operaris 15 € per hora i els directius 25 € per hora. A més, els directius reben un bonus fix de 500 € si treballen més de 160 hores mensuals. També es consideren els dies de baixa durant el mes, aplicant una penalització del 10% al sou final si aquests superen els cinc dies. &lt;br /&gt;
&lt;br /&gt;
Dissenya un programa que llegeixi contínuament el tipus de treballador, el nombre d'hores treballades i els dies de baixa, calculi el sou corresponent i indiqui si s'ha aplicat alguna penalització. &lt;br /&gt;
&lt;br /&gt;
'''El programa finalitzarà quan s'introdueixi un tipus de treballador no vàlid o bé un valor de sortida especificat'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalculNomines&lt;br /&gt;
	Definir tipus, hores, diesBaixa, sou Como Entero;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
	Leer tipus;&lt;br /&gt;
&lt;br /&gt;
	Mientras tipus &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Si tipus &amp;lt; 1 O tipus &amp;gt; 3 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Tipus no vàlid. Torna a intentar-ho.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre dhores treballades:&amp;quot;;&lt;br /&gt;
        	Leer hores;&lt;br /&gt;
        	Escribir &amp;quot;Introdueix el nombre de dies de baixa:&amp;quot;;&lt;br /&gt;
        	Leer diesBaixa;&lt;br /&gt;
&lt;br /&gt;
        	Segun tipus Hacer&lt;br /&gt;
            	1:&lt;br /&gt;
                	sou &amp;lt;- hores * 12;&lt;br /&gt;
            	2:&lt;br /&gt;
                	sou &amp;lt;- hores * 15;&lt;br /&gt;
            	3:&lt;br /&gt;
                	sou &amp;lt;- hores * 25;&lt;br /&gt;
                	Si hores &amp;gt; 160 Entonces&lt;br /&gt;
                    	   sou &amp;lt;- sou + 500;&lt;br /&gt;
                	FinSi&lt;br /&gt;
        	FinSegun&lt;br /&gt;
&lt;br /&gt;
        	Si diesBaixa &amp;gt; 5 Entonces&lt;br /&gt;
            	   sou &amp;lt;- sou * 0.9;&lt;br /&gt;
            	   Escribir &amp;quot;Penalització aplicada per dies de baixa.&amp;quot;;&lt;br /&gt;
        	FinSi&lt;br /&gt;
&lt;br /&gt;
        	Escribir &amp;quot;El sou del treballador és:&amp;quot;, sou, &amp;quot;€&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el tipus de treballador (1=Administratiu, 2=Operari, 3=Directiu, 0 per sortir):&amp;quot;;&lt;br /&gt;
    	   Leer tipus;&lt;br /&gt;
	FinMientras        &lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Control de passatgers en un aeroport &lt;br /&gt;
&lt;br /&gt;
Un aeroport vol gestionar la informació sobre els passatgers dels seus vols, diferenciant entre passatgers nacionals i internacionals. Es tracta de dissenyar un programa que permeti introduir el codi de cada vol, el nombre de passatgers nacionals i internacionals, i que calculi el total de passatgers del vol i el percentatge de passatgers internacionals. A més, el programa ha de ser capaç de determinar quin vol té el percentatge més alt de passatgers internacionals entre tots els registrats. &lt;br /&gt;
&lt;br /&gt;
'''El programa s'ha de repetir per diversos vols fins que es detecti un codi de vol de sortida especificat.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ControlPassatgers&lt;br /&gt;
        Definir codiVol, nacionals, internacionals, total, volMaxInternacionals Como Entero;&lt;br /&gt;
	Definir percentatgeInternacionals, maxPercentatge Como Real;&lt;br /&gt;
	maxPercentatge &amp;lt;- 0;&lt;br /&gt;
	volMaxInternacionals &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
	Leer codiVol;&lt;br /&gt;
&lt;br /&gt;
	Mientras codiVol &amp;lt;&amp;gt; 0 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers nacionals:&amp;quot;;&lt;br /&gt;
    	   Leer nacionals;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el nombre de passatgers internacionals:&amp;quot;;&lt;br /&gt;
    	   Leer internacionals;&lt;br /&gt;
&lt;br /&gt;
    	   total &amp;lt;- nacionals + internacionals;&lt;br /&gt;
    	   Escribir &amp;quot;El vol &amp;quot;, codiVol, &amp;quot; té un total de &amp;quot;, total, &amp;quot; passatgers.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    	   Si total &amp;gt; 0 Entonces&lt;br /&gt;
        	percentatgeInternacionals &amp;lt;- (internacionals / total) * 100;&lt;br /&gt;
        	Escribir &amp;quot;Percentatge de passatgers internacionals: &amp;quot;, percentatgeInternacionals, &amp;quot;%&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        	Si percentatgeInternacionals &amp;gt; maxPercentatge Entonces&lt;br /&gt;
            	   maxPercentatge &amp;lt;- percentatgeInternacionals;&lt;br /&gt;
            	   volMaxInternacionals &amp;lt;- codiVol;&lt;br /&gt;
        	FinSi&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;El vol no té passatgers.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el codi del vol (0 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer codiVol;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;El vol amb més percentatge de passatgers internacionals és el vol &amp;quot;, volMaxInternacionals, &amp;quot; amb un &amp;quot;, maxPercentatge, &amp;quot;% de passatgers internacionals.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Seguiment d'atletes en una competició &lt;br /&gt;
&lt;br /&gt;
En una competició d’atletisme, es volen analitzar els resultats de diversos atletes. Cada atleta participa en tres curses i es registra el temps (en segons) de cadascuna. Es necessita un programa que, per a cada atleta, llegeixi el número de dorsal i els temps de les tres curses, calculi la mitjana dels temps i indiqui si ha superat els 10 segons de mitjana o no. A més, el programa ha de mantenir un registre del dorsal de l'atleta amb la millor mitjana i el de l'atleta amb la pitjor mitjana. &lt;br /&gt;
&lt;br /&gt;
'''La introducció de dades continuarà fins que s'introdueixi un número de dorsal específic per finalitzar.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SeguimentAtletisme&lt;br /&gt;
        Definir dorsal, millorDorsal, pitjorDorsal Como Entero;&lt;br /&gt;
	Definir temps1, temps2, temps3 Como Real;&lt;br /&gt;
	Definir millorMitjana, pitjorMitjana, mitjana Como Real;&lt;br /&gt;
	millorMitjana &amp;lt;- 999999;&lt;br /&gt;
	pitjorMitjana &amp;lt;- 0;&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
	Leer dorsal;&lt;br /&gt;
&lt;br /&gt;
	Mientras dorsal &amp;lt;&amp;gt; -1 Hacer&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la primera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps1;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la segona cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps2;&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el temps de la tercera cursa:&amp;quot;;&lt;br /&gt;
    	   Leer temps3;&lt;br /&gt;
&lt;br /&gt;
       	   mitjana &amp;lt;- (temps1 + temps2 + temps3) / 3;&lt;br /&gt;
     	   Escribir &amp;quot;La mitjana de temps per latleta amb dorsal &amp;quot;, dorsal, &amp;quot; és: &amp;quot;, mitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
    	   Si mitjana &amp;lt; millorMitjana Entonces&lt;br /&gt;
        	millorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	millorDorsal &amp;lt;- dorsal;&lt;br /&gt;
     	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; pitjorMitjana Entonces&lt;br /&gt;
        	pitjorMitjana &amp;lt;- mitjana;&lt;br /&gt;
        	pitjorDorsal &amp;lt;- dorsal;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Si mitjana &amp;gt; 10 Entonces&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; no ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   Sino&lt;br /&gt;
        	Escribir &amp;quot;Latleta amb dorsal &amp;quot;, dorsal, &amp;quot; ha superat els 10 segons.&amp;quot;;&lt;br /&gt;
    	   FinSi&lt;br /&gt;
&lt;br /&gt;
    	   Escribir &amp;quot;Introdueix el dorsal de latleta (-1 per acabar):&amp;quot;;&lt;br /&gt;
    	   Leer dorsal;&lt;br /&gt;
	FinMientras&lt;br /&gt;
&lt;br /&gt;
	Escribir &amp;quot;Latleta amb millor mitjana és el dorsal &amp;quot;, millorDorsal, &amp;quot; amb una mitjana de &amp;quot;, millorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Latleta amb pitjor mitjana és el dorsal &amp;quot;, pitjorDorsal, &amp;quot; amb una mitjana de &amp;quot;, pitjorMitjana, &amp;quot; segons.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exercicis Arrays==&lt;br /&gt;
&lt;br /&gt;
1. Realitzar un programa que defineixi un vector anomenat &amp;quot;vector_numeros&amp;quot; de 10 enters, a continuació ho inicialitzi amb valors aleatoris (de l'1 al 10) i posteriorment mostri en pantalla cada element del vector juntament amb el seu quadrat i el seu cub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso QuadratCubVector&lt;br /&gt;
	Definir vector_numeros Como Entero;&lt;br /&gt;
	Dimension vector_numeros[10];&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	//Primer recorregut per llegir el vector&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		vector_numeros[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Segon recorregut per mostrar el resultat&lt;br /&gt;
	Para index&amp;lt;-0 hasta 9 hacer&lt;br /&gt;
		Escribir vector_numeros[index],&amp;quot; &amp;quot;,vector_numeros[index]^2,&amp;quot; &amp;quot;,vector_numeros[index]^3;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Crear un vector de 5 elements de cadenes de caràcters, inicialitza el vector amb dades llegides pel teclat. Copia els elements del vector en un altre vector però en ordre invers, i mostra-ho per la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector1 i llegeixo els seus elements per teclat. recorro de forma inversa el vector1 i vaig guardant els elements al vector2 (s'inverteixen).&lt;br /&gt;
:Recorro el vector2 per mostrar els elements.&lt;br /&gt;
:'''Dades d'entrada''': 5 cadenes de caràcters&lt;br /&gt;
:'''Informació de sortida''': Les cinc cadena però mostrar donin ordre invers.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::vector1,vector2 (vector de 5 cadenes)&lt;br /&gt;
::::tam_vector1,tam_vector2(enter)&lt;br /&gt;
::::indicador1, indicador2 (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorInvers&lt;br /&gt;
	Definir vector1,vector2 Como Cadenas;&lt;br /&gt;
	Dimension vector1[5],vector2[5];&lt;br /&gt;
	Definir indicador1,indicador2 Como Entero;&lt;br /&gt;
	Definir tam_vector1,tam_vector2 Como Entero;&lt;br /&gt;
	//Defineixo la mida dels vectors per utilitzar-los en els recorreguts&lt;br /&gt;
	tam_vector1&amp;lt;-5;&lt;br /&gt;
	tam_vector2&amp;lt;-5;&lt;br /&gt;
	//RRecorro el vector1 i llegeixo cada element per teclat&lt;br /&gt;
	Para indicador1&amp;lt;-0 hasta tam_vector1-1 hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dónam la cadena &amp;quot;,indicador1+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer vector1[indicador1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	indicador2&amp;lt;-0;&lt;br /&gt;
	//Recorro el vector1 des del final al principi&lt;br /&gt;
	//Cada element el guardo al vector2&lt;br /&gt;
	Para indicador1&amp;lt;-tam_vector1-1 hasta 0 con paso -1 hacer&lt;br /&gt;
		vector2[indicador2]&amp;lt;-vector1[indicador1];&lt;br /&gt;
		indicador2&amp;lt;-indicador2+1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro el vector2 per mostrar-lo&lt;br /&gt;
	Para indicador2&amp;lt;-0 hasta tam_vector2-1 hacer&lt;br /&gt;
		Escribir &amp;quot;La cadena &amp;quot;,indicador2+1,&amp;quot;: &amp;quot;,vector2[indicador2];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Es vol realitzar un programa que llegeixi per teclat les 5 notes obtingudes per un alumne (compreses entre 0 i 10). A continuació indiqui la nota mitjana, la nota més alta que ha tret i la menor.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo 5 notes (valido que siguin &amp;gt;=0 i &amp;lt;=10). guardant-les en un vector.&lt;br /&gt;
:Recorro de nou el vector per acumular les notes, calcular la nota màxima i la nota mínima.&lt;br /&gt;
:Finalment calculo la mitjana i mostro els valors.&lt;br /&gt;
:'''Dades d'entrada''': 5 notes&lt;br /&gt;
:'''Informació de sortida''': Les notes, la nota mitjana, nota màxima i nota mínima.&lt;br /&gt;
:'''Variables''':&lt;br /&gt;
::::notes (vector de 10 enters)&lt;br /&gt;
::::tam_notes,index(enter)&lt;br /&gt;
::::nota_mitjana (real), suma, nota_max, nota_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorNotes&lt;br /&gt;
	Definir notes Como Entero;&lt;br /&gt;
	Dimension notes[5];&lt;br /&gt;
	Definir tam_notes como Entero;&lt;br /&gt;
	Definir nota_mitjana Como Real;&lt;br /&gt;
	Definir suma,nota_max,nota_min, nota como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	&lt;br /&gt;
	tam_notes&amp;lt;-5;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer nota;&lt;br /&gt;
		Mientras nota&amp;lt;0 o nota&amp;gt;10 Hacer&lt;br /&gt;
			//Comprovem que sigui un nombre &amp;gt;=0 i &amp;lt;=10&lt;br /&gt;
			&lt;br /&gt;
			Escribir sin saltar &amp;quot;Nota incorrecte. Introdueix la nota &amp;quot;,index+1,&amp;quot;: &amp;quot;;&lt;br /&gt;
			Leer nota;&lt;br /&gt;
		FinMientras&lt;br /&gt;
		notes[index] &amp;lt;- nota;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suposo que la nota màxima i la mínima és aquesta primera&lt;br /&gt;
	nota_max&amp;lt;-notes[0];&lt;br /&gt;
	nota_min&amp;lt;-notes[0];&lt;br /&gt;
	&lt;br /&gt;
	suma&amp;lt;-0;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		//Acumulo la nota per calcular la mitjana&lt;br /&gt;
		suma&amp;lt;-suma+notes[index];&lt;br /&gt;
		//Actualitzo la nota màxima si en trobo una de més gran&lt;br /&gt;
		Si notes[index]&amp;gt;nota_max Entonces&lt;br /&gt;
			nota_max&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		//Actualitzo la nota mínima si en trobo una de més petita&lt;br /&gt;
		Si notes[index]&amp;lt;nota_min Entonces&lt;br /&gt;
			nota_min&amp;lt;-notes[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calculo la mitjana, tenint en compte la mida del vector&lt;br /&gt;
	nota_mitjana&amp;lt;-suma/tam_notes;&lt;br /&gt;
	//Mostro resultats&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir sin Saltar &amp;quot;Notes:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_notes-1 hacer&lt;br /&gt;
		Escribir sin Saltar notes[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;Nota mitjana: &amp;quot;,nota_mitjana;&lt;br /&gt;
	Escribir &amp;quot;Nota màxima: &amp;quot;,nota_max;&lt;br /&gt;
	Escribir &amp;quot;Nota mínima: &amp;quot;,nota_min;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Programa que declari un vector de deu elements enters i demani números per omplir-lo fins que s'ompli el vector o s'introdueixi un número negatiu. Llavors cal imprimir el vector (només els elements introduïts).&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro el vector i vaig inicialitzant els seus elements. Si introdueixo un número negatiu sortim del bucle. També acabo el bucle si introdueixo tots els elements de vector. El número negatiu em serveix d'indicador de fins a quina posició el vector té elements. &lt;br /&gt;
:Recorro fins a la mida del vector o trobi un número negatiu per mostrar els elements del vector.&lt;br /&gt;
:'''Dades d'entrada''': Llegeixo nombre positius i els guardo al vector, fins que llegiu un nombre negatiu o llegiu tots els elements del vector.&lt;br /&gt;
:'''Informació de sortida''': Els elements (números positius) guardats al vector.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,indice,num enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso VectorPositiu&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir tam_vector,index,num como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Recorro el vector i vaig inicialitzant els seus elements&lt;br /&gt;
	//No faig servir un para, perquè si introdueixo un nombre negatiu sortim del bucle&lt;br /&gt;
	//També acabo el bucle si introdueixo tots els elements de vector&lt;br /&gt;
	//El nombre negatiu em serveix d'indicador que fins a aquesta posició el vector té element&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un número al vector. Número &amp;quot;,index+1;&lt;br /&gt;
		Leer vector[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que index=tam_vector O vector[index-1]&amp;lt;0;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Recorro fins a la mida del vector o trobi un nombre negatiu&lt;br /&gt;
	Escribir &amp;quot;Elements del vector&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector-1 Y vector[index]&amp;gt;=0 Hacer&lt;br /&gt;
		Escribir sin saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.Fer un programa que inicialitzi un vector de números amb valors aleatoris, i posterior ordeneu els elements de menor a major.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo el vector amb valors aleatoris. Vaig recorrent el vector e intercanvio els valors de dos elements consecutius si no estan ordenats.&lt;br /&gt;
:Cada vegada que faig un intercanvi ho compatibilitzo, aquest procés ho repeteixo fins que no hagi fet cap canvi, el vector està ordenat.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Números del vector ordenat.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector (vector de 10 enters)&lt;br /&gt;
::::tam_vector,index,aux,canvis (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso OrdenarVector&lt;br /&gt;
	Definir vector Como Entero;&lt;br /&gt;
	Dimension vector[10];&lt;br /&gt;
	Definir canvis,aux Como Entero;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Definir tam_vector Como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-10;&lt;br /&gt;
	//Inicialitzo el vector amb valors aleatoris&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 hacer&lt;br /&gt;
		vector[index]&amp;lt;-aleatorio(1,10);&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Repetiré l'ordenació fins que no hagi canviat cap número&lt;br /&gt;
	Repetir &lt;br /&gt;
		canvis&amp;lt;-0;&lt;br /&gt;
		//Recorre fins a l'antepenúltim&lt;br /&gt;
		//Intercanvio els valors de dos elements consecutius si no estan ordenats&lt;br /&gt;
		Para index&amp;lt;-0 hasta tam_vector-2 Hacer&lt;br /&gt;
			Si vector[index]&amp;gt;vector[index+1] Entonces&lt;br /&gt;
				aux&amp;lt;-vector[index];&lt;br /&gt;
				vector[index]&amp;lt;-vector[index+1];&lt;br /&gt;
				vector[index+1]&amp;lt;-aux;&lt;br /&gt;
				canvis&amp;lt;-canvis+1;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	Hasta Que canvis=0;&lt;br /&gt;
	//Recorro el vector ordenat&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar vector[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Crea un programa que demani un número de mes a l'usuari (per exemple, el 4) i indiqui quants dies té (per exemple, 30) i el nom del mes. &lt;br /&gt;
&lt;br /&gt;
Has de fer servir un vector. Per simplificar-ho suposarem que el febrer té 28 dies.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Guardo en un vector de 12 posicions els dies corresponents a cada mes.&lt;br /&gt;
:De la mateixa manera guardo en un altre vector els noms dels mesos&lt;br /&gt;
:Llegeixo el número d'un mes (Comprovo que sigui entre 1 a 12) i faig coincidir el número del mes amb l'índex dels vectors.&lt;br /&gt;
:'''Dades d'entrada''': Número del mes&lt;br /&gt;
:'''Informació de sortida''': Dies i nom del mes.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::dies (vector de 12 enters)&lt;br /&gt;
::::nom_mes (vector de 12 cadenes),&lt;br /&gt;
::::mes (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso DiesDelMes&lt;br /&gt;
	Definir dies Como Entero;&lt;br /&gt;
	Dimension dies[12];&lt;br /&gt;
	Definir nom_mes Como Caracter;&lt;br /&gt;
	Dimension nom_mes[12];&lt;br /&gt;
	Definir mes como Entero;&lt;br /&gt;
	dies[0]&amp;lt;-31;&lt;br /&gt;
	dies[1]&amp;lt;-28;&lt;br /&gt;
	dies[2]&amp;lt;-31;&lt;br /&gt;
	dies[3]&amp;lt;-30;&lt;br /&gt;
	dies[4]&amp;lt;-31;&lt;br /&gt;
	dies[5]&amp;lt;-30;&lt;br /&gt;
	dies[6]&amp;lt;-31;&lt;br /&gt;
	dies[7]&amp;lt;-31;&lt;br /&gt;
	dies[8]&amp;lt;-30;&lt;br /&gt;
	dies[9]&amp;lt;-31;&lt;br /&gt;
	dies[10]&amp;lt;-30;&lt;br /&gt;
	dies[11]&amp;lt;-31;&lt;br /&gt;
	nom_mes[0]&amp;lt;-&amp;quot;Gener&amp;quot;;&lt;br /&gt;
	nom_mes[1]&amp;lt;-&amp;quot;Febrer&amp;quot;;&lt;br /&gt;
	nom_mes[2]&amp;lt;-&amp;quot;Març&amp;quot;;&lt;br /&gt;
	nom_mes[3]&amp;lt;-&amp;quot;Abril&amp;quot;;&lt;br /&gt;
	nom_mes[4]&amp;lt;-&amp;quot;Maig&amp;quot;;&lt;br /&gt;
	nom_mes[5]&amp;lt;-&amp;quot;Juny&amp;quot;;&lt;br /&gt;
	nom_mes[6]&amp;lt;-&amp;quot;Juliol&amp;quot;;&lt;br /&gt;
	nom_mes[7]&amp;lt;-&amp;quot;Agost&amp;quot;;&lt;br /&gt;
	nom_mes[8]&amp;lt;-&amp;quot;Setembre&amp;quot;;&lt;br /&gt;
	nom_mes[9]&amp;lt;-&amp;quot;Octubre&amp;quot;;&lt;br /&gt;
	nom_mes[10]&amp;lt;-&amp;quot;Novembre&amp;quot;;&lt;br /&gt;
	nom_mes[11]&amp;lt;-&amp;quot;Desembre&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
        Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
	Leer mes;&lt;br /&gt;
	Mientras mes &amp;lt; 1 o mes &amp;gt; 12 Hacer	&lt;br /&gt;
		Escribir &amp;quot;Error: mes incorrecte.&amp;quot;;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix un mes  (1-12):&amp;quot;;&lt;br /&gt;
                Leer mes;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;El mes de &amp;quot;,nom_mes[mes-1],&amp;quot; té &amp;quot;,dies[mes-1],&amp;quot; dies.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Programa que declari tres vectors 'vector1', 'vector2' i 'vector3' de cinc enters cadascun, demaneu valors per a 'vector1' i 'vector2' i calculeu vector3=vector1+vector2.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Omple els elements de dos vectors. Posteriorment els recorro per sumar els valors i desar-lo en un tercer vector.&lt;br /&gt;
:'''Dades d'entrada''': Números per al primer vector, números per al segon vector&lt;br /&gt;
:'''Informació de sortida''': Els números del tercer vector, que és la suma dels anteriors&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::vector1,vector2,vector3 (vectors de 5 enters), &lt;br /&gt;
::::índex, tam_vector (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso SumarVectors&lt;br /&gt;
	Definir vector1,vector2,vector3 Como Entero;&lt;br /&gt;
	Dimension vector1[5],vector2[5],vector3[5];&lt;br /&gt;
	Definir tam_vector como Entero;&lt;br /&gt;
	tam_vector&amp;lt;-5;&lt;br /&gt;
	Definir index Como Entero;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector1:&amp;quot;;&lt;br /&gt;
		Leer vector1[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar &amp;quot;Introdueix lelement &amp;quot;,index+1,&amp;quot; del vector2:&amp;quot;;&lt;br /&gt;
		Leer vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		vector3[index]&amp;lt;-vector1[index]+vector2[index];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;La suma dels vectors és:&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 hasta tam_vector-1 Hacer&lt;br /&gt;
		Escribir sin Saltar vector3[index],&amp;quot; &amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Volem desar els noms i les edats dels alumnes de curs. &lt;br /&gt;
:Feu un programa que introdueixi el nom i l'edat de cada alumne. &lt;br /&gt;
:El procés de lectura de dades acabarà quan s'introdueixi com a nom un asterisc (*) &lt;br /&gt;
:En finalitzar es mostrarà les dades següents:&lt;br /&gt;
:* Tots els alumnes majors d'edat.&lt;br /&gt;
:* Els alumnes més grans (els que tenen més edat)&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Inicialitzo els vectors fins que introduïu un &amp;quot;*&amp;quot; o arribi a final del vector.&lt;br /&gt;
:El * em serveix per indicar el final del vector. &lt;br /&gt;
:Faig un recorregut per mostrar els alumnes majors d'edat.&lt;br /&gt;
:Faig un recorregut (fins a trobar un * o arriba al final) per calcular l'edat màxima. A continuació recorro els arrays, i mostro el nom dels alumnes amb més edat.&lt;br /&gt;
:Dades d'entrada: Nom i edat dels alumnes fins a ficar *.&lt;br /&gt;
:Informació de sortida: Els alumnes majors d'edat, i els alumnes més grans&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::edat (vector de 30 enters), nom (vector de 30 cadenes)&lt;br /&gt;
::::index, tam_vector, edat_max (enter)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats, numAlum Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms, nom Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
	Leer nom;&lt;br /&gt;
	Mientras nom &amp;lt;&amp;gt;&amp;quot;*&amp;quot; Y index &amp;lt; tam_vector Hacer&lt;br /&gt;
	    noms[index] &amp;lt;- nom;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Diguem la seva edat:&amp;quot;;&lt;br /&gt;
		Leer edats[index];&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Diguem el nom dun alumne:&amp;quot;;&lt;br /&gt;
		Leer nom;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	numAlum &amp;lt;- index;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors dedat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index &amp;lt; numAlum  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;numAlum Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso InformacioAlumnos&lt;br /&gt;
	Definir edats Como Entero;&lt;br /&gt;
	Dimension edats[30];&lt;br /&gt;
	Definir noms Como Caracter;&lt;br /&gt;
	Dimension noms[30];&lt;br /&gt;
	Definir edat_max como Entero;&lt;br /&gt;
	Definir index,tam_vector como Entero;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	tam_vector&amp;lt;-30;&lt;br /&gt;
	//Inicialitzo els vectors fins que introdueixi un &amp;quot;*&amp;quot; o arribi a final del vector&lt;br /&gt;
	//El * em serveix per indicar el final del vector&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Digue'm el nom d'un alumne:&amp;quot;;&lt;br /&gt;
		Leer noms[index];&lt;br /&gt;
		Si noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Entonces&lt;br /&gt;
			Escribir sin saltar &amp;quot;Digue'm la seva edat:&amp;quot;;&lt;br /&gt;
			Leer edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	Hasta Que noms[index-1]=&amp;quot;*&amp;quot; o index=tam_vector;&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	//Calcular la edat màxima&lt;br /&gt;
	//El recorrido es hasta que no encuentre un * y no hayamos llegado al final del vector&lt;br /&gt;
	edat_max&amp;lt;-edats[0];&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;edat_max Entonces&lt;br /&gt;
			edat_max&amp;lt;-edats[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors d'edat&lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors d'edat&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;=======================&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]&amp;gt;=18 Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	// Alumnes majors &lt;br /&gt;
	index&amp;lt;-0;&lt;br /&gt;
	Escribir &amp;quot;Alumnes majors&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===============&amp;quot;;&lt;br /&gt;
	Mientras index&amp;lt;tam_vector Y noms[index]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Si edats[index]=edat_max Entonces&lt;br /&gt;
			Escribir noms[index];&lt;br /&gt;
		FinSi&lt;br /&gt;
		index&amp;lt;-index+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Volem guardar la temperatura mínima i màxima de 5 dies. &lt;br /&gt;
:Realitza un programa que proporcioni la següent informació:&lt;br /&gt;
:* La temperatura mitjana de cada dia&lt;br /&gt;
:* Els dies amb menys temperatura&lt;br /&gt;
:* Es llegeix una temperatura per teclat i es mostren els dies la temperatura dels quals màxima coincideix amb ella.Si no hi ha cap dia es mostra un missatge informatiu.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula llegint per a cada dia la temperatura màxima i mínima.&lt;br /&gt;
:Recorro la taula per mostrar la temperatura mitjana de cada dia.&lt;br /&gt;
:Recorro la taula, per calcular la temperatura mínima, i torno a recórrer per mostrar els dies amb aquesta temperatura.&lt;br /&gt;
:Per últim demano una temperatura i recorro la taula per mostrar el dia del qual temperatura màxima és igual a la temperatura indicada, o un missatge dient que no hi ha dia amb aquesta temperatura.&lt;br /&gt;
:'''Dades d'entrada''': Al cap de cinc dies introduïm temperatura màxima i mínima. I al final introduïm una temperatura per cercar els dies amb temperatura màxima.&lt;br /&gt;
:'''Informació de sortida''': La temperatura mitjana de cada dia, els dies amb temperatura mínima, els dies amb temperatures màxima la indicada per teclat o un missatge informant que no hi ha dies amb aquesta temperatura màxima.&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::temperatura (taula de 5 x 2 enters)&lt;br /&gt;
::::existeix_temperatura (logico)&lt;br /&gt;
::::índex, cant_dies (enter)&lt;br /&gt;
::::temp_max, temp_min (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso ExTemperatures&lt;br /&gt;
	Definir temperatures Como Real;&lt;br /&gt;
	Dimension temperatures[5,2];&lt;br /&gt;
	Definir existeix_temperatura Como Logico;&lt;br /&gt;
	Definir index,cant_dies como Entero;&lt;br /&gt;
	Definir temp_max, temp_min como Real;&lt;br /&gt;
	cant_dies&amp;lt;-5;&lt;br /&gt;
	//Recorregut per emplenar la taula (5 dies amb temp mínima i màxima)&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mínima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura màxima:&amp;quot;;&lt;br /&gt;
		Leer temperatures[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar temperatura mitjana&lt;br /&gt;
	Escribir &amp;quot;Temperatures mitjanes&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Escribir &amp;quot;Dia &amp;quot;,(index+1),&amp;quot;. Temperatura mitjana:&amp;quot;,(temperatures[index,0]+temperatures[index,1])/2;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Calcular temperatura mínima més petita&lt;br /&gt;
	temp_min&amp;lt;-temperatures[0,0];&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]&amp;lt;temp_min Entonces&lt;br /&gt;
			temp_min&amp;lt;-temperatures[index,0];&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Mostrar els dies amb menys temperatura&lt;br /&gt;
	Escribir &amp;quot;Dies amb menys temperatura&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;==========================&amp;quot;;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,0]=temp_min Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Dies amb temperatura màxima&lt;br /&gt;
	existeix_temperatura&amp;lt;-Falso;&lt;br /&gt;
	Escribir &amp;quot;Dies amb temperatura màxima&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;===========================&amp;quot;;&lt;br /&gt;
	Escribir sin saltar &amp;quot;Introdueix una temperatura:&amp;quot;;&lt;br /&gt;
	Leer temp_max;&lt;br /&gt;
	Para index&amp;lt;-0 Hasta cant_dies-1 Hacer&lt;br /&gt;
		Si temperatures[index,1]=temp_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Dia &amp;quot;,(index+1);&lt;br /&gt;
			existeix_temperatura&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
	Si no existeix_temperatura Entonces&lt;br /&gt;
		Escribir &amp;quot;No hi ha cap dia amb aquesta temperatura.&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'matriu'.&lt;br /&gt;
:* Carrega la taula amb valors numèrics enters.&lt;br /&gt;
:* Suma tots els elements de cada fila i tots els elements de cada columna visualitzant els resultats en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula (amb dues per) i vaig llegint els elements de cada fila i columna.&lt;br /&gt;
:Recorro la taula per files i columnes i vaig acumulant el valor dels elements de cada columna.&lt;br /&gt;
:Recorro la taula per columnes i files i vaig acumulant el valor dels elements de cada fila.&lt;br /&gt;
:'''Dades dentrada''': Els elements de la taula.&lt;br /&gt;
:'''Informació de sortida''': La suma per cada columna, i la suma per cada fila&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols, suma (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Tabla&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar &amp;quot;Introduïu el número de la fila &amp;quot;,fila+1,&amp;quot; i columna &amp;quot;,col+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les files&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la fila &amp;quot;,fila+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Suma les columnes&lt;br /&gt;
	Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
		suma&amp;lt;-0;&lt;br /&gt;
		Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
			suma&amp;lt;-suma+ matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;La suma dels elements de la columna &amp;quot;,col+1,&amp;quot; és &amp;quot;,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x5 i nom 'diagonal'.&lt;br /&gt;
:* Carrega la taula de manera que els components pertanyents a les diagonals de la matriu prenen el valor 1 i la resta el valor 0.&lt;br /&gt;
:* Mostra el contingut de la taula en pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = índex de columna (diagonal principal) o índex de fila = nombre de files - 1 - índex de columnes (l'altra diagonal) guardo un 1 sinó guardo un 0.&lt;br /&gt;
:Recorro la taula per mostrar-la.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Diagonal&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,5];&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	Definir num_files, num_cols Como Entero;&lt;br /&gt;
	Definir suma como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-5;&lt;br /&gt;
	//Recorro la taula &lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic en alguna diagonal inicialitzo a 1&lt;br /&gt;
			Si fila=col o fila=(num_files-1)-col Entonces&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			//No estic en diagonal, inicialitzo a 0&lt;br /&gt;
			SiNo&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
12. Dissenyar l'algorisme corresponent a un programa, que:&lt;br /&gt;
:* Crea una taula bidimensional de longitud 5x15 i nom 'marc'.&lt;br /&gt;
:* Carrega la taula amb dos únics valors 0 i 1, on el valor un ocuparà les posicions o elements que delimiten la taula, és a dir, les més externes, mentre que la resta dels elements contindran el valor 0.&lt;br /&gt;
:* Visualitza el contingut de la matriu a la pantalla.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro la taula: si l'índex de fila = 0 (extrem esquerre)&lt;br /&gt;
::o índex de fila = nombre de files -1 (extrem dret)&lt;br /&gt;
::o índex de columnes = 0 (extrem superior)&lt;br /&gt;
::o índex de columnes = de columnes columnes -1 (extrem inferior)&lt;br /&gt;
:inicialitzo a 1, sinó inicialitzo a 0.&lt;br /&gt;
:Recorro la taula per files i columnes per mostrar els valors.&lt;br /&gt;
:'''Dades d'entrada''': Res&lt;br /&gt;
:'''Informació de sortida''': Els valors de la taula&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::matriu (taula de 5 x 5 enter)&lt;br /&gt;
::::fila, col, num_files, num_cols (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CostatExtern&lt;br /&gt;
	Definir matriz Como Entero;&lt;br /&gt;
	Dimension matriz[5,15];&lt;br /&gt;
	Definir num_files,num_cols como Entero;&lt;br /&gt;
	Definir fila,col como Entero;&lt;br /&gt;
	num_files&amp;lt;-5;&lt;br /&gt;
	num_cols&amp;lt;-15;&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			//Si estic a l'extrem esquerre, dret, superior o inferior&lt;br /&gt;
			Si fila=0 o fila=num_files-1 o col=0 o col= num_cols-1 Entonces&lt;br /&gt;
				//Inicialitzo a 1&lt;br /&gt;
				matriz[fila,col]&amp;lt;-1;&lt;br /&gt;
			SiNo&lt;br /&gt;
				//SiNo inicialitzo a 0&lt;br /&gt;
				matriz[fila,col]&amp;lt;-0;&lt;br /&gt;
			FinSi&lt;br /&gt;
			&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro per mostrar la taula&lt;br /&gt;
	Para fila&amp;lt;-0 hasta num_files-1 Hacer&lt;br /&gt;
		Para col&amp;lt;-0 hasta num_cols-1 Hacer&lt;br /&gt;
			Escribir Sin Saltar matriz[fila,col];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. D'una empresa de transport es vol guardar el nom dels conductors que té, i els quilòmetres que condueixen cada dia de la setmana.&lt;br /&gt;
:Per desar aquesta informació s'utilitzaran dos array:&lt;br /&gt;
&lt;br /&gt;
:* Nom: Vector per guardar els noms dels conductors.&lt;br /&gt;
:* kms: Taula per guardar els quilòmetres que fan cada dia de la setmana.&lt;br /&gt;
&lt;br /&gt;
:Es vol generar un nou vector (&amp;quot;total_kms&amp;quot;) amb els quilòmetres totals que realitza cada conductor.&lt;br /&gt;
:En finalitzar es mostra la llista amb els noms de conductors i els quilòmetres ha realitzat.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
:El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
:Recorro els vectors fins al nombre de conductors indicats (ho guardo en un vector), llegint el nom i els kms per dies (ho guardo en una taula).&lt;br /&gt;
:Recorro la taula acumulant els quilòmetres realitzats a la darrera columna de la taula.&lt;br /&gt;
:Finalment torno a recórrer per mostrar els noms i els km acumulats.&lt;br /&gt;
:'''Dades d'entrada:''' El nombre de conductors, els noms i els kms realitzats per dia&lt;br /&gt;
:'''Informació de sortida''': Els noms dels conductors i el total de kms realitzats&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
&lt;br /&gt;
::::kms (taula de 10 x 8 enters), nom (vector de 10 cadenes)&lt;br /&gt;
::::index_cond, index_dies, num_conductors, tam_conductors_max (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
	Leer num_conductors;&lt;br /&gt;
	Mientras num_conductors&amp;gt;mida_conductors_max Hacer&lt;br /&gt;
		Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso CalcularKilometres&lt;br /&gt;
	Definir nom Como Caracter;&lt;br /&gt;
	Dimension nom[10];&lt;br /&gt;
	Definir kms Como Entero;&lt;br /&gt;
	//8 columnes, les set primeres per guardar els km diaris, i l'última per guardar els km acumulats&lt;br /&gt;
	Dimension kms[10,8];&lt;br /&gt;
	Definir num_conductors,index_cond,index_dies, mida_conductors_max como Entero;&lt;br /&gt;
	Definir dies Como Caracter;&lt;br /&gt;
	Dimension dies[7];&lt;br /&gt;
	&lt;br /&gt;
	mida_conductors_max&amp;lt;-10;&lt;br /&gt;
	dies[0]&amp;lt;-&amp;quot;Dilluns&amp;quot;;&lt;br /&gt;
	dies[1]&amp;lt;-&amp;quot;Dimarts&amp;quot;;&lt;br /&gt;
	dies[2]&amp;lt;-&amp;quot;Dimecres&amp;quot;;&lt;br /&gt;
	dies[3]&amp;lt;-&amp;quot;Dijous&amp;quot;;&lt;br /&gt;
	dies[4]&amp;lt;-&amp;quot;Divendres&amp;quot;;&lt;br /&gt;
	dies[5]&amp;lt;-&amp;quot;Dissabte&amp;quot;;&lt;br /&gt;
	dies[6]&amp;lt;-&amp;quot;Diumenge&amp;quot;;&lt;br /&gt;
	//Llegeixo el nombre de conductors. Nombre de dades que guardaré als arrays&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir sin saltar &amp;quot;Quants conductors té lempresa?:&amp;quot;;&lt;br /&gt;
		Leer num_conductors;&lt;br /&gt;
		//El nombre indicat ha de ser menor que la màxima mida dels arrays&lt;br /&gt;
		Si num_conductors&amp;gt;mida_conductors_max Entonces&lt;br /&gt;
			Escribir &amp;quot;Com a màxim puc desar la informació de &amp;quot;, mida_conductors_max,&amp;quot; conductors&amp;quot;;&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta que num_conductors&amp;lt;=mida_conductors_max;&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir sin saltar &amp;quot;Nom del conductor &amp;quot;,index_cond+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		//Llegeixo el nom&lt;br /&gt;
		Leer nom[index_cond];&lt;br /&gt;
		//Llegeixo els km realitzats per a cada dia&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			Escribir sin saltar &amp;quot;Quants km ha realitzat el &amp;quot;,dies[index_dies],&amp;quot;?:&amp;quot;;&lt;br /&gt;
			Leer kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		//Inicialitzo l'acumulador per conductor&lt;br /&gt;
		kms[index_cond,7]&amp;lt;-0;&lt;br /&gt;
		//Acumulo els kms per dia i el guardo en un vector&lt;br /&gt;
		Para index_dies&amp;lt;-0 hasta 6 Hacer&lt;br /&gt;
			kms[index_cond,7]&amp;lt;-kms[index_cond,7]+kms[index_cond,index_dies];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Recorro els vectors fins al nombre de conductors indicats per mostrar la informació de sortida&lt;br /&gt;
	Para index_cond&amp;lt;-0 hasta num_conductors-1 Hacer&lt;br /&gt;
		Escribir nom[index_cond],&amp;quot; ha realitzat &amp;quot;,kms[index_cond,7],&amp;quot; kms.&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14. Crear un programa que llegeixi els preus de 5 articles i les quantitats venudes per una empresa a les seves 4 sucursals. Informar:&lt;br /&gt;
&lt;br /&gt;
:* Les quantitats totals de cada article.&lt;br /&gt;
:* La quantitat d'articles a la sucursal 2.&lt;br /&gt;
:* La quantitat de l'article 3 a la sucursal 1.&lt;br /&gt;
:* La recaptació total de cada sucursal.&lt;br /&gt;
:* La recaptació total de l'empresa.&lt;br /&gt;
:* La sucursal de més recaptació.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Llegeixo els preus dels articles (ho guardo al vector Preu)&lt;br /&gt;
:Llegeixo les quantitats venudes dels 5 articles a les 4 sucursals (ho guardo a la taula Quantitat)&lt;br /&gt;
:Recorro la taula per articles, i mostro el que s'ha venut en total (per article)&lt;br /&gt;
:Recorro la taula per articles i mostro el que s'ha venut a la sucursal 2.&lt;br /&gt;
:Mostro el que s'ha venut de l'article 3 a la sucursal 1&lt;br /&gt;
:Recorro la taula acumulant tot el que s'ha venut i el total per sucursal. A més a més en aquest recorregut calculo la sucursal que ha venut més.&lt;br /&gt;
:'''Dades d'entrada''': preu de 5 articles i la quantitat venuda de cada article a 4 sucursals&lt;br /&gt;
:'''Informació de sortida''': Les que indica l'enunciat&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::preu (taula de 3 reals), quantitat (taula de 4 x 5 reals)&lt;br /&gt;
::::suma, numMajor, articlesSucursal2, majorRec, totalSucursal, totalEmpresa (real)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Sucursals&lt;br /&gt;
	Definir preu, quantitat, suma, numMajor,articlesSucursal2, majorRec, totalSucursal, totalEmpresa Como Real;&lt;br /&gt;
	Definir indexArt, indexSucursal como Entero;&lt;br /&gt;
	&lt;br /&gt;
	Dimension preu[5], quantitat[4,5];&lt;br /&gt;
	&lt;br /&gt;
	// Llegir preus&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		Escribir 'Introdueixi el preu de larticle ',indexArt+1,': ';&lt;br /&gt;
		Leer preu[indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Llegir quantitats&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			Escribir 'Introdueixi la quantitat de larticle ',indexArt+1,', en Sucursal ',indexSucursal+1,': ';&lt;br /&gt;
			Leer quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Sumar quantitats per articles&lt;br /&gt;
	Escribir 'Quantitats per articles:';&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		suma &amp;lt;- 0;&lt;br /&gt;
		Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			suma&amp;lt;-quantitat[indexSucursal,indexArt];&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Total article ',indexArt+1,': ' ,suma;&lt;br /&gt;
	FinPara&lt;br /&gt;
	&lt;br /&gt;
	// Informar total articles sucursal 2&lt;br /&gt;
	articlesSucursal2&amp;lt;-0;&lt;br /&gt;
	Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
		articlesSucursal2&amp;lt;-articlesSucursal2+quantitat[1,indexArt];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Total Sucursal 2:',articlesSucursal2;&lt;br /&gt;
	&lt;br /&gt;
	// Informar Sucursal 1, Article 3:&lt;br /&gt;
	Escribir 'Sucursal 1, Article 3: ',quantitat[0,2];&lt;br /&gt;
	&lt;br /&gt;
	// Acumular total de cada sucursal (totalSucursal) i&lt;br /&gt;
	// total de la empresa (totalEmpresa)&lt;br /&gt;
	majorRec&amp;lt;-0;&lt;br /&gt;
	numMajor&amp;lt;-0;&lt;br /&gt;
	totalEmpresa&amp;lt;-0;&lt;br /&gt;
	Para indexSucursal&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		totalSucursal&amp;lt;-0;&lt;br /&gt;
		Para indexArt&amp;lt;-0 Hasta 4 Hacer&lt;br /&gt;
			totalSucursal&amp;lt;-totalSucursal+(quantitat[indexSucursal,indexArt]*preu[indexArt]);&lt;br /&gt;
		FinPara&lt;br /&gt;
		Escribir 'Recaudacions Sucursal ',indexSucursal+1,': ',totalSucursal;&lt;br /&gt;
		//Calculo la sucursal amb més recaudació&lt;br /&gt;
		Si totalSucursal&amp;gt;majorRec entonces&lt;br /&gt;
			majorRec&amp;lt;-totalSucursal;&lt;br /&gt;
			numMajor&amp;lt;-indexSucursal+1;&lt;br /&gt;
		FinSi&lt;br /&gt;
		totalEmpresa&amp;lt;-totalEmpresa+totalSucursal;&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir 'Recaudació total de la empresa: ',totalEmpresa;&lt;br /&gt;
	Escribir 'Sucursal de Major Recaudació: ',numMajor;&lt;br /&gt;
	&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15. Crear un programa d'ordinador per gestionar els resultats de la travessa de futbol. Per això utilitzarem dues taules:&lt;br /&gt;
&lt;br /&gt;
:*Equips: Que és una taula de cadenes on guardem a cada columna el nom dels equips de cada partit. A la travessa s'indiquen 15 partits.&lt;br /&gt;
:*Resultats: És una taula de nombres enters on s'indica el resultat. També té dues columnes, a la primera es guarda el nombre de gols de l'equip que està guardat a la primera columna de la taula anterior, i a la segona els gols de l'altre equip.&lt;br /&gt;
&lt;br /&gt;
:El programa anirà demanant els noms dels equips de cada partit i el resultat del partit, a continuació s'imprimirà la travessa d'aquesta jornada.&lt;br /&gt;
&lt;br /&gt;
'''Anàlisi'''&lt;br /&gt;
&lt;br /&gt;
:Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit (gols)&lt;br /&gt;
:Recorro les taules, mostro el nom dels equips i el resultat de la travessa:&lt;br /&gt;
:*Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
:*Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
:*Una X si hi ha empat&lt;br /&gt;
:'''Dades d'entrada''': Nom dels dos equips i el resultat del partit (per a cada partit)&lt;br /&gt;
:'''Informació de sortida''': Els noms dels equips i el resultat de la travessa&lt;br /&gt;
:'''Variables''': &lt;br /&gt;
::::equips (taula de 15 x 2 cadenes), resultats (taula de 15 x 2 enters)&lt;br /&gt;
::::index, num_equips (enter)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Travessa&lt;br /&gt;
	Definir index, numEquips Como Entero;&lt;br /&gt;
	Definir equips Como Caracter;&lt;br /&gt;
	Dimension equips[15,2];&lt;br /&gt;
	Definir resultats Como Entero;&lt;br /&gt;
	Dimension resultats[15,2];&lt;br /&gt;
	numEquips&amp;lt;-15;&lt;br /&gt;
	//Recorro les taules per inicialitzar el nom dels dos equips i el resultat del partit&lt;br /&gt;
	Para index&amp;lt;-0 hasta numEquips-1 Hacer&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 1 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix el nom de l'equip 2 del partit &amp;quot;, index+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
		Leer equips[index,1];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,0],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,0];&lt;br /&gt;
		Escribir Sin Saltar &amp;quot;Introdueix els gols ficats per l'equip &amp;quot;,equips[index,1],&amp;quot;: &amp;quot;;&lt;br /&gt;
		Leer resultats[index,1];&lt;br /&gt;
	FinPara&lt;br /&gt;
	Escribir &amp;quot;TRAVESSA&amp;quot;;&lt;br /&gt;
	Escribir &amp;quot;========&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	// Recorro les taules, mostro el nom dels equips i el resultat del partit (per a cada partit)&lt;br /&gt;
	// Un 1 si el que juga a casa ha guanyat (primer equip guanya)&lt;br /&gt;
	// Un 2 si el que juga de visitant ha guanyat (segon equip guanya)&lt;br /&gt;
	// Una X si hi ha empat&lt;br /&gt;
	Para index&amp;lt;-0 hasta num_equipos-1 Hacer&lt;br /&gt;
		Si resultados[index,0]&amp;gt;resultados[index,1] Entonces&lt;br /&gt;
			Escribir equipos[index,0], &amp;quot; - &amp;quot;,equipos[index,0],&amp;quot; -&amp;gt; 1&amp;quot;;&lt;br /&gt;
		SiNo&lt;br /&gt;
			Si resultats[index,0]&amp;lt;resultats[index,1] Entonces&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; 2&amp;quot;;&lt;br /&gt;
			SiNo&lt;br /&gt;
				Escribir equips[index,0], &amp;quot; - &amp;quot;,equips[index,0],&amp;quot; -&amp;gt; X&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercicis programació estructurada==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Fes un programa de conversió entre el sistema decimal i el sistema binari. En concret el programa presentarà un menú i utilitzarà &lt;br /&gt;
dues funcions: una que ens permeti convertir un nombre sencer a binari, i una altra que ens permeti convertir un nombre binari a decimal.&lt;br /&gt;
&lt;br /&gt;
:*ConvertirABinari: Funció que rep un nombre enter i torna una cadena amb la representació del número en binari. &lt;br /&gt;
:*ConvertirADecimal: Funció que rep una cadena amb la representació binària dun nombre i torna el nombre en decimal. Aquesta funció utilitzarà una altra, EsBinari, que rep un nombre enter i torna cert si un nombre binari i fals en cas contrari. &lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
:*convertirATexto(numero): Rep un numero i retorna una variable cadena de caràcters de aquest numero.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/// Programa per convertir nombres entre decimal i binari&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio, nombre Como Entero;&lt;br /&gt;
	Definir binari Como Cadena;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions&lt;br /&gt;
        Escribir &amp;quot;1. Convertir de decimal a binari&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Convertir de binari a decimal&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Convertir un nombre decimal a binari&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre enter: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer nombre;&lt;br /&gt;
                Escribir &amp;quot;En binari: &amp;quot;, ConvertirABinari(nombre);&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Convertir un nombre binari a decimal&lt;br /&gt;
                Escribir &amp;quot;Introdueix un nombre en binari: &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer binari;&lt;br /&gt;
                Si EsBinari(binari) Entonces&lt;br /&gt;
                    Escribir &amp;quot;En decimal: &amp;quot;, ConvertirADecimal(binari);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: No és un nombre binari vàlid.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:;&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre decimal a binari&lt;br /&gt;
Funcion binari &amp;lt;- ConvertirABinari(nombre)&lt;br /&gt;
    Definir binari Como Cadena;&lt;br /&gt;
    binari &amp;lt;- &amp;quot;&amp;quot;;&lt;br /&gt;
    Si nombre = 0 Entonces&lt;br /&gt;
        binari &amp;lt;- &amp;quot;0&amp;quot;;&lt;br /&gt;
    FinSi&lt;br /&gt;
    // Aplicar el mètode de divisió successiva per obtenir la representació binària&lt;br /&gt;
    Mientras nombre &amp;gt; 0 Hacer&lt;br /&gt;
        binari &amp;lt;- Concatenar(ConvertirATexto(nombre mod 2), binari);&lt;br /&gt;
        nombre &amp;lt;- trunc(nombre / 2);&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per convertir un nombre binari a decimal&lt;br /&gt;
Funcion decimal &amp;lt;- ConvertirADecimal(binari)&lt;br /&gt;
    Definir decimal, i, pot2 Como Entero;&lt;br /&gt;
    decimal &amp;lt;- 0;&lt;br /&gt;
    pot2 &amp;lt;- 1;&lt;br /&gt;
    i &amp;lt;- longitud(binari) - 1;&lt;br /&gt;
    Mientras i &amp;gt;= 0 Hacer&lt;br /&gt;
        // Multiplicar cada bit pel seu pes i sumar al resultat&lt;br /&gt;
        decimal &amp;lt;- decimal + ConvertirANumero(subcadena(binari, i, i)) * pot2;&lt;br /&gt;
        pot2 &amp;lt;- pot2 * 2;&lt;br /&gt;
        i &amp;lt;- i - 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per verificar si una cadena és un nombre binari vàlid&lt;br /&gt;
Funcion esValid &amp;lt;- EsBinari(binari)&lt;br /&gt;
    Definir esValid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    esValid &amp;lt;- Verdadero;&lt;br /&gt;
    i &amp;lt;- 0;&lt;br /&gt;
    // Comprovar que tots els caràcters són '0' o '1'&lt;br /&gt;
    Mientras i &amp;lt; longitud(binari) Y esValid Hacer&lt;br /&gt;
        Si no (subcadena(binari, i, i) = &amp;quot;0&amp;quot; O subcadena(binari, i, i) = &amp;quot;1&amp;quot;) Entonces&lt;br /&gt;
            esValid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
        i &amp;lt;- i + 1;&lt;br /&gt;
    FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.- El DNI (Document Nacional d'Identitat) a Espanya està format per 8 números i una lletra. La lletra ens serveix per verificar que el número és correcte, per tant la lletra es calcula a partir del número. &lt;br /&gt;
&lt;br /&gt;
Per obtenir la lletra, cal dividir el número per 23 i quedar-te amb la resta. La lletra que correspon segons la resta és:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 - T    1 - R    2 - W    3 - A    4 - G    5 - M    6 - Y    7 - F    8 - P    9 - D   10 - X   11 - B&lt;br /&gt;
   12 - N   13 - J   14 - Z   15 - S   16 - Q   17 - V   18 - H   19 - L   20 - C   21 - K   22 – E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fes un programa amb les següents opcions: obtenir lletra DNI, validar DNI i Sortir.&lt;br /&gt;
&lt;br /&gt;
Implementa 4 funcions, amb el següent propòsit: &lt;br /&gt;
&lt;br /&gt;
:1. validi a partir de un número de DNI, passat com a cadena, té 8 caràcters numèrics.&lt;br /&gt;
:2. validi que un DNI, passat com a cadena, té 8 caràcters numèrics i una lletra.&lt;br /&gt;
:3. a partir de un número de DNI passat com a cadena, ens retorni la lletra que li correspon.&lt;br /&gt;
:4. a partir de un DNI passat com a cadena, ens indiqui si aquest es correcte.&lt;br /&gt;
&lt;br /&gt;
:Les funcions 3 i 4 utilitzaran les funcions 1 i 2, per comprovar que les dades introduïdes són correctes.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*longitud(cadena): Retorna la quantitat de caràcters de la cadena.&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*subcadena(cadena,pos_ini,pos_fin): Retorna una nova cadena que consisteix a la part de la cadena que va des de la posició pos_ini fins a la posició pos_fin.&lt;br /&gt;
:*convertirANumero(cadena): Rep una cadena de caràcters que conté un nombre (caràcters numèrics) i retorna una variable numèrica amb el mateix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Programa per gestionar DNI: obtenir la lletra, validar un DNI i sortir&lt;br /&gt;
Proceso principal&lt;br /&gt;
    Definir opcio Como Entero;&lt;br /&gt;
	Definir numeroDNI, dni Como Cadena;&lt;br /&gt;
    opcio &amp;lt;- 0;&lt;br /&gt;
    Repetir&lt;br /&gt;
        // Mostrar el menú d'opcions &lt;br /&gt;
        Escribir &amp;quot;1. Obtenir lletra DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;2. Validar DNI&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
        Escribir &amp;quot;Escull una opció: &amp;quot; Sin Saltar;&lt;br /&gt;
        Leer opcio;&lt;br /&gt;
        Segun opcio Hacer&lt;br /&gt;
            Caso 1:&lt;br /&gt;
                // Obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
                Escribir &amp;quot;Introdueix el número del DNI (8 dígits): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer numeroDNI;&lt;br /&gt;
                Si validarNumeroDNI(numeroDNI) Entonces&lt;br /&gt;
                    Escribir &amp;quot;La lletra corresponent és: &amp;quot;, obtenirLletraDNI(numeroDNI);&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El número de DNI ha de tenir 8 dígits numèrics.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 2:&lt;br /&gt;
                // Validar si un DNI complet (número i lletra) és correcte&lt;br /&gt;
                Escribir &amp;quot;Introdueix el DNI complet (8 dígits i 1 lletra): &amp;quot; Sin Saltar;&lt;br /&gt;
                Leer dni;&lt;br /&gt;
                Si validarDNI(dni) Entonces&lt;br /&gt;
                    Si esDNIValid(dni) Entonces&lt;br /&gt;
                        Escribir &amp;quot;El DNI és vàlid.&amp;quot;;&lt;br /&gt;
                    Sino&lt;br /&gt;
                        Escribir &amp;quot;El DNI no és vàlid.&amp;quot;;&lt;br /&gt;
                    FinSi&lt;br /&gt;
                Sino&lt;br /&gt;
                    Escribir &amp;quot;Error: El format del DNI no és correcte.&amp;quot;;&lt;br /&gt;
                FinSi&lt;br /&gt;
            Caso 3:&lt;br /&gt;
                // Finalitzar el programa&lt;br /&gt;
                Escribir &amp;quot;Adeu!&amp;quot;;&lt;br /&gt;
            De Otro Modo:&lt;br /&gt;
                Escribir &amp;quot;Opció no vàlida.&amp;quot;;&lt;br /&gt;
        FinSegun&lt;br /&gt;
    Hasta Que opcio = 3&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un número de DNI té exactament 8 dígits numèrics&lt;br /&gt;
Funcion es_valid &amp;lt;- validarNumeroDNI(numero)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(numero) &amp;lt;&amp;gt; 8 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        i &amp;lt;- 0;&lt;br /&gt;
        Mientras i &amp;lt; 8 Y es_valid Hacer&lt;br /&gt;
            // Comprovar que cada caràcter és un dígit&lt;br /&gt;
            Si no (subcadena(numero, i, i) &amp;gt;= '0' Y subcadena(numero, i, i) &amp;lt;= '9') Entonces&lt;br /&gt;
				es_valid &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
            i &amp;lt;- i + 1;&lt;br /&gt;
        FinMientras&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per validar si un DNI complet té el format correcte (8 dígits + 1 lletra)&lt;br /&gt;
Funcion es_valid &amp;lt;- validarDNI(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir i Como Entero;&lt;br /&gt;
    es_valid &amp;lt;- Verdadero;&lt;br /&gt;
    Si longitud(dni) &amp;lt;&amp;gt; 9 Entonces&lt;br /&gt;
        es_valid &amp;lt;- Falso;&lt;br /&gt;
    Sino&lt;br /&gt;
        es_valid &amp;lt;- validarNumeroDNI(subcadena(dni,0,7);&lt;br /&gt;
        // Comprovar que l'últim caràcter és una lletra majúscula&lt;br /&gt;
        Si no (Mayusculas(subcadena(dni, 8, 8)) &amp;gt;= 'A') Y (Mayusculas(subcadena(dni, 8, 8)) &amp;lt;= 'Z') Entonces&lt;br /&gt;
            es_valid &amp;lt;- Falso;&lt;br /&gt;
        FinSi&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per obtenir la lletra corresponent a un número de DNI&lt;br /&gt;
Funcion lletra &amp;lt;- obtenirLletraDNI(numero) &lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    Definir lletres Como Cadena;&lt;br /&gt;
    lletres &amp;lt;- &amp;quot;TRWAGMYFPDXBNJZSQVHLCKE&amp;quot;;&lt;br /&gt;
    Definir index Como Entero;&lt;br /&gt;
    // Calcular la lletra en base al residu del número de DNI dividit per 23&lt;br /&gt;
    index &amp;lt;- ConvertirANumero(numero) mod 23;&lt;br /&gt;
    lletra &amp;lt;- subcadena(lletres, index, index);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció per comprovar si un DNI és vàlid comparant la lletra calculada amb la introduïda&lt;br /&gt;
Funcion es_valid &amp;lt;- esDNIValid(dni)&lt;br /&gt;
    Definir es_valid Como Logico;&lt;br /&gt;
    Definir numero Como Cadena;&lt;br /&gt;
    Definir lletra Como Cadena;&lt;br /&gt;
    // Separar el número i la lletra del DNI&lt;br /&gt;
    numero &amp;lt;- subcadena(dni, 0, 7);&lt;br /&gt;
    lletra &amp;lt;- mayusculas(subcadena(dni, 8, 8));&lt;br /&gt;
    // Validar el número i comparar la lletra calculada&lt;br /&gt;
    es_valid &amp;lt;- lletra = obtenirLletraDNI(numero);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.- Dissenyar un programa que permeti endevinar a l'ordinador un determinat nombre enter i positiu, utilitzant cerca binaria, per a això s'han de llegir els límits en què està comprès aquest número. El programa haurà d'anar mostrant números que rebran les respostes següents:&lt;br /&gt;
&lt;br /&gt;
‘S’, si és correcte.&lt;br /&gt;
‘A’, si és més alt que el número a endevinar.&lt;br /&gt;
‘B’, si és més baix. &lt;br /&gt;
&lt;br /&gt;
En finalitzar el programa, cal escriure el nombre d'intents realitzats per encertar el número.&lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: Cal comprovar que els límits introduïts són positius i que el límit inferior és menor que el límit superior.&lt;br /&gt;
: La cerca binaria, consisteix en generar a cada iteració, el valor mig dels límits.&lt;br /&gt;
&lt;br /&gt;
Funcions cadena, emprades en aquest exercici:   &lt;br /&gt;
&lt;br /&gt;
:*mayusculas(cadena): Retorna una còpia de la cadena amb tots els seus caràcters en majúscules.&lt;br /&gt;
:*trunc(real): Retorna un número enter, eliminat la part decimal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso EndevinarNumero&lt;br /&gt;
	Definir limit_inferior, limit_superior, elmeunumero Como Entero;&lt;br /&gt;
	Definir opcio como Caracter;&lt;br /&gt;
	Definir intents Como Entero;&lt;br /&gt;
	intents&amp;lt;-0;	&lt;br /&gt;
	//Es demana el primer interval&lt;br /&gt;
	ObtenirLimits(limit_inferior, limit_superior);&lt;br /&gt;
	//Es va repetint fins que s'encerti el número&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Escrivim el número proposat (què serà el número intermedi de l'interval)&lt;br /&gt;
		elmeunumero&amp;lt;-generarNumero(limit_inferior,limit_superior);&lt;br /&gt;
		Escribir &amp;quot;Has pensant en el número?:&amp;quot;, elmeunumero;&lt;br /&gt;
		//Incrementem el nombre d'intents&lt;br /&gt;
		intents&amp;lt;-intents+1;&lt;br /&gt;
		//Llegim l'opció, si no heu encertat es modifica alguns dels límits i es torna a proposar un nou número&lt;br /&gt;
		opcio&amp;lt;-LlegirOpcio();&lt;br /&gt;
		Si no Mayusculas(opcio)=&amp;quot;S&amp;quot; Entonces&lt;br /&gt;
			actualitzarLimits(opcio, elmeunumero, limit_inferior, limit_superior);&lt;br /&gt;
		FinSi&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot;;&lt;br /&gt;
	//S'escriu els intents que ha necessitat per encertar-ho&lt;br /&gt;
	Escribir &amp;quot;Ho he encertat en &amp;quot;,intents,&amp;quot; intents.&amp;quot;;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion num &amp;lt;- generarNumero(liminf,limsup)&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	num&amp;lt;-Trunc((liminf+limsup)/2);&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- llegirOpcio&lt;br /&gt;
	Definir opcio Como Caracter;&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;¿Es correcte?&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;S: si es correcte.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;A: si es més alt que el número a endevinar.&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;B: si es més baix que el número a enevinar.&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que Mayusculas(opcio)=&amp;quot;S&amp;quot; o Mayusculas(opcio)=&amp;quot;A&amp;quot; o Mayusculas(opcio)=&amp;quot;B&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion actualitzarLimits(opcio, num, liminf Por Referencia, limsup Por Referencia)&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;A&amp;quot; Entonces&lt;br /&gt;
		liminf&amp;lt;-num + 1;&lt;br /&gt;
	FinSi&lt;br /&gt;
	Si Mayusculas(opcio)=&amp;quot;B&amp;quot; Entonces&lt;br /&gt;
		limsup&amp;lt;-num - 1;&lt;br /&gt;
	FinSi             &lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion  ObtenirLimits(liminf Por Referencia, limsup por Referencia)&lt;br /&gt;
Escribir &amp;quot;Pensa un número...&amp;quot;;&lt;br /&gt;
//Es demana el primer interval&lt;br /&gt;
Escribir &amp;quot;Necessito saber linterval on es troba el número:&amp;quot;;&lt;br /&gt;
	Repetir&lt;br /&gt;
		liminf &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit inferior: &amp;quot;);&lt;br /&gt;
		limsup &amp;lt;- llegirLimit(&amp;quot;Introdueix el límit superior: &amp;quot;);	&lt;br /&gt;
	Hasta Que liminf &amp;lt; limsup;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion limit &amp;lt;- llegirLimit(missatge) &lt;br /&gt;
    Definir limit Como Entero;&lt;br /&gt;
    Repetir&lt;br /&gt;
		Escribir missatge Sin Saltar;&lt;br /&gt;
		Leer limit;&lt;br /&gt;
    Hasta Que limit &amp;gt; 0;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Implementa un programa que gestioni l'inici de sessió d'un usuari. &lt;br /&gt;
&lt;br /&gt;
Consideracions:&lt;br /&gt;
&lt;br /&gt;
: L'usuari és user1 i la contrasenya és 1@-27&lt;br /&gt;
: Només es permeten 3 intents.&lt;br /&gt;
&lt;br /&gt;
Implementeu:&lt;br /&gt;
&lt;br /&gt;
:* Funció Login, rep el nom d'usuari introduït per l'usuari, i la contrasenya introduïda per l'usuari i per referència el nombre d'intents. Retorna cert si es corresponen amb l'usuari i contrasenya, i fals en cas contrari. Actualitza el nombre d'intents.&lt;br /&gt;
:* Procediment Credencials, té com a paràmetres el nom de l'usuari i la contrasenya (ambdós passats per referència). Demana les dades de l'usuari i actualitza els paràmetres.&lt;br /&gt;
:* Procediment MostrarMissatgeFinal, rep com a paràmetre un booleà indicant si s'ha accedit (usuari i contrasenya correctes) o no s'ha pogut accedir (error en usuari i/o contrasenya) i mostra un missatge indicant si s'ha aconseguit l'accés o si s'han superat els intents.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/ Programa que gestiona l'inici de sessió amb un màxim de 3 intents&lt;br /&gt;
&lt;br /&gt;
Proceso GestioLogin&lt;br /&gt;
    Definir user, password Como Cadena;&lt;br /&gt;
    Definir intents Como Entero;&lt;br /&gt;
    Definir accedit Como Logico;&lt;br /&gt;
    intents &amp;lt;- 0;  // Inicialitzem el comptador d'intents&lt;br /&gt;
    accedit &amp;lt;- Falso;  // Inicialment, l'usuari no ha accedit correctament&lt;br /&gt;
	&lt;br /&gt;
    // Bucle que permet a l'usuari intentar accedir fins a 3 vegades&lt;br /&gt;
    Mientras intents &amp;lt; 3 Y NO accedit Hacer&lt;br /&gt;
	LlegirCredencials(user, password);  // Demanem les credencials a l'usuari&lt;br /&gt;
	accedit &amp;lt;- Login(user, password, intents);  // Intentem fer login&lt;br /&gt;
	&lt;br /&gt;
	// Si l'usuari ha fallat, mostrem missatge d'error i intents restants&lt;br /&gt;
	Si NO accedit Entonces&lt;br /&gt;
		Escribir &amp;quot;Usuari o contrasenya incorrectes. Intents restants: &amp;quot;, 3 - intents;&lt;br /&gt;
	FinSi&lt;br /&gt;
    FinMientras&lt;br /&gt;
	&lt;br /&gt;
    // Un cop acabats els intents, mostrem el missatge final&lt;br /&gt;
    MostrarMissatgeFinal(accedit);&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Procediment per llegir les credencials de l'usuari&lt;br /&gt;
Funcion LlegirCredencials(user Por Referencia, password Por Referencia)&lt;br /&gt;
Escribir &amp;quot;Introdueix el nom dusuari:&amp;quot;;&lt;br /&gt;
    Leer user;&lt;br /&gt;
    Escribir &amp;quot;Introdueix la contrasenya:&amp;quot;;&lt;br /&gt;
    Leer password;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Funció que comprova si l'usuari i la contrasenya són correctes&lt;br /&gt;
// També incrementa el nombre d'intents si l'autenticació falla&lt;br /&gt;
Funcion validar&amp;lt;-Login(user, password, intents Por Referencia)&lt;br /&gt;
    Definir validar Como Logico;&lt;br /&gt;
    Si user = &amp;quot;user1&amp;quot; Y password = &amp;quot;1@-27&amp;quot; Entonces&lt;br /&gt;
        validar &amp;lt;- Verdadero; // Si les credencials són correctes, retornem Cert;&lt;br /&gt;
    Sino&lt;br /&gt;
        intents &amp;lt;- intents + 1;  // Si són incorrectes, incrementem el comptador d'intents&lt;br /&gt;
        validar &amp;lt;- Falso;  // Retornem Fals per indicar que no s'ha pogut iniciar sessió&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Procediment que mostra un missatge final segons si l'usuari ha accedit correctament o no&lt;br /&gt;
Funcion MostrarMissatgeFinal(accedit)&lt;br /&gt;
    Si accedit Entonces&lt;br /&gt;
        Escribir &amp;quot;Accés concedit!&amp;quot;;  // Si l'usuari ha entrat correctament, ho indiquem&lt;br /&gt;
    Sino&lt;br /&gt;
        Escribir &amp;quot;Has superat el nombre dintents permesos. Accés denegat.&amp;quot;;  // Si ha esgotat els intents, deneguem l'accés&lt;br /&gt;
    FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
5.- Fes un programa que pseudocodi que permeti calcular:&lt;br /&gt;
:* La quantitat de segons en un temps donat en hores, minuts i segons.&lt;br /&gt;
:* La quantitat de hores, minuts i segons d'un temps donat en segons.&lt;br /&gt;
&lt;br /&gt;
El programa utilitzarà tres funcions una per presentar un menú en tres opcions (primera: convertir a segons, segona: convertir a hores, minuts i segons i tercera: sortir) i dues funcions una per a cada una dels càlculs a fer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso Convertir_Temps&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
		opcio &amp;lt;- Menu();&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir &amp;quot;Total en segons: &amp;quot;, A_Seconds();&lt;br /&gt;
			2:&lt;br /&gt;
				Definir h, m, s Como Entero;&lt;br /&gt;
				A_HMS(h, m, s);&lt;br /&gt;
				Escribir &amp;quot;Hores: &amp;quot;, h, &amp;quot; Minuts: &amp;quot;, m, &amp;quot; Segons: &amp;quot;, s;&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Sortint del programa...&amp;quot;;&lt;br /&gt;
		Fin Segun;&lt;br /&gt;
	Hasta Que opcio = 3;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
Funcion opcio &amp;lt;- Menu&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	Repetir&lt;br /&gt;
	Escribir &amp;quot;Menú dopcions:&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;1. Convertir hores, minuts i segons a segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2. Convertir segons a hores, minuts i segons&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3. Sortir&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;Selecciona una opció (1-3):&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
	Hasta Que opcio &amp;gt;= 1 Y opcio &amp;lt;= 3;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion segons &amp;lt;- A_Seconds&lt;br /&gt;
	Definir h, m, s, segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix hores, minuts i segons: &amp;quot;;&lt;br /&gt;
	Leer h, m, s;&lt;br /&gt;
	segons &amp;lt;- (h * 3600) + (m * 60) + s;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
Funcion A_HMS(h Por Referencia, m Por Referencia, s Por Referencia )&lt;br /&gt;
	Definir segons Como Entero;&lt;br /&gt;
	Escribir &amp;quot;Introdueix segons: &amp;quot;;&lt;br /&gt;
	Leer segons;&lt;br /&gt;
	h &amp;lt;- Trunc(segons / 3600);&lt;br /&gt;
	m &amp;lt;- Trunc((segons % 3600) / 60);&lt;br /&gt;
	s &amp;lt;- (segons % 3600) % 60;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Crearem un programa per treballar amb una pila. Una pila és una estructura de dades que ens permet desar un conjunt de variables. La característica fonamental és que el darrer element que s'afegeix al conjunt és el primer que se'n pot treure.&lt;br /&gt;
&lt;br /&gt;
Per representar una pila utilitzarem un vector de cadena de caràcters amb mida 10, per tant la pila no podrà tenir més de 10 elements.&lt;br /&gt;
&lt;br /&gt;
Crearem diverses funcions per treballar amb la pila:&lt;br /&gt;
&lt;br /&gt;
:*IncialitzarPila: Com que tenim un vectpr de 10 elements de cadenes hem d'inicialitzar-lo i introduir un caràcter (per exemple un * que indiqui que aquest element de l'arranjament no correspon amb una dada de la pila. Aquesta funció inicialitza el vector amb aquest caràcter.&lt;br /&gt;
:*LongitudPila: Funció que rep una pila i torna el nombre d'elements que té.&lt;br /&gt;
:*EstaBuidaPila: Funció que rep una pila i que torna si la pila és buida, no té elements.&lt;br /&gt;
:*EstaPlenaPila: Funció que rep una pila i que torna si la pila és plena.&lt;br /&gt;
:*AfegirAPila: funció que rep una cadena de caràcters i una pila, i afegeix la cadena a la pila, si no és plena. si aquesta plena mostra un missatge derror.&lt;br /&gt;
:*TreureDeLaPila: Funció que rep una pila i torna l'últim element afegit i l'esborra de la pila. Si la pila és buida mostra un missatge derror.&lt;br /&gt;
:*EscriurePila: Funció que rep una pila i mostra a la pantalla els elements de la pila.&lt;br /&gt;
&lt;br /&gt;
Realitza un programa principal que ens permeti fer servir les funcions anterior, que ens mostri un menú, amb les opcions següents:&lt;br /&gt;
&lt;br /&gt;
:*Afegir element a la pila&lt;br /&gt;
:*Treure element de la pila&lt;br /&gt;
:*Longitud de la pila&lt;br /&gt;
:*Mostra pila&lt;br /&gt;
:*Sortir&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment IncialitzarPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Recorre el vector i inicialitza els seus elements a *. &lt;br /&gt;
//El * representa que l'element és buit.&lt;br /&gt;
//Paràmetres d'entrada: Grandària del vector&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion InicialitzarPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	Para i&amp;lt;-0 hasta size_pila-1 Hacer&lt;br /&gt;
		pila[i]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció LongitudPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un comptador amb els elements de la pila.&lt;br /&gt;
//Recorre el vector mentre no troba un * o arriba al final.&lt;br /&gt;
//Paràmetres d'entrada: mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion size &amp;lt;- LongitudPila(pila,size_pila)&lt;br /&gt;
	Definir size Como Entero;&lt;br /&gt;
	size&amp;lt;-0;&lt;br /&gt;
	Mientras size&amp;lt;size_pila Y pila[size]&amp;lt;&amp;gt;&amp;quot;*&amp;quot;  Hacer&lt;br /&gt;
		size&amp;lt;-size+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaBuidaPila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Retorna un valor lògic indicant si la pila és buida.&lt;br /&gt;
//Està buida si la longitud és 0.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultat &amp;lt;- EstaBuidaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=0 Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EstaPlenaPila: Rep un vector (pila) i la seva mida.&lt;br /&gt;
//Retorna un valor lògic indicant si la pila és plena.&lt;br /&gt;
//Està plena si la longitud és igual a la mida del vector.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion resultadt &amp;lt;- EstaPlenaPila(pila,size_pila)&lt;br /&gt;
	Definir resultat Como Logico;&lt;br /&gt;
	Si LongitudPila(pila,size_pila)=size_pila Entonces&lt;br /&gt;
		resultat&amp;lt;-Verdadero;&lt;br /&gt;
	SiNo&lt;br /&gt;
		resultat&amp;lt;-Falso;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procediment AfegirAPilaPila: Rep un vector (pila), la seva mida i un element (cadena)&lt;br /&gt;
//Si no està plena, afegeix l'element a la següent posició buida,&lt;br /&gt;
//l'index del qual és igual a la Longitud de la pila.&lt;br /&gt;
//Si és plena, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion AfegirAPila(cad, pila Por Referencia,size_pila)&lt;br /&gt;
	Si no EstaPlenaPila(pila,size_pila) Entonces&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)]&amp;lt;-cad;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot afegir element. La pila és plena&amp;quot;;&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció TreureDeLaPila: Rep un vector (pila), la seva mida i torna &lt;br /&gt;
//l'element que s'ha introduït en darrer lloc, si no és buida.&lt;br /&gt;
//L'índex d'aquest element serà la longitud de la pila - 1&lt;br /&gt;
//L'element en aquesta posició es buida, és a dir, s'inicialitza a &amp;quot;*&amp;quot;.&lt;br /&gt;
//Si és buida, escriu un missatge d'error.&lt;br /&gt;
//Paràmetre d'entrada: Mida del vector i l'element.&lt;br /&gt;
//Paràmetres d'entrada i sortida: El vector (pila)&lt;br /&gt;
//Dada retornada: L'element&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion cad &amp;lt;- TreureDeLaPila(pila Por Referencia,size_pila)&lt;br /&gt;
	Definir cad Como Caracter;&lt;br /&gt;
	Si no EstaBuidaPila(pila,size_pila) Entonces&lt;br /&gt;
		cad &amp;lt;- pila[LongitudPila(pila,size_pila)-1];&lt;br /&gt;
		pila[LongitudPila(pila,size_pila)-1]&amp;lt;-&amp;quot;*&amp;quot;;&lt;br /&gt;
	SiNo&lt;br /&gt;
		Escribir &amp;quot;No es pot treure element. La pila és buida&amp;quot;;&lt;br /&gt;
		cad&amp;lt;-&amp;quot;&amp;quot;;	&lt;br /&gt;
	FinSi&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Funció EscriurePila: Rep un vector (pila) i la seva mida. &lt;br /&gt;
//Mostra els elements del vector fins que arribi al final o es trobi un *.&lt;br /&gt;
//Paràmetres d'entrada: Mida del vector, el vector (pila)&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion EscriurePila(pila,size_pila)&lt;br /&gt;
	Definir i Como Entero;&lt;br /&gt;
	i&amp;lt;-0;&lt;br /&gt;
	Mientras i&amp;lt;size_pila y pila[i]&amp;lt;&amp;gt;&amp;quot;*&amp;quot; Hacer&lt;br /&gt;
		Escribir Sin Saltar pila[i],&amp;quot; &amp;quot;;&lt;br /&gt;
		i&amp;lt;-i+1;&lt;br /&gt;
	FinMientras&lt;br /&gt;
	Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Realitza un programa principal que ens permeti utilitzar funcions per manipular piles.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso ProgramaPila&lt;br /&gt;
	Definir lamevapila Como Caracter;&lt;br /&gt;
	Dimension lamevapila[10];&lt;br /&gt;
	Definir mida_pila como Entero;&lt;br /&gt;
	Definir element Como Caracter;&lt;br /&gt;
	Definir opcio Como Entero;&lt;br /&gt;
	mida_pila&amp;lt;-10;&lt;br /&gt;
	InicialitzarPila(lamevapila,mida_pila);&lt;br /&gt;
	Repetir&lt;br /&gt;
		Escribir &amp;quot;1.- Afegir element a la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;2.- Treure element de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;3.- Longitud de la pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;4.- Mostrar pila&amp;quot;;&lt;br /&gt;
		Escribir &amp;quot;5.- Sortir&amp;quot;;&lt;br /&gt;
		Leer opcio;&lt;br /&gt;
		Segun opcio Hacer&lt;br /&gt;
			1:&lt;br /&gt;
				Escribir sin Saltar &amp;quot;Nom de la cadena per afegir a la pila:&amp;quot;;&lt;br /&gt;
				Leer element;&lt;br /&gt;
				AfegirAPila(element,lamevapila,mida_pila);&lt;br /&gt;
			2:&lt;br /&gt;
				Escribir TreureDeLaPila(lamevapila,mida_pila);&lt;br /&gt;
			3:&lt;br /&gt;
				Escribir &amp;quot;Longitud: &amp;quot;,LongitudPila(lamevapila,mida_pila);&lt;br /&gt;
			4:&lt;br /&gt;
				EscriurePila(lamevapila,mida_pila);&lt;br /&gt;
			5:&lt;br /&gt;
				&lt;br /&gt;
			De Otro Modo:&lt;br /&gt;
				Escribir &amp;quot;Opció incorrecta&amp;quot;;&lt;br /&gt;
		FinSegun&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que opcio=5;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.- Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.&lt;br /&gt;
&lt;br /&gt;
:*Variables que necessitarem com a mínim:&lt;br /&gt;
&lt;br /&gt;
::-Dues taules de quatre números per guardar la jugada de la màquina i del jugador&lt;br /&gt;
::-Dues variables que ens guardin el número d’encerts i d’aproximacions.&lt;br /&gt;
::-Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.&lt;br /&gt;
&lt;br /&gt;
:*Funcions que necessitem:&lt;br /&gt;
&lt;br /&gt;
::- '''generar_jugada_maquina (maquina)'''&lt;br /&gt;
::Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.&lt;br /&gt;
::- '''llegir_jugada_jugador (jugador)'''&lt;br /&gt;
::Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula&lt;br /&gt;
::- '''final (encerts)'''&lt;br /&gt;
::En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.&lt;br /&gt;
::- '''trobar_numero_encerts (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’encerts de la jugada actual&lt;br /&gt;
::- '''trobar_numero_aproximacions (maquina, jugador)'''&lt;br /&gt;
::Calcula i retorna el nombre d’aproximacions de la jugada actual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Función EstaRepetido: Recibe un número y un vector de cuatro números y comprueba&lt;br /&gt;
// si el número no está en el vector.&lt;br /&gt;
//Parámetro de entrada: Número y vector&lt;br /&gt;
//Dato devuelto: Valor lógico: Verdadero si el número está en el vector y falso si no.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion repetido &amp;lt;- EstaRepetido(num,vector)&lt;br /&gt;
	Definir repetido Como Logico;&lt;br /&gt;
	Definir indice Como Entero;&lt;br /&gt;
	repetido&amp;lt;-Falso;&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		Si num=vector[indice] Entonces&lt;br /&gt;
			repetido&amp;lt;-Verdadero;&lt;br /&gt;
		FinSi&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento GenerarSecuencia: Recibe un vector que se inicializa con 4 enteros &lt;br /&gt;
//no repetidos&lt;br /&gt;
//Parámetro de entrada y salida: Vector de 4 enteros&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion GenerarSecuencia(vector Por Referencia)&lt;br /&gt;
	Definir  indice Como Entero;&lt;br /&gt;
	Definir num Como Entero;&lt;br /&gt;
	//Se incializa el vector para que se pueda comprobar si tiene algún número repetido&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		vector[indice] &amp;lt;- -1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Se inicializa cada elemento con un número&lt;br /&gt;
	Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		//Se comprueba que no tenga número repetidos&lt;br /&gt;
		Repetir&lt;br /&gt;
			num&amp;lt;-Aleatorio(0,9);&lt;br /&gt;
		Hasta Que no EstaRepetido(num,vector);&lt;br /&gt;
		vector[indice]&amp;lt;-num;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento LeerSecuencia: Recibe un vector que se inicializa con 4 enteros &lt;br /&gt;
//leídos por teclado por el usuario, asegurando de que no se introduce ninguno &lt;br /&gt;
//repetido.&lt;br /&gt;
//Parámetro de entrada y salida: Vector de 4 enteros&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion LeerSecuencia(vector por Referencia)&lt;br /&gt;
	Definir  i,num Como Entero;&lt;br /&gt;
	Definir repetido como Logico;&lt;br /&gt;
	//Se inicializa el vector para que se pueda comprobar si tiene algún número repetido&lt;br /&gt;
	Para i&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
		vector[i] &amp;lt;- -1;&lt;br /&gt;
	FinPara&lt;br /&gt;
	//Se inicializa cada elemento con un número leído por teclado&lt;br /&gt;
	Para i&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Repetir //Se comprueba que el número leído no se haya repetido&lt;br /&gt;
			Escribir sin Saltar &amp;quot;Número &amp;quot;,i+1,&amp;quot;:&amp;quot;;&lt;br /&gt;
			Leer num;&lt;br /&gt;
			repetido&amp;lt;-EstaRepetido(num,vector);&lt;br /&gt;
			Si repetido Entonces&lt;br /&gt;
				Escribir &amp;quot;No debes indicar números repetidos.&amp;quot;;&lt;br /&gt;
			FinSi&lt;br /&gt;
		Hasta Que no repetido;&lt;br /&gt;
		vector[i]&amp;lt;-num;&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Procedimiento ComprobarSecuencia: Recibe dos vectores, el secreto y el introducido&lt;br /&gt;
//por el usuario y devuelve el número de coincidencias en la misma posición (muertos)&lt;br /&gt;
// y las coincidencias en distintas posición (heridos).&lt;br /&gt;
//Parámetros de entrada: Dos vectores&lt;br /&gt;
//Parámetro de entrada y salida: muertos y heridos&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Funcion ComprobarSecuencia(secreto,usuario,m Por Referencia,h Por Referencia)&lt;br /&gt;
	Definir indice_secreto,indice_usuario como Entero;&lt;br /&gt;
	//recorro los dos vectores&lt;br /&gt;
	Para indice_secreto&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
		Para indice_usuario&amp;lt;-0 Hasta 3 Hacer&lt;br /&gt;
			Si secreto[indice_secreto]=usuario[indice_usuario] Entonces&lt;br /&gt;
				//Si el elemento coincide y además están en la misma posición, incremento los muertos.&lt;br /&gt;
				Si indice_secreto=indice_usuario Entonces&lt;br /&gt;
					m&amp;lt;-m+1;&lt;br /&gt;
				SiNo&lt;br /&gt;
					//Si el elemento coincide pero no están en la misma posición, incremento los heridos.&lt;br /&gt;
					h&amp;lt;-h+1;&lt;br /&gt;
				FinSi&lt;br /&gt;
			FinSi&lt;br /&gt;
		FinPara&lt;br /&gt;
	FinPara&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
//################################################################################&lt;br /&gt;
//Vamos a programar el juego &amp;quot;Mastermind&amp;quot;, para ello el programa debe &amp;quot;eligir&amp;quot; un &lt;br /&gt;
//número de cuatro cifras (sin cifras repetidas), que será el código que el jugador &lt;br /&gt;
//debe adivinar en la menor cantidad de intentos posibles. Cada intento consiste en &lt;br /&gt;
//una propuesta de un código posible que escribe el jugador, y una respuesta del &lt;br /&gt;
//programa. Las respuestas le darán pistas al jugador para que pueda deducir el código.&lt;br /&gt;
// * Número de &amp;quot;MUERTOS&amp;quot;: Es la cantidad de dígitos que están en el número secreto &lt;br /&gt;
//y en la misma posición,&lt;br /&gt;
// * Número de &amp;quot;HERIDOS:&amp;quot; Es la cantidad de dígitos que están en el número secreto &lt;br /&gt;
//pero no en la misma posición.&lt;br /&gt;
//################################################################################&lt;br /&gt;
&lt;br /&gt;
Proceso MisterMind&lt;br /&gt;
	Definir indice,intentos Como Entero;&lt;br /&gt;
	Definir numero Como Caracter;&lt;br /&gt;
	Definir resultados Como Caracter;&lt;br /&gt;
	Dimension resultados[100];&lt;br /&gt;
	Definir secreto,usuario como Entero;&lt;br /&gt;
	Definir muertos,heridos como Entero;&lt;br /&gt;
	Dimension secreto[4];&lt;br /&gt;
	Dimension usuario[4];&lt;br /&gt;
		&lt;br /&gt;
	//Se genera el número secreto a adivinar&lt;br /&gt;
	GenerarSecuencia(secreto);&lt;br /&gt;
	//Se repeti hasta que se acierte, número de muertos = 4&lt;br /&gt;
	intentos&amp;lt;-0;&lt;br /&gt;
	Repetir&lt;br /&gt;
		//Leemos la secuencia propuesta por el usuario&lt;br /&gt;
		LeerSecuencia(usuario);&lt;br /&gt;
		muertos&amp;lt;-0;&lt;br /&gt;
		heridos&amp;lt;-0;&lt;br /&gt;
		//Se comprueba la propuesta&lt;br /&gt;
		ComprobarSecuencia(secreto,usuario,muertos,heridos);&lt;br /&gt;
		//Voy a guardar el numero, con el resultado&lt;br /&gt;
		numero&amp;lt;-&amp;quot;&amp;quot;;&lt;br /&gt;
		Para indice&amp;lt;-0 hasta 3 Hacer&lt;br /&gt;
			numero&amp;lt;-concatenar(numero,convertiratexto(usuario[indice]));&lt;br /&gt;
		FinPara&lt;br /&gt;
		//Y se imprimen los muertos y heridos&lt;br /&gt;
		resultados[intentos]&amp;lt;- Concatenar(numero,concatenar(&amp;quot; - MUERTOS: &amp;quot;,concatenar(convertiratexto(muertos),concatenar(&amp;quot; - HERIDOS: &amp;quot;,convertiratexto(heridos)))));&lt;br /&gt;
		//Muestro los resiltados&lt;br /&gt;
		Borrar Pantalla;&lt;br /&gt;
		Para indice&amp;lt;-intentos Hasta 0 con paso -1 Hacer&lt;br /&gt;
			Escribir resultados[indice];&lt;br /&gt;
		FinPara&lt;br /&gt;
		intentos&amp;lt;-intentos+1;&lt;br /&gt;
		&lt;br /&gt;
	Hasta Que muertos=4;&lt;br /&gt;
FinProceso&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
8. Un laboratori d’investigació cultiva una colònia de bacteris dins d’una àrea que es pot considerar com una superfície quadriculada de dimensió 30 x 30. Cada casella pot ser buida o contenir un bacteri. A partir de la seva configuració inicial, la colònia evoluciona generació rere generació segons unes lleis genètiques que tot seguit es descriuen i que depenen del nombre de veïns que té cada casella:&lt;br /&gt;
&lt;br /&gt;
:*Naixement: tota casella buida amb exactament tres veïns tindrà un naixement la propera generació.&lt;br /&gt;
&lt;br /&gt;
:* Mort per solitud: tot bacteri que ocupa una casella amb 0 o 1 veïns morirà per solitud la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Supervivència: tot bacteri que ocupa una casella amb 2 o 3 veïns sobreviurà la propera generació.&lt;br /&gt;
&lt;br /&gt;
:*Mort per asfixia: tot bacteri que ocupa una casella amb més de 3 veïns morirà per asfixia la següent generació.&lt;br /&gt;
&lt;br /&gt;
Noteu que cada bacteri té com a molt 8 veïns i que en el cas dels bacteris residents a les vores de la quadrícula el nombre de veïns és menor.&lt;br /&gt;
&lt;br /&gt;
Es considera que la transició entre generacions és simultània en totes les caselles de la colònia.&lt;br /&gt;
&lt;br /&gt;
Es demana dissenyar un programa que simuli l’evolució de la colònia de bacteris i determini, a partir d’una situació inicial aleatòria, quantes iteracions es necessiten per tal que la colònia arribi a una situació estable.&lt;br /&gt;
&lt;br /&gt;
El programa serà semblant al següent:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Programa bacteris&lt;br /&gt;
  Inicialitzar variables&lt;br /&gt;
  Generar generació inicial&lt;br /&gt;
  Mostrar generació inicial&lt;br /&gt;
  Mentre no situació estable fer&lt;br /&gt;
    Generar següent generació&lt;br /&gt;
    situació estable =(generació actual = =següent generació)&lt;br /&gt;
    generació actual = següent generació&lt;br /&gt;
  fMentre&lt;br /&gt;
  Mostrar generació final&lt;br /&gt;
  Mostrar nombre d’iteracions realitzades&lt;br /&gt;
fPrograma&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aclariments sobre algunes funcions:&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar generació inicial''' ha de crear una colònia de forma aleatòria. La forma més senzilla en és omplir la matriu amb valors aleatoris. Random r =new Random(); r.nextInt(2) i us retornarà valors que seran o bé 0 o bé 1 (podeu considerar per exemple que 1 representa que hi ha un bacteri i 0 que no).&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Mostrar generació inicial''' simplement traurà per pantalla l’estat actual. No cal fer virgueries en la presentació, simplement que s’entengui el que hi ha. El procediment '''Mostrar generació final''' és exactament el mateix, simplement canviarà el paràmetre que li passem.&lt;br /&gt;
&lt;br /&gt;
:*El procediment '''Generar següent generació''' ens crea la nova generació seguint les regles explicades abans. Òbviament per poder-ho fer haurà de cridar a una funció '''veïns''' que ens indiqui per a cada posició de la matriu, quants veïns n’hi ha.&lt;br /&gt;
&lt;br /&gt;
:*Considerem que la situació és estable quan després de crear una nova generació ja no hi ha canvis a la colònia.&lt;br /&gt;
&lt;br /&gt;
:* Aquest sistema genètic funciona, però per possibles errors de programació podria ser que entrés en un bucle infinit, per això fins que no esteu segurs que el programa funciona i acaba bé podeu posar també com a condició del bucle que no doni més de 500 voltes. També és cert que en algun cas pot entrar en un cicle de dues voltes i per tant serà millor que poseu sempre aquesta condició.&lt;br /&gt;
&lt;br /&gt;
:*Si no teniu clar on falla el programa, es pot dintre del bucle visualitzar cada vegada el tauler, però això ralentitzarà molt l’execució. Si ho voleu provar d’aquesta manera, feu-lo amb matrius petites (6 x 6 o així). Quant tingueu clar que funciona, torneu a donar la mida inicial.&lt;br /&gt;
&lt;br /&gt;
'''NOTES:''' El programa ha d’estar perfectament estructurat i la filosofia és l’explicada abans. No cal que sigui exactament així però penso que no pot canviar molt l’estructura.&lt;br /&gt;
&lt;br /&gt;
Tot ha de fer-se mitjançant funcions (potser '''Inicialitzar variables''' no cal) i heu de pensar que el&lt;br /&gt;
programa principal no quedarà gaire més llarg que el programa de la pàgina anterior.&lt;br /&gt;
Cal comentar el codi.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Proceso bacteris&lt;br /&gt;
    Definir generacio_actual, seguent_generacio, temp_matriu Como Entero;&lt;br /&gt;
	Dimension generacio_actual[30,30], seguent_generacio[30,30], temp_matriu[30,30];&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    Definir iteracions, i, j Como Entero;&lt;br /&gt;
	&lt;br /&gt;
    iteracions &amp;lt;- 0;&lt;br /&gt;
    estable &amp;lt;- Falso;&lt;br /&gt;
	&lt;br /&gt;
    GenerarGeneracioInicial(generacio_actual);&lt;br /&gt;
    MostrarGeneracio(generacio_actual);&lt;br /&gt;
	&lt;br /&gt;
    Mientras No estable Y iteracions &amp;lt; 500 Hacer&lt;br /&gt;
        GenerarSeguentGeneracio(generacio_actual, seguent_generacio);&lt;br /&gt;
        estable &amp;lt;- CompararGeneracions(generacio_actual, seguent_generacio);&lt;br /&gt;
        &lt;br /&gt;
        // Copiem seguent_generacio a generacio_actual&lt;br /&gt;
        Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
				generacio_actual[i,j] &amp;lt;- seguent_generacio[i,j];&lt;br /&gt;
	FinPara&lt;br /&gt;
FinPara&lt;br /&gt;
&lt;br /&gt;
iteracions &amp;lt;- iteracions + 1;&lt;br /&gt;
FinMientras&lt;br /&gt;
&lt;br /&gt;
MostrarGeneracio(generacio_actual);&lt;br /&gt;
Escribir &amp;quot;Nombre diteracions fins estabilització: &amp;quot;, iteracions;&lt;br /&gt;
FinProceso&lt;br /&gt;
&lt;br /&gt;
// Omple la matriu amb valors 0 o 1 aleatoris&lt;br /&gt;
SubProceso GenerarGeneracioInicial(matriu Por Referencia)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
            matriu[i,j] &amp;lt;- Aleatorio(0,1);&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Mostra per pantalla la generació&lt;br /&gt;
SubProceso MostrarGeneracio(matriu)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Escribir Sin Saltar matriu[i,j], &amp;quot; &amp;quot;;&lt;br /&gt;
        FinPara&lt;br /&gt;
        Escribir &amp;quot;&amp;quot;;&lt;br /&gt;
    FinPara&lt;br /&gt;
    Escribir &amp;quot;------------------------------&amp;quot;;&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Genera la nova generació segons les regles&lt;br /&gt;
SubProceso GenerarSeguentGeneracio(actual, nova Por Referencia)&lt;br /&gt;
    Definir i, j, v Como Entero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            v &amp;lt;- ComptarVeins(actual, i, j);&lt;br /&gt;
            Si actual[i,j] = 1 Entonces&lt;br /&gt;
                Si v = 2 O v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Supervivència&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Mort (solitud o asfíxia)&lt;br /&gt;
                FinSi&lt;br /&gt;
            Sino&lt;br /&gt;
                Si v = 3 Entonces&lt;br /&gt;
                    nova[i,j] &amp;lt;- 1; // Naixement&lt;br /&gt;
                Sino&lt;br /&gt;
                    nova[i,j] &amp;lt;- 0; // Continua buida&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
FinSubProceso&lt;br /&gt;
&lt;br /&gt;
// Compta quants veïns vius hi ha al voltant de (x, y)&lt;br /&gt;
Funcion count &amp;lt;- ComptarVeins(matriu, x, z)&lt;br /&gt;
    Definir dx, dz, i, j, count Como Entero;&lt;br /&gt;
    count &amp;lt;- 0;&lt;br /&gt;
    Para dx &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para dz &amp;lt;- -1 Hasta 1 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si No (dx = 0 Y dz = 0) Entonces&lt;br /&gt;
                i &amp;lt;- x + dx;&lt;br /&gt;
                j &amp;lt;- z + dz;&lt;br /&gt;
                Si i &amp;gt;= 0 Y i &amp;lt;= 29 Y j &amp;gt;= 0 Y j &amp;lt;= 29 Entonces&lt;br /&gt;
                    count &amp;lt;- count + matriu[i,j];&lt;br /&gt;
                FinSi&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
&lt;br /&gt;
FinFuncion&lt;br /&gt;
&lt;br /&gt;
// Compara dues generacions per veure si són iguals&lt;br /&gt;
Funcion estable &amp;lt;- CompararGeneracions(gen1, gen2)&lt;br /&gt;
    Definir i, j Como Entero;&lt;br /&gt;
    Definir estable Como Logico;&lt;br /&gt;
    estable &amp;lt;- Verdadero;&lt;br /&gt;
    Para i &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
		&lt;br /&gt;
        Para j &amp;lt;- 0 Hasta 29 Hacer&lt;br /&gt;
			&lt;br /&gt;
            Si gen1[i,j] &amp;lt;&amp;gt; gen2[i,j] Entonces&lt;br /&gt;
                estable &amp;lt;- Falso;&lt;br /&gt;
            FinSi&lt;br /&gt;
        FinPara&lt;br /&gt;
    FinPara&lt;br /&gt;
   &lt;br /&gt;
FinFuncion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rsort</name></author>	</entry>

	</feed>