Você está na página 1de 39

Manual de Algoritmos

INDICE DE CONTENIDO
Introduccin Objetivo

Captulo I

Conceptos y Metodologa

I.1. Definicin de lenguaje I.2. Historia y aplicacin de los lenguajes algortmicos I.3. Definicin de algoritmo I.4. Tipos de algoritmos I.5. Lenguajes algortmicos I.6. Definicin del problema I.6.1. Anlisis del problema I.6.2. Diseo del algoritmo I.6.3. Crear Cdigo I.6.4. Ejecutar I.6.5. Documentacin I.7. Ejercicios

Captulo II

Entidades Primitivas

II.1. Tipos de datos II.1.1. Tipo entero II.1.2. Tipo real II.1.3. Tipo carcter II.1.4. Tipo booleano II.2. Expresiones II.2.1 Aritmticas II.2.2. Relacionales II.2.3. Lgicas II.3. Operadores y Operandos II.4. Variables II.4.1. Reglas para generar variables

Manual de Algoritmos

II.5. Constantes II.6. Asignaciones II.7. Datos de entrada II.8. Datos de salida II.9. Ejercicios

Captulo III
III.2. Pseudocdigo

Tcnicas

III.1. Diagrama de Flujo

III.3. Diagramas estructurados (Nassi Schneiderman) III.4. Top Down III.5. Bottom Up III.6. Resolucin de problemas III.7. Programacin modular III.8. Programacin estructurada III.9. Ejercicios

Captulo IV
IV.1. Sintaxis IV.2. Estructura

Estructuras

IV.3. Estructuras secuenciales IV.4. Estructuras condicionales IV.5. Estructuras cclicas IV.6. Ejercicios

Captulo V
V.1. Definicin V.2. Vectores V.3. Matrices V.4. Ejemplos

Arreglos

Manual de Algoritmos

Captulo VI Derechos de Autor Captulo VI Bibliografa

Introduccin
INTRODUCCION
Dentro del mundo de la informtica, el desarrollo de programas ocupa un lugar muy especial, ya que ste es el motor del avance de la misma, por lo que todo inicio debe contener, el conocimiento adecuado y correcto del desarrollo de los algoritmos. El principiante debe entender que la programacin de aplicaciones requiere del desarrollo de pensamientos lgicos para ser aplicados a un problema y obtener la solucin adecuada, y que estos pensamientos ya se encuentran dentro de nuestro pensar diario, solo hay que encontrarlo, sacarlo, pulirlo y plasmarlo en un algoritmo. La lgica de programacin no exige conocimientos de computacin ni la presencia de alguna aplicacin, ya que esta forma de pensamiento se consigue a travs de la prctica continua de la resolucin de problemas, siguiendo un proceso metdico de la solucin por algoritmos. Este manual se enfocar al principiante, para ayudarlo a conseguir la solucin de los algoritmos, de manera obvia y fcil. Podemos garantizar que la lectura completa y la prctica de los ejercicios propuestos en este manual llevarn al participante a encontrar los pensamientos lgicos para la solucin de algoritmos.

Jose Antonio Diaz Montejo

Pagina 1

Captulo I

Concepto y Metodologa

I.1.

Definicin de lenguaje

De acuerdo con el diccionario de la Lengua Espaola. Lenguaje: Conjunto de sonidos articulados con que el hombre manifiesta lo que piensa y siente.1 Conjunto de signos y reglas que permiten la comunicacin con un ordenador. Lenguaje de Programacin: Lenguaje que facilita la comunicacin con un computador mediante signos convencionales cercanos a los de un lenguaje natural. Con estos conceptos podemos comprender que nuestro concepto de Lenguaje quedara de la siguiente manera: Conjunto de signos y reglas que permiten establecer una comunicacin entre el usuario y la computadora. Tomando en cuenta que la comunicacin se forma entre un emisor y un receptor, contando con un medio de comunicacin y el mensaje, contemplando que el mensaje corre en un sentido, alternando los papeles de emisor, receptor y el sentido del mensaje segn se necesite.

I.2.

Historia y aplicacin de los lenguajes algortmicos

El lenguaje algortmico permite la comunicacin entre el programador y la computadora, siguiendo esta las indicaciones que se encuentren en dicho algoritmo, terminado podemos crear un programa, trasladando la estructura del algoritmo a un lenguaje de programacin. A los primeros lenguajes de programacin se les conocieron como lenguaje ensamblador, estos son una representacin simblica de cdigos binarios, el cual representa de manera muy similar del cdigo maquina especifico para cada arquitectura. Por esto es llamado de Bajo Nivel. El lenguaje ensamblador fue usado en los inicios del desarrollo de programas, ya que aun no se contaba con los lenguajes de Alto Nivel, quienes contemplan sintaxis y/o palabras reservadas similares a las usadas en nuestro lenguaje comn, tambin contienen mdulos que nos permiten crear programas con imgenes y cuadros de dilogos, de manera fcil y rpida.

