Está en la página 1de 9

2013

Trabajo practico
De introduccin a la programacin
Un algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.

1 3 Lucia Herrera Aquino Profe Mamani 20/09/2013

1Algoritmo Un algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa AlJuarismi) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia. En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclidespara obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones.

2 pseudocdigos

Los diagramas de flujo sirven para representar algoritmos de manera grfica

el pseudocdigo (o falso lenguaje) es una descripcin informal de alto nivel de un algoritmo informtico de programacin, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programacin verdadero, pero que est diseado para la lectura humana en lugar de la lectura mediante mquina, y con independencia de cualquier otro lenguaje de programacin. Normalmente, el pseudocdigo omite detalles que no son esenciales para la comprensin humana del algoritmo, tales como declaraciones de variables, cdigo especfico del sistema y algunas subrutinas. El lenguaje de programacin se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notacin matemtica compacta. Se utiliza pseudocdigo pues este es ms fcil de entender para las personas que el cdigo de lenguaje de programacin convencional, ya que es una descripcin eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comnmente en los libros de texto y publicaciones cientficas que se documentan varios algoritmos, y tambin en la planificacin del desarrollo de programas informticos, para esbozar la estructura del programa antes de realizar la efectiva codificacin. No existe una sintaxis estndar para el pseudocdigo, aunque los ocho IDE' s que manejan pseudocdigo tengan su sintaxis propia. Aunque sea parecido, el pseudocdigo

Pgina 2

no debe confundirse con los programas esqueleto que incluyen cdigo ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa grfica al pseudocdigo, aunque sean ms amplios en papel. El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen las estructuras bsicas. Su objetivo es permitir que el programador se centre en los aspectos lgicos de la solucin a un problema. No siendo el pseudocdigo un lenguaje formal, varan de un programador a otro, es decir, no hay una estructura semntica ni arquitectura estndar. Es una herramienta gil para el estudio y diseo de aplicaciones, veamos un ejemplo, que podramos definir como: lenguaje imperativo, de tercera generacin, segn el mtodo de programacin estructurada. DEFINICION DE DATOS DEL PSEUDOCOGIGO La definicin de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocdigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente. DEFINICION DE ESTRUCTURAS DE CONTROL Como se haba mencionado antes, cada autor usa su propio pseudocdigo con sus respectivas convenciones. Por ejemplo, considere la instruccin "Reemplace el valor de la variable x por el valor de la variable y"; algunas de las posibles sintaxis para indicar lo anterior podran ser: asigne a el valor de Sin embargo, independientemente de estas diferencias, muchos autores consideran tres estructuras de control para desarrollar los procedimientos: SECUENCIAL 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. Instruccin1 Instruccin2 Instruccin3 Instruccinn FUNCIONES Y PROCEDIMIENTOS Muchas personas prefieren distinguir entre funciones y procedimientos. Una funcin, al igual que una funcin matemtica, recibe un valor de entrada y regresa una salida mientras que un procedimiento recibe una entrada pero no genera una salida. En ambos casos es necesario dejar en claro cules son las entradas para el algoritmo, esto se hace comunmente colocando estos valores entre parntesis al principio o bien declarndolo explicitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra como regresar o devolver para indicar cul es la salida generada por el algoritmo. Por ejemplo, el pseudocdigo de una funcin que 3 VENTAJAS AL UTILIZAR PSEUDOCODIGO Permite representar de forma fcil operaciones repetitivas complejas. Es ms sencilla la tarea de pasar de pseudocdigo a un lenguaje de programacin formal. Si se siguen las reglas de identacin se puede observar claramente los niveles en la estructura del programa. En los procesos de aprendizaje de los alumnos de programacin, estos estn ms cerca del paso siguiente (codificacin en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo)

4Diagrama de Flujo

Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI): Smbolo Descripcin Indica el inicio y el final de nuestro diagrama de flujo.

Pgina 3

Indica la entrada y salida de datos. Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica. Indica la salida de informacin por impresora. Conector dentro de pgina. Representa la continuidad del diagrama dentro de la misma pgina. Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina. Indica la salida de informacin en la pantalla o monitor.

Smbolo de decisin. Indica la realizacin de una comparacin de valores.

Smbolo de Seleccin Mltiple. Dada una expresin permite escoger una opcin de muchas.

Smbolo del Mientras. Dada una expresin al principio de la iteracin esta es evaluada; si la condicin es verdadera realizar el ciclo, si es falsa la repeticin cesar.

Pgina 4

Smbolo del Para. Esta estructura de control repetitiva se usa generalmente cuando se conoce de antemano el nmero de iteraciones.

Smbolo 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 condicin. Si la condicin evaluada es falsa continua dentro del ciclo y si es verdadera termina la iteracin.

Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones.

5 Recomendaciones para el diseo de Diagramas de Flujo Se deben usar solamente lneas de flujo horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores slo cuando sea necesario. No deben quedar lneas de flujo sin conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.

