Está en la página 1de 15

ITM

NOTAS DE CLASE Y GUIA 05 DE TRABAJO


LOGICA Y PROGRAMACION

PROPOSITO
Realizar una propuesta de trabajo al estudiante para cumplir con el tiempo independiente de la asignatura
Lógica y programación.

Académico-Docente
Olga Lucia Suaza Jiménez Olsuaza@une.net.co

Título y Descripción del Trabajo


Conocer y Aplicar Las estructuras de decisión y el case
El estudiante debe realizar programas fuentes tomando como base la
estructura CASE o SEGUN
ESTRUCTURA CASE O SEGUN
Permite seleccionar una, dentro de un conjunto de alternativas, con base en el valor almacenado en un campo variable
denominado campo controlador de la estructura, de acuerdo con el valor que tenga el controlador, se realiza una
determinada tarea una sola vez. Una gran ventaja de esta estructura es que evita una serie de preguntas (estructura
decisión lógica o un anidamiento de las mismas). El valor de la variable controlador es por lo general de tipo entero
Formato general:

según ( variable controladora) hacer

caso valor variable

instrucciones

caso valor variable:

instrucciones

en otro caso instrucciones

Fin segun

1
Ejemplo 1

Entrar por pantalla tres números enteros y diferentes. El usuario tiene la posibilidad de elegir

una de 4 opciones así:

1: promedio de los números

2: raíz cuadrada del segundo número.

3: averiguar si el tercer número es impar

4: averiguar cuál es mayor

Antes de continuar vamos a aprender otra clasificación de métodos

Métodos que envían parámetros, que no retornan valores o no reciben valores: ¿Cómo se invoca?

Nombre método(parámetros de entrada separados con comas ) // envía parámetros pero no recibe valores
Ejemplo
calculo(dir, num1, num2)

PARAMETROS: Son los valores que un método recibe por parte del código que lo llama; también se podría
decir son una lista de variables separados por comas y son utilizados para establecer la comunicación entre el
método que lo activa o invoca y el método.

PARAMETROS DE ENTRADA O PARAMETROS ACTUALES: Son las variables que aparecen en la llamada a
un método. Contienen los valores que se le pasan al método. Un parámetro actual puede ser una variable, un
objeto, un valor literal válido, etc.

Estos parámetros son los datos que el método no conoce y que necesita para hacer su trabajo. Cuando un
método recibe parámetros estos deben ser recibidos en variables del mismo tipo de dato. Ejemplo

Tenemos tres variables de tipo entero n1, n2, n3. Entramos los datos

Mostrar “digite primer valor”

Leer n1

Mostrar “digite segundo valor”

Leer n2

2
Mostrar “digite tercer valor”

Leer n3

operaciones (n1, n2, n3) // invocamos el método operaciones

Traduciendo la anterior instrucción: estamos invocando el método operaciones y le estamos enviando


tres valores, uno por cada variable.

¿Cómo recibe el método esos valores?

PARÁMETROS FORMALES: Son los argumentos que aparecen en la cabecera del método. Reciben los
valores que se envían en la llamada al método. Se utilizan como variables normales dentro del método.
Los parámetros actuales y los formales deben coincidir en número, orden y tipo.

Sigamos con nuestro ejemplo

publico vacio operaciones (entero n1, entero num2, entero num3)

Podemos apreciar en la instrucción anterior los nombres de algunas variables cambiaron, esto no es problema,
el valor enviado en n1 quedaría en n1; el valor enviado en n2 quedaría en num2, el valor enviado en n3
quedaría en num3

DIAGRAMA DE CLASES PSEUDOCODIGO

Clase ejemplocasos Clase ejemplocasos


-num1 : entero
-num2 : entero Publico vacio principal( )
-num3 :entero
-n1 : entero entrardatos( )
-n2 : entero
-n3 :entero Fin principal
-opcion : entero
-residuo : entero Publico vacio entrardatos( )
-div :entero entero num1, num2, num3 //variables locales
-prom : real
-raiz : real mostrar "Digite el primer número”
+ principal( ) void
+entrardatos( ) void
+opciones() void leer num1

mostrar "Digite el Segundo número”

leer num2

3
mostrar ” Digite el Tercer número”

leer num3

opciones(num1,num2,num3) //invoco método dentro de otro método y // envió

