Sunteți pe pagina 1din 37

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
1
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONOMICAS
DEPARTAMENTO DE COMPUTACION
COMPUTACIN I
GUIA DE CLASE #: 3

Diseo de algoritmos

1. Introduccin al diseo de algoritmos

La destreza para solucionar problemas es una habilidad de pensamiento de orden superior
necesaria, para que los profesionales de cualquier rea puedan tener xito en el mundo
digital; por esta razn, se requiere seleccionar estrategias efectivas para ayudar a que los
futuros profesionales la desarrollen. Para atender esta necesidad, la programacin de
computadores constituye una buena alternativa, siempre y cuando se la enfoque al logro de
esta destreza y no a la formacin de programadores.


1.1. Anlisis del problema.

Una de las acepciones que trae el Diccionario de Real Academia
de la Lengua Espaola (RAE) respecto a la palabra Problema es
Planteamiento de una situacin cuya respuesta desconocida
debe obtenerse a travs de mtodos cientficos. Con miras a
lograr esa respuesta, un problema se puede definir como una
situacin en la cual se trata de alcanzar una meta y para lograrlo
se deben hallar y utilizar unos medios y unas estrategias.
La mayora de problemas tienen algunos elementos en comn: un estado inicial; una meta
o un estado final, lo que se pretende lograr; un conjunto de recursos, lo que est permitido
hacer y/o utilizar; y un dominio, el estado actual de conocimientos, habilidades y energa
de quien va a resolverlo (Moursund, 1999).

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
2
Cada disciplina dispone de estrategias especficas para resolver problemas de su mbito;
por ejemplo, resolver problemas matemticos implica utilizar estrategias propias de las
matemticas. Sin embargo, algunos psiclogos opinan que es posible utilizar con xito
estrategias generales, tiles para resolver problemas en muchas reas.
El presente curso detalla la estrategia de resolver problemas utilizando el diseo de
algoritmos.

1.1.1. Concepto de algoritmo.

Un algoritmo consiste en aplicar adecuadamente una serie de pasos detallados que
aseguran una Solucin correcta. Por lo general, cada algoritmo es especfico de un
dominio del conocimiento. La programacin de computadores se apoya en este mtodo.

Numerosos autores de libros sobre programacin, plantean cuatro fases para elaborar un
procedimiento que realice una tarea especfica.
Estas fases concuerdan con las operaciones mentales descritas por Polya (1957) para
resolver problemas:
1. Analizar el problema (Entender el problema)
2. Disear un algoritmo (Trazar un plan)
3. Traducir el algoritmo a un lenguaje de programacin
(Ejecutar el plan)
4. Depurar el programa (Revisar)



COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
3
1.1.2. Etapas del anlisis del problema









1.1.2.1. Formular el problema.
La solucin de un problema debe iniciar por determinar y comprender exactamente en qu
consiste ese problema.
La formulacin del problema se describe a partir de la situacin actual o real plateada.

La comprensin lingstica del problema (entender el significado de cada enunciado) es
muy importante para poder responder preguntas como:
Puedo definir mejor el problema?
Qu palabras del problema me son desconocidas?
Cules son las palabras clave del problema?
He resuelto antes algn problema similar?
Qu informacin es importante?
Qu informacin puedo omitir?

Ejemplo de formulacin de un problema:

Se requiere 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 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 lo que se pagan las horas normales y el resto al triple.
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
4

1.1.2.2. Precisar los resultados esperados
Para establecer los resultados que se esperan (estado final) es necesario identificar la
informacin relevante, ignorar los detalles sin importancia, entender los elementos del
problema y activar el esquema correcto que permita comprenderlo en su totalidad
(Woolfolk, 1999).

Determinar con claridad cul es el resultado final (producto) que debe devolver el
programa es algo que ayuda a establecer la meta. Es necesario analizar qu resultados
se solicitan y qu formato deben tener esos resultados (impresos, en pantalla,
diagramacin, orden, etc).

1.1.2.3. Identificar datos disponibles
Otro aspecto muy importante en la etapa de anlisis del problema consiste en
determinar cul es la informacin disponible, por lo que debemos preguntarnos en esta
etapa:
Qu informacin es importante?
Qu informacin no es relevante?
Cules son los datos de entrada? (conocidos)
Cul es la incgnita?
Qu informacin me falta para resolver el problema? (datos desconocidos)
Puedo agrupar los datos en categoras?

1.1.2.4. Determinar las restricciones
Resulta fundamental que los estudiantes determinen aquello que est permitido o
prohibido hacer y/o utilizar para llegar a una solucin. En este punto se deben exponer
las necesidades y restricciones (no una propuesta de solucin). El estudiante debe
preguntarse:
Qu condiciones me plantea el problema?
Qu est prohibido hacer y/o utilizar?
Qu est permitido hacer y/o utilizar?
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
5
Cules datos puedo considerar fijos (constantes) para simplificar el problema?
Cules datos son variables?
Cules datos debo calcular?

1.1.2.5. Establecer procesos.
Consiste en determinar los procesos que permiten llegar a los resultados esperados a
partir de los datos disponibles. Se debe preguntar:
Qu procesos necesito?
Qu frmulas debo emplear?
Cmo afectan las condiciones a los procesos?
Qu debo hacer?
Cul es el orden de lo que debo hacer?