6Diagrama Nassi-Shneiderman
En programacin de computadores un diagrama Nassi-Shneiderman (o NSD por sus siglas en ingls), tambin conocido comodiagrama de Chapin1 2 es una representacin grfica que muestra el diseo de un programa estructurado. Fue desarrollado en 1972 por Isaac Nassi yBen Shneiderman. Este diagrama tambin es conocido como estructograma, ya que sirve para representar la estructura de los programas. Combina la descripcin textual del pseudocdigo con la representacin grfica del diagrama de flujo

Pgina 5

Ejemplo de un diagrama Nassi-Shneiderman.

7 Basado en un diseo top-down (de lo complejo a lo simple), el problema que se debe resolver se divide en subproblemas cada vez ms pequeos - y simples - hasta que solo queden instrucciones simples y construcciones para el control de flujo. El diagrama Nassi-Shneiderman refleja la descomposicin del problema en una forma simple usando cajas anidadas para representar cada uno de los subproblemas. Para mantener una consistencia con los fundamentos de la programacin estructurada, los diagramas Nassi-Shneiderman no tienen representacin para las instrucciones GOTO. Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programacin formal. Su nivel de abstraccin es muy cercano al cdigo de la programacin estructurada y ciertas modificaciones requieren que se redibuje todo el diagrama. Los diagramas Nassi-Shneiderman son (la mayora de las veces) isomrficos con los diagramas de flujo. Todo lo que se puede representar con un diagrama Nassi-Shneiderman se puede representar con un diagrama de flujo. Las nicas excepciones se dan en las instrucciones GOTO, break y continue

8 Estructura secuencial. La estructura secuencial es aquella en la que una accin (instruccin) 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. Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instruccin no se ejecuta hasta que finaliza la anterior. Ejemplo: INPUT x INPUT y auxiliar= x x= y y= auxiliar PRINT x PRINT y

Pgina 6

Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia.

1 Se guarda una copia del valor de x en auxiliar. 2 Se guarda el valor de y en x, perdiendo su valor anterior, pero se mantiene una copia del contenido en auxiliar. 3 Se copia a y el valor de auxiliar, que es el valor inicial de x.

El resultado es el intercambio de los valores entre x e y, en tres operaciones secuenciales. 9 estructura condicional Una estructura es una coleccin de variables que estn referenciadas bajo un nombre. El C utiliza estructuras para proporcionar unos medios convenientes de mantener en un sitio la informacin que est relacionada. Una definicin de estructura forma una plantilla que se puede utilizar para crear estructuras de variables. Cada estructura est formada por una o ms variables que estn relacionadas lgicamente. Estas variables se denominan elementos de la estructura. Las estructuras, como grupos de variables conectados lgicamente, se pueden pasar fcilmente a funciones. La utilizacin de estructuras tambin puede ser que sea mucho ms fcil de leer el cdigo fuente debido a que la conexin lgica entre los elementos de la estructura es obvia. Una estructura es selectiva cuando solo uno de los procesos alternativos (acciones o funciones) posibles se puede seleccionar tras el cumplimiento de alguna condicin determinada. La eleccin entre varias alternativas exige una toma de decisiones, por ello a veces las estructuras selectivas se les conocen como de alternativa simple, doble, compuesta y mltiple segn el nmero de opciones o alternativas que se pueden tomar. Los puntos donde se deben tomar las decisiones se denominan punto de decisin y en los diagramas de flujo se representa con el smbolo rombo, de modo que uno de los vrtices se conecta con el proceso anterior y el otro u otros con el resto de los procesos o acciones. Las estructuras selectivas se clasifican en: a) Simples ESTRUCTURAS SELECTIVAS SIMPLES. Se identifican porque estn compuestos nicamente de una condicin. La estructura si - entonces evala la condicin y en tal caso: Si la condicin es verdadera, entonces ejecuta la accin Si (o acciones si son varias). Si la condicin es falsa, entonces no se hace nada. Espaol Si Entonces fin_si Ingls If then endif. 11 las Estructuras de Seleccin Mltiple proporcionan una manera muy prctica para seleccionar entre un conjunto de opciones predefinidas.

seleccionar<opcin> hacer caso <constante_1>: <bloque instrucciones 1> caso <constante_2>: <bloque instrucciones 2> ............... caso <constante_n>: <bloque instrucciones n> caso <por defecto>: <bloque instrucciones> fin_seleccionar Las Estructuras de Seleccin Mltiple operan de la siguiente manera:

Pgina 7

Primero se evala la expresin de cambio. El valor resultante se compara contra cada etiqueta case constante de valor entero. En una estructura de Seleccin Mltiple, todas las etiquetas Caso deben ser distintas, el control se transfiere a la que coincide, o a por defecto, si ninguna coincide. No hay una coincidencia secuencial, caso por caso, al momento de la ejecucin. El control se transfiere directamente. Si la etiqueta de caso opcional por defecto no es dada y si nada coincide, la ejecucin de la seleccin mltiple se completa con xito. El siguiente control se transfiere a una etiqueta de caso, las instrucciones en la etiqueta seleccionada y todas las instrucciones bajo otras etiquetas de caso despus de sta, se ejecutarn en secuencia. A este comportamiento se le llama cada total y hace que la estructura de Seleccin Mltiple sea muy diferente de una estructura de Seleccin Anidada. En cada etiqueta de caso puede haber cero, una o ms instrucciones. Esto permite que varias etiquetas de caso precedan a un grupo de instrucciones, lo que lo hace conveniente para ciertas situaciones. Tambin fin_caso puede utilizarse para salir de la estructura de Seleccin Mltiple. A menudo es el ltimo elemento de cada Caso para evitar cadas completas. Al evitar stas, pierde importancia el orden en que se dan las etiquetas de caso (pero se sugiere ser ordenado).

