algoritmos

15
ALGORITMOS LOS DATOS Y LAS OPERACIONES BASICAS DATOS Son los objetos sobre los que opera una computadora. Los tipos de datos son los siguientes: 1. Simples 2. Estructurados 3. Definidos por el usuario 1. Datos simples Se clasifican en los siguientes tipos: a. Numéricos b. Lógicos c. Carácter a. Numéricos: Son los que corresponden a los diferentes tipos de números. § Enteros: Son los números que no tienen decimal y forman parte de los números enteros. 15, 1548, -365. § Reales: Son números con parte entera y parte decimal que pertenecen al conjunto de los números reales. 24.1, 0.2547, - 458.25. b. Lógicos: Los datos lógicos o boléanos son aquellos que solo pueden tomar dos valores: verdadero y falso.

Transcript of algoritmos

Page 1: algoritmos

ALGORITMOS

LOS DATOS Y LAS OPERACIONES BASICAS

DATOS

Son los objetos sobre los que opera una computadora. Los tipos de datos son los siguientes:

1. Simples

2. Estructurados

3. Definidos por el usuario

1. Datos simples

Se clasifican en los siguientes tipos:

a. Numéricos

b. Lógicos

c. Carácter

a. Numéricos: Son los que corresponden a los diferentes tipos de números.

§ Enteros: Son los números que no tienen decimal y forman parte de los números enteros. 15, 1548, -365.

§ Reales: Son números con parte entera y parte decimal que pertenecen al conjunto de los números reales. 24.1, 0.2547, -458.25.

b. Lógicos: Los datos lógicos o boléanos son aquellos que solo pueden tomar dos valores: verdadero y falso.

c. Carácter: Los datos de tipo carácter son los caracteres que puede interpretar la computadora: alfabéticos, numéricos y/o especiales. Los caracteres se organizan en cadenas. Una cadena es una secuencia o serie de caracteres validos encerrados entre caracteres especiales denominados delimitadores y que suelen ser comillas o dobles comillas.

Page 2: algoritmos

2. Estructurados

Una estructura de datos es una colección o conjunto de datos que tienen el mismo nombre. Los siguientes son los tipos:

· Arrays o arreglos

· Registros

· Archivos

3. Definidos por el usuario o enumerados

Son aquellos que conservan un orden, tal que cada elemento tiene sucesor y predecesor, excepto el primero que no tiene predecesor y el último que no tiene sucesor.

CONSTANTES

Es un dato que no varia durante la ejecución de un programa

Constante entera. Estas son números enteros, que se almacenan en la cantidad de memoria asignada para almacenar una cifra entera. Ejemplo: 48, -125.

Constante carácter. Las constantes de tipo carácter son un carácter escrito entre comillas, ejemplo: ‘0’, ‘D’, ‘;’.

Constante cadena: Las constantes cadena son una cadena de caracteres escrita entre comillas. Ejemplo ‘lenguaje’.

Constante real. Una constante de punto flotante es un numero escrito en notación científica o punto decimal. Ejemplo 51.4E+4, 13.78

Constante boolenana. Son aquellas que solo pueden tomar el estado 0 o 1.

Las constantes pueden tomar un nombre con el que se les reconocerá a lo largo del programa. Ejemplo PI = 3.141592.

VARIABLES

Son un conjunto de bytes que se identifican con un nombre único. Pueden cambiar de valor durante la ejecución de un programa. Existen restricciones a la hora de dar nombre a una variable:

Page 3: algoritmos

Debe comenzar por una letra

Puede contener solamente letras o números

Puede contener mas de ocho caracteres pero solamente para su identificación, se tienen en cuenta los primeros 8

El carácter ‘_’ puede tratarse como una letra al definir una variable

Los nombres de las variables no pueden ser palabras reservadas

En los siguientes ejemplos identifique cual definición no es correcta:

Jlm

Sal_men

Sum32

m-n

else

32sum

_salmen

OPERACIONES ARITMÉTICAS

