SlideShare una empresa de Scribd logo
1 de 22
2.4 Estructuras de selección
Una decisión es la estructura según la cual se puede escoger uno de entre dos caminos lógicos
dependiendo de una condición que al ser evaluada nos brinda la oportunidad de saber cuál de los dos
caminos escoger.La evaluación de dicha condición siempre va a originar una respuesta VERDADERA
(cuando la condición se cumple) o FALSA (cuando dicha condición no se cumple) y con ello se podrá
saber cuál es el conjunto de instrucciones a resolver.La representación de una estructura selectiva se
hace con palabras en pseudocódigo (if – then – else o en español si – entonces - sino) y en flujograma
con una figura geométrica en forma de rombo.
La condición,en algoritmos técnicos,se podrá expresar en términos de dos tipos de operadores:los
operadores relacionales y los operadores booleanos.Recordemos que los operadores relacionales
son aquellos que nos originan una respuesta Verdadera o Falsa y que corresponden a los símbolos
mayor que,menor que,mayor o igual,menor o igual,igual (de comparación) ydiferente de. Los
operadores booleanos son aquellos que nos permiten establecer conexiones entre expresiones en
donde aparezcan los operadores booleanos ycorresponden a los operadores:
 AND: Genera Verdadero si todas las expresiones relacionales conectadas son Verdaderas
 OR: Genera Verdadero si al menos una de las expresiones conectadas es Verdadera
 NOT que invierte el sentido lógico de la expresión
Con estos elementos podemos recordar que la utilización de las decisiones como estructura básica de
programación no tiene ninguna restricción yque pueden considerarse como válidos los siguientes
casos:
 Una decisión dentro de otra
 Una decisión a continuación de otra
 Muchas decisiones dentro de otras
 Muchas decisiones a continuación de otras
