Sunteți pe pagina 1din 39

Introduccin a la Algoritmia

Principios de Programacin Prof.: Carlos Hernndez

Programacin
La programacin es la transmisin de instrucciones a

la Computadora, a travs de un lenguaje de programacin. La realizacin de un programa viene a solucionar un problema especfico usando el computador. Toda la interfase o comunicacin con el computador se realiza a travs de instrucciones agrupadas en un programa. El beneficiado o perjudicado de la programacin es el usuario. Por esta razn es conveniente que se tome en cuenta al programar.

April 9, 2012

Las caractersticas deseadas de un programador


Buena documentacin Claridad y simplicidad en la codificacin Realizacin de programas eficientes Modularidad en la realizacin de los programas Generalidad en la codificacin. Contemplar la

mayora de las situaciones.

April 9, 2012

Las caractersticas 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 mtodos para organizar los datos que manipulan sus programas. Saber como crear una interfaz hombre-mquina apropiada. Ser capaz de asegurar la calidad de su programa. Buscar constantemente mejorar sus destrezas. Conocer las herramientas de su profesin Constantemente buscar mejorar su formacin
April 9, 2012

Las caractersticas de un buen programa


Integridad. Se refiere a la exactitud de los clculos.

No tiene sentido que un programa refleje resultados errneos. Por lo tanto la integridad en los programas es absolutamente necesaria. Claridad. Se refiere a la comprensin general del programa, especialmente de la lgica del mismo. Si un programa es escrito claramente, es posible que cualquier programador pueda seguir su lgica sin gran esfuerzo. Adems el mismo programador que realiz el programa podr entenderlo an haya pasado gran cantidad de tiempo desde la ltima vez que lo consult.

April 9, 2012

Las caractersticas de un buen programa


Simplicidad. La claridad y exactitud de un programa

buscan mantener las cosas lo ms 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 ejecucin 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 caractersticas. La experiencia y el sentido comn tendrn mucho que ver en la decisin a tomar.

April 9, 2012

Las caractersticas de un buen programa


Modularidad. Muchos programas pueden dividirse

en varias subtareas identificables. Es una buena prctica de programacin desarrollar cada subtareas en mdulos separados de programas. Generalidad. Usualmente se quiere que un programa sea lo ms general posible, dentro de los lmites razonables. Por ejemplo, es preferible hacer un programa que capture cierta cantidad de nmeros utilizando variables, en vez de tener esos nmeros digitados dentro del programa como constantes.

April 9, 2012

Conceptos Bsicos de Programacin

Algoritmos
Algoritmo: serie de pasos organizados que describen el proceso que se debe seguir, para dar solucin a un problema especfico. El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico o clase de problemas, se denomina algoritmo. En otras palabras, un algoritmo es una frmula para la resolucin de un problema.

April 9, 2012

Algoritmos
Entrada=Datos Procesador Salida=Informacin

Cuando el procesador es un computador, el algoritmo se expresa en forma de un programa. Un programa se escribe en un lenguaje de programacin y a la actividad de expresar un algoritmo en forma de programa se le denomina programacin. Un algoritmo es un mtodo para resolver un problema.

10

April 9, 2012

Pasos a Seguir para la Resolucin de un Problema


1. Definicin del problema

2. Anlisis del problema

3. Diseo del algoritmo 4. Codificacin del algoritmo (convertir el algoritmo en programa) 5. Prueba y depuracin 6. Documentacin

Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin algoritmo no puede existir un programa.
11 April 9, 2012

Caractersticas que debe cumplir un algortmo


1. Ser preciso, e indicar el orden de realizacin 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 algn momento; o sea, debe tener un nmero finito de pasos. 4. Debe resolver el problema correctamente

12

April 9, 2012

Tipos de Algoritmos
No grficos: representan en forma descriptiva las operaciones que debe realizar un algoritmo (Pseudo cdigo). Espaol estructurado.

Grficos: Mapa estructurado que muestra los

pasos del algoritmo (diagrama de flujo).

13

April 9, 2012

Estructuras Algortmicas

14

April 9, 2012

Estructuras Algortmicas

Secuenciales. Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el nmero de rengln. 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 comparacin, se siga un curso de accin dentro del programa. Cclicas. Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especfica de veces.
April 9, 2012

15

Ejemplos: Pseudo cdigo


1. Un cliente ejecuta un pedido a una fbrica. La fbrica 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 cdigo


2. Se desea disear un algoritmo para saber si un nmero es primo o no.

Un nmero es primo si slo puede dividirse por s mismo y por la unidad. Es decir, no tiene ms divisores que l mismo y la unidad. El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2,3,4,etc hasta que encuentre un divisor exacto o llegue al mismo nmero.

17

April 9, 2012

Ejemplos: Pseudo cdigo


