Manual de Algoritmo
Manual de Algoritmo
Manual de Algoritmo
INDICE
Introducción…………………………………………………………………………………………………………………………..2
Que es programación………………………………………………………………………………………………………………3
Que es lógica computacional……………………………………………………………………………………………………4
Clasificación de los lenguajes de programación………………………………………………………………………….5-7
Que es un algoritmo………………………………………………………………………………………………………………8-10
Que es un pseudocódigo………………………………………………………………………………………………………11-21
Diagramas de flujo……………………………………………………………………………………………………………...22-24
Que son las variables………………………………………………………………………………………………………….25-29
Que es una constante………………………………………………………………………………………………………….30-31
Tipos de datos……………………………………………………………………………………………………………………….32
Operadores………………………………………………………………………………………………………………………33-35
Simbolos de diagramas……………………………………………………………………………………………………….36-37
Operaciones básicas………………………………………………………………………………………………………….38-52
Bibliografía…………………………………………………………………………………………………………………………..53
Pá gina 1
MANUAL DE ALGORITMO
¿Qué es programación?
Se conoce como programación en ciencias de la computación a los pasos que se abordan para crear el código fuente de un programa
informático. De acuerdo con estos pasos, el código se escribe, se prueba y se perfecciona.
El software informático es aquel ejecutado por el hardware o dispositivos de una computadora, permitiendo que el usuario acceda a
funciones y operaciones de todo tipo. Así, la programación es una de las actividades más determinantes en el desarrollo de sistemas
eficientes, rápidos y amigables para todo tipo de usuarios.
Se conoce como programadores a aquello encargados de desarrollar este código con instrucciones para que el software se comporte
de una u otra manera de acuerdo con las órdenes que reciba. El lenguaje de programación es, por otro lado, la serie de parámetros y
códigos de los que el programador se vale para desarrollar software. Existen distintos tipos de lenguajes, como el C, BASIC o Ruby.
Además, existe la ingeniería el software, que se dedica a desarrollar modelos de software para programas de gran envergadura.
Típicamente, para programar un software o aplicación, el programador debe en principio reconocer el principal problema o tarea a la
que se destinará el programa, definir los requisitos y tipo de funcionamiento, diseñar la arquitectura, implementar el programa,
implantarlo o instalarlo y, luego, perfeccionarlo sobre la base de pruebas y errores.
Hoy en día existen todo tipo de lenguajes de programación, algunos más sencillos o que tienen el propósito de facilitar la tarea de
desarrollar pequeñas aplicaciones. Entre ellos, Ruby es uno de los más popularizados en los últimos años, desarrollado por un
programador japonés y que combina sintaxis de distintos lenguajes como Python o Perl.
Así, prácticamente cualquier usuario informático puede adquirir algunas nociones de programación y desarrollar aplicaciones a su
medida.
Pá gina 2
MANUAL DE ALGORITMO
Pá gina 3
MANUAL DE ALGORITMO
La lógica es una ciencia que estudia los procesos del pensamiento, su estructura sus formas y relaciones.
Teniendo como resultados respuestas claras, precisas y comprobables. Desechando todo resultado que no
sean evidentes y precisos. Cuando hablamos de lógica, se nos viene a la mente todos los procedimientos o
caminos más cortos para desarrollar o resolver un problema, teniendo la oportunidad de desechar ideas o
razones erróneas dando oportunidad a otros pensamientos más factibles, hasta llegar al resultado válido. Con
esto podemos tener el concepto siguiente : “ La lógica es la ciencia de los principios de la inferencia
formalmente válida”.
La lógica estudia la metodología del pensar, todo lo que implica los procesos de la adquisición del
conocimiento, y su estudio nos ayuda a formular métodos científicos, por lo que es instrumento en la
investigación científica. Es importante notar que a pesar de toda la metodología que implica la lógica, no es
necesario estudiarla para emplearla; esto es claro si tomamos en cuenta que todos los seres humanos
realizamos de manera implícita operaciones lógicas en nuestras actividades cotidianas, sin que
necesariamente nos demos cuenta de ello. Sin embargo el estudiarla nos sirve de herramienta para actuar
con mayor eficacia en la práctica de nuestra profesión.
Pá gina 4
MANUAL DE ALGORITMO
Pá gina 5
MANUAL DE ALGORITMO
microcomputadoras con el mismo microprocesador e iguales circuitos de control, tienen igual
lenguaje máquina. La dependencia del lenguaje máquina de la configuración de la CPU hace que los
programas redactados en este lenguaje de programación sean poco transferibles o transportables de
una computadora a otra.
- En un programa en código máquina, no pueden incluirse comentarios que faciliten la
legibilidad del mismo. Además, debido a su representación totalmente numérica, es muy difícil de
reconocer o interpretar por el usuario.
Pá gina 6
MANUAL DE ALGORITMO
Se dividen en lenguajes funcionales y lógicos.
1.4.2.1. Lenguajes funcionales.
Los lenguajes funcionales son un tipo de lenguajes declarativos, en los que los programas
están formados por una serie de definiciones de funciones. Ejemplos de estos lenguajes son el LISP
y el SCHEME. Se suelen aplicar a problemas de Inteligencia Artificial.
1.4.2.2. Lenguajes lógicos.
Los lenguajes lógicos son el otro tipo de lenguajes declarativos, y en ellos los programas
están formados por una serie de definiciones de predicados. También se les denomina lenguajes de
programación lógica, y el mayor exponente es el lenguaje PROLOG. Se aplican sobre todo en la
resolución de problemas de Inteligencia Artificial.
Pá gina 7
MANUAL DE ALGORITMO
¿Qué es un algoritmo?
En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y
latin, dixit algorithmus y éste a su vez del matemático persa Al Juarismi[] ) es un conjunto preescrito
de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad
mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. [] Dados un
estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene
una solución. Los algoritmos son el objeto de estudio de la algoritmia.
algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los
ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una
computadora distinta.
[]
1.-Ordenamiento Burbuja
Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a través de la
lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente
posición se intercambian.
Ventajas:
· Fácil implementación.
· No requiere memoria adicional.
Desventajas:
· Muy lento.
· Realiza numerosas comparaciones.
· Realiza numerosos intercambios.
Pá gina 8
MANUAL DE ALGORITMO
· Realiza pocos intercambios.
· Rendimiento constante: poca diferencia entre el peor y el mejor caso.
Desventajas:
· Lento.
· Realiza numerosas comparaciones.
En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es
INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados.
Ventajas:
· Fácil implementación.
· Requerimientos mínimos de memoria.
Desventajas:
· Lento.
· Realiza numerosas comparaciones.
Este también es un algoritmo lento, pero puede ser de utilidad para listas que están ordenadas o semiordenadas, porque
en ese caso realiza muy pocos desplazamientos.
4.-Ordenamiento Rápido
Esta es probablemente la técnica más rápida conocida. Fue desarrollada por C.A.R. Hare en 1960. El algoritmo original
es recursivo, pero se utilizan versiones interactivas para mejorar su rendimiento (los algoritmos recursivos son en general
más lentos que los iterativos, y consumen más recursos). El algoritmo fundamental es el siguiente:
· Eliges un elemento de la lista.
· Buscas la posición que le corresponde en la lista ordenada.
· Acomodas los elementos de la lista a cada lado del elemento de división, de manera que a un lado queden todos los
menores que él y al otro los mayores . En este momento el elemento de división separa la lista en dos sublistas.
· Realizas esto de forma recursiva para cada sublista mientras éstas tengan un largo mayor que 1. Una vez terminado
este proceso todos los elementos estarán ordenados.
Una idea preliminar para ubicar el elemento de división en su posición final sería contar la cantidad de elementos
menores y colocarlo un lugar más arriba. Pero luego habría que mover todos estos elementos a la izquierda del
elemento, para que se cumpla la condición y pueda aplicarse la recursividad. Reflexionando un poco más se obtiene un
procedimiento mucho más efectivo. Se utilizan dos índices: i, al que llamaremos contador por la izquierda, y j, al que
llamaremos contador por la derecha. El algoritmo es éste:
· Recorres la lista simultáneamente con i y j: por la izquierda con i (desde el primer elemento), y por la derecha con j
(desde el último elemento).
· Cuando lista sea mayor que el elemento de división y lista[j] sea menor los intercambias.
· Repites esto hasta que se crucen los índices.
· El punto en que se cruzan los índices es la posición adecuada para colocar el elemento de división, porque sabemos
que a un lado los elementos son todos menores y al otro son todos mayores (o habrían sido intercambiados).
Al finalizar este procedimiento el elemento de división queda en una posición en que todos los elementos a su izquierda
son menores que él, y los que están a su derecha son mayores.
Ventajas:
· Muy rápido
· No requiere memoria adicional.
Desventajas:
· Implementación un poco más complicada.
Pá gina 9
MANUAL DE ALGORITMO
· Recursividad (utiliza muchos recursos).
· Mucha diferencia entre el peor y el mejor caso.
Pá gina 10
MANUAL DE ALGORITMO
¿Que es un pseudocódigo?
El pseudocódigo (falso lenguaje) es comunmente utilizado por los programadores para omitir
secciones de código o para dar una explicación del paradigma que tomó el mismo programador para
hacer sus códigos esto quiere decir que el pseudocódigo no es programable sino facilita la
programación.
Características y partes
1. Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.
1. Cabecera.
1. Programa.
2. Modulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se
emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del
algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de
datos, esta parte la desarrollaremos adecuadamente Fin.
Pá gina 11
MANUAL DE ALGORITMO
Funciones y operaciones
Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, la
instrucción "reemplace el valor de la variable x por el valor de la variable y" puede ser representado
como:
asigne a el valor de
Estructuras de control
En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: las secuenciales, las
selectivas y las iterativas.
Estructuras secuenciales
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de
renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Las instrucciones se
ejecutan dependiendo de la condición dada dentro del algoritmo.
Pá gina 12
MANUAL DE ALGORITMO
Estructuras selectivas
La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de una
condición.
Pá gina 13
MANUAL DE ALGORITMO
La condición es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso).
Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se ejecuta Instrucciones2.
Selectiva múltiple
También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de
selección.
Pá gina 14
MANUAL DE ALGORITMO
En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de
ellas se cumple las demás tienen que ser falsas necesariamente, hay un caso si no que será cierto
cuando las demás condiciones sean falsas.
Selectiva múltiple-Casos
Pá gina 15
MANUAL DE ALGORITMO
En este caso hay un Indicador es una variable o una función cuyo valor es comparado en cada caso
con los valores "Valor", si en algún caso coinciden ambos valores, entonces se ejecutarán las
Instrucciones correspondientes. La sección en otro caso es análoga a la sección si no del ejemplo
anterior.
Estructuras iterativas
Bucle mientras
El bucle se repite mientras la condición sea cierta, si al llegar por primera vez al bucle mientras la
condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez.
Bucle repetir
Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se utiliza
cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que se cumpla la
condición:
Pá gina 16
MANUAL DE ALGORITMO
Bucle para
Una estructura de control muy común es el ciclo para, la cual se usa cuando se desea iterar un
número conocido de veces, empleando como índice una variable que se incrementa (o decremento):
Por último, también es común usar la estructura de control para cada. Esta sentencia se usa cuando
se tiene una lista o un conjunto L y se quiere iterar por cada uno de sus elementos:
Pá gina 17
MANUAL DE ALGORITMO
Sin embargo, en la práctica existen mejores formas de implementar esta instrucción dependiendo del
problema.
El anidamiento
Cualquier instrucción puede ser sustituida por una estructura de control. El siguiente ejemplo
muestra el pseudocódigo del ordenamiento de burbuja, que tiene varias estructuras anidadas. Este
algoritmo ordena de menor a mayor los elementos de una lista L.
Pá gina 18
MANUAL DE ALGORITMO
En general, las estructuras anidadas se muestran endentadas, para hacer más sencilla su
identificación a simple vista. En el ejemplo, además de la indotación, se ha conectado con flechas
los pares de delimitadores de cada nivel de anidamiento.
Desarrollo de algoritmos
Funciones y procedimientos
Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, al igual que una
función matemática, recibe uno o varios valores de entrada y regresa una salida mientras que un
procedimiento recibe una entrada y no genera ninguna salida aunque en algún caso podría devolver
resultados a través de sus parámetros de entrada si estos se han declarado por referencia (ver
formas de pasar argumentos a una función o procedimiento).
En ambos casos es necesario dejar en claro cuáles son las entradas para el algoritmo, esto se hace
comúnmente colocando estos valores entre paréntesis al principio o bien declarándolo
explícitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra
como regresar o devolver para indicar cuál es la salida generada por el algoritmo. Por ejemplo, el
pseudocódigo de una función que permite calcular an (un número a elevado a potencia n).
Pá gina 19
MANUAL DE ALGORITMO
Pá gina 20
MANUAL DE ALGORITMO
Pá gina 21
MANUAL DE ALGORITMO
Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación
gráfica del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos
también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es
una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la
interacción entre el sistema y las entidades externas. Este contexto a nivel de DFD se "explotó" para
mostrar más detalles del sistema que se está modelando.
Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del
diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de
datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de
Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y
los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución
del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que
el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El
antiguo sistema de diagramas de flujo de datos puede ser elaborado y se comparó con el nuevo
sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un
sistema más eficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al
usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto
sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado puede
Pá gina 22
MANUAL DE ALGORITMO
En el diagrama de contexto se caracterizan todas las interacciones que realiza un sistema con su
entorno (entidades externas), estas pueden ser otros sistemas, sectores internos a la organización, o
factores externos a la misma. Se dibuja un sólo proceso que representa al sistema en cuestión y se
escribe su nombre en dicha burbuja como un sustantivo común más adjetivos. De él solamente
parten los flujos de datos que denotan las interrelaciones entre el sistema y sus agentes externos, no
admitiéndose otros procesos ni almacenamientos en el dibujo.
Resulta de gran utilidad de balanceo para los niveles posteriores de análisis como herramienta de
balanceo.
En el diagrama de nivel superior se plasman todos los procesos que describen al proceso principal.
En este nivel los procesos no suelen interrelacionarse directamente, sino que entre ellos debe existir
algún almacenamiento o entidad externa que los una. Esta regla de construcción sirve como ayuda
al analista para contemplar que en un nivel tan elevado de abstracción (DFD Nivel 1) es altamente
probable que la información que se maneja requiera ser almacenada en el sistema aunque no esté
especificado por un Requisito funcional, siendo en realidad un requisito no-funcional.
El DFD nivel 2 puede considerarse el máximo para ser validado en forma conjunta con el usuario
dado que en los niveles posteriores el alto grado de complejidad del diagrama puede resultar de muy
difícil lectura para personas ajenas al equipo de sistemas. También se recomienda el diagrama de
nivel superior.
Pá gina 23
MANUAL DE ALGORITMO
PROGRAMACIÓN
LOS DATOS Y OPERACIONES BÁSICAS.
1. IDENTIFICADOR. Un identificador es una serie de caracteres formados por letras, dígitos y el carácter
subrayado ( _ ) que no inicie con dígito, así mismo es el nombre que damos a todo lo que manipulamos dentro de
un programa (variables, constantes, funciones, etc. . Por ejemplo variables, constantes, funciones, tipos definidos
por el usuario etc.
2. TIPOS DE DATOS. Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal
como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede
tomar una variable.
Pá gina 24
MANUAL DE ALGORITMO
Pá gina 25
MANUAL DE ALGORITMO
Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde
se dirige.
2. Pseudocódigo
Mezcla de lenguaje de programación y español(o ingles o cualquier otro idioma) que se emplea, dentro de la
programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir
como un lenguaje de especificaciones de algoritmos.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema
determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de
flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es mas fácil de
utilizar ya que es similar al lenguaje natural.
Al contrario de los lenguajes de programación de alto nivel como Pascalo Basic no existe un conjunto de reglas
que definan con precisión lo que es y lo que no es pseudocódigo. Varia de un programador a otro.
El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les
conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración
condicional, así como para las instrucciones adicionales y otras estructuras de control.
Programación estructurada
Método disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fáciles de
modificar
Un programa se compone de:
a.
b. Estructuras de datos.- Los hechos reales, representación en forma de datos, manera en que se organizan
los datos.
c. Operaciones primitivas elementales.- Son accionesque se ejecutan sobre los datos para transformarlos
en información.
d. Estructuras de control.- Son los métodosque existen para dirigir el flujo de acciones que la computadora
deberá ejecutar sobre los datos manejados por el programa.
Pá gina 26
MANUAL DE ALGORITMO
Pá gina 27
MANUAL DE ALGORITMO
Selectiva simple.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa
no realiza ninguna acción.
Nota:Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin, en
caso contrario si, como se muestra en el diagrama anterior.
Selectiva doble o compuesta .- evalúa una condición, si esta es verdadera ejecuta la acción o acciones
especificadas, si es falsa ejecuta otra acción o acciones.
Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin
como en este caso que la condición fue falsa, en caso contrario si, en este ejemplo cuando la condición fue
verdadera.
Pá gina 28
MANUAL DE ALGORITMO
En programación, las variables son estructuras de datos que, como su nombre indica, pueden
cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área
reservada en la memoria principal del ordenador pudiendo ser de longitud:
Pá gina 29
MANUAL DE ALGORITMO
En C, una constante puede ser de tipo entero, real, carácter, cadena o enumerado. Las
constantes de tipo enumerado se van a estudiar en el apartado 4.1 Datos de tipos
enumerados. En cuanto a las demás, se pueden expresar de dos formas diferentes:
1. Por su valor.
2. Con un nombre (identificador).
Ejemplo 1: Las siguientes constantes de tipo entero están expresadas por su valor:
-5
10
Para expresar una constante con un nombre, la constante debe ser declarada previamente.
Todas las constantes que se declaran en un programa son definidas de la misma forma,
indicando de cada una de ellas:
<nombre_de_la_constante> = <expresión>
Y para declarar más de una constante en una misma línea, las separaremos por medio de
comas (,).
Ejemplo 2: De modo que, si se quieren declarar las constantes de tipo entero del ejemplo 1,
asignándoles un identificador, se puede escribir, por ejemplo:
TEMPERATURA = -5
MES = 10
O también:
TEMPERATURA = -5, MES = 10
Pá gina 30
MANUAL DE ALGORITMO
Pá gina 31
MANUAL DE ALGORITMO
Tipos de datos
Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a
cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el
algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de
conjuntos específicos de objetos".
Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las
entradas".
Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en
principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y
papel".
Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal,
puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y
no ambigua", o "suficientemente básicas", y así sucesivamente.
Pá gina 32
MANUAL DE ALGORITMO
OPERADORES
Operadores y Operandos
Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
Los Tipos de Operadores que existen son tres: los relaciónales, los Aritméticos y por último los
lógicos
Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
Ejemplos:
Expresión Resultado
7 / 2 3.5
12 mod 7 5
4 + 2 * 5 14
* Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis
anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa primero.
* Dentro de una misma expresión los operadores se evalúan en el siguiente orden.
1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.
* Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a
derecha.
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
Pá gina 33
MANUAL DE ALGORITMO
3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
Operadores Relaciónales:
Ejemplos:
Si a = 10 b = 20 c = 30
Ejemplos no lógicos:
a < b < c
10 < 20 < 30
T < 30 (no es lógico porque tiene diferentes operandos)
Operadores Lógicos:
Operadores Lógicos
And Y
Or O
Not Negación
Operador And
Operando1 Operador Operando2 Resultado
T AND T T
T F F
F T F
F F F
Operador Or
Operando1 Operador Operando2 Resultado
T OR T T
Pá gina 34
MANUAL DE ALGORITMO
T F T
F T T
F F F
Operador Not
Operando Resultado
T F
F T
Ejemplos:
Ejemplo:
a = 10 b = 12 c = 13 d =10
Pá gina 35
MANUAL DE ALGORITMO
NO
Pá gina 36
MANUAL DE ALGORITMO
Pá gina 37
MANUAL DE ALGORITMO
(OPERACIONES BASICAS)
IF
EJEMPLOS:
1.- Construya un diagrama de flujo tal que dadas la base y la altura de un triangulo, calcule e
imprima su superficie.
INICIO
BASE, ALTU
SUP =(BASE*ALTU)/2
SUP
FIN
Pá gina 38
MANUAL DE ALGORITMO
2.- Construya un diagrama de flujo tal que dado como datos el radio y la altura de un cilindro,
calcule e imprima el área y su volumen.
INICIO
RADIO, ALTU
VOL= 3.1416*(RADIO**2)/ALTU
ARE=2*3.1416*RADIO*ALTU
VOL, ARE
FIN
3.-Construya el diagrama de flujo que calcule e imprima el numero de segundos que hay en un
determinado numero de días.
INICIO
DIAS
SEG= DIAS*24 * 60 * 60
FIN
Pá gina 39
MANUAL DE ALGORITMO
1.- Construya un diagrama de flujo tal que dado el costo de un artículo vendido y la cantidad de
dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo.
2.- Escriba un diagrama de flujo tal que dado como datos el nombre de un dinosaurio, su peso y su
longitud, expresados estos dos últimos en libras y pies respectivamente; escriba el nombre del
dinosaurio, su peso expresado en kilogramos y su longitud expresada en metros.
3.- Construya un diagrama de flujo que resuelva el problema que tienen en una gasolinera. Los
surtidores de la misma registran lo que “surten” en galones, pero el precio de la gasolina esta fijada
en litros. El diagrama de flujo debe calcular e imprimir lo que hay que cobrarle al cliente.
4.- Dada la matricula y 5 calificaciones de un alumno obtenidas a lo largo del semestre, construya
un diagrama de flujo que imprima la matricula del alumno y el promedio de sus calificaciones.
5.-Escriba un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de un numero
entero positivo NUM.
IF ANIDADOS
Un if anidado es un if que es el objeto de otro if o else. Una sentencia else siempre se refiere al
if más próximo que esté en el mismo bloque. Un compilador bajo el estándar ANSI permite
tener como máximo 15 niveles de profundidad.
Es posible encadenar varios ifs y varios elses en algo conocido como escalera if- else -if por su
apariencia visual.
Pá gina 40
MANUAL DE ALGORITMO
Las condiciones son evaluadas de arriba hacia abajo. Tan pronto se cumpla con una
condición, las sentencias asociadas a ella son ejecutadas y el resto de la escalera es brincado.
Si ninguna de las condiciones son ciertas, el último else es ejecutado (si está presente).
EJEMPLOS:
1.- Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un
examen, escriba “aprobado” en caso de que esa calificación sea mayor a 8.
INICIO
CAL
CAL> 8 NO
SI
“Aprobado”
FIN
Pá gina 41
MANUAL DE ALGORITMO
2.- Dado como dato el sueldo de un trabajador, aplique un aumento del 15% si su sueldo es
inferior a $ 1000. Imprima en este caso el nuevo sueldo del trabajador. Haga el diagrama de flujo
correspondiente.
INICIO
SUE
SUE<1000
NO
SI
NSUE
FIN
Pá gina 42
MANUAL DE ALGORITMO
3.- Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un
examen, escriba “aprobado” si su calificación es mayor o igual que 8 y “reprobado” en caso
contrario.
INICIO
CAL
CAL > 8
“Aprobado” “Reprobado”
FIN
1.- construya un diagrama de flujo talque dado como dato el sueldo de un trabajador, le aplique un
aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Imprima el nuevo
sueldo del trabajador.
2.- Construya un diagrama de flujo tal que dado como datos los valores enteros P y Q, determine
si los mismos siguiente expresión. P3 + Q4 – 2*P2 < 680
4.- Construya un diagrama de flujo tal que dado como datos de entrada tres números enteros,
determine si los números están en orden decreciente.
Pá gina 43
MANUAL DE ALGORITMO
SWITCH
Esta estructura permite considerar decisiones para más de dos posibilidades
EJEMPLOS:
1.- Un almacén de alimentos, atendiendo al monto anual que los clientes compran al almacén, los
clasifica y les otorga descuentos permanentes según la tabla que se muestra a continuación:
a.- Cliente Preferente
recibe el 5% de descuento en montos menores a 500.00 pesos
recibe el 10% de descuento en montos de 500.00 pesos o más
b.- Cliente especial
recibe el 2% de descuento en montos menores a 500.00 pesos
recibe el 5% de descuento en montos de 500.00 pesos o más
c.- Cliente Ordinario
no recibe descuento
2.-
SWITCH ANIDADOS
EJEMPLOS:
-
Pá gina 44
MANUAL DE ALGORITMO
FOR
La estructura repetir conocida comúnmente como FOR, es la estructura algorítmica adecuada
para utilizar en un ciclo que se ejecutara en un numero definido de veces. Este tipo de estructura
esta presente en todos los lenguajes de programación, ya sean estructurados u orientados a
objetos. Por ejemplo cuando necesitamos calcular la nomina 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 N calificaciones de los alumnos y dividir esa suma
entre N. es decir sabemos de antemano cuantas veces tenemos que repetir una determinada
operación, acción o tarea. El número de veces se obtiene del planteamiento del problema o de una
lectura que indica que el número de iteraciones se debe realizar para N ocurrencias.
EJEMPLOS:
1.- Construya un diagrama de flujo tal que dado como datos los sueldos de 10 trabajadores de una
empresa, obtenga el total de nomina de la misma. Considere que además que no puede utilizar
estructuras algorítmicas repetitivas en la solución del problema.
Datos: SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10.
INICIO
NOMINA=0
I=1
NO
1<10
SI
SUE
NOMINA= NOMINA +
SUE
I=I+1
NOMINA
FIN
Pá gina 45
MANUAL DE ALGORITMO
2.- Escriba un diagrama de flujo tal que dado como datos N números enteros, obtenga el numero
de ceros que hay entre estos números.
INICIO
Datos: N, NUM1, NUM2,…,NUMN
CUECER=0
I=1
NO
1<N
SI
NUM
NUM=0 NO
SI
CUECER= CUECER+1
I=I+1
CUECER
WHILE FIN
EJEMPLOS:
Pá gina 46
MANUAL DE ALGORITMO
1.- Supongamos que debemos obtener la suma de los gastos que hicimos en nuestro ultimo viaje,
pero no sabemos exactamente cuantos fueron. Los datos son expresados en forma:
SUMGAS=0
GASTO
NO
GASTO <>-1
SI
I=I+1
NOMINA
FIN
2.- Escriba un diagrama de flujo tal que dado un grupo de numero naturales positivos, calcule e
imprima el cubo de estos números. INICIO
NUM
NO
NUM <>-1
SI
CUB=NUM**3
NUM
FIN
Pá gina 47
MANUAL DE ALGORITMO
3.- Escriba un diagrama de flujo que lea un numero entero N y calcule la suma de la
siguiente serie: 11 + 22 + 33 +… NN
INICIO
SERIE=0
I=1
1<N
SERIE
FIN
1.- Realiza un diagrama de flujo que calcule el término número 180 de la secuencia
FIBONACCI. Recuerde que los dos primeros números de la serie son 0 y 1. El resto se
calcula como la suma de los números inmediatos que le preceden.
Pá gina 48
MANUAL DE ALGORITMO
4.- Escriba un diagrama de flujo tal que dado como datos 270 números enteros, obtenga
la suma de los números impares y el promedio de los números pares.
5.- Escriba un diagrama de flujo que obtenga la suma e imprima los términos de la
siguiente serie. 2, 5, 7, 10, 12, 15,17, . . . , 1 800
DO WHILE
Pá gina 49
MANUAL DE ALGORITMO
VECTORES.
Ejemplos:
1.- Escriba un diagrama de flujo tal que dado como entrada un arreglo unidimensional números reales,
obtenga como resultado la suma de los mismos.
2.- Construya un programa tal que dado como entrada un arreglo unidimensional de enteros y un
numero entero, determine cuantas veces se encuentra el numero dentro de arreglo.
3.- Construya un diagrama de flujo que permita insertar y eliminar elementos en un arreglo
unidimensional que se encuentra desordenado.
4.- Construya un diagrama de flujo que permita insertar y eliminar elementos en un arreglo
unidimensional de tipo entero que se encuentra desordenado.
5.- Construya un diagrama de flujo para almacenar en un arreglo unidimensional los 100 primeros
números Fibonacci. Imprima al final el arreglo correspondiente.
-
Pá gina 50
MANUAL DE ALGORITMO
MATRICES
Dada una matriz A(M X N) de tipo entero, construya un diagrama de flujo para calcular la
traspuesta de dicha matriz. La traspuesta de una matriz se obtiene al escribir las filas de la matriz A
como columnas. Por ejemplo si tenemos la siguiente matriz A.
-5 6 8 4
A 2 5 7 9
1 3 4 6
-5 2 1
AT 6 5 3
8 7 4
4 9 6
Pá gina 51
MANUAL DE ALGORITMO
BIBLIOGRAFIA
D Appleby, y J.J. VandeKopple, Lenguajes de
programación: paradigma y práctica, McGraw-Hill
Interamericana, 1998
T.W. Pratt y M.V. Zelkowitz, Lenguajes de programación: diseño
e implementación, Prentice-Hall Hispanoamericana, 3 ed., 1998
R. Sethi, Lenguajes de programación: conceptos y
constructores , Addison-Wesley Iberoamericana, 1992
Pá gina 52