Você está na página 1de 39

INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO DE CONCEPCIN

NOCIONES DE ALGORITMOS
Haga clic para modificar el estilo de subttulo del patrn

Lic. Soledad Balden Len


11

CONCEPTUALICEMOS

22

ALGORITMO
Un algoritmo es un conjunto ordenado y finito de instrucciones para realizar una tarea o solucionar un problema en un nmero finito de pasos; esto es, que la ejecucin del algoritmo concluye en algn momento.

33

ETIMOLOGA
La palabra algoritmo proviene de los vocablos rabes al-Jwarismi, que era el sobre nombre del celebre matemtico y astrnomo Abu Jafar Muhammad ibn Musa (Muhmed ben Musa), destac por escribir libros de muy fcil compresin y facilitar as el entendimiento de la matemtica a ms personas. Al Jwarismi desarroll en el Ai-yebr-mugabata frmulas para la resolucin de ecuaciones de primer y segundo grado. Explico por medio de algoritmos el uso de dispositivos mecnicos como los bacos. Por esta razones, an cuando no fue creador del primer algoritmo, el concepto lleva el nombre con el que era conocido.

44

La palabra algirismo, que originalmente hacia referencia a las reglas de uso de la aritmtica con dgitos rabes, evolucion a la palabra latina algobarismus; que el siglo XVIII mutara a algoritmo para definir a toda clase de procedimientos utilizados con el propsito de resolver problemas o realizar determinadas tareas. En el siglo XIX, se produjo el primer algoritmo escrito para computadora. La autora Ada Byron, en cuyos escritos detalla la mquina analtica. Por ello se considera por muchos como la primera programadora.

55

CARACTERSTICAS Todo algoritmo debe ser: Preciso. Debe especificar sin ambigedad el orden en que se deben ejecutar todas las instrucciones. Definido Cada vez que se ejecute bajo las mismas condiciones arrojar el mismo resultado. La secuencia de ejecucin deber ser la misma. Finito Debe terminar en un nmero finito de pasos, en un tiempo finito y requiriendo una cantidad finita de esfuerzo. Para dar solucin a un problema puede haber varios algoritmos. Para saber cual es el mejor se debe tomar en cuenta su simplicidad, elegancia y eficiencia.
66

HERRAMIENTAS PARA REPRESENTAR ALGORITMOS


Existen varias maneras para representar algoritmos: 1. Diagramas de flujo. 2. Diagramas de Nassi Schneiderman. 3. Pseudocdigo.

77

DIAGRAMAS DE FLUJO
Son representaciones grficas que especifican la direccin que sigue informacin que contiene un algoritmo para producir un resultado. Los datos se encierran para modificar el estilo de subttulo del patrn Haga clic en diferentes figuras, las cuales se denominan figuras lgicas. Estas figuras estn relacionadas entres si mediante flechas que indican el orden en que deben ser ejecutadas. Para hacer comprensibles los diagramas a todas las personas, los smbolos utilizados han sido normalizados por el Instituto Nacional de Estndares (ANSI, por sus siglas en ingls: American Standards Institute) en EEUU.
88

DIAGRAMAS DE NASSISCHNEIDERMAN
Los diagramas de N-S, tambin conocido como diagrama de Chapn, es como un diagrama de flujo en el que se omiten las flechas de direccin. u representacin se realiza por medio de cajas rectangulares que se encuentra una a continuacin de otra. Cada una de esta cajas indica la accin que se va a realizar.

99

Inicio Accin1 Accin2 AccinN Fin

1010

PSEUDOCDIGO
Es la mezcla de frases de un idioma nativo (espaol, ingls, etc.), instrucciones de programacin y algunas palabras clave, que permiten representar la secuencia lgica de las acciones de un algoritmo. La ventaja del pseudocdigo es que, en la planificacin de un programa , el programador se concentra en la lgica sin preocuparse de la rigidez sintctica que un lenguaje de programacin exige.

