Introduccion a La Algoritmia

Introducción a la Algoritmia

Principios de Programación Prof.: Carlos Hernández

Programación
 La programación es la transmisión de instrucciones a

la Computadora, a través de un lenguaje de programación.  La realización de un programa viene a solucionar un problema específico usando el computador.  Toda la interfase o comunicación con el computador se realiza a través de instrucciones agrupadas en un programa.  El beneficiado o perjudicado de la programación es el usuario. Por esta razón es conveniente que se tome en cuenta al programar.

2

April 9, 2012

Las características deseadas de un programador
 Buena documentación  Claridad y simplicidad en la codificación  Realización de programas eficientes  Modularidad en la realización de los programas  Generalidad en la codificación. Contemplar la

mayoría de las situaciones.

3

April 9, 2012

Las características deseadas de un programador
Un programador debe:
 Ser capaz de medir el rendimiento de sus programas.  Conocer algoritmos sofisticados, y debe poder
     
4

inventarlos si no existen. Conocer muchos métodos para organizar los datos que manipulan sus programas. Saber como crear una interfaz hombre-máquina apropiada. Ser capaz de asegurar la calidad de su programa. Buscar constantemente mejorar sus destrezas. Conocer las herramientas de su profesión Constantemente buscar mejorar su formación
April 9, 2012

Las características de un buen programa
 Integridad. Se refiere a la exactitud de los cálculos.

No tiene sentido que un programa refleje resultados erróneos. Por lo tanto la integridad en los programas es absolutamente necesaria.  Claridad. Se refiere a la comprensión general del programa, especialmente de la lógica del mismo. Si un programa es escrito claramente, es posible que cualquier programador pueda seguir su lógica sin gran esfuerzo. Además el mismo programador que realizó el programa podrá entenderlo aún haya pasado gran cantidad de tiempo desde la última vez que lo consultó.

5

April 9, 2012

Las características de un buen programa
 Simplicidad. La claridad y exactitud de un programa

buscan mantener las cosas lo más simple posible, consistente con los objetivos generales del programa. En efecto, es mejor sacrificar cierto grado de eficiencia en orden de mantener relativamente simple la estructura del programa.  Eficiencia. Se refiere a la velocidad de ejecución y el uso eficiente de la memoria. Sin embargo, esta no se debe obtener a cambio de claridad y simplicidad. Muchos programas complejos necesitan negociar estas características. La experiencia y el sentido común tendrán mucho que ver en la decisión a tomar.

6

April 9, 2012

Las características de un buen programa
 Modularidad. Muchos programas pueden dividirse

en varias subtareas identificables. Es una buena práctica de programación desarrollar cada subtareas en módulos separados de programas.  Generalidad. Usualmente se quiere que un programa sea lo más general posible, dentro de los límites razonables. Por ejemplo, es preferible hacer un programa que capture cierta cantidad de números utilizando variables, en vez de tener esos números digitados dentro del programa como constantes.

7

April 9, 2012

Conceptos Básicos de Programación

Algoritmos
Algoritmo: serie de pasos organizados que describen el proceso que se debe seguir, para dar solución a un problema específico. “El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema específico o clase de problemas, se denomina algoritmo.” En otras palabras, un algoritmo es una fórmula para la resolución de un problema.

9

April 9, 2012

Algoritmos
Entrada=Datos Procesador Salida=Información

Cuando el procesador es un computador, el algoritmo se expresa en forma de un programa. Un programa se escribe en un lenguaje de programación y a la actividad de expresar un algoritmo en forma de programa se le denomina programación. Un algoritmo es un método para resolver un problema.

10

April 9, 2012

Pasos a Seguir para la Resolución de un Problema
1. Definición del problema

2. Análisis del problema

3. Diseño del algoritmo 4. Codificación del algoritmo (convertir el algoritmo en programa) 5. Prueba y depuración 6. Documentación

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa.
11 April 9, 2012

Características que debe cumplir un algorítmo
1. Ser preciso, e indicar el orden de realización de cada paso, no debe ser ambiguo.

2. Debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. 3. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos. 4. Debe resolver el problema correctamente

12

April 9, 2012

Tipos de Algoritmos
 No gráficos: representan en forma descriptiva las operaciones que debe realizar un algoritmo (Pseudo código). Español estructurado.

 Gráficos: Mapa estructurado que muestra los

pasos del algoritmo (diagrama de flujo).

13

April 9, 2012

Estructuras Algorítmicas

14

April 9, 2012

Estructuras Algorítmicas

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. Condicionales. Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cíclicas. Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces.
April 9, 2012

15

Ejemplos: Pseudo código
1. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente. Los pasos del algoritmo son:
1. 2. 3. 4. Inicio Leer el pedido Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido 5. Fin

16

April 9, 2012