Los lenguajes de programación normalmente cuentan con una forma de seleccionar uno de entre
varios caminos lógicos que correspondería a una pequeña modificación de la estructura de DECISIÓN
pero que en últimas parte del mismo supuesto.
Las estructuras selectivas o alternativas se clasifican en:
a) Simples
b) Dobles
c) Compuestas
d) Múltiples
2.4.1 Estructuras selectivas simples
Se identifican porque están compuestos únicamente de una condición.
La estructura si – entonces evalúa la condición y en tal caso:
Si la condición es verdadera,entonces ejecuta la acción Si (o acciones si son varias).
Si la condición es falsa,entonces no se hace nada.
Representación gráfica:
DONDE:
Condición:Expresa la condición o conjunto de condiciones a evaluar
Acción: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta
verdadera.
EJEMPLOS
tal, que dado como dato la calificación de un alumno en un examen, escriba
DEFINICIÓN DEL PROBLEMA
El mismo enunciado.
ANÁLISIS DEL PROBLEMA
Salidas: mensaje de aprobado si se cumple la condición.
Entradas: calificación
Datos adicionales: un alumno aprueba si la calificación es mayor o igual que 7.
Sección de declaraciones:
Var Real: Cal
Donde Cal = calificación“Aprobado” en caso que esa calificación fuese mayor o igual que 7.
PRUEBA MANUAL:
2.4.2 Estructuras selectivas dobles
Son estructuras lógicas que permiten controlar la ejecución de varias acciones yse utilizan cuando se
tienen dos opciones de acción,por la naturaleza de estas se debe ejecutar una o la otra, pero no
ambas a la vez, es decir, son mutuamente excluyentes.
REPRESENTACIÓN GRÁFICA:
DONDE:
Condición: Expresa la condición o conjunto de condiciones a evaluar
Acción 1: Expresa la operación o conjunto de operaciones que se van a realizar si la
condición resulta verdadera.
Acción 2: Expresa la operación o conjunto de operaciones que se van a realizar si la
condición resulta falsa
REPRESENTACIÓN PSEUDOCODIFICADA.
Español Inglés
Si <condición> entonces If <condición> then
<acción S1> <acción S1>
sino else
<acción S2> <acción S2>
Fin_Si End_if
En este caso se constituye en una selección de dos posibilidades. Si la condición es verdadera se
ejecuta la acción 1, y si es falsa, se ejecuta la acción 2. En el Flujograma es recomendable que el
camino verdadero deba colocarse a la derecha y lo falso a la izquierda. En el diagrama N -S no se
puede cambiar el orden del Si y No.
EJEMPLOS
Dado como dato la calificación de un
alumno en un examen, escriba “aprobado” si
su calificación es mayor o igual que 7 y
“Reprobado” en caso contrario.
EJEMPLOS
Dado el sueldo de un empleado, encontrar el nuevo sueldo si obtiene un aumento del 10%
si su sueldo es inferior a $600, en caso contrario no tendrá aumento.
DEFINICIÓN DEL PROBLEMA.
El mismo enunciado.
ANALISIS DEL PROBLEMA.
Salidas: nuevo sueldo
Entradas: sueldo del empleado
2.4.3 Estructuras selectivas compuestas
En la solución de problemas encontramos numerosos casos en los que luego de tomar
una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra
decisión. Dicho proceso puede repetirse numerosas veces.
En aquellos problemas en donde un bloque condicional incluye otro bloque
condicional se dice que un bloque está anidado dentro del otro.
A este tipo de estructuras se les conoce también como estructuras selectivas
anidadas.
En este caso hay dos condiciones, la primera condición S1 es una selectiva simple,
porque solamente tiene una posibilidad. Cuando es verdadera, se ejecuta
la condición S2. Si es falsa, se continúa directamente con el siguiente bloque de
diagrama. La condición S2 es selectiva doble, tiene dos posibilidades. Cuando es
verdadera, se ejecuta la acción S21 y si es falsa, se ejecuta la acción S22.
EJEMPLOS
1. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras
trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se
consideran horas extras y que éstas 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 lo que se paga por una hora normal
y el resto al triple.
DEFINICIÓN DEL PROBLEMA
El mismo enunciado.
ANÁLISIS DEL PROBLEMA.
Datos de salida: Pago.
Datos de entrada: número de horas trabajadas y pago por hora normal.
Datos Adicionales:
Lo primero que hay que determinar es si el trabajador trabajó horas extras o no.
Encontrar las horas extras de la siguiente forma:
Horas extras = horas trabajadas – 40
En caso que sií trabajó horas extras:
Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras –8 y pago por horas extras
= pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8
De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras.
Finalmente, pago total que recibirá el trabajador será:
Pago = pago por hora normal * 40 + pago por horas extras.
Si no trabajó horas extras tendremos:
Pago = pago por hora normal * horas trabajadas.
Definición de variables:
ht = horas trabajadas het = horas extras que exceden de 8
ph = pago por hora normal phe = pago por horas extras
he = horas extras pt = pago que recibe el trabajador
DECLARACIÓN DE VARIABLES:
ENTERO: ht, he, het REAL: ph, phe, pt
PSEUDOCÓDIGO:
Begin
Read (ht, ph)
If ht >40 then
he ß ht – 40
If he > 8 then
het ß he – 8
phe ß ph * 2 * 8 + ph * 3 * het
else
phe ß ph * 2 * he
End_if
pt ß ph * 40 + phe
else
pt <-- ph * ht
End_if
Print (“El pago total de horas trabajadas es:”, pt)
Fin
EJEMPLO 2.
Leer tres números enteros diferentes entre sí y determinar el número mayor de los tres.
PRUEBA MANUAL DEL ALGORITMO
ENTRADA PROCESO SALIDA
N1 N2 N3 NM
10 8 1
(N1 > N2) and (N1 > N3)?
(10>8) and (10>1)? YES
NM = 10
10
2 13 4
(N1 > N2) and (N1 > N3)?
(2 > 13) and (2 > 4)
F and F NO
(N2 > N3)?
(13 > 4) YES
NM = 13
13
5 2 8
(N1 > N2) and (N1 > N3)?
(5 > 2) and (5 >8)
T and F NO
(N2 > N3)?
(2 > 8) NO
NM = 8
2.4.4 Estructuras selectivas múltiples
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría
resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de
alternativas es grande puede plantear serios problemas de escritura y de legibilidad.
Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores
distintos,1,2 , 3, ...., n y según que elija uno de estos valores en la condición, se realizará una de las
n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n
posibles.
Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el
valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.
Así, si el selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutará la acción 2, si
toma el valor N, se realizará la acción N. De otra forma, si no es ningún caso de los anteri ores,
significa que no se cumplió ninguna de las anteriores, entonces se realizará la acción X.
Deberá reemplazar Selector por variables, propiedad o expresión que vaya a ser el valor clave.
EJEMPLO:
Diseñar un algoritmo tal que dados como datos dos variables de tipo entero,
obtenga el resultado de la siguiente función:
DEFINICION DEL PROBLEMA
El mismo enunciado.
ANALISIS DEL PROBLEMA
Salidas: Resp
Entradas: V, num
Datos adicionales: según el valor que tome num, así encontraremos Resp con las
fórmulas dadas.
Sección de Declaraciones:
Var integer: V, num
Real: resp
Donde resp será el resultado de la función, V y num los valores de las dos variables de entrada
PRUEBA MANUAL DEL ALGORITMO
ENTRADA PROCESO SALIDA
NUM V
Switch (1) resp=100 * 4
Resp
1 4
Resp = 400 400
5 2 Switch(5) default:
Resp = 0
0
Para este ejercicio es recomendable agregar una validación antes de entrar al switch, ya que V nunca
puede ser cero pues invalida la opción 3 al volverse indeterminada la división.
2.4.5 Expresiones lógicas
Sirven para plantear condiciones o comparaciones ydan como resultado un valor booleano verdadero
o falso,es decir, se cumple o no se cumple la condición.Se pueden clasificar en simples y complejas.
Las simples son las que usan operadores relacionales y las complejas las que usan operadores
lógicos.
EJEMPLO
Un ejemplo en el cual usamos el operador lógico AND sería:
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene dos
calificaciones denotadas como C1 y C2. El aspirante que obtenga calificaciones mayores que
80 en ambos exámenes es aceptado; en caso contrario es rechazado.
En este ejemplo se dan las condiciones siguientes:
If (C1 >= 80) and (C2 >= 80) then
print (“aceptado”)
else
print (“rechazado”)
end_if
Note que también usa operadores relacionales. Por lo general cuando hay operadores lógicos, éstos
van acompañados de operadores relacionales.
Un ejemplo usando el operador lógico OR sería:
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene dos
calificaciones denotadas como C1 y C2. El aspirante que obtenga una calificación mayor que 90 en
cualquiera de los exámenes es aceptado; en caso contrario es rechazado.
En este caso se dan las condiciones siguientes:
If (C1 >=90) or (C2 >=90) then
print (“aceptado”)
else
print (“rechazado”)
Fin_si
La instrucción equivale a OR ya que nos dice que puede ser en cualquiera de los exámenes no
necesariamente en los dos. En el ejemplo 1 la palabra ambos equivalía a seleccionar la instrucción
AND.
Si la instrucción nos dijera “que obtenga una nota en cualquiera de los exámenes pero no en ambos”,
nos estaría indicando una instrucción XOR que es un tipo de OR pero exclusivo. Es decir, no puede
considerarse el caso en que tenga la misma nota en los dos exámenes, solo en uno de los dos.
2.5 Estructuras cíclicas
2.5.1 Conceptios básicos
Estos conceptos básicos de un programa son fundamentales en las estructuras repetitivas.
2.5.2 BUCLES (LAZO)
El bucle,ciclo o lazo, es un segmento de un algoritmo o programa cuyas instrucciones se repiten un
número determinado de veces,mientras se cumple una determinada condición específica (existe o es
verdadera la condición).[1]
Un ciclo tiene las siguientes características:
a. El conjunto de instrucciones debe ser finito
b. La cantidad de veces que se repita dicho conjunto de instrucciones también debe ser finita.En
algunos casos esta cantidad de veces va a depender de una condición explícita y en otros casos va a
depender de una condición implícita.Una condición es explícita cuando depende solamente de la
misma ejecución del programa sin que sea importante la participación del usuario.Asimismo una
condición es implícita cuando depende solamente de la voluntad del usuario y por lo tanto la cantidad
de iteraciones o repeticiones del ciclo podría llegar a ser diferente cada vez pues sería posible que
cambiara con cada usuario.
c. Deben estar claramente demarcados el inicio yel fin del ciclo. En los casos en los cuales solo exista
una instrucción a iterar, no serán necesarias dichas marcas.
d. Dentro de un ciclo podrá ir cualquiera de las otras estructuras que se han estudiado incluyendo
otros ciclos.
Un bucle consta de tres partes:
 Decisión
 Cuerpo del bucle
 Salida del bucle
