Sei sulla pagina 1di 29

INGENIERIA SISTEMAS e INFORMATICA UNMSM UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA DE SISTEMAS e INFORMATICA


Problemas secunciales y condicionales Curso: Algortmica I PRCTICA # 1 Fecha: 04/04/13

1.- 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 total invertida. 2.- El clculo del pago mensual de un empleado de una empresa se efecta de la siguiente manera: el sueldo bsico se calcula en base al nmero total de horas trabajadas basado en una tarifa horaria; al sueldo bsico, se le aplica una bonificacin del 20% obtenindose el sueldo bruto; al sueldo bruto, se le aplica un descuento del 10% obtenindose el sueldo neto. Escriba un programa que calcule e imprima el sueldo bsico, el sueldo bruto y el sueldo neto de un trabajador. 3.- Disee un algoritmo que lea un nmero entero de cinco cifras y determine la cifra central del nmero. As, si el nmero ingresado fuera 45781, la cifra central a mostrar es 7. 4.- Disee un algoritmo para repartir una cantidad de dinero a tres personas en forma proporcional a sus edades. El monto que le corresponde a cada persona se calcula con la siguiente frmula: monto de la persona = (edad de la persona x monto a repartir)/ suma total de edades 5.- En una tienda han puesto en oferta la venta de todos sus artculos por cambio de estacin ofreciendo un "15 % + 15 % de descuento. El primer 15% se aplica al importe de la compra, mientras que el segundo 15% se aplica al importe que resulta de restar el importe de la compra menos el primer descuento. Dada la cantidad de unidades adquiridas de un mismo tipo de artculo por parte de un cliente y el precio unitario del artculo, disee un algoritmo que determine el importe de la compra, el importe del descuento y el importe a pagar. 6.- Construir un algoritmo que calcule el monto mensual que adeuda un cliente que compra un equipo de sonido al crdito, sabiendo que el monto de compra recibe un incremento del 19% de impuesto, as como, de 5% de inters mensual por cada letra que fracciona 7.- Calcular la fuerza de atraccin entre dos masas, separadas por una distancia, mediante la siguiente frmula: F = G*masa1*masa2 / distancia2 Donde G es la constante de gravitacin universal: G = 6.673 * 10-8 cm3/g.seg2 8.- Realizar un programa que pida al usuario la velocidad en m/s y el radio de la circunferencia de la pista, y como resultado el programa devuelve el tiempo que tarda el atleta en dar 2 vueltas a la pista, sabiendo que el atleta descansa 1 minuto cada 1000 metros 9.- Desglosar cierta cantidad de segundos a su equivalente en das, horas, minutos y segundos. 10.- Mostrar la cantidad de billetes de 100, 50, 20, y 10, nuevos soles, y monedas de 5,2,1,0.50,0.20 y 0.10, que se necesitan para pagar el sueldo de un trabajador. 11.- Una institucin benfica europea ha recibido tres donaciones en soles, dlares y marcos. La donacin ser repartida en tres rubros: 60% para la implementacin de un centro de salud, 30% para un comedor de nios y el resto para gastos administrativos. Disee un algoritmo que determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dlar = 3.52 soles, 1 dlar = 2.08 marcos, 1 dlar = 1.07 euros. 12.- Una persona ha recorrido tres tramos de una carrera. La longitud del primer tramo esta dada en kilmetros, del segundo tramo en pies y del tercer tramo en millas. Disee un programa que determine la longitud total recorrida en metros y yardas. Se sabe que: 1 metro = 3.28 pies, 1 yarda = 3 pies, 1 kilmetro = 1000 metros y 1 milla = 1609 metros 13.- Dado un tiempo expresado en HH:MM y otro tiempo en MM: SS, disee un programa que calcule la suma de los tiempos y lo exprese en HH:MM:SS.

Ejercicios con Pseudocdigos


Ejercicios de Pseudocdigos, esto ayudar al estudiante a llegar a una solucin, de una manera fcil y practica; estos son Pseudocdigos que yo hice llevando una lgica propia, es indispensable que el alumno defina y trabaje arduamente en la lgica, pues esto les llevar a ser un buen programador y definir un estilo de programacin propio. Es importante hacer notar que estos ejercicios son los que se ven en clase, pero los alumnos pueden dar solucin a otros problemas, yo sugiero que en casa ejerciten la lgica de solucin a problemas sencillos y despus darle solucin a problemas ms complejos. Ejercicio 1. Ejercicio 2. Ejercicio 3. Ejercicio 4. Ejercicio 5. Ejercicio 6. Ejercicio 7. Ejercicio 8. Ejercicio 9. Ejercicio 10. Ejercicio 11.

Atrs

1.- Escribir un Pseudocdigo de un programa que permita leer la edad y peso de una persona y posteriormente imprimirla. Inicio Variables edad, peso. Imprimir "Escribir los datos (Edad, Peso):" Leer Edad, Leer Peso. Visualizar "Tu peso es: ", peso, " y tu edad es: ", edad. Fin.