En la medida de lo posible, es aconsejable dividir el problema original en otros ms
pequeos y fciles de solucionar (submetas), hasta que los pasos para alcanzarlas se
puedan determinar con bastante precisin (mdulos). Esto es lo que en programacin se
denomina diseo descendente o top-down (Joyanes, 2001).

El diseo descendente se utiliza en la programacin estructurada de computadores debido a
que facilita:
La comprensin del problema
Las modificaciones en los mdulos
La verificacin de la solucin

Al realizar divisiones sucesivas del problema en otros ms pequeos y manejables
(mdulos), hay que tener cuidado para no perder de vista la comprensin de este como un
todo. Luego de dividir el problema original en submetas (mdulos), debe integrar cada
parte de tal forma que le permita comprender el problema como un todo (Woolfolk, 1999).
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
6
1.1.2.6. Mtodo de la caja negra para solucionar problemas (anlisis del problema).

Ejemplo No.1

I. Formulacin del problema:

Dada la base y la altura de un triangulo rectngulo, se requiere hallar el rea del
tringulo rectngulo.


II. Planteamiento del problema:










III. Definicin de variables de salida (Resultados)


Nombre Tipo Descripcin
rea Real rea de un triangulo rectngulo

IV. Definicin de variables de entrada (datos disponibles)

Nombre Tipo Descripcin
Base Real Base de un triangulo rectngulo
Altura Real Altura de un triangulo rectngulo

VI. Restricciones: la base y la altura debe ser un nmero real mayor a 0

Base >0
Altura>0

VII. procesos:

El rea de un triangulo rectngulo es igual a multiplicar la base por la altura y luego dividir
el resultado entre 2:
rea = Base x Altura /2

VIII. Variables de proceso.
No hay variables de proceso.
Proceso Base

Altura
rea del
triangulo
rectngulo
Entrada de datos
Salida de datos
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
7
1.2. Tipos de algoritmos.

Luego de analizar detalladamente el problema hasta entenderlo completamente, se procede
a disear un algoritmo (trazar un plan) que lo resuelva por medio de pasos sucesivos y
organizados en secuencia lgica y cronolgica. El concepto intuitivo de algoritmo
(procedimientos y reglas) se puede encontrar en procesos naturales de los cuales muchas
veces no se es consciente. Por ejemplo, el proceso digestivo es un concepto intuitivo de
algoritmo con el que se convive a diario sin que haga falta una definicin matemtica del
mismo.


En el mbito de la computacin, los Algoritmos son una herramienta que permite describir
claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de
ambigedad, que debe llevar a cabo un computador para lograr un resultado previsible.
Vale la pena recordar que un programa de computador consiste de una serie de
instrucciones muy precisas y escritas en un lenguaje de programacin que el computador
entiende (Logo, Java, Pascal, etc.).

En resumen, un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos
que llevan a la solucin de un determinado problema. Los hay tan sencillos y cotidianos
como seguir la receta del mdico, abrir una puerta, lavarse las manos, etc.; hasta los que
conducen a la solucin de problemas muy complejos.

El algoritmo debe tener las siguientes caractersticas:
Tener un principio
Ser simples, claros, precisos, exactos.
Tener un orden lgico.
Debe ser finito.
Tener un fin.

La definicin de un algoritmo debe describir tres partes:
Entrada.
Proceso.
Salida

Un Algoritmo est compuesto por instrucciones de diferentes tipos, organizadas
secuencialmente, en forma de estructuras de control. De estas estructuras, las ms comunes
y que se cubren en esta gua son las siguientes:
Secuencial.
Condicional (decisin, seleccin).
Iterativa (repeticin).





COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
8
EJEMPLO No 1 DE ALGORITMO NARRADO

Un procedimiento que realizamos varias veces al da consiste en lavarnos los dientes.
Veamos la forma de expresar este procedimiento como un Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla


EJEMPLO No.2 ALGORITMO NARRADO.

El ejemplo de cambiar una bombilla (foco) fundida es uno de los ms utilizados por su
sencillez para mostrar los pasos de un Algoritmo:
1. Ubicar una escalera debajo de la bombilla fundida
2. Tomar una bombilla nueva
3. Subir por la escalera
4. Girar la bombilla fundida hacia la izquierda hasta soltarla
5. Enroscar la bombilla nueva en el plafn hasta apretarla
6. Bajar de la escalera
7. Fin

Segn la forma o el mtodo en que se representan los algoritmos se pueden clasificar en
diferentes tipos. En este curso utilizaremos dos tipos de representacin de un algoritmo:
1. Pseudocdigo.
2. Diagramas de flujo de datos.

1.2.1. Algoritmo narrado o pseudocdigo:

Es la tcnica que permite expresar la solucin de un problema mediante un algoritmo
escrito en palabras normales de un idioma (por ejemplo, el espaol), utilizando palabras
imperativas. Es comn encontrar en pseudocdigo palabras como: Inicie, lea, imprima,
sume, divida, calcule, finalice. No hay un lxico obligado para el pseudocdigo, pero con el
uso frecuente se han establecido algunos estndares.



COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
9

EJEMPLO DE SEUDOCDIGO
Elaborar un Algoritmo para calcular el rea de cualquier tringulo rectngulo y presentar el
resultado en pantalla.

