You are on page 1of 8

INTRODUCCIN A LA PROGRAMACIN Algoritmo. Es un mtodo para la resolucin de problemas. Es un conjunto de pasos a seguir para la solucin a un problema.

Es una serie finita de instrucciones para realizar una tarea. Formalmente: Es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

DEFINICIN DE LENGUAJES ALGORTMICOS Los algoritmos pueden describirse utilizando muchos lenguajes. Cada lenguaje permite describir los pasos con mayor o menor detalle. La clasificacin de los lenguajes algortmicos es la siguiente:
y y y y

Lenguaje Natural. Lenguaje de Diagrama de Flujo. Lenguaje Natural de Programacin. Lenguaje de Programacin de Algoritmos.

Lenguaje Natural.- Es aquel que describe los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utiliza en trminos especializados de una determinada ciencia, profesin o grupo. Lenguaje de Diagrama de Flujo.- Es aquel que se vale de diversos smbolos para representar las ideas o acciones a desarrollar. Es til para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cmputo. Lenguaje Natural de Programacin.- Son aquellos que estn orientados a la solucin de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboracin de frmulas o mtodos cientficos. Tienen las siguientes caractersticas:
y y y y

Evita la ambigedad (algo confuso que se puede interpretar de varias maneras). Son precisos y bien definidos. Utilizan trminos familiares al sentido comn. Elimina instrucciones innecesarias.

Lenguaje de programacin.- Es un conjunto de palabras, smbolos y reglas sintcticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los principales tipos de lenguajes utilizados son tres:
y y

Lenguaje Mquina. Lenguaje de Bajo Nivel ( Ensamblador).

Lenguajes de Alto nivel.

Lenguaje Mquina.- Este lenguaje es el que entiende directamente a la computadora, utiliza el alfabeto binario que consta de dos nicos smbolos 0 y 1, denominados bits ( abreviatura inglesa de nmeros binarios). El lenguaje mquina fue el primer lenguaje utilizado para programar computadoras, pero ste fue sustituido por su dificultad y complicacin. Lenguaje de bajo nivel (Ensamblador).- En este lenguaje cada instruccin equivale a una instruccin en lenguaje mquina, utilizando para su escritura palabras nemotcnicas en lugar de cadenas de bits. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicas , por ejemplo, nemotcnicos tpicos de operaciones aritmticas son:(en ingls)ADD, SUB, DIV, etc; (en espaol) SUM, RES, DIV, etc. Lenguaje de Alto nivel.- Estos lenguajes son los ms utilizados por los programadores. Un programa escrito en un lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras.

LAS CARACTERSTICAS FUNDAMENTALES QUE DEBE CUMPLIR TODO ALGORITMO SON: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algn momento; o sea, debe tener un numero finito de pasos. Debe cumplir con: Una secuencia de instrucciones claras y finitas Debe ser correcto y debe resolver el problema planteado en todas sus facetas Debe ser legible. (Comprensible) ANALISS DEL PROBLEMA Intuitivamente las personas efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permitan alcanzar algn resultado o resolver un problema (al baarnos, al desayunar, al ir a la universidad). En realidad todo el tiempo estamos aplicando algoritmos para resolver problemas. Es el primer paso a seguir para encontrar la solucin a un problema es el anlisis del problema. En el anlisis del problema se requiere del mximo de creatividad e imaginacin. Debido a que se busca una solucin se debe examinar cuidadosamente el problema a fin de identificar que tipo de informacin es necesaria producir. En seguida se deben identificar aquellos elementos de informacin ofrecidos por el problema y que resulten tiles para obtener la solucin al problema. Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, es decir, el algoritmo.

LA DEFINICIN DE UN ALGORITMO DEBE PRECISAR TRES PARTES:

y Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso. Acciones que lleva a cabo el algoritmo. Salida. Datos que obtiene finalmente el algoritmo. EJEMPLO DE ALGORITMOS: 1) Preparacin de una receta de cocina se tendr: Entrada: ingrediente y utensilios empleados. Proceso: elaboracin de la receta en la cocina. Salida: terminacin del plato (por ejemplo, cordero). 2) El clculo del rea del rectngulo se puede dividir en: Entrada de datos (altura, base) Proceso: Clculo del rea (= base x altura) Salida de datos (base, altura, rea) DISEO DE UN ALGORITMO La solucin de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en subproblemas ms sencillos de resolver. Este mtodo se denomina divide y vencers y es aplicable a la resolucin y escritura de algoritmos y programas para computadora. Este mtodo de divisin de un problema en otros subproblemas ms sencillos se puede expresar para conseguir su solucin en una computadora, mediante el mtodo denominado diseo descendente. El proceso de la rotura de un problema principal en etapas o subproblemas ms sencillos se denomina refinamiento paso a paso o sucesivos.

