Indirecto:
Se ignora el nmero de pasos.
Son aquellos donde se desconocen el nmero de pasos para lograr la solucin
de un problema.
Estos a su vez, se clasifican en:
Finito: El nmero de pasos a realizar son conocidos as como la factibilidad de
solucin al problema planteado, o sea, que va a ver una respuesta al proceso.
Ejemplo: Medir distancia
AB
Es factible que algn da pueda saber la distancia entre la Sede antigua del
IUTEPAL (Av. Constitucin) y la Sede Nueva del IUTEPAL (Urb. Caa de Azcar).
Infinito:
Se desconoce el nmero de pasos a realizar, as como la imposibilidad de
encontrar la solucin al problema planteado.
Cuando realmente es imposible lograr la solucin, por ms vueltas que le demos al
problema.
Ejemplo: 20 ; +" ; -2
3 -"
Ejemplos de Algoritmos:
Podemos idear un algoritmo para un determinado proceso, as como tambin
hacerlo en diferentes formas.
Por ejemplo: Cmo podramos encontrar el promedio de un conjunto de nmeros?.
Una posible solucin sera:
1.- Sumar los nmeros dados.
2.- Contar dichos nmeros.
Para ilustrar lo anterior, analicemos la secuencia de eventos que tienen lugar todas
las maanas para un estudiante de Universidad que tiene clase los lunes y los
mircoles a las 08:00 am y los martes y jueves a las 09:00 am.
Una vez que el estudiante se despierta mira el reloj y si no son an las 06:30 am,
contina durmiendo. Los lunes y los mircoles, procura levantarse entre las 06:30
am y las 07:30 am. Si llegara a despertarse despus de la hora como
frecuentemente ocurre, pensar nuevamente en la falta que le hace el reloj
despertador, pero toma la decisin de no ir a clases en esa maana, sin embargo,
despus de esta decisin, se baa, se desayuna y se dedica a estudiar.
Si se despierta entre las 06:30 am y las 07:30 am, los lunes o los mircoles se
baa, se desayuna y se dedica a leer el peridico hasta que sean ms de las 07:30
am, luego toma el bus y llega a la Universidad. Entra a clase solamente si han
transcurrido menos de 15 minutos desde su comienzo, de otra manera, no entra a
clase y se dedica a leer las carteleras y a esperar la prxima clase.
Los martes y los jueves, procura levantarse entre las 07:30 am y las 08:30 am; si
se despierta despus de las 08:30 am realizar las mismas actividades que
tendran lugar si se levantara los lunes o los mircoles despus de las 07:30 am.
De otra forma se baa, se desayuna y lee el peridico hasta que sean ms de las
08:30 am, luego realiza las mismas actividades que tienen lugar los lunes o lo
mircoles cuando sale de su casa.
Los dems das de la semana, procura dormir hasta las 08:30 am, despus de esta
hora se baa, se desayuna y se dedica a estudiar.
Es dudoso que quien lea por primera vez lo anterior est en capacidad de seguir y
mantener fielmente en su memoria la cantidad de actividades, secuencias,
decisiones y alternativas que tiene el ejemplo. Su respuesta obvia para remediar lo
anterior ser dibujar un grfico, y aun sin conocer todas las tcnicas de los
diagramas de flujo ser mucho ms fcil para una persona seguir las actividades a
travs de un grfico.
Algoritmos computacionales
Es importante el estudio y conocimiento de lo que hoy conocemos como
Algoritmos Computacionales, que desde su aparicin hasta nuestros das es, y
seguir siendo; vital para el desarrollo de aplicaciones para computadoras y el
manejo y dominio de la lgica de programacin para resolver problemas.
Marco Histrico
Un algoritmo es un conjunto de operaciones y procedimientos que deben seguirse
para resolver un problema. La palabra algoritmo se deriva del nombre latinizado
del gran Matemtico rabe Mohamed Ibn Al Kow Rizmi, el cual escribi sobre los
aos 800 y 825 su obra Quitad Al Mugabala, donde se recoga el sistema de
numeracin hind y el concepto del cero. Fue Fibinacci, el que tradujo la obra al
latn y el inicio con la palabra: Algoritmi Dicit.
El lenguaje algortmico es aquel por medio al cual se realiza un anlisis previo del
problema a resolver y encontrar un mtodo que permita resolverlo. El conjunto de
Generalidades
El programador de computadoras es ante que nada una persona que resuelve
problemas, por lo que para llegar a ser un programador eficaz se necesita aprender
a resolver problemas de un modo riguroso y sistemtico. A la metodologa
necesaria para resolver problemas mediante programas se denomina Metodologa
de la Programacin. El eje central de esta metodologa es el concepto, ya tratado,
de algoritmo.
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin
del trmino ha llegado con el advenimiento de la era informtica, algoritmo
proviene de Mohammed al-Khowarizmi, matemtico persa que vivi durante el
siglo IX y alcanzo gran reputacin por el enunciado de las reglas para sumar,
restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido de
la palabra algorismus derivo posteriormente en algoritmo. Euclides, el gran
matemtico griego (del siglo IV antes de Cristo) que invento un mtodo para
encontrar el mximo comn divisor de dos nmeros, se considera con AlKhowarizmi el otro gran padre de la algoritmia (ciencia que trata de los
algoritmos).
El profesor Niklaus Wirth, inventor de Pascal, Modula-2 y Oberon, titulo uno de sus
ms famosos libros, Algoritmos + Estructuras de Datos = Programas,
significndonos que solo se puede llegar a realizar un buen programa con el diseo
de un algoritmo y una correcta estructura de datos. Esta ecuacin ser de una de
las hiptesis fundamentales consideradas en esta obra.
La resolucin de un problema exige el diseo de un algoritmo que resuelva el
problema propuesto.
Los pasos para la resolucin de un problema son:
Diseo de algoritmo, que describe la secuencia ordenada de pasos que
conducen a la solucin de un problema dado. (Anlisis del problema y desarrollo
del algoritmo).
Expresar el algoritmo como un programa de lenguaje de programacin
adecuado. (Fase de codificacin.)
Ejecucin y validacin del programa por la computadora.
Para llegar a la realizacin de un programa es necesario el diseo previo de
algoritmo, de modo que sin algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se
expresan como de la computadora que lo ejecuta. En cada problema el algoritmo
se puede expresar en un lenguaje diferente de programacin y ejecutarse en una
computadora distinta; sin embargo, el algoritmo ser siempre el mismo. As, por
ejemplo, en una analoga con la vida diaria, una receta de un plato de cocina se
puede expresar en espaol, ingls o francs, pero cualquiera que sea el lenguaje,
los pasos para la elaboracin del plato se realizaran sin importar el idioma del
cocinero.
En la ciencia de la computacin y en la programacin, los algoritmos son ms
importantes que los lenguajes de programacin o las computadoras. Un lenguaje
de programacin es tan solo un medio para expresar un algoritmo y una
computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de
programacin como la computadora son los medios para obtener un fin: conseguir
que el algoritmo se ejecute y se efecte el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy
importante ser el diseo de algoritmos. El diseo de la mayora de los algoritmos
requiere creatividad y conocimientos profundos de la tcnica de la programacin.
En esencia, la solucin de un problema se puede expresar mediante un algoritmo.
La definicin de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En
el algoritmo de receta de cocina citado anteriormente se tendr:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, cordero).
Ejemplo de Algoritmo:
Un cliente ejecuta un pedido a una fbrica. Esta examina en su banco de datos la
ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en
caso contrario rechazara el pedido. Redactar el algoritmo correspondiente.
Los pasos del algoritmo son:
inicio
leer el pedido
examinar la ficha del cliente
Si el cliente es solvente aceptar pedido; en caso contrario, rechazar pedido
Fin
Diseo del Algoritmo:
En la etapa de anlisis del proceso de programacin se determina que hace el
programa. En la etapa de diseo se determina como hace el programa la tarea
solicitada. Los mtodos ms eficaces para el proceso de diseo se basan en el
conocido por Divide y Vencers, es decir, la resolucin de un problema complejo se
realiza dividiendo el problema en sub problemas y a continuacin dividir estos sub
problemas en otros de nivel ms bajo, hasta que pueda ser implementada una
solucin en la computadora. Este mtodo se conoce tcnicamente como diseo
descendente (Top Down) o modular. El proceso de romper el problema en cada
Programar mdulo.
Comprobar el mdulo.
N : Tiempo de ejecucin lineal. Un caso en el que N valga 40, tardar el doble que
otro en que N valga 20. Un ejemplo sera un algoritmo que lee N nmeros enteros y
devuelve la media aritmtica.
Existe siempre un camino que permite llegar a una solucin (finalizacin del
algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica
una comparacin con dos caminos posibles).
Recomendaciones
A su vez, es importante que al construir diagramas de flujo, se observen las
siguientes recomendaciones:
Evitar las burbujas de generacin espontnea, que tienen salidas sin tener
entradas, porque son sumamente sospechosas y generalmente incorrectas.
Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de
falta de esmero, pero puede esconder un error an ms grave: a veces el analista no
etiqueta un flujo o un proceso porque simplemente no se le ocurre algn nombre
razonable.
VARIABLE: Es un valor no fijo que permanece almacenado en la memoria del
computador y que es identificado con un nombre nico y irrepetible.
Podemos definirlo como cualquier cantidad o valor al cual hacemos referencia
asignndole un nombre, clave (casi siempre abreviada) y que tomar diferentes
valores durante el proceso.
Ejemplo: Nombres y Apellidos, Sueldo, Nmero de Cdula de Identidad.
Fsicamente, una variable es un espacio o direccin en la memoria del computador.
A= 0
A= B
Sueldo= SDO
Nombre= NOMBS
CARACTERSTICAS DE LAS VARIABLES:
Los nombres de las variables siempre debern comenzar por una letra.
FAC001 Nunca: 01COD
COD01 Nunca: 001FAC
Alfanumricas: Son aquellas que pueden almacenar cualquier carcter, letras (AZ); nmeros (0-9), espacios en blanco, o caracteres especiales ( , %, *, + , /, $, &,
etc)
Ejemplos:
ISLR= 10%
CED$= V- &&.&&&.&&&
FEC= (__/__/__)
m= f / a
1.- Algoritmo y Diagrama de Flujo para calcular el rea de un crculo donde: a= *
r2
- Identificacin de variables y anlisis de proceso.
a= 0
r= 0
= 3,14
A.- Algoritmo que describe el proceso de verificar el Por qu?, de tu solvencia de
examen dice: No puede presentar.
1.- Inicio.
2.- Leer solvencia.
3.- Verificar la causa del problema.
4.- Si el problema es falta de pago.
5.- Cancelo la mensualidad.
6.- Entonces, puedo presentar.
7.- Si el problema es falta de nota
8.- Entonces, no puedo presentar
9.- Error en el Departamento de Control de Estudios.
10.- Soluciono el problema.
11.- Entonces, puedo presentar.
12.- Fin.
B.- Algoritmo que ayude a verificar porqu el torniquete del Metro de Caracas, me
impide salir.
1.- Inicio
2.- Si el torniquete est DAADO.
3.- Entonces, voy a otro torniquete, puedo salir.
4.- Si el importe del ticket es menor.
5.- Entonces, pago la diferencia.
6.- Si el ticket est deteriorado.
7.- Entonces, me dirijo al Operador, puedo salir.
8.- Fin.
c.- Algoritmo que descarte Por qu , el CPU del computador que se te asign en el
Laboratorio no enciende.
1.- Inicio
2.- Verifico la causa del problema.
3.- Si el problema es falta de energa elctrica.
4.- Entonces, no puedo utilizar el computador, fin.
5.- Si el problema es porque no est enchufado.
6.- Enchufo el cable soluciono el problema.
7.- Si el problema es de carcter tcnico.
8.- Entonces no puedo utilizar el computador, fin.
9.- Si el problema es que el computador est Daado.
10.- Entonces, utilizo otro computador.
11.- Fin.
Variables Lgicas:
Existe una clase de variables que solamente pueden tomar dos valores. Para estas
variables slo existen dos estados posibles; a cada uno de estos estados se le
asigna un valor.
Se acostumbra representar a estas variables con letras maysculas: U, V, W, X, Y,
Z. Uno De los estados se representa con la letra mayscula, y el otro con la misma
letra con una barra encima: U, V, W, X, Y, Z.
Si bien se usan los valores cierto y falso para los dos estados de este tipo de
variables, lo ms comn es el uso de los dgitos del sistema binario, 1 y 0, para
distinguir los dos estados posibles.
Abierto Abierta
X0X
Abierto Abierta
X1X
(b)
Ejemplo:
En la figura se presentan diversos componentes, que solamente pueden alcanzar
dos estados.
En (a) aparece un contacto elctrico, que puede estar abierto o cerrado. En (b), se
presenta una llave de paso de agua que puede estar abierta o cerrada.
TABLAS DE VERDAD
X
Fig. 3.5
Ejemplo
Sea la funcin F= (P + Q) * R
En este caso, las posibles combinaciones de las tres variables son 8. Para cada tro
de valores de las variables, se reemplazan en la expresin de la funcin y se
obtiene el valor de F. En la figura 3.6. Aparece la tabla de la verdad para esta
funcin.
TABLAS DE VERDAD
P
Fig. 3.6
PR= TNOT/C
C= C-2
Fin
R= N * 13,5%
R
N
N=0 R=0
r
Inicio
Declarar variables
Leer N
Proceso / Calcular
Imprimir Resultado
Fin
Inicio
Inicio
Inicio
Declarar variables
m=0 f= 0 a=0
r
Leer N
af
f
Fin
Imprimir Resultado
Proceso / Calcular
La masa es:
Fin
m= f / a
Inicio
Inicio
Declarar variables
a=0 Pi= 3,14 r=0
r
Leer N
r
Fin
Imprimir Resultado
Proceso / Calcular
El rea es:
Fin
a= * r2
X
aquellas instrucciones dentro de las estructuras que las contienen de manera ordenada que
permita visualizar el inicio y fin de cada bloque de instrucciones.
Si ASISTIO =SI Entonces
Leer Sueldo,
Asignar Sueldo = Sueldo + Hora Extra
Fin Si
Donde:
SI
Representa una estructura condicional utilizada para establecer preguntas
O programar ciertas condiciones
ASISTIO
Nombre de una Variable lgica que puede obtener slo dos valores SI
O NO. En el ejemplo se programa la condicin de las variables cuando
Es SI
ENTONCES
Parte de la instruccin o estructura condicional
LEER SUELDO
Instruccin utilizando el comando cuya accin es la lectura de un campo
o dato
Asignar SUELDO=
SUELDO+HORAEXTRA
Ejemplos
Numricos Enteros
Los nmeros enteros son los nmeros naturales positivos y negativos que conocemos.
1
2
25
146
-456
Numricos Reales
Los nmeros reales, son los nmeros que tienen
Parte decimal.
0.56
1.00
25.13
148.45
-456.23
Lgicos o bolanos
Son aquellos datos cuyos nicos valores slo pueden
Ser: Verdadero (V) o Falso (F), puede encontrarse,
Verdadero (True) o Falso (False). Se utiliza
Para representar las opciones (si/no) a determinadas
Condiciones.
Nacionalidad = Venezolano
(S/N)?
Carcter o Char
Su valor lo comprenden todos los caracteres alfabticos,