Inicio 2.- Escribir un Pseudocdigo que calcule el rea de un tringulo recibiendo como entrada el valor de base y altura. Inicio Variables Altura, Base, Area. Imprimir "Introduce la base y la altura: " Leer base y peso. area= (base*altura)/2. Imprimir "El area es: ", base. Fin.

Inicio 3.- Escribir Pseudocdigo que calcule el rea de un crculo. Inicio Constantes Pi= 3.1416 Variables Radio, area = real Imprime "Introduce el radio: " Leer radio. area= radio*radio*Pi Imprimir "El rea del circulo es: ", area. Fin.

Inicio 4.- Escribir Pseudocodigo que dados 2 valores de entrada imprima siempre la divisin del mayor entre el menor. Inicio

Variables num1, num2=entero. Variables R=real. Imprimir "Introduce los nmeros:" Leer num1, Leer num2. Si a>b entonces R= a/b Sino R= b/a Fin.

Inicio 5.- Escribir Pseudocdigo que lea de entrada 3 nmeros y que indique cual es el mayor de ellos. Inicio Variables a, b,c = enteros. Imprimir "Introduce los datos a comparar: " Leer a,b,c Si a<b y a<c entonces Imprime "El mayor es: ", a Sino Si b<a y b<c entonces Imprime "El mayor es: ",b sino Imprime "El mayor es: ", c Fin.

Inicio 6.- Escribir un Pseudocdigo que lea 3 nmeros los cuales significan una fecha (da, mes, ao). Comprobar que sea vlida la fecha, si no es valido que imprima un mensaje de error, y si es vlida imprimir el mes con su nombre. Inicio Variables dia, mes, ao =entero.

Imprimir "Introduce la fecha (Dia,mes,ao): " Leer dia, mes, ao. Si dia>31 o mes >12 o ao<0 entonces Imprimir "Error la fecha no es correcta" Sino si mes=1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12 entonces si dia >31 y dia<1 entonces Imprimir "Error de Dia" sino si mes=1 entonces imprimir dia,"/ Enero /",ao si mes=3 entonces imprimir dia,"/ Marzo /",ao si mes=5 entonces imprimir dia,"/ Mayo /",ao si mes=7 entonces imprimir dia,"/ Julio /",ao si mes=8 entonces imprimir dia,"/ Agosto /",ao si mes=10 entonces imprimir dia,"/ Octubre /",ao si mes=12 entonces imprimir dia,"/ Diciembre /",ao Si mes=2 entonces si dia>28 o dia<0 entonces Imprimir "Error de Dia" sino Imprimir dia,"/ Febrero /",ao Si mes=4 o mes=6 o mes=9 o mes=11 Si dia >30 o dia <1 entonces Imprimir "Error de Dia" Sino Si mes=4 entonces Imprimir dia,"/ Abril /",ao Si mes=6 entonces Imprimir dia,"/ Junio /",ao Si mes=9 entonces Imprimir dia,"/ Septiembre /",ao Si mes=11 entonces Imprimir dia,"/ Noviembre /",ao Fin.

Inicio 7.- Escribir un Pseudocodigo que pida la edad y el sexo y dependiendo si es hombre o mujer y si puede votar o no. Inicio variables edad=entero, sexo=caracter. repetir Imprimir "Introduce Tu edad:" Leer edad. Hasta que (edad >0) Hacer Imprimir "Introduce tu sexo (M/H):" leer sexo hasta que (sexo='H' o sexo = 'M') Si sexo= 'M' entonces si edad > 18 entonces Imprimir "Eres Mujer y puedes votar" sino Imprimir "Eres Mujer y no puedes votar" Sino si edad >18 entonces Imprimir "Eres Hombre y puedes votar" sino Imprimir "Eres Hombre y no puedes votar" Fin.

Inicio 8.- Realice un Pseudocdigo que calcule la nmina salarial neto, de unos obreros cuyo trabajo se paga en horas. El clculo se realiza de la siguiente forma: - Las primeras 35 horas a una tarifa fija. - Las horas extras se pagan a 1.5 ms de la tarifa fija.

- Los impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el sueldo es menos a $20,000.00 el sueldo es libre de impuesto y si es al contrario se cobrar un 20% de impuesto. Inicio Canstante Tarifa= 50. Variables Horas, Sueldo, dif_horas, Sueldo_mes, Impuesto, Sueldo_total.

tarifa_extra,

Salario_extra,