parámetros

Fin metodo

Publico vacio opciones( entero n1, entero n2,entero n3 )

entero opcion, residuo, div // variables locales

real prom, raiz

mostrar "Digite su opción 1: promedio, 2: raíz del segundo número 3:

averiguar si el tercer número es impar, 4:mostrar el mayor”

leer opcion

segun(opcion)hacer

caso 1: prom = (n1 +n2 +n3) /3

mostrar"el promedio de los números”, n1, n2, n3 “ es “ , prom

caso 2: raíz = n2 ** 0.5

mostrar "la raiz del número “ , n2 , "es “ , raiz

caso 3:

div = n3 / 2

residuo = (n3- (div *2))

si (residuo = 0)

entonces mostrar "el número “ , n3 , "es par”

4
sino mostrar "el número “ , n3 , "es impar”

fin si

caso 4 : Si ((n1< > n2) ^ (n2 < > n3) ^ (n1 < >n3))

entonces

Si ((n1>n2) ^ (n1>n3))

entonces mostrar “ el número mayor es”, n1

Sino

si ((n2>n1) ^ (n2>n3)

entonces

mostrar “el número mayor es”, n2

Sino

mostrar “el número mayor es”, n3

fin si

fin si

sino

mostrar “ los números no cumplen la condición de ser

diferentes”

Fin si

En Otro caso mostrar “ opción no valida “

5
Fin segun

Fin metodo

Fin clase

SEGÚN O CASE ANIDADO

Se presenta cuando dentro de un caso puede haber otro caso y así sucesivamente, cada según o case

debe tener una variable controladora. Veamos el siguiente ejemplo:

Una Universidad en su proceso de admisiones le proporciona al estudiante la posibilidad de elegir una de 4


FACULTADES: Ingeniería, salud, administración, derecho.
La facultad de ingeniería cuenta con tres programas para que el estudiante elija: Mecánica, Sistemas, Civil. La
facultad de Salud cuenta con dos programas: Odontología, Medicina.
Realice un programa en donde el estudiante que elija el programa de civil, con estrato entre uno y 3 tiene un
descuento en su matrícula del 15%. El estudiante que elija mecánica, con estrato máximo de cuatro tiene un
descuento del 20% en el valor de su matrícula.
El estudiante que elija odontología debe pagar un recargo del 40% sobre el valor de su matrícula por materiales
e implementos. El estudiante que elija Administración debe pagar un valor constante de 400.000 más el 2% del
valor que pagaba por mes en el último año de bachillerato.

DIAGRAMA DE LA CLASE PSEUDOCODIGO

Cls_ejemplouniversidad Publico Clase Cls_ejemplouniversidad


-nom : texto Publico vacio principal( )
- valanobachi :real
-valmatri :real entrardatos( )
-fac :entero
- estra :entero Fin principal
-desc :real
-valmatri :real
- valtotal : real Publico vacio entrardatos( )
-valanobachi : real texto nom
- valcons : real real valmatri
-programa :entero
-nombre :texto entero fac,
+ principal( ) void mostrar “Ingrese nombre del estudiante”
+entrardatos( ) void lea nom
+solucionopciones() void
mostrar “ ingrese el valor a pagar de matrícula”
lea valmatri

mostrar “ Seleccione facultad 1:ingeniería, 2: salud, 3:administración, 4:derecho”


lea fac

solucionopciones(nom,fac,valmatri ) //invoco metodo


6
Fin metodo

Publico vacio soluciónopciones( texto nombre, entero facultad ,real


valmatri )

real desc, valtotal,valanobachi, valcons = 400000


entero programa , estra

segun (facultad) hacer


Caso 1 :
mostrar “Ingrese programa 1: mecánica 2: sistemas, 3: civil”
lea programa
segun (programa) hacer
Caso 1 : mostrar “Ingrese el estrato de 1- 6”
lea estra

si (estra < = 4)
entonces desc = valmatri * 0.2
valtotal = valmatri - desc

Sino valtotal =valmat


Fin si
Mostrar “ El valor a pagar del estudiante”, nombre , “ es “ valtotal

Caso 2 : valtotal = valmatri


mostrar “ el valor a pagar del estudiante”, nombre ,“ es “ , valtotal

Caso 3: : mostrar “Ingrese el estrato de 1- 6”


lea estra

si ( (estra > = 1 ) ^ (estra < = 3))

entonces desc = valmatri * 0.15


Valtotal = valmatri - desc

Sino
valtotal = valmatri
Fin si

Mostrar “ el valor a pagar del estudiante”, nombre , “ es “ , valtotal

Fin segun

Caso 2 : mostrar “Ingrese programa 1: odontología, 2 medicina”


lea programa
segun (programa)hacer
Caso 1 : Valtotal = (valmatri + ( valmatri *0 .40))

Mostrar “ el valor a pagar del estudiante”, nombre “ es “ valtotal


Caso 2 : valtotal = valmatri

7
Mostrar “ el valor a pagar del estudiante”, nombre ,“ es “ , valtotal
Fin segun

Caso 3 : mostrar ”Ingrese valor mes último año de bachillerato”


lea valanobachi

Valtotal = valcons + (valanobachi*0 .02))

