M3 - Programació bàsica

De wikiserver
Dreceres ràpides: navegació, cerca

Perquè un Administrador de Sistemes necessita aprendre a programar? i perquè Python és un bon llenguatge de programació per a Administradors de Sistemes?

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

Python Basics

Llibre Introducció a la programació amb Python3

Apunts Pythons

Documentació Python versions

Informació del Sistema amb Python

Exercicis resolts

+ Exercicis resolts

Exercicis per administradors


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

  1. Productes i unitats

Stock = {'Monitors': 102, 'Ratolins': 75, 'Teclats': 7, 'Impressores': 15}

  1. 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ó:

  1. Tipus de client (normal, premium, VIP).
  2. 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:

  1. 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%.
  1. Si el client és premium:
- S'aplica sempre un descompte del 10%.
  1. 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.