ACTIVIDAD 1 EN CLASE (INDIVIDUAL) Instrucciones:

(IV unidad)

1. Leer, analizar e interpretar conceptos y organizadores grficos mediante el raciocinio. 2. Desarrollar la Actividad 1 en hojas cuadriculadas. Fecha de entrega: 2010-02-01 3. Conteste el siguiente cuestionario: 1. Explique con sus propias palabras que es un algoritmo. 2. Realice un organizador grfico de las caractersticas fundamentales de un algoritmo. 3. Describa cual es proceso del anlisis del problema. 4. Cmo se define un algoritmo?

5. Realice seis ejemplos de algoritmos utilizando teoremas matemticos, frmulas generales y problemas cotidianos. Aplicar diseo descendente con tres de los ejemplos. NOTA: No se tomara en cuenta duplicaciones (copias) de la actividad 1. No se receptara otro da que no sea hoy el trabajo en grupo de Instalacin de Centros de Cmputo. Web grafa: http://www.dgb.sep.gob.mx/informacion_academica/secuencias_didacticas/2sem/material-informaticaii/b1-algoritmosysolucion%20deproblemas.pdf Biografa: Prez, Luis ,Fundamentos de Programacin. Otoo 2008 Joyanes, Luis ,Fundamentos de Programacin Algoritmos y estructura de datos , Madrid Espaa, McGRAW HILL/ INTERAMERICANA, primera edicin, 1992 pg 1- 45 .

MEDIOS DE EXPRESIN DE UN ALGORITMO Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser confusas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas confusiones del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico. La descripcin de un algoritmo usualmente se hace en tres niveles: 1. Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin. 3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o algn objeto capaz de llevar a cabo instrucciones. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y un computador en solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efecte el proceso correspondiente. LAS HERRAMIENTAS DE PROGRAMACIN UTILIZADAS COMO LENGUAJES ALGORTMICOS SON: Pseudocdigo El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Diagrama de flujo Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn regidos por ISO. (Organizacin Internacional para la Estandarizacin) PSEUDOCDIGO DIAGRAMAS DE NASSI - SCHNEIDERMAN El diagrama N-S o tambin conocido como diagrama de Chapin es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo.

El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas ms utilizadas son:

Inicio Fin Leer Escribir Mientras Repita Hasta Para Incrementar Decrementar Hacer Funcin Entero Real Caracter Cadena Lgico Retornar Definicin Son aquellas que se ejecutan una despus de otra. Se tienen tres tipos de instrucciones secuenciales:1) la declaracin de variables, 2) asignacin, 3) instruccin Leer e instruccin Escribir. 1.Declaracin de variables Esta consiste en escribir el tipo de datos y la lista de identificadores que se utilizara para el programa, separando cada identificador por medio de comas (,). Para mejorar la claridad de la declaracin se puede colocar dos puntos (:) para separar el tipo de datos de la lista de identificadores. Ejemplo: Entero: edad 2. Asignacin Asignar un valor a una variable equivale a decir que se guarda dicho valor en la posicin de memoria reservado para la variable mencionada. Por lo tanto, para poder realizar una asignacin es necesario primero haber declarado una variable, con lo cual se reserva un espacio de memoria suficiente para guardar un dato del tipo especificado. Ejemplos: Entero: X, Y X = 10 Y=X*2+8 En este ejemplo, la variable Y contendr el valor 28. 3.Instruccin Leer La instruccin LEER se utiliza para enviar informacin desde un dispositivo de entrada de datos hacia la memoria. En la memoria los datos son ubicados mediante el identificador (nombre de variable) utilizado como complemento de la instruccin LEER. En diagrama N-S la instruccin de entrada se representa as: Leer <lista de identificadores de variables> Ejemplo: Leer a, b Donde "a" y "b" son las variables que recibirn los valores y que deben haberse declarado previamente. Real: estatura, peso, sueldo Cadena: nombre, direccin