http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=lenguaje

Jose Antonio Diaz Montejo

Pagina 2

Captulo I

Concepto y Metodologa

La aplicacin de los algoritmos no se encuentra limitada a la creacin de programas de computadora, se pueden emplear en todas las areas del conocimiento, donde sea necesario crear un proceso que contenga inicio, desarrollo y fin, logrando cumplir con un resultado siempre igual, sin importar cuantas veces se aplique el procedimiento. Un algoritmo debe tener las siguientes caractersticas. Contar con un Inicio, tener un Desarrollo que deber ser Preciso, Definido y Finito, y tener un Fin. o o o Preciso Definido Finito

I.3.

Definicin de algoritmo
Para el tema de este manual definiremos algoritmo de la siguiente manera:

Secuencia de pasos lgicos, precisos, definidos y finitos para resolver un problema, de la manera ms obvia y fcil.

I.4.

Tipos de algoritmos

Los podemos dividir en dos, algoritmos cotidianos y algoritmos computacionales. Ambos pueden ser escritos en pseudocdigo y diagrama de flujo. Algoritmos cotidianos: Son aquellos donde el que realiza los pasos es la persona, como ejemplo: Algoritmo para comprar un libro. (escrito en pseudocdigo) 1. 2. 3. 4. 5. Inicio Determinar el ttulo del libro Dirigirse a una librera Preguntar por el libro Si tienen el libro en venta entonces Comprarlo Si no Regresar al paso 3 6. Fin Jose Antonio Diaz Montejo Pagina 3

Captulo I
Algoritmos computacionales:

Concepto y Metodologa

Son aquellos que se ejecutan en una computadora, como ejemplo: Algoritmo para conocer si un nmero es par. (escrito en pseudocdigo) 1. Inicio 2. Pedir el nmero 3. Si el residuo de dividir el numero entre 2 es igual a 0 entonces El nmero es par Sin no El nmero es impar 4. Fin Como podemos ver ambos cumplen con las caractersticas mencionadas en el tema I.2.

I.5.

Lenguajes algortmicos

Smbolos y reglas que se utilizan para describir de manera ordenada y clara un proceso, para ello dividiremos los lenguajes algortmicos en Escritos y Grficos. o o Escritos: (pseudocdigo) Presentacin en forma de texto de los paso a realizar dentro del algoritmo. Grficos: (diagrama de flujo) Es la representacin grafica de los pasos a realizar dentro del algoritmo.

Ejemplos: Escritos: Algoritmo para conocer si un nmero es par. 1. Inicio 2. Pedir el nmero 3. Si el residuo de dividir el numero entre 2 es igual a 0 entonces El nmero es par Sin no El nmero es impar 4. Fin

Jose Antonio Diaz Montejo

Pagina 4

Captulo I
Grficos:

Concepto y Metodologa

Como podemos ver ambos nos conducen a travs de una serie de pasos en secuencia hacia un resultado, sin importar cuantas veces los recorramos.

I.6.

Definicin del problema

Indudablemente el problema se encuentra en el correcto planteamiento del enunciado del problema, es necesario tener un conocimiento claro y preciso de lo que se requiere realice la computadora. Crear un programa tiene mucho de creatividad, imaginacin, conocimiento, pero aun ms de certeza de la solucin esperada a travs de la comprensin del problema. Podemos estructurar una secuencia de pasos lgicos para el diseo de un programa pero no deja de ser algo meramente esquemtico.

http://commons.wikimedia.org/wiki/File:DiagramaFlujoLampara.svg?uselang=es

Jose Antonio Diaz Montejo

Pagina 5

Captulo I

Concepto y Metodologa

DISEO DE UN PROGRAMA
Analizar el Problema

Algoritmo

Crear Cdigo

Ejecutar

Documentos
I.6. 1. Analizar el Problema: Comprendido el resultado esperado del futuro programa. Determinar los datos de entrada. Determinar los datos de salida. Formulas y procedimientos para el proceso de los datos

Recordar que es de gran utilidad tomar el lugar de la computadora para una rpida comprensin de las rdenes a recibir y los mensajes a enviar al usuario, as como la secuencia de las rdenes. I.6.2. Diseo del Algoritmo: Ver el punto (I.2. Historia y aplicacin de los lenguajes algortmicos) I.6.3. Crear Cdigo:

Jose Antonio Diaz Montejo

Pagina 6

Captulo I

Concepto y Metodologa