1. Inicio 2. Poner X igual a 2 (X, variable que representa a los divisores del nmero que se busca N) 3. Dividir N por X (N/X) 4. Si el resultado es entero, entonces N no es un nmero 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 nmero primo; en caso contrario, bifurcar al punto 3. 7. Fin
18 April 9, 2012

Ejemplos: Pseudo cdigo


3. Realizar la suma de todos los nmeros pares entre 2 y 1000 El problema consiste en sumar 2 + 4 + 6 + 8 + + 1000. Utilizaremos la palabras SUMA y NUMERO (variables, sern denominadas ms tarde) para representar las sumas sucesivas (2+4), (2+4+6+8), etc.

19

April 9, 2012

Ejemplos: Pseudo cdigo


1. Inicio. 2. Establecer SUMA a 0 3. Establecer NUMERO a 2 (Porque es el menor nmero 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 tcnicas de representacin de algoritmos ms antigua y a la vez ms utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin de lenguajes de programacin estructurados.
Cada paso del algoritmo se representa a travs de smbolos estndares (Varan segn el autor).

21

April 9, 2012

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

Proceso. Cualquier tipo de informacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmticas, de transferencia, etc.
si no

Decisin. Indica operaciones lgicas o de comparacin entre datos, y en funcin del resultado de la misma determina cul de los distintos caminos alternativos del programa se debe seguir.
April 9, 2012

22

Diagramas de flujos
Conector. Referencia en la misma pgina. Conector. Conexin entre dos puntos del organigrama situado en pginas diferentes. Indicador de direccin o lnea de flujo.

Llamada de subrutina o proceso (Invocar una funcin).

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 informacin o datos. Estos datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una clase. La mayora 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, despus 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 mquina, un dato es un conjunto o secuencia de bits (dgitos 0 1).
Los tipos de datos simples son los siguientes: numricos (enteros, reales) lgicos 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 numrico. Es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas: tipo numrico entero tipo numrico real Enteros: Es un subconjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Ejemplos de nmeros 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 nmeros reales. Los nmeros reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un entero y una parte decimal. Ejemplos de nmeros 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 lgico tambin llamado booleano es aquel que slo 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, segn sea par o impar.

28

April 9, 2012

Datos y Tipos de Datos


El tipo carcter. 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 estndares; sin embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos:

29

caracteres alfabticos (A, B, C, , Z) (a, b, c, . , z) caracteres numricos (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

NUMRICO

CARACTER

LGICO

ENTERO

REAL

30

April 9, 2012

Constantes y Variables
Los programas de computadoras contienen ciertos valores que no deben cambiar durante la ejecucin del programa. Tales valores se llaman constantes. De igual forma, existen otros valores que cambiarn durante la ejecucin 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 ejecucin del programa. El tipo de una constante lo define el valor que tienen asignado.

Ejemplo de constantes:
Numricas: 1.234, 4, 3.14, 12 Caracter: a, ;, 2, +, X Lgicas: 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 ejecucin 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 slo caracteres, mientras que una variable entera puede tomar slo valores enteros. Si se intenta asignar un valor de un tipo a una variable de otro tipo se producira 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 segn su uso en: De asignacin: 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 operacin 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 lneas se han


impreso en un momento dado. La variable LINE se inicializa a Cero (LINE = 0) y cada vez que se imprime una lnea 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. Tambin se debe inicializar a cero.

Ejemplo: Si se quiere saber la sumatoria de un conjunto


de nmeros. 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
Subndices: manejan la referencia a una hilera de datos e
indica la posicin de los datos. El valor correspondiente es la posicin donde se encuentra el dato que se est procesando. Se inicializan de acuerdo a la posicin del valor con que se empezara a trabajar.

Ejemplo: Si se tienen el conjuto de nmeros 3,7,5,8,9;


e iniciamos con el primer dato, la Variable tendra el valor de 1.

35

April 9, 2012

Secuencia, Seleccin e Iteracin


Las estructuras bsicas de la programacin estructurada son: Secuencia: las instrucciones se ejecutan una detrs de la otra. Seleccin: es cuando una o ms instrucciones son ejecutadas dependiendo del valor de una variable. Simples (Si-entonces) Alternativas (Si-entonces-sino) Mltiples (Segn sea el caso) Iteracin: es cuando se desea ejecutar una o ms 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 Nmina de nombre es Sueldo bruto: bruto, Deducciones: deduc, Sueldo neto: neto

Fin 37 April 9, 2012

Diagramas de Flujo.
Secuencia y Seleccin
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 Nmina de nombre es Sueldo bruto: bruto, Deducciones: deduc, Sueldo neto: neto

38

Fin

April 9, 2012

Diagramas de Flujo.
Secuencia, Seleccin e Iteracin
Calcular el promedio de una serie de nmeros positivos. Un valor de cero como entrada indicar el trmino de la serie de nmeros.
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

S-ar putea să vă placă și