Las variables y constantes pueden ser procesadas utilizando operaciones y funciones adecuadas a sus tipos. A continuación se muestran las operaciones aritméticas usuales.

Símbolo

Operación

Tipo de operando

Resultado

^

exponenciación

Page 4: algoritmos

Entero o real

Entero o real

*

Multiplicación

Entero o real

Entero o real

/

División

Real

Real

+

Suma

Entero o real

Entero o real

-

Resta

Entero o real

Entero o real

div

División entera

Entero

Entero

mod

Residuo de división

Entero

Entero

Prioridad de las operaciones aritméticas

Page 5: algoritmos

Las expresiones aritméticas que implican mas de un operador pueden ser evaluadas de diferentes formas, dependiendo del operador que ejecuta primero la computadora. El orden en que se ejecutan las operaciones depende de la prioridad o jerarquía de los operadores.

operador

orden

^

Mayor

*, /

+, -

Div, mod

Menor

Las reglas de prioridad son:

1. La prioridad más alta es la potenciación o exponenciación que se ejecutara primero.

2. Los operadores que tienen igual prioridad se evalúan de izquierda a derecha, cuando coinciden en una operación aritmética.

3. Si una expresión contiene subexpresiones encerradas entre paréntesis, estas se evalúan primero, utilizando el orden de prioridad. Si existen paréntesis anidados las subexpresiones internas se evalúan primero.

Evaluar las siguientes expresiones:

7 * 10 – 15 mod 3 * 4 + 9

( 7 * ( 10 – 5 ) mod 3 ) * 4 + 9

5 * ( 75 / 15 ) + 4 * ( 4 – 1 ) + 2 * ( 7 + 4 )

3 + 2 * ( 18 – 4 ^ 2 )

Page 6: algoritmos

Convertir en expresiones numéricas los siguientes enunciados:

la diferencia entre el producto de 9 y 5, y el cociente de 24 y 4.

La suma de 320 y 8, divididos por 8, todo ello dividido por 8

EXPRESIONES LÓGICAS

Son aquellas que pueden tomar dos valores, verdadero o falso.

Operadores relacionales: Son aquellos que se utilizan para expresar condiciones.

operador

Significado

==

Igual

<>

Diferente

<=

Menor o igual

>=

Mayor o igual

>

Mayor

<

Menor

Page 7: algoritmos

Operadores lógicos: permiten relaciones lógicas y sirven para representar condiciones compuestas. Los operadores lógicos son not, and y or.

Prioridad en expresiones lógicas y aritméticas

Operador

Orden

()

Mayor

^

*, /

+, -

Div, mod

==, <>, <, >, <=, >=

Not

And o y

Or u o

Menor

Page 8: algoritmos

Determinar el resultado final en los siguientes ejemplos:

not 4 > 6

not (z > 14)

a. con z =7

b. con z =24

(4.5 > x) y (z < x + 7.5)

c. con x =7 y z =5

INSTRUCCIÓN DE ASIGNACIÓN

La instrucción de asignación se utiliza para determinar el estado de una variable o en su defecto cambiar el valor asignado. Se utiliza el operador = o el símbolo ¬. El formato de la instrucción de asignación es:

Nombre de la variable = expresión o valor

o también

Nombre de la variable ¬ expresión o valor

Se puede utilizar el mismo nombre de variable en ambos lados del operador de asignación.

Las instrucciones de asignación se pueden clasificar según el tipo de expresión:

Asignación aritmética. Las expresiones en las operaciones de asignación son aritméticas.

X = 4 + 5.2 +74

sum = sum + 1

Asignación lógica. La expresión que se evalúa en la operación de asignación es lógica.

Page 9: algoritmos

Z = 7 < 5

Y = (4>9) o (5 <= 8)

Asignación de carácter. La expresión que se evalúa es de tipo carácter.

N = ’h’

Asignación de cadena. La expresión que se evalúa es de tipo cadena.

N = “hola gente”

ENTRADA Y SALIDA

Las operaciones que realiza el computador tienen sentido cuando se pueden ingresar y obtener datos. Estas operaciones se pueden realizar con dispositivos como teclados, pantallas, impresoras, etc.