3.Instruccin Escribir Esta instruccin permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la impresora. La informacin que se enva puede ser constante o tambin el contenido de variables. Escribir <lista de constantes y variables> Ejemplo: Escribir a, b Cuando se escriben ms de una variable es necesario separarlas con comas (,) y los mensajes se escriben entre comillas dobles " ". Si una variable es escrita entre comillas se mostrar el identificador y no el contenido. Ejemplos: 1. Disear un algoritmo para calcular el rea y el permetro de un rectngulo DEFINICIN DEL PROBLEMA Calcular rea y permetro de un rectngulo ANLISIS DEL PROBLEMA Para desarrollar este problema es necesario conocer las frmulas para obtener tanto el rea como el permetro de un rectngulo. Sea b = base y h = altura, las frmulas a utilizar son: Area = b * h Permetro = 2 * (b + h) Datos de entrada: b y h (base y altura) Datos de salida: rea y permetro Procesos: rea = b * h Permetro = 2 * (b + h) DISEO DE LA SOLUCIN DIAGRAMAS DE NASSI SCHNEIDERMAN Inicio Entero: b, h, a, p Leer b, h a=b*h p = 2 (b + h) Escribir "rea:", a Escribir "permetro:", p 4.Disear un organizador grfico de los tres tipos de instrucciones secuenciales.(incluir procedimiento de cada uno) 5. Resolver dos problemas (frmulas) utilizando DIAGRAMAS DE NASSI SCHNEIDERMAN Deber: 2011-02-16 Resolver 5 problemas (frmulas) utilizando DIAGRAMAS DE NASSI SCHNEIDERMAN  Leer y analizar antes del desarrollo del cuestionario.  Realizar la actividad en el cuaderno.  Fecha de entrega: Hoy Cuestionario: 2.Realizar un organizador grfico de los Medios de expresin de un algoritmo. 1.Establecer la diferencia entre diagrama de flujo y pseudocdigo. 3. Cul es la utilidad del DIAGRAMAS DE NASSI SCHNEIDERMAN? Actividad N 3 (individual)

Fin algoritmo GLOSARIO: Variables: son estructuras de datos. Tipos de datos: Entero: representa nmeros enteros. 2bytes Real: El tipo de dato real define un conjunto de nmeros que pueden ser representados con la notacin de coma flotante. Coma flotante, o punto flotante, es una forma de notacin cientfica usada en los CPU etc, con la cual se pueden representar nmeros reales extremadamente grandes y pequeos de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritmticas Cadena: almacena la representacin de los caracteres (letras o nmeros). 1byte Webgrafa: http://www.dgb.sep.gob.mx/informacion_academica/secuencias_didacticas/2sem/material-informatica-ii/b1algoritmosysolucion%20deproblemas.pdf http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml
Estructuras Algortmicas.-Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten, mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

REGLAS PARA LA CREACIN DE DIAGRAMAS

1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 2. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la direccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo horizontal o verticales (nunca diagonales). 3. Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se debe utilizar conectores cuando sea estrictamente necesario. 4. No deben quedar lneas de flujo sin conectar. 5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo final. 7. Solo los smbolos de decisin pueden y deben tener ms de una lnea de flujo de salida.
SMBOLO NOMBRE APLICACIN

Inicio /fin

Representa inicio o fin del programa.

Procesos

Indica Pasos, procesos o lneas de instruccin de programa ( Operaciones lgicas y aritmticas)

E/S

Representa cualquier tipo de Fuente (datos) de entrada y salida.

Decisin

Indica operaciones lgicas y comparacin entre datos. Toma de decisiones y ramificacin.

Conector

Conector para unir el flujo a otra parte del diagrama de la misma pgina.

Conector

Conector de pgina para unir flujo a otra parte del diagrama en pginas diferentes.

Lneas de flujo Une los smbolos de un diagrama de flujo y orienta el proceso de tratamiento de informacin.

Salida

Representa E/S de datos a travs del monitor.

Impresora

Representa resultado mediante un reporte impreso

Teclado

Ingresar datos por teclado.

Actividad 3 (individual). Pasar al cuaderno. (Esta actividad no est incluida en la leccin escrita de 20 minut.
EJERCICIOS FLUJOGRAMA http://elticus.com/?contenido=23&allmsg

http://www.programacion.com/articulo/introduccion_a_la_programacion_205/4 http://html.rincondelvago.com/estructuras-algoritmicas.html