2.5.3 Iteración
Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el
bucle.
2.5.4 Contadores
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada
iteración. Se utilizan en los siguientes casos:
 Para contabilizar el número de veces que es necesario repetir una acción (variable de control
de un bucle)
 Para contar un suceso particular solicitado por el enunciado del problema (asociado a un
bucle independiente)
 Representa la variable de control del ciclo.
 Toma un valor inicial (generalmente 0 ó 1) y se incrementa en la mayoría de los casos.
 Toma un valor inicial y se compara con el valor final.
Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle;deben
realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento
del mismo.
La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle.
Representación:
<nombre del contador> ß <nombre del contador> + <valor constante>
Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: i = i + 1 (incremento)
i = i – 1 (decremento)
2.5.5 Acumulador o totalizador
Un acumulador es un campo de memoria que suma sobre símisma un conjunto de valores para de
esta manera tener la suma de todos ellos en una sola variable.Se utiliza en aquellos casos en que se
desea obtener el total acumulado de un conjunto de cantidades,siendo preciso inicializarlo con el
valor cero.
Además en las situaciones en que hay que obtener un total como producto de distintas cantidades se
utiliza un acumulador,debiéndose inicializar con el valor.
La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en
uno en un valor constante,el acumulador va aumentando en una cantidad variable.
Representación: <Nombre del acumulador> ß <nombre del acumulador> + <valor variable>
[1] Tomado de enriquebarrueto0.tripod.com/algoritmos/cap03.doc
EJEMPLO DE ACUMULADOR Y TOTALIZADOR.
Debe notar que el cambio de las variables contadoras se realiza de uno en uno y el de las variables
acumuladoras de la suma de los números.
Desarrollo de logica de programacion unidades de 2.3 a 2.5