Utilizar un lenguaje de programacin adecuado que nos permita crear el programa de la manera ms eficiente y segura. I.6.4. Ejecutar: La ejecucin consiste en abrir el archivo compilado de nuestro programa y revisar todos los puntos que se involucran entre el programa y el usuario y los puntos que el usuario no observa pero que se desarrollan dentro del programa para cumplir con el resultado esperado. Podemos agregar un paso que es la depuracin del programa, para solventar las deficiencias encontradas, as como agregar las lneas de cdigo necesarias para evitar que el usuario ingrese datos no correctos. I.6.5. Documentacin: Esta parte es la recopilacin de todo el trabajo creado, ya que el programa puede ser modificado adaptado por otra persona. De aqu saldr el manual del usuario.

Jose Antonio Diaz Montejo

Pagina 7

Captulo I
I.7. Ejercicios del captulo I.

Concepto y Metodologa

1.- Escribe un algoritmo en pseudocdigo que calcule el resultado de sumar dos nmeros y lo muestre en pantalla. 1. 2. 3. 4. 5. 6. 7. 8. 9. Inicio Var: n1, n2, resultado, entero; Escribir: Ingresa el primer nmero; Leer: n1; Escribir: Ingresa el segundo nmero; Leer: n2; resultado <- n1 + n2; Mostrar: resultado Fin

2.- Escribe un algoritmo en pseudocdigo que muestre si el numero ingresado es positivo, negativo o nulo. Siendo positivo mayor que 0, negativo menor que 0 y nulo igual a 0. 1. Inicio 2. Var n1, entero 3. Escribir: Ingresa un nmero; 4. Leer n1; 5. Si n1 = 0 entonces 5.1. Mostrar: n1 Es nulo 5.2. Si no 5.3 Si n1 > 0 entonces 5.3.1. Mostrar: n1 Es positivo 5.3.2. Si no 5.3.2. Mostrar: n1 Es negativo 5.4. Fin Si 6. Fin Si 7. Fin

Jose Antonio Diaz Montejo

Pagina 8

Captulo II

Entidades Primitivas

II.1.

Tipos de datos

Los tipos de datos hacen referencia al tipo de informacin que se trabaja, donde la unidad mnima de almacenamiento es el dato, tambin se puede considerar como el rango de valores que puede tomar una variable durante la ejecucin del programa. Un dato puede ser un caracter y el tipo determina la naturaleza del dato. Los tipos de datos simples son los siguientes: Numricos (integer, real) Lgicos (boolean) Caracter (char, string)

II.1.1. Tipo entero Los enteros son nmeros completos, no contienen fracciones o decimales, pueden ser negativos o positivos. Ejemplo: II.1.2. Tipo real Los reales son nmeros que tiene punto decimal y pueden ser negativos o positivos. Ejemplo: -1.1 10.5 -1.1 -10.5 -1 10 135 1000 -1 -10 -135 -1000

32768 -32768

135.0 -135.0 1000.3 -1000.3

Jose Antonio Diaz Montejo

Pagina 9

Captulo II
II.1.3. Tipo caracter

Entidades Primitivas

Un dato de tipo caracter es un equivalente del Cdigo ASCII (American Standard Code for Interchange Information). Por lo que cada caracter representa para la maquina un cdigo ASCII, que a su vez se lee como un cdigo binario. Un conjunto de caracteres forman una cadena (string). Se puede representar nmeros como caracteres, pero pierden su propiedad matemtica, por lo que no podrn ser usados con un operador. La forma para representarlos dentro de una sintaxis es encerrndolos entre comillas. Ejemplo: Manual de Algoritmos 2012

II.1.4. Tipo booleano Estos datos solo pueden tener dos valores (CIERTO o FALSO), (TRUE o FALSE), debido a que son el resultado de realizar una comparacin entre dos o ms datos numricos o caracteres. Ejemplo: A = A cierto (true) 2.5 < 3.5 cierto (true) Hola = Casa falso (false)

II.2

Expresiones
Son combinaciones de constantes, variables, smbolos de operacin, parntesis y

nombres de funciones especiales. Una expresin se compone de operadores y operandos. Dependiendo del tipo de datos contenido se clasifican en:

II.2.1 Aritmticas Son aquellas que contienen datos de tipo numrico y que usando un operador aritmtico nos darn un resultado entero o real. Ejemplo: (2.5 * 11) + (3 *8) 5 Pagina 10

Jose Antonio Diaz Montejo

Captulo II
10 div 3 10 mod 3 resultado = 3 resultado = 1 Operadores Aritmticos Operador ^ ** + * / Div Mod Significado Exponente Suma Resta Multiplicacin Divisin Divisin entera Resto

Entidades Primitivas

II.2.2. Relacionales Estos permiten realizar comparaciones entre los datos, ya sean de tipo numrico o caracter, a travs de condiciones en los algoritmos. Ejemplo: A>B 5=6 8 <= 3 verdadero falso verdadero Operadores de Relacin Operador < > = <= >= <> Significado Menor que Mayor que Igual Menor o igual Mayor o igual Distinto