1111

Ejemplos:Algoritmo para hacer una llamada desde un telfono


fijo, conociendo un nmero al cual se llamar,
Pseudocdigo Inicio Levanto fono Espero tono Marco nmero Espero que contesten Hablo con la otra persona Cuelgo el fono Fin Diagrama de flujo Inicio Levanto fono Espero tono Marco nmero Espero que contesten Hablo con la otra persona Cuelgo el fono Fin 1212

Algoritmo para frer un huevo asumiendo que todo lo que se necesita se tiene disponible. Inicio Abrir la llave del gas Coger el fsforo Prender la cocina Poner aceite en la sartn Romper huevo haciendo caer el contenido en la sartn Tirar cscaras a la basura Poner sal al huevo Mover el huevo con una rasera mientras se est friendo Una vez frito el huevo sacarlo con una rasera y colocarlo en un plato Apagar la cocina Fin

1313

COMPOSICIN DE LOS ALGORITMOS


Bsicamente los algoritmos estn compuestos por una seccin de datos y otra del cdigo, as tenemos: Inicio Constante real: pi=3.1416 Seccin Variable real: r de datos Escribir (introduzca el radio de la circunferencia) Leer (r) a 2*pi*r*r Escribir (El rea es:, a) Fin
1414

Seccin del cdigo

- Seccin de datos
En esta seccin se encuentran los identificadores (constantes, variables, tipos de datos) que representan los datos de un algoritmo. Un identificador es una secuencia de caracteres que sirve para identificar una posicin de memoria del computador y acceder a su contenido. Para definir un identificador se debe seguir las siguientes reglas:
IDENTIFICADOR Radio1 2edad Salario bruto Sueldo_trabajador VALIDEZ X X ESXPLICACIN Contiene un nmero Comienza con un nmero Tiene un espacio en blanco intermedio 1515 Puede incluir el smbolo de subrayado

a) Variables
Una variable se define como un identificador que se utiliza para almacenar los datos. Es un nombre que hace referencia aun valor que puede variar a lo largo de la ejecucin del programa (algoritmo). Puede ser: -Variable Numrica Representa un valor entero, real, por ejemplo, entero: edad, cantidad; real: sueldo, descuento. -Variable alfanumrica o literal Representa un carcter o una secuencia de caracteres. Por ejemplo carcter: seccin, categora; cadena: nombre, profesin.
1616

b) Constantes
Una constante es aquel elemento que no cambia de valor durante la ejecucin de un programa (o comprobacin de un algoritmo). Puede ser: - Constante Numrica Representa un determinado valor ; por ejemplo, son constantes enteras: 20, 30; constantes reales: 3.1416, 20.8. - Constante alfanumrica o literal Cualquier carcter o secuencia de caracteres (dgito, smbolo especial) comprendidos entre comillas. Por ejemplo: prof Doctor
1717

b) Tipos de datos
El tipo de una variable define el contenido que sta tendr; es decir, indica el propsito de una variable. Los datos de clasifican en diversas categoras, segn el tipo de mquina o del lenguaje en uso. Generalmente podemos encontrar la siguientes categoras: - Enteros Son nmeros que no contienen componentes decimales o fraccionarias. Pueden ser positivos o negativos. Permiten realizar operaciones aritmticas..

1818

-Reales

Son nmeros que siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un nmero entero o una parte decimal. Permite realizar operaciones aritmticas. -Carcter Es un conjunto finito y ordenado de caracteres. Un dato de este tipo contiene slo un carcter. Dentro del algoritmo se distingue de las variables porque son delimitadas por apstrofe o comillas simples. As tenemos: Caracteres alfanumricos (`A,`B,`C,`Z, `a, `b, `c, `z) Caracteres numricos (`0,`1,`2,`9) Caracteres especiales (`+,`-,`/,`^, `;, `<, `>,`$)
1919

-Cadenas