Imprimir "Introduce las Horas de Trabajo ==> " Leer Horas. Si Horas <= 35 entonces Sueldo= horas * tarifa. Sino Dif_horas= Horas - 35 tarifa_extra=(tarifa * 1.5) Salario_exta= tarifa_extra * Dif_horas Sueldo=(35*tarifa)+ salario_extra. Sueldo_mes = sueldo * 4 Impuesto=0 Si sueldo_mes > 20000 entonces Impuesto = (Sueldo_mes* 0.20) Salario_total = Sueldo_mes - Impuesto Imprimir "Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ", Impuesto, " El salario Neto es: ",Salario_total. sino Imprimir "Tu sueldo Neto es: ", sueldo_mes. Fin.

Inicio 9.- Hacer un Pseudocdigo que calcule el factorial de un nmero. Inicio Variables N,Fact,aux.

Imprimir "Introduce el nmero: " Leer N aux= n-1. fact=n Hacer fact=fact * aux. Hasta que aux=1 Imprimir "El factorial de ", n, "es:", fact Fin.

Inicio 10.- Hacer un multiplicar. Inicio Variables i,k,r. para i=1 hasta 10. para k=1 hasta 10. r:=i*k. Imprimir i," por ",k," = ",r. k=k+1. i=i+1. Fin. Pseudocodigo que despliegue las tablas de

Inicio 11.- Escribir un Pseudocdigo que encuentre y despliegue los nmeros primos entre uno y cien. Un nmero primo es divisible entre el mismo y la unidad por lo tanto un numero primo no puede ser par excepto el dos (2). Inicio

Variables primo, cont, div, res. Primo = 1. Hacer mientras primo<=100 Div =0. Cont =1. Hacer Mientras cont <= primo Res = cont mod primo si res = 0 entonces Div = div +1. Fin si Cont = cont +1. Fin de Hacer mientras si div<=2 entonces imprimir primo Fin si. Primo = primo + 1. Fin de Hacer mientras Fin.

Inicio

lgoritmo 1: Programa que visualice los n primeros nmeros de la sucesin de Fibonacci. Datos: a,n,cont,suma ; nentero Algoritmo: Cdigo:

INICIO a = 0, b = 1 VISUALIZAR "Introduzca n" LEER n SI n > 2 suma = a + b VISUALIZAR a,"",b PARA cont = 3 HASTA n a = suma suma = a + suma VISUALIZAR suma FIN PARA SINO VISUALIZAR "No se puede aplicar la serie a menos de 3 trminos!" FIN SI FIN

Algoritmo 2: Algoritmo que visualice los 25 primeros nmeros perfectos. Datos: n, cont, res, final Algoritmo: Cdigo:

INICIO final = 0 REPETIR res = 0 PARA cont = 1 HASTA n DIV 2 SI cont % n == 0 res = res + cont FIN SI FIN PARA SI res == n VISUALIZAR n final = final + 1 FIN SI n=n+1 MIENTRAS final < 25 FIN

Algoritmo 3: Introducir por teclado una secuencia de datos, cada una de ellas compuestas por un nombre y las calificaciones obtenidas por ese alumno en 6 asignaturas, la secuencia termina al introducir fin como nombre de alumno, el algoritmo deber visualizar el nombre del alumno, seguido de su nota media, al introducir fin, se mostrar la nota media del grupo. (No se permite usar tablas en este ejercicio, pero simplificara mucho el code) Datos: alumno ; alfanumerico nota, media, grupo: n real cont, alumnos, nalumnos : n entero Algoritmo: Cdigo:

INICIO nalumnos = 0, global = 0 REPETIR

VISUALIZAR "Introduzca el nombre del alumno" LEER alumno media = 0 SI alumno != fin PARA cont = 1 HASTA 6 VISUALIZAR "Introduzca la nota nmero" , cont LEER nota media = media + nota FIN PARA media = media / 6 global = global + media nalumnos = nalumnos + 1 VISUALIZAR alumno, media FIN SI MIENTRAS alumno != fin global = global / nalumnos VISUALIZAR "Media del grupo: ", global FIN

Algoritmo 4: Visualizar los n primeros nmeros primos (n se introduce por teclado, usar una variable booleana para comprobar si el numero es primo) Datos: cond, cont, n, a, primos Algoritmo: Cdigo:

INICIO primos = 0 VISUALIZAR "Introduzca n" LEER n MIENTRAS primos < n cont = 0, cond = true MIENTRAS cond = true

cont = cont + 1 SI cont % a = 0 cond = false FIN SI FIN MIENTRAS SI cont == a VISUALIZAR a primos = primos + 1 FIN SI a = a +1 FIN MIENTRAS

FIN

Algoritmo 5: En una hurna hay 80 bolas numeradas del 1 al 80 se extrae una bola y el numero se introduce por teclado devolviendo de nuevo la bola a la hurna el proceso se repite hasta que aparezca 3 veces el numero 33. Hacer un programa que utilice cuantas veces ha salido cada una. (usar tablas) DATOS: numeros (80) bola, cont; nentero. Algoritmo: Cdigo:

INICIO MIENTRAS numeros(33) < 3 VISUALIZAR "Introduzca el nmero de bola" LEER bola numeros(bola) = numeros(bola) + 1 FIN MIENTRAS PARA cont = 1 HASTA 80 VISUALIZAR "Nmero de ", bola, "que salieron: ", numeros(bola) FIN PARA FIN

Algoritmo 6: Un almacn dispone de 8 departamentos numerados del 1 al 8 destinados a contener una serie de piezas. Las piezas estn numeradas del 0 al 8 stas llegan de una en una depositndose en el departamento del mismo nmero. Hacer un algoritmo que determine cuantas piezas hay en cada departamento despus del suministro, el suministro termina al llegar la pieza numero 0, puede ocurrir que llegue una pieza no comprendida en el rango establecido con lo cual se debera visualizar el mensaje pieza nmero..... es incorrecta. Inicialmente no hay piezas en los departamentos. DATOS: deps (8*9) pieza, dep; nentero Cdigo:

INICIO VISUALIZAR "Introduzca pieza y departamento" LEER pieza, dep MIENTRAS pieza != 0 SI pieza < 0 == 1 OR pieza > 0 == 1 VISUALIZAR "Pieza nmero ", pieza, "es incorrecta" SINO deps(dep,pieza) = deps(dep,pieza) + 1 FIN SI VISUALIZAR "Introduzca pieza y departamento" LEER pieza, dep FIN MIENTRAS PARA dep = 1 HASTA 8 PARA pieza = 0 HASTA 8 VISUALIZAR "Departamento: ", dep, "Pieza: ", pieza, "Cantidad: ", deps(dep,pieza) FIN PARA FIN PARA FIN

Algoritmo 7: Una distribuidora de piezas de motor dispone de 3 almacenes para almacenar 4 piezas distintas, el nmero de piezas por almacn se representan mediante una matriz de 4x3 denominada inventario, tambin dispone de un vector con los costes de cada pieza, disear un algoritmo que permita calcular: a) El valor que tiene cada almacn, teniendo en cuenta cada pieza b) El valor del que dispone cada almacn, teniendo en cuenta todas las piezas. c) El valor total de cada pieza en todos los almacenes d) El valor total general Suponer que la matriz inventario y el vector de costes ya estn introducidos anteriormente Resolucin 1 (Larga y menos eficiente, pero mucho ms simple de interpretar) Cdigo:

INICIO //Resolucin del apartado A con dos bucles para. PARA y=1 HASTA 3 PARA x=1 HASTA 4 VISUALIZAR "El valor de pieza",x,"en almacn",y,"es",(inventario(x,y)*coste(x)) FIN PARA FIN PARA //Resolucin del apartado B con dos bucles para. PARA y=1 HASTA 3 tgt=0 PARA x=1 HASTA 4 tgt=tgt+(inventario(x,y)*coste(x)) FIN PARA VISUALIZAR "El valor de almacn",y,"es",tgt FIN PARA //Resolucin del apartado C con dos bucles para

PARA x=1 HASTA 4 tgt=0 PARA y=1 HASTA 3 tgt=tgt+(inventario(x,y)*coste(x)) FIN PARA VISUALIZAR "El valor de piezas",x,"es",tgt FIN PARA //Resolucin del apartado D con dos bucles para sup=0 PARA y=1 HASTA 3 tgt=0 PARA x=1 HASTA 4 tgt=tgt+(inventario(x,y)*coste(x)) FIN PARA sup=sup+tgt FIN PARA VISUALIZAR "Valor global es",sup FIN

Resolucin 2 (Bsqueda de la mxima eficiencia y el menor tamao posible) Cdigo:

INICIO //Resolucin de los apartados A, B y D en el mismo bucle PARA PARA y=1 HASTA 3 tgt=0 PARA x=1 HASTA 4 part = inventario(x,y)*costes(x) VISUALIZAR "Valor de pieza",x,"en almacn",y,"es",part tgt = tgt + part FIN PARA sup = sup + tgt VISUALIZAR "Valor total de almacn",y,"es",tgt FIN PARA VISUALIZAR "Valor total global",sup

//Resolucin del apartado C en otros dos bucles PARA, ya que //en esta es necesario colocarlos de forma inversa. PARA x=1 HASTA 4 tgt=0 PARA Y=1 HASTA 3 tgt = tgt + (inventario(x,y)*coste(x)) FIN PARA VISUALIZAR "El valor de piezas",x,"es",tgt FIN PARA FIN

Ayuda con pseudocodigo do while (hacer mientras)?