II.2.3. Lgicas Estos datos solo pueden tener dos tipos de resultado, (verdadero o falso). Ejemplo: A es verdadero Y B es verdadero por tanto AB es verdadero. A es falso Y B es verdadero por tanto AB es falso. Jose Antonio Diaz Montejo Pagina 11

Captulo II
Operadores Lgicos Operador And Or Not Significado Y O Negacin

Entidades Primitivas

Tablas de verdad Operador And (Y) Operando 1 V V F F Operador AND AND AND AND Operando 2 V F V F Resultado V F F F

Operador OR (O) Operando 1 V V F F Operador OR OR OR OR Operando 2 V F V F Resultado V V V F

Operador NOT (Negacin) Operando (Not) V (Not) F Resultado F V

Jose Antonio Diaz Montejo

Pagina 12

Captulo II
II.3 Operadores y operandos
Regla de Prioridad.

Entidades Primitivas

Las operaciones que se encuentren entre parntesis (a + b) se ejecutaran primero. Los operadores se muestran en orden decreciente de prioridad de arriba a abajo. Los operadores del mismo grupo tienen la misma prioridad (precedencia) y se ejecutan de izquierda a derecha (asociatividad) Operador () () [] ++ -+ ! * / % + < <= > >= == != && AND || OR = Tipo Parntesis Llamada a funcin Subndice Prefijo incremento Prefijo decremento Ms unitario Menos unitario Negacin lgica unitaria Producto Divisin Resto entero Suma Menor que Menor o igual que Mayor que Mayor o igual que Igualdad Desigualdad Lgico Lgico Asignacin Asociatividad Dcha-Izda Dcha-Izda Dcha-Izda Dcha-Izda Dcha-Izda Dcha-Izda Dcha-Izda Dcha-Izda Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Izda-Dcha Dcha-Izda

Jose Antonio Diaz Montejo

Pagina 13

Captulo II
II.4 Variables

Entidades Primitivas

