Está en la página 1de 7

Universidad Central de Venezuela.

Escuela de Computacin - Algoritmos y Programacin

Recopilacin y Preparacin Prof. Yusneyi Carballo


ver Oct-05, Abril 2013, Enero 2014

-GUA DE EJERCICIOS N 1

EJEMPLOS EN NOTACIN PSEUDOFORMAL - TEMAS 1 AL 3


NOTA IMPORTANTE: lo indique el enunciado del ejercicio o no ,

SIEMPRE se debe analizar


si hay que realizar validaciones en los datos de entrada , en operaciones en donde
se involucren divisiones o el uso de los operadores de divisin div o mod, los cuales requieren
que los nmeros a dividir sean de tipo Entero (en este caso utilizamos conversin explcita de
datos de tipo Real a Entero).
Para estas validaciones se suele utilizar la instruccin condicional SI.

Para cada uno de los siguientes enunciados, construya un algoritmo que resuelva el problema mediante el
secuenciamiento de acciones elementales:

1. Intercambie los valores de dos variables con nmeros enteros


Accin IntercambiarVariables;
# accin que intercambia dos variables A y B con valores enteros, utilizando una variable auxiliar aux
# 1. seccin de declaracin de variables, se asume que las variables sern de tipo entero
# se utiliza el smbolo # para indicar comentarios en el algoritmo, equivalente a usar //
Entero A, B, aux;
# 2. seccin de solicitud y lectura de datos de entrada, se solicitan los valores de A y B al usuario
Escribir(Indique el valor de la primera variable, llamada A);
Leer(A);
Escribir(Indique el valor de la segunda variable, llamada B);
Leer(B);
Escribir(Los valores iniciales de A y B son + A + -- + B + respectivamente.);
# 3. seccin de procesamiento o intercambio de variables, antes se guarda uno de los valores en la variable
# auxiliar aux, por ejemplo B, para no perderlo en el intercambio
C = B;
B = A;
A = C;
# 4. se le muestra al usuario los resultados del intercambio
Escribir(Luego del intercambio el valor de A es: + A + y el valor de B es: + B);
Faccin IntercambiarVariables;

2. Calcule el precio de un artculo tras aplicarle un 15% de IVA.


Accin Calcular_PrecioconIva;
# accin que calcula el precio con IVA de un producto
# 1. seccin de declaracin de variables, se asume que el IVA es un valor constante igual a 14%
Real PrecioInicial, ImpuestoBs, PrecioFinal;
Constante Real IVA;
# 2. seccin donde se inicializan variables y se solicitan datos de entrada
IVA = 14%; # 14% = 0,14, es equivalente a 14/100
Escribir(Indique el precio del artculo); Leer(PrecioInicial);
Pg. 1

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

Recopilacin y Preparacin Prof. Yusneyi Carballo


ver Oct-05, Abril 2013, Enero 2014

# 3. seccin de clculos, se calcula lo que se pagar por impuesto y el precio final


ImpuestoBs = PrecioInicial * IVA;
PrecioFinal = PrecioInicial + ImpuestoBs;
# 4. seccin donde se informan al usuario de los resultados
Escribir(El precio inicial del artculo es: + PrecioInicial);
Escribir(El impuesto a pagar por el artculo es de Bs.: + ImpuestoBs);
Escribir(El precio final del artculo, sumado el impuesto es Bs.: + PrecioFinal);
Faccin Calcular_PrecioconIva;

3. Dadas dos fechas del ao 2013 en el formato DD MM (dos enteros que corresponden al da y al mes
respectivamente) introducidas por el usuario, elabore un algoritmo que calcule la cantidad de das
existentes entre las dos fechas sin contar los extremos. Asuma que todos los meses tienen 30 das.
Accin NmerodeDas;
# accin que calcula el nmero de das que han transcurrido entre dos fechas del mismo ao
# seccin de declaracin de variables
Entero da1, da2, mes1, mes2, meses, dasExistentes;
# seccin donde se inicializan variables, solicitando al usuario los valores de las fechas
Escribir(indique el da y el mes de la fecha 1, la fecha menor); Leer(da1, mes1);
Escribir(indique el da y mes de la fecha 2, la fecha mayor); Leer(da2, mes2);
# seccin de procesamiento,
# se calcula los meses que hay entre las dos fechas, no incluyendo los meses de los extremos
meses = (mes2 mes1) -1;
# se calculan los das existentes entre las fechas
# 30-da1 son los das que transcurrieron desde la fecha hasta el final de ese mes
dasExistentes= meses*30 + (30 da1) + da2;
# seccin donde se informan al usuario de los resultados
Escribir(La fecha 1 es: + da1 + - + mes1);
Escribir(La fecha 2 es: + da2 + - + mes2);
Escribir(Los das existentes entre las fechas son: + dasExistentes);
Faccin NmerodeDas;