SEUDOCDIGO
Paso 1: INICIO
Paso 2: LEER la base del tringulo y guardarla en la variable "base"
Paso 3: LEER la altura del tringulo y guardarla en la variable "altura"
Paso 4: GUARDAR en la variable "rea" el valor de multiplicar "base" por "altura"
Paso 5: IMPRIMIR el valor de la variable "area"
Paso 6: FIN

Por lo regular, los algoritmos se escriben por refinamiento: se escribe una primera versin
que luego se descompone en varios subproblemas (el nmero depende de la complejidad el
problema) independientes entre s. Si es necesario se va refinando cada vez las
instrucciones hasta que las proposiciones generales en espaol como las del ejemplo
anterior se puedan codificar en el lenguaje seleccionado para hacer la programacin.

1.2.2. Diagramas de flujo o flujogramas.

Definicin de un diagrama de flujo:

Un diagrama de flujo representa la esquematizacin grfica de un algoritmo, por medio del
cual se muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de un
problema.

La correcta construccin del diagrama de flujo es sumamente importante porque, a partir
del mismo se escribe un programa en algn lenguaje de programacin.
Si el diagrama de flujo est completo y correcto, el paso del mismo a un lenguaje de
programacin es relativamente simple y directo.


1.2.2.1. Simbologa de los diagramas de flujo

La estandarizacin de los smbolos para la elaboracin de Diagramas de Flujo tard varios
aos. Con el fin de evitar la utilizacin de smbolos diferentes para representar procesos
iguales, la Organizacin Internacional para la Estandarizacin (ISO, por su sigla en ingls)
y el Instituto Nacional Americano de Estandarizacin (ANSI, por su sigla en ingls),
estandarizaron los smbolos que mayor aceptacin tenan en 1985. Los siguientes son los
principales smbolos para elaborar Diagramas de Flujo:






COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
10

SIMBOLO DESCRIPCION



Inicio/Final
Se utiliza para indicar el inicio y el final de un diagrama; del Inicio
slo puede salir una lnea de flujo y al Final slo debe llegar una
lnea.




Decisin
Indica la comparacin de dos datos y dependiendo del resultado
lgico (falso o verdadero) se toma la decisin de seguir un camino
del diagrama u otro.

Smbolo utilizado para representar una decisin. En su interior se
almacena una condicin y dependiendo del resultado de la evaluacin
de la misma se sigue por una de las ramas o caminos alternativos:
verdadero o falso.






Entrada General
Entrada/Salida de datos en General.
Smbolo utilizado para introducir los datos de entrada. Expresa
lectura.





Entrada por teclado
Instruccin de entrada de datos por teclado. Indica que el computador
debe esperar a que el usuario teclee un dato que se guardar en una
variable o constante.





Salida Impresa
Indica la presentacin de uno o varios resultados en forma impresa.


Salida en Pantalla
Instruccin de presentacin de mensajes o resultados en pantalla.










Iteracin ciclo for
Indica que una instruccin o grupo de instrucciones deben ejecutarse
varias veces.

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
11
Llamada a subrutina
Indica la llamada a una subrutina o procedimiento determinado.
Accin/Proceso General
Indica una accin o instruccin general que debe realizar el
computador (cambios de valores de variables, asignaciones,
operaciones aritmticas, etc.).
Conector
Indica el enlace de dos partes de un diagrama dentro de la misma
pgina.
Flujo
Indica el seguimiento lgico del diagrama. Tambin indica el sentido
o direccin de ejecucin de las operaciones.
Conector fuera de pgina
Indica el enlace de dos partes de un diagrama en pginas diferentes.


1.2.2.2. Reglas para la elaboracin de diagramas de flujo.

Cuando el algoritmo se desea expresar en forma de diagrama de flujo, se deben tener en
cuenta algunas reglas o principios bsicos para su elaboracin (Rojas & acato, 1980):
Poner un encabezado que incluya un ttulo que identifique la funcin del algoritmo; el
nombre del autor; y la fecha de elaboracin;
Slo se pueden utilizar smbolos estndar (ISO 5807);
Los diagramas se deben dibujar de arriba haca abajo y de izquierda a derecha;
La ejecucin del programa siempre empieza en la parte superior del diagrama;
Los smbolos de Inicio y Final deben aparecer solo una vez;
La direccin del flujo se debe representar por medio de flechas (lneas de flujo);
Todas las lneas de flujo deben llegar a un smbolo o a otra lnea;
Una lnea de flujo recta nunca debe cruzar a otra.
Se deben inicializar las variables que se utilicen o permitir la asignacin de valores
mediante consulta al usuario;
Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetra;
Cada rombo de decisin debe tener al menos dos lneas de salida (una para SI y otra para
NO);
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
12
Inicio
Fin
base
altura
area = (base *altura)/2
El rea es,
area
Las acciones y decisiones se deben describir utilizando el
menor nmero de palabras posible; sin que resulten
confusas o poco claras;
Si el Diagrama se vuelve complejo y confuso, es mejor
utilizar smbolos conectores para reducir las lneas de flujo;
Todo el Diagrama debe ser claro, ordenado y fcil de
recorrer;
El Diagrama se debe probar recorrindolo con datos
iniciales simples (prueba de escritorio).