Variable es el trmino que se uso de manera comn para indicar que algo tiende a ser diferentes formas, expresiones o significado, en el mbito de la programacin, tomaremos como definicin: Variable: Asignacin de un valor a un campo de memoria, valor que se puede cambiar un nmero infinito de veces. El valor de la variable puede cambiarse durante la ejecucin del programa. II.4.1 Reglas para generar variables: Debe comenzar con una letra (a z) (A Z). ( No debe contener espacios. Solo podr contener el tipo de dato con el que fue declarada. Letras, dgitos y caracteres especiales (_, #, $), estn permitidos. (Opcional) Longitud mxima 8 caracteres. (Opcional) No ser el nombre de una palabra reservada de la sintaxis del lenguaje de programacin utilizado. No debe llevar acentos. Ejemplo: a a_23 nombre _hola Correcto Correcto Correcto Correcto

II.5

Constantes

Una constante es un dato numrico o alfanumrico que no cambia su valor durante la ejecucin del programa. Puede contener diferentes datos (numricos o alfanumricos), deber respetar las reglas para declarar variables. Existen algunas constantes que se respetan en casi todos las sintaxis de los lenguajes de programacin:

Jose Antonio Diaz Montejo

Pagina 14

Captulo II
Ejemplo: PI 3.1415 2.71828

Entidades Primitivas

II.6

Asignaciones

La asignacin es la accin de indicarle al programa que una variable contiene un dato determinado, esto lo hacemos de la siguiente manera. a=6 a = 6 variable signo de asignacin. valor que contendr la variable a.

Si la variable a contena un valor anterior, este se perder al recibir la nueva asignacin.

II.7

Datos de Entrada

Los datos que se ingresan desde el teclado, mouse u otro dispositivo al programa se consideran datos de entrada, as como tambin los que provengan de otro modulo o de otro programa, estos debern cumplir con los requerimientos del mismo programa. A este proceso se le denomina Operacin de lectura (read)

II.8

Datos de Salida

Los datos que se obtienen como resultado de los clculos del programa, se denomina Operacin de escritura (write), y pueden salir a travs de la pantalla, a la impresora o ser enviados a otro modulo o programa.

Jose Antonio Diaz Montejo

Pagina 15

Captulo II
II.9. Ejercicios del captulo II.

Entidades Primitivas

Disear un algoritmo para calcular la longitud de un crculo en centmetros (cm). 1. Inicio (Modulo I) 2. Var: radio, n2, circunferencia, real; (Variables declaradas como Tipo Real) 3. Escribir: Ingresa el radio de la circunferencia en m.; 4. Leer: radio; 5. Circunferencia <- (2 *radio) * PI; (Clculos) 6. Fin (Dato de entrada)

Disear un programa que convierta el resultado del Mdulo I (Circunferencia) a pulgadas

1. Inicio (Mdulo II) 2. Var: pulg, real; 3. Pulg <- Circunferencia / 2.54 (calculo usando la variable circunferencia del mdulo I) 4. Mostrar: pulg; 5. Fin

Jose Antonio Diaz Montejo

Pagina 16

Captulo III

Tcnicas

III.1. Diagrama de Flujo


Los diagramas son representaciones graficas en secuencia lgica de un algoritmo. Son fciles de interpretar y de llevar a la sintaxis de un lenguaje de programacin. Se depende de ciertos smbolos donde se incluyen las sentencias a ejecutar, aqu veremos las ms usadas y su significado segn ANSI.

Inicio / Fin Proceso Datos Entrada Manual Pantalla Impresora Almacenamient o

Datos almacenados Llamada funcin/mdulo Conector misma pgina Conector otra pgina Decisi n Flechas

Consideraciones: 1. Todo algoritmo debe estar enmarcado con Inicio y Fin. 2. Dentro de inicio y fin se colocan todas las funciones u operaciones relacionadas con el mismo. 3. Las lneas que conectan dos smbolos debe tener solo un apunta. 4. Las flechas con doble sentido son correctas. 5. Evitar cruzar lneas y smbolos con las flechas. 6. Los smbolos se leen de arriba hacia abajo y de derecha a izquierda. 7. Los textos dentro de los smbolos sern breves y claros. En caso de necesitar ms espacio colocar como comentario fuera del smbolo. Se recomienda el uso de PSEInt Y otro programa para Diagramas DFD

Jose Antonio Diaz Montejo

Pagina 17

Captulo III
III.2. Pseudocdigo

Tcnicas

Esta tcnica es la ms usada durante el aprendizaje, ya que consta de instrucciones en nuestro lenguaje natural y las expresiones de las indicaciones son los pasos en que se resuelve el problema. Hay diferentes maneras de expresar un pseudocdigo, a veces el desarrollador, pone de su cosecha, pero aqu veremos los ms usados. Pseudocdigo.- Encabezado Descripcin del problema a resolver. Nombre del programa. En caso de que sea Modulo deber llevar Modulo Nombre 1.- Inicio.- Todos los algoritmos deben tener inicio. 2.- Variables.- Las variables se deben declarar segn el tipo que corresponda, pudiendo agruparse por tipo. (Var n1: entero; n2: Caracter;) 3.- Constantes.- Las constantes debern declararse de acuerdo al tipo y de manera independiente. (Cons R1: entero = 20) 4.- Funciones.- Conjunto de pasos agrupados bajo un nombre. Funcin: suma Var n3: entero; n3 = n1 + n2 Fin funcin suma 5.- Leer.- Guarda un dato capturado por el usuario en una variable. 6.- Escribir.- Muestra un mensaje en la pantalla. 7.- Imprimir.- Enva datos a la impresora o hacia un archivo. 8.- Llamar a.- Hace una llamada a una funcin o modulo para que se ejecute. 9.- Ciclos.- Se pueden elaborar ciclos condicionales independientes y ciclos anidados, segn lo siguiente:

Jose Antonio Diaz Montejo

Pagina 18

Captulo III
Ciclo condicional Sencillo. Si <Condicin se cumple> Entonces Hacer Funcin. Fin si Ciclo condicional Doble. Si <Condicin se cumple> Entonces Hacer Funcin. S No Funcin. Fin si Ciclos Anidados. Si <Condicin se cumple> Entonces Hacer Si <Condicin se cumple> Entonces Hacer Funcin. S No Funcin. Fin si S No Si <Condicin se cumple> Entonces Hacer Funcin. S No Funcin. Fin si Fin si

Tcnicas

Jose Antonio Diaz Montejo

Pagina 19

Captulo III

Tcnicas

10.- Iteraciones.- Las iteraciones son repeticiones de funciones o clculos que se efectan un nmero de veces. Repetir desde N hasta M Funcin Fin repetir Hacer Mientras < Condicin se cumpla> Funcin Fin hacer mientras Estas son las ms usadas en su forma general solo cabe recordar que segn la sintaxis de cada lenguaje de programacin podrn variar. 11.- Clculos u operaciones.- Son todos los clculos que correspondan al mdulo o funcin en que se este trabajando. 12.- Fin.- Todo algoritmo o modulo deber tener sealado su fin.

La numeracin debe ser de acuerdo a la longitud del Pseudocdigo y podra variar ya que los pasos se pueden repetir, eliminar o agregar. Se recomienda el programa PSEInt, para elaborar Pseudocdigos.

Jose Antonio Diaz Montejo

Pagina 20

Captulo III
III.3. Diagramas estructurados (Nassi Schneiderman)

Tcnicas

III.4. Top Down


La tcnica (Arriba Abajo) se refiere a la identificacin del problema de manera general y estructurar el programa de manera que cada mdulo se relaciones con su predecesor y/o antecesor de manera fluida. Esto se logra estableciendo niveles de mayor complejidad hacia los de menor complejidad, para la solucin del problema. La separacin del problema en niveles, simplifica la creacin de mdulos, los cuales se pueden programar por separado y el mantenimiento del mismo es ms sencillo.

Jose Antonio Diaz Montejo

Pagina 21

Captulo III
III.5. Bottom Up

Tcnicas

La tcnica Abajo Arriba corresponde a la identificacin de los procesos y su resolucin segn van apareciendo, desarrollndose en mdulos o funciones, segn sus necesidades. Aqu prevalece el diseo a detalle de las partes ms pequeas, las cuales se van integrando hasta conseguir la solucin del problema. Las pruebas del programa pueden comenzar desde que se tienen los primero mdulos, aunque esto puede representar un problema sino se ha determinado la forma de conexin con los mdulos que le preceden o anteceden. Aunque la reutilizacin del cdigo es uno de sus mayores beneficios

III.6. Resolucin de problemas


Todo programa se debe enfocar de manera seria y profesional, independiente de su complejidad o alcance. Por ello la primera fase para elaborar un algoritmo es el estudio del problema planteado, desde el punto de vista de la metodologa de la investigacin. La lgica de programacin es realizar un conjunto de rdenes que una computadora a travs de un lenguaje de programacin, logra realizar un proceso el cual es comprensible para un usuario o un dispositivo de salida. Un problema que est mal elaborado no podr ser concebido en un algoritmo efectivo. Por lo que el objetivo del problema debe ser claro, para que el razonamiento sea preciso, para cumplir con las caractersticas de un algoritmo: Preciso, Definido y Finito. Veamos un ejemplo: Realizar un algoritmo que muestre el resultado de la suma de dos nmeros. Suma.- En trminos cientficos, la suma es una operacin aritmtica definida sobre conjuntos de nmeros (naturales, enteros, racionales, reales y complejos), y tambin sobre estructuras asociadas a ellos, como espacios vectoriales con vectores cuyas componentes sean estos nmeros o funciones que tengan su imagen en ellos. Ver ms Resultado.- Efecto y consecuencia de un hecho, operacin o deliberacin. Ver ms Nmeros.- En matemtica moderna, el concepto de nmero incluye abstracciones tales como nmeros fraccionarios, negativos, irracionales, trascendentales, complejos (todos ellos con correlatos fsicos claros) y tambin nmeros de tipo ms abstracto como los nmeros hipercomplejos que generalizan el concepto de nmero complejo o los nmeros hiperreales, los superreales y los surreales que incluyen a los nmeros reales como subconjunto. Ver ms

Jose Antonio Diaz Montejo

Pagina 22

Captulo III

Tcnicas

Por lo tanto, entendemos que el usuario deber de ingresar dos nmeros los cuales pueden ser enteros o con decimales por lo que la variable que almacene los nmeros deber ser de tipo real, lo mismo para la variable que almacenera el valor del resultado, en caso de que el usuario no ingrese un valor, deber contemplarse como cero (0); en caso de que el usuario ingrese un caracter se deber tomar como cero (0)luego vendr la operacin de suma (+); una vez obtenido el resultado deberemos mostrar este en pantalla, indicando al usuario que lo que ve es dicho resultado. Por lo que modificaremos un poco el planteamiento del problema. Realizar un algoritmo que muestre el resultado de la suma de dos nmeros enteros o con decimales, y en caso de que el usuario no ingrese un digito o ingrese un caracter se tomara como valor 0, luego de obtener el resultado se mostrara este en pantalla. Esto nos da un planteamiento ms completo de la resolucin del problema, ello nos llevara a cumplir con las reglas del algoritmo y nos encaminara a crear un programa que satisfaga las necesidades de todos los usuarios que hagan uso del mismo.

III.7. Programacin modular


En la programacin modular se divide y/o sub divide el programa en diferentes mdulos, con el objetivo que cada mdulo efectu una tarea y que al terminar este devuelva el control del programa al mdulo que lo precede o antecede, cada mdulo se programa y prueba de manera independiente, dando como resultado que el enfoque de la tarea asignada a ese modulo se muy especfica y fcil de ubicar dentro del programa, as como el mantenimiento y correccin del mismo sea ms fcil. Ejemplo de Programacin modular.

Programacin estructurada.

Al ser independientes los mdulos pueden ser programados por diferentes personas y de manera simultnea, reduciendo el tiempo de termino.

Jose Antonio Diaz Montejo

Pagina 23

Captulo III

Tcnicas

III.8. Programacin estructurada


La programacin estructurada se refiere a un conjunto de tcnicas que aumenta considerablemente la productividad, al reducir los tiempos para escribir, depurar y mantener el programa, utilizando un nmero limitado de estructuras de control. Tcnicas: Recursos abstractos.- Descompones una determinada accin compleja en trminos de un nmero de acciones ms simples capaces de ejecutarlas. Diseo descendente.- (top down) Estructuras bsicas.- Secuencia, seleccin y repeticin.

Se considera programacin estructurada cuando se cumplen las siguientes reglas: Diseo modular. Diseo descendente. Lo mdulos contiene las estructuras de control bsicas: secuencia, seleccin y repeticin.

Jose Antonio Diaz Montejo

Pagina 24

Captulo III
III.9. Ejercicios

Tcnicas

Disear un algoritmo para calcular la longitud de un crculo en centmetros (cm). Luego tomar el resultado y convertirlo en pulgadas, mostrar ambos resultados. Actividades: a).- Redisear el problema. b).- Disear el algoritmo.