Ejemplos: Pseudo código
2. Se desea diseñar un algoritmo para saber si un número es primo o no.

Un número es primo si sólo puede dividirse por sí mismo y por la unidad. Es decir, no tiene más divisores que él mismo y la unidad. El algoritmo de resolución del problema pasa por dividir sucesivamente el número por 2,3,4…,etc hasta que encuentre un divisor exacto o llegue al mismo número.

17

April 9, 2012

Ejemplos: Pseudo código
1. Inicio 2. Poner X igual a 2 (X, variable que representa a los divisores del número que se busca N) 3. Dividir N por X (N/X) 4. Si el resultado es entero, entonces N no es un número primo y bifurcar al punto 7; en caso contrario, continuar el proceso 5. Suma 1 a X (X  X + 1) 6. Si X es igual a N, entonces N es un número primo; en caso contrario, bifurcar al punto 3. 7. Fin
18 April 9, 2012

Ejemplos: Pseudo código
3. Realizar la suma de todos los números pares entre 2 y 1000 El problema consiste en sumar 2 + 4 + 6 + 8 + … + 1000. Utilizaremos la palabras SUMA y NUMERO (variables, serán denominadas más tarde) para representar las sumas sucesivas (2+4), (2+4+6+8), etc.

19

April 9, 2012

Ejemplos: Pseudo código
1. Inicio. 2. Establecer SUMA a 0 3. Establecer NUMERO a 2 (Porque es el menor número par entre 2 y 1000, por donde se iniciará) 4. Sumar NUMERO a SUMA. El resultado será el nuevo valor de la suma (SUMA). 5. Incrementar NUMERO a 2 unidades 6. Mientras NUMERO sea menor o igual que 1000 entonces 7. Ir de nuevo al paso 4 8. Al finalizar el mientras, escribir último valor de SUMA 9. Fin.
20 April 9, 2012

Diagramas de Flujos
Un diagrama de flujo es una de las técnicas de representación de algoritmos más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados.
Cada paso del algoritmo se representa a través de símbolos estándares (Varían según el autor).

21

April 9, 2012

Diagramas de flujos
Representa el inicio o fin de un diagrama de flujo Entrada. Teclado, parámetro, etc.

Proceso. Cualquier tipo de información que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transferencia, etc.
si no

Decisión. Indica operaciones lógicas o de comparación entre datos, y en función del resultado de la misma determina cuál de los distintos caminos alternativos del programa se debe seguir.
April 9, 2012

22

Diagramas de flujos
Conector. Referencia en la misma página. Conector. Conexión entre dos puntos del organigrama situado en páginas diferentes. Indicador de dirección o línea de flujo.

Llamada de subrutina o proceso (Invocar una función).

Salida. Otro proceso, impresora, pantalla, etc.
23 April 9, 2012

Datos y Tipos de Datos
El primer objetivo de toda computadora es el manejo de la información o datos. Estos datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una clase. La mayoría de las instrucciones ejecutables de la computadoras se reflejan en cambios o en los valores de las partidas de datos. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida. Existen dos clases de tipos de datos:  Simples ( sin estructura)  Compuestos (estructurados).
24 April 9, 2012

Datos y Tipos de Datos
Los distintos tipos de datos se representan en diferentes formas en la computadora. A nivel de máquina, un dato es un conjunto o secuencia de bits (dígitos 0 ó 1).
Los tipos de datos simples son los siguientes: • numéricos (enteros, reales) • lógicos • caracter Los tipos de datos compuestos son los siguientes: • Cadenas (string) • Vectores (Arreglos) y Matrices (array) • Punteros (pointer) • Registro (records) • Archivos o ficheros (file)
25 April 9, 2012

Datos y Tipos de Datos
El tipo numérico. Es el conjunto de los valores numéricos. Estos pueden representarse en dos formas distintas:  tipo numérico entero  tipo numérico real Enteros: Es un subconjunto finito de los números enteros. Los enteros son números completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Ejemplos de números enteros son: • 5 6 -15 4 20
26

1340 17
April 9, 2012

Datos y Tipos de Datos
Reales: El tipo real consiste en un subconjunto de los números reales. Los números reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un número real consta de un entero y una parte decimal. Ejemplos de números reales son: • 0.08 3739.41 3.7452 -52.321 -8.12 3.0

27

April 9, 2012