Es una sucesin de caracteres que se encuentran delimitados por comillas dobles, representan informacin textual (palabras, frases, etc.). La longitud de una cadena es el nmero de caracteres comprendidos entre los separadores o delimitadores, los espacios en blanco tambin se cuentan. Por ejemplo: Hola amigos Longitud = 11 Bienvenidos al mundo de los algoritmos Longitud = 38 -Lgicos Denominados tambin booleanos, son aquellos datos que slo pueden tomar una de dos valores verdadero (true) o falso (false).

2020

- Seccin del Cdigo


A esta seccin se le considera el corazn del algoritmo. En ella va el cuerpo del programa, formado por las sentencias, que indican los pasos que se van a realizar durante la ejecucin del algoritmo. a) Expresiones Las expresiones son combinaciones de variables, constantes, operadores, funciones especificas, parntesis, entre otros, que se forman para representar las operaciones aritmticas, relaciones y lgicas. Por ejemplo: a+2*b-c/3 Una expresin consta de operadores y operandos. Segn sea el tipo de datos las expresiones se clasifican en; Aritmticos, relacionales y lgicos.
2121

b)

Operadores y operandos Los operadores son smbolos especiales que relacionan los valores de una o ms variables y/o constantes. Es decir; los operadores permiten manipular los valores. Los operandos son valores, constantes, variables o expresiones que intervienen en una expresin. Operando operador Operando variable o constante

2222

Los tipos de operadores son: Operadores Aritmticos - Permiten la realizacin de operaciones matemticas con los valores de las variables y constantes. - Pueden ser utilizados con tipos de datos enteros o reales. - Cuando en una operacin aritmtica los operandos son de tipos diferentes, ambos son convertidos al tipo de operando de precisin ms alta, es decir, si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Los operadores aritmticos son:

2323

Operador aritmtico

Significado

Expresin aritmtica (a = 13; b = 2)

Resultado

+ * / div mod ^

Suma Resta Multiplicacin Divisin real Divisin entera Residuo de una divisin Exponenciacin

a +b a-b a*b a/b a div b a mod b 2424 a^b

15 11 26 6.5 6 1 169

Operadores Relacionales - Se utilizan para comparar dos valores, produciendo un resultado lgico (verdadero o falso). - La comparacin se realiza entre valores del mismo tipo de datos (numricos o cadenas). - Estos operadores sirven para expresar las condiciones en los algoritmos. Los operadores relacionales son:

2525

Operador racional

Significado

Expresin relacional (a = 3; b = 2)

Resultado

> >= < <= = <>

Mayor que Mayor o igual que Menor que Menor o igual que Igual a Distinto de

a >b a >=b a<b a <= b a+b=5 a <> b 2626

True True False False True True

Operadores Lgicos - Permiten establecer comparaciones entre valores lgicos. - El resultado de esta comparacin es de tipo lgico o booleano (verdadero o falso). Los operadores lgicos son:
Variables x True True False False y True False True False x and y True False False False Operador x or y True True True False not x False False True true

2727

* Prioridad de los operadores - Todas las expresiones entre parntesis, se evalan primero. Las expresiones con parntesis anidados se evalan de adentro a fuera: el parntesis ms interno se evala primero. - Dentro de una misma expresin los operadores se evalan en el siguiente orden. ^ Exponenciacin *,/,modMultiplicacin, divisin, mdulo +,Suma y resta Los operadores en la misma prioridad se evalan de izquierda a derecha. Por ejemplo: 2 + 3 * 10 El operador de multiplicacin tiene mayor prioridad que la suma; por lo tanto, el compilador evaluar primero la multiplicacin 3*10 y luego la suma y obtendr como resultado 32.
2828

* Uso de parntesis - Los parntesis se utilizan para precisar el orden de operacin; las operaciones encerradas entre parntesis se evala primero. - Por ejemplo; hallar el promedio de dos nmeros. x = a + b /2 x = (a + b) /2 8 + (6 (8 3 ) + 2)