mostrar “ El valor a pagar del estudiante”, nombre , “ es “ , valtotal

Caso 4 : valtotal = valmatri


Mostrar “ El valor a pagar del estudiante”, nombre ,“ es “ valtotal

En otro caso mostrar “ caso no valido”

fin segun
fin metodo
fin clase

TALLER
DE CONDICIONALES Y SEGÚN O CASE (utilice las dos clasificaciones de los
métodos)

1. Realice un algoritmo donde el usuario tiene la posibilidad de escoger una de tres


opciones posibles
Opción 1: entrar un numero entero de 4 cifras y se debe mostrar al inverso
Opción 2: Calcular la distancia de una línea recta, dados dos puntos en un eje de
coordenadas x, y
Opción 3: entrar un número entero averiguar si dicho número es divisible por 7

2. Realice un programa en donde cierta empresa de telecomunicaciones ofrece a los


usuarios escoger uno de tres servicios: internet, televisión y telefonía. Los datos de
entrada son el nombre, la cedula, el estrato (1-6), y la dirección. Hay un descuento de
acuerdo a su estrato si es estrato 1 tiene un descuento de 20% si es estrato 2 descuento
de 15% y si es estrato 3 tiene un descuento del 10% si es estrato 4 o 5 o 6 no tendrá
descuento.
Si escoge internet hay dos opciones
8
Plan Internet Casa= 30.000
Plan Internet empresarial = 100.000
Si escoge Televisión Hay dos opciones:
Plan televisión Análoga = 30.000
Plan televisión Digital = 70.000
Si escoge Telefonía hay dos opciones:
Telefonía ilimitada = 50.000
Telefonía 100Min 20.000
Mostrar el valor a pagar del usuario

3. Un restaurante decide ofrecer su menú, para pedido a domicilio en su página web. El


menú está dividido en las siguientes opciones: carnes, pollos y pescados.
Entre las carnes tenemos carne asada, tiene un valor de 7000 y tiene un descuento en su
total a pagar del 8% si el número de la tarjeta de crédito es múltiplo de 2 y un 12% de
descuento si es múltiplo de 5. La carne a la plancha tiene un valor de 5000 y tiene un
descuento del 10% si son mínimo 3 unidades. La carne sudada no tiene descuento alguno y
tiene un valor también de 6000.
Entre los pollos solo hay apanado y asado, ambos con un valor de 6000 y 6500 además
cuentan con un descuento del 5% si son más de 2 pollos.
Los pescados solo tienen 2 opciones, asado con un valor de 8000 y apanado a 7500.
Si la compra se hace con tarjeta visa tiene un descuento del total a pagar del 2%, si es
MasterCard, el descuento es de 5% y si es Americana Express no tiene descuento alguno.
Capturar o entrar los datos que usted requiera para mostrar el total a pagar del cliente

4. Realice un algoritmo donde un usuario tiene la posibilidad de escoger una de tres


opciones posibles:
Opción 1: Una empresa desea implementar un sistema de seguridad para el ingreso
de sus empleados con la generación de un código; el código está compuesto por 5
dígitos de la siguiente forma el año de nacimiento y el último digito es la suma del
primer digito con el último digito de la fecha de nacimiento. Genere y muestre el
código de seguridad de un empleado si la suma de los dos dígitos es menor a 10, en
caso contrario solo muestre su nombre y un mensaje indicando que no se le puede
generar código.

