Sei sulla pagina 1di 111

UNIVERSIDAD AUTONOMA DEL CARMEN

Departamento reas Ciencias de la informacin Cuerpo Acadmico Tecnologas de Informacin

CUADERNO DE EJERCICIOS ALGORITMOS Tcnicas de programacin

DESARROLLADO Y APROBADO POR EL CUERPO ACADEMICO DE TECNOLOGAS DE INFORMACIN

ABRIL 2007
Versin 1.1

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

INTEGRANTES DEL CUERPO ACADEMICO

Damaris Prez Cruz Jos Gabriel Reding Domnguez Patricia Zavaleta Carrillo

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

ndice de ejercicios
Introduccin.............................................................................................................4 Objetivo.....................................................................................................................5 PARTE I. ENUCIADOS DE EJERCICIOS................................................................5 Tema 1. Estructuras Secuenciales........................................................................5 Tema 2. Estructuras de Seleccin (si-entonces-sino, casos)...........................11 Tema3. Estructura Repetitiva (Mientras-Hacer, Hacer-Mientras, Desde-Para) .................................................................................................................................18 PARTE II. SOLUCIONES........................................................................................23 Soluciones Ejercicios Secuenciales....................................................................23 Soluciones Ejercicios de Seleccin....................................................................38 Soluciones Ejercicios Estructura Repetitiva......................................................73 FUENTES CONSULTADAS.................................................................................111

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Introduccin
Este cuaderno es una revisin del cuaderno de ejercicios realizados el ao pasado, en este cuaderno se incluyen todos los algoritmos implementados con procedimiento y funciones y tambin todos los pasos del algoritmo implementados en un solo bloque, esto con el fin de remarcar la diferencia y la utilidad del uso de procedimientos y funciones en el desarrollo de algoritmos, cabe aclarar que tal vez no se note la utilidad del uso de procedimientos y funciones en algoritmos pequeos pero es muy til en el desarrollo de algoritmos grandes en los que se necesita una misma serie de pasos en diferentes partes del algoritmo, en este caso esta serie de pasos se implementan dentro de un procedimiento o funcin y en el lugar donde se necesita esta serie de pasos solo se hace un llamado o invocacin al procedimiento o funcin respectivo; tambien se trata de usar en el algoritmo una notacin lo mas cercana posible a la notacin del lenguaje C, con el fin de familiarizar al alumno con el uso de dicho lenguaje. Este cuaderno servir de apoyo a los profesores, en su labor cotidiana de enseanza y al estudiante le facilitar el desarrollo de su capacidad analtica y creadora, para de esta manera mejorar su destreza en la elaboracin de algoritmos que sirven como base para la codificacin de los diferentes programas que tendr que desarrollar a lo largo de su carrera. En la primer parte de este cuaderno se plantea una serie de ejercicio clasificados de acuerdo a las estructuras de control del paradigma estructurado y en la segunda parte las soluciones para cada uno de los problemas planteados, se presenta cada uno de los problemas implementando todos los pasos del algoritmo en un solo bloque y haciendo uso de procedimientos y funciones. Se recomienda a los estudiantes leer, analizar y resolver los ejercicios, posteriormente, comparar con las soluciones de los algoritmos y analizar posibles errores, mejoras o diferencias en la lgica utilizada en la solucin del problema, esto con el fin de desarrollar su capacidad analtica y creadora.

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Objetivo
Este cuaderno esta dirigido a los estudiantes que toman el curso de tcnicas de programacin del tronco comn que forma los tres programas educativos ofrecidos por la DES-DACI, tiene el fin de proporcionarles una herramienta que los apoye en la prctica que requieren de realizar para afirmar los conocimiento adquiridos durante el desarrollo del curso. El contenido tiene como objetivo principal lograr que el alumno desarrolle la habilidad de plantear las sentencias computacionales que conforman el algoritmo de solucin a problemas planteados.

PARTE I. ENUCIADOS DE EJERCICIOS Tema 1. Estructuras Secuenciales


Objetivo: El alumno ser capaz de elaborar algoritmos de solucin a problemas en los que se requiere el uso de instrucciones secuenciales (entrada, salida, asignacin). Lectura: Algoritmo: Es un Mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Caractersticas: Preciso (debe indicar el orden de realizacin en cada paso y no puede tener ambigedad), definido (si se sigue dos veces, obtiene el mismo resultado cada vez), finito (tiene fin; un nmero determinado de pasos), debe ser Sencillo, legible, modular, eficiente y efectivo, se ha de desarrollar en el menor tiempo posible, correcto, todo Algoritmo debe tener cero mas entradas, debe tener al menos una salida y sta debe ser tangible. Constantes: Es un dato cuyo valor no puede cambiar durante la ejecucin del programa. Recibe un valor dentro de las instrucciones del algoritmo y este permanece inalterado durante todo el algoritmo. Tienen varios usos: ser miembro en una expresin, en una comparacin, asignar su valor a una variable, etc. Se pueden clasificar las constantes en: o Constantes literales(sin nombre): 4, 24, 3.1416, 9.81, Hola, f, etc. o Constantes declaradas (con nombre): Declaradas con alguna de las formas que proporcione para constantes un lenguaje de programacin, se asocia un nombre a un valor dado, dentro del algoritmo se usa el nombre, por ejemplo: PI con el valor de 3.1416.

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin Variables: Una variable es un nombre asociado a un elemento de datos que est situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecucin de un programa. Toda variable pertenece a un tipo de dato concreto. En la declaracin de una variable se debe indicar el tipo al que pertenece. As tendremos variables enteras, reales, booleanas, etc. Declaracin de variables. Esta es la primera fase en la vida de cualquier variable. Aqu se debe especificar el tipo que va a tener el valor referenciado por la variable. Ejemplos de declaracin de variables:
Entero i, j, contador, suma; Fraccionario x, precio; Char sexo; Char *nombre, domicilio[30];

Aqu las variables i, j, contador y suma contendrn valores de tipo entero. Las variables x y precio son de tipo fraccionario. La variable sexo contendr valores de tipo carcter y las variables nombre y domicilio son espacios en memoria que guardarn cadenas de texto. El valor contenido en las variables puede ser modificado varias veces en cualquier parte del algoritmo. Cada lenguaje de programacin tiene sus propios tipos de datos, algunos de estos son comunes a todos, entre los tipos de datos comunes estn: entero, real, carcter, lgico, fecha / hora y cadena (nota: para el tipo lgico en lenguaje C, se utiliza el valor cero para denotar falso y cualquier valor mayor a cero para denotar verdadero). Algunas variables deben de inicializarse, es decir, tomar algun valor especfico al momento de declararlas, para evitar posibles errores durante la ejecucin del algoritmo (programa) en la computadora. Una vez declarada e inicializada una variable puede utilizarse en diversas sentencias, como son las asignaciones (de valores literales x=10, incremento del valor de la misma variable x=x+1, de valores contenidos en otras variables x=y), para control de ciclos (para i=1 hasta 10 hacer), chequear una condicin (x>=50), participar en una expresin (res = (max-min)/2). LAS OPERACIONES DE ENTRADA/SALIDA Una operacin de entrada tiene por objeto el obtener datos de los diferentes dispositivos de entrada; generalmente del teclado, y los almacena en memoria principal. Una operacin de salida tiene por objeto el obtener datos de memoria principal y sacarlos a los dispositivos de salida, generalmente la pantalla. En pseudocidigo la salida es con la sentencia escribir y la entrada con leer. FUNCIONES Y PROCEDIMIENTOS Funcin: conjunto de instrucciones (algoritmo) que ejecutan la solucin de una parte del problema. Tiene como resultado la devolucin de un valor. Procedimiento: Idem a la funcin, pero devuelve 0 N valores.
6

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

En los lenguajes de programacin un programa puede estar constituido por varias funciones o procedimientos, pero debe existir una parte principal que es la que inicia la ejecucin y lleva el control de todo el programa. Sintaxis de una funcin:
Tipo nombre_funcin (lista de parmetros) inicio declaracin de variables locales a la funcin; instruccin 1; instruccin 2; ... instruccin N; retorna valor; fin

Donde: Tipo: Especifica el tipo que devuelve la funcin. Lista de parmetros: Declaracin de una o ms variables donde la funcin recibe valores para utilizarlos dentro de ella, cada uno de las declaraciones se separa con coma. Actividad 1. En unas elecciones se presentan tres candidatos. a continuacin se presenta algoritmo para calcular estadsticas elementales de la eleccin. Se tienen en cuenta los votos en blanco y la poblacin electoral total.
DATOS DE ENTRADA: Nombre de los 3 candidatos (Candidato1, Candidato2, Candidato3 caracter[15]) Votos de los 3 candidatos (VCand1, VCand2, VCand3 entero) Votos en blanco (VEnBco entero) PROCESO: Leer Candidato1, Candidato2, Candidato3, VCand1, VCand2, VCand3, VEnBco Calcular TotVElecc, PorcCand1, PorcCand2, PorcCand3, PorcVEnBco Calcular PorcCiudadanosResponsables, PorcCiudadanosInconcientes Mostrar TotVElecc, PorcCand1, PorcCand2, PorcCand3, PorcVEnBco Mostrar PorcCiudadanosResponsables, PorcCiudadanosInconcientes DATOS DE SALIDA: Porcentaje de candidatos (PorcCand1, PorcCand2, PorcCand3 fraccionario) Porcentaje de votos en blanco (PorcCand1, PorcCand2, PorcCand3 fraccionario) Porcentaje de votos ciudadanos responsables (PorcCResp fraccionario) Porcentaje de votos ciudadanos inconcientes (PorcCInc fraccionario) 7

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio CARACTER Candidato1[15], Candidato2[15], Candidato3[15]; ENTERO VCand1, VCand2, VCand3, VEnBco, TotVElecc, TotElectores=50000; FRACCIONARIO PorcCand1,PorcCand2, PorcCand3, PorcVEnBco, PorcCResp, PorcCInc; // Pedir datos de entrada Escribir ("Dar Nombre candidato 1: ") Leer (Cand1) Escribir ("Dar Nombre candidato 2: ") Leer (Cand2) Escribir ("Dar Nombre candidato 3: ") Leer (Cand3) Escribir ("Dar votacin de ", Candidato1, ": ") Leer (VCand1) Escribir ("Dar votacin de ", Candidato2, ": ") Leer (VCand2) Escribir ("Dar votacin de ", Candidato3, ": ") Leer (VCand3) Escribir ("Dar votacin en blanco ") Leer (VEnBco) //A continuacin los clculos necesarios TotVElecc = VCand1 + VCand2 + VCand3 + VEnBco PorcCand1 = ( VCand1 / TotalVElecc ) * 100 PorcCand2 = ( VCand2 / TotalVElecc ) * 100 PorcCand3 = ( VCand3 / TotalVElecc ) * 100 PorcVEnBco = ( VEnBco / TotalVElecc ) * 100 PorcCResp =(TotalVElecc/TotElectores)*100 PorcCInc = 100 - PorcCResp // Mostrar resultados Escribir ("Porcentaje ", Candidato1, " = ", PorcCand1) Escribir ("Porcentaje ", Candidato2, " = ", PorcCand2) Escribir ("Porcentaje ", Candidato3, " = ", PorcCand3) Escribir ("Porcentaje de V en blanco = ", PorcVEnBco) Escribir ("Si votaron = ", PorcCResp , "%") Escribir ("NO votaron = ", PorcCInc, "%") Fin.

Pseudocdigo con procedimientos y funciones.


/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin
8

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


/* Funcin que pide una cadena de caracteres y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter *leerCar (texto mensaje) caracter *c escribir mensaje leer c retornar c fin /* Procedimiento que calcula los datos de salida y muestra los resultados. */ Procedimiento porcentajes(fraccionario Candidato1, fraccionario Candidato2, fraccionario Candidato3, fraccionario VCand1, fraccionario Vcand2, fraccionario Vcand3, fraccionario VEnBco) FRACCIONARIO PorcCand1, PorcCand2, PorcCand3,PorcVEnBco; FRACCIONARIO PorcCiudadanosResp, PorcCiudadanosInc; TotalVElecc VCand1 + VCand2 + VCand3 + VEnBco PorcCand1 ( VCand1 / TotalVElecc ) * 100 PorcCand2 ( VCand2 / TotalVElecc ) * 100 PorcCand3 ( VCand3 / TotalVElecc ) * 100 PorcVEnBco ( VEnBlanco / TotalVElecc ) * 100 PorcCResp (TotalVElecc/TotElectores)*100 PorcCInc 100 PorcCResp Escribir ("Porcentaje ", Candidato1, " = ", PorcCand1) Escribir ("Porcentaje ", Candidato2, " = ", PorcCand2) Escribir ("Porcentaje ", Candidato3, " = ", PorcCand3) Escribir ("Porcentaje de votos en blanco = ", PorcVEnBco) Escribir ("Si votaron = ", PorcCResp, "%") Escribir ("NO votaron = ", PorcCInc, "%") fin /* Parte principal, pide datos de entrada y llama al procedimiento porcentajes al que le pasa los datos de entrada */ Inicio CARACTER Candidato1[15], Candidato2[15], Candidato3[15] ENTERO VCand1, VCand2, VCand3, VEnBco, TotalVElecc, Candidato1 leerEntero("Dar Nombre candidato 1: ") Candidato2 leerEntero ("Dar Nombre candidato 2: ") Candidato3 leerEntero ("Dar Nombre candidato 3: ") VCand1 leerEntero ("Dar votacin de ", Candidato1, ": ") VCand2 leerEntero ("Dar votacin de ", Candidato2, ": ") VCand3 leerEntero ("Dar votacin de ", Candidato3, ": ") VEnBco leerEntero ("Dar votacin en blanco ") Porcentajes(Candidato1, Candidato2, Candidato3, VCand1, Vcand2, Vcand3, VEnBco) FIN.

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin EJERCICIOS PROPUESTOS Analizar problemas y proponer algoritmos de solucin. Considerar el uso de procedimientos y funciones para cada una de las soluciones planteadas conforme sea pertinente.

Ejercicio 1.
Leer 3 variables decimales. Sumarlas, multiplicarlas y dividirlas.

Ejercicio 2.
Disear un algoritmo que permita ingresar un valor inicial y un valor final. Calcular el valor central de los nmeros.

Ejercicio 3.
Construir un algoritmo que calcule e imprima el nmero de segundos que hay en un determinado nmero de das.

Ejercicio 4.
Dada una cantidad en pesos, obtener la equivalencia en dlares, asumiendo que la unidad cambiaria es un dato desconocido.

Ejercicio 5.
Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad invertida.

Ejercicio 6.
Hacer un programa que lea 3 calificaciones y calcule su promedio. Mostrar el resultado de la siguiente manera: Utiliza un escribir para cada calificacin y en uno el promedio.

Ejercicio 7.
En un hospital existen 4 reas. Ginecologa, pediatra, urologa, y traumatologa. El presupuesto anual del hospital se reparte conforme a la siguiente tabla: re a G T U P % del presupuesto 25 15 13 47

Obtener la cantidad del dinero que recibir cada rea para cualquier monto presupuestal.
10

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 8.
Un alumno desea saber cual ser su promedio en las 3 materias mas bonitas que cursa y cual ser el promedio de cada una de ellas estas materias se evalan como se muestra a continuacin. Matematicas Examen 3 tareas % 4 5 5 5 Lab. de programacin Examen 2 tareas % 7 0 3 0 Ingles Examen oral Quiz Examen escrito 2 tareas % 15 30 40 15

Ejercicio 9.
Calcule el nuevo salario de un trabajador si ha obtenido un porcentaje de incremento desconocido sobre su salario anterior. Leer el nombre del trabajador. Referencia: [Joyanes2003] pag. 132 136, [Rivas1985] pag. 87-99.

Tema 2. Estructuras de Seleccin (si-entonces-sino, casos)


