martes, 7 de septiembre de 2010

ALGORITMOS


Es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.


Existen dos tipos de algoritmos y son llamados así por su naturaleza:


• Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.

• Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.


Lenguajes Algorítmicos

Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.


Tipos de Lenguajes Algorítmicos

• Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).





• No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocódigo).


INICIO

Edad: Entero

ESCRIBA “¿cuál es tu edad?”

Lea Edad

SI Edad >=18 entonces

ESCRIBA “Eres mayor de Edad”

FINSI

ESCRIBA “fin del algoritmo”

FIN


Metodología para la solución de problemas por medio de computadora


• DEFINICIÓN DEL PROBLEMA

Esta fase es para identificar lógicamente y oportunamente el problema que se está analizando, hallar las fuentes del mismo nos ayudara a resolverlo de una forma rápida y efectiva.


• ANÁLISIS DEL PROBLEMA

Una vez realizo el paso de la identificación del problema se pasa a definir la solución del mismo, teniendo en cuenta los siguientes pasos:


• Cual es la información que se desea producir (salida).

Los datos a recolectar.

• Los métodos y fórmulas que se necesitan para procesar los datos.


• DISEÑO DEL ALGORITMO


Las características de un buen algoritmo son:


• Debe tener un punto particular de inicio.

• Debe ser definido, no debe permitir dobles interpretaciones.

• Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.

• Debe ser finito en tamaño y tiempo de ejecución.

• Diseño del Algoritmo

• Prueba de escritorio o Depuración

Cabe recordar la importancia de probar nuestro algoritmo o solución del problema, se deben hacer varios ensayos de prueba y error para identificar problemas y posibles fallos, esta fase de prueba es muy importante para el buen desempeño del algoritmo.


Entidades primitivas para el desarrollo de algoritmos


Debemos empezar a identificar estilos, formulas y tipos de datos, para ello se describen en este manual algunas entidades para tener en cuenta.


· Tipos De Datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.









· Tipos de Datos Simples


Datos Numéricos:

Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.


Datos lógicos:

Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos).


Datos alfanuméricos (string):

Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.


Identificadores:

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que permite acceder a su contenido.


Ejemplo:

» Nombre

» Num_hrs

» Calif2


Reglas para formar un identificador:

• Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en blanco.

• Letras, dígitos y caracteres como la subraya (_) están permitidos después del primer carácter.

• La longitud de identificadores puede ser de varios caracteres. Pero es recomendable una longitud promedio de 8 caracteres.

• El nombre del identificador debe dar una idea del valor que contiene.


Constantes, variables y expresiones


Constantes

Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.


Ejemplo:

Pi = 3.1416


Variable

Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa.

Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.


Ejemplo:

Area = pi * radio ^ 2

Las variables son: el radio, el área (puesto que su valor puede variar de acuerdo a la necesidad) y la constate es pi


Clasificación de las Variables


Por su contenido

Variables Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal.


Ejemplo:

IVA = 0.15 pi = 3.1416 costo = 2500


Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos.


Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y caracteres especiales).


Ejemplo:

Letra = ’a’ apellido = ’lopez’ direccion = ’Av. Libertad #190’


Por su uso


Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa.


Ejemplo:

Suma = a + b /c


• Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno.


• Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.


Expresiones


Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.


Por ejemplo:

a + (b + 3) / c


Operadores y Operandos


Operadores

Son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.


Operadores Aritméticos

Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.





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


Prioridad de los Operadores Aritméticos: 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 más 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

3 + 5 * (10 - (2 + 4)) =

23 2.1 * (1.5 + 12.3) = 2.1 * 13.8 =

28.98


Operadores Relacionales

Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).

Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación.


Los operadores relaciónales tiene menor prioridad que los aritméticos.


Tipos de operadores Relacionales

• > Mayor que

• <>

• > = Mayor o igual que

• < = Menor o igual que

• <> Diferente

• = Igual


Ejemplos:

Si a = 10, b = 20, c = 30

a + b > c Falso

a - b<>

a - b = c Falso

a * b <> c Verdadero


Ejemplos no lógicos:

a <>

10 <>

T > 5 <>


Operadores Lógicos

Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valorespueden ser resultado de una expresión relacional.

Tipos de operadores LógicosAnd YOr ONot Negación

Ejemplo:

Para los siguientes ejemplos T significa verdadero y F falso.







Operador Not Operador Not

Operando Resultado

T F

F T


Operador And Operador And

Operando1 Operador Operando2 Resultado

T AND T T

T F F

F T F

F FF


Operador Or Operador Or

Operando1 Operador Operando2 Resultado

T Or T T

T F T

F T T

F FF

Prioridad de los Operadores Lógicos

1. Not

2. And

3. Or


Prioridad de los Operadores en General


1. ( )

2. ^

3. *, /, Mod, Not

4. +, -, And

5. >, <, > =, < =, <>, =, Or


Ejemplos:

Sea: a = 10 b = 12 c = 13 d =10





Técnicas de diseño


Top Down

También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayora menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:

• Simplificación del problema y de los subprogramas de cada descomposición.

• Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.

• El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

Bottom Up

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.



SímboloDescripción
Indica el inicio y el final de nuestro diagrama de flujo.
Indica la entrada y salida de datos.
Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética.
Indica la salida de información por impresora.
Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página.
Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina.
Indica la salida de información en la pantalla o monitor.
Símbolo de decisión. Indica la realización de una comparación de valores.
Símbolo de Selección Múltiple. Dada una expresión permite escoger una opción de muchas.
Símbolo del Mientras. Dada una expresión al principio de la iteración esta es evaluada; si la condición es verdadera realizará el ciclo, si es falsa la repetición cesará.
Símbolo del Para. Esta estructura de control repetitiva se usa generalmente cuando se conoce de antemano el numero de iteraciones.
Símbolo Repita Hasta. funciona igual que la estructura Mientras, con la diferencia que al menos una vez hará el grupo de instrucciones y luego evaluará una condición. Si la condición evaluada es falsa continua dentro del ciclo y si es verdadera termina la iteración.
Líneas de flujo o dirección. Indican la secuencia en que se realizan las operaciones.



Recomendaciones para el diseño de Diagramas de Flujo


• Se deben usar solamente líneas de flujo horizontal y/o vertical.

• Se debe evitar el cruce de líneas utilizando los conectores.

• Se deben usar conectores sólo cuando sea necesario.

• No deben quedar líneas de flujo sin conectar.

• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.

• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.


Estructuras Algorítmicas


Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:






Estructuras Secuenciales


La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:





Estructuras Condicionales


Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en baseal resultado de esta comparación, se siga un curso de acción dentro del programa. Cabemencionar que la comparación se puede hacer contra otra variable o contra una constante,según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.