Opción 2: Averiguar cuál es la nota mínima que debe sacar para aprobar una
materia, sabiendo que su primera nota equivale al 60% de la nota final.

9
Opción 3: Don Miguel, administrador de una prospera finca de la región, debe realizar
un recorrido para prender las tres alarmas que cuidan tan importante propiedad. Las
alarmas están ubicadas como se muestra en la figura 1. Don Miguel, desea saber la
distancia total que debe recorrer, sabiendo que el recorrido lo debe realizar en orden
(Inicia en el punto 1, se desplaza al 2, luego al 3 y debe regresar al 1 desde allí, usando
siempre el camino más corto). Desarrollar un algoritmo que permite determinar la
distancia total recorrida si don Miguel conoce la posición x,y de la ubicación de cada
una de las alarmas. Suponga además que el terreno es plano y que las distancias
están dadas en metros. También deberá entregar el tiempo tomado por don Miguel
para hacer el recorrido, suponiendo que éste se mueve a una velocidad constante
conocida (dada en metros por minuto) y, que dura 5 minutos realizando el proceso de
activación de cada alarma.

Figura 1 Ubicación de las alarmas en un eje de coordenadas x, y

5. Desarrollar un algoritmo que permita calcular el área y el perímetro de una figura


seleccionada por el usuario. Las opciones pueden ser: 1: círculo, 2: cuadrado ,3:
triángulo. Una vez seleccionada la figura el programa solicitará los datos requeridos y
presentará al usuario los resultados según corresponda.

6. Realice un algoritmo donde un usuario tiene la posibilidad de escoger una de tres opciones
posibles:
Opción 1: Determinar la cantidad de dinero que recibirá un trabajador por concepto de horas
semanales trabajadas en una empresa, sabiendo que cuando las horas trabajadas exceden
de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal
cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble
de una hora normal y el resto al triple.

10
Opcion 2: Entrar por pantalla tres números enteros y diferentes. Mostrar el número del medio e indicar
de cual está más cerca; si del mayor o del menor?.

Opcion 3: Mostrar el porcentaje de los estudiantes mayores de edad de un grupo de 45 estudiantes

7. Por un trabajo de pintura a domicilio, un contratista cobra quince mil pesos por el
transporte, más dos mil pesos por cada metro cuadrado a pintar, si la superficie está lisa
(estucada). Si la superficie no está lisa, el cliente puede pagar tres mil pesos adicionales
por cada metro cuadrado o decidir pintarla sin estucar, caso en el cual el metro de pintura
tiene un recargo de ochocientos pesos. Desarrollar un algoritmo que permita obtener la
cotización sobre un trabajo, teniendo en cuenta que si la pared no está lista se le deberá
indicar al usuario el costo de cada una de las opciones para que él decida cuál de ellas
seleccionar.

8. Realice prueba de escritorio. Redacte enunciado; ANALICE LA COMPARACION,


redacte dos conclusiones

COMPARACION ENTRE CONDICIONALES Y CASE


Condicionales SEGÚN O Case
Publica clase Cls_casas Publica clase Cls_casas

Publico vacio principal( ) Publico vacio principal( )


texto nom
texto nom real cc ,com, desc,valtotal, valprop
real cc ,com, desc,valtotal, valprop enteros sec,tipo,unid
entero sec,tipo,unid
mostrar “Ingrese nombre del comprador”
mostrar “Ingrese nombre del comprador” lea nom
lea nom
mostrar “Ingrese cedula del comprador” mostrar “Ingrese cedula del comprador”
lea cc lea cc
mostrar ”Ingrese sector: 1-laureles, 2-Robledo, 3-
Manrique” mostrar ”Ingrese sector: 1-laureles, 2-Robledo, 3-Manrique”
lea sec lea sec
mostrar “Ingrese tipo de propiedad: 1: Un piso, 2: Dos mostrar “Ingrese tipo de propiedad: 1: Un piso, 2: Dos pisos,
pisos, 3; Apartamentos” 3; Apartamentos”
lea tipo lea tipo
mostrar “Ingrese unidades a comprar” mostrar “Ingrese unidades a comprar”
lea unid lea unid
operaciones(nom,cc,sec,tipo,unid)//invoco metodo
fin principal operaciones(nom,cc,sec,tipo,unid)//invoco metodo
11
fin principal