Ejemplo de diagrama de flujo:

Elaborar un diagrama de flujo para calcular el rea de
cualquier tringulo rectngulo y presentar el resultado en
pantalla.


COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
13
1.2.3. Variables, constantes y expresiones aritmticas.

1.2.3.1. Variables
Para poder utilizar algoritmos con diferentes conjuntos de datos iniciales, se debe establecer
una independencia clara entre los datos iniciales de un problema y la estructura de su
solucin. Esto se logra mediante la utilizacin de Variables (cantidades que se suelen
denotar con letras identificadores- y que pueden tomar cualquier valor de un intervalo de
valores posibles).

En programacin, las Variables son espacios de trabajo (contenedores) reservados para
guardar datos (valores).
El valor de una Variable puede cambiar en algn paso del Algoritmo o permanecer
invariable; por lo tanto, el valor que contiene una variable es el del ltimo dato asignado.

Una variable se utiliza para representar un dato tipo entero, real (flotante), o una constante
de carcter. Por ejemplo:
Variable area es de tipo real
Variable i es de tipo entero,
Variable opcin es de tipo carcter.


1.2.3.2. Constantes
Las Constantes consisten en datos que, luego de ser asignados, no cambian en ninguna
instruccin del Algoritmo. Pueden contener constantes matemticas (pi) o generadas para
guardar valores fijos (3.8, "Jorge", etc.).
Existen tipos de constantes como tipos de datos, por lo tanto, puede haber constantes
enteras, reales (flotantes), de carcter, de cadenas de caracteres, booleanas, etc.


1.2.3.3. Reglas para Identificar variables, constantes y procedimientos.

En el proceso de definir los nombres que se dan a los elementos utilizados para resolver un
problema y poder diferenciar unos de otros, como son los nombres (identificadores) a
variables, constantes y procedimientos se debe tener en cuenta algunas reglas:
Los nombres pueden estar formados por una combinacin de letras y nmeros
(saldoMes, salario, fecha2, baseTriangulo, etc).
El primer carcter de un nombre debe ser una letra.
La mayora de los lenguajes de programacin diferencian las maysculas de las
minsculas.
Los nombres deben ser nemotcnicos, con solo leerlos se puede entender lo que
contienen. Deben ser muy descriptivos; no utilizar abreviaturas, a menos que se
justifique plenamente.
Es conveniente utilizar una sola palabra para nombrar pginas, controles, variables, etc.
No utilizar caracteres reservados (%, +, /, >, etc.). Se debe tener en cuenta que algunos
lenguajes de programacin no admiten las tildes.
No utilizar palabras reservadas por los lenguajes de programacin.
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
14
Para cumplir con convenciones ampliamente utilizadas (Jimnez, 2002), los nombres de
procedimientos, variables y constantes deben empezar con minscula. Ejemplo, fecha,
suma, etc.
Si es un nombre compuesto por varias palabras, cada una de las palabras (con
excepcin de la primera) debe empezar con mayscula. Ejemplo: fechaInicial,
baseTriangulo, etc.


1.2.3.4. Expresiones aritmticas.


Para poder realizar operaciones aritmticas necesitamos de operadores aritmticos.
Estos operadores nos permiten realizar operaciones aritmticas entre operandos: nmeros,
constantes o variables. El resultado de una operacin aritmtica es un nmero.

Operado Precedencia o
jerarqua del
operador
Operacin Ejemplo Resultado
^ 1 Potencia 3^2 9
* 2 Multiplicacin 5.25*3 15.75
/ 2 Divisin 17/4 4.25
Mod 2 Mdulo (residuo) 5 Mod 2 1
+ 3 Suma 58+79 137
- 3 Resta 25.96-11.25 14.71

1.2.3.4.1. Precedencia de los operadores aritmticos

Cuando hay varias operaciones en una misma expresin, cada parte de la misma se evala y
se resuelve en un orden determinado. Ese orden se conoce como prioridad de los
operadores o precedencia de los operadores.
Se pueden utilizar parntesis para modificar el orden de prioridad y forzar la resolucin de
algunas partes de una expresin antes que otras.
Las operaciones entre parntesis son siempre ejecutadas antes que las que estn fuera del
parntesis. Sin embargo, dentro de los parntesis se mantiene la prioridad normal de los
operadores.

Cuando hay multiplicacin, divisin y Mdulo en la misma expresin, cada operacin es
resuelta a medida que aparece, de izquierda a derecha. Del mismo modo, cuando se
presentan adiciones y sustracciones en una misma expresin, cada operacin es resuelta en
el orden en que aparece, de izquierda a derecha.

En resumen, al evaluar expresiones que contienen operadores aritmticos debemos respetar
la jerarqua en el orden de aplicacin. Es decir, si tenemos en una expresin ms de un
operador, debemos aplicar primero el operador de mayor jerarqua, resolver esa operacin y
as sucesivamente.

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
15
Por ejemplo:
Dados los siguientes casos, resolver cada caso aplicando las reglas
correspondientes:

a) 7 + 5 6 =6
b) 9 +7 * 8 36 / 5 =72
c) 7 * 5 ^ 3 / 4 mod 3 =2.75
d) (5 + 2) * (4 + 4) = 56
e) 7 + 3 * 2 + (2 - 1) = 14
f) 6 * 2 + 4 * 3 + 5 / 2 = 26,5
g) 5 + 1 * 4 / 2 * 7 - (8 + 2) = 9
h) 8 + (5 * 6) - 6 = 32
i) 9 + 5 * 3 = 24
j) 4 / 2 * (10 - 5) * 3 = 30


2. Estructuras de secuencia.

Una estructura se define como un esquema con cierta distribucin y orden que
permite representar una idea de forma simplificada y que bajo ciertas condiciones
es constante (Trejos, 1999). La estructura de control secuencial es la ms sencilla.
Tambin se la conoce como estructura lineal. Se compone de instrucciones que
deben ejecutarse en forma consecutiva, una tras otra, siguiendo una lnea de flujo.
Solamente los problemas muy sencillos pueden resolverse haciendo uso
nicamente de esta estructura. Normalmente, la estructura secuencial hace parte de
soluciones a problemas complejos en las que se la utiliza mezclada con estructuras
iterativas (repetir varias veces un conjunto de instrucciones) y condicionales (tomar
decisiones).


Una estructura de control secuencial puede
contener cualquiera de las siguientes instrucciones:
declaracin variables
asignacin de valores
entrada de datos
procesamiento de datos (operaciones)
reporte de resultados.










COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
16

Ejemplo

Calcular e imprimir el sueldo de un empleado, se pedir la clave del empleado, las horas
trabajadas y el pago por hora trabajada.

Algoritmo Calcular el sueldo de un empleado

1. Inicio
2. Declaracin de variables:
idEmpleado, ht: entero
pht, sueldo: real (flotante)
3. Leer cve, ht, pht
4. sueldo = ht * pht
5. Imprimir cve, sueldo
6. Fin









Inicio
idEmpleado,
ht, pht
sueldo= ht*pht
El sueldo de ,
idEmpleado es,
sueldo
Fin
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
17

3. Estructuras de seleccin.
La estructura condicional se utiliza para indicarle al computador que debe evaluar una
condicin y, a partir del resultado, ejecutar el bloque de instrucciones correspondiente. La
forma ms comn est compuesta por una proposicin (condicin) que se evala y dos
bloques de instrucciones que se ejecutan, uno cuando la condicin es verdadera (seleccin
simple y doble) y otro cuando sta es falsa (nicamente en la seleccin doble).
Algunos autores se refieren a este tipo de estructura como estructura de seleccin,
estructura selectiva o estructura de decisin; en esta gua, todas estas denominaciones son
consideradas sinnimas.

Para que una proposicin (frase declarativa) sea valida, debe poder afirmarse que es
verdadera o falsa. En programacin, se utilizan operadores relacionales (<, =,>) para
establecer la relacin que existe entre dos elementos de la proposicin. Por ejemplo, La
calificacin de Esteban en Historia es mayor que 6.0, es una proposicin valida. De una
parte tenemos La calificacin de Esteban en Historia (A) y, de la otra, el valor 6.0 (B);
de A con respecto a B, se afirma que A es mayor que B, por lo tanto, la relacin existente
entre A y B es ser mayor que. Para que el computador entienda esta proposicin, debe
expresarse as:
calificacin > 6.0, donde calificacin es la variable que contiene el valor de la
calificacin de Esteban en Historia.
La estructura condicional tiene tres variantes:
seleccin simple.
seleccin doble.
seleccin mltiple.

Las estructuras condicionales simple y doble evalan una proposicin (condicin) que
devuelve como resultado nicamente dos valores posibles y excluyentes: verdadero o falso.
En cambio, la estructura condicional de seleccin mltiple permite que la condicin
devuelva ms de un valor posible y que para cada uno de esos valores se ejecute el bloque
de instrucciones correspondiente.
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
18

3.1. Operadores relacionales y lgicos.
Permiten la comparacin entre datos del mismo tipo y dan como resultado dos valores
posibles: Verdadero o Falso.
Todos los operadores relacionales o de comparacin tienen la misma prioridad, es decir que
son resueltos de izquierda a derecha, en el orden en que aparecen. Son:

RELACIONALES O DE COMPARACIN
Igualdad (=)
Desigualdad (<>)
Menor que (<)
Mayor que (>)
Menor o igual que (<=)
Mayor o igual que (>=)

Los operadores lgicos, posibilitan la evaluacin lgica de dos expresiones de tipo lgico.
Dan como resultado uno de dos valores posibles: Verdadero o Falso.

Los operadores lgicos son resueltos en el siguiente orden de prioridad (de mayor a menor):

LGICOS
NO (Not)
Y (And)
O (Or )

3.1.1. Tabla de verdad del operador Y (AND)
El operador Y requiere que todas las condiciones o argumentos evaluados sean verdaderos,
para que su resultado final sea verdadero, devuelve FALSO si uno o ms argumentos se
evalan como FALSO.
A B A Y B
F F F
F V F
V F F
V V V
3.1.2. Tabla de verdad del operador O (OR)
El operador O requiere que todas las condiciones o argumentos evaluados sean falsos, para
que su resultado final sea falso.


COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
19
A B A O B
F F F
F V V
V F V
V V V
3.1.3. Tabla de verdad del operador NO
El operador NO Invierte el valor lgico del argumento. Use NO cuando desee asegurarse de
que un valor no sea igual a otro valor especfico.

