Diferència entre revisions de la pàgina «M3 - Programació bàsica»
(→UNITAT FORMATIVA 2: Disseny modular) |
(→=Estructura alternativa rec) |
||
(228 revisions intermèdies per 5 usuaris que no es mostren) | |||
Línia 3: | Línia 3: | ||
===UNITAT FORMATIVA 1: Programació estructurada=== | ===UNITAT FORMATIVA 1: Programació estructurada=== | ||
+ | <!-- | ||
+ | |||
+ | [[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]] | ||
+ | |||
+ | [[ASIX-M3-UF1-Proves Tipus de dades estructurades|PUF1-Tipus de dades estructurades]] | ||
+ | [[ASIX-M3-UF1-Proves Tipus de dades estructurades 2023|PUF1-Tipus de dades estructurades]] | ||
+ | [[ASIX-M3-UF1-Recuperació Extraordinària|PUF1-Recuperació Extraordinària]] | ||
+ | |||
+ | |||
+ | [[ASIX-M3-RUF1-Proves Estructures de control|RPUF1-Estructures de control]] | ||
+ | |||
+ | [[ASIX-M3-UF1-Proves Tipus de dades estructurades 2023|PUF1-Tipus de dades estructurades]] | ||
+ | --> | ||
:*[[ASIX-M3-UF1-A1|A1. Elements d'un programa informàtic]] | :*[[ASIX-M3-UF1-A1|A1. Elements d'un programa informàtic]] | ||
Línia 11: | Línia 24: | ||
:*[[ASIX-M3-UF1-A2|A2. Estructures de control. Algorismes iteratius]] | :*[[ASIX-M3-UF1-A2|A2. Estructures de control. Algorismes iteratius]] | ||
− | ::*[[ASIX-M3-UF1-A2.1-Exercicis estructura alternativa|A2.1 Exercicis estructura alternativa]] / [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]] | + | ::*[[ASIX-M3-UF1-A2.1-Exercicis estructura alternativa|A2.1 Exercicis estructura alternativa]] / [[ASIX-M3-UF1-A2.1-Solucions Exercicis estructura alternativa|Solucions]] |
::*[[ASIX-M3-UF1-A2.2-Exercicis avaluar expressions lògiques|A2.2 Exercicis avaluar expressions lògiques]] / [[ASIX-M3-UF1-A2.2-Solucions Exercicis avaluar expressions lògiques|Solucions]] | ::*[[ASIX-M3-UF1-A2.2-Exercicis avaluar expressions lògiques|A2.2 Exercicis avaluar expressions lògiques]] / [[ASIX-M3-UF1-A2.2-Solucions Exercicis avaluar expressions lògiques|Solucions]] | ||
Línia 23: | Línia 36: | ||
::*[[ASIX-M3-UF1-A2.6-Exercicis estructura iterativa: cerca|A2.6 Exercicis estructura iterativa: cerca]] / [[ASIX-M3-UF1-A2.6-Solucions Exercicis estructura iterativa: cerca|Solucions]] | ::*[[ASIX-M3-UF1-A2.6-Exercicis estructura iterativa: cerca|A2.6 Exercicis estructura iterativa: cerca]] / [[ASIX-M3-UF1-A2.6-Solucions Exercicis estructura iterativa: cerca|Solucions]] | ||
− | :*A3. Prova pràctica Pp1 | + | :*A3. Prova pràctica Pp1<!----> |
− | <!----> | + | |
− | :*[[ASIX-M3-UF1-A4|A4. Tipus de dades | + | :*[[ASIX-M3-UF1-A4|A4. Tipus de dades estructurats]] |
::*[[ASIX-M3-UF1-A4.1-Exercicis cadenes|A4.1 Exercicis cadenes]] / [[ASIX-M3-UF1-A4.1- Solucions Exercicis cadenes|Solucions]] | ::*[[ASIX-M3-UF1-A4.1-Exercicis cadenes|A4.1 Exercicis cadenes]] / [[ASIX-M3-UF1-A4.1- Solucions Exercicis cadenes|Solucions]] | ||
Línia 33: | Línia 46: | ||
::*[[ASIX-M3-UF1-A4.3-Exercicis diccionaris|A4.3 Exercicis diccionaris]] / [[ASIX-M3-UF1-A4.3- Solucions Exercicis diccionaris|Solucions]] | ::*[[ASIX-M3-UF1-A4.3-Exercicis diccionaris|A4.3 Exercicis diccionaris]] / [[ASIX-M3-UF1-A4.3- Solucions Exercicis diccionaris|Solucions]] | ||
− | ::*[[ASIX-M3-UF1-A4.4-Exercicis tuples|A4.4 Exercicis tuples]] | + | ::*[[ASIX-M3-UF1-A4.4-Exercicis tuples|A4.4 Exercicis tuples]] / [[ASIX-M3-UF1-A4.4- Solucions Exercicis tuples|Solucions]] |
+ | |||
+ | ::*[[ASIX-M3-UF1-A4.5-Exercicis classes|A4.5 Exercicis classes]] / [[ASIX-M3-UF1-A4.5- Solucions Exercicis classes|Solucions]] | ||
:*A5. Prova pràctica Pp2 | :*A5. Prova pràctica Pp2 | ||
− | ::'''Nota UF1''' = | + | ::'''Nota UF1''' = 10% QA1 + 45% (Pp i Pt)A2 + 45% (Pp i Pt)A4 <!----> |
<!----> | <!----> | ||
+ | ====Pràctiques==== | ||
+ | <!-- | ||
+ | ::*[[ASIX-M3-UF1-A6-Exercicis ampliació|A6. Exercicis ampliacio]] / [[ASIX-M3-UF1-A6- Solucions Exercicis ampliació|Solucions]] | ||
+ | --> | ||
+ | '''Pràctica 1''' | ||
+ | |||
+ | Una central distribueix cal cap a diferents sucursals. Disposen d'un lloc de càrrega a on van arribant sacs amb pesos variables. L'empresa disposa d'una flota de camions amb capacitat de càrrega diferents. Es pretén establir un protocol consistent en carregar 20 camions. Un camió no es pot carregar amb més quilos que la seva capacitat i marxarà si amb el següent sac ja supera aquesta capacitat. L'empresa vol un programa que li demani el treballador la capacitat del camió i el pes dels sacs, indicant si ha de carregar el sac o enviar-lo al seu destí i començar a carregar un altre. El procés continua fins que s'hagin omplert els 20 camions, moment en el que sortirà un missatge amb el text "Finalitzada la càrrega del dia" | ||
+ | |||
+ | Exemple: | ||
+ | <pre> | ||
+ | Camió Capacitat Sac Capacitat Camió Capacitat Sac Capacitat Camió Capacitat Sac Capacitat | ||
+ | |||
+ | 1 22000 1 3000 2 18000 5 3000 3 18000 7 9000 | ||
+ | 2 5000 6 8000 8 7000 | ||
+ | 3 9000 | ||
+ | 4 3000 | ||
+ | |||
+ | 4 20000 9 7000 5 28000 12 5000 6 20000 16 4000 | ||
+ | 10 9000 13 9000 17 3000 | ||
+ | 11 4000 14 9000 18 5000 | ||
+ | 15 3000 19 4000 | ||
+ | 20 3000 | ||
+ | |||
+ | 7 22000 21 4000 8 18000 26 9000 9 20000 28 8000 | ||
+ | 22 5000 27 4000 29 3000 | ||
+ | 23 6000 30 5000 | ||
+ | 24 3000 | ||
+ | 25 3000 | ||
+ | |||
+ | 10 20000 31 5000 11 20000 34 5000 12 28000 37 7000 | ||
+ | 32 3000 35 6000 38 3000 | ||
+ | 33 9000 36 6000 39 7000 | ||
+ | 40 5000 | ||
+ | ... | ||
+ | </pre> | ||
+ | |||
+ | Resultat: | ||
+ | <pre> | ||
+ | Camió Sacs que carrega Càrrega que portarà Camió Sacs que carrega Càrrega que portarà | ||
+ | |||
+ | 1 1,2,3 i 4 20000 2 5 i 6 11000 | ||
+ | |||
+ | 3 7 i 8 16000 4 9, 10 i 11 20000 | ||
+ | |||
+ | 5 12, 13, 14 i 15 26000 6 16, 17, 18, 19 i 20 19000 | ||
+ | |||
+ | 7 21, 22, 23, 24 i 25 21000 8 26 i 27 13000 | ||
+ | |||
+ | 9 28, 29 i 30 16000 10 31, 32 i 33 17000 | ||
+ | |||
+ | 11 34, 35 i 36 17000 12 37, 38, 39 i 40 22000 | ||
+ | |||
+ | ... | ||
+ | </pre> | ||
+ | <!-- | ||
+ | [[ASIX-M3-UF1-Proves Tipus de dades estructurades|Pràctica]] | ||
+ | ::*[[ASIX-M3-UF1- Proves UF1-NF1|ASIX-M3-UF1- Proves UF1-NF1]] | ||
+ | --> | ||
+ | <!-- | ||
+ | :*[[ASIX-M3-UF1-A2-Repàs estructures de control | Repàs estructures de control]] | ||
https://gitlab.com/josedom24/curso_programacion_python3/tree/master/ejercicios/diccionarios | https://gitlab.com/josedom24/curso_programacion_python3/tree/master/ejercicios/diccionarios | ||
Línia 47: | Línia 122: | ||
[[https://campus.lamerce.com/mod/resource/view.php?id=8553 Què és un Algoritme?]] | [[https://campus.lamerce.com/mod/resource/view.php?id=8553 Què és un Algoritme?]] | ||
+ | --> | ||
+ | <!-- | ||
+ | '''Pràctica 2''' | ||
+ | |||
+ | Crea un programa que simuli el funcionament d'una màquina escurabutxaques. Has d'aconseguir: | ||
+ | |||
+ | a. Inicialment, el jugador indica quants diners vol jugar. | ||
+ | |||
+ | b. El programa mostra tres números a l'atzar de l'1 al 5. | ||
+ | |||
+ | c. Si els tres números són diferents, el jugador perd tots els seus diners i la partida acaba. | ||
+ | |||
+ | d. Si hi surten dos números iguals, el jugador duplica l'aposta. | ||
+ | |||
+ | e. Si surten tres números iguals, el jugador multiplica per 5 l'aposta. | ||
+ | |||
+ | f. El jugador indica si vol continuar jugant o no. | ||
+ | |||
+ | g. En acabar la partida, el programa indica si s'ha guanyat o perdut. | ||
+ | |||
+ | Quina quantitat vols apostar (€)? 5 | ||
+ | --------------------- | ||
+ | Llançament: | 2 | 2 | 2 | | ||
+ | --------------------- | ||
+ | Els tres números són iguals. Has multiplicat per cinc els teus diners. | ||
+ | Enhorabona! Has guanyat 20.0 €. Ara tens 25.0€. | ||
+ | </pre> | ||
+ | <pre> | ||
+ | Clica n per acabar, una altra tecla per tornar a jugar: s | ||
+ | --------------------- | ||
+ | Llançament: | 2 | 2 | 1 | | ||
+ | --------------------- | ||
+ | Dos dels tres números són iguals. Has duplicat els teus diners. | ||
+ | Enhorabona! Has guanyat 25.0 €. Ara tens 50.0€. | ||
+ | Clica n per acabar, una altra tecla per tornar a jugar: n | ||
+ | Enhorabona has guanyat 45.0€. | ||
+ | </pre> | ||
+ | <pre> | ||
+ | Quina quantitat vols apostar (€)? 10 | ||
+ | -------------------------------- | ||
+ | Llançament: | 5 | 4 | 3 | | ||
+ | -------------------------------- | ||
+ | Els tres números són diferents. Has perdut tots els teus diners. | ||
+ | Programa acabat. | ||
+ | </pre> | ||
+ | |||
+ | 2. '''ANEM A PEL DEU:'''. Modificarem la màquina anterior: | ||
+ | |||
+ | a. Inicialment, el jugador indica quants diners vol jugar. | ||
+ | |||
+ | b. El programa mostra tres números a l'atzar de l'1 al 5. | ||
+ | |||
+ | c. Si els tres números són diferents, el jugador perd tots els seus diners i la partida acaba. | ||
+ | |||
+ | d. Si en surt un 5, es recupera l'aposta. | ||
+ | |||
+ | e. Si en surten dos 5, el jugador multiplica per quatre l'aposta. | ||
+ | |||
+ | f. Si en surten tres 5, el jugador multiplica per deu l'aposta. | ||
+ | |||
+ | g. Si hi surten dos números iguals que no siguin 5, el jugador duplica l'aposta. | ||
+ | |||
+ | h. Si surten un 5 i dos números iguals que no siguin 5, el jugador multiplica per 3 l'aposta. | ||
+ | |||
+ | i. Si surten tres números iguals que no siguin cinc, el jugador multiplica per 5 l'aposta. | ||
+ | |||
+ | j. El jugador indica si vol continuar jugant o no. | ||
+ | |||
+ | k. En acabar la partida, el programa indica si s'ha guanyat o perdut. | ||
+ | <pre> | ||
+ | Quina quantitat vols apostar (€)? 10 | ||
+ | |||
+ | -------------------------------- | ||
+ | Llançament: | 5 | 5 | 2 | | ||
+ | -------------------------------- | ||
+ | N'has aconseguit dos cinc. Has multiplicat per quatre els teus diners. | ||
+ | Enhorabona! Has guanyat 40.0 €. Ara tens 50.0€. | ||
+ | Clica n per acabar, una altra tecla per tornar a jugar: s | ||
+ | -------------------------------- | ||
+ | Llançament: | 4 | 5 | 3 | | ||
+ | -------------------------------- | ||
+ | N'has aconseguit un cinc. Recuperes els teus diners. | ||
+ | Enhorabona! Has guanyat 0,0 €. Ara tens 50.0€. | ||
+ | Clica n per acabar, una altra tecla per tornar a jugar: s | ||
+ | -------------------------------- | ||
+ | Llançament: | 5 | 3 | 3 | | ||
+ | -------------------------------- | ||
+ | Has aconseguit un cinc i dos números iguals. Has multiplicat per tres els teus diners. | ||
+ | Enhorabona! Has guanyat 100.0 €. Ara tens 150.0€. | ||
+ | Clica n per acabar, una altra tecla per tornar a jugar: s | ||
+ | -------------------------------- | ||
+ | Tirada: | 1 | 3 | 1 | | ||
+ | -------------------------------- | ||
+ | Dos dels tres números són iguals. Has duplicat els teus diners. | ||
+ | Enhorabona! Has guanyat 150.0 €. Ara tens 300.0€. | ||
+ | Prem n per acabar, una altra tecla per tornar a jugar: n | ||
+ | Enhorabona has guanyat 290.0€. | ||
+ | </pre> | ||
+ | --> | ||
+ | <!-- | ||
+ | '''Pràctica 3''' | ||
+ | El professorat de programació desitja realitzar el càlcul de les notes obtingudes pels alumnes al nucli formatiu 1. Tenen un total de 30 alumnes i les notes les tenen emmagatzemades en una matriu de 30 files (alumnes) i 7 columnes (activitats). La informació està en el fitxer adesNotes.java | ||
+ | |||
+ | Es vol conèixer: | ||
+ | |||
+ | :*Nota final del NF1 per a cada alumne. Per fer el càlcul suposem: | ||
+ | <pre> | ||
+ | Nota NF1 = 0.1 Pt1+ 0.1 Pt2 + 0.25 Pe1 + 0.1 Pt3+ 0.1 Pt4 +0.1 Pt5+ 0.25 Pe2 | ||
+ | </pre> | ||
+ | :*Nota mitjana de cada activitat avaluada | ||
+ | :*La nota més alta de cada activitat avaluada | ||
+ | :*La nota final més alta | ||
+ | :*La nota més alta entre totes les activitats. | ||
+ | |||
+ | Com a resultat final, es desitja realitzar un llistat amb el següent format (més o menys, tampoc perdeu massa temps amb qüestions estètiques): | ||
+ | |||
+ | [[Imatge:m3uf1_extaules_1.png |600px|center| Ex_Taules]] | ||
+ | |||
+ | |||
+ | ::::::::'''La nota més alta de totes les activitats és:''' | ||
+ | |||
+ | |||
+ | :* Podeu utilitzar les següents dades: | ||
+ | <pre> | ||
+ | notes= [ | ||
+ | [1.24, 6.53, 7.05, 2.87, 6.86, 5.97, 4.31], | ||
+ | [2.11, 5.59, 9.00, 8.28, 7.43, 0.68, 4.19], | ||
+ | [8.82, 4.34, 3.15, 2.74, 1.10, 6.84, 4.46], | ||
+ | [5.38, 6.34, 5.74, 7.79, 6.34, 9.33, 0.31], | ||
+ | [2.27, 3.58, 2.92, 0.67, 4.65, 4.88, 2.19], | ||
+ | [6.59, 9.19, 7.63, 6.74, 5.01, 0.45, 9.50], | ||
+ | [5.95, 4.51, 0.88, 5.67, 9.07, 8.94, 2.14], | ||
+ | [7.97, 5.67, 7.31, 8.52, 3.93, 1.21, 9.45], | ||
+ | [2.61, 0.37, 2.59, 9.47, 4.27, 5.54, 4.85], | ||
+ | [5.91, 3.22, 6.43, 6.83, 7.35, 7.02, 5.13], | ||
+ | [9.43, 7.54, 0.59, 8.49, 9.70, 9.76, 5.20], | ||
+ | [1.62, 6.51, 1.91, 5.07, 1.32, 0.79, 2.05], | ||
+ | [1.52, 9.55, 5.43, 0.15, 6.22, 6.90, 1.40], | ||
+ | [2.28, 1.21, 8.67, 1.90, 3.84, 5.37, 4.52], | ||
+ | [2.52, 9.69, 5.32, 8.88, 3.00, 3.88, 6.99], | ||
+ | [2.18, 2.13, 1.32, 3.50, 9.93, 2.65, 2.85], | ||
+ | [6.67, 5.25, 0.05, 8.32, 1.84, 3.04, 5.76], | ||
+ | [8.37, 3.80, 4.51, 4.48, 2.88, 4.82, 8.78], | ||
+ | [8.62, 8.82, 1.22, 5.22, 8.55, 6.76, 2.25], | ||
+ | [7.59, 9.65, 5.71, 9.23, 5.70, 9.84, 7.77], | ||
+ | [3.74, 4.60, 7.58, 5.55, 0.09, 8.18, 6.54], | ||
+ | [0.21, 3.88, 1.03, 8.38, 2.71, 9.80, 8.57], | ||
+ | [8.24, 3.10, 3.41, 1.27, 9.94, 3.99, 0.51], | ||
+ | [9.88, 4.24, 1.49, 7.51, 0.28, 3.61, 5.07], | ||
+ | [8.54, 1.68, 1.61, 8.16, 6.59, 6.25, 7.67], | ||
+ | [4.55, 3.11, 9.75, 5.91, 1.42, 1.63, 8.65], | ||
+ | [2.54, 4.37, 2.45, 0.95, 4.71, 7.41, 6.75], | ||
+ | [2.11, 2.89, 0.76, 1.86, 3.63, 2.64, 5.43], | ||
+ | [1.02, 1.97, 9.37, 5.38, 3.19, 1.09, 0.18], | ||
+ | [0.39, 0.23, 5.15, 1.66, 1.66, 3.91, 6.96]] | ||
+ | </pre> | ||
+ | ;*'''Resultat:''' | ||
+ | |||
+ | [[Imatge:m3uf1_sol_ex_taules_1.png |600px|center| Sol_Ex_Taules]] | ||
+ | --> | ||
===UNITAT FORMATIVA 2: Disseny modular=== | ===UNITAT FORMATIVA 2: Disseny modular=== | ||
Línia 53: | Línia 288: | ||
:*[[ASIX-M3-UF2-A1|A1. Disseny descendent]] | :*[[ASIX-M3-UF2-A1|A1. Disseny descendent]] | ||
− | ::*[[ASIX-M3-UF2-A1.1-Exercicis disseny descendent|A1.1 Exercicis disseny descendent | + | ::*[[ASIX-M3-UF2-A1.1-Exercicis disseny descendent|A1.1 Exercicis disseny descendent]] |
− | ::*[[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 | + | ::*[[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]] |
− | :*[[ASIX-M3-UF2-A2|A2. | + | :*[[ASIX-M3-UF2-A2|A2. Paquets]] |
+ | |||
+ | ::*[[ASIX-M3-UF2-A2.1-Pràctiques paquets|A2.1 Pràctiques paquets]] | ||
:*[[ASIX-M3-UF2-A3|A3. Recursivitat]] | :*[[ASIX-M3-UF2-A3|A3. Recursivitat]] | ||
+ | |||
+ | ::*[[ASIX-M3-UF2-A3.1-Exercicis recursivitat|A3.1 Exercicis recursivitat]] / | ||
+ | |||
+ | ::*[[ASIX-M3-UF2-A3.2-Pràctiques recursivitat|A3.2 Pràctica recursivitat]] | ||
:*A4. Prova pràctica | :*A4. Prova pràctica | ||
Línia 69: | Línia 310: | ||
− | :*[[ASIX-M3-UF3-A1|A1. | + | :*[[ASIX-M3-UF3-A1|A1. Gestió de fitxers i directoris]] |
+ | |||
+ | ::*[[ASIX-M3-UF3-A1.1-Gestió de fitxers i directoris|A1.1 Exercicis gestió de fitxers i directoris]] / [[ASIX-M3-UF3-A1.1- Solucions Gestió de fitxers i directoris|Solucions]] | ||
:*[[ASIX-M3-UF3-A2|A2. Fitxers de text]] | :*[[ASIX-M3-UF3-A2|A2. Fitxers de text]] | ||
::*[[ASIX-M3-UF3-A2.1-Exercicis fitxers de text|A2.1 Exercicis fitxers de text]] / [[ASIX-M3-UF3-A2.1- Solucions Exercicis fitxers de text|Solucions]] | ::*[[ASIX-M3-UF3-A2.1-Exercicis fitxers de text|A2.1 Exercicis fitxers de text]] / [[ASIX-M3-UF3-A2.1- Solucions Exercicis fitxers de text|Solucions]] | ||
+ | |||
+ | ::*[[ASIX-M3-UF3-A2.2-Pràctica fitxers de text|A2.2 Pràctica fitxers de text]] | ||
:*A3. Prova pràctica | :*A3. Prova pràctica | ||
Línia 94: | Línia 339: | ||
[https://github.com/josedom24/python_for_admin Exercicis per administradors] | [https://github.com/josedom24/python_for_admin Exercicis per administradors] | ||
+ | |||
<!-- | <!-- | ||
− | [ | + | [https://inventwithpython.com/es/ jocs] |
--> | --> | ||
− | |||
<!-- | <!-- | ||
− | [[ASIX-M3- | + | [[ASIX-M3-UF1-Recuperació Extraordinària|Prova]] |
--> | --> | ||
+ | |||
+ | <!----> | ||
+ | ==Controls== | ||
+ | |||
+ | ===Estructura Seqüencial=== | ||
+ | |||
+ | En un centre educatiu hi ha tres departaments: Informàtica, Automoció i Electrònica. | ||
+ | |||
+ | Feu un programa que indiqui quin és el pressupost que li correspon a cada departament, tenint en compte el següents passos: | ||
+ | |||
+ | :- Demaneu el pressupost del centre educatiu. | ||
+ | :- Demaneu el % que li correspon al departament d'informàtica i al departament d'automoció. | ||
+ | :- Calculeu quin % li correspon al departament d'electrònica (la resta fins arribar al 100%). | ||
+ | :- Calculeu i mostrar el pressupost que li correspon a cada departament, atenent a les dades introduïdes. | ||
+ | |||
+ | * Cal que comenteu el programa convenientment. | ||
+ | |||
+ | ===Estructura alternativa=== | ||
+ | |||
+ | Feu un programa per calcular el preu final de venda dels productes d’un mercat. | ||
+ | |||
+ | El programa ha de demanar la '''clau del producte''' del qual es vol calcular el preu final. Les possibles claus | ||
+ | de productes son: | ||
+ | |||
+ | :*‘F’: per els productes que són fruites | ||
+ | :*‘V’: per els productes que són verdures | ||
+ | :*‘L’: per els productes que són làctics | ||
+ | |||
+ | Si la clau introduïda no està en el llistat anterior, el programa ha de mostrar a l’usuari el següent error: | ||
+ | :‘Valor no vàlid’ | ||
+ | |||
+ | Si la clau introduïda està en el llistat, aleshores, ha demanar a l’usuari el '''preu de l’article''' i el '''dia de la setmana''' per tal de calcular i mostrar el preu final del producte aplicant el corresponent descompte utilitzant els següents criteris: | ||
+ | |||
+ | :1. Els dilluns tenen un 10% de descompte els productes que són làctics | ||
+ | :2. Els dimarts tenen un 20% de descompte els productes que són fruites | ||
+ | :3. Els cap de setmana tenen un 30% de descompte tots els productes | ||
+ | :4. La resta de dies no hi ha descomptes | ||
+ | |||
+ | ''Recordeu: Utilitzeu comentaris i poseu nombre a les variables per tal que els vostres programes siguin el més llegibles possibles.'' | ||
+ | |||
+ | ===Estructura iterativa=== | ||
+ | |||
+ | Ex 1. Feu un programa que demani un número i mostri la taula de multiplicar d'aquest número. Per exemple si el usuari introdueix el valor 5, mostrarà: | ||
+ | |||
+ | <pre> | ||
+ | 5 * 1 = 5 | ||
+ | 5 * 2 = 10 | ||
+ | 5 * 3 = 15 | ||
+ | 5 * 4 = 20 | ||
+ | 5 * 5 = 25 | ||
+ | 5 * 6 = 30 | ||
+ | 5 * 7 = 35 | ||
+ | 5 * 8 = 40 | ||
+ | 5 * 9 = 45 | ||
+ | 5 * 10 = 50 | ||
+ | </pre> | ||
+ | '''4 punts''' | ||
+ | |||
+ | |||
+ | Ex2. Feu un programa que demani el límit inferior i superior d'un interval. Si el límit inferior es major que el superior ho a de tornar a demanar fins que sigui correcte. A continuació es demanaren nombres fins que s'introdueixi el número 0. El programa ha de mostrar la següent informació: | ||
+ | |||
+ | :* Suma de tots el nombres que es trobin dins del interval (sense incloure els límits). | ||
+ | :* Quants nombres es troben fora del interval | ||
+ | :* Cal indicar si s'ha introduït algun nombre igual als límits del interval. | ||
+ | |||
+ | '''4 punts''' | ||
+ | |||
+ | |||
+ | Ex Extra. Fer el següent dibuix d'asteriscos per un valor imparell i més gran o igual a 9. Per exemple si l'usuari introdueix el valor 9, mostrarà: | ||
+ | <pre> | ||
+ | * * * * * * * | ||
+ | * * * * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * * * * * * * o * * * * * * * * o * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * | ||
+ | * * * * * * * | ||
+ | |||
+ | 1 punt 2 punts 3 punts | ||
+ | </pre> | ||
+ | |||
+ | ===Prova pràctica UF1 NF1=== | ||
+ | |||
+ | '''''IMPORTANT: | ||
+ | |||
+ | - Heu de fer i lliurar només 3 exercicis | ||
+ | - Cal que comenteu tots els exercicis.''''' | ||
+ | |||
+ | 1. Fes un programa que demani dos números i mostri el següent: | ||
+ | |||
+ | '''10 punts i 12 amb ordenació del nombres d'entrada (El nombre més gran indica el número de files)''' | ||
+ | |||
+ | Ex. 5 i 8 Ex. 7 i 3 | ||
+ | 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 | ||
+ | * * * * 5 * * 8 * * * 3 * * * 7 * * | ||
+ | 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 | ||
+ | * * * * 5 * * 8 * * * 3 * * * 7 * * | ||
+ | 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 | ||
+ | * * * * 5 * * 8 * * * 3 * * * 7 * * | ||
+ | 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 | ||
+ | * * * * 5 * * 8 * | ||
+ | |||
+ | |||
+ | |||
+ | 2. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'E' (en l'exemple el número és 7) | ||
+ | |||
+ | '''8 punts versió 1. 10 punts versió 2''' | ||
+ | <pre> | ||
+ | * * * * * * * * * * * * * * | ||
+ | * * | ||
+ | * * | ||
+ | * * * * * * * * * * * | ||
+ | * * | ||
+ | * * | ||
+ | * * * * * * * * * * * * * * | ||
+ | |||
+ | versió 1 versió 2 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | 3. En una seqüència de números enters positius acabada en -1, mostrar els números que són més grans a tots els els els precedeixen: | ||
+ | |||
+ | '''10 punts''' | ||
+ | |||
+ | '''Exemple:''' | ||
+ | |||
+ | 10 7 9 3 23 9 55 110 2 11 12 245 33 415 56 77 -1 → '''10 23 55 110 245 415''' | ||
+ | |||
+ | 4. En una seqüència de números enters positius acabada en -1, indica si s’ha produït que un número es suma de tots els anteriors. Òbviament, el programa ha de finalitzar quan es compleix: | ||
+ | |||
+ | '''10 punts''' | ||
+ | |||
+ | '''Exemple:''' | ||
+ | |||
+ | 3 7 8 3 22 9 11 '''63 → Sí''' | ||
+ | |||
+ | 3 7 3 9 34 71 14 89 115 200 324 58 '''-1 → No''' | ||
+ | |||
+ | ===Cadenes=== | ||
+ | |||
+ | '''languageGames''': En molts idiomes disposem de variants lúdiques de l'idioma. Aquest programa codificarà dos mètodes que ens permetran traduir paraules d'idiomes coneguts a variants lúdiques d'aquests. Expliquem primer aquestes variants: | ||
+ | |||
+ | :'''a) Jerigonza''' (variant lúdica del castellà): després de cada vocal s'afegeix una 'p' i es repeteix la vocal. | ||
+ | |||
+ | Exemples: | ||
+ | |||
+ | ::*“casa” seria “capasapa” | ||
+ | ::*“Gabriel” seria “Gapabripiepel” | ||
+ | ::*“murcielago” seria “mupurcipiepelapagopo” | ||
+ | |||
+ | '''NOTA:''' Per simplificar-ho suposarem que no s'introdueixen accents. | ||
+ | |||
+ | :'''b) Basic Pig Latin''' (variant lúdica de l'anglès): tenim dues regles: | ||
+ | |||
+ | :A les paraules que comencen per vocal se'ls afegeix al darrera el sufix “ay”. Exemples: | ||
+ | |||
+ | ::*“ant” seria “antay” | ||
+ | ::*“astronaut” seria “astronautay” | ||
+ | |||
+ | :A les paraules que comencen per consonant, es mouen totes les consonants del davant de la primera vocal al final i s'afegeix el sufix “ay”. Exemples: | ||
+ | |||
+ | ::*“mess” seria “essmay” | ||
+ | ::*“father” seria “atherfay” | ||
+ | ::*“chick” seria “ickchay” | ||
+ | ::*“star” seria “arstay” | ||
+ | |||
+ | Cal fer un '''menú amb tres opcions''': Jerigonza, Basic Pig latin i Sortir. | ||
+ | |||
+ | '''NOTA:''' Per simplificar, podeu suposar que la dada d'entrada serà UNA ÚNICA paraula i que aquesta no tindrà ni accents ni caràcters diferents de lletres. | ||
+ | |||
+ | |||
+ | ===Llistes=== | ||
+ | |||
+ | Feu un programa per gestionar els resultats de la quiniela de futbol. Utilitzarem dues llistes: | ||
+ | |||
+ | :Partits: llista de dues dimensions de cadenes on guardarem a cada columna el nom dels equips de cada partit. En la quiniela s'indiquen 15 partits. | ||
+ | :Resultats: llista d'enters on s'indica el resultat. Dues columnes, en la primera es posa el número de gols de l'equip que està en la primera posició i en la taula anterior, i en la segona els gols de l'altre equip. | ||
+ | |||
+ | Apartats: | ||
+ | |||
+ | :1- Creeu la llista de partits, amb tots els partits de la jornada: [Barça, Betis][At. Madrid, Girona] ... | ||
+ | :2- Creeu la llista de resultats: mostreu els noms dels equips de cada partit, i omplirà la llista de resultats | ||
+ | :: Barça: 2 Betis: 1 | ||
+ | :: At. Madrid: 1 Girona: 3 | ||
+ | :: ... | ||
+ | :3- Mostreu la quiniela de aquesta jornada (guanya l'equip de casa (primer en la llista): 1, guanya l'equip de fora (segon en la llista): 2 i empat (mateixos gols una x). | ||
+ | :: Barça - Betis 1 | ||
+ | :: At. Madrid - Girona 2 | ||
+ | :: ... | ||
<!----> | <!----> | ||
− | == | + | ===Diccionaris=== |
+ | |||
+ | 1. Crea un programa de Login que comprovi l'usuari i contrasenya al diccionari definit a continuació: | ||
+ | <pre> | ||
+ | usuaris = { | ||
+ | "ppujol": { | ||
+ | "nom": "Pere", | ||
+ | "cognom": "Pujol", | ||
+ | "password": "123123" | ||
+ | }, | ||
+ | "cmejia": { | ||
+ | "nom": "Carla", | ||
+ | "cognom": "Mejia", | ||
+ | "password": "654321" | ||
+ | }, | ||
+ | "jpons": { | ||
+ | "nom": "Joan", | ||
+ | "cognom": "Pons", | ||
+ | "password": "123456" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | L'usuari tindrà un màxim de 3 intents, i en accedir correctament es mostrarà el nom i el cognom de l'usuari. | ||
+ | |||
+ | 2. Feu un programa que defineixi per codi un diccionari i una llista, el diccionari amb l'estoc de productes informàtics (nom del producte i unitats) i la llista amb totes les operacions d'entrada (E) i sortida (S) que s'han realitzat al llarg del dia (producte, operació i unitats). El programa ha d'actualitzar l'estoc amb les operacions del dia i a continuació mostrar l'estoc amb un format com el de l'exemple: | ||
+ | |||
+ | |||
+ | |||
+ | Exemple | ||
+ | # Productes i unitats | ||
+ | |||
+ | Stock = {'Monitors': 102, 'Ratolins': 75, 'Teclats': 7, 'Impressores': 15} | ||
+ | |||
+ | # Operacions del dia | ||
+ | |||
+ | Operacions =[['Monitors','S',10],['Teclats','E',50],['Monitors','S',12],['HD','E',50],['Impressores','S',5],['HD','S',9]] | ||
+ | <pre> | ||
+ | Stock data 07/05/2024 | ||
+ | |||
+ | Producte Unitats | ||
+ | Monitors 80 | ||
+ | Ratolins 75 | ||
+ | Teclats 57 | ||
+ | Impressores 10 | ||
+ | HD 41 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | ===Prova tipus de dades estructurades=== | ||
+ | |||
+ | 1.- Donada una frase i dos caràcters introduïts per teclat, mostreu, si existeix, la cadena de caràcters de cada paraula de la frase compresa entre la primera aparició del primer caràcter i la darrera aparició del segon caràcter (ambdós caràcters inclosos). | ||
+ | |||
+ | '''3 punts''' | ||
+ | |||
+ | Per exemple si la frase és: | ||
+ | |||
+ | '''Quan creus que coneixes totes les respostes arriba l'univers i et canvia totes les preguntes''' | ||
+ | |||
+ | I els caràcters són : primer ‘'''e'''’ i segon ‘'''s'''’. | ||
+ | |||
+ | El resultat seria: | ||
+ | |||
+ | '''eus eixes es es espostes ers es es eguntes''' | ||
+ | |||
+ | |||
+ | 2.- Feu un programa que a partir de dues llistes d'artícles, crei un altra només amb els productes que apareixen en les dues llistes. En la llista final '''no poden haver productes repetits'''. Utilitzeu les llistes de l’exemple. | ||
+ | |||
+ | '''3 punts''' | ||
+ | |||
+ | Exemple: | ||
+ | |||
+ | llistaArticles1 = ["ratolí", "ordinador", "CPU", "teclat", "ratolí", "disc dur”, “CPU"] | ||
+ | |||
+ | llistaArticles2 = ["pantalla", “teclat”, "impressora", "projector", "teclat", "CPU"] | ||
+ | |||
+ | articlesDuesLlistes = ["CPU", "teclat"] | ||
+ | |||
+ | |||
+ | 3.- Escriu un programa que gestioni les factures pendents de cobrament d’una empresa. Les factures s'emmagatzemaran a un diccionari on la clau de cada factura serà el número de factura i el valor el cost de la factura. El programa ha de preguntar a l’usuari si vol '''afegir''' una nova factura, '''pagar''' una existent o '''finalitzar'''. Si voleu afegir una nova factura es preguntarà pel número de factura i el seu cost i s'afegirà al diccionari. Si voleu pagar una factura es preguntarà pel número de factura i s'eliminarà del diccionari. Després de cada operació el programa ha de mostrar per pantalla la quantitat cobrada fins ara i la quantitat pendent de cobrament. | ||
+ | |||
+ | '''4 punts''' | ||
+ | |||
+ | Exemple d’execució del programa. | ||
+ | <pre> | ||
+ | Cobrat: 0 | ||
+ | Pendent de cobrament: 0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A | ||
+ | Introdueix el número de la factura: 1 | ||
+ | Introdueix el cost de la factura: 150 | ||
+ | |||
+ | Cobrat: 0 | ||
+ | Pendent de cobrament: 150.0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A | ||
+ | Introdueix el número de la factura: 2 | ||
+ | Introdueix el cost de la factura: 300 | ||
+ | |||
+ | Cobrat: 0 | ||
+ | Pendent de cobrament: 450.0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? P | ||
+ | Introdueix el número de la factura a pagar: 2 | ||
+ | |||
+ | Cobrat: 300.0 | ||
+ | Pendent de cobrament: 150.0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A | ||
+ | Introdueix el número de la factura: 3 | ||
+ | Introdueix el cost de la factura: 85 | ||
+ | |||
+ | Cobrat: 300.0 | ||
+ | Pendent de cobrament: 235.0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? P | ||
+ | Introdueix el número de la factura a pagar: 1 | ||
+ | |||
+ | Cobrat: 450.0 | ||
+ | Pendent de cobrament: 85.0 | ||
+ | |||
+ | Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? F | ||
+ | </pre> | ||
+ | <!----> | ||
+ | ==Estructura alternativa rec== | ||
+ | '''Preu final comanda''' | ||
+ | |||
+ | Escriu un programa en Python per calcular el preu final d'una comanda en una botiga en línia. El programa ha de tenir en compte diferents criteris de descompte basats en el tipus de client i el total de la comanda. | ||
+ | |||
+ | El programa ha de demanar a l'usuari la següent informació: | ||
+ | |||
+ | :#Tipus de client (normal, premium, VIP). | ||
+ | :#Import total de la comanda. | ||
+ | |||
+ | Segons el tipus de client i l'import total de la comanda, el programa ha d'aplicar els següents descomptes: | ||
+ | |||
+ | :#Si el client és normal: | ||
+ | :::- Si la comanda supera els 100 euros, s'aplica un descompte del 5%. | ||
+ | :::- Si la comanda supera els 200 euros, s'aplica un descompte addicional del 10%. | ||
+ | |||
+ | :#Si el client és premium: | ||
+ | :::- S'aplica sempre un descompte del 10%. | ||
+ | |||
+ | :#Si el client és VIP: | ||
+ | :::-S'aplica sempre un descompte del 20%. | ||
+ | :::-Si la comanda supera els 500 euros, s'aplica un descompte addicional del 5%. | ||
+ | |||
+ | Finalment, el programa ha de mostrar el preu final de la comanda amb els descomptes aplicats. | ||
+ | |||
+ | <!-- | ||
+ | ==Estructura iterativa rec== | ||
+ | |||
+ | Ex 1.Escriu un programa en Python que calculi les potències d'un nombre introduït per l'usuari fins a un exponent màxim especificat. L'usuari haurà d'introduir un nombre base i un exponent màxim, i el programa haurà de calcular i mostrar les potències del nombre base des de l'exponent 1 fins a l'exponent màxim. | ||
+ | |||
+ | <pre> | ||
+ | Exemple | ||
+ | |||
+ | Introdueix un nombre base: 3 | ||
+ | Introdueix un exponent màxim: 5 | ||
+ | |||
+ | Potències del nombre 3 fins a l'exponent 5: | ||
+ | 3**1 = 3 | ||
+ | 3**2 = 3 | ||
+ | 3**3 = 3 | ||
+ | 3**4 = 3 | ||
+ | 3**5 = 3 | ||
+ | </pre> | ||
+ | '''4 punts''' | ||
+ | |||
+ | Ex 2. Feu un programa que demani dos números i mostri (del primer número al segon) i sumi tots els números de l'interval. | ||
+ | |||
+ | <pre> | ||
+ | Exemple 1 | ||
+ | |||
+ | num1 : 6 | ||
+ | num2 : 10 | ||
+ | |||
+ | Els números són: 6 7 8 9 10 | ||
+ | La suma és: 40 | ||
+ | |||
+ | Exemple 2 | ||
+ | |||
+ | num1 : 9 | ||
+ | num2 : 4 | ||
+ | |||
+ | Els números són: 9 8 7 6 5 4 | ||
+ | La suma és: 39 | ||
+ | </pre> | ||
+ | '''4 punts''' | ||
+ | |||
+ | Ex Extra. Fer el següent dibuix d'asteriscos per un valor imparell i més gran o igual a 9. Per exemple si l'usuari introdueix el valor 9, mostrarà: | ||
+ | <pre> | ||
+ | * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||
+ | * * * * * * * * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * | ||
+ | * o o | ||
+ | * * * * * * * | ||
+ | * * * * * * * * * | ||
+ | * * * * * * * * * * * | ||
+ | * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||
+ | |||
+ | 1 punt 2 punts 3 punts | ||
+ | --> | ||
+ | ==Prova ASIX-M3-UF1 2ª Convocatòria== | ||
+ | |||
+ | 1. Fes un programa que demani dos números i mostri el següent (en l'exemple els números són 5 i 7): | ||
+ | |||
+ | :2,5 punts | ||
+ | <pre> | ||
+ | 1 1 1 1 1 1 1 | ||
+ | 2 2 2 2 2 | ||
+ | 3 3 3 3 3 3 3 | ||
+ | 4 4 4 4 4 | ||
+ | 5 5 5 5 5 5 5 | ||
+ | 6 6 6 6 6 | ||
+ | 7 7 7 7 7 7 7 | ||
+ | </pre> | ||
+ | :* El número més gran indica el número de files. | ||
+ | |||
+ | 2. En una seqüència de números enters positius acabada en -1, comptar tots '''els números de 3 xifres''' que tenen el primer dígit igual al darrer: | ||
+ | |||
+ | :2,5 punts | ||
+ | |||
+ | Exemple: | ||
+ | 3 700 82 34 222 141 97 176 2012 4056 393 214 797 -1 → 4 (222 141 393 797) | ||
+ | |||
+ | |||
+ | 3- Feu un programa que a partir d'una frase introduïda per teclat, crei dues llistes, una amb les paraules que comencen per vocal i una altra llista amb paraules que comencin per consonant. A continuació, mostreu el contingut d'ambdues llistes. | ||
+ | |||
+ | * Podeu utilitzar la cadena "aeiouAEIOU". | ||
+ | |||
+ | :2,5 punts | ||
+ | <pre> | ||
+ | Exemple | ||
+ | |||
+ | Frase: "El David ha regalat unes sabates a un nen trist que anava descalç" | ||
+ | |||
+ | llistaVocals = ["El", "unes", "a", "un", "anava"] | ||
+ | llistaConsonants = ["David", "ha", "regalat", "sabates", "nen", "trist", "que", "descalç"] | ||
+ | </pre> | ||
+ | |||
+ | 4. Feu un programa que defineixi per codi dos diccionaris: el primer (Estoc) amb l'estoc de cada producte, i el segon (Vendes) amb les vendes realitzades. A continuació actualitzeu el diccionari Estoc amb les vendes realitzades. | ||
+ | |||
+ | 2,5 punts | ||
+ | |||
+ | <pre> | ||
+ | Exemple | ||
+ | # Productes i estoc | ||
+ | Estoc = {'Samarreta' : 150, 'Foulard' : 200, 'Gorra' : 100, 'Bufanda': 50, 'Mocador' : 125, 'Mitjons': 300, 'Calçotets' : 200, 'Pijama' : 90} | ||
+ | |||
+ | # Vendes | ||
+ | Vendes = {'Mocador' : 4, 'Foulard' : 2, 'Pijama' : 1, 'Gorra' : 1, 'Foulard' : 10, 'Pijama' : 2, 'Gorra' : 2, 'Mocador' : 7} | ||
+ | |||
+ | Després de l'actualització el diccionari d'estocs tindrà el següent contingut: | ||
− | + | # Productes i estoc | |
+ | Estoc = {'Samarreta' : 150, 'Foulard' : 188, 'Gorra' : 97, 'Bufanda': 50, 'Mocador' : 114, 'Mitjons': 300, 'Calçotets' : 200, 'Pijama' : 87} | ||
+ | </pre> |
Revisió de 17:11, 4 juny 2024
Contingut
UNITAT FORMATIVA 1: Programació estructurada
- A3. Prova pràctica Pp1
- A5. Prova pràctica Pp2
- Nota UF1 = 10% QA1 + 45% (Pp i Pt)A2 + 45% (Pp i Pt)A4
Pràctiques
Pràctica 1
Una central distribueix cal cap a diferents sucursals. Disposen d'un lloc de càrrega a on van arribant sacs amb pesos variables. L'empresa disposa d'una flota de camions amb capacitat de càrrega diferents. Es pretén establir un protocol consistent en carregar 20 camions. Un camió no es pot carregar amb més quilos que la seva capacitat i marxarà si amb el següent sac ja supera aquesta capacitat. L'empresa vol un programa que li demani el treballador la capacitat del camió i el pes dels sacs, indicant si ha de carregar el sac o enviar-lo al seu destí i començar a carregar un altre. El procés continua fins que s'hagin omplert els 20 camions, moment en el que sortirà un missatge amb el text "Finalitzada la càrrega del dia"
Exemple:
Camió Capacitat Sac Capacitat Camió Capacitat Sac Capacitat Camió Capacitat Sac Capacitat 1 22000 1 3000 2 18000 5 3000 3 18000 7 9000 2 5000 6 8000 8 7000 3 9000 4 3000 4 20000 9 7000 5 28000 12 5000 6 20000 16 4000 10 9000 13 9000 17 3000 11 4000 14 9000 18 5000 15 3000 19 4000 20 3000 7 22000 21 4000 8 18000 26 9000 9 20000 28 8000 22 5000 27 4000 29 3000 23 6000 30 5000 24 3000 25 3000 10 20000 31 5000 11 20000 34 5000 12 28000 37 7000 32 3000 35 6000 38 3000 33 9000 36 6000 39 7000 40 5000 ...
Resultat:
Camió Sacs que carrega Càrrega que portarà Camió Sacs que carrega Càrrega que portarà 1 1,2,3 i 4 20000 2 5 i 6 11000 3 7 i 8 16000 4 9, 10 i 11 20000 5 12, 13, 14 i 15 26000 6 16, 17, 18, 19 i 20 19000 7 21, 22, 23, 24 i 25 21000 8 26 i 27 13000 9 28, 29 i 30 16000 10 31, 32 i 33 17000 11 34, 35 i 36 17000 12 37, 38, 39 i 40 22000 ...
UNITAT FORMATIVA 2: Disseny modular
- A4. Prova pràctica
https://uniwebsidad.com/libros/algoritmos-python/capitulo-6/nuestro-primer-juego
UNITAT FORMATIVA 3: Fonaments de gestió de fitxers
- A3. Prova pràctica
Enllaços
Llibre Introducció a la programació amb Python3
Informació del Sistema amb Python
Controls
Estructura Seqüencial
En un centre educatiu hi ha tres departaments: Informàtica, Automoció i Electrònica.
Feu un programa que indiqui quin és el pressupost que li correspon a cada departament, tenint en compte el següents passos:
- - Demaneu el pressupost del centre educatiu.
- - Demaneu el % que li correspon al departament d'informàtica i al departament d'automoció.
- - Calculeu quin % li correspon al departament d'electrònica (la resta fins arribar al 100%).
- - Calculeu i mostrar el pressupost que li correspon a cada departament, atenent a les dades introduïdes.
- Cal que comenteu el programa convenientment.
Estructura alternativa
Feu un programa per calcular el preu final de venda dels productes d’un mercat.
El programa ha de demanar la clau del producte del qual es vol calcular el preu final. Les possibles claus de productes son:
- ‘F’: per els productes que són fruites
- ‘V’: per els productes que són verdures
- ‘L’: per els productes que són làctics
Si la clau introduïda no està en el llistat anterior, el programa ha de mostrar a l’usuari el següent error:
- ‘Valor no vàlid’
Si la clau introduïda està en el llistat, aleshores, ha demanar a l’usuari el preu de l’article i el dia de la setmana per tal de calcular i mostrar el preu final del producte aplicant el corresponent descompte utilitzant els següents criteris:
- 1. Els dilluns tenen un 10% de descompte els productes que són làctics
- 2. Els dimarts tenen un 20% de descompte els productes que són fruites
- 3. Els cap de setmana tenen un 30% de descompte tots els productes
- 4. La resta de dies no hi ha descomptes
Recordeu: Utilitzeu comentaris i poseu nombre a les variables per tal que els vostres programes siguin el més llegibles possibles.
Estructura iterativa
Ex 1. Feu un programa que demani un número i mostri la taula de multiplicar d'aquest número. Per exemple si el usuari introdueix el valor 5, mostrarà:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
4 punts
Ex2. Feu un programa que demani el límit inferior i superior d'un interval. Si el límit inferior es major que el superior ho a de tornar a demanar fins que sigui correcte. A continuació es demanaren nombres fins que s'introdueixi el número 0. El programa ha de mostrar la següent informació:
- Suma de tots el nombres que es trobin dins del interval (sense incloure els límits).
- Quants nombres es troben fora del interval
- Cal indicar si s'ha introduït algun nombre igual als límits del interval.
4 punts
Ex Extra. Fer el següent dibuix d'asteriscos per un valor imparell i més gran o igual a 9. Per exemple si l'usuari introdueix el valor 9, mostrarà:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * o * * * * * * * * o * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 punt 2 punts 3 punts
Prova pràctica UF1 NF1
IMPORTANT:
- Heu de fer i lliurar només 3 exercicis - Cal que comenteu tots els exercicis.
1. Fes un programa que demani dos números i mostri el següent:
10 punts i 12 amb ordenació del nombres d'entrada (El nombre més gran indica el número de files)
Ex. 5 i 8 Ex. 7 i 3 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * * * * 5 * * 8 * * * 3 * * * 7 * * 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * * * * 5 * * 8 * * * 3 * * * 7 * * 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * * * * 5 * * 8 * * * 3 * * * 7 * * 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * * * * 5 * * 8 *
2. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'E' (en l'exemple el número és 7)
8 punts versió 1. 10 punts versió 2
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * versió 1 versió 2
3. En una seqüència de números enters positius acabada en -1, mostrar els números que són més grans a tots els els els precedeixen:
10 punts
Exemple:
10 7 9 3 23 9 55 110 2 11 12 245 33 415 56 77 -1 → 10 23 55 110 245 415
4. En una seqüència de números enters positius acabada en -1, indica si s’ha produït que un número es suma de tots els anteriors. Òbviament, el programa ha de finalitzar quan es compleix:
10 punts
Exemple:
3 7 8 3 22 9 11 63 → Sí
3 7 3 9 34 71 14 89 115 200 324 58 -1 → No
Cadenes
languageGames: En molts idiomes disposem de variants lúdiques de l'idioma. Aquest programa codificarà dos mètodes que ens permetran traduir paraules d'idiomes coneguts a variants lúdiques d'aquests. Expliquem primer aquestes variants:
- a) Jerigonza (variant lúdica del castellà): després de cada vocal s'afegeix una 'p' i es repeteix la vocal.
Exemples:
- “casa” seria “capasapa”
- “Gabriel” seria “Gapabripiepel”
- “murcielago” seria “mupurcipiepelapagopo”
NOTA: Per simplificar-ho suposarem que no s'introdueixen accents.
- b) Basic Pig Latin (variant lúdica de l'anglès): tenim dues regles:
- A les paraules que comencen per vocal se'ls afegeix al darrera el sufix “ay”. Exemples:
- “ant” seria “antay”
- “astronaut” seria “astronautay”
- A les paraules que comencen per consonant, es mouen totes les consonants del davant de la primera vocal al final i s'afegeix el sufix “ay”. Exemples:
- “mess” seria “essmay”
- “father” seria “atherfay”
- “chick” seria “ickchay”
- “star” seria “arstay”
Cal fer un menú amb tres opcions: Jerigonza, Basic Pig latin i Sortir.
NOTA: Per simplificar, podeu suposar que la dada d'entrada serà UNA ÚNICA paraula i que aquesta no tindrà ni accents ni caràcters diferents de lletres.
Llistes
Feu un programa per gestionar els resultats de la quiniela de futbol. Utilitzarem dues llistes:
- Partits: llista de dues dimensions de cadenes on guardarem a cada columna el nom dels equips de cada partit. En la quiniela s'indiquen 15 partits.
- Resultats: llista d'enters on s'indica el resultat. Dues columnes, en la primera es posa el número de gols de l'equip que està en la primera posició i en la taula anterior, i en la segona els gols de l'altre equip.
Apartats:
- 1- Creeu la llista de partits, amb tots els partits de la jornada: [Barça, Betis][At. Madrid, Girona] ...
- 2- Creeu la llista de resultats: mostreu els noms dels equips de cada partit, i omplirà la llista de resultats
- Barça: 2 Betis: 1
- At. Madrid: 1 Girona: 3
- ...
- 3- Mostreu la quiniela de aquesta jornada (guanya l'equip de casa (primer en la llista): 1, guanya l'equip de fora (segon en la llista): 2 i empat (mateixos gols una x).
- Barça - Betis 1
- At. Madrid - Girona 2
- ...
Diccionaris
1. Crea un programa de Login que comprovi l'usuari i contrasenya al diccionari definit a continuació:
usuaris = { "ppujol": { "nom": "Pere", "cognom": "Pujol", "password": "123123" }, "cmejia": { "nom": "Carla", "cognom": "Mejia", "password": "654321" }, "jpons": { "nom": "Joan", "cognom": "Pons", "password": "123456" } }
L'usuari tindrà un màxim de 3 intents, i en accedir correctament es mostrarà el nom i el cognom de l'usuari.
2. Feu un programa que defineixi per codi un diccionari i una llista, el diccionari amb l'estoc de productes informàtics (nom del producte i unitats) i la llista amb totes les operacions d'entrada (E) i sortida (S) que s'han realitzat al llarg del dia (producte, operació i unitats). El programa ha d'actualitzar l'estoc amb les operacions del dia i a continuació mostrar l'estoc amb un format com el de l'exemple:
Exemple
- Productes i unitats
Stock = {'Monitors': 102, 'Ratolins': 75, 'Teclats': 7, 'Impressores': 15}
- Operacions del dia
Operacions =[['Monitors','S',10],['Teclats','E',50],['Monitors','S',12],['HD','E',50],['Impressores','S',5],['HD','S',9]]
Stock data 07/05/2024 Producte Unitats Monitors 80 Ratolins 75 Teclats 57 Impressores 10 HD 41
Prova tipus de dades estructurades
1.- Donada una frase i dos caràcters introduïts per teclat, mostreu, si existeix, la cadena de caràcters de cada paraula de la frase compresa entre la primera aparició del primer caràcter i la darrera aparició del segon caràcter (ambdós caràcters inclosos).
3 punts
Per exemple si la frase és:
Quan creus que coneixes totes les respostes arriba l'univers i et canvia totes les preguntes
I els caràcters són : primer ‘e’ i segon ‘s’.
El resultat seria:
eus eixes es es espostes ers es es eguntes
2.- Feu un programa que a partir de dues llistes d'artícles, crei un altra només amb els productes que apareixen en les dues llistes. En la llista final no poden haver productes repetits. Utilitzeu les llistes de l’exemple.
3 punts
Exemple:
llistaArticles1 = ["ratolí", "ordinador", "CPU", "teclat", "ratolí", "disc dur”, “CPU"]
llistaArticles2 = ["pantalla", “teclat”, "impressora", "projector", "teclat", "CPU"]
articlesDuesLlistes = ["CPU", "teclat"]
3.- Escriu un programa que gestioni les factures pendents de cobrament d’una empresa. Les factures s'emmagatzemaran a un diccionari on la clau de cada factura serà el número de factura i el valor el cost de la factura. El programa ha de preguntar a l’usuari si vol afegir una nova factura, pagar una existent o finalitzar. Si voleu afegir una nova factura es preguntarà pel número de factura i el seu cost i s'afegirà al diccionari. Si voleu pagar una factura es preguntarà pel número de factura i s'eliminarà del diccionari. Després de cada operació el programa ha de mostrar per pantalla la quantitat cobrada fins ara i la quantitat pendent de cobrament.
4 punts
Exemple d’execució del programa.
Cobrat: 0 Pendent de cobrament: 0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A Introdueix el número de la factura: 1 Introdueix el cost de la factura: 150 Cobrat: 0 Pendent de cobrament: 150.0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A Introdueix el número de la factura: 2 Introdueix el cost de la factura: 300 Cobrat: 0 Pendent de cobrament: 450.0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? P Introdueix el número de la factura a pagar: 2 Cobrat: 300.0 Pendent de cobrament: 150.0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? A Introdueix el número de la factura: 3 Introdueix el cost de la factura: 85 Cobrat: 300.0 Pendent de cobrament: 235.0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? P Introdueix el número de la factura a pagar: 1 Cobrat: 450.0 Pendent de cobrament: 85.0 Vols afegir una factura nova (A), pagar-la (P) o finalitzar (F)? F
Estructura alternativa rec
Preu final comanda
Escriu un programa en Python per calcular el preu final d'una comanda en una botiga en línia. El programa ha de tenir en compte diferents criteris de descompte basats en el tipus de client i el total de la comanda.
El programa ha de demanar a l'usuari la següent informació:
- Tipus de client (normal, premium, VIP).
- Import total de la comanda.
Segons el tipus de client i l'import total de la comanda, el programa ha d'aplicar els següents descomptes:
- Si el client és normal:
- - Si la comanda supera els 100 euros, s'aplica un descompte del 5%.
- - Si la comanda supera els 200 euros, s'aplica un descompte addicional del 10%.
- Si el client és premium:
- - S'aplica sempre un descompte del 10%.
- Si el client és VIP:
- -S'aplica sempre un descompte del 20%.
- -Si la comanda supera els 500 euros, s'aplica un descompte addicional del 5%.
Finalment, el programa ha de mostrar el preu final de la comanda amb els descomptes aplicats.
Prova ASIX-M3-UF1 2ª Convocatòria
1. Fes un programa que demani dos números i mostri el següent (en l'exemple els números són 5 i 7):
- 2,5 punts
1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 7 7
- El número més gran indica el número de files.
2. En una seqüència de números enters positius acabada en -1, comptar tots els números de 3 xifres que tenen el primer dígit igual al darrer:
- 2,5 punts
Exemple: 3 700 82 34 222 141 97 176 2012 4056 393 214 797 -1 → 4 (222 141 393 797)
3- Feu un programa que a partir d'una frase introduïda per teclat, crei dues llistes, una amb les paraules que comencen per vocal i una altra llista amb paraules que comencin per consonant. A continuació, mostreu el contingut d'ambdues llistes.
- Podeu utilitzar la cadena "aeiouAEIOU".
- 2,5 punts
Exemple Frase: "El David ha regalat unes sabates a un nen trist que anava descalç" llistaVocals = ["El", "unes", "a", "un", "anava"] llistaConsonants = ["David", "ha", "regalat", "sabates", "nen", "trist", "que", "descalç"]
4. Feu un programa que defineixi per codi dos diccionaris: el primer (Estoc) amb l'estoc de cada producte, i el segon (Vendes) amb les vendes realitzades. A continuació actualitzeu el diccionari Estoc amb les vendes realitzades.
2,5 punts
Exemple # Productes i estoc Estoc = {'Samarreta' : 150, 'Foulard' : 200, 'Gorra' : 100, 'Bufanda': 50, 'Mocador' : 125, 'Mitjons': 300, 'Calçotets' : 200, 'Pijama' : 90} # Vendes Vendes = {'Mocador' : 4, 'Foulard' : 2, 'Pijama' : 1, 'Gorra' : 1, 'Foulard' : 10, 'Pijama' : 2, 'Gorra' : 2, 'Mocador' : 7} Després de l'actualització el diccionari d'estocs tindrà el següent contingut: # Productes i estoc Estoc = {'Samarreta' : 150, 'Foulard' : 188, 'Gorra' : 97, 'Bufanda': 50, 'Mocador' : 114, 'Mitjons': 300, 'Calçotets' : 200, 'Pijama' : 87}