Necesito una ayudita con 3 ejercicios de pseudocodigo do while (hacer mientras) q yo tengo las posibles soluciones, pero tengo demasiadas dudas. A ver si ustedes me echan una manito, ahi les dejo los ejercicios y el tercero se los pongo en informacion adicional: 1) A 1 trabajador le pagan segn sus horas y una tarifa d pago por horas. Si la cantidad d horas trabajadas es mayor a 40, entonces la tarifa se incrementa en un 50% para las horas extras, calcular el salario del trabajador dadas las horas trabajadas y tarifa. 2) Un telecajero realiza ciertas operaciones, se desea saber cuantas consultas d cuentas d ahorros se realizan en el dia, cuantos retiros d cuentas corrientes se realizan en el dia, cuantos retiros por tarjetas de crdito se realizan en el dia, suma total de los pagos por tarjetas de credito, suma total d los pagos por cuentas corrientes.
hace 5 aos Reportar abusos

Detalles adicionales 3) En la empresa "X" hay 3 vendedores distribudos por zonas: zona norte, zona centro y zona sur. Se desea saber el promedio de ventas en cada zona y calcular la comisin de pago de cada vendedor, sabiendo que la comisin es de un 5%.

1) Do horasLeer("Dame las horas trabajadas:") While horas<=0 Do tarifaLeer("Dame la tarifa por hora:") While tarifa<=0 If horas<=40 Then Escribir "El salario es " + (horas*tarifa) Else Escribir "El salario es " + ((40*tarifa) + ((horas-40)*1.5*tarifa)) Endif Comentarios: <=40 Tarifa normal: SUELDO=horas*tarifa >40 Tarifa normal: 40*tarifa Extra:(horas-40) Tarifa extra: 150% = 1.5*tarifa 2) sumatarjeta0 sumacuenta0 consultas0

retirocuenta0 retirotarjeta0 Do operacion=Leer("Que operacion va a realizar(1.Consulta 2.Retiro de Cta Corr. 3.Retiro por tarjeta 4.Salir)") If operacion=1 then Escribir "Mostrando estado de cuenta... " consultasconsultas+1 Elseif operacion=2 then Do pagoLeer("Cuanto va a a retirar?") While pago<=0 sumacuentasumacuenta+pago retirocuentaretirocuenta+1 Elseif operacion=3 then Do pagoLeer("Cuanto va a a retirar?") While pago<=0 sumatarjetasumatarejta+pago retirotarjetaretirotarjeta+1 Endif While operacion != 4 Escribir "Consultas=" + consultas Escribir "Retiro Cta Corr=" + retirocuenta Escribir "Retiro Tarjeta=" + retirotarjeta Escribir "Suma pagos por Tarjeta=" + sumatarjeta Escribir "Suma pagos por Cta Corr=" + sumacuenta
hace 5 aos

RESUMEN DE PALABRAS RESERVADAS PARA EL CURSO DE ALGORITMOS


Ingles Start Read Write If... then else end_if While ..do Loop For...to For...to Next Repeat until Do Case Case EndCase and or Espaol Inicio Leer Escribir Si ... entonces sino fin_si Mientras.. Hacer fin_mientras Para ... hacer Desde....hacer Fin_Para o Fin_desde Repetir hasta Segun sea Caso Fin_segun y o QBASIC CLS INPUT PRINT If ... then else end if Do While Loop For... to For...to Next Do until Loop Select Case Case End Select and or

INSTRUCCIONES Y TIPOS DE INSTRUCCIONES


El proceso de diseo del algoritmo o posteriormente de codificacin del programa consiste en definir las acciones o instrucciones que resolvern al problema. Las acciones o instrucciones se deben escribir y posteriormente almacenar en memoria en el mismo orden en que han de ejecutarse, es decir, en secuencia. Un programa puede ser lineal o no lineal. Un programa es lineal si las instrucciones se ejecutan secuencialmente, sin bifurcaciones, decisin ni comparaciones. En el caso del algoritmo las instrucciones se suelen conocer como acciones, y se tendra: accion1 accion2 accion3 ... accion n

Un programa es no lineal cuando se interrumpe la secuencia mediante instrucciones de bifurcacin como se vio con el caso del rombo en los diagramas de flujo

TIPOS DE INSTRUCCIONES
Las instrucciones disponibles en un lenguaje de programacin depende del tipo de lenguaje. Por ello, en este apartado estudiaremos las instrucciones acciones- bsicas que se pueden