Más contenido relacionado

La actualidad más candente

Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...lizbeth950318
 
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Carlos Lechuga
 
Definici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianiDefinici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianicanigiani83
 
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...OlveraLizbeth
 
Experimentos con arreglos Ortogonales Unidad II Ing. de la Calidad
Experimentos con arreglos Ortogonales Unidad II Ing. de la CalidadExperimentos con arreglos Ortogonales Unidad II Ing. de la Calidad
Experimentos con arreglos Ortogonales Unidad II Ing. de la CalidadIngrid Burgos
 
Cuadrados latinos y grecolatinos
Cuadrados latinos y grecolatinosCuadrados latinos y grecolatinos
Cuadrados latinos y grecolatinosHero Valrey
 
Método simplex
Método simplexMétodo simplex
Método simplexBIOPOWER
 
Computacional ucsm
Computacional ucsmComputacional ucsm
Computacional ucsmDeyrolCruz
 
Solucionar Problemas Por Medio de Algoritmos
Solucionar Problemas Por Medio de AlgoritmosSolucionar Problemas Por Medio de Algoritmos
Solucionar Problemas Por Medio de Algoritmospilgrim15
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesAndreina Trejo
 
Guía de estudio algoritmos en dfd 2
Guía de estudio algoritmos en dfd 2Guía de estudio algoritmos en dfd 2
Guía de estudio algoritmos en dfd 2geosam
 
Clase 6 Decisiones Simples Y Dobles
Clase 6 Decisiones Simples Y DoblesClase 6 Decisiones Simples Y Dobles
Clase 6 Decisiones Simples Y Doblessalomonaquino
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacionaryesisgomez
 

La actualidad más candente (17)

Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
 
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
 
Definici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianiDefinici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigiani
 
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...Lineamientos para la realización de la actividad de aprendizaje basado en pro...
Lineamientos para la realización de la actividad de aprendizaje basado en pro...
 
Guia Por Competencia
Guia Por CompetenciaGuia Por Competencia
Guia Por Competencia
 
Experimentos con arreglos Ortogonales Unidad II Ing. de la Calidad
Experimentos con arreglos Ortogonales Unidad II Ing. de la CalidadExperimentos con arreglos Ortogonales Unidad II Ing. de la Calidad
Experimentos con arreglos Ortogonales Unidad II Ing. de la Calidad
 
Cuadrados latinos y grecolatinos
Cuadrados latinos y grecolatinosCuadrados latinos y grecolatinos
Cuadrados latinos y grecolatinos
 
Taguchi
TaguchiTaguchi
Taguchi
 
Método simplex
Método simplexMétodo simplex
Método simplex
 
Computacional ucsm
Computacional ucsmComputacional ucsm
Computacional ucsm
 
Solucionar Problemas Por Medio de Algoritmos
Solucionar Problemas Por Medio de AlgoritmosSolucionar Problemas Por Medio de Algoritmos
Solucionar Problemas Por Medio de Algoritmos
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Guía de estudio algoritmos en dfd 2
Guía de estudio algoritmos en dfd 2Guía de estudio algoritmos en dfd 2
Guía de estudio algoritmos en dfd 2
 
Clase 6 Decisiones Simples Y Dobles
Clase 6 Decisiones Simples Y DoblesClase 6 Decisiones Simples Y Dobles
Clase 6 Decisiones Simples Y Dobles
 
Diseño taguchi power_point
Diseño taguchi power_pointDiseño taguchi power_point
Diseño taguchi power_point
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
Método simplex.
Método simplex. Método simplex.
Método simplex.
 

Similar a Desarrollo de logica de programacion unidades de 2.3 a 2.5