Jose Antonio Diaz Montejo

Pagina 25

Captulo IV

Estructuras

IV.1. Sintaxis
De acuerdo a Wikipedia la definicin de sintaxis es la siguiente: La sintaxis es la parte de la gramtica que estudia las reglas y principios que gobiernan la combinatoria de constituyentes sintcticos y la formacin de unidades superiores a estos, como los sintagmas y oraciones gramaticales. La sintaxis, por tanto, estudia las formas en que se combinan las palabras, as como las relaciones sintagmticas y paradigmticas existentes entre ellas. En un lenguaje de programacin la sintaxis es un conjunto de palabras e instrucciones que cada lenguaje se reserva para asignarles diferentes funciones propias, por lo que no las debemos usar. Por esto es recomendable identificarlas antes de iniciar el uso de un lenguaje de programacin. Como regla principal es obligatorio conocer la sintaxis de lenguaje de programacin.

IV.2. Estructura
Una estructura se puede definir como un sistema que nos permite representar una idea o ideas que al cumplirse ciertas condiciones ser constante. Todas las estructuras tienen un punto de partida y un punto de salida, por lo que todos los algoritmos funcionales tienen Inicio y Fin. En los algoritmos existen tres tipos de estructuras: Secuenciales, Condicionales y Cclicas.

