Sie sind auf Seite 1von 13

3.3.

Algoritmos

3.3.1. Herramientas de diseo

Diagramas de Flujo

Esta ha sido una de las herramientas ms usadas debido a su caracter grfico, ya que los
algoritmos son representados a travs de figuras o smbolos estndar que tienen asociado un
significado particular.

Cada paso del algoritmo es representado a travs del smbolo adecuado y el orden en
que estos pasos se ejecutan se indica conectndolos con flechas llamadas lneas de flujo,
que son las que indican el flujo lgico del algoritmo. Estos diagramas se leen de arriba
hacia abajo y de izquierda a derecha. Algunos de los principales smbolos de amplio uso
son los presentados en la Figura 1, sin embargo, se podr descubrir que algunos autores y/o
programadores usan otros algo distintos para representar lo mismo.

Pseudocdigo

Concebido para superar las principales desventajas del diagrama de flujo, esto es, la
lentitud para crearlo y la dificultad para modificarlo; en contrapartida el pseudocdigo es
ms fcil de utilizar, ya que usa como medio bsico el lenguaje nativo del programador.
Por otro lado este ltimo tiene la ventaja de poder escribirse en un editor de textos, para
luego transcribirlo ms fcilmente a un lenguaje de programacin. Aqu tambin no existe
un pseudocdigo estndar o nico, sin embargo, muchas de las versiones propuestas tienen
ms similitudes que diferencias.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 45
Inicio , Final

Entrada y Salida

Proceso (cualquier operacin)

Decisin

Decisin Mltiple

Conector (dentro de una misma pgina)

Indicador de la Direccin del flujo

Conector (para diferentes pginas)

Subrutina

Asignacin y Definiciones en general

Comentarios

Figura 1. Smbolos de diagramas de flujo.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 46
3.3.2. Elementos bsicos de un algoritmo

Constantes

Son valores que pueden ser de tipo numrico, cadena de caracteres y lgico o
booleano. Se les denomina constantes porque tales valores son inmutables, no pueden
cambiar. Lo anterior tienen sentido, toda vez que una constante representa el valor
correspondiente; por ejemplo, la constante 5, representa el valor 5 y no otro.

Ejemplo:
12, es una constante numrica (en este caso entera)
12,5 (o 12.5), es una constante numrica (especficamente decimal)
"hola mundo" (o 'hola mundo'), es una constante cadena de caracteres. Estas deben
encerrarse entre comillas, las que pueden ser dobles (") o simples (').

Variables

Una variable posee nombre y un valor, este ltimo puede cambiar durante el
transcurso del algoritmo. Para asociar un valor a una variable se usa la asignacin
(explicada ms adelante). Las variables pueden almacenar distintos tipos de valores, siendo
dichos valores alguna constante como las antes descritas y, por lo tanto, las variables
pueden ser de tipo numrica, lgicas (o booleana) y cadenas de caracteres. A continuacin
un ejemplo de cada tipo.

Ejemplo:
notaFinal, es una variable numrica que puede almacenar valores como 12, 12.5 o
12,5.
estaAprobado, es una variable lgica (o booleana) que puede almacenar los valores
verdadero o falso.
cadena, es una variable que almacena cadenas de caracteres, de modo que "hola
mundo", o bien 'hola mundo', pueden ser valores vlidos para esta variable.

Expresiones y Operadores

Una de las caractersticas fundamentales de los datos es que pueden modificarse,


combinarse y relacionarse entre s para obtener datos distintos a los originales. As por
ejemplo, combinando adecuadamente (multiplicando) la base y altura de un rectngulo,
podemos obtener el rea correspondiente. A las entidades que actan sobre los datos para
modificarlos se les denomina operadores y los datos sobre los que actan stos se
denominan operandos. Los operadores bsicos son los aritmticos.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 47
Las expresiones son las distintas formas en que pueden agruparse operandos y
operadores, indicando con ello la secuencia de operaciones que han de efectuarse para
obtener el dato o datos de salida a partir de los datos de entrada.

Operadores Relacionales

Estos son operadores binarios, es decir, que actan sobre 2 valores, que permiten
realizar comparaciones entre dos valores del mismo tipo (numrico, alfanumrico, etc.) y
dan como resultado un valor lgico o booleano, es decir, verdadero o falso. Los operadores
relacionales son:

Operador Significado
= Igual
, <>, != Distinto
, <= Menor o igual
, >= Mayor o igual
> Mayor que
< Menor que
Tabla 1. Operadores de Relacin

Operadores Lgicos

Son aquellos que operan sobre valores lgicos, es decir, aqullos cuyo rango de valores
se limita a verdadero o falso. Estos son:

Operador Significado
o O lgico
y Y lgico
no Negacin
Tabla 2. Operadores lgicos

Ejemplo:

verdadero falso

Dado que esta expresin contiene slo


(80 > 50) o (50 < 10) constantes, es posible determinar el valor final
(total > 50) y (suma < 10) de la expresin: verdadero.
no (total > 50)
_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 48
Orden de precedencia de los operadores

La tabla siguiente muestra el orden de precedencia de los operadores presentados:

Operador
Mayor precedencia
()
*/
+-
no
< > >= <= = <> !=
y
Menor precedencia
o
Tabla 3. Precedencia de operadores.
La tabla anterior quiere decir que en una expresin donde aparezcan dos o ms de estos
operadores, se evaluarn primero los de mayor presedencia hasta llegar a los de mayor
precedencia. Tratndose de operadores de igual precedencia, se evaluarn estos de izquierda
a derecha.

Expresiones Lgicas

Son aquellas en que intervienen constantes y/o variables ligados por operadores
aritmticos y/o relacionales y que dan como resultado un valor lgico o boolean (verdadero
o falso).

Ej. : ("Enrique" > "Ana") y (3 * 5 > 7) Verdadero

Lo anterior, debido a la precedencia de los operadores, se pudo escribir tambin como:


"Enrique" > "Ana" y 3 * 5 > 7

Instrucciones

Asignacin

Consiste en dar un valor a una variable. Dicho valor puede ser una constante de
cualquier tipo o bien el resultado de una expresin. Se pueden usar uno de los siguientes
smbolos: <-, =, :=.

La representacin en diagrama de flujo, usando <-, es:

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 49
La representacin en pseudocdigo, usando <-, es:
<Variable> <- <Expresin>
Donde:
Los caracteres <> indican que lo contenido entre ellos (incluyendo dichos
caracteres) debe ser reemplazado por lo que all se indica. Esto es, <Variable> debe
ser reemplazado por una variable y <Expresin> debe ser reemplazado por una
expresin, la que prodra consistir en una nica constante.

La primera vez que se utilice una variable, deber ser para asignarle un valor, el tipo de
dicho valor (numrico, cadena de caracteres o lgico) determinar el tipo de la variable
(numrica, cadena de caracteres o lgica).

Ejemplo 1:
Valor que ser asignado a la variable ubicada a la
Variable izquierda del smbolo

notaFinal 60
notaFinal promTests * 0,15 + promTareas * 0,15 + promCerts * 0,7

En la segunda asignacin del ejemplo, primero se evala la expresin de la derecha y luego


se almacena el resultado en la variable de la izquierda.

Ejemplo 2:
Asignacin de valor a una variable lgica (o booleana)
aprobado verdadero
aprobado notaFinal >= 4

Entrada/Salida

Constituyen operaciones mediante las cuales se representa la interaccin con el usuario.


En general, se asocian al uso de la entrada y salida estndar, esto es, teclado y pantalla,
respectivamente.

A continuacin se describir la forma de realizar lectura de datos y escritura de mensajes y


datos en un algoritmo.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 50
a) Lectura o entrada de datos