A NO(A)
F V
V F

3.1.4. Expresiones lgicas
Las expresiones lgicas o booleanas, estn constituidas por nmeros, constantes o variables
y operadores lgicos o relacionales. El valor que pueden tomar estas expresiones es de
verdadero o falso.
Se utilizan con frecuencia en las estructuras selectivas y en las estructuras repetitivas.

Ejemplo de expresiones lgicas:

Si A = 5, B = 16
1. (A ^ 2) > (B * 2) Y (A<B)
Resultado de desarrollar la expresin: Falso

2. (A ^ 2) > (B * 2) O (A<B)
Resultado de desarrollar la expresin: verdadero

3.2. Seleccin simple
La estructura condicional de seleccin simple ejecuta un bloque de instrucciones cuando la
proposicin (condicin) es verdadera; si esta es falsa, no hace nada.


COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
20









Condicin Simple o Seleccin si-entonces
La estructura selectiva lgica si entonces permite que el flujo siga por un camino
especfico si se cumple una condicin o un conjunto de condiciones.
Si al evaluar la condicin (o condiciones) el resultado es verdadero, entonces se ejecuta
(n) cierta (s) operacin (es), luego continua con la secuencia normal del proceso.
Se utiliza cuando alguna operacin est condicionada para que se lleve a cabo, pero no
tiene una opcin alterna.
Funcionamiento:
Al llegar al si se evala la condicin (es):
a. Si se cumple, se ejecuta (n) la (s) operacin (es) del entonces y luego salta hastael
siguiente paso despus del fin de condicional.
b. Si no se cumple, salta hasta despus del fin del condicional, es decir no hace nada.
Formato:
si condicin entonces
operacin (es)
Fin del condicional

Donde:
si.- identifica la estructura selectiva
condicin.- expresa la condicin o conjunto de condiciones a evaluar
entonces.- indica el curso de accin a seguir si se cumple la condicin.
operacin.- expresa la operacin o conjunto de operaciones.
fin del condicional.- indica el fin de la estructura de seleccin (si)
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
21
Ejemplo


3.3. Seleccin doble
La estructura condicional de seleccin doble ejecuta un bloque de instrucciones (A) cuando
la proposicin (condicin) es verdadera y un bloque diferente (B) cuando esta es falsa.
Inicio
Calificacin
Calificacin
>=6
Aprobado
Fin
Verdadero Falso
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
22


Seleccin doble o Seleccin si entonces/sino

La estructura selectiva si entonces/sino permite que el flujo se bifurque por dos ramas
diferentes en el punto de la toma de decisin (es).
Si al evaluar la condicin (o condiciones) el resultado es verdadero, entonces sigue
por un camino especfico y se ejecuta (n) cierta (as) operacin (es). Por otra parte, si el
resultado es falso entonces se sigue por otro camino y se ejecuta (n) otra (s) operacin (es).
En ambos casos, luego de ejecutarse la (s) operacin (es) indicada (s), se contina con la
secuencia normal del proceso.
Por la naturaleza de stas, se debe ejecutar una o la otra, pero no ambas a la vez, es decir,
son mutuamente excluyentes.

Formato:
si condicin
entonces
hacer operacin 1
sino
hacer operacin 2
Fin del condicional

Donde:
si.- identifica la estructura selectiva
condicin.- expresa la condicin o conjunto de condiciones a evaluar
entonces.- indica el curso de accin a seguir si se cumple la condicin.
operacin 1.- expresa la operacin o conjunto de operaciones.
operacin 2.- expresa la operacin o conjunto de operaciones.
fin del condicional.- indica el fin de la estructura de seleccin (si)

Funcionamiento:

Al llegar al si se evala la condicin (es):
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
23

Opcin verdadera (entonces) si se cumple, se ejecuta (n) la (s) operacin (es) del
entonces y luego salta hasta el siguiente paso despus del fin del condicional.
Opcin falsa (sino) De lo contrario, salta hacia el sino, ejecuta la (s) operacin (es), y
despus salta hasta el siguiente paso despus del fin del condicional.

Ejemplo





3.4. Estructuras selectivas anidadas:
Encontramos numerosos casos en el desarrollo de la solucin de problemas en el
que luego de tomar una decisin y marcar el camino correspondiente a seguir, es
necesario tomar otra decisin. Se seala, luego de evaluar las condiciones, la rama
correspondiente a seguir, y nuevamente podemos tener que tomar otra decisin.
El proceso puede repetirse numerosas veces. En este caso, para resolver el
problema, estamos aplicando estructuras selectivas en cascada o anidadas.


A continuacin presentamos un caso de diferentes tipos de anidamiento para la estructura
selectiva si:

n si condicin1 entonces
n1 si condicin2
entonces
hacer operacin21
sino
hacer operacin22
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
24
n2 fin del condicional del paso n1
n + 1 fin del condicional del paso n




Ejemplo: Desarrollar un algoritmo y diagrama de flujo el cual, dado un valor entero,
determinar si es cero, positivo o negativo.