IV.3. Estructuras secuenciales


Los algoritmos que se componen de estructuras secuenciales son de muy rpido diseo, operacin, ya que no toman decisiones y muchas veces no esperan un dato del usuario. Todo empieza con una accin, convirtindose la salida de esta en la entrada de la siguiente accin y as de manera sucesiva hasta terminar. Ver Imagen Suma 1.

Suma 1

Jose Antonio Diaz Montejo

Pagina 26

Captulo IV
IV.4. Estructuras condicionales

Estructuras

Un algoritmo con estructuras condicionales son aquellos que comparan los valores de un dato contra otro dato ambos almacenados en variables o constantes y dependiendo del resultado toma una decisin efectuando diversas acciones. Ya aqu se considera un algoritmo inteligente. Existen condiciones simples, en las que solamente se efecta una condicin y se puede elegir un camino. Ver imagen Condicin 1

Condicin 1

Tambin tenemos condiciones simples que efectan un comparacin, pero pueden tomar dos caminos segn el resultado. Ver imagen Condicin 2

Condicin 2

Jose Antonio Diaz Montejo

Pagina 27

Captulo IV

Estructuras

Existen condiciones mltiples donde una comparacin nos lleva a otra obteniendo diferentes acciones que se puedan ejecutar, dependiendo de cada resultado de la comparacin efectuada. Esta forma de comparar datos es ,muy til, pero hay que manejarla con precaucin ya que muchas compara muchas condiciones anidadas puede resultar confuso. Ver Condicin 3

Condicin 3

La siguiente condicin mltiple se compone de una comparacin pero con la opcin de tomar una mayor diversidad de acciones segn el resultado evaluado. Ver Condicin 4

Condicin 4

Jose Antonio Diaz Montejo

Pagina 28

Captulo IV
IV.5. Estructuras cclicas

Estructuras

Se denomina cclico a todo aquello se repite dentro un contexto definido y durante un tiempo determinado, en los algoritmos las estructuras cclicas son acciones que se ejecutan un nmero determinado de veces, a esta accin se le llama ciclo, bucle, lazo o iteracin. La primera que veremos es la estructura cclica de Repetir un nmero de veces determinadas acciones. Ver Ciclos 1 Antes de iniciar la estructura es necesario declarar una variable en 0, que servir de acumulador. Ya iniciado el ciclo se determinan las acciones que se ejecutaran, luego se acumula el valor de la variable acumulador ms uno, al final se evala cunto vale la variable acumulador y si cumple la condicin el ciclo se detiene.

Ciclo 1

Ver Otras variantes.

Ciclo 2

Ciclo 3