12 Estructuras Cclicas: son operaciones que se deben ejecutar un nmero repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto nmero de veces, se llama Ciclo, Bucle o Lazo. Iteracin: Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. Fases de un Programa Cclico: Entrada de datos e instrucciones previas Lazo o bucle. Instrucciones finales o resto del proceso Salida de resultado. Las estructuras cclicas: se utilizan para ejecutar fragmentos de cdigo un nmero limitado de veces. Existen tres estructuras cclicas generales, las cuales son: Desde Hasta (For) Hacer Mientras (While) Hacer Hasta (Do While) Las tres estructuras tienen el mismo objetivo, ejecutar un fragmento de cdigo un nmero limitado de veces, su principal diferencia se encuentra en la forma en la cual limitan el nmero de ocasiones que se ejecutar el cdigo. Estructura Cclica: Desde Hasta La estructura cclica Desde Hasta tiene una caracterstica especial por sobre las otras estructuras cclicas existentes, tiene la capacidad de incluir una o ms variables que trabajaran como contadores, con las cuales se controla el nmero de ocasiones que se ejecutar el ciclo. Esta sentencia repetir el mismo cdigo tantas veces como se le indique (acta como un bucle). A partir de un valor inicial de una variable la va incrementando en cada iteracin del bucle hasta que tome un valor determinado, momento en el que sale del bucle y contina ejecutando el cdigo inmediatamente inferior al ciclo Desde-Hasta. Composicin Desde: Indica la variable que se utilizar y el valor que tendr cuando el bloque de cdigo se ejecute por primera vez i=0. Hasta: Debe hacer relacin a la misma variable indicada en la seccin desde, indica una sentencia lgica, que al momento de cumplirse detendr la ejecucin del ciclo Desde-Hasta, i=10. Incremento: Indica el valor por el cual ser incrementado la variable mencionada, el incremento puede ser positivo o negativo, pero se debe tener especial cuidado en que la seccin Hasta se cumpla en algn momento incremento 1. Accin(es): Corresponde al conjunto de lneas de cdigo que se encuentran dentro del ciclo Desde-Hasta y que se ejecutarn en forma repetitiva. Estructura cclica: Hacer Mientras

Pgina 8

El Ciclo Hacer-Mientras es conocido en los lenguajes de programacin como ciclo While, una de sus caractersticas es que verifica si la condicin se cumple antes de ingresar al bloque de cdigo que se va a repetir, el lmite de ejecuciones estar dado por la condicin, se ejecutar mientras la condicin devuelva un valor lgico verdadero. Composicin Hacer Mientras: Marca el inicio del bloque de cdigo que se repetir en forma cclica. Condicin: Se refiere a una comparacin lgica que se evaluar en cada ejecucin del ciclo, si esta operacin lgica entrega un resultado verdadero contina ejecutando el bloque de cdigo, en caso contrario saldr del ciclo y continuar con la lnea de cdigo que est a continuacin del Fin Mientras Fin Mientras: Indica el trmino del bloque de cdigo que se repetir en forma cclica Repetir-Hasta: Esta estructura, que en los lenguajes de programacin de alto nivel es conocida como Do While, es similar a la estructura Hacer Mientras, pero tiene dos grandes diferencias: - El cdigo que se encuentra dentro del ciclo repetir hasta se ejecuta por lo menos una vez, debido a que la comparacin y verificacin de la condicin est en la parte inferior del cdigo. - Para continuar requiere que la condicin entregue un resultado lgico falso, a diferencia del ciclo Hacer-Mientras que requiere que el resultado de la condicin sea verdadero. Composicin Repetir: Indica el inicio del bloque de cdigo que se desea a repetir. Accion1n: Corresponde al bloque de cdigo que estar dentro del ciclo Repetir Hasta. Hasta: Indica el trmino del bloque de cdigo que se desea repetir. Condicin: Corresponde a una sentencia lgica que se evaluar en forma independiente cada vez que se desee repetir el bloque de cdigo, si la evaluacin se determina como falsa, se continuar ejecutando el bloque de cdigo hasta que la evaluacin sea falsa, para en ese instante continuar fuera del ciclo Repetir-Hasta. ESTRUCTURAS CICLICAS 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. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en funcin de algn dato dentro del programa). Ciclos con un Nmero Determinado de Iteraciones(Para): Son aquellos en que el nmero de iteraciones se conoce antes de ejecutarse el ciclo.

Pgina 9