Objetivo: El alumno ser capaz de elaborar algoritmos de solucin a problemas en los que se requiere el uso de las estructuras de seleccin o condicionales. Lectura: Estructura selectiva. Se utilizan para tomar decisiones lgicas. En stas se evala una condicin y en funcin del resultado de la misma se realiza una cosa u otra. Las condiciones se especifican usando expresiones lgicas. Las estructuras selectivas pueden ser: simples, dobles o mltiples. Selectivas simples (si). Ejecuta una determinada accin cuando se cumple una determinada condicin. La instruccin evala la condicin y si es verdadera ejecuta la accin de lo contrario no har nada. En pseudocodigo esta sentencia es:
si (condicin) instruccin(es)

Selectiva doble (si - sino). Permite elegir entre dos opciones posibles en funcin del cumplimiento o no de una determinada condicin. Si la
11

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin condicin es verdadera, se ejecuta la accin 1, si es falsa, se ejecuta la accin 2. En pseudocodigo esta sentencia es:
si (condicin) instruccin(es) sino instruccin(es)

Selectivas mltiples (sis anidados o casos). Existen diferentes formas de implementacin para esta estructura aqu se debe seleccionar una de varias acciones a ejecutar dependiendo de una condicin, una de ellas es realizar anidamiento de sentencias if-else. En pseudocodigo esta sentencia es:
si (condicin1) instruccin(es)1 sino si (condicin2) instruccin(es)2 sino si (condicin3) instruccin(es)3 sino ....

Para la sintaxis de cada una de las sentencias selectivas descritas, anteriormente: Condicin.- es una expresin relacional (expresin formada variables o constantes y operadores relacionales). Instruccin(es).- puede ser una sola instruccin o varias instrucciones y en tal caso, es necesario encerrar entre llaves { } estas instrucciones. Otra forma de seleccin mltiple es el uso de la sentencia casos en la que se evaluar el contenido de una variable con respecto a N valores distintos, que pueden ser de tipo carcter o entero, como por ejemplo 1, 2, 3, . N, segn sea el valor en la variable, se realizar una de las N acciones. En pseudocodigo esta sentencia es:
switch (variable) { caso constante1: accin 1 break; caso constante2: accin 2 break; ... caso constanteN: accin N break; default: accion }