implementar de modo general en un algoritmo y que esencialmente soportan todos los lenguajes. Dicho de otro modo, las instrucciones bsicas son independientes del lenguaje. La clasificacin ms usual, desde el punto de vista anterior, es: 1. instrucciones de inicio / fin, 2. instrucciones de asignacin, 3. instrucciones de lectura, 4. instrucciones de escritura, 5. instrucciones de bifurcacin. Instrucciones de asignacin. Como ya son conocidas del lector, repasaremos su funcionamiento con ejemplos: a) A = 80 la variable A toma el valor 80. b) Cul ser el valor que tomar C tras la ejecucin de las siguientes instrucciones? A = 12 B = A C = B A contiene 12, B contiene 12 y C contiene 12. NOTA: Antes de la ejecucin de las tres instrucciones, el valor de A, B y C es Indeterminado. Si se desea darles un valor inicial, har que hacerlo explcitamente, incluso cuando este valor sea 0. Es decir, habr que definir e inicializar las instrucciones. A = 0 B = 0 C = 0 c) Cul es el valor de la variable AUX al ejecutarse la instruccin 5? 1. A =10 2. B =20 3. AUX= A 4. A= B 5. B= AUX . en la instruccin 1, A toma el valor 10 . en la instruccin 2, B toma el valor 20 . en la instruccin 3, AUX toma el valor anterior de A, o sea 10 . en la instruccin 4, A toma el valor anterior de B, o sea 20 . en la instruccin 5, B toma el valor anterior de AUX, o sea 10 . tras la instruccin 5, AUX sigue valiendo 10 d) Cul es el significado de N = N + 5 si N tiene el valor actual de 2? recuerde siempre se calcula primero la parte derecha o sea N+2, esto es 2 + 5 lo que da 7. A continuacin el 7 se asigna a N Luego N vale 7

ESTRUCTURAS CONDICIONALES
Las estructuras condicionales permiten bifurcar la ejecucin de un programa de acuerdo a una condicin. si la CONDICION resulta en valor verdadero se ejecutarn algunas acciones, recuerde se ejecutan si y solo si la CONDICION resultase verdadera, si la CONDICION resultase falsa se ejecutarn en el programa otras acciones o quiz el programa continua en otro lado.

Ya hemos estudiado esto en el caso de los diagramas de flujo cuando se us el ROMBO, pero en pseudocdigo necesitamos aclarar ciertas formas de bifurcacin:

Estructura Condicional de alternativa SIMPLE


Es de la forma Si CONDICION entonces accin 1 accin 2 accin 3 ... accin n Fin_SI donde CONDICION es un TEST que se desea comprobar y las acciones de la 1 hasta la n solo se ejecutan si la CONDICION resulta verdadera. Ejemplo 1 Cual ser el valor impreso o mostrado en pantalla para la variable N Inicio A = 20 N= A -2 Si A > 10 entonces N=N+1 fin_si Escribe N Fin Solucin 1 paso: A toma el Valor de 20 2 paso: N toma el valor de 18 (o sea 20-2) 3 paso: Nos preguntamos "20 es mayor que 10?" Aqu debe salir una respuesta SI o No (Verdadero o Falso) obviamente 20 es mayor que 10 la respuesta es SI entonces todas aquellas acciones o instrucciones que dependan del bloque SI - FIN_SI se ejecutan la nica accin es N = N+1 o sea N+1 es 18+1, entonces el valor de N es 19 4 paso se escribe en pantalla 19

Ejemplo 2 Cual ser el valor impreso o mostrado en pantalla para la variable N Inicio A = 20 N= A -2 Si A > 30 entonces N=N+1 fin_si Escribe N Fin

Solucin 1 paso: A toma el Valor de 20 2 paso: N toma el valor de 18 (o sea 20-2) 3 paso: Nos preguntamos "20 es mayor que 30?" Aqu debe salir una respuesta SI o No (Verdadero o Falso) obviamente 20 NO ES MAYOR 30, la respuesta es NO entonces NO SE EJECUTAN aquellas acciones o instrucciones que dependan del bloque SI FIN_SI. Esto ocasiona que el programa continua en la Instruccin que sigue al fin_si 4 paso: se escribe en pantalla 18 puesto que nunca se llevo a cabo el N =N + 1 Ejemplo 3 Hacer un programa que nos diga si una persona es mayor de edad en base a la edad proporcionada al computador.

Inicio leer Edad Si Edad >= 18 entonces Escribe "La persona de ", Edad, " es mayor de Edad" FIN_SI Escribe "Gracias por usar este programa" Fin

1 paso: El digitador Tipea la edad por ejemplo 25 y presiona Enter (La variable Edad adquiere el valor de 25) 2 paso: Responder si o no a la pregunta 25>=18, "25 es mayor o igual que 18?", la respuesta es SI esto ocasiona que todas aquellas instrucciones que dependen del bloque Si Fin_si se ejecutan 3 paso : se escribe La persona de 25 es mayor de Edad 4:paso se escribe Gracias por usar este programa

Si en el 1er paso el digitador hubiese ingresado 12 en vez de 25 la salida del programa tan solo sera: Gracias por usar este programa

Ejemplo 4 Un restaurante hace un descuento de 5 soles a las personas que consumen mas de 100 soles. haga el programa que pida el monto consumido y calcule cuanto hay que pagar. Inicio Leer Consumo descuento = 0 Si Consumo > 100 entonces descuento = 5 FIN_SI MontoAPagar = Consumo - descuento

Escribir MontoAPagar Fin