Al usar diagrama de flujo se considerar la siguiente notacin:

Usando pseudocdigo:

leer <variable1>[, <variable2>, ..., <variable n>]

Donde:
Los caracteres [..] indican que lo encerrado entre ellos es opcional, por lo que puede
estar ausente.

La lectura provoca que los valores ledos sean asignados a las variables en el
mismo orden en que aparecen en la instruccin.

b) Escritura o salida de datos

La representacin usando diagrama de flujo es:

Usando pseudocdigo:

escribir <variable1 | constante1>[, <variable2 | constante2>, ..., <variableN | constanteN>]

Donde:
La secuencia <..|..> indica que los elementos contenidos entre los smbolos <> son
alternativos, es decir, se considerar uno de ellos, cualquiera, pero slo uno.

Esta instruccin presentar lo indicado en la lista que sigue a la palabra escribir. En


el caso de constantes, el valor de estas, y en el caso de las variables el valor contenido
por ellas al momento de alcanzar esta instruccin.

Si suponemos que lo escrito se despliega en la pantalla del computador, entonces


consideraremos que el contenido de la la lista se desplegar uno al lado del otro (sin
comas, ni espacio) y a continuacin saltar a una nueva lnea.
_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 51
En muchos casos, el supuesto anterior no es relevante, pues la forma en que se
presentan los datos no es lo importante a resolver.

Ejemplo:
escribir "El alumno ha aprobado con nota: ", notaFinal

Finalmente, al escribir un algoritmo aadiremos palabras claves que indiquen el inicio


y fin del mismo. Si consideramos la notacin grfica, entonces esto se especificar usando
el smbolo siguiente:

Al interior del smbolo se escribir Inicio, o bien fin y se utilizarn como primer y
ltimo smbolo.

En pseudocodigo, la estructura general de un algoritmo ser:

Inicio
<instruccin1>
[<instruccin2>

<instruccinN>]
Fin

Ejemplo: Clculo nota final de un estudiante

Este es el mismo ejemplo ya antes analizado. A continuacin se precisan las


principales consideraciones a tener en cuenta:
Se debe calcular la nota final del alumno a partir de los promedios que deben ser ledos
Las ponderaciones son: Promedio Tests: 15%, Promedio Tareas: 15%, Promedio
Certmenes: 70%.

Se pide: Construir un algoritmo que calcule y muestre la nota final. Use pseudolenguaje.