FASES PARA LA RESOLUCION DE PROBLEMAS

En esta sección describire brevemente las fases o pasos a seguir para la resolución de problemas con ayuda de la computadora.

Análisis del Problema

Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada.

Dado que se busca una solución se precisan especificaciones de entrada y salida.

Para poder definir bien un problema es conveniente responder a las siguientes preguntas:

¿Qué entradas se requieren? (cantidad y tipo)

¿Cuál es la salida deseada? (cantidad y tipo)

¿Qué método produce la salida deseada?

Page 10: algoritmos

Diseño del Algoritmo

En la fase de análisis en el proceso de programación se determina que hace el programa. En la fase de diseño se determina como hace el programa la tarea solicitada.

Los métodos utilizados para el proceso del diseño se basan en el conocido divide y vencerás. Es decir la resolución de un problema complejo se realiza diviendo el problema en subproblemas y a continuación dividir estos subproblemas en otros de nivel mas bajo, hasta que sea implementada una solución en la computadora. Este método se conoce tecnicamente como diseño descendente (top-down) o modular.

Cada programa bien diseñado consta de un programa principal (el módulo de nivel mas alto) que llama a subprogramas (módulos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas.

Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente y a continuación combinarlos entre sí. Este proceso implica la ejecución de estos pasos hasta que el programa se ha terminado:

Programar un módulo

comprobar el módulo

Si es necesario, depurar el módulo

Combinar el módulo, con el resto de los otros módulos

El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente.

Implementación del Algoritmo

Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos:

Codificación

Compilación y ejecución

Page 11: algoritmos

Verificación

Depuración

Documentación

Codificación: Es la escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

Compilación y ejecución: Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga practicamente de la compilación. Si al compilar el programa fuente se presentan errores (errores de compilación), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se presenten mas errores, obteniendose el programa objeto, el cual todavía no es ejecutable directamente. Al ya no existir errores en el programa fuente se debe instruir al sistema operativo para que efectue la fase de montaje o enlace, del programa fuente con las librerias del programa del compilador. Este proceso de montaje produce un programa ejecutable.

Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre.

Suponiendo que no existen errores durante la ejecución (errores en tiempo de ejecución), se obtendrá la salida de resultados correctos del programa.

Verificación y depuración: Es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada, valores extemos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa. Estos determinarán si el programa contiene errores o no.

Al ejecutar un programa se pueden producir tres tipos de errores:

Page 12: algoritmos

Errores de Compilación: Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación, suelen ser errores de sintaxis.

Errores de Ejecución: Se producen por instrucciones que la computadora puede comprender pero no ejecutar. En estos casos se detiene la ejecución del programa y se imprime un mensaje de error. Ejemplo de esto puede ser una división por cero.

Errores Lógicos: Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo, son mas dificiles de detectar puesto que el programa puede funcionar y no producir errores de compilación ni de ejecución pero regresará resultados incorrectos. En este caso se debe regresar a la fase de diseño, modificar el algoritmo, cambiar el programa fuente y compilar y depurar una vez mas.

Documentación: La importancia de la documentación debe ser destacada por su influencia en la etapa final, ya que programas pobremente documentados son dificiles de leer, mas dificiles de depurar y casi imposibles de mantener y modificar.

Puede ser interna y externa. La documentación interna es la contenida en lineas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocodigos, manuales de usuarios con instrucciones para ejecutar el programa y para interpretar los resultados.

La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Estos cambios se denominan mantenimiento del programa.

Además es de buena costumbre para todo buen programador, dejar comentado su codigo, esto es para que el futuro programador pueda darle mantenimiento fácilmente a el programa, o incluso, si es el mismo creador quien debe darle mantenimiento.

Herramientas de Programación

Las herramientas de programación mas utilizadas comunmente para diseñar algoritmos son:

Pseudocodigos

Diagramas N-S

Diagramas de flujo

Siendo el pseudocodigo el mas popular por su sencillez y su parecido a el lenguaje humano.

Page 13: algoritmos