paso1: EL Digitador tipea 250 y presiona Enter (consumo vale 250) paso2: La variable descuento toma el valor de 0 (Inicializamos descuento con 0) paso3: nos preguntamos 250 > 100? La respuesta es SI entonces Descuento toma el valor de 5 paso4: MontoAPagar = 250 - 5 esto es MontoAPagar ser 245 paso5: Se escribe en pantalla 245

Suponga que paso1: EL Digitador tipea 50 y presiona Enter (consumo vale 50) paso2: La variable descuento toma el valor de 0 (Inicializamos descuento con 0) paso3: nos preguntamos 50 > 100? La respuesta es NO paso4: MontoAPagar = 50 - 0 esto es MontoAPagar ser 50 paso5: Se escribe en pantalla 50

Ejemplo 5 En los clculos de planillas y salarios normalmente se considera un descuento del 6% por servicios mdicos (seguro social) y 10% por AFP (Fondo de Pensiones y Jubilacin) pero para aquellos que ganan mas de 5000 soles los descuentos son de 7% de seguro social y 11% de AFP. Calcular el salario neto a pagar. Inicio Leer Sueldo Desc = 6/100 Afp = 10/100 Si Sueldo > 5000 entonces Desc= 7/100 Afp = 11/100 FIN_SI SNeto = Sueldo - Sueldo*Desc - Sueldo*Afp Escribe SNeto Fin

paso1: El digitador tipea 2000 y presiona Enter (la variable Sueldo toma el valor de 2000) paso2: Desc toma el valor de 0.06 paso3: Afp toma el valor de 0.10 paso4: Nos Preguntamos 2000 > 5000? La respuesta es NO paso5: SNeto = 2000 - 2000*0.06 - 2000*0.10 o sea SNeto vale 1680

Suponga que ahora paso1: El digitador tipea 8000 y presiona Enter (la variable Sueldo toma el valor de 8000) paso2: Desc toma el valor de 0.06

paso3: Afp toma el valor de 0.10 paso4: Nos Preguntamos 8000 > 5000? La respuesta es SI Desc toma el valor de 0.07 Afp toma el valor de 0.11 paso5: SNeto = 8000 - 8000*0.07 - 8000*0.11 o sea SNeto vale 6560

Estructura Condicional de alternativa DOBLE


Es de la forma Si CONDICION entonces accin 1 accin 2 accin 3 ... accin n SiNo accin q1 accin q2 accin q3 ... accin qn Fin_SI

Donde CONDICION es un TEST que se desea comprobar y las acciones de la 1 hasta la n solo se ejecutan si la CONDICION resulta verdadera. En caso la CONDICION Resultase falsa se ejecutan las acciones de la q1 a la qn que corresponden al bloque SINO

Ejemplo 1 Cual ser el valor impreso o mostrado en pantalla para la variable N Inicio A = 20 N= A -2 Si A > 10 entonces N=N+1 SiNo N=N-1 fin_si Escribe N Fin Solucin 1 paso: A toma el Valor de 20 2 paso: N toma el valor de 18 (o sea 20-2) 3 paso: Nos preguntamos "20 es mayor que 10?" Aqu debe salir una respuesta SI o No (Verdadero o Falso) obviamente 20 es mayor que 10 la respuesta es SI

entonces todas aquellas acciones o instrucciones que dependan del bloque SI - FIN_SI se ejecutan la nica accin es N = N+1 o sea N+1 es 18+1, entonces el valor de N es 19 de aqui se salta a la instruccin que esta despus del FIN_SI 4 paso se escribe en pantalla 19

Ejemplo 2 Cual ser el valor impreso o mostrado en pantalla para la variable N Inicio A = 20 N= A -2 Si A < 10 entonces N=N+1 SiNo N=N-1 fin_si Escribe N Fin Solucin 1 paso: A toma el Valor de 20 2 paso: N toma el valor de 18 (o sea 20-2) 3 paso: Nos preguntamos "20 es menor que 10?" Aqu debe salir una respuesta SI o No (Verdadero o Falso) obviamente 20 es mayor que 10 la respuesta es NO entonces todas aquellas acciones o instrucciones que dependan del bloque SINO se ejecutan la nica accin es N = N-1 o sea N-1 es 18-1, entonces el valor de N es 17 de aqu se salta a la instruccin que esta despus del FIN_SI 4 paso se escribe en pantalla 17 Recuerde Si Condicion entonces .... Se ejecutan por ser VERDAD la Condicin .... Sino .... Se ejecutan por ser FALSA la Condicin .... Fin_SI

Ejercicios resueltos y propuestos


1.- Hacer un programa que incremente en un 10% el monto de un departamento por cada dormitorio adicional, si normalmente los departamentos que que se venden en el plan mi vivienda vienen con 2 dormitorios. Mostrar el monto a pagar.