Datos y Tipos de Datos
El tipo lógico – también llamado booleano – es aquel que sólo puede tomar uno de dos valores: verdadero o falso (true or false) Este tipo de datos se utiliza para representar las alternativas (sí/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta será verdadera o falsa, según sea par o impar.

28

April 9, 2012

Datos y Tipos de Datos
El tipo carácter. Es el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipo caracter contiene un solo caracter.
Los caracteres que reconocen las diferentes computadoras no son estándares; sin embargo, la mayoría reconoce los siguientes caracteres alfabéticos y numéricos:


 

29

caracteres alfabéticos (A, B, C, …, Z) (a, b, c, …. , z) caracteres numéricos (1, 2, 3, … , 9, 0) caracteres especiales (+, -, *, /, ^, ., ;, <, >, $, …) 9, 2012 April

Datos y Tipos de Datos
RESUMEN: Los tipos de datos simples se clasifican en: DATOS

NUMÉRICO

CARACTER

LÓGICO

ENTERO

REAL

30

April 9, 2012

Constantes y Variables
Los programas de computadoras contienen ciertos valores que no deben cambiar durante la ejecución del programa. Tales valores se llaman constantes. De igual forma, existen otros valores que cambiarán durante la ejecución del programa; a estos valores se les llama variables. Una constante es una partida de datos que permanecen sin cambios durante todo el desarrollo del algoritmo o durante la ejecución del programa. El tipo de una constante lo define el valor que tienen asignado.

Ejemplo de constantes:
Numéricas: 1.234, 4, 3.14, 12 Caracter: „a‟, „;‟, „2‟, „+‟, „X‟ Lógicas: Verdadero y Falso
31 April 9, 2012

Constantes y Variables
Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Una variable caracter, por ejemplo, puede tomar como valor sólo caracteres, mientras que una variable entera puede tomar sólo valores enteros. Si se intenta asignar un valor de un tipo a una variable de otro tipo se produciría un error de tipo. Una variable se identifica por los atributos: nombre y tipo
32 April 9, 2012

Constantes y Variables
Las variables se clasifican según su uso en: De asignación: son aquellas que guardan
resultados de operaciones, valores iniciales y valores de otra variable.

Contadores: son aquellas que se usan para llevar la
secuencia de alguna operación que se esté realizando. Siempre se debe inicializar esta variable en 0 para no obtener valores no deseados del conteo.

Ejemplo: Una variable que tenga cuantas líneas se han
impreso en un momento dado. La variable LINE se inicializa a Cero (LINE = 0) y cada vez que se imprime una línea se incrementa en uno (LINE = LINE + 1).
33 April 9, 2012

Constantes y Variables
Acumuladores: cuando se utilizan para obtener la suma
de una serie de valores. También se debe inicializar a cero.

Ejemplo: Si se quiere saber la sumatoria de un conjunto
de números. La variable TOTAL se inicializa a cero. Cuando se captura un valor se acumula en TOTAL (TOTAL = TOTAL + “valor”).

34

April 9, 2012

Constantes y Variables
Subíndices: manejan la referencia a una hilera de datos e
indica la posición de los datos. El valor correspondiente es la posición donde se encuentra el dato que se está procesando. Se inicializan de acuerdo a la posición del valor con que se empezaría a trabajar.

Ejemplo: Si se tienen el conjuto de números 3,7,5,8,9;
e iniciamos con el primer dato, la Variable tendría el valor de 1.

35

April 9, 2012

Secuencia, Selección e Iteración
Las estructuras básicas de la programación estructurada son: Secuencia: las instrucciones se ejecutan una detrás de la otra. Selección: es cuando una o más instrucciones son ejecutadas dependiendo del valor de una variable.  Simples (Si-entonces)  Alternativas (Si-entonces-sino)  Múltiples (Según sea el caso) Iteración: es cuando se desea ejecutar una o más instrucciones debe ejecutarse repetidamente. • desde (for), mientras (while), repetir (repeat)

36

April 9, 2012

Diagramas de Flujo.
Secuencia
Diagrama de flujo del sueldo neto de un empleado.
Inicio

nombre, precio, horas

bruto = horas * precio deduc = 0.25 * bruto neto = bruto - deduc Nómina de “nombre” es Sueldo bruto: “bruto”, Deducciones: “deduc”, Sueldo neto: “neto”

Fin 37 April 9, 2012

Diagramas de Flujo.
Secuencia y Selección
Diagrama de flujo del sueldo neto de un empleado. De 1 a 1000 se le deduce 10% sino 25%
Inicio nombre, precio, horas

bruto = horas * precio

bruto <=1000
no deduc = bruto * 0.25

si

deduc = bruto * 0.10

neto = bruto - deduc Nómina de “nombre” es Sueldo bruto: “bruto”, Deducciones: “deduc”, Sueldo neto: “neto”

38

Fin

April 9, 2012

Diagramas de Flujo.
Secuencia, Selección e Iteración
Calcular el promedio de una serie de números positivos. Un valor de cero como entrada indicará el término de la serie de números.
Inicio
C = 0, S = 0 dato

dato > 0 no Promedio = S / C

si

C=C+1 S = S + dato

El promedio de los datos es “Promedio”

39

Fin

April 9, 2012

Sign up to vote on this title
UsefulNot useful