Sesion 04 estructuras de control selectivas - teoria
Sesion 04   estructuras de control selectivas - teoriaSesion 04   estructuras de control selectivas - teoria
Sesion 04 estructuras de control selectivas - teoriasantos nina mamani
 
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2 Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2 MarketingAD
 
Formulas lógicas y estadisticas
Formulas lógicas y estadisticasFormulas lógicas y estadisticas
Formulas lógicas y estadisticasMelissa Torrealba
 
Estructuras de control algoritmos dq
Estructuras de control algoritmos   dqEstructuras de control algoritmos   dq
Estructuras de control algoritmos dqDorys Quiroz Quiroz
 
Conceptos básicos de programación
Conceptos básicos de programaciónConceptos básicos de programación
Conceptos básicos de programaciónYerkoRomero3
 
Estructura condicional
Estructura condicionalEstructura condicional
Estructura condicionalarredesjavier
 
Decisiones con la función
Decisiones con la funciónDecisiones con la función
Decisiones con la funciónWilliam Martinez
 
Rubrica Del Segundo Examen
Rubrica Del Segundo ExamenRubrica Del Segundo Examen
Rubrica Del Segundo Examenguestefcf62a8
 
Estructuras de control c2. p2.
Estructuras de control c2. p2.Estructuras de control c2. p2.
Estructuras de control c2. p2.DENIRAMIREZANDRADE
 
Practicas sencillas para C#
Practicas sencillas para C# Practicas sencillas para C#
Practicas sencillas para C# saydo2007
 

Similar a Desarrollo de logica de programacion unidades de 2.3 a 2.5 (20)

Estructuras
EstructurasEstructuras
Estructuras
 
51
5151
51
 
Excondicionales
ExcondicionalesExcondicionales
Excondicionales
 
Sesion 04 estructuras de control selectivas - teoria
Sesion 04   estructuras de control selectivas - teoriaSesion 04   estructuras de control selectivas - teoria
Sesion 04 estructuras de control selectivas - teoria
 
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2 Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
Método Simplex Mercadotecnia Análisis de Decisiones Equipo 2
 
condicionales
condicionalescondicionales
condicionales
 
Formulas lógicas y estadisticas
Formulas lógicas y estadisticasFormulas lógicas y estadisticas
Formulas lógicas y estadisticas
 
Taller algoritmos2
Taller algoritmos2Taller algoritmos2
Taller algoritmos2
 
Funciones excel
Funciones excelFunciones excel
Funciones excel
 
Estructuras de control algoritmos dq
Estructuras de control algoritmos   dqEstructuras de control algoritmos   dq
Estructuras de control algoritmos dq
 
Guía Nº 03
Guía Nº 03Guía Nº 03
Guía Nº 03
 
Conceptos básicos de programación
Conceptos básicos de programaciónConceptos básicos de programación
Conceptos básicos de programación
 
Funciones pdf
Funciones pdfFunciones pdf
Funciones pdf
 
MANUAL DE EXCEL
MANUAL DE EXCELMANUAL DE EXCEL
MANUAL DE EXCEL
 
Estructura condicional
Estructura condicionalEstructura condicional
Estructura condicional
 
Decisiones con la función
Decisiones con la funciónDecisiones con la función
Decisiones con la función
 
Rubrica Del Segundo Examen
Rubrica Del Segundo ExamenRubrica Del Segundo Examen
Rubrica Del Segundo Examen
 
Estructuras de control c2. p2.
Estructuras de control c2. p2.Estructuras de control c2. p2.
Estructuras de control c2. p2.
 
Introduccion_a_la_programacion_II.pdf
Introduccion_a_la_programacion_II.pdfIntroduccion_a_la_programacion_II.pdf
Introduccion_a_la_programacion_II.pdf
 
Practicas sencillas para C#
Practicas sencillas para C# Practicas sencillas para C#
Practicas sencillas para C#
 

Más de Miguel Martinez

Más de Miguel Martinez (12)

U8668 dmanual
U8668 dmanualU8668 dmanual
U8668 dmanual
 
Cap06 arreglos y vectores.
Cap06 arreglos y vectores.Cap06 arreglos y vectores.
Cap06 arreglos y vectores.
 
Estructuras algoritnicas de control
Estructuras algoritnicas de controlEstructuras algoritnicas de control
Estructuras algoritnicas de control
 
Embajador
EmbajadorEmbajador
Embajador
 
Disciplina
DisciplinaDisciplina
Disciplina
 
Conejos
ConejosConejos
Conejos
 
Cocina
CocinaCocina
Cocina
 