Pg. 2

Recopilacin y Preparacin Prof. Yusneyi Carballo

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

ver Oct-05, Abril 2013, Enero 2014

4. Dados los coeficientes de dos polinomios de segundo grado, calcule la suma, resta y multiplicacin de
ambos polinomios e imprima los coeficientes de los polinomios resultantes.
Anlisis del problema: Una vez suministrados los coeficientes de los polinomios se procede a realizar las
operaciones sobre ellos.
Sean los polinomios de segundo grado P1= 5x 2+3x-10 y P2=2x2-8x+3 se tienen los siguientes resultados:
P1+P2 (suma de polinomios)
5x + 3x - 10
2

P1-P2 (resta)

P1*P2 (multiplicacin)

-P2 = -1*P2= -2x + 8x - 3

5x2 + 3x - 10

2x2 - 8x + 3

* 2x2 - 8x + 3

7x2 - 5x - 7

5x2 + 3x - 10
-2x + 8x - 3
2

3x2 +11x - 13

15x2 + 9x - 30
-40x - 24x2 + 80x
3

10x4 + 6x3 - 20x2

10x4 - 34x3 - 29x2 + 89x2 - 30

Accin OperacionesConPolinomios;
# accin donde se leen los coeficientes de los polinomios y se realizan operaciones de suma,
# resta y multiplicacin entre ellos
# coeficientes del polinomio 1 (p1)
Entero C2p1, C1p1, C0p1; # C2p1 para el coeficiente del trmino de grado 2 (coeficiente de x 2),
# C1p1 para el coeficiente del trmino de grado 1 (coeficiente de x)
Entero C2p2, C1p2, C0p2; # coeficientes del polinomio 2 (p2)
Entero C2r, C1r, C0r;
Entero C4r, C3r;

# coeficientes del polinomio resultado para la suma y la resta


# coeficientes del polin. resultado para grado 3 y 4, usados en la multiplicacin

# seccin donde se leen los valores iniciales


Escribir(indique los coeficientes del polinomio 1, en el orden ax2, bx y c); Leer(C2p1, C1p1, C0p1);
Escribir(indique los coeficientes del polinomio 2, en el orden ax2, bx y c); Leer(C2p2, C1p2, C0p2);
# seccin de clculos
# SUMA de los polinomios, P1+P2
C0r = C0p1 + C0p2;
C1r = C1p1 + C1p2;
C2r = C2p1 + C2p2;
# se informa el resultado al usuario
Escribir(Los coeficientes del resultado de la suma de los polinomios, P1+P2 son: );
Escribir(C2r + , + C1r + , + C0r); #concatenamos con , para separar los valores
# RESTA de los polinomios, P1-P2
C0r = C0p1 + (-1)*C0p2;
C1r = C1p1 + (-1)*C1p2;

C2r = C2p1 + (-1)*C2p2;

# se informa el resultado al usuario


Escribir(Los coeficientes del resultado de la resta de los polinomios, P1-P2 son: );
Escribir(C2r + , + C1r + , + C0r);
Pg. 3

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

Recopilacin y Preparacin Prof. Yusneyi Carballo


ver Oct-05, Abril 2013, Enero 2014

# MULTIPLICACIN de los polinomios, P1*P2


C0r = C0p2 * C0p1;
C1r = (C0p2 * C1p1) + (C1p2 * C0p1);
C2r = (C0p2 * C2p1) + (C1p2 * C1p1) + (C2p2 * C0p1);
C3r = (C1p2 * C2p1) + (C2p2 * C1p1);
C4r = C2p2 * C2p1;
# se informa el resultado al usuario
Escribir(Los coeficientes del resultado de la multiplicacin de P1 y P2 son: );
Escribir(C4r + , + C3r + , + C2r + , + C1r + , + C0r);
Accin OperacionesConPolinomios;

