MOPT - Lògica i programacio / Pseudocodi: Solucions Exercicis Pseudocodi

De wikiserver
Dreceres ràpides: navegació, cerca

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

Exercicis avaluar expressions lògiques

Exercicis per fer expressions lògiques

Exercicis estructura repetitiva

Exercicis prova CURS 2024-2025

Exercicis Arrays

Exercicis programació estructurada