Algoritmo:
1. inicio
2. Declaracin de variables:
num: entero
3. Leer num
4. si num =0
entonces
imprimir cero
sino
4.1 si num > 0
entonces
imprimir positivo
sino
imprimir negativo
4.2 fin del condicional paso 4.1
5 fin del condicional del paso 4


COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
25
Inicio
Num
Num=0
Num>0
Cero
Positivo
Negativo
Fin
Verdadero Falso
Verdadero
Falso

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
26

4. Estructuras de iteracin o Repetitivas

La estructura iterativa o de repeticin permite ejecutar una o varias instrucciones,
un nmero determinado de veces o, indefinidamente, mientras se cumpla una
condicin. Esta estructura ayuda a simplificar los algoritmos, ahorrando tiempo
valioso a quien resuelve problemas con ayuda del computador.

En programacin existen al menos tres tipos de estructuras repetitivas, las cuales a
su vez tienen variantes en los diferentes lenguajes de programacin.

4.1. Tipos de estructuras de iteracin

4.1.1. Estructura repetitiva mientras (while)



La estructura algortmica mientras comnmente conocida como while, es la
estructura adecuada para utilizar en un ciclo cuando no sabemos el nmero de
veces que ste se ha de repetir.
Dicho nmero depende de las proposiciones dentro del ciclo.
Esta estructura permite que se repita una accin o un conjunto de acciones, en tanto
cierta condicin se mantenga verdadera.
La estructura while evala primero la condicin, si se cumple se ejecuta una accin
o conjunto de acciones; si no se cumple, no entra al ciclo. Por lo tanto esta
estructura se repite cero o ms veces.


Bloque
condicin
Verdadero
Falso
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
27
Formato:
mientras (condicin) hacer
<bloque de instrucciones>
fin_mientras

Ejemplo:

Desarrollar un algoritmo y diagrama de flujo que lea n nmeros positivos, determine y
muestre el promedio de los n nmeros positivos.
Algoritmo: Dado n nmeros positivos obtenga el promedio
1. inicio
2. declaracin de variables:
i, n: enteros
num, Prom, Suma =0: flotantes
3. leer n
4. i = 1
5. mientras i <= n
leer num
Suma = Suma + num
i = i + 1
6. fin del ciclo del paso 4
7. Prom = Suma / n
8. imprimir Prom
9. fin

COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
28



Inicio
Suma = 0,
Prom =0
n
i=1
num
Suma=Suma+num
i=i+1
Prom =Suma/n
Prom
Fin
i<=n
verdadero
Falso
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
29
4.1.2. Estructura repetitiva repetir para o ciclo For

La estructura repetir conocida comnmente como ciclo for, es la estructura
algortmica adecuada para realizar un ciclo que se ejecutar un nmero definido de
veces.
Este tipo de estructura est presente en todos los lenguajes de programacin, ya sean
estructurados u orientados a objetos. Por ejemplo cuando necesitamos calcular la
nmina total de la empresa, tenemos que sumar los sueldos de los n empleados de
la misma.
Cuando necesitamos obtener el promedio de calificaciones de un curso, debemos
sumar las n calificaciones de los alumnos y dividir esa suma entre n. Es decir,
sabemos de antemano cuntas veces tenemos que repetir una determinada
operacin, accin tarea.
El nmero de repeticiones no depende de las proposiciones dentro del ciclo, el
nmero de veces se obtiene del planteamiento del problema o de una lectura que
indica que el nmero de iteraciones se debe realizar para n ocurrencias.
Dicho de otra forma el ciclo, es controlado por un contador que tiene que definirse
con un valor inicial, un valor final y un incremento, esto significa que debe
conocerse de antemano el nmero de veces que se debe repetir el ciclo.


Para limite inferior, limite superior
Bloque
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
30
Ejemplo:
Calcular el valor de la sumatoria: 1 + 2 + 3 + 4 +5 + + 100.




4.1.3. Estructura repetitiva hacer hasta.
El ciclo repita hasta es similar al ciclo HAGA-MIENTRAS, la diferencia esta en que el
bloque de acciones se ejecuta nuevamente si la condicin evala a falso y no se ejecuta ms
si evala a verdadero. Sobra advertir que el bloque de acciones se ejecuta por lo menos una
vez. La forma general del ciclo repita-HASTA es la siguiente:
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
31

Formato:
repita
<bloque de instrucciones>
hasta (condicin)


Bloque
Condicin
Verdadero
Falso
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
32
4.2. Acumuladores y contadores


Acumuladores:
Estructura muy utilizada que consiste en almacenar en una variable el valor de ella misma
ms otro valor variable. Es muy til para calcular sumatorias.


Contadores:

Los contadores consisten en almacenar en una variable el valor de ella misma ms un valor
constante. Es muy til para controlar el nmero de veces que debe ejecutarse un grupo de
instrucciones.



COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
33
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONMICAS
ESCUELA DE CONTADURA PBLICA
DEPARTAMENTO DE COMPUTACIN
COMPUTACIN I
GUIA DE PRCTICAS #: 3


Diseo de algoritmos

ESTRUCTURA SECUENCIAL

1. Construya un algoritmo que permita sumar dos nmeros.

2. Construya un algoritmo que transforme una temperatura de C a F ( TF = TC * 1.8 +
32 ).

3. Construya un algoritmo que permita promediar las notas de una asignatura en un
semestre.