2929

c)

Funciones predefinidas En los lenguajes de programacin existen ciertas funciones predefinidas o internas que aceptan un argumento y producen un valor. As tenemos algunas funciones numricas que sern usadas en el desarrollo de algoritmos:
Funcin absoluto(x) cos(x) sin(x) entero(x) ln(x) log(x) raz(x) funciones se utilizarn redondeo(x) nombre seguido de Descripcin Valor absoluto Coseno Seno Parte entera de un nmero Logaritmo natural Logaritmo decimal en unaRaz cuadrada escribiendo expresin los Redondear un nmero argumentos adecuados

Las su encerrados entre parntesis.

3030

d)

Asignacin Un operador de asignacin altera el valor de una variable sin alterar su tipo. Se representa por una flecha que apunta hacia la izquierda ( ); este operador copia el valor del operando a la expresin de la derecha en la variable de la izquierda y aplica las conversiones de tipo usuales cuando es necesario. El formato general de asignacin es: Ejemplo:
Nom_variable Expresin

3131

Significa que a la variable a se le ha asignado el valor 2. La accin de asignar es destructiva, ya que el valor que tuviera la variable antes de la asignacin se pierde y se reemplaza por el nuevo valor. As en la secuencia de operaciones: a 30 a 120 a 9 El valor de la variable a ser 9, es decir el ltimo valor asignado, ya que los valores anteriores se han destruido.

3232

Cul es el valor de x despus de las siguientes operaciones? x 2 x cuadrado (x+x) x raz(x+raz(16)+5) 5. Rellenar el cuadro.
4.

Variables x False False False False y True False True True

Operador x and y

3333

SECUENCIA DE ALGORITMOS
En un algoritmo se definen tres partes:
Entrada Proceso Salida

Entrada - Est formada por la informacin dada al algoritmo o conjunto de instrucciones que generan los valores con los que se ha de trabajar en caso de que carezca de datos de entrada.

3434

Proceso - Son los clculos y operaciones necesarias para que, a partir de los datos o instrucciones de entrada, se llegue a los resultados. Salida - Son las transformaciones que ha sufrido la informacin de entrada a travs del proceso para obtener los resultados finales.

3535

Inicio Constante real: pi=3.1416 Variable real: r Escribir (introduzca el radio de la circunferencia) Leer (r) a Fin 2*pi*r*r
Entrada

Proceso Salida

Escribir (El rea es:, a)

3636

- Entrada de Datos Consiste en recibir desde un dispositivos de entrada (el teclado) un valor o dato. Se representa por la palabra Leer, la cual esta seguida por el nombre de la variable delimitado entre parntesis: Leer (nombre_variable) . Se utiliza para que un usuario introduzca los datos requeridos por un algoritmo. Cuando se lee ms de una variable es necesario separarlas por comas: Leer (nombre_variable1, nombre_variable2, .)

3737

Por ejemplo para leer las variables a, b, c, se tiene: En pseudocdigo En diagrama de flujo Leer (a,b,c) a,b,c - Salida de datos Consiste en transferir el valor de una variable o un mensaje a un dispositivo de salida (por ejemplo la pantalla, la impresora). Se representa con la palabra escribir, la cual est seguida por el nombre de la variable delimitado entre parntesis: Escribir (Nombre_variable) Se utiliza para mostrar al usuario los resultados obtenidos.
3838

Los mensajes se escriben entre comillas dobles . As se tiene : -Escribir (Cualquier mensaje) -Escribir (variable1, variable2) Estas dos formas se pueden representar en una sola instruccin como: - Escribir (Cualquier mensaje, varible1, variable2) Por ejemplo para imprimir el M.C.D. de dos nmeros, se tiene:: En pseudocdigo En diagrama de Flujo Escribir (El M.C.D. es, m) El M.C.D. Es, m

3939