Donde: Para cada uno de los casos puede haber una o ms instrucciones que ejecutar. El uso de la opcin default es opcional.. Actividad 1.
12

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin Realizar una funcin para determinar la cantidad a pagar por un estreo, el vendedor ofrece un descuento del 10% sobre el precio sin IVA, de algn aparato si este cuesta $2000 o mas. Adems independientemente de esto ofrece un 5% de descuento si la marca es NOSY. El pago total debe incluir el IVA.
DATOS DE ENTRADA: Valor de aparato (cs fraccionario) Marca de aparato ( ms cadena de texto) PROCESO: Leer cs, ms cscs-(cs*0.10). cscs-(cs*0.05). costocs+(costo*0.15). Mostrar costo DATOS DE SALIDA: Cantidad a pagar(costo fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio fraccionario cs, ms, costo escribir "introducir costo del stereo leer cs escribir "si la marca del stereo es nosy teclee 1" leer ms si(cs>=2000) entonces cscs-(cs*0.10) si(ms==1) entonces cscs-(cs*0.05) fin_si fin_si costocs+(costo*0.15) escribir "el costo del stereo es de ", costo fin

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Parte principal, llama al procedimiento stereo */ inicio stereo() fin // principal /* Procedimiento que pide datos de entrada, realiza el calculo y muestra el resultado. */ procedimiento stereo() inicio fraccionario cs, ms, costo escribir "introducir costo del stereo leer cs escribir "si la marca del stereo es nosy teclee 1"
13

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


leer ms si(cs>=2000) entonces cscs-(cs*0.10) si(ms==1) entonces cscs-(cs*0.05) fin_si fin_si costocs+(costo*0.15) escribir "el costo del stereo es de ", costo fin_procedimiento

Analizar problemas y proponer algoritmos de solucin. Considerar el uso de procedimientos y funciones para cada una de las soluciones planteadas conforme sea pertinente.

Ejercicio 1.
Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto de dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria pero no puede disponer de ella a menos que el monto por hipotecar su casa sea muy pequeo. Si el monto de la hipoteca es menor que 1 milln entonces invertir el 50% de la inversin total y un socio invertir el otro 50%. Si el monto de la hipoteca es de mas de 1 milln, entonces invertir el monto total de la hipoteca y el resto del dinero que necesite para cubrir la inversin total se repartir a partes iguales entre el socio y l.

Ejercicio 2.
Una persona debe determinar la etapa de la vida de las personas que existen en su zona habitacional. Se determinan las categoras con base en la siguiente tabla: CATEGORIA Nios Jvenes Adultos Viejos EDAD 0-12 13-29 30-59 60 en adelante

Ejercicio 3.
Una compaa de seguros esta abriendo un departamento de finanzas y estableci un programa para captar clientes que consiste en lo siguiente: si el monto por el que se efecta la fianza es menor que $50000, la cuota a pagar es el 3% del monto, si el monto es mayor que $50000 la cuota a pagar ser el 2% del monto. La afianzadora desea determinar cual ser la cuota que debe pagar un cliente.

14

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 4.
Una frutera ofrece peras con descuento segn la siguiente tabla: N0 de kilos comprados % de descuento 0.2 0 2.01 5 10 5.01 10 15 10.01 en adelante 20 Determina cuanto pagara una persona que compre peras en esa frutera.

Ejercicio 5.
Realizar una funcin que reciba como parmetros dos valores numricos y uno de tipo carcter la funcin debe retornar el resultado de un clculo, dependiendo el carcter. El carcter puede tener los valores de +, --, /,*, %.

Ejercicio 6.
Realizar una funcin que reciba como parmetro un carcter y dependiendo del carcter, determine el estado civil de una persona. El carcter puede tener como valores U, C, S, V, D, O (Unin libre, Casado, Divorciado, Otro).

Ejercicio 7.
En una llantera se ha establecido una promocin de las llantas marca MORIRAS, dicha promocin consiste en lo siguiente: Si se compran menos de 5 llantas el precio es de $300 c/u, de $250 c/u si se compran de 5 a 10 y de $200 c/u si se compran mas de 10 llantas, obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y lo que tiene que pagar por el total de la compra.

Ejercicio 8.
El dueo de una empresa desea planificar las decisiones financieras que tomara durante el ao la manera de planificar depende de lo siguiente: Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo bancario para que su nuevo saldo sea de $10000. Si su capital tiene un saldo actual positivo pedir un prstamo bancario para tener un nuevo saldo de $20000, pero si su capital actualmente es arriba de los $20000, no pedir ningn prstamo. 5000 para equipo de computo. 2000 para mobiliario. Resto la mitad ser insumo y la otra mitad para entregar incentivos para el personal. Desplegar que cantidades destinaran para la compra de insumos y la entrega de incentivos, en caso que fuera necesario a cuanto ascendera la cantidad que pedira al banco.
15

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 9.
Tomando como base los resultados obtenidos en un laboratorio de anlisis clnicos, un medico determina si tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el medico se basa es la siguiente: Edad Nivel de hemoglobina (8 %) 0 1 mes 13 26 >1 y <=6 meses 10 18 >6 y <=12 meses 11 15 >1 y <=5 aos 11.5 15 >5 y <= 10 aos 12.6 15.5 >10 y <=15 aos 13 15.5 Mujeres > 15 aos 12 16 Hombres > 15 aos 14 18

Ejercicio 10.
Una institucin educativa estableci un programa para estimular a los alumnos con buen rendimiento acadmico y que cosiste en lo siguiente: Si el promedio es de 9.5 o mas y el alumno es de preparatoria, entonces este podr cursar 55 unidades y se le har un 25% de descuento. Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria, entonces este podr cursar 50 unidades y se le har un 10% de descuento. Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podr cursar 50 unidades y no tendr ningn descuento. Si el promedio de 7 o menor, el nmero de materias reprobadas es de 0 a 3 y el alumno es de preparatorio, entonces podr cursar 45 unidades y no tendr descuento. Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 4 o ms y el alumno es de preparatoria, entonces podr cursar 40 unidades y no tendr ni un descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y se le har un 20% de descuento. Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y no tendr descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y tendr descuento del 25%.

16

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin Obtener el total que tendr que pagar un alumno si la colegiatura para alumnos de profesional es de 300 por cada 5 unidades y para alumnos de preparatoria es de 180 por cada 5 unidades.

Ejercicio 11.
En una empresa se requiere calcular el salario semanal de un obrero que labora en ella. Suponiendo que el pago por hora es de $20.00, obtener el salario de la siguiente manera: Las 40 horas de trabajo base, se le pagan $20 por hora. Si trabaja entre 30 y 40 horas se le hace un descuento del 15% del calculo total. Si el trabajador realiz horas extra y estas no exceden de 8, su pago es al doble por cada hora de trabajo. Cuando las horas extras exceden de 8, las primeras 8 se le pagan al doble y el resto al triple, sabiendo que no podrn ser ms de 10 horas. Si trabaja menos de 30 horas, no se le paga nada.

Ejercicio 12.
El Departamento de Seguridad Pblica y Trnsito del D.F. desea saber, para cada auto de la ciudad de Mxico, qu color de calcomana le corresponde. Conociendo el ltimo dgito de la placa de cada automvil se puede determinar el color de la calcomana utilizando la siguiente relacin: Dgito 1o2 3o4 5o6 7o8 9o0 Color Amarilla Rosa Roja Verde Azul

Ejercicio 13.
Hacer una funcin en casos donde reciba la inicial de un color y se describa ese color.

Ejercicio 14.
Cambiar a Casos el programa del estado civil de una persona (ejercicio 7)

Ejercicio 15.
Dada la letra inicial de alguna figura geomtrica (cubo, crculo, triangulo y rectngulo), realizar el clculo correspondiente al rea de la misma.

17

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 16.
Utilizando el programa colores en casos de (ejercicio 14), convertirlo para retornar una cadena.

Ejercicio 17.
Utilizando el programa colores en casos de (ejercicio 15), convertirlo para retornar una cadena.

Referencia: [Joyanes2003] pag. 152 168, [Oviedo2003] pag. 150-155

Tema3. Estructura Repetitiva (Mientras-Hacer, HacerMientras, Desde-Para)


Objetivo: El alumno ser capaz de elaborar algoritmos de solucin a problemas en los que se requiere el uso de las estructuras repetitivas. Lectura: Estructuras repetitivas. Las estructuras repetitivas o ciclos permiten la ejecucin repetida de bloques de sentencias. Existen diferentes tipos de sentencias repetitivas en los lenguajes de programacin, en est cuaderno se implementarn en pseudocdigo las del lenguaje C: para (for), mientras ( while) y hacer... mientras (do...while). Los ciclos de tipo para y mientras comprueban si deben continuar repitiendo la sentencia o bloque de sentencias que forman el cuerpo del ciclo antes de que el cuerpo del ciclo se ejecute, en tanto que el ciclo hacer...mientras lo hace despus de haberlo ejecutado. Otra consideracin a hacer es que se debe utilizar un ciclo para cuando se sabe el nmero de veces que se ha de repetir la ejecucin del cuerpo del ciclo, en tanto que los ciclos mientras y hacer...mientras ser ms adecuado cuando el control de la repeticin del cuerpo del ciclo recae en una condicin. Ciclo mientras. La estructura repetitiva mientras es aquella en que la accin o grupo de acciones se repetir mientras se cumpla la condicin y en el momento en que no se cumpla se saldr del ciclo. Cuando se ejecuta esta instruccin, la primera cosa que sucede es que se evala la condicin, de manera que si esta condicin es falsa el ciclo no se ejecutar ni una vez. En pseudocodigo esta sentencia es:
mientras (condicin) instruccin(es)

Donde:
18

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin El ciclo inicia evaluando la condicin si esta es falsa no se ejecutan las instrucciones que conforman el ciclo y si es verdadera si se ejecutan, de manera que este ciclo puede ejecutarse 0 o N veces. Si se va a ejecutar m{as de una instruccin dentro del ciclo se debe encerrar entre llaves ({ }) el bloque de instrucciones a ejecutar. Ciclo hacer ... mientras. Se ejecuta la primer iteracin y la condicin determinada se comprueba al final del bucle, esto permite que la iteracin se ejecute al menos una vez antes de que la condicin sea evaluada. En pseudocodigo esta sentencia es:
Hacer { instruccin(es) } mientras (condicin);

Donde: El ciclo inicia ejecutando las instrucciones que conforman el ciclo despus de eso llega a evaluar la condicin si esta es falsa termina el ciclo y si es verdadera regresa a ejecutar nuevamente las instrucciones del ciclo, de manera que este ciclo puede ejecutarse de 1 a N veces. Ciclo para. Se utilizan el ciclo para cuando se conoce con certeza el nmero de veces que se desea repetir un bucle. En pseudocodigo esta sentencia es:
Para ( VarCtl = Valor_Inicial; CondicinCierre; instruccin(es) incremento)

Donde: VarCtl es la variable de control del ciclo, inicia con el valor de inicio del ciclo (Valor_Inicial) y con cada iteracin se incrementa con el valor especificado en incremento, regresando a comprobar si ya llego hasta donde debe llegar (CondicionCierre). Actividad 1. Mostrar en pantalla 10 veces la lnea de texto Ring....
DATOS DE ENTRADA: Ninguno. PROCESO: Ninguno. DATOS DE SALIDA: 10 veces la lnez: Ring... PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero i1

19

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


mientras(i<=10) inicio escribir "Ring... i++ fin //de mientras fin //fin de principal

Analizar problemas y proponer algoritmos de solucin. Considerar el uso de procedimientos y funciones para cada una de las soluciones planteadas conforme sea pertinente.

Ejercicio 1.
Realizar una funcin con el ciclo mientras, que muestre los primeros nmeros del 1 al 10 y retorne la suma de ellos.

Ejercicio 2.
Hacer una funcin con el ciclo mientras, que dado un numero entero decimal me muestre los siguientes 20 nmeros pares o impares del numero proporcionado.

Ejercicio 3.
Implemente el ciclo mientras para leer caracteres y finalic cuando se introduzca un *.

Ejercicio 4.
Hacer en un ciclo mientras una funcin que calcule el total de la compra, imprima el iva, con cuanto paga y el cambio.

Ejercicio 5.
Mostrar en pantalla 10 veces la lnea de texto Ring.... utilizando un ciclo hacer mientras.

Ejercicio 6.
Hacer una funcin en el ciclo hacer mientras, nmeros del 1 al 10 y retorne la suma de ellos. que muestre los primeros

Ejercicio 7.
Hacer una funcin con el ciclo hacer - mientras, que dado un numero entero decimal me muestre los siguientes 20 nmeros pares o impares del numero proporcionado.

Ejercicio 8.
Utilizar un ciclo hacer mientras, que introduzca un * . lea caracteres y finalic cuando se
20

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 9.
Realizar un algoritmo que utilice un ciclo mientras en una funcin que calcule el total de la compra, imprima el IVA, con cuanto paga y el cambio.

Ejercicio 10.
Hacer una funcin que imprima los nmeros impares comprendidos entre el 400 y 1100.

Ejercicio 11.
Escribir los 100 nmeros pares proporcionados por el teclado.

Ejercicio 12.
Hacer una funcin que lea N edades y retorne el promedio de ellas.

Ejercicio 13.
Hacer una funcin que lea N cantidad de artculos vendidos y calcule la venta total del impuesto, y las ganancias sabiendo que a cada producto se le gana un 35%.

Ejercicio 14.
Un entrenador ha propuesto a un atleta recorrer una ruta de 5 Km. Durante 10 das, para determinar si es apto para la prueba de 5 Km. O debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones: Que en ninguna de las pruebas haga un tiempo menor a 15 minutos. Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos. Que su promedio de tiempos sea mayor o igual a 15 minutos.

Ejercicio 15.
Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de inters Cul ser la cantidad de dinero que esta persona tendr al cabo de un ao si la ganancia de cada mes es reinvertida?

Ejercicio 16.
Calcule la suma siguiente: 100+99+98+97+96+95+.................+5+4+3+2+1+0.

Ejercicio 17.
Hacer un programa que calcule P = Xy.

Ejercicio 18.
Hacer un programa que calcule S = f/x 1 + f/x2 + - - - - - - - + f/x n. Utilic la funcin del problema (P = X y).
21

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Ejercicio 19.
Leer en un ciclo mientras una cantidad numrica de 3 cifras, realice una funcin que reciba como argumento el numero ledo y retorne la descripcin de la cantidad.

Ejercicio 20.
Leer en un ciclo mientras una cantidad numrica de 3 cifras, realic una funcin que retorne la descripcin de la cantidad en nmeros romanos.

Ejercicio 21.
Hacer un algoritmo que lea 50 consumos en una cafetera si el consumo ingresado excede los 100, se har un descuento de 7%, mostrar todos los pagos desglosados (sobtotal, descuento y total de cada uno) y el pago total o acumulado.

Ejercicio 22.
Dada N notas calcular el promedio de las notas aprobadas y el promedio de las notas desaprobadas.

Ejercicio 23.
A una fiesta asistieron personas de diferentes edades y sexos. Construir un algoritmo dadas las edades y sexos de las personas. Calcular : -Cuantas personas asistieron a la fiesta -Cuantos hombres y cuantas mujeres -Promedio de edades por sexo -La edad de la persona ms joven que asisti -No se permiten menores de edad a la fiesta -Ingresar datos hasta que se ingrese una edad a cero [Joyanes2003], pag. 160 225

22

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

PARTE II. SOLUCIONES Soluciones Ejercicios Secuenciales


Solucin ejercicio 1.
Leer 3 variables decimales. Sumarlas, multiplicarlas y dividirlas.
DATOS DE ENTRADA: Valor numero 1 (valor1 - entero) Valor numero 2 (valor2 entero) Valor numero 3 (valor3 entero) PROCESO: Leer valor1, valor2, valor3 suma valor1 + valor2 + valor3. multip valor1 * valor2 * valor3. divis valor1 / valor2 / valor3. Mostrar resultado DATOS DE SALIDA: Valor de la suma (suma - entero) Valor de la multiplicacin (multip entero) Valor de la divisin (divis - fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio entero valor1, valor2, valor3, suma, multiplicacin; fraccionario division; escribir "Introducir valor1" leer valor1 escribir "Introducir valor2" leer valor2 escribir "Introducir valor3" leer valor3 suma valor1 + valor2 + valor3 multiplicacion valor1 * valor2 * valor3 division valor1 / valor2 / valor3 escribir "La suma es " , suma escribir "La multiplicacion es " , multiplicacion escribir La division es " , division fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e
23

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin /* Funcin que calcula la suma de 3 valores que parmetros y retorna el resultado del calculo. */ entero sumar(entero v1, entero v2, entero v3) entero s s valor1 + valor2 + valor3 retornar s fin

recibe

como

/* Funcin que calcula la multiplicacin de 3 valores que recibe como parmetros y retorna el resultado del calculo. */ entero multip(entero v1, entero v2, entero v3) entero m m valor1 * valor2 * valor3 retornar m fin /* Funcin que calcula la multiplicacin de 3 valores que recibe como parmetros y retorna el resultado del calculo. */ fraccionario divis(entero v1, entero v2, entero v3) entero d d valor1 / valor2 / valor3 retornar d fin /* Procedimiento que muestra el resultado de los clculos realizados, cuyos valores se reciben en los parmetros. */ procedimiento mostrar(entero s, entero m, fraccionario d) escribir "La suma es " , s escribir "La multiplicacion es " , m escribir La division es " , d fin /* Parte principal, primero solicita los valores para realizar los clculos usando la funcin leerEntero a la que le manda como parmetro el mensaje que se visualizar en pantalla, luego realiza cada uno de los clculos llamando a las funciones correspondientes y por ultimo muestra en pantalla el resultado de los clculos realizados usando un procedimiento al que se le pasan los valores */ inicio entero valor1, valor2, valor3, suma, multiplicacin; fraccionario division; valor1 leerEntero("Introducir valor1"); valor2 leerEntero("Introducir valor1"); valor3 leerEntero("Introducir valor1"); suma sumar(valor1, valor2, valor3) multiplicacion multip(valor1, valor2, valor3) division divis(valor1, valor2, valor3) mostrar(suma, multiplicacin, division)
24

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin

Solucin ejercicio 2.
Disear un algoritmo que permita ingresar un valor inicial y un valor final. Calcular el valor central de los nmeros.
DATOS DE ENTRADA: Valor inicial (vi entero) Valor final (vf entero) PROCESO: Leer vi, vf Calcular vc Mostrar vc DATOS DE SALIDA: Valor central (vc fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Entero vi, vf Fraccionario vc escribir "Introducir valor inicial" leer vi escribir "Introducir valor final" leer vf vc (v + vf) / 2 escribir "ValorCentral es igual a " , vc fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Funcin que calcula el valor central, recibe como parmetros el valor inicial y el valor final y retorna el resultado del calculo. */ fraccionario calcula(entero valIni, entero valFin) fraccionario valCen valCen (valIni + valFin) / 2 retornar valCen fin
25

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


/* Procedimiento que muestra el resultado del clculo, se recibe como parmetro el valor. */ procedimiento mostrar(fraccionario valCen) escribir "ValorCentral es igual a " , valCen fin /* Parte principal, primero solicita los valores para realizar el clculo usando la funcin leerEntero a la que le manda como parmetro el mensaje que se visualizar en pantalla, luego realiza el clculo llamando a la funcin calcula y por ultimo muestra en pantalla el resultado */ Inicio Entero vi, vf Fraccionario vc vi leerEntero("Introducir valor inicial") vf leerEntero("Introducir valor final") vc calcula(vi, vf) mostrar(vc) fin

Solucin ejercicio 3.
Construir un algoritmo que calcule e imprima el nmero de segundos que hay en un determinado nmero de das.
DATOS DE ENTRADA: Valor de numero de das (nd entero) PROCESO: Leer nd ns nd * (24 *60 * 60). Mostrar ns DATOS DE SALIDA: Nmero de segundos (ns entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Entero nd, ns escribir "Introducir valor flotante 1" leer valor1 escribir "Introducir valor flotante 2" leer valor2 escribir "Introducir valor3" leer valor3 s valor1 + valor2 + valor3 m valor1 * valor2 * valor3 d valor1 / valor2 / valor3 escribir "La suma total es de ", s escribir "La multiplicacion total es de ", m
26

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "La division total es de ", d

fin

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Funcin que calcula el total de segundos que hay en el nmero de das que se pasa como parmetro a la funcin, retorna el resultado del calculo. */ entero calcula(entero numDias) entero numSeg numSeg numDias *(24 * 60 * 60) retornar numSeg fin /* Procedimiento que muestra el resultado del clculo, se recibe como parmetro el valor. */ procedimiento mostrar(entero numSeg) escribir "Total de segundos = " , numSeg fin /* Parte principal, primero solicita el nmero de das usando la funcin leerEntero a la que le manda como parmetro el mensaje que se visualizar en pantalla, luego realiza el clculo llamando a la funcin calcula y por ultimo muestra en pantalla el resultado */ inicio entero nd, ns nd leerEntero("Teclea el nmero de das: ") ns calcula(nd) mostrar(ns) fin

Solucin ejercicio 4.
Dada una cantidad en pesos, obtener la equivalencia en dlares, asumiendo que la unidad cambiaria es un dato desconocido.
DATOS DE ENTRADA: Cantidad en pesos (cp fraccionarios) equivalencia en dlares (cd - fraccionarios) PROCESO: Leer cd 27

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


ecp/cd Mostrar e

DATOS DE SALIDA: Cantidad en dlares (e fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Fraccionario cp, cd, e escribir "Introducir cantidad en pesos" leer cp escribir Introducir valor del dolar" leer cd e cp / cd escribir El total en dolar es de ", e fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

/* Funcin que calcula el total en dolares, recibe como parmetro el total de pesos, retorna el resultado del calculo. */ fraccionario calcula(fraccionario ps, fraccionario precioD) Fraccionario dolares dolares ps / precioD retornar dolares fin /* Procedimiento que muestra el resultado del clculo, se recibe como parmetro el valor. */ procedimiento mostrar(fraccionario total) escribir El total en dolar es de ", total fin /* Parte principal, primero solicita los datos de entrada usando la funcin leerFracc a la que le manda como parmetro el mensaje que se visualizar en pantalla, luego realiza el clculo llamando a la funcin calcula y por ultimo muestra en pantalla el resultado */ inicio fraccionario cp, cd, e cp leerFracc("Introducir cantidad en pesos") cd leerFracc(Introducir valor del dolar") e calcula(cp, cd)
28

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


mostrar (e)

fin

Solucin ejercicio 5.
Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad invertida.
DATOS DE ENTRADA: Inversin persona 1 (c1 fraccionario) Inversin persona 2 (c2 fraccionario) Inversin persona 3 (c3 fraccionario) PROCESO: Leer c1, c2, c3 s c1 + c2 + c3. P1 c1 / s * 100. P2 c2 / s * 100. P3 c3 / s * 100. Mostrar p1, p2, p3 DATOS DE SALIDA: Porcentaje de inversin persona 1 (p1 fraccionario) Porcentaje de inversin persona 2 (p2 fraccionario) Porcentaje de inversin persona 3 (p3 fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Fraccionario c1, c2, c3, p1, p2, p3 Escribir Introducir primera cantidad leer c1 escribir Introducir segunda cantidad leer c2 escribir Introducir tercera cantidad leer c3 s c1 + c2 + c3 p1 c1 / s * 100 p2 c2 / s * 100 p3 c3 / s * 100 escribir El porcentaje de la persona escribir El porcentaje de la persona escribir El porcentaje de la persona fin

a invertir" a invertir" a invertir"

1 es de ", p1 2 es de ", p2 3 es de ", p3

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f

valor

29

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir mensaje leer f retornar f

fin

/* Procedimiento que calcula el porcentaje de inversin de los 3 inversionistas y muestra estos porcentajes, recibe como parmetros las cantidades de las 3 inversiones. */ Procedimiento porcentajes(fraccionario c1, fraccionario c2, fraccionario c3) Fraccionario p1, p2, p3 s c1 + c2 + c3 p1 c1 / s * 100 p2 c2 / s * 100 p3 c3 / s * 100 escribir El porcentaje de la persona 1 es de ", p1 escribir El porcentaje de la persona 2 es de ", p2 escribir El porcentaje de la persona 3 es de ", p3 dolares ps / precioD retornar dolares fin /* Parte principal, primero solicita los datos de entrada usando la funcin leerFracc a la que le manda como parmetro el mensaje que se visualizar en pantalla, luego realiza el clculo de los porcentajes y muestra el resultado llamando al procedimiento porcentajes */ Inicio Fraccionario c1, c2, c3, p1, p2, p3 C1 leerFracc(Teclea primera cantidad a invertir") C2 leerFracc(Teclea segunda cantidad a invertir") C3 leerFracc(Teclea tercera cantidad a invertir") Porcentajes(c1, c2, c3) fin

Solucin ejercicio 6.
Hacer un programa que lea 3 calificaciones y calcule su promedio. Mostrar el resultado de la siguiente manera: Utiliza un escribir para cada calificacin y uno para el promedio.
DATOS DE ENTRADA: Calificacin 1 (c1 fraccionario) Calificacin 2 (c2 fraccionario) Calificacin 3 (c3 fraccionario) PROCESO: Leer c1, c2, c3 prom ( c1 + c2 + c3 ) / 3. Mostrar c1,c2,c3, prom 30

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


DATOS DE SALIDA: C1, c2, c3 Valor del promedio (prom fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Fraccionario c1, c2, c3, prom escribir Introducir primera calificacin 1" leer c1 escribir Introducir segunda calificacin b" leer c2 escribir Introducir tercera calificacin c" leer c3 prom ( c1 + c2 + c3 ) / 3 escribir La primera calificacin es ", c1 escribir La segunda calificacin es ", c2 escribir La tercera calificacin es ", c3 escribir El promedio es ", prom fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

/* Procedimiento que calcula el promedio de las 3 calificaciones y muestra las calificaciones y el promedio, recibe como parmetros las 3 calificaciones. */ Procedimiento promedio(fraccionario c1, fraccionario c2, fraccionario c3) Fraccionario prom prom (c1 + c2 + c3) / 3 escribir Calificacin 1 es de ", c1 escribir Calificacin 2 es de ", c2 escribir Calificacin 3 es de ", c3 escribir Promedio es de ", prom fin /* Parte principal, primero pide las calificaciones usando la funcin leerFracc a la que le manda como parmetro el mensaje que se visualizar, luego realiza el clculo del promedio y muestra estos datos en el procedimiento promedio */ Inicio Fraccionario c1, c2, c3, prom C1 leerFracc(Teclea calificacin 1: ")
31

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


C2 leerFracc(Teclea calificacin 2: ") C3 leerFracc(Teclea calificacin 3: ") Promedio(c1, c2, c3)

fin

Solucin ejercicio 7.
En un hospital existen 4 reas. Ginecologa, pediatra, urologa, y traumatologa. El presupuesto anual del hospital se reparte conforme a la siguiente tabla: re a G T U P % del presupuesto 25 15 13 47

Obtener la cantidad del dinero que recibir cada rea para cualquier monto presupuestal.
DATOS DE ENTRADA: Valor de presupuesto anual (pa fraccionario) PROCESO: Leer pa dg pa * 0.25. dt pa * 0.15. du pa * 0.13. dp pa * 0.47. Mostrar dg, dt, du, dp DATOS DE SALIDA: Cantidad de dinero Cantidad de dinero Cantidad de dinero Cantidad de dinero para para para para ginecologa (Dg fraccionario) traumatologa (dt fraccionario) urologa (du fraccionario) pediatra (dp fraccionario)

PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Fraccionario pa, dg, dt, du, dp escribir Introducir presupuesto anual" leer pa dg pa * 0.25 dt pa * 0.15 du pa * 0.13 dp pa * 0.47 escribir Ginecologia recibira " , dg escribir Traumatologia recibira " , dt escribir Urologia recibira " , du escribir Pediatria recibira " , dp
32

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

/* Procedimiento que calcula la cantidad de dinero para cada una de las reas, recibe como parmetro el presupuesto. */ Procedimiento dineroAreas(fraccionario presupuesto) Fraccionario dg, dt, du, dp dg presupuesto * 0.25 dt presupuesto * 0.15 du presupuesto * 0.13 dp presupuesto * 0.47 escribir Ginecologia recibira " , dg escribir Traumatologia recibira " , dt escribir Urologia recibira " , du escribir Pediatria recibira " , dp fin /* Parte principal, primero pide las calificaciones usando la funcin leerFracc a la que le manda como parmetro el mensaje que se visualizar, luego realiza el clculo del promedio y muestra estos datos en el procedimiento promedio */ Inicio Fraccionario Pa Pa leerFracc(Introducir presupuesto anual") DineroAreas(Pa) fin

Solucin ejercicio 8.
Un alumno desea saber cual ser su promedio en las 3 materias mas bonitas que cursa y cual ser el promedio de cada una de ellas estas materias se evalan como se muestra a continuacin. Matematicas Examen 3 tareas % 4 5 5 5 Lab. de programacin Examen 2 tareas % 7 0 3 0 Ingles Examen oral Quiz Examen % 15 30 40
33

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin escrito 2 tareas

15

DATOS DE ENTRADA: Calificacin de cada rubro de matemticas (me, a, b, c - fraccionarios) Calificacin de cada rubro de laboratorio de programacin (pe, d, e fraccionarios) Calificacin de cada rubro de ingles (io, iq, ie, f, g - fraccionarios) PROCESO: Leer me, a, b, c, pe, d, e, io, iq, ie, f, g m1 me * 0.45. m2 (a + b + c) / 3 * 0.55. m m1 + m2. p1 pe * 0.70. p2 (d + e) / 2 * 0.30. p p1 + p2. i1 io * 0.15. i2 iq * 0.30. i3 ie * 0.40. i4 (f + g) / 2 * 0.15. i i1 + i2 + i3 + i4. pg (m + p + i) / 3. Mostrar pg DATOS DE SALIDA: Promedio de matemticas (m fraccionario) Promedio de laboratorio de programacin (p fraccionario) Promedio de ingls (I fraccionario) Promedio general (pg fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Fraccionario me, a, b, c, m1, m2,m, pe, d, e, p1, p2, p Fraccionario io, iq, ie, f, e, i1, i2, i3, i4, i, pg escribir Introducir calificacin examen de matematicas" leer me escribir Introducir calificacin tarea 1 de matematicas" leer a escribir Introducir calificacin tarea 2 de matematicas" leer b escribir Introducir calificacin tarea 3 de matematicas" leer c m1 me * 0.45 m2 (a + b + c) / 3 * 0.55 m m1 + m2 escribir Introducir calificacin examen de programacion" leer pe escribir Introducir calificacin tarea 1 de programacion" leer d
34

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir Introducir calificacin tarea 2 de programacion" leer e p1 pe * 0.70 p2 (d + e) / 2 * 0.30 p p1 + p2 escribir Introducir calificacin examen oral de ingles" leer io escribir Introducir calificacin quiz de ingles" leer iq escribir Introducir calificacin examen escrito de ingles" leer ie escribir Introducir calificacin tarea 1 de ingles" leer f escribir Introducir calificacin tarea 2 de ingles" leer e i1 io * 0.15 i2 iq * 0.30 i3 ie * 0.40 i4 (f + g) / 2 * 0.15 i i1 + i2 + i3 + i4 pg (m + p + i) / 3 escribir El promedio de matematicas es de " , m escribir El promedio de programacion es de " , p escribir El promedio de ingles es de " , i escribir El promedio general de las materias es de " , pg

fin

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

/* Funcin que calcula el promedio de matematicas, recibe como parmetros las calificaciones que necesita para el calculo */ Procedimiento matematicas(fraccionario exam, t1, t2, t3) Fraccionario m1, m2, mate m1 exam * 0.45 m2 (t1 + t2 + t3) / 3 * 0.55 mate m1 + m2 retornar mate fin /* Funcin que calcula el promedio de programacion, recibe como parmetros las calificaciones que necesita para el calculo */ Procedimiento programacion (fraccionario exam, t1, t2)
35

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Fraccionario p1, p2, prog p1 exam * 0.70 p2 (t1 + t2) / 2 * 0.30 prog p1 + p2 retornar prog fin /* Funcin que calcula el promedio de ingles, recibe como parmetros las calificaciones que necesita para el calculo */ Procedimiento ingles (fraccionario examO, examQ, examE, t1, t2) Fraccionario p1, p2, prog i1 ExamO * 0.15 i2 ExamQ * 0.30 i3 ExamE * 0.40 i4 (t1 + t2) / 2 * 0.15 ing i1 + i2 + i3 + i4 retornar ing fin /* Parte principal, primero pide las calificaciones usando la funcin leerFracc a la que le manda como parmetro el mensaje que se visualizar, luego realiza el clculo del promedio y muestra estos datos en el procedimiento promedio */ Inicio Fraccionario me, a, b, c, m1, m2,m, pe, d, e, p1, p2, p Fraccionario io, iq, ie, f, e, i1, i2, i3, i4, i, pg Me leerFracc(Dar calificacin examen de matematicas") A leerFracc(Dar calificacin tarea 1 de matematicas") b leerFracc(Dar calificacin tarea 2 de matematicas") c leerFracc(Dar calificacin tarea 3 de matematicas") m matemticas(me, a, b, c) pe leerFracc(Dar calificacin examen de programacion") d leerFracc(Dar calificacin tarea 1 de programacion") e leerFracc(Dar calificacin tarea 2 de programacion") p programacion(pe, d, e) io leerFracc(Dar calificacin examen oral de ingles") iq leerFracc(Dar calificacin quiz de ingles") ie leerFracc(Dar calificacin examen escrito de ingles") f leerFracc(Dar calificacin tarea 1 de ingles") e leerFracc(Dar calificacin tarea 2 de ingles") i ingles(io, iq, ie, f, g) pg (m + p + i) / 3 escribir El promedio de matematicas es de " , m escribir El promedio de programacion es de " , p escribir El promedio de ingles es de " , i escribir El promedio general de las materias es de " , pg fin

36

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 9.
Calcule el nuevo salario de un trabajador si ha obtenido un porcentaje de incremento desconocido sobre su salario anterior. Leer el nombre del trabajador.
DATOS DE ENTRADA: Nombre del trabajador (nt cadena de caracteres) Valor de salario anterior (sa fraccionario) Porcentaje de incremento (pi entero) PROCESO: Leer nt, sa, pi inpi*sa/100. snsa+(sa*pi/100). Mostrar nt, sa, pi, sn DATOS DE SALIDA: Nt Nuevo salario (sn fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Texto nt Fraccionario sa Entero pi escribir Introducir nombre del trabajador" leer nt escribir Introducir salario anterior" leer sa escribir Introducir porcentaje de incremento" leer pi inpi*sa/100 snsa+(sa*pi)/100 escribir nt, Tiene un incremento de ,in , su salario nuevo es de ", sn fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide una cadena de caracteres y retorna el valor ledo, recibe como parmetro una cadena de texto. */ texto leerCaracteres (texto mensaje) texto c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f valor

37

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir mensaje leer f retornar f

fin

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Procedimiento que calcula el nuevo salario, retorna el resultado, recibe como parmetros. */ Procedimiento mostrar (entero porc, fraccionario salAnt, texto nombre) fraccionario nuevo, inc inc porc * salAnt / 100 nuevo salAnt + inc escribir nt, Tiene un incremento de ,in ,y su salario nuevo es de ", sn fin /* Parte principal, primero pide datos de entrada usando las funciones respectivas, luego realiza el clculo del nuevo salario y muestra el resultado en el procedimiento mostrar */ Inicio Texto nt Fraccionario sa Entero pi Nt leerCaracteres(Introducir nombre del trabajador: ") sa leerFracc(Introducir salario anterior: ") pi leerEntero(Introducir porcentaje de incremento: ") mostrar(pi, sa, Nt) fin

Soluciones Ejercicios de Seleccin


Solucin ejercicio 1.
Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto de dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria pero no puede disponer de ella a menos que el monto por hipotecar su casa sea muy pequeo. Si el monto de la hipoteca es menor que 1 milln entonces invertir el 50% de la inversin total y un socio invertir el otro 50%. Si el monto de la hipoteca es de mas de 1 milln, entonces invertir el monto total de la hipoteca y
38

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin el resto del dinero que necesite para cubrir la inversin total se repartir a partes iguales entre el socio y l.
DATOS DE ENTRADA: Monto total de la inversion (mt fraccionario) Monto del banco (mb fraccionario) Monto de la hipoteca (mh fraccionario) PROCESO: Leer mt, mb, mh amt/2. pbmt-mh. rmpb/2. Mostrar a, pb, rm DATOS DE SALIDA: Monto de inversin de nuevos socios (a fraccionario) Prstamo al banco (pb fraccionario) Resto de inversion socios (rm fraccionario) mt. PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio fraccionario mt, mb, mh, a, pb, rm escribir "introducir monto total de la inversion" leer mt escribir "introducir monto en el banco" leer mb escribir "introducir monto de la hipoteca" leer mh si(mh<1000000) entonces amt/2 escribir "necesita un socio y c/socio invertira ", a sino si(mh<mt) entonces pbmt-mh rmpb/2 escribir "Hacer un prestamo al banco de ", pb escribir "el resto cada socio invertira " , rm sino si(mh>=mt) entonces escribir "Se cubre la inversion total de", mt fin_si fin_si fin_si escribir "FELICIDADES ya puede iniciar su negocio" fin
39

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

/* Procedimiento que recibe datos de entrada, realiza clculos y muestra mensajes de acuerdo al resultado de las condiciones evaluadas. */ procedimiento hipoteca(fraccionario mt, fraccionario mb, fraccionario mh) fraccionario a, pb, rm inicio si(mh<1000000) entonces amt/2 escribir "necesita un socio y c/socio invertira ", a sino si(mh<mt) entonces pbmt-mh rmpb/2 escribir "Hacer un prestamo al banco de ", pb escribir "el resto cada socio invertira " , rm sino si(mh>=mt) entonces escribir "Se cubre la inversion total de", mt fin_si fin_si fin_si escribir "FELICIDADES ya puede iniciar su negocio" fin_procedimiento_hipoteca /* Parte principal, pide datos de entrada usando la funcin leerFracc, el procedimiento hipoteca realiza el calculo de montos de inversin necesarios y muestra resultados */ inicio fraccionario mt, mb, mh mt leerFracc("introducir monto total de la inversion") mb leerFracc("introducir monto en el banco") mh leerFracc("introducir monto de la hipoteca") hipoteca(mt, mb, mh) fin // principal

40

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 2.
Una persona debe determinar la etapa de la vida de las personas que existen en su zona habitacional. Se determinan las categoras con base en la siguiente tabla: CATEGORIA Nios Jvenes Adultos Viejos
DATOS DE ENTRADA: Edad (e entero) PROCESO: Leer e Determinar categora comparando e con rangos Mostrar categora DATOS DE SALIDA: Mensaje nio, joven, adulto o viejo PSEUDOCDIGO EN UN SOLO BLOQUE:

EDAD 0-12 13-29 30-59 60 en adelante

inicio entero e escribir "teclee la edad" leer e si(e<=12) entonces escribir "Es un nino" sino si(e<=29) entonces escribir "Es un joven" sino si(e<=59) entonces escribir "Es un adulto" sino escribir "Es un viejo" fin_si fin_si fin_si fin_si fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin
41

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


/* Procedimiento que recibe la edad de acuerdo a las condiciones muestra el mensaje correspondiente a la etapa de vida */ procedimiento etavida(int e) inicio si(e<=12) entonces escribir "Es un nino" sino si(e<=29) entonces escribir "Es un joven" sino si(e<=59) entonces escribir "Es un adulto" sino escribir "Es un viejo" fin_si fin_si fin_si fin_si fin /* Parte principal, pide edad usando la funcin leerEntero, llama al procedimiento etavida al que le pasa la edad leda para que muestre la etapa de vida correspondiente a la edad */ inicio entero e e leerEntero("teclee la edad") etavida(e) fin

Solucin ejercicio 3.
Una compaa de seguros esta abriendo un departamento de finanzas y estableci un programa para captar clientes que consiste en lo siguiente: si el monto por el que se efecta la fianza es menor que $50000, la cuota a pagar es el 3% del monto, si el monto es mayor que $50000 la cuota a pagar ser el 2% del monto. La afianzadora desea determinar cual ser la cuota que debe pagar un cliente.
DATOS DE ENTRADA: Monto de la fianza (mf fraccionario) PROCESO: Leer mf Si mf<50000) o entonces csmf*.03. o sino csmf*.02. Mostrar cs DATOS DE SALIDA: Cuota a pagar (cs fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio fraccionario mf, cs

42

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "introducir el monto de la fianza" leer mf si(mf<=50000) entonces csmf*0.03 sino csmf*0.02 fin_si escribir "la cuota a pagar el cliente es de ", cs fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin //devuelve un valor fraccionario fraccionario compania(fraccionario mf) fraccionario cs inicio si(mf<=50000) entonces csmf*0.03 sino csmf*0.02 fin_si retorna cs fin funcin

valor

/* Parte principal, pide dato de entrada, luego realiza el clculo de la cuota a pagar y muestra el resultado */ inicio fraccionario mf, company mf leerFracc("introducir el monto de la fianza") leer mf company compania(mf) escribir "la cuota a pagar el cliente es de ", company fin // principal

Solucin ejercicio 4.
Una frutera ofrece peras con descuento segn la siguiente tabla: N0 de kilos comprados % de descuento 0.2 0 2.01 5 10 5.01 10 15 10.01 en adelante 20
43

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin Determina cuanto pagara una persona que compre peras en esa frutera.
DATOS DE ENTRADA: Kilos y precio de peras (p, k fraccionario) PROCESO: Leer p, k tpk tp*k tpt-(t/100*10) tp*k tpt-(t/100*15) tp*k tpt-(t/100*20 Mostrar tp DATOS DE SALIDA: Total a pagar (tp fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio fraccionario cfruta, p, k, t, desc, tp escribir "introducir los kilos de peras p" leer p escribir "introducir el precio por kilo de la pera k" leer k t p * k si(p<=2) entonces desc0 sino si(p<=5) entonces desc t/100*10 sino si(p<=10) entonces desc t/100*15 sino si(p>10) entonces desc t/100*20 fin_si fin_si fin_si fin_si tp t - desc escribir "el pago total de las peras es ", tp fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f

valor

44

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


retornar f

fin

/* Funcin que retorna el total a pagar, recibe como parmetro el precio y la cantidad de fruta. */ fraccionario fruteria (fraccionario p, fraccionario k) fraccionario t, tp, desc inicio t p * k si(p<=2) entonces desc0 sino si(p<=5) entonces desc t/100*10 sino si(p<=10) entonces desc t/100*15 sino si(p>10) entonces desc t/100*20 fin_si fin_si fin_si fin_si tp t - desc retorna tp fin funcin /* Parte principal, primero pide datos de entrada usando las funciones respectivas, luego realiza el clculo del nuevo precio y muestra el resultado */ inicio fraccionario cfruta, p, k p leerFracc("introducir los kilos de peras p") k leerFracc("introducir el precio por kilo de la pera k") cfruta fruteria(p, k) escribir "el pago total de las peras es ", cfruta fin // principal

Solucin ejercicio 5.
Realizar una funcin que reciba como parmetros dos valores numricos y uno de tipo carcter la funcin debe retornar el resultado de un clculo, dependiendo el carcter. El carcter puede tener los valores de +, --, /,*, %.
DATOS DE ENTRADA: Carcter de operacin (ca carcter) 2 valores numricos (v1, v2 fraccionarios) PROCESO: Leer ca, v1, v2 Ca+ retorna (v1+v2). Ca- retorna (v1-v2). Ca* retorna (v1*v2). 45

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Ca/ retorna (v1/v2). Ca% retorna (v1%v2).

DATOS DE SALIDA: Valor resultante (resul fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio fraccionario v1, v2, resul caracter ca escribir "teclee carcter de operacion a realizar" leer ca escribir "teclee primer valor a calcular" leer v1 escribir "teclee segundo valor a calcular" leer v2 si(ca=='+') entonces resul v1+v2 sino si(ca=='-') entonces resul v1-v2 sino si(ca=='*') entonces resul v1*v2 sino si(ca=='/') entonces resul v1/v2 sino si(ca=='%') entonces resul v1%v2 fin_si fin_si fin_si fin_si fin_si escribir "el resultado de la operacion es", resul fin // principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f valor

46

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


retornar f

fin

//devuelve el resultado de la operacin respectiva fraccionario operac(fraccionario v1, fraccionario v2, caracter ca) inicio si(ca=='+') entonces retorna(v1+v2) sino si(ca=='-') entonces retorna(v1-v2) sino si(ca=='*') entonces retorna(v1*v2) sino si(ca=='/') entonces retorna(v1/v2) sino si(ca=='%') entonces retorna(v1%v2) fin_si fin_si fin_si fin_si fin_si fin funcin /* Parte principal, primero pide datos de entrada usando las funciones respectivas, luego realiza la operacin respectiva y muestra el resultado */ inicio fraccionario v1, v2, resul caracter ca ca leerCar("teclee carcter de operacion a realizar") v1 leerFracc("teclee primer valor a calcular") v2 leerFracc("teclee segundo valor a calcular") resul operac(v1, v2, ca) escribir "el resultado de la operacion es", resul fin // principal

Solucin ejercicio 6.
Realizar una funcin que reciba como parmetro un carcter y dependiendo del carcter, determine el estado civil de una persona. El carcter puede tener como valores U, C, S, V, D, O.
DATOS DE ENTRADA: Estado civil (e carcter) PROCESO: Leer e Mostrar mensaje comparando e DATOS DE SALIDA: Mensaje unin libre, casado, soltero, viudo, divorciado, otro 47

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio caracter e escribir "teclee u, c, s, v, d, o, segun su estado civil" leer e escribir "Su estado civil es si(e=='u') entonces escribir "union libre" sino si(e=='c') entonces escribir "casado" sino si(e=='s') entonces escribir "soltero" sino si(e=='v') entonces escribir "viudo" sino si(e=='d') entonces escribir "divorciado" sino si(e=='o') entonces escribir "otro" sino escribir "no valido" fin_si // e=='o' fin_si // e=='d' fin_si // e=='v' fin_si // e=='s' fin_si //e=='s' fin_si //e=='u' fin // principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Procedimiento que muestra el estado civil respectivo de acuerdo al carcter recibido como parmetro. */ procedimiento estado(caracter e) inicio si(e=='u') entonces escribir "union libre" sino si(e=='c') entonces escribir "casado" sino si(e=='s') entonces escribir "soltero" sino si(e=='v') entonces escribir "viudo" sino si(e=='d')
48

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


entonces escribir "divorciado" sino si(e=='o') entonces escribir "otro" sino escribir "no valido" fin_si // e=='o' fin_si // e=='d' fin_si // e=='v' fin_si // e=='s' fin_si //e=='s' fin_si //e=='u' fin_procedimiento /* Parte principal, pide carcter correspondiente al estado civil, luego muestra el estado civil */ inicio caracter e escribir "teclee u, c, s, v, d, o, segun su estado civil" leer e escribir "Su estado civil es estado(e) fin // principal

Solucin ejercicio 7.
En una llantera se ha establecido una promocin de las llantas marca MORIRAS, dicha promocin consiste en lo siguiente: Si se compran menos de 5 llantas el precio es de $300 c/u, de $250 c/u si se compran de 5 a 10 y de $200 c/u si se compran mas de 10 llantas, obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y lo que tiene que pagar por el total de la compra.
DATOS DE ENTRADA: Total de llantas (y entero) PROCESO: Leer y ty*300. ty*250. ty*200. Mostrar t DATOS DE SALIDA: Total a pagar (total fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio entero y, t, t escribir("teclee cuantas llantas va a comprar" leer y si(y<5) entonces


49

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


ty*300 escribir "cada llanta cuesta 300 pesos" sino si(y<=10) entonces escribir "cada llanta cuesta 250 pesos" ty*250 sino si(y>10) entonces escribir "cada llanta cuesta 200 pesos" ty*200 fin_si fin_si fin_si escribir " su pago total es de " , t fin //principal //devuelve valor entero funcin llantera(entero y, entero t) inicio si(y<5) entonces ty*300 escribir "cada llanta cuesta 300 pesos" sino si(y<=10) entonces escribir "cada llanta cuesta 250 pesos" ty*250 sino si(y>10) entonces escribir "cada llanta cuesta 200 pesos" ty*200 fin_si fin_si fin_si retorna t fin //fin llantera
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin //devuelve total a pagar entero llantera(entero y, entero t)
50

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


inicio si(y<5) entonces ty*300 escribir "cada llanta cuesta 300 pesos" sino si(y<=10) entonces escribir "cada llanta cuesta 250 pesos" ty*250 sino si(y>10) entonces escribir "cada llanta cuesta 200 pesos" ty*200 fin_si fin_si fin_si retorna t fin //fin llantera /* Parte principal, primero pide total de llantas, luego realiza el clculo y muestra el resultado */ inicio entero y, t, total y leerEntero("teclee cuantas llantas va a comprar") total llantera(y, t) escribir " su pago total es de " , total fin //principal

Solucin ejercicio 8.
El dueo de una empresa desea planificar las decisiones financieras que tomara durante el ao la manera de planificar depende de lo siguiente: Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo bancario para que su nuevo saldo sea de $10000. Si su capital tiene un saldo actual positivo pedir un prstamo bancario para tener un nuevo saldo de $20000, pero si su capital actualmente es arriba de los $20000, no pedir ningn prstamo. 5000 para equipo de computo. 2000 para mobiliario. Resto la mitad ser para insumo y la otra mitad para entregar incentivos para el personal. Desplegar que cantidades destinaran para la compra de insumos y la entrega de incentivos, en caso que fuera necesario a cuanto ascendera la cantidad que pedira al banco.
DATOS DE ENTRADA: Monto de capital (ca fraccionario) PROCESO: Leer ca pb10000-ca. 51

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


pb20000-ca. ii13000/2. ii13000/2. DATOS DE SALIDA: insuin. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio fraccionario ca, resto, pb escribir "cual es su capital" leer ca si(ca<=0) entonces pb10000-ca Resto 7000 escribir "prestamo al banco de , pb sino si(ca<20000) entonces pb20000-ca resto 13000 escribir "prestamo al banco de , pb sino si(ca>=20000) entonces resto ca - 7000 fin_si fin_si fin_si insumos resto/2 incentivos resto/2 escribir "para la compra de insumos " , insumos escribir "para la entrega de incentivos " , incentivos fin // principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin procedimiento finanzas(fraccionario ca) inicio fraccionario pb, resto si(ca<=0) entonces pb10000-ca Resto 7000

valor

52

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "prestamo al banco de , pb sino si(ca<20000) entonces pb20000-ca resto 13000 escribir "prestamo al banco de , pb sino si(ca>=20000) entonces resto ca - 7000 fin_si fin_si fin_si insumos resto/2 incentivos resto/2 escribir "para la compra de insumos " , insumos escribir "para la entrega de incentivos " , incentivos fin finanzas /* Parte principal, primero pide capital usando a funcin leerFracc, luego realiza el clculo y muestra el resultado en el procedimiento finanzas */ Inicio fraccionario ca ca leerFrac("cual es su capital") finanzas(ca, ii) fin // principal

Solucin ejercicio 9.
Tomando como base los resultados obtenidos en un laboratorio de anlisis clnicos, un medico determina si tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el medico se basa es la siguiente: Edad Nivel de hemoglobina (8 %) 0 1 mes 13 26 >1 y <=6 meses 10 18 >6 y <=12 meses 11 15 >1 y <=5 aos 11.5 15 >5 y <= 10 aos 12.6 15.5 >10 y <=15 aos 13 15.5 Mujeres > 15 aos 12 16 Hombres > 15 aos 14 18
DATOS DE ENTRADA: Sexo (s carcter) Edad (e entero) Nivel de hemoglobina (he entero) 53

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


PROCESO: Leer s, e, he Comparar s, e, he: Mostrar mensaje no tiene anemia o tiene anemia DATOS DE SALIDA: Mensaje no tiene anemia o tiene anemia PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter s entero e fraccionario he escribir "dar sexo m=mujeres,h=hombres" leer s escribir "teclee la edad" leer e escribir "teclee el nivel de hemoglobina" leer he si (e>15) entonces si (s==m y he>12) o (s==h y he>14) entonces escribir "no tiene anemia" sino escribir "tiene anemia" fin_si sino si (e>0 y e<=0.1 y he>13) o (e>0.1 y e<=0.6 y he>10) o (e>0.6 y e<=1 y he>11) o (e>1 y e<=5 y he>11.5) o (e>5 y e<=10 y he>12.6) o (e>10 y e<=15 y he>13) entonces escribir "No tiene anemia" sino escribir "Tiene anemia" fin_si fin_si fin //principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin
54

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin

valor

procedimiento analisis(caracter s, entero e, fraccionario he) inicio si (e>15) entonces si (s==m y he>12) o (s==h y he>14) entonces escribir "no tiene anemia" sino escribir "tiene anemia" fin_si sino si (e>0 y e<=0.1 y he>13) o (e>0.1 y e<=0.6 y he>10) o (e>0.6 y e<=1 y he>11) o (e>1 y e<=5 y he>11.5) o (e>5 y e<=10 y he>12.6) o (e>10 y e<=15 y he>13) entonces escribir "No tiene anemia" sino escribir "Tiene anemia" fin_si fin_si fin_procedimiento /* Parte principal, primero pide datos de entrada usando las funciones respectivas, luego en el procedimiento anlisis muestra el mensaje correspondiente de acuerdo a los datos de entrada */ Inicio caracter s entero e fraccionario he s leerCar("dar sexo m=mujeres,h=hombres") e leerEntero("teclee la edad") he leerFrac("teclee el nivel de hemoglobina") analisis(s, e, he) fin //principal

Solucin ejercicio 10.


Una institucin educativa estableci un programa para estimular a los alumnos con buen rendimiento acadmico y que cosiste en lo siguiente: Si el promedio es de 9.5 o mas y el alumno es de preparatoria, entonces este podr cursar 55 unidades y se le har un 25% de descuento. Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria, entonces este podr cursar 50 unidades y se le har un 10% de descuento.
55

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podr cursar 50 unidades y no tendr ningn descuento. Si el promedio de 7 o menor, el nmero de materias reprobadas es de 0 a 3 y el alumno es de preparatorio, entonces podr cursar 45 unidades y no tendr descuento. Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 4 o ms y el alumno es de preparatoria, entonces podr cursar 40 unidades y no tendr ni un descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y se le har un 20% de descuento. Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y no tendr descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podr cursar 55 unidades y tendr descuento del 25%. Obtener el total que tendr que pagar un alumno si la colegiatura para alumnos de profesional es de 300 por cada 5 unidades y para alumnos de preparatoria es de 180 por cada 5 unidades.
DATOS DE ENTRADA: Promedio del alumno (Prom fraccionario) Nmero de materias reprobadas (Mr entero) Nivel actual (Nivel caracter) PROCESO: Leer prom, mr, nivel Calcular col comparando prom, mr, nivel col (55/5)180*0.25 col(55/5)*180*0.10 col(50/5)*180 col(45/5)*180 col(40/5)*180 col(55/5)*300*0.20 col(55/5)*300 Mostrar col DATOS DE SALIDA: Colegiatura a pagar (ine fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero mr caracter nivel fraccionario prom, coleg escribir "teclee el promedio del alumno" leer prom escribir "teclee cuantas materias reprobo" leer mr
56

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "Nivel del alumno p=preparatoria u= profesional" leer nivel si(nivel=='p') entonces si (prom>=9.5) entonces escribir "Cursara 55 unid. desc. 25%" pago (55/5) * 180 desc pago *0.25 coleg pago - desc sino si (prom>=9 y prom<9.5) entonces escribir "Cursara 50 unid. desc. 10%" pago (50/5) * 180 desc pago *0.10 coleg pago - desc sino si(prom>7 y prom<9) entonces escribir "Cursara 50 unid." coleg (50/5) * 180 sino si(nr<3) entonces escribir "Cursara 45 unid." coleg (45/5) * 180 sino escribir "Cursara 40 unid." coleg (40/5) * 180 fin_si /r<3 fin_si //prom>7 fin_si //prom>=9 fin_si //prom>=9.5 sino si p>=9.5 entonces escribir "Cursara 55 unid. desc. 25%" pago (55/5) * 300 desc pago *0.25 coleg pago - desc sino coleg (55/5) * 300 fin_si //nivel=u y p>=9.5 fin_si //nivel=p escribir "Pagara de colegiatura ", coleg fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Texto leerCar (texto mensaje) texto c escribir mensaje leer c retornar c
57

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin valor

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin // devuelve el valor de la colegiatura fraccionario ieducativa(fraccionario prom, entero mr, caracter nivel) inicio fraccionario coleg si(nivel=='p') entonces si (prom>=9.5) entonces escribir "Cursara 55 unid. desc. 25%" pago (55/5) * 180 desc pago *0.25 coleg pago - desc sino si (prom>=9 y prom<9.5) entonces escribir "Cursara 50 unid. desc. 10%" pago (50/5) * 180 desc pago *0.10 coleg pago - desc sino si(prom>7 y prom<9) entonces escribir "Cursara 50 unid." coleg (50/5) * 180 sino si(nr<3) entonces escribir "Cursara 45 unid." coleg (45/5) * 180 sino escribir "Cursara 40 unid." coleg (40/5) * 180 fin_si /r<3
58

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin_si //prom>7 fin_si //prom>=9 fin_si //prom>=9.5 sino si p>=9.5 entonces escribir "Cursara 55 unid. desc. 25%" pago (55/5) * 300 desc pago *0.25 coleg pago - desc sino coleg (55/5) * 300 fin_si //nivel=u y p>=9.5 fin_si //nivel=p retorna colegi fin_ieducativa /* Parte principal, primero pide datos de entrada usando las funciones respectivas, luego realiza el clculo de la colegiatura y muestra el resultado */ Inicio entero mr caracter nivel fraccionario prom, cole, ine prom leerFracc("teclee el promedio del alumno") mr leerEntero("teclee cuantas materias reprobo") nivel leerCar("Nivel alumno p=preparatoria u=profesional)" ine ieducativa(prom, mr, nivel) escribir "Pagara de colegiatura ", ine fin

Solucin ejercicio 11.


En una empresa se requiere calcular el salario semanal de un obrero que labora en ella. Suponiendo que el pago por hora es de $20.00, obtener el salario de la siguiente manera: Las 40 horas de trabajo base, se le pagan $20 por hora. Si trabaja entre 30 y 40 horas se le hace un descuento del 15% del calculo total. Si el trabajador realiz horas extra y estas no exceden de 8, su pago es al doble por cada hora de trabajo. Cuando las horas extras exceden de 8, las primeras 8 se le pagan al doble y el resto al triple, sabiendo que no podrn ser ms de 10 horas. Si trabaja menos de 30 horas, no se le paga nada.

DATOS DE ENTRADA: Total de horas trabajadas (h entero) 59

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


PROCESO: Leer h Segn sea h salarioh*20. salario(h*20)-((h*20)*0.15). heh-40 salario(40*20)+(he*40 heh-48 salario(40*20)+(8*40)+(he*60 mostrar salario DATOS DE SALIDA: salario semanal (ss- fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

inicio entero h fraccionario ss escribir "cuantas horas trabajo a la semana" leer h si(h==40) entonces salarioh*20 sino si(h>=30 y h<40) entonces salario(h*20)-((h*20)*0.15) sino si(h>40 y h<=48) entonces heh-40 salario(40*20)+(he*40) sino si(h>48, h<=50) entonces heh-48 salario(40*20)+(8*40)+(he*60) sino si(h<30) entonces salario0 escribir "Salario del trabajador es ", salario fin //principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide una cadena de caracteres y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Texto leerCaracteres (texto mensaje) texto c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ valor
60

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin /* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin //devuelve el valor del salario fraccionario ssemanal(entero h) fraccionario salario entero he inicio si(h==40) entonces salarioh*20 sino si(h>=30 y h<40) entonces salario(h*20)-((h*20)*0.15) sino si(h>40 y h<=48) entonces heh-40 salario(40*20)+(he*40) sino si(h>48, h<=50) entonces heh-48 salario(40*20)+(8*40)+(he*60) sino si(h<30) entonces salario0 retorna salario fin_semanal /* Parte principal, pide las horas de trabajo, luego realiza el clculo del nuevo salario y muestra el resultado */ inicio entero h fraccionario ss h leerEntero("cuantas horas trabajo a la semana") ss ssemanal(h) escribir "Salario del trabajador es ", ss fin //principal

61

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 12.


El Departamento de Seguridad Pblica y Trnsito del D.F. desea saber, para cada auto de la ciudad de Mxico, qu color de calcomana le corresponde. Conociendo el ltimo dgito de la placa de cada automvil se puede determinar el color de la calcomana utilizando la siguiente relacin: Dgito 1o2 3o4 5o6 7o8 9o0 Color Amarilla Rosa Roja Verde Azul

DATOS DE ENTRADA: Nmero de placa (placa arreglo de caracteres) PROCESO: Leer placa Determinar ltimo dgito de placa mostrar color correspondiente DATOS DE SALIDA: Mensaje amarilla, rosa, roja, verde o azul PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter placa[7] escribir "teclee los digitos de la placa del automovil" leer placa casos de(placa[6]) inicio caso '1': caso '2': escribir "Color de calcomania amarilla" break caso '3': caso '4': escribir "Color de calcomania rosa" break caso '5': caso '6': escribir "Color de calcomania roja" break caso '7': caso '8': escribir "el color de calcomania verde" break caso '9': caso '0': escribir "Color de calcomania azul" break fin_casos fin
62

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide una cadena de caracteres y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Texto leerCaracteres (texto mensaje) texto c escribir mensaje leer c retornar c fin procedimiento transito(caracter placa[7]) inicio casos de(placa[6]) inicio caso '1': caso '2': escribir "Color de calcomania amarilla" break caso '3': caso '4': escribir "Color de calcomania rosa" break caso '5': caso '6': escribir "Color de calcomania roja" break caso '7': caso '8': escribir "el color de calcomania verde" break caso '9': caso '0': escribir "Color de calcomania azul" break fin_casos fin_transito //fin procedimiento /* Parte principal, pide digitos de la placa, luego en el procedimiento transito muestra el color de calcomana respectivo*/ Inicio caracter placa[7] placa leerCaracteres("teclee los digitos de la placa") transito(placa) fin //fin de principal

Solucin ejercicio 13.


Hacer una funcin en casos donde reciba la inicial de un color y se describa ese color.
DATOS DE ENTRADA: Inicial del color (color- carcter) 63

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


PROCESO: Leer color Mostrar mensaje comparando color DATOS DE SALIDA: Mensaje amarillo, naranja, verde, blanco, rojo o ERROR_letra no valida. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter color escribir "teclee letra para color" leer color colores(color) fin //principal procedimiento colores(caracter color) inicio casos de (color) inicio caso 'a': caso 'A': escribir "su color favorito es break caso 'n': caso 'N': escribir "su color favorito es break caso 'v': caso 'V': escribir "su color favorito es break caso 'b': caso 'B': escribir "su color favorito es break caso 'r': caso 'R': escribir "su color favorito es break default: escribir "ERROR_letra fin// fin casos de fin// fin colores
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

amarillo" naranja" verde" blanco" rojo" no valida"

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Texto leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin
64

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


procedimiento inicio casos de inicio caso caso colores(caracter color) (color) "su color favorito es amarillo" "su color favorito es naranja" "su color favorito es verde" "su color favorito es blanco" "su color favorito es rojo" escribir "ERROR_letra no valida"

'a': 'A': escribir break caso 'n': caso 'N': escribir break caso 'v': caso 'V': escribir break caso 'b': caso 'B': escribir break caso 'r': caso 'R': escribir break default: fin// fin casos de fin// fin colores

/* Parte principal, primero pide inicial de color, luego en el procedimiento colores muestra el nombre del color */ Inicio caracter color color leerCar("teclee letra para color") colores(color) fin

Solucin ejercicio 14.


Cambiar a Casos el programa del estado civil de una persona (ejercicio 7)
DATOS DE ENTRADA: Estado civil (e carcter) PROCESO: Leer e Mostrar mensaje comparando e DATOS DE SALIDA: Mensaje unin libre, casado, soltero, viudo, divorciado, otro PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter e escribir "teclee u, c, s, v, d, o, segun estado civil" leer e casos de (e)
65

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


inicio caso 'u': caso 'U': escribir break caso 'c': caso 'C': escribir break caso 's': caso 'S': escribir break caso 'v': caso 'V': escribir break caso 'd': caso 'D': escribir break caso 'o': caso 'O': escribir break default: fin// fin de casos fin

"union libre es su estado civil" "casado es su estado civil" "soltero es su estado civil" "viudo es su estado civil" "divorciado es su estado civil" "otro es su estado civil" escribir "ERROR_letra no valida"

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Procedimiento que muestra el estado civil respectivo de acuerdo al carcter recibido como parametro. */ procedimiento estado(caracter e) inicio casos de (e) inicio caso 'u': caso 'U': escribir "union libre es su estado civil" break caso 'c': caso 'C': escribir "casado es su estado civil" break caso 's': caso 'S': escribir "soltero es su estado civil" break caso 'v':
66

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


caso 'V': escribir break caso 'd': caso 'D': escribir break caso 'o': caso 'O': escribir break default: fin// fin de casos fin// fin estado "viudo es su estado civil" "divorciado es su estado civil" "otro es su estado civil" escribir "ERROR_letra no valida"

/* Parte principal, primero pide la letra del estado civil, luego en el procedimiento estado muestra el estado civil respectivo */ Inicio caracter e e leerCar("teclee u, c, s, v, d, o, segun estado civil") estado(e) fin

Solucin ejercicio 15.


Dada la letra inicial de alguna figura geomtrica (cubo, crculo, triangulo y rectngulo), realizar el clculo correspondiente al rea de la misma.
DATOS DE ENTRADA: Inicial de la figura geomtrica (lo carcter) PROCESO: Leer lo Determinar calculo a realizar de acuerdo a lo bl*l*l. t(b*h)/2. c3.1416*(r*r). rb*h mostrar area resultante DATOS DE SALIDA: rea de la figura elegida (b, t, c, r fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter lo fraccionario l, b, h, t, r, c escribir "teclee inicial de la figura geometrica" leer lo casos de (lo) inicio caso 'B': caso 'b': escribir "teclee medida del lado" leer l
67

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


bl*l*l escribir "el area del cubo es ", b break escribir "teclee medida de la base" leer b escribir "teclee medida de la altura" leer h t(b*h)/2 escribir "el area del triangulo es ", t break escribir "teclee el radio" leer r c3.1416*(r*r) escribir "el area del circulo es ", c break escribir leer b escribir leer h rb*h escribir break default: escribir fin //fin de casos fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

caso 'T': caso 't':

caso 'C': caso 'c':

caso 'R': caso 'r':

"teclee medida de la base" "teclee medida de la altura" "el area del rectangulo es ", r "ERROR_letra no valida"

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin procedimiento operaciones(caracter lo)
68

valor

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


inicio casos de (lo) inicio caso 'B': caso 'b': cubo() break caso 'T': caso 't': triangulo() break caso 'C': caso 'c': circulo() break caso 'R': caso 'r': rectangulo() break default: escribir "ERROR_letra no valida" fin //fin de casos fin procedimiento cubo() inicio fraccionario l, b escribir "teclee medida del lado" leer l bl*l*l escribir "el area del cubo es ", b fin //fin de procedimiento cubo procedimiento triangulo() inicio fraccionario b, h, t b leerFracc("teclee medida de la base") h leerFracc("teclee medida de la altura" t(b*h)/2 escribir "el area del triangulo es ", t fin //fin de procedimiento triangulo procedimiento circulo() inicio fraccionario r, c r leerFracc("teclee el radio") c3.1416*(r*r) escribir "el area del circulo es ", c retorna fin //fin de procedimiento circulo procedimiento rectangulo() inicio fraccionario b, h, r b leerFracc("teclee medida de la base")
69

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


h leerFracc("teclee medida de la altura") rb*h escribir "el area del rectangulo es ", r fin //fin de procedimiento rectangulo /* Parte principal, primero pide la letra del estado civil, luego en el procedimiento estado muestra el estado civil respectivo */ Inicio caracter lo lo leerCar("teclee inicial de la figura geometrica") operaciones(lo) fin //principal

Solucin ejercicio 16.


Utilizando el programa colores en casos de (ejercicio 15), convertirlo para retornar una cadena.
DATOS DE ENTRADA: Estado civil (e carcter) PROCESO: Leer e Mostrar mensaje comparando e DATOS DE SALIDA: Mensaje unin libre, casado, soltero, viudo, divorciado, otro PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter color escribir "teclee letra para el color deseado" leer color escribir "su color favorito es " casos de (color) inicio caso 'a': caso 'A': retorna "amarillo" break caso 'n': caso 'N': retorna "naranja" break caso 'v': caso 'V': retorna "verde" break caso 'b': caso 'B': retorna "blanco" break caso 'r': caso 'R': retorna "rojo" break
70

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


default: retorna "ERROR_letra no valida" fin// fin de casos fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin caracter *colores(caracter color) inicio casos de (color) inicio caso 'a': caso 'A': retorna "amarillo" break caso 'n': caso 'N': retorna "naranja" break caso 'v': caso 'V': retorna "verde" break caso 'b': caso 'B': retorna "blanco" break caso 'r': caso 'R': retorna "rojo" break default: retorna "ERROR_letra no valida" fin// fin de casos fin// fin colores /* Parte principal, primero pide la letra del color, luego muestra el nombre del color llamando a la funcin colores a la que le pasa la letra del color deseado */ Inicio caracter color color leerCar("teclee letra para el color deseado") escribir "su color favorito es ", colores(color) fin //fin de principal

Solucin ejercicio 17.


utilizando el programa estado civil en casos de (ejercicio 14), convertirlo para retornar una cadena.
71

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


DATOS DE ENTRADA: Estado civil (e carcter) PROCESO: Leer e Mostrar mensaje comparando e DATOS DE SALIDA: Mensaje unin libre, casado, soltero, viudo, divorciado, otro PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter e escribir "teclee u, c, s, v, d, o segn su estado civil" leer e escribir "su estado civil es %s" casos de (e) inicio caso 'u': caso 'U': retorna "union libre" break caso 'c': caso 'C': retorna "casado" break caso 's': caso 'S': retorna "soltero" break caso 'v': caso 'V': retorna "viudo" break caso 'd': caso 'D': retorna "divorciado" break caso 'o': caso 'O': retorna "otro" break default: retorna "ERROR_letra no valida" fin// fin de casos fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin caracter *estado(caracter e)
72

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


inicio casos de (e) inicio caso 'u': caso 'U': retorna "union libre" break caso 'c': caso 'C': retorna "casado" break caso 's': caso 'S': retorna "soltero" break caso 'v': caso 'V': retorna "viudo" break caso 'd': caso 'D': retorna "divorciado" break caso 'o': caso 'O': retorna "otro" break default: retorna "ERROR_letra no valida" fin// fin casos de fin// fin estado /* Parte principal, primero pide la letra del estado civil, luego muestra el estado civil llamando a la funcin estado a la que le pasa la letra del estado civil */ Inicio caracter e escribir "teclee u, c, s, v, d, o segn su estado civil" leer e escribir "su estado civil es %s", estado(e) fin //fin de principal

Soluciones Ejercicios Estructura Repetitiva


Solucin ejercicio 1.
Realizar una funcin con el ciclo mientras, que muestre los primeros nmeros del 1 al 10 y retorne la suma de ellos.
DATOS DE ENTRADA: Ninguno. PROCESO: Mostrar los nmeros del 1 al 10, ir sumando nmeros Mostrar suma 73

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


DATOS DE SALIDA: Suma total (Sumat entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero suma0 entero n1 mientras(n<=10) inicio escribir "numero ", n sumasuma+n n n+1 fin //fin de mientras escribir "Suma total es de " , sumat fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que muestra los nmeros del 1 al 10 y retorna la suma de los mismos. */ funcin suma() inicio entero suma0 entero n1 mientras(n<=10) inicio escribir "numero ", n sumasuma+n n n+1 fin //fin de mientras retorna suma fin //fin de funcin suma /* Parte principal, llama a la funcin suma y luego muestra el total de la suma */ Inicio entero sumat sumat suma() escribir "Suma total es de " , sumat fin //fin de principal

Solucin ejercicio 2.
Hacer una funcin con el ciclo mientras, que dado un numero entero decimal me muestre los siguientes 20 nmeros pares o impares del numero proporcionado.
DATOS DE ENTRADA: Nmero (n entero) PROCESO: Leer n Mostrar 20 nmeros pares o impares despus de nmero. 74

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


DATOS DE SALIDA: 20 nmeros pares o impares despus de nmero. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero h1 entero n escribir "ingresar numero" leer n mientras(h<=20) inicio nn+2 escribir " numero ", n h++ fin //fin de mientras fin //fin de principal

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* procedimiento que muestra los 20 siguientes nmeros pares o impares de un nmero dado. */ procedimiento contador(entero n) inicio entero h1 mientras(h<=20) inicio nn+2 escribir " numero ", n h++ fin //fin de mientras retorna fin //fin de procedimiento contador /* Parte principal, pide el valor de n y llama al procedimiento contador */ Inicio n leerEntero("ingresar numero") contador(n) fin //fin de principal

75

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 3.
Implemente el ciclo mientras para leer caracteres y finalic cuando se introduzca un *.
DATOS DE ENTRADA: Carcter ledo (cad carcter) PROCESO: Mientras cad sea dif. De * leer cad. DATOS DE SALIDA: ninguno. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio caracter cad x mientras(cad != '*') inicio escribir "teclee caracter " leer cad fin //fin de mientras fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin procedimiento caracteres() inicio caracter cad x mientras(cad != '*') inicio cad leerCar("teclee caracter ") fin //fin de mientras retorna fin //fin de procedimiento caracteres /* Parte principal, llama al procedimiento caracteres */ Inicio caracteres() fin //fin de principal

76

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 4.
Hacer en un ciclo mientras una funcin que calcule el total de la compra, imprima el iva, con cuanto paga y el cambio.
DATOS DE ENTRADA: Respuesta continuar (cad carcter) monto de la venta (m fraccionario) Cantidad de pago (cp fraccionario) PROCESO: Leer m, cp ivam*0.15. tpm+iva. cambiocp-tp. cajacaja+tp. Mostrar iva, cp, cambio, caja DATOS DE SALIDA: Monto del IVA (iva fraccionario) Cantidad de cambio (cambio - fraccionario) Cantidad acumulada en caja (caja fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio fraccionario caja0 caracter cad escribir "desea realizar venta s=si, n=no leer cad mientras(cad=='s' o cad=='S') inicio fraccionario m, iva, tp, cp, cambio escribir " teclee el monto de la venta" leer m ivam*0.15 escribir " el iva es de ", iva tpm+iva escribir " el total a pagar es de ", tp escribir " teclee cantidad con que paga el cliente" leer cp cambio cp - tp escribir " el cambio es de ", cambio caja caja + tp escribir " desea realizar venta s=si, n=no" leer cad fin //fin de mientras escribir " el monto total de la caja es de ", caja fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES: 77

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fracionario y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Fraccionario leerFracc (texto mensaje) Fraccionario f escribir mensaje leer f retornar f fin procedimiento tienda() inicio fraccionario caja0 caracter cad cad leerCar("desea realizar venta s=si, n=no) mientras(cad=='s' o cad=='S') inicio fraccionario m, iva, tp, cp, cambio m leerFracc(" teclee el monto de la venta") ivam*0.15 escribir " el iva es de ", iva tpm+iva escribir " el total a pagar es de ", tp cp leerFracc("teclee cantidad con que paga el cliente") cambio cp - tp escribir " el cambio es de ", cambio caja caja + tp cad leerCar(" desea realizar venta s=si, n=no") fin //fin de mientras escribir " el monto total de la caja es de ", caja fin//fin de procedimiento tienda /* Parte principal, llama al procedimiento tienda */ Inicio tienda() fin //fin de principal

Solucin ejercicio 5.
Mostrar en pantalla 10 veces la lnea de texto Ring.... utilizando un ciclo hacer mientras.
78

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


DATOS DE ENTRADA: Ninguno. PROCESO: Ninguno. DATOS DE SALIDA: 10 veces el mensaje Ring.... PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero i5 hacer escribir "ring..." i i+1 mientras(i<=10) retorna fin //fin de principal

Solucin ejercicio 6.
Hacer una funcin en el ciclo hacer mientras, nmeros del 1 al 10 y retorne la suma de ellos.
DATOS DE ENTRADA: Ninguno. PROCESO: Mostrar los nmero del 1 al 10 Mostrar sumat DATOS DE SALIDA: Nmeros del 1 al 10 Suma de los primeros 10 nmeros (sumat entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

que muestre los primeros

Inicio entero suma0 entero n1 hacer sumasuma+n escribir "numero ", n n n+1 mientras(n<=10) escribir "la suma total es de ", suma fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que devuelve el valor de la suma de los nmeros del 1 al 10 */ funcin suma() inicio
79

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


entero suma0 entero n1 hacer sumasuma+n escribir "numero n n+1 mientras(n<=10) retorna suma fin

", n

/* Parte principal, recibe el valor de la funcin suma y muestra el resultado */ Inicio entero sumat sumat suma() escribir "la suma total es de ", sumat fin //fin de principal

Solucin ejercicio 7.
Hacer una funcin con el ciclo hacer - mientras, que dado un numero entero decimal me muestre los siguientes 20 nmeros pares o impares del numero proporcionado.
DATOS DE ENTRADA: Nmero entero decimal (n entero) PROCESO: Leer n Mostrar 20 nmero pares o impares DATOS DE SALIDA: 20 nmeros pares o impares. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero h1 entero n escribir "ingresar numero" leer n hacer nn+2 escribir " numero ", n hh+1 mientras(h<=20) fin //fin de principal

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje)
80

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Entero e escribir mensaje leer e retornar e fin procedimiento contador(entero n) inicio entero h1 hacer nn+2 escribir " numero ", n hh+1 mientras(h<=20) retorna fin /* Parte principal, pide el valor de n y llama al procedimiento contador */ Inicio entero n n leerEntero("ingresar numero") contador(n) fin //fin de principal

Solucin ejercicio 8.
Utilizar un ciclo hacer mientras, que introduzca un * .
DATOS DE ENTRADA: Carcter ledo (cad carcter) PROCESO: Hacer leer cad Mientras cad sea dif. De * . DATOS DE SALIDA: ninguno. PSEUDOCDIGO EN UN SOLO BLOQUE:

lea caracteres y finalic cuando se

Inicio caracter cad hacer escribir "teclee caracter leer cad mientras(cad != '*') fin //fin de principal

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */
81

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin procedimiento caracteres() inicio caracter cad hacer cad leerCar("teclee caracter ) mientras(cad != '*') retorna fin //fin procedimiento caracteres /* Parte principal, llama al procedimiento caracteres */ Inicio caracteres() fin //fin de principal

Solucin ejercicio 9.
Realizar un algoritmo que utilice un ciclo mientras en una funcin que calcule el total de la compra, imprima el IVA, con cuanto paga y el cambio.
DATOS DE ENTRADA: Respuesta para continuar (cad carcter) Monto de venta (m fraccionario) Cantidad pagada (cp fraccionario) PROCESO: Leer cad, m, cp ivam*0.15. tpm+iva. cambiocp-tp. cajacaja+tp. Mostrar iva, tp, cambio, caja DATOS DE SALIDA: Cantidad de IVA (iva fraccionario) Total a pagar (tp fraccionario) Cantidad de cambio (cambio fraccionario) Respuesta de salida (cad carcter) Monto total en caja (caja faccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio fraccionario caja0 caracter cad

82

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "desea realizar venta s/n" leer cad hacer fraccionario m, iva, tp, cp, cambio escribir " teclee el monto de la venta" leer m iva m*0.15 escribir " el iva es de ", iva tpm+iva escribir " el total a pagar es de ", tp escribir " teclee cantidad con que paga el cliente" leer cp cambio cp-tp escribir " el cambio es de ", cambio escribir " desea realizar venta s/n " leer cad caja caja+tp mientras(cad=='s') escribir " el monto total de la caja es de ", caja fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor fraccionario y retorna ledo, recibe como parmetro una cadena de texto. */ fraccionario leerFracc (texto mensaje) fraccionario f escribir mensaje leer f retornar f fin procedimiento tienda() inicio fraccionario caja0 caracter cad cad leerCar("desea realizar venta s/n") hacer fraccionario m, iva, tp, cp, cambio m leerFracc(" teclee el monto de la venta") iva m*0.15 escribir " el iva es de ", iva
83

el valor

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


tpm+iva escribir " el total a pagar es de ", tp cp leerFracc(" teclee cantidad con que paga el cliente") cambio cp-tp escribir " el cambio es de ", cambio cad leerCar(" desea realizar venta s/n ") caja caja+tp mientras(cad=='s') escribir " el monto total de la caja es de ", caja fin //fin de procedimiento tienda /* Parte principal, pide el valor de n y llama al procedimiento contador */ Inicio tienda() fin //fin de principal

Solucin ejercicio 10.


Hacer una funcin que imprima los nmeros impares comprendidos entre el 400 y 1100.
DATOS DE ENTRADA: Ninguno. PROCESO: Ninguno. DATOS DE SALIDA: Nmeros impares que hay entre 400 y 1100. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio impares() fin //fin de principal

procedimiento impares() inicio entero i para i desde 401 hasta 1100, inc. En 2, hacer escribir i, " " fin //fin de procedimiento impares
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Procedimiento que muestra en un ciclo para los nmeros que hay desde el 401 hasta el 1100 incrementando de 2 en 2. */ procedimiento impares() inicio entero i para i desde 401 hasta 1100, inc. En 2, hacer escribir i, " "
84

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


fin //fin de procedimiento impares /* Parte principal, llama al procedimiento impares */ Inicio impares() fin //fin de principal

Solucin ejercicio 11.


Escribir los 100 nmeros pares proporcionados por el teclado.
DATOS DE ENTRADA: Nmero dado (n entero) PROCESO: ninguno. DATOS DE SALIDA: Mostrar pares (n entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero n, i para I desde 1 hasta 100, hacer inicio escribir "ingresar numero" leer n si ((n mod 2)!= 1) entonces escribir "el es numero par" , n ii+1 fin_si fin_para fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin procedimiento pares() inicio entero n, i para I desde 1 hasta 100, hacer inicio n leerEntero("ingresar numero")
85

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


si ((n mod 2)!= 1) entonces escribir "el %d es numero par" , n ii+1 fin_si fin_para fin //fin del procedimiento pares /* Parte principal, llama al procedimiento pares */ Inicio pares() fin //fin de principal

Solucin ejercicio 12.


Hacer una funcin que lea N edades y retorne el promedio de ellas.
DATOS DE ENTRADA: Total de edades (e entero) Edad de cads uno (ed entero) PROCESO: Leer e Desde 1 hasta e Leer ed sumasuma+ed promsuma/e Mostrar prom DATOS DE SALIDA: tedades. PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio fraccionario prom entero e, suma0 entero i, ed escribir "cuantas edades a calcular" leer e para i desde 1 hasta e, inc en 1, hacer inicio escribir "ingresar edad" leer ed suma suma+ed fin promsuma/e escribir "el promedio de las edades es de ", prom fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */
86

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin //Devuelve el promedio del total de edades fraccionario edades(entero e) inicio entero suma0 entero i, ed fraccionario prom para i desde 1 hasta e, inc en 1, hacer inicio ed leerEntero("ingresar edad") suma suma+ed fin promsuma/e retorna prom fin //fin de funcin edades /* Parte principal, pide el total de edades, llama a la funcin edades y muestra el promedio de edades dadas */ Inicio fraccionario tedades entero e e leerEntero("cuantas edades a calcular") tedades edades(e) escribir "el promedio de las edades es de ", tedades fin //fin de principal

Solucin ejercicio 13.


Hacer una funcin que lea N cantidad de artculos vendidos y calcule la venta total del impuesto, y las ganancias sabiendo que a cada producto se le gana un 35%.
DATOS DE ENTRADA: total de artculos (N entero) Costo de cada producto (cp fraccionario) PROCESO: Leer a Desde 1 hasta N o Leer cp o sumasuma+cp ventaim(suma*0.35)+suma gananciaventaim-suma Mostrar ventaim, ganancia DATOS DE SALIDA: Total de venta menos impuestos (ventaim fraccionario) 87

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Total de ganancia (ganancia fraccionario)

PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero suma0 fraccionario cp, ventaim, ganancia entero i, N escribir "cuantos articulos vendidos" leer N para i desde 1 hasta N, inc en 1, hacer inicio escribir "teclee costo del producto" leer cp sumasuma+cp fin ventaim (suma*0.35)+suma ganancia ventaim-suma escribir "Venta total con el impuesto es de ", ventaim escribir "la ganancia total es de " , ganancia fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ fraccionario leerFracc (texto mensaje) fraccionario f escribir mensaje leer f retornar f fin procedimiento articulos(entero N) inicio entero i, suma0 fraccionario cp, ventaim, ganancia para i desde 1 hasta N, inc en 1, hacer inicio cp leerFracc("teclee costo del producto") sumasuma+cp fin ventaim (suma*0.35)+suma ganancia ventaim-suma
88

valor

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "Venta total con el impuesto es de ", ventaim escribir "la ganancia total es de " , ganancia retorna fin //fin de procedimiento articulos /* Parte principal, pide el valor de n y llama al procedimiento articulos */ Inicio entero n n leerEntero("cuantos articulos vendidos: ") articulos(n) fin //fin de principal

Solucin ejercicio 14.


Un entrenador ha propuesto a un atleta recorrer una ruta de 5 Km. Durante 10 das, para determinar si es apto para la prueba de 5 Km. O debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones: Que en ninguna de las pruebas haga un tiempo menor a 15 minutos. Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos. Que su promedio de tiempos sea mayor o igual a 15 minutos.
DATOS DE ENTRADA: Tiempo en cada uno de los das (t entero) PROCESO: Desde 1 hasta 10 Leer t menormenor+1. Mayor mayor + 1 Pt pt + t promediopt/10 Mostrar mensaje DATOS DE SALIDA: Mensaje es apto para la prueba o no es apto para la prueba PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero t, i, pt entero menor0 entero mayor0 entero promedio0 para I desde 1 hasta 10, inc en 1, hacer inicio escribir "en que tiempo realizo la prueba" leer t menor t si(t<15)
89

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


entonces romper ciclo para sino si(t>16) entonces mayor mayor + 1 fin_si pt pt + t fin_si fin_para promediopt/10 si(mayor>=1 y pt>=15 y menor<15) entonces Escribir es apto para la prueba sino Escribir No es apto para la prueba fin_si fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin //devuelve 1 si es apto y 0 si no es apto entero atleta() inicio entero t, i, pt entero menor0 entero mayor0 entero promedio0 para I desde 1 hasta 10, inc en 1, hacer inicio t leerEntero("en que tiempo realizo la prueba") si(t<15) entonces retorna 0 sino si(t>16) entonces mayor mayor + 1 fin_si pt pt + t fin_si fin_para promediopt/10 si(mayor>=1 y promedio>=15) entonces retorna 1 sino retorna 0 fin_si fin //fin de funcin

90

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


/* Parte principal, llama a la funcin atleta esta devuelve 0 si no es apto 1 si es apto */ Inicio Entero apto Apto atleta() Si (apto == 1) Entonces Escribir es apto para la prueba Sino Escribir No es apto para la prueba fin //fin de principal

Solucin ejercicio 15.


Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de inters Cul ser la cantidad de dinero que esta persona tendr al cabo de un ao si la ganancia de cada mes es reinvertida?
DATOS DE ENTRADA: Cantidad de dinero inicial (c fraccionario) PROCESO: Leer c Desde 0 hasta 12 hacer cc*0.02+c. Mostrar c DATOS DE SALIDA: Cantidad de dinero final (c fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio fraccionario i, c0 escribir "que cantidad va a invertir" leer c para i desde 0 hasta 12, inc en 1, hacer inicio cc*0.02+c fin_para escribir "obtendra la cantidad de ", c fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ fraccionario leerFracc (texto mensaje) fraccionario f escribir mensaje leer f retornar f fin

valor

91

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


procedimiento banco() inicio fraccionario i, c0 c leerFracc("que cantidad va a invertir") para i desde 0 hasta 12, inc en 1, hacer inicio cc*0.02+c fin_para escribir "obtendra la cantidad de ", c retorna fin //fin procedimiento /* Parte principal, llama al procedimiento banco */ Inicio banco() fin //fin de principal

Solucin ejercicio 16.


Calcule la suma siguiente: 100+99+98+97+96+95+.................+5+4+3+2+1+0.
DATOS DE ENTRADA: ninguno. PROCESO: para i desde 100 hasta 0, dec en 1 sumasuma+i. Mostrar suma DATOS DE SALIDA: Valor de la suma (suma entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero i entero suma0 para I desde 100 hasta 0, dec en 1, hacer inicio sumasuma+i fin escribir "la suma es de ", suma fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Procedimiento que muestra los numeros del 100 al 0 en un ciclo para que inicia en 100 hasta que llegue a 0 decrementandse en uno. */ procedimiento suma() inicio entero i entero suma0
92

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


para I desde 100 hasta 0, dec en 1, hacer inicio sumasuma+i fin escribir "la suma es de ", suma retorna fin /* Parte principal, llama al procedimiento suma */ Inicio suma() fin //fin de principal

Solucin ejercicio 17.


Hacer un programa que calcule P = X y.
DATOS DE ENTRADA: Valores de base y exponente( x, y enteros) PROCESO: Leer x, y sumasuma*x posuma*x mostrar po DATOS DE SALIDA: Potencia (p entero) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero x, y, i, po entero suma1 escribir Introduzca numero para x" leer x escribir "introduzca numero para y" leer y para i desde 2 hasta y, inc en 1, hacer inicio sumasuma*x posuma*x fin_para escribir "el resultado es ", po fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje
93

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


leer e retornar e fin //devuelve el calculo de la potencia de x a la y entero potencia(entero x, entero y) inicio entero i, po entero suma1 para i desde 2 hasta y, inc en 1, hacer inicio sumasuma*x posuma*x fin_para retorna po fin //fin de funcin potencia /* Parte principal, pide el valor de x y y, llama a la funcin potencia para realizar el calculo, luego muestra el resultado */ Inicio entero p, x, y x leerEntero(Introduzca numero para x") y leerEntero("introduzca numero para y") p potencia(x, y) escribir "el resultado es ", p fin //fin de principal

Solucin ejercicio 18.


Hacer un programa que calcule S = f/x 1 + f/x2 + - - - - - - - + f/x n. Utilic la funcin del problema (P = X y).
DATOS DE ENTRADA: Valores de (f, x, y entero) PROCESO: Leer f, x, y Desde 1 hasta y hacer o s s + f/(potencia(x, i) * 1.0) Mostrar suma DATOS DE SALIDA: Suma total (s fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio entero f, x, y fraccionario s0 escribir "introduzca numero para f" leer f


94

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


escribir "introduzca numero para x" leer x escribir "introduzca numero para y" leer y entero i para i desde 1 hasta y, inc en 1, hacer inicio pot 1 para a desde 1 hasta i, inc en 1, hacer inicio potpot*x fin s s + f/(pot * 1.0) fin escribir "el resultado es ", s fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin procedimiento calculo(entero f, entero x, entero y) inicio fraccionario s0 entero i para I desde 1 hasta y, inc en 1, hacer inicio s s + f/(potencia(x, i) * 1.0) fin escribir "el resultado es ", s retorna fin //devuelve un valor entero entero potencia(entero x, entero pot) inicio entero a, i entero suma1 para a desde 1 hasta pot, inc en 1, hacer inicio sumasuma*x fin retorna suma fin //fin de funcin potencia
95

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

/* Parte principal, pide el contador */ Inicio entero f, x, y f leerEntero("introduzca x leerEntero("introduzca y leerEntero("introduzca calculo(f, x, y) fin //fin de principal

valor de n y llama al procedimiento

numero para f") numero para x") numero para y")

Solucin ejercicio 19.


Leer en un ciclo mientras una cantidad numrica de 3 cifras, realice una funcin que reciba como argumento el numero ledo y retorne la descripcin de la cantidad del numero.
DATOS DE ENTRADA: Respuesta para continuar (d carcter) Nmero (n entero) PROCESO: ninguno. DATOS DE SALIDA: Cadena de texto que describe al nmero en decimal. PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin procedimiento descripcion() inicio caracter d entero n d leerCar("desea comenzar a describir numeros s/n")
96

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


mientras(d=='s') n leerEntero("teclee numero a describir") escribir "el numero es " si(n<10) escribir unidad(n) sino si(n<100) escribir decena(n) sino si(n<1000) escribir centena(n) d leerEntero("desea otro numero s/n ") fin_mientras

fin

//devuelve cadena de caracteres carcter *unidad(entero n) inicio caracter cad[20] si(n<10) casos de (n) inicio caso 1: retorna "uno" break caso 2: retorna "dos" break caso 3: retorna "tres" break caso 4: retorna "cuatro" break caso 5: retorna "cinco" break caso 6: retorna "seis" break caso 7: retorna "siete" break caso 8: retorna "ocho" break caso 9: retorna "nueve" break default: retorna "" fin// fin casos fin// fin unidad //devuelve cadena de caracteres funcin decena(entero n) inicio caracter cad[30] si(n<=15) casos de (n) inicio
97

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


caso 10: cad "diez" break caso 11: cad "once" break caso 12: cad "doce" break caso 13: cad "trece" break caso 14: cad "catorce" break caso 15: cad "quince" break fin_casos sino si(n<20) inicio cad "dieci " cad cad + unidad(n-10) fin sino si(n<30) inicio cad "veinti " cad cad + unidad(n-20) fin sino si(n<40) inicio cad "treinta y " cad cad + unidad(n-30) fin sino si(n<50) inicio cad "cuarenta y " cad cad + unidad(n-40) fin sino si(n<60) inicio cad "cincuenta y " cad cad + unidad(n-50) fin sino si(n<70) inicio cad "sesenta y " cad cad + unidad(n-60) fin sino si(n<80) inicio cad "setenta y " cad cad + unidad(n-70) fin sino si(n<90) inicio
98

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


cad "ochenta y " cad cad + unidad(n-80) fin sino si(n<100) inicio cad "noventa y " cad cad + unidad(n-90) fin retorna cad fin// fin decena //devuelve cadena de caracteres
caracter *centena(entero n) inicio caracter cad[40] si(n==100) entonces cad cien sino si(n<110) entonces cad ciento cad cad + unidad(n-100) sino si(n<116) entonces cad "ciento " cad cad + decena(n-100) sino si(n<120) entonces cad "ciento " cad cad + decena(n-100) sino si(n<=199) entonces cad ciento cad cad + decena(n-100) sino si(n==200) entonces cad doscientos sino si(n<210) entonces cad doscientos cad cad + unidad(n-200) sino si(n<=299) entonces cad doscientos cad cad + decena(n-200) sino si(n==300) entonces cad trecientos sino si(n<310) entonces cad trescientos cad cad + unidad(n-300) sino si(n<=399) entonces cad trescientos cad cad + decena(n-300) sino si(n==400) entonces cad cuatrocientos sino si(n<410) entonces cad cuatrocientos cad cad + unidad(n-400) sino si(n<=499) entonces cad cuatrocientos cad cad + decena(n-400) sino si(n==500) entonces cad quinientos sino si(n<510) entonces cad quinientos

99

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


cad cad + unidad(n-500) sino si(n<=599) entonces cad quinientos cad cad +decena(n-500) sino si(n==600) entonces cad seiscientos sino si(n<610) entonces cad seiscientos cad cad + unidad(n-600) sino si(n<=699) entonces cad seiscientos cad cad + decena(n-600) sino si(n==700) entonces cad setecientos sino si(n<710) entonces cad setecientos cad cad + unidad(n-700) sino si(n<=799) entonces cad setecientos cad cad + decena(n-700) sino si(n==800) entonces cad,"ochocientos sino si(n<810) entonces cad"ochocientos cadcad+unidad(n-800) sino si(n<=899) entonces cad "ochocientos cadcad+ decena(n-800) sino si(n==900) inicio cad"novecientos sino si(n<910) entonces cad"novecientos cad cad + unidad(n-900) sino si(n<=999) entonces cad"novecientos cad cad + decena(n-900)

retorna cad fin// fin centena

/* Parte principal llama al procedimiento descripcion */ Inicio descripcion() fin //fin de principal

Solucin ejercicio 20.


Leer en un ciclo mientras una cantidad numrica de 3 cifras, realic una funcin que retorne la descripcin de la cantidad en nmeros romanos.
DATOS DE ENTRADA: Respuesta para continuar (d carcter) Nmero (n entero) PROCESO: ninguno. DATOS DE SALIDA: 100

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Cadena de texto que describe al nmero en romano.

PSEUDOCDIGO EN UN SOLO BLOQUE:

/* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin procedimiento descripcion(entero n) inicio caracter d d leerCar("desea comenzar a describir numeros s/n") mientras(d=='s') inicio n leerCar("teclee numero a describir) escribir "el numero es " si(n<10) entonces escribir unidad(n) sino si(n<100) entonces escribir decena(n) sino si(n<1000) entonces escribir centena(n) escribir " desea describir otro numero s/n" leer d fin_mientras fin //fin de procedimiento //devuelve cadena de caracteres caracter *unidad(entero n) inicio caracter cad[20] si(n<10) casos de (n) inicio
101

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


caso 1: retorna "I" break caso 2: retorna "II" break caso 3: retorna "III" break caso 4: retorna "IV" break caso 5: retorna "V" break caso 6: retorna "VI" break caso 7: retorna "VII" break caso 8: retorna "VIII" break caso 9: retorna "IX" break default: retorna "" fin //fin casos fin //fin unidad //devuelve cadena de caracteres caracter *decena(entero n) inicio caracter cad[30] si(n<=15) entonces casos de (n) inicio caso 10: cad X break caso 11: cad XI break caso 12: cad XII break caso 13: cad XIII break caso 14: cad XIV break caso 15: cad XV break fin //fin de casos sino si(n<20) entonces cad X cad cad + unidad(n-10) sino si(n<30) entonces cad XX
102

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


cad cad + unidad(n-20) sino si(n<40) entonces cad XXX cad cad + unidad(n-30) sino si(n<50) entonces cad XL cad cad + unidad(n-40) sino si(n<60) entonces cad L cad cad + unidad(n-50) sino si(n<70) entonces cad LX cad cad + unidad(n-60) sino si(n<80) entonces cad LXX cad cad + unidad(n-70) sino si(n<90) entonces cad LXXX cad cad + unidad(n-80) sino si(n<100) entonces cad XC cad cad + unidad(n-90) retorna cad fin// fin decena
//devuelve cadena de caracteres caracter *centena(entero n) inicio caracter cad[40] si(n==100) entonces cadC sino si(n<110) entonces cadC cad cad + unidad(n-100) sino si(n<=199) entonces cadC cad cad + decena(n-100) sino si(n==200) entonces cadCC sino si(n<210) entonces cadCC cad cad + unidad(n-200) sino si(n<=299) entonces cadCC

103

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


cad cad + decena(n-200) sino si(n==300) entonces cadCCC sino si(n<310) entonces cadCCC cad cad + unidad(n-300) sino si(n<=399) entonces cadCCC cad cad + decena(n-300)) sino si(n==400) entonces cadCD sino si(n<410) entonces cadCD cad cad + unidad(n-400) sino si(n<=499) entonces cadCD cad cad +decena(n-400) sino si(n==500) entonces cadD sino si(n<510) entonces cadD cad cad + unidad(n-500) sino si(n<=599) entonces cadD cad cad + decena(n-500) sino si(n==600) entonces cadDC sino si(n<610) entonces cadDC cad cad +unidad(n-600) sino si(n<=699) entonces cadDC cad cad +decena(n-600) sino si(n==700) entonces cadDCC sino si(n<710) entonces cadDCC cad cad +unidad(n-700) sino si(n<=799) entonces cadDCC strcat (cad,decena(n-700) sino si(n==800) entonces cadDCCC sino si(n<810) entonces strcpy (cad,DCCC) cad cad +unidad(n-800) sino si(n<=899) entonces cadDCCC cad cad +decena(n-800)

104

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


sino si(n==900) entonces cadCM sino si(n<910) entonces cadCM cad cad +unidad(n-900) sino si(n<=999) entonces cadCM cad cad +decena(n-900)

retorna cad fin// fin centena

/* Parte principal llama al procedimiento descripcion */ Inicio descripcion() fin //fin de principal

Solucin ejercicio 21.


Hacer un algoritmo que lea 50 consumos en una cafetera si el consumo ingresado excede los 100, se har un descuento de 7%, mostrar todos los pagos desglosados (sobtotal, descuento y total de cada uno) y el pago total o acumulado.
DATOS DE ENTRADA: Cada uno de los consumos (consumo fraccionario) PROCESO: Desde 1 hasta 50 hacer i. Leer consumo ii. Si consumo>100 1. desc desc * 0.07 2. tot consumo desc 3. PagoT pagoT + tot 4. Mostrar consumo, desc, tot Mostrar PagoT DATOS DE SALIDA: Consumo desc tot PagoT PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Entero i Fraccionario consumo, desc, tot, PagoT 0.0 para i desde 0 hasta 50, inc en 1, hacer inicio escribir "teclee consumo: " leer consumo si consumo > 100.00 entonces desc consumo * 0.07
105

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


sino desc 0.0 fin si tot consumo desc PagoT PagoT + tot Escribir Subtotal = , consumo Escribir Descuento = , desc Escribir Total = , tot fin_para Escribir Pago Total: , PagoT fin //fin de principal
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor fraccionario y retorna el ledo, recibe como parmetro una cadena de texto. */ fraccionario leerEntero (texto mensaje) fraccionario f escribir mensaje leer f retornar f fin

valor

/* Funcin que retorna el valor del descuento que depende del valor de consumo recibido. */ Fraccionario calculaD (fraccionario c) si c > 100.00 entonces retorna consumo * 0.07 sino retorna 0.0 fin si fin //Funcin calculaD() /* Parte principal, desde 1 hasta 50 pide el valor de consumo y llama a la funcin calculaD a la que le pasa el consumo y devuelve el valor del descuento */ Inicio Entero i Fraccionario consumo, desc, tot, PagoT 0.0 para i desde 0 hasta 50, inc en 1, hacer inicio consumo leerFracc("teclee consumo: ") desc calculaD(consumo) tot consumo - desc PagoT PagoT + tot Escribir Subtotal = , consumo Escribir Descuento = , desc Escribir Total = , tot fin_para Escribir Pago Total: , PagoT fin //fin de principal

106

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

Solucin ejercicio 22.


Dada N notas calcular el promedio de las notas aprobadas y el promedio de las notas desaprobadas.
DATOS DE ENTRADA: Total de notas (N entero) Cada una de las notas (nota fraccionario) PROCESO: Leer N Desde 1 hasta N hacer Leer nota Segn sea nota Acumular nota en: suma1 o suma2 Incrementar 1 en: C o S Calcular pa, pd Mostrar pa, pd DATOS DE SALIDA: Promedio de aprobadas (pa fraccionario) Promedio de desaprobadas (pd fraccionario) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio

Fin

Escribir Cuantas notas son? leer N Suma1 0 Suma2 0 C 0 S 0 Para I desde 1 hasta N, inc en 1, hacer Escribir dar nota: leer nota si nota>=70 entonces Suma1 Suma1+nota C C+1 sino Suma2 Suma2+nota S S+1 fin si fin para Pa suma1\C Pd suma2\S Escribir Promedio de aprobadas: , Pa Escribir Promedio de desaprobadas: , pd

PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */
107

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Procedimiento promedios, desde 1 hasta N pide el valor de nota realiza sumatorias, luego realiza calculo de promedios y muestra resultados */ Procedimiento promedios(entero N) Inicio Entero nota, Suma1 0 Entero Suma2 0 Entero C 0 Entero S 0 Para I desde 1 hasta N, inc en 1, hacer Nota leerEntero(dar nota:) si nota>=70 entonces Suma1 Suma1+nota C C+1 sino Suma2 Suma2+nota S S+1 fin si fin para Pa suma1\C Pd suma2\S Escribir Promedio de aprobadas: , Pa Escribir Promedio de desaprobadas: , pd Fin /* Parte principal, pide el valor de N y llama al procedimiento promedios */ Inicio Entero N N leerEntero(Cuantas notas son?) Promedios(N) Fin

Solucin ejercicio 23.


A una fiesta asistieron personas de diferentes edades y sexos. Construir un algoritmo dadas las edades y sexos de las personas. Calcular : -Cuantas personas asistieron a la fiesta -Cuantos hombres y cuantas mujeres -Promedio de edades por sexo -La edad de la persona ms joven que asisti -No se permiten menores de edad a la fiesta -Ingresar datos hasta que se ingrese una edad a cero
108

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin

DATOS DE ENTRADA: suma de edades de varones (sev entero) suma de edades de mujeres (sem entero) asistentes (A entero) varones (V entero) mujeres (M entero) edad (e entero) sexo (s carcter) PROCESO: Leer e Mientras e <> 0 hacer Si e>= 18 Leer S Acumular e en sumaE Acumular 1 en A Segn sea S Acumular 1 en V o M Acumular e en sev o sem Segn sea e Menor e Incrementar 1 en: C o S Sino Mensaje Menor de edad Calcular pm, pv Mostrar pm, pv,menor,a,m,v DATOS DE SALIDA: Promedios: mujeres, varones (pm, pv fraccionario) Asistentes, contadores (A, menor, m, v enteros) PSEUDOCDIGO EN UN SOLO BLOQUE:

Inicio Entero Sev 0 Entero Sem 0 Entero A 0 Entero V 0 Escribir Teclea la edad: Leer e Menor e mientras e<>0 hacer leer e, s si e>=18 entonces a_a+1 si s == "m" entonces m m+1 sem sem+e sino v v+1
109

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


sev sev+e fin si si e<menor entonces menor e fin si

sino

escribir "menor de edad" fin si fin mientras pm sem\m pv sev\v escribir pm,pv,menor,a,m,v fin
PSEUDOCDIGO USANDO PROCEDIMIENTOS Y FUNCIONES:

/* Funcin que pide un valor entero y retorna el valor ledo, recibe como parmetro una cadena de texto. */ Entero leerEntero (texto mensaje) Entero e escribir mensaje leer e retornar e fin /* Funcin que pide un caracter y retorna el valor ledo, recibe como parmetro una cadena de texto. */ caracter leerCar (texto mensaje) caracter c escribir mensaje leer c retornar c fin /* Procedimiento en el que mientras la edad sea diferente de cero realiza sumatorias necesarias, despus realiza calculo de promedios y por ultimo muestra resultados */ Procedimiento fiesta(entero edad) Entero Sev 0 Entero Sem 0 Entero A 0 Entero V 0 Entero Menor edad mientras edad<>0 hacer si edad>=18 entonces a a+1 s leerCar(Teclea m= mujer, h= hombre: ) si s == "m" entonces m m+1 sem sem+e sino
110

Universidad Autnoma del Carmen Cuerpo Acadmico Tecnologas de Informacin


v v+1 sev sev+e fin si si edad<menor entonces menor edad fin si escribir "menor de edad" fin si edad leerEntero(Teclea la edad: ) fin mientras pm sem\m pv sev\v escribir Promedio edad mujeres: , pm escribir Promedio edad varones: , pv escribir Edad mas joven: , menor escribir Total de asistentes: , a escribir Total de mujeres: , m escribir Total de varones: , v fin //fin procedimiento fiesta() /* Parte principal, pide la edad y llama al procedimiento fiesta al que le pasa esa edad */ Inicio Entero edad edad leerEntero(Teclea la edad: ) fiesta(edad) fin sino

FUENTES CONSULTADAS
[Rivas1985] Rivas , Dolores y Salas Rgulo, (1985) Introduccin a la Computacin. Tercera Edicin Esprosistemas [Joyanes2003] Joyanes Aguilar, Luis (2003) Fundamentos de la programacin. Ed. McGrawHill. Espaa. 1004 pgs. [Oviedo2003] Oviedo Regino, Efrain (2003) Lgica de programacin. Ed. Ecoediciones. Espaa. 213 pgs.

111

Potrebbero piacerti anche