Publico vacio operaciones(texto nombre, real Publico vacio operaciones(texto nombre, real cedula,e
cedula,entero sec,entero tipo,entero unid) entero tipo,entero unid)

SI ( sec = 1) según (sec) hacer


entonces CASO 1:
SI (tipo = 1 ) segun (tipo) hacer
entonces
valprop=30.000.000*unid Caso 1: valprop=30.000.000*unid
sino Caso 2: valprop=50.000.000*unid
SI (tipo = 2 ) Caso 3:valprop=38.000.000*unid
entonces Otro caso mostrar “TIPO NO VALIDO”
valprop=50.000.000*unid Fin segun
sino
si ( tipo =3 )
entonces
valprop= 38.000000*unid
sino mostrar “tipo de vivienda no
valido” SI (unid >= 3) entonces
fin si Desc=valprop*0.2
fin si Valtotal=valprop-desc
fin si Sino
Valtotal=valprop
SI (unid >= 3) entonces Finsi
Desc=valprop*0.2 com=valtotal*0.05
Valtotal=valprop-desc
Sino
Valtotal=valprop
Finsi
com=valtotal*0.05

Sino CASO 2:
si (sec = 2 ) Según (tipo) hacer
entonces Caso 1 : valprop=20.000.000*unid
si ( tipo = 1) Caso 2 :valprop=45.000.000*unid
entonces Caso 3 :valprop=35.000.000*unid
valprop = 20.000.000*unid De otro caso mostrar “tipo no valido”
sino fin segun
si ( tipo = 2)
entonces
valprop= 45.000.000*unid
sino SI (unid >= 4)
12
si ( tipo = 3 ) Entonces
entonces Desc=valprop*0.15
valprop=35.000.000*unid Valtotal=valprop-desc
sino Sino Valtotal=valprop
mostrar “tipo no valido” Finsi
fin si com=valtotal*0.03
fin si
fin si
si (unid >= 4)
Entonces
Desc=valprop*0.15
Valtotal=valprop-desc
sino
Valtotal=valprop
Fin si
com=valtotal*0.03
sino

si (sec = 3 ) CASO 3:
entonce Según (tipo) hacer
si ( tipo = 1) Caso1:valprop=25.000.000*unid
entonces Caso2:valprop=50.000.000*unid
valprop =25000000*unid Caso3:valprop=35.500.000*unid
sino De otro caso mostrar “opción no valida”
si (tipo = 2) fin según
entonces
valprop = 50.000.000*unid
sino
si (tipo = 3)
entonces
valprop=35500000*unid
sino
mostrar “ tipo de vivienda no
valido
fin si SI (unid>=2) Entonces
Desc=valprop*0.1
fin si Valtotal=valprop-desc
fin si SINO Valtotal=valprop
SI (unid>=2) Finsi
Entonces Com = 0
desc=valprop*0.1
Valtotal=valprop-desc De otro caso mostrar “ sector no valido”
sino Valtotal=valprop
Finsi Fin segun
Com = 0 Mostrar “El nombre del cliente es” nom
Sino Mostrar “La cedula del cliente es” cc
Mostrar “sector no valido” Mostrar “ El descuento de la compra es:” desc
13
Fin si Mostrar “ El total a pagar es: “ valtotal
Mostrar “El nombre del cliente es” nombre Mostrar “ La comisión del vendedor es de:” com
Mostrar “La cedula del cliente es” cedula Fin metodo
Mostrar “ El descuento de la compra es:” desc Fin clase
Mostrar “ El total a pagar es: “ valtotal
Mostrar “ La comisión del vendedor es de:” com
fin metodo
fin clase

9. Consulta próxima semana:


Estructura ciclo PARA: cómo funciona, para que sirve, Traer tres ejemplos de la vida
real,
Variable contadora, dos ejemplos
Variable acumuladora: Traer tres ejemplos
BIBLIOGRAFIA UTILIZADA
Unidad I: Programación Orientada a Objetos Natalia Rodríguez Castellón
Apuntes personales profesor Jorge Suaza Jiménez
Documentos tomados de internet para uso académico
Apuntes personales Profesora Olga Lucia Suaza Jiménez

14
15