4. Construya un algoritmo que permita obtener el rea de una circunferencia, conociendo el
dimetro.

5. Obtener el rea de un rectngulo de lados conocidos a y b menos el rea de una
circunferencia completamente contenida en l de dimetro d.

6. Construya un algoritmo que permita obtener el permetro y el rea de un rectngulo
conociendo la base y la altura de este.





COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
34
ESTRUCTURA SELECTIVA

1. Confeccione un algoritmo que lea un nmero e indique si este es positivo o negativo

2. Confeccione un algoritmo que lea un nmero e indique si este es par o impar

3. Confeccione un algoritmo que lea un nmero e indique si este es par-positivo, par-
negativo, impar-positivo o impar-negativo.

4. Confeccione un algoritmo que lea un nmero y si este es mayor o igual a 10 devuelva el
triple de este de lo contrario la cuarta parte de este.

5. Obtener el iva de una venta, si esta es superior a $ 150.000 aplicar un descuento del 25
%.

6. Leer tres nmeros e imprimir el mayor de ellos

7. Confeccionar un algoritmo que permita resolver una ecuacin de segundo grado. Con
discriminante mayor a cero (soluciones reales). AX
2
+BX+C = 0

X1 = (-B + SQRT(B2-4*A*C))/(2*A) X2 = (-B - SQRT(B2-
4*A*C))/(2*A)
D= B2-4*A*C
Si D = 0 entonces X1 = X2 = -B/(2*a)
Si D > 0 entonces calcular X1 y X2
Si D < 0 entonces no tiene solucin en los Reales.

8. Determine el valor de un pasaje en avin , conociendo la distancia a recorrer, el nmero
de das de estancia, y sabiendo que si la distancia a recorrer es superior a 1000 Km y el
nmero de das de estancia es superior a 7, la lnea area le hace un descuento del 30%. (
el precio por km. es de $35.00)
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
35

9. Confeccione un algoritmo que permita determinar el precio de un pasaje en avin
sabiendo que :
valor por kilometro recorrido ($47)
sobre los 1000 km de vuelo el valor del kilometro es de $25.


10.Construya un algoritmo que permita obtener el sueldo liquido y descuento previsional de
un trabajador, conociendo su sueldo bruto y si este esta imponiendo en caja se le
descontar el 12% del sueldo bruto, y si impone en AFP se le descontar el 17%.

11. Construya la tabla de seguimiento de los algoritmos e indique cuales son los valores
entregados:

ESTRUCTURA REPETITIVA + VARIABLE CONTADOR

1. Construya un algoritmo que permita leer una cantidad de 20 nmeros y nos indique
finalmente cuantos fueron positivos y cuantos fueron negativos.

2. Construya un algoritmo que permita leer una cantidad variable de nmeros y nos indique
cuantos fueron mayores a 100 y cuntos menores a 100.

3. Construya un algoritmo que permita ingresar 90 notas entre uno y siete, indicando
finalmente cuntos alumnos aprobaron y cuantos reprobaron.

4. Construya un algoritmo que permita leer una cantidad variable de nmeros indicando
finalmente lo siguiente :
cuntos nmeros fueron positivos
cuntos fueron negativos
cuantos fueron pares
cuantos fueron impares
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
36
cuntos fueron mltiplos de ocho



ESTRUCTURA REPETITIVA + VARIABLE SUMADOR

1. Leer 10 nmeros e indicar cunto es la suma de todos ellos.

2. Leer 10 nmeros e indicar cunto suman los nmeros pares.

3. Leer una cantidad variable de nmeros e indicar cuanto suman todos los nmeros,
cuanto los nmeros positivos y cuanto los nmeros negativos.

4. Leer una cantidad variable de nmeros e indicar el promedio de los nmeros pares y el
promedio de los nmeros impares.

5. Leer una cantidad de nmeros variables hasta que se ingrese un nmero mltiplo de 5.
Indicar el nmero de datos que fueron ingresados, sin contar el mltiplo de la condicin
de trmino.

6. Leer 70 nmeros e indicar cual es el promedio de los nmeros pares mayores a 40 y el
promedio de los nmeros pares menores a 40.

7. Leer las edades y los pesos de todos los alumnos de un curso. Indicar para estos la edad
promedio y el peso promedio de los alumnos del curso.

8. Leer las edades de los asistentes a un cine e indicar finalmente cuantos de estos fueron:
nios (1-10), adolescentes (11-15), jvenes (16-22), adultos (23-35), otros (36- ...)

9. Leer las estaturas de los asistentes a un estadio e indicar la estatura promedio de los
hombres y la estatura promedio de las mujeres.
COMPUTACION I (COM118), FACULTAD DE ECONOMIA

CICLO II-2014
37

BIBLIOGRAFIA

ALGORITMOS Y PROGRAMACIN (GUA PARA DOCENTES)
SEGUNDA EDICIN, 2007, 2009. Juan Carlos Lpez Garca, http://www.eduteka.org

SENA Produccin, Fase de anlisis, ao 2012 edicin 01, Lgica de programacin:
https://senaintro.blackboard.com/bbcswebdav/pid-50036296-dt-content-rid-
14993553_2/courses/CONTENIDO_MULTIMEDIA/FA%20Logica%20programacion.pdf

S-ar putea să vă placă și