MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi
Contingut
Exercicis Seqüencials
1. Escriu un programa que demani al usuari el seu nom, i a continuació escrigui una salutació.
- Anàlisi
- Hem de demanar un nom per teclat i després escriure un missatge de salutació
- Dades d'entrada: nom (cadena)
- Variables: nom (cadena)
- Disseny
- 1. Llegir nom
- 2. Escriure missatge de salutació
Proceso Saludar
Definir nom como Cadena;
Escribir "Diguem el teu nom:";
Leer nom;
Escribir "Hola ",nom;
FinProceso
6. Realitza un algoritme que rebi una quantitat de minuts i mostri per pantalla a quantes hores i minuts correspon.
- Anàlisi
- Hem de llegir una quantitat de minuts, i calcular quantes hores i minuts són.
- Dades d'entrada: minuts (entero)
- Informació de sortida:hores i minuts (entero)
- Variables: minuts, res_hores, res_minuts (entero).
- Disseny
- 1. Llegir els minuts
- 2. Calcular a quantes hores correspon, divisió sencera entre 60.
- 3. calcular els minuts restants: resta de la divisió entre 60.
- 4. Mostrar hores i minuts
Proceso CalcularHoras
Definir minuts, res_hores, res_min como Entero;
Escribir "Indica la quantitat de minuts:";
Leer minuts;
res_hores<-trunc(minuts / 60);
res_min<-minuts % 60;
Escribir res_hores," horas i ",res_min," minuts.";
FinProceso
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.
- Anàlisi
- El venedor té un sou base més una comissió del 10% per cada venda.
- Fa tres vendes.
- Dades dentrada: sou base, les tres vendes (real).
- Informació de sortida: comissions i sou total (real).
- Variables: sou_base, venda1, venda2, venda3, comissió(real).
- Disseny
- 1. Llegir sou base
- 2. Llegir les tres vendes
- 3. Calculeu les comissions. Suma del 10% de cada venda.
- 4. Mostra comissió
- 5. Mostra sou total: sou_base+comissió
Proceso CalcularSou
Definir sou_base, venda1, venda2, venda3, comissio como Real;
Escribir "Indica el sou base:";
Leer sou_base;
Escribir "Indica import primera venda 1:";
Leer venda1;
Escribir "Indica import segona venda 2:";
Leer venda2;
Escribir "Indica import tercera venda 3:";
Leer venda3;
comissio<-venda1*0.1+venda2*0.1+venda3*0.1;
Escribir "Comissió per vendes:",comissio;
Escribir "Sou total:", sou_base+comissio;
FinProceso
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:
- 55% de la mitjana de les tres qualificacions parcials.
- 30% de la qualificació de lexamen final.
- 15% de la qualificació d'un treball final.
- Anàlisi
- Cal llegir les notes parcials, la nota de l'examen final i la nota del treball final.
- Posteriorment es calculen els percentatges i es sumen.
- Dades d'entrada: tres qualificacions parcials, nota examen final, nota treball final (real).
- Informació de sortida: nota final (real).
- Variables: parcial1, parcial2, parcial3, examen, treball, nota (real).
- Disseny
- 1. Llegir les notes parcials, de l'examen final i de la feina.
- 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.
- 3. Mostra nota final
Proceso CalcularNota
Definir parcial1,parcial2,parcial3,examen,treball,nota como Real;
Escribir "Indica la nota del parcial 1:";
Leer parcial1;
Escribir "Indica la nota del parcial 2:";
Leer parcial2;
Escribir "Indica la nota del parcial 3:";
Leer parcial3;
Escribir "Indica la nota del examen:";
Leer examen;
Escribir "Indica la nota del treball:";
Leer treball;
nota <- ((parcial1 + parcial2 + parcial3)/3)*0.55 + 0.3*examen + 0.15*treball;
Escribir "Nota final:", nota;
FinProceso
Exercicis estructura alternativa
1. Escriu un algorisme que demani un número i digui si és positiu, negatiu o 0.
- Anàlisi
- Hem de demanar un número per teclat, comparar-lo amb 0, i indicar si és igual, major o menor que 0.
- Dades d'entrada: número (enter)
- Informació de sortida: Un missatge de text indicant si el número és igual, major o menor que 0.
- Variables: num (enters)
- Disseny
- 1. Llegir el número
- 2. Si el nombre és igual 0 escriviu "És igual a 0"
- 3. En cas contrari si és més gran que 0 escriure "És més gran que 0"
- 4. En altre cas escriure "És menor que 0"
Proceso CalcularPositiuNegatiuZero
Definir num como Entero;
Escribir "Digue'm el número :";
Leer num;
Si num=0 Entonces
Escribir "És igual a 0";
SiNo
Si num>0 Entonces
Escribir "És positiu";
SiNo
Escribir "És negatiu";
FinSi
FinSi
FinProceso
2. Escriu un algorisme en pseudocodi que demani un nom d'usuari i una contrasenya i si s'ha introduït "pcarbonell" i "pc1673" s'indica "Has entrat al sistema", sinó hi ha un error.
- Anàlisi
- Demanem per teclat nom i contrasenya
- si coincideixen amb les correctes indiquem que s'ha entrat al sistema.
- en cas contrari indiquem que el nom o la clau són incorrectes
- Dades d'entrada: usuari, password (cadena)
- Informació de sortida: Missatges d'encert o error.
- Variables: usuari, password (cadena)
- Disseny
- 1. Llegir l'usuari
- 2. Llegir el password
- 3. Si l'usuari és igual a "pcarbonell" i el password és igual a "pc1673"
- escriure "Has entrat al sistema"
- 4. En cas contrari mostrar el missatge "Usuari/password incorrecte"
Procéso Login
Definir usuari, password como Cadena;
Escribir Sin Saltar "Introdueix l'usuari:";
Leer usuari;
Escribir Sin Saltar "Introdueix el password:";
Leer password;
Si usuari="pcarbonell" Y password="pc1673" Entonces
Escribir "Has entrat al sistema";
SiNo
Escribir "Usuari/password incorrecte";
FinSi
FinProceso
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'.
- Anàlisi
- Demanem per teclat dos números: nota i edat i un caràcter sexe.
- Es mostra "ACCEPTADA" si nota>=5, edat>=18 i el sexe és femení.
- Si es compleix les mateixes condicions però amb el sexe masculí -> "POSSIBLE" en cas contrari es mostra "NO ACCEPTADA"
- Dades d'entrada: nota, edat (enter) i sexe (cadena)
- Informació de sortida: Missatge d'informació
- Variables: nota, edat (enter) i sexe (cadena)
- Disseny
- 1. Llegir la nota, l'edat i el sexe
- 2. si nota>=5, edat>=18
- 3. si sexe="F" mostrar "ACCEPTADA" -> funció Mayusculas()
- 4. si sexe="M" mostrar "POSSIBLE"
- 5. En cas contrari, mostrar "NO ACCEPTADA"
Proceso ComprovarNotaEdatSexe
Definir nota,edat como Entero;
Definir sexe como Cadena;
Escribir Sin Saltar "Introdueix la nota:";
Leer nota;
Escribir Sin Saltar "Introdueix la edat:";
Leer edat;
Escribir Sin Saltar "Introdueix el sexe (F/M):";
Leer sexe;
Si nota>=5 Y edat>=18 Entonces
Si Mayusculas(sexe)="F" Entonces
Escribir "Acceptada";
SiNo
Si Mayusculas(sexe)="M" Entonces
Escribir "Possible";
SiNo
Escribir "No Acceptada";
FinSi
FinSi
SiNo
Escribir "No Acceptada";
FinSi
FinProceso
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:
- 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.
- Si és de tipus B, es rebaixen 30 cèntims quan és de mida 1, i 50 cèntims quan és de mida 2.
- Realitzeu un algorisme per determinar l'import final.
- Anàlisi
- 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.
- Dades d'entrada: tipus, mida (caràcter), preu inicial en cèntims i quilos (enter)
- Informació de sortida: Preu final en euros (real) o missatge d'error
- Variables: preu_inicial (enter), quilos (enter), mida (caràcter), tipus (caràcter), preu_final (real)
- Disseny
- 1. Llegir preu_inicial, quilos
- 2. Llegir tipus
- 3. Si tipus no és "A" o "B" tornar missatge d'error.
- 4. Llegir la mida
- 5. Si la mida no és "1" o "2" tornar missatge d'error.
- 6. Si tipus és "A" i mida és "1" summe a preu_inicial 20 cèntims.
- 7. Si tipus és "A" i mida és "2" summe a preu_inicial 30 cèntims.
- 8. Si tipus és "B" i grandària és "1" resta a preu_inicial 20 cèntims.
- 9. Si tipus és "B" i grandària és "2" resta a preu_inicial 30 cèntims.
- 10. El preu_final = preu_inicial * quilos
- 11. Mostra preu final/100 euros
Proceso PreuUva
Definir tipus como Caracter;
Definir mida como Caracter;
Definir preu_inicial,preu_final como Real;
Definir quilos como Entero;
Escribir Sin Saltar "Introdueix el preu inicial per quilos del UVA (cèntims):";
Leer preu_inicial;
Escribir Sin Saltar "Introdueix quants quilos has venut:";
Leer quilos;
Escribir Sin Saltar "Introdueix el tipus de lUVA (A/B):";
Leer tipus;
Si Mayusculas(tipus)<>"A" Y Mayusculas(tipus)<>"B" Entonces
Escribir "Tipus incorrecte";
SiNo
Escribir Sin Saltar "Introdueix la mida del UVA (1/2):";
Leer mida;
Si mida<>"1" Y mida<>"2" Entonces
Escribir "Mida incorrecte";
SiNo
Si Mayusculas(tipus)="A" Entonces
Si mida="1" Entonces
preu_inicial<-preu_inicial+20;
SiNo
preu_inicial<-preu_inicial+30;
FinSi
SiNo
Si mida="1" Entonces
preu_inicial<-preu_inicial-20;
SiNo
preu_inicial<-preu_inicial-30;
FinSi
FinSi
preu_final<-preu_inicial * quilos;
Escribir "El guany és",preu_final/100, "euros.";
FinSi
FinSi
FinProceso