Solucin:

Inicio
leer promTests, promTareas, promCerts
notaFinal = promTests*0,15 + promTareas*0,15 + promCerts*0,70
escribir "Nota final obtenida: ", notaFinal
Fin

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 52
Gua de Ejercicios

Objetivo: Uso de Variables, Operadores, Asignacin y Entrada/Salida.

1. Escriba un algoritmo que emita un saludo. Por ejemplo: Hola amigos, que
tal.

2. Escriba un algoritmo que lea el nombre de un lugar y luego emita un saludo


del siguiente tipo: Hola amigos de Curic, que tal.

3. Construya un algoritmo que a partir de la temperatura mnima y mxima de


un da, obtenga la temperatura promedio del da y la imprima.

4. Escriba un algoritmo que lea el peso de un objeto (en libras) y calcule e


imprima su peso en kilos y gramos. (Una libra equivale a 0.453592 Kg).

5. Escriba un algoritmo que lea los valores correspondientes a los lados de un


cuadriltero (a y b) y calcule e imprima su rea. Dada la siguiente frmula:
(a*b).

6. Construya un algoritmo que lea una secuencia de 3 string A, B Y C, luego los


imprima de acuerdo a todas las combinaciones posibles. (sin repetir)

7. Escriba un algoritmo que lea la cantidad de kilmetros que una persona


desea recorrer y calcule e imprima cuntos litros de bencina se necesitan,
si el rendimiento de su vehculo es de 15 Km por litro.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 53
Estructuras de Control

El orden de ejecucin de los pasos que componen un algoritmo rara vez es de


naturaleza secuencial. En la mayora de los casos los problemas presentan situaciones en
que los pasos a ejecutar dependen del resultado de ciertas condiciones. Se denomina
estructura de control a aquellas que determinan qu instrucciones deben ejecutarse y qu
nmero de veces. Existen 2 tipos:

a) Las alternativas o de seleccin y


b) Las repetitivas o de iteracin.

a) Estructuras de Control Alternativas

Son aqullas que bifurcan o dirigen el desarrollo o la ejecucin de un algoritmo hacia


un grupo de sentencias u otro dependiendo del resultado de una condicin (simple o
compleja).

Entre ellas tenemos:


Las estructuras si-entonces-sino
Las estructuras de seleccin mltiple segn-hacer

a.1) si-entonces-sino

La representacin de esta estructura en diagrama de flujo es:

La notacin en pseudolenguaje es:

si expresin lgica entonces


<Instrucciones A>
[sino
< Instrucciones B>]
finsi

La interpretacin es la que sigue. Si la expresin lgica es verdadera entonces se


realizarn las instrucciones (o acciones) A y si es falsa las instrucciones (o acciones) B.
_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 54
Como se puede observar en la representacin mediante pseudocdigo, la seccin sino
de la estructura puede no estar presente. En este caso, si la expresin lgica es falsa las
instrucciones incluidas en la estructura no se realizarn.

Ejemplo 1: Determinacin del valor absoluto de un nmero

El algoritmo deber leer un nmero, determinar su valor absoluto y mostrar el resultado


mediante un mensaje adecuado.

Solucin

Algoritmo representado mediante diagrama de flujo:

Figura 2: Diagrama de flujo1 del algoritmo de ejemplo 1.

El mismo algoritmo representado mediante pseudocdigo:

Inicio
leer numero
si numero < 0 entonces
numero <- numero * (-1) // Por legibilidad se usan parntesis
finsi
escribir "El valor absoluto del nmero es: ", numero
Fin
1
Construido mediante la herramienta PSeInt (http://pseint.sourceforge.net)
_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 55
Ejemplo: Clculo nota final

Al ejercicio del clculo de la nota final, ya visto anteriormente, agregue las siguientes
consideraciones:
Se debe arrojar un mensaje que indique si el alumno aprob, reprob con derecho a
examen o reprob.
Un a alumno aprueba si obtiene una nota final de 60 o ms y su promedio de tareas es
60 o ms
Un alumno reprueba si su nota final es 39 o menos
En otro caso, el alumno reprueba con derecho a examen

Solucin

Usando diagrama de flujo:

Figura 3: Diagrama de flujo2 del algoritmo de ejemplo 2.

2
Construido mediante la herramienta PSeInt (http://pseint.sourceforge.net)
_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 56
La versin en pseudocdigo es:

Inicio
leer promTests
leer promTareas
leer promCerts
notaFinal = promTests*0,15 + promTareas*0,15 + promCerts*0,70
escribir "Nota final: ", notaFinal
si notaFinal >= 4 y promTareas >= 4 entonces
escribir "Aprobado"
sino
si notaFinal < 4 entonces
escribir "Reprobado"
sino
escribir "Reprobado con derecho a examen"
finsi
finsi
Fin

Qu pasa si en el algoritmo anterior se leen datos errneos?

Defina una versin que verifique si los datos son correctos y, solo si lo son, realice el
clculo.

_______________________________________________________________________________________
MAC, MASCH-11-03-14 Pag. 57

Das könnte Ihnen auch gefallen