Jose Antonio Diaz Montejo

Pagina 29

Captulo IV

Estructuras

El siguiente ciclo ser el repetir mientras alguna condicin se cumpla, es muy parecido al anterior solo que aqu la condicin se evala al inicio del ciclo y en la anterior se evala al final del ciclo. Ver Ciclo 2 Antes de iniciar la estructura es necesario declarar una variable en 0, que servir de acumulador. Ya iniciado el ciclo se evala la condicin y si cumple se ejecutan acciones que se determinaron, luego se acumula el valor de la variable acumulador ms uno, en caso de no cumplirse la condicin el ciclo termina.

Jose Antonio Diaz Montejo

Pagina 30

Captulo IV
IV.6. Ejercicios
1.- Disear un algoritmo que encuentre el rea de un tringulo. 2.- Disear un algoritmo que sume tres nmeros. 3.- Disear un algoritmo que muestre si el nmero ingresado es par o impar.

Estructuras

Jose Antonio Diaz Montejo

Pagina 31

Captulo V

Arreglos

V V.1.

Arreglos Definicin de arreglo:

Un arreglo es una estructura de datos que contiene informacin almacenada dentro de una sola variable, pudiendo identificar cada valor con un ndice que especfica una posicin para cada uno de ellos. Existen dos tipos de arreglos: Vectores.- Arreglos Unidimensionales. Matrices.- Arreglos Bidimensionales. Las operaciones que se pueden efectuar con los arreglos son los mismos que se efectan con las variables comunes, ms el ordenar de manera ascendente o descendente

V.2.

Vectores:

Un vector es un arreglo Unidimensional de n elementos que se almacenan en una variable. Ejemplo: vec (n) vec: (n): vec (5) De esta forma podemos almacenar 5 valores en la variable llamada vec. Es decir dentro de vec tenemos 5 casillas que podrn contener distintos valores ubicados por un ndice. vec (a, b, c, d, e) vec Valores Variable nombre de la variable. cantidad de elementos almacenados en la variable.

a b c d e Posicin (ndice) 1 2 3 4 5 En el ndice (posicin) 1 la variable vec contendr el valor a; en el ndice 2 contendr el valor b,, en el ndice 3 contendr el valor c; en el ndice 4 contendr el valor d y en el ndice 5 contendr el valor e.

Jose Antonio Diaz Montejo

Pagina 32

Captulo V
V.3. Matrices:

Arreglos

Una matriz es un arreglo bidimensional (dos dimensiones), y es necesario contar con dos ndices para acceder a los valores que contiene. Por eso se conoce como m (filas) por n (columnas). Ejemplo: vec (m, n) Vec: (m, n) nombre de la variable. cantidad de filas. cantidad de columnas. Vec (3, 3) Aqu tenemos una matriz de 3 filas por 3 columnas pudiendo almacenar 9 elementos dentro de la variable vec. Vec (a, b, c, d, e, f, g, h, i) vec Variable

Columna 1

Columna 2 b e h

Valores

Fila 1 Fila 2 Fila 3

a d g

Columna 3 c f i

Posicin (ndice)

El ndice (1,1) fila 1, columna1- contendr el valor a; el ndice (1,2) fila 1, columna 2contendr el valor b; el ndice (1,3) fila 1, columna 3- contendr el valor c; el ndice (2,1) fila 2, columna 1- contendr el valor d; el ndice (2,2) fila 2 columna 2- contendr el valor e; el ndice (2,3) fila 2 columna 3- contendr el valor f; el ndice (3,1) fila 3, columna 1- contendr el valor g; el ndice (3,2) fila 3, columna 2- contendr el valor h; el ndice (3,3) fila 3, columna 3- contendr el valor i.

Jose Antonio Diaz Montejo

Pagina 33

Captulo V
V.4. Ejemplos:

Arreglos

Jose Antonio Diaz Montejo

Pagina 34

Captulo VI

Derechos de Autor

Captulo VI Derechos de Autor


Esta obra est licenciada bajo una Licencia Creative Commons Atribucin-NoComercialSinDerivadas 2.5 Mxico. Para ver una copia de esta licencia, visita http://creativecommons.org/licenses/by-nc-nd/2.5/mx/ o enva una carta a Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

Jose Antonio Diaz Montejo

Pagina 35

Captulo VII

Bibliografa

Captulo VI Bibliografa
Aguilar, L. J. (2002). Fundamentos de Programacion. Madrid: Mc Graw Hill. Buritica, O. I. (1999). La Esencia de la Lgica de Programacin Bsico. Pereira Colombia: Papiro en formato de 21 x 28 cm. . Hernandez, M. L. (2010). Diseo Estructrado de Algoritmos. Teuxtepe (Mexico).

Jose Antonio Diaz Montejo

Pagina 36

Você também pode gostar