Creacion de una maquina virtual
Creacion de una maquina virtualCreacion de una maquina virtual
Creacion de una maquina virtual
 
Instalacion de windows 7
Instalacion de windows 7Instalacion de windows 7
Instalacion de windows 7
 
Mezclas
MezclasMezclas
Mezclas
 
Facilitar la toma de decisiones (ideas varias)
Facilitar la toma de decisiones (ideas varias)Facilitar la toma de decisiones (ideas varias)
Facilitar la toma de decisiones (ideas varias)
 
Platillos2
Platillos2Platillos2
Platillos2
 

Desarrollo de logica de programacion unidades de 2.3 a 2.5

  • 1. 2.4 Estructuras de selección Una decisión es la estructura según la cual se puede escoger uno de entre dos caminos lógicos dependiendo de una condición que al ser evaluada nos brinda la oportunidad de saber cuál de los dos caminos escoger.La evaluación de dicha condición siempre va a originar una respuesta VERDADERA (cuando la condición se cumple) o FALSA (cuando dicha condición no se cumple) y con ello se podrá saber cuál es el conjunto de instrucciones a resolver.La representación de una estructura selectiva se hace con palabras en pseudocódigo (if – then – else o en español si – entonces - sino) y en flujograma con una figura geométrica en forma de rombo. La condición,en algoritmos técnicos,se podrá expresar en términos de dos tipos de operadores:los operadores relacionales y los operadores booleanos.Recordemos que los operadores relacionales son aquellos que nos originan una respuesta Verdadera o Falsa y que corresponden a los símbolos mayor que,menor que,mayor o igual,menor o igual,igual (de comparación) ydiferente de. Los operadores booleanos son aquellos que nos permiten establecer conexiones entre expresiones en donde aparezcan los operadores booleanos ycorresponden a los operadores:  AND: Genera Verdadero si todas las expresiones relacionales conectadas son Verdaderas  OR: Genera Verdadero si al menos una de las expresiones conectadas es Verdadera  NOT que invierte el sentido lógico de la expresión Con estos elementos podemos recordar que la utilización de las decisiones como estructura básica de programación no tiene ninguna restricción yque pueden considerarse como válidos los siguientes casos:  Una decisión dentro de otra  Una decisión a continuación de otra  Muchas decisiones dentro de otras  Muchas decisiones a continuación de otras Los lenguajes de programación normalmente cuentan con una forma de seleccionar uno de entre varios caminos lógicos que correspondería a una pequeña modificación de la estructura de DECISIÓN pero que en últimas parte del mismo supuesto. Las estructuras selectivas o alternativas se clasifican en: a) Simples b) Dobles c) Compuestas d) Múltiples
  • 2. 2.4.1 Estructuras selectivas simples Se identifican porque están compuestos únicamente de una condición. La estructura si – entonces evalúa la condición y en tal caso: Si la condición es verdadera,entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa,entonces no se hace nada. Representación gráfica: DONDE: Condición:Expresa la condición o conjunto de condiciones a evaluar Acción: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera. EJEMPLOS tal, que dado como dato la calificación de un alumno en un examen, escriba
  • 3. DEFINICIÓN DEL PROBLEMA El mismo enunciado. ANÁLISIS DEL PROBLEMA Salidas: mensaje de aprobado si se cumple la condición. Entradas: calificación Datos adicionales: un alumno aprueba si la calificación es mayor o igual que 7. Sección de declaraciones: Var Real: Cal Donde Cal = calificación“Aprobado” en caso que esa calificación fuese mayor o igual que 7.
  • 4. PRUEBA MANUAL: 2.4.2 Estructuras selectivas dobles Son estructuras lógicas que permiten controlar la ejecución de varias acciones yse utilizan cuando se tienen dos opciones de acción,por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
  • 5. REPRESENTACIÓN GRÁFICA: DONDE: Condición: Expresa la condición o conjunto de condiciones a evaluar Acción 1: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera. Acción 2: Expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta falsa REPRESENTACIÓN PSEUDOCODIFICADA. Español Inglés Si <condición> entonces If <condición> then <acción S1> <acción S1> sino else <acción S2> <acción S2> Fin_Si End_if
  • 6. En este caso se constituye en una selección de dos posibilidades. Si la condición es verdadera se ejecuta la acción 1, y si es falsa, se ejecuta la acción 2. En el Flujograma es recomendable que el camino verdadero deba colocarse a la derecha y lo falso a la izquierda. En el diagrama N -S no se puede cambiar el orden del Si y No. EJEMPLOS Dado como dato la calificación de un alumno en un examen, escriba “aprobado” si su calificación es mayor o igual que 7 y “Reprobado” en caso contrario.
  • 7. EJEMPLOS Dado el sueldo de un empleado, encontrar el nuevo sueldo si obtiene un aumento del 10% si su sueldo es inferior a $600, en caso contrario no tendrá aumento. DEFINICIÓN DEL PROBLEMA. El mismo enunciado. ANALISIS DEL PROBLEMA. Salidas: nuevo sueldo Entradas: sueldo del empleado
  • 8. 2.4.3 Estructuras selectivas compuestas En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro. A este tipo de estructuras se les conoce también como estructuras selectivas anidadas.
  • 9. En este caso hay dos condiciones, la primera condición S1 es una selectiva simple, porque solamente tiene una posibilidad. Cuando es verdadera, se ejecuta la condición S2. Si es falsa, se continúa directamente con el siguiente bloque de diagrama. La condición S2 es selectiva doble, tiene dos posibilidades. Cuando es verdadera, se ejecuta la acción S21 y si es falsa, se ejecuta la acción S22. EJEMPLOS 1. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que éstas 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 lo que se paga por una hora normal y el resto al triple. DEFINICIÓN DEL PROBLEMA El mismo enunciado. ANÁLISIS DEL PROBLEMA. Datos de salida: Pago. Datos de entrada: número de horas trabajadas y pago por hora normal. Datos Adicionales: Lo primero que hay que determinar es si el trabajador trabajó horas extras o no. Encontrar las horas extras de la siguiente forma: Horas extras = horas trabajadas – 40 En caso que sií trabajó horas extras: Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras –8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8 De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras. Finalmente, pago total que recibirá el trabajador será: Pago = pago por hora normal * 40 + pago por horas extras. Si no trabajó horas extras tendremos:
  • 10. Pago = pago por hora normal * horas trabajadas. Definición de variables: ht = horas trabajadas het = horas extras que exceden de 8 ph = pago por hora normal phe = pago por horas extras he = horas extras pt = pago que recibe el trabajador DECLARACIÓN DE VARIABLES: ENTERO: ht, he, het REAL: ph, phe, pt PSEUDOCÓDIGO: Begin Read (ht, ph) If ht >40 then he ß ht – 40 If he > 8 then het ß he – 8 phe ß ph * 2 * 8 + ph * 3 * het else phe ß ph * 2 * he End_if pt ß ph * 40 + phe else pt <-- ph * ht End_if Print (“El pago total de horas trabajadas es:”, pt)
  • 11. Fin EJEMPLO 2. Leer tres números enteros diferentes entre sí y determinar el número mayor de los tres.
  • 12. PRUEBA MANUAL DEL ALGORITMO ENTRADA PROCESO SALIDA N1 N2 N3 NM 10 8 1 (N1 > N2) and (N1 > N3)? (10>8) and (10>1)? YES NM = 10 10 2 13 4 (N1 > N2) and (N1 > N3)? (2 > 13) and (2 > 4) F and F NO (N2 > N3)? (13 > 4) YES NM = 13 13 5 2 8 (N1 > N2) and (N1 > N3)? (5 > 2) and (5 >8) T and F NO (N2 > N3)? (2 > 8) NO NM = 8
  • 13.
  • 14. 2.4.4 Estructuras selectivas múltiples Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad. Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos,1,2 , 3, ...., n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles. Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N. Así, si el selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutará la acción 2, si toma el valor N, se realizará la acción N. De otra forma, si no es ningún caso de los anteri ores, significa que no se cumplió ninguna de las anteriores, entonces se realizará la acción X. Deberá reemplazar Selector por variables, propiedad o expresión que vaya a ser el valor clave. EJEMPLO: Diseñar un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente función: DEFINICION DEL PROBLEMA El mismo enunciado. ANALISIS DEL PROBLEMA Salidas: Resp Entradas: V, num Datos adicionales: según el valor que tome num, así encontraremos Resp con las
  • 15.
  • 16. fórmulas dadas. Sección de Declaraciones: Var integer: V, num Real: resp Donde resp será el resultado de la función, V y num los valores de las dos variables de entrada PRUEBA MANUAL DEL ALGORITMO ENTRADA PROCESO SALIDA NUM V Switch (1) resp=100 * 4 Resp 1 4
  • 17. Resp = 400 400 5 2 Switch(5) default: Resp = 0 0 Para este ejercicio es recomendable agregar una validación antes de entrar al switch, ya que V nunca puede ser cero pues invalida la opción 3 al volverse indeterminada la división. 2.4.5 Expresiones lógicas Sirven para plantear condiciones o comparaciones ydan como resultado un valor booleano verdadero o falso,es decir, se cumple o no se cumple la condición.Se pueden clasificar en simples y complejas. Las simples son las que usan operadores relacionales y las complejas las que usan operadores lógicos. EJEMPLO Un ejemplo en el cual usamos el operador lógico AND sería: Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene dos calificaciones denotadas como C1 y C2. El aspirante que obtenga calificaciones mayores que 80 en ambos exámenes es aceptado; en caso contrario es rechazado. En este ejemplo se dan las condiciones siguientes: If (C1 >= 80) and (C2 >= 80) then print (“aceptado”) else print (“rechazado”) end_if Note que también usa operadores relacionales. Por lo general cuando hay operadores lógicos, éstos van acompañados de operadores relacionales.
  • 18. Un ejemplo usando el operador lógico OR sería: Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene dos calificaciones denotadas como C1 y C2. El aspirante que obtenga una calificación mayor que 90 en cualquiera de los exámenes es aceptado; en caso contrario es rechazado. En este caso se dan las condiciones siguientes: If (C1 >=90) or (C2 >=90) then print (“aceptado”) else print (“rechazado”) Fin_si La instrucción equivale a OR ya que nos dice que puede ser en cualquiera de los exámenes no necesariamente en los dos. En el ejemplo 1 la palabra ambos equivalía a seleccionar la instrucción AND. Si la instrucción nos dijera “que obtenga una nota en cualquiera de los exámenes pero no en ambos”, nos estaría indicando una instrucción XOR que es un tipo de OR pero exclusivo. Es decir, no puede considerarse el caso en que tenga la misma nota en los dos exámenes, solo en uno de los dos. 2.5 Estructuras cíclicas 2.5.1 Conceptios básicos Estos conceptos básicos de un programa son fundamentales en las estructuras repetitivas. 2.5.2 BUCLES (LAZO) El bucle,ciclo o lazo, es un segmento de un algoritmo o programa cuyas instrucciones se repiten un número determinado de veces,mientras se cumple una determinada condición específica (existe o es verdadera la condición).[1] Un ciclo tiene las siguientes características: a. El conjunto de instrucciones debe ser finito b. La cantidad de veces que se repita dicho conjunto de instrucciones también debe ser finita.En algunos casos esta cantidad de veces va a depender de una condición explícita y en otros casos va a depender de una condición implícita.Una condición es explícita cuando depende solamente de la misma ejecución del programa sin que sea importante la participación del usuario.Asimismo una
  • 19. condición es implícita cuando depende solamente de la voluntad del usuario y por lo tanto la cantidad de iteraciones o repeticiones del ciclo podría llegar a ser diferente cada vez pues sería posible que cambiara con cada usuario. c. Deben estar claramente demarcados el inicio yel fin del ciclo. En los casos en los cuales solo exista una instrucción a iterar, no serán necesarias dichas marcas. d. Dentro de un ciclo podrá ir cualquiera de las otras estructuras que se han estudiado incluyendo otros ciclos. Un bucle consta de tres partes:  Decisión  Cuerpo del bucle  Salida del bucle 2.5.3 Iteración Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. 2.5.4 Contadores Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada iteración. Se utilizan en los siguientes casos:  Para contabilizar el número de veces que es necesario repetir una acción (variable de control de un bucle)  Para contar un suceso particular solicitado por el enunciado del problema (asociado a un bucle independiente)  Representa la variable de control del ciclo.  Toma un valor inicial (generalmente 0 ó 1) y se incrementa en la mayoría de los casos.  Toma un valor inicial y se compara con el valor final.
  • 20. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle;deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle. Representación: <nombre del contador> ß <nombre del contador> + <valor constante> Si en vez de incremento es decremento se coloca un menos en lugar del más. Ejemplo: i = i + 1 (incremento) i = i – 1 (decremento) 2.5.5 Acumulador o totalizador Un acumulador es un campo de memoria que suma sobre símisma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable.Se utiliza en aquellos casos en que se desea obtener el total acumulado de un conjunto de cantidades,siendo preciso inicializarlo con el valor cero. Además en las situaciones en que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador,debiéndose inicializar con el valor.
  • 21. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno en un valor constante,el acumulador va aumentando en una cantidad variable. Representación: <Nombre del acumulador> ß <nombre del acumulador> + <valor variable> [1] Tomado de enriquebarrueto0.tripod.com/algoritmos/cap03.doc EJEMPLO DE ACUMULADOR Y TOTALIZADOR. Debe notar que el cambio de las variables contadoras se realiza de uno en uno y el de las variables acumuladoras de la suma de los números.