Inicio Leer Valor_dpto Leer NroDormitorios Si NroDormitorios > 2 entonces Valor_dpto= Valor_dpto + (NroDormitorios-2)* valor_dpto * 10/100 Fin_SI Fin 2.- Ingresar 3 notas de un alumno, promediarlas y decir si aprueba o no aprueba el curso Sabiendo que la nota aprobatoria es 14 o mas, no existen redondeos a favor del alumno. Inicio Leer N1,N2,N3 P = (N1+ N2 +N3)/3 Si P >= 14 entonces Escribe "Aprueba el Curso" SiNo Escribe "Desaprueba el Curso" FIN_SI 3.- Ingresar 3 notas de cursos de un alumno, el 1er curso tiene 2 crditos, el 2do tiene 3 crditos y el 3er tiene 2 crditos. El alumno puede llevar mas de 18 crditos si su promedio ponderado fue 14 o mas Inicio Leer N1,N2,N3 P = (N1*2+ N2*3+ N3*2)/(2+3+2) Si P >= 14 entonces Escribe "Puede llevar mas de 18 crditos" SiNo Escribe "Solo puede llevar hasta 18 crditos" FIN_SI 4.- SAGA FALABELLA se encuentra de aniversario y ha programado una serie de ofertas con la finalidad de brindar facilidades a sus clientes y al a vez de incrementar sus ventas. Estas ofertas se basan especficamente en un porcentaje de descuento sobre el total de compra el cual varia de acuerdo al monto * Por un monto mayor o igual a $500 se har un descuento del 30% * Por un monto menor de $500 pero mayor o igual a 200 se har un descuento * Por un monto menor de $200 pero mayor o igual a 100 se har un descuento

del 20% del 10%

INICIO Leer Consumo Si consumo >=500 entonces descuento = Consumo*30/100 Sino Si consumo >=200 entonces descuento = Consumo*20/100 Sino Si consumo >=100 entonces descuento = Consumo*10/100 Sino descuento=0 FIN_SI FIN_SI

FIN_SI Totalpagar= Consumo-Descuento Escribir Totalpagar FIN

5.- Dadas 3 longitudes, decir mediante un mensaje si stas forman un triangulo: equiltero, issceles o escaleno, o no forman triangulo (cada lado tiene que ser menos que la suma de los otros dos para que exista tringulo) INICIO Leer a,b,c Si a<(b+c) y b<(a+c) y c<(a+b) entonces Si a=b y b=c entonces escribe "El triangulo es equiltero" Sino Si a<>b y a<>c y b<>c entonces escribe "El triangulo es escaleno" Sino escribe: "El triangulo es issceles" FIN_SI FIN_SI Sino escribe: "No forman un triangulo" FIN_SI FIN 6.-Kathy organiza una fiesta en la cual una computadora controla el ingreso mediante 5 claves. Si se ingresa al menos una clave incorrecta esta escribir "TE EQUIVOCASTE DE FIESTA" y no permitir el ingreso. Si las 5 claves son correctas escribir "BIENVENIDO A LA FIESTA" Las Claves son: 1: "TIENES" 2: "QUE SER" 3: "INVITADO" 4: "PARA" 5: "INGRESAR" INICIO Leer Claves: C1$, C2$, C3$, C4$, C5$ Si C1$<>"TIENE" entonces escribir "Te Equivocaste de Fiesta" Sino Si C2$<>"QUE SER" entonces escribir "Te Equivocaste de Fiesta" Sino Si C3$<>"INVITADO" entonces escribir "Te Equivocaste de Fiesta" Sino Si C4$<>"PARA" entonces: escribir "Te Equivocaste de Fiesta" Sino Si C5$<>"INGRESAR" entonces: escribir "Te Equivocaste de Fiesta"

Sino escribir "Bienvenido a la Fiesta" FIN_SI FIN_SI FIN_SI FIN_SI FIN_SI FIN Propuestos 1.- Hacer un programa que lea 2 nmeros y diga cual fue el mayor de ellos 2.- Hacer un programa que lea 3 nmeros y diga cual fue el menor de ellos 3.- Hacer un programa que calcule el volumen de un cilindro siempre que el radio sea superior a 10 4.- Hacer un programa que calcule la diferencia de reas de 2 crculos de radios R1 y R2. Asegrese que el programa muestre esta diferencia en numero Positivo. 5.- Leer una hora en 3 variables HH, MM, SS mostrar cual ser la hora 2 segundos despus. 6.- Leer una hora en 3 variables HH, MM, SS mostrar cual ser la hora 3 segundos menos. 7.- Leer una hora en 3 variables HH, MM, SS mostrar cual ser la hora n segundos despus. 8.- Leer las 3 variables ANIO,MES,DIA y decir si es una fecha correcta. 9. Leer la variable ANIO y decir si corresponde a un Ao Bisiesto.

Potrebbero piacerti anche