5. Costos de una flota de camiones.


Suponga que una industria mantiene una flota de tres (3) camiones para repartir sus productos. En cada
viaje, el conductor anota la distancia recorrida en kilmetros, los litros de gasolina usados, el costo de
la gasolina y otros gastos de mantenimiento del camin.
Como parte del proceso de contabilidad, el administrador de la empresa necesita calcular y registrar
para cada camin y para cada viaje, los kilmetros recorridos por litro, el costo total del viaje y el costo
por kilmetro. Disear un algoritmo en pseudocdigo para llevar a cabo estos clculos.
Accin Control_Gastos_Flota;
// accin que permite conocer los costos de un camin en un viaje
// declaracin de variables
Real KmRecorridos, litrosGasolina, precioLitroGasolina, otrosGastos; //datos recopilados por el conductor
Real KmRecorridosxLitro, costoTotalViaje, costoxKm; //variables para almacenar los clculos
String Ruta; // variable donde se guardar un texto que indica de donde a donde se realiza el viaje
String codCamin; // variable donde se guarda el cdigo del camin que realiz el viaje
// seccin de inicializacin y lecturas de valores iniciales
Escribir(Indique la ruta del viaje, es decir, ciudad inicio y ciudad destino, por ejemplo Caracas Los Teques
); Leer(Ruta);
Escribir(Indique el cdigo del camin); Leer(codCamin);
Escribir(Indique los Km recorridos y lo cancelado en otros gastos de mantenimiento: );
Leer(KmRecorridos, otrosGastos);
Escribir(Indique los litros de gasolina consumidos y el precio por litro: );
Leer(litrosGasolina, PrecioLitroGasolina);
// seccin de clculos
KmRecorridosxLitro = KmRecorridos / litrosGasolina;
costoTotalViaje = (litrosGasolina * PrecioLitroGasolina) + otrosGastos;
costoxKm = costoTotalViaje / KmRecorridos;
// se informa el resultado al usuario
Escribir(Gastos del vehculo + codCamin + en el viaje: + Ruta );
Escribir(Km recorridos por litro: + KmRecorridosxLitro);
Escribir(Costo total del viaje Bs.: + costoTotalViaje);
Escribir(Costo por Km Bs.: + costoxKm);
Accin Control_Gastos_Flota;
Pg. 4

Recopilacin y Preparacin Prof. Yusneyi Carballo

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

ver Oct-05, Abril 2013, Enero 2014

Quiz #1
2. Un mdico determina si una persona tiene anemia o puede padecer una cardiopata de acuerdo
a su nivel de hemoglobina en la sangre, su edad y su sexo. Si el nivel de hemoglobina que tiene una
persona es menor que el rango que le corresponde, se determina que el paciente sufre de anemia.
En caso contrario el paciente puede padecer algn tipo de cardiopata y se le recomienda realizarse
otros exmenes. La tabla en la que el mdico se basa para obtener el diagnstico es la siguiente:
Edad
Recin Nacido
Entre 1 y 5 aos
Entre 1 y 15 aos
Hombre adulto
Mujer adulta

Nivel Hemoglobina
13,5 a 19,5 gr/dl
12 a 14 gr/dl
12 a 14 gr/dl OJO: ESTE CASO INCLUYE AL ANTERIOR
PERO, FALTA EL RANGO DESDE 16 hasta menores a 18 aos
13 a 16 gr/dl
11,5 a 14,5 gr/dl

Realice un algoritmo que, dada la edad, sexo y valor de la hemoglobina de un paciente, determine si
est sano, tiene anemia o es necesario realizar otros exmenes. (6 puntos)

EXPLICACIN
Este ejercicio puede resolverse utilizando SI anidado o Seleccin, pero para que quede ms
sencillo de establecer los casos a comparar es conveniente utilizar o combinar varios Si y/o varias
Selecciones
Te doy una idea general y tu luego de analizarla puedes crear otras versiones o utilizarlo para otros
ejercicios en donde se comparen varios datos de entrada.

// Parte comn del algoritmo


Accin pruebaAnemia
// determina si un paciente tiene anemia en funcin de su edad, sexo y valor de hemoglobina
// declaracin de variables
Entero edad; Carcter sexo; Real hemoglobina;
String mens1, mens2, mens3;
// Inicializacin de variables, en este caso los mensajes para no tener que escribirlos varias veces
luego
mens1 = Valores de hemoglobina por debajo del rango saludable, el paciente tiene anemia.
mens2 = Valores de hemoglobina dentro del rango saludable, no hay anemia.
mens3 = Valores de hemoglobina por encima del rango saludable, debe realizarse ms
exmenes.
Pg. 5

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

Recopilacin y Preparacin Prof. Yusneyi Carballo


ver Oct-05, Abril 2013, Enero 2014

// solicitud de datos de entrada


Escribir (Suministre para la prueba de hemoglobina la edad, sexo (usando f para femenino o m
para masculino) y el valor de hemoglobina);
Leer (edad, sexo, hemoglobina);

// validacin de datos de entrada


Si ( (sexo f Y sexo m) O ( edad < 0 O edad > 125) O hemoglobina < 0) Entonces
// cualquiera de los casos anteriores en los valores implica que hay error en los datos de entrada
Escribir (Los datos de entrada presentan valores incorrectos, no se puede procesar la prueba
de anemia al paciente);
Sino
// ahora te muestro dos posibles opciones de respuesta
// Opcin 1. Con Si Anidado

// Opcin 2. Con Si y Seleccin

Si (edad < 18) Entonces


// Si 1, caso de bebs, ni@s y adolescentes
Si (edad < 1) Entonces
// Si 2, recin nacidos
Si (hemoglobina < 13,5) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 19,5) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Sino
Si (edad 1 Y edad 15) Entonces

Si (edad < 18) Entonces


// Si 1, bebs, ni@s y adolescentes

// Si 3, caso de nios, nias y adolescentes


Si (hemoglobina < 12) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 14) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Sino

Seleccin:
edad < 1: // caso de recin nacidos
Si (hemoglobina < 13,5) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 19,5) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
edad 1 Y edad 15:
// caso de nios, nias y adolescentes
Si (hemoglobina < 12) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 14) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Pg. 6

Universidad Central de Venezuela.


Escuela de Computacin - Algoritmos y Programacin

Si (edad 16 Y edad < 18) Entonces


// Si 4, otro caso de nios, nias y adolescentes
Escribir (No se indica informacin de los
niveles de saludables de hemoglobina para
este rango de edad. DEBE consultarse al
mdico);
Sino
Si (edad 18) Entonces

Recopilacin y Preparacin Prof. Yusneyi Carballo


ver Oct-05, Abril 2013, Enero 2014

edad 16 Y edad < 18:


// otro caso de nios, nias y adolescentes
Escribir (No se indica informacin de los
niveles de saludables de hemoglobina para
este rango de edad. DEBE consultarse al
mdico);
FinSeleccin; // termina validacin menores
edad

// Si 5, caso de adultos, hombres y mujeres


Si (sexo == f) Entonces
// Si 6, mujeres adultas
Si (hemoglobina < 11,5) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 14,5) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Sino // caso slo posible para sexo == m
// hombres adultos
Si (hemoglobina < 13) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 16) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Fsi; // del Si 6
Fsi; // del Si 5
Fsi; // del Si 4
Fsi; // del Si 3
Fsi; // del Si 2
Fsi; // del Si 1, por fin uffff!!!

Sino
// caso de adultos hombres o mujeres
// con edad 18 aos

FinAccin;

FinAccin;

Si (sexo == f) Entonces
// Si 2, mujeres adultas
Si (hemoglobina < 11,5) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 14,5) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Sino // caso slo posible para sexo == m
// hombres adultos
Si (hemoglobina < 13) Entonces
Escribir (mens1); // anemia
Sino
Si (hemoglobina > 16) Entonces
Escribir (mens3); // ms exmenes
Sino
Escribir (mens2); // sin anemia
FSi;
FSi;
Fsi; // del Si 2
Fsi; // del Si 1

Atm, Profa Yusneyi


Pg. 7