Vous êtes sur la page 1sur 11

ndice Introduccin Qu es un algoritmo?

tmo? Conceptos bsicos de algoritmos Propiedades Tipos de datos (Variables) Representaciones de un algoritmo -Lenguaje natural -PseudoCdigo -Diagramas de flujo -Lenguajes de programacin Pseint - Historia del PEsInt - Qu es PEsInt? - Caractersticas - Funcionalidades - Expresiones Operadores Funciones - Acciones Secuenciales - Estructuras de control - Notaciones Bibliografa

Introduccin En este documento se ha recopilado las diferentes presentaciones de los alumnos del curso Algoritmos y Lenguajes de Programacin del ciclo 2013-II, tiene el propsito de entender de una mejor manera lo que son los algoritmos, para as estar ms familiarizado con la materia y no se nos haga tan difcil a lo largo de la carrera. Tambin veremos lo que es pseudocdigo y algunos de sus lenguajes, como el PEsInt que en este documento daremos una explicacin profunda. Qu es un algoritmo? Conceptos bsicos de un algoritmo Antes llamado algorismo, proviene de la palabra rabe Al-Khwarizmi que era el sobrenombre de un matemtico persa que alcanz gran reputacin por el enunciado de las reglas para operar paso a paso nmeros decimales. Un algoritmo es una lista de operaciones o acciones (instrucciones) que se utilizan para poder encontrar la solucin a un problema. Para resolver un problema es necesario conocer que datos son necesarios como entrada, el proceso a utilizar y adems la salida a obtener. Los algoritmos son independientes de los lenguajes de programacin. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programacin. Para la solucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto y se dispone de 3 pasos.

Est compuesto por operaciones, mtodos y variables. Conceptos bsicos de un algoritmo - Propiedades Finito: La ejecucin de un algoritmo acaba en un tiempo finito; un procedimiento que falla en la propiedad de la finitud es simplemente un procedimiento de clculo. Preciso: Cada instruccin de un algoritmo debe ser precisa; debe tener en cuenta un rigor y no la ambigedad. Cada frase tiene un significado concreto. Posee entradas: La entrada se toma como un conjunto especifico de valores que inicializan el algoritmo. Posee salidas: Todo algoritmo posee una o ms salidas; la salida es la transformacin de la entrada. Efectivo: Un algoritmo es efectivo cuando las operaciones se efectan de un modo exacto y en un tiempo finito aun usando mtodos manuales.

Tipos de datos (Variables) Representaciones de un algoritmo Tipo de dato (Variables) Num (Variable entera) BOOL (Variable lgica) Char (Variable tipo caracter) Arreglo String (Variable tipo cadena) Nada Representa Cualquier nmero. Ejm: -1, 2, 3, etc. De Booleano, posee solo los valores VERDADERO o FALSO. Representa un caracter. Ejm: aaaaaaaa, Hola Lista esttica de elementos. Se debe sealar el tipo de dato y la cantidad de elementos que almacena. Secuencia de Caracteres. Ejm: a, b, $, etc. Ausencia de parmetros (para la Entrada y/o para la Salida).

: : : : : :

Representaciones de un algoritmo Pseudolenguaje/Pseudocdigo El prefijo pseudo significa falso; es decir, es falso lenguaje. Es una serie de normas lxicas y gramaticales parecidas a la mayora de los lenguajes de programacin, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen las estructuras bsicas. Es un falso cdigo que se utiliza para la simplificacin del uso del programa pseint debido a que no se utiliza una sintaxis elaborada. Forma General de un Algoritmo en PseudoCdigo Todo algoritmo en PseudoCdigo de pseint tiene la siguiente estructura general: Cabecera: es la parte del algoritmo que posee el nombre de ste. Declaraciones: son las variables y constantes que utilizar el algoritmo para resolver el problema. Cuerpo: son los conjuntos de instrucciones o acciones que estn entre el Inicio y el Fin.

Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de instrucciones es una lista de una o ms instrucciones, cada una terminada en punto y coma. Las acciones incluyen operaciones de entrada y salida, asignaciones de variables, condicionales sientonces o de seleccin mltiple y/o lazos mientras, repetir o para. Las caractersticas de este pseudolenguaje fueron propuestas en el 2001 por el responsable de la asignatura Fundamentos de Programacin (Horacio Loyarte) de la carrera de Ingeniera Informtica de la Facultad de Ingeniera y Ciencias Hdricas de la Universidad Nacional del Litoral. Se puede ejecutar en un ordenador Es una forma de representacin sencilla de utilizar y de manipular. Facilita el paso del programa al lenguaje de programacin. Es independiente del lenguaje de programacin que se vaya a utilizar. Es un mtodo que facilita la programacin y solucin al algoritmo del programa. Representacin mediante pseudocdigo

Diagramas de Flujo Son representaciones grficas de algoritmos, usan smbolos conectados con flechas para indicar la secuencia de instrucciones Los smbolos han sido normalizados por el Instituto Norteamericano de Normalizacin.

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. Son usados para representar algoritmos y por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin. Es la representacin grfica de un algoritmo. Son descripciones grficas de algoritmos.

Smbolos grficos ms utilizados para dibujar algoritmos por medio de diagramas de flujo (Ordinograma).

Lenguaje Natural Lenguaje que tiene sonidos adscritos a cada smbolo, creado por un grupo humano con el fin de comunicarse entre ellos. P. ej. quechua, alemn. Una de sus caractersticas es que el sentido de las palabras puede ser diverso: polisemia. Es ambiguo y extenso

Lenguajes de Programacin Una vez que ya tenemos diseado nuestro algoritmo, el siguiente paso es codificar ese algoritmo que seguramente est en un lenguaje grafico o en un lenguaje natural a un lenguaje que una maquina pueda ejecutar, es por esto que vamos a usar este conjunto de instrucciones que una maquina pueda entender, y a este conjunto de instrucciones le llamamos LENGUAJE DE PROGRAMACION. Es un lenguaje formal creado para comunicar algoritmos a las mquinas, entre ellas la computadora. Tipos de lenguajes de programacin:

Lenguaje de primera generacin: Consiste en hileras de nmeros: 0 y 1, su sintaxis es definida por el diseo del hardware. Lenguaje de segunda generacin: Son simples procesadores de palabras, para crear archivos fuente. Los archivos fuente contienen instrucciones para que la computadora las ejecute. Lenguaje de tercera generacin: Proporcionan estructuras explcitas para disear procesos y ciclos. Ej.: C++, Basic, Java Lenguaje de cuarta generacin (4GL): Se pueden usar para desarrollar prototipos de una clase de aplicacin especfica rpidamente. Ej. Visual Basic Lenguaje de quinta generacin: Tienen por finalidad pensar y anticipar las necesidades de los usuarios, en lugar de solo ejecutar un conjunto de instrucciones. Ejemplos: Lenguajes mquina: Instrc. 0011 0101 Operandos 0000 0001 0001 0011

Lenguaje ensamblador: add mul Lenguajes de alto nivel: res=(a+b)*c; [0] [1] [1] [3]

Descubriendo el PEsInt Historia del PEsInt Teniendo en cuenta que el uso de lenguaje ANSI/ISO C++ para una materia inicial de la programacin presenta notorias dificultades para estudiantes inexpertos que deben aprender varios conceptos relativos al diseo de algoritmos y paralelamente lidiar con cuestiones de implementacin de las soluciones propuestas relativas a un lenguaje de programacin: sintaxis, compilacin, mensajes de errores en ingls, depuracin, etc., se propuso la siguiente solucin: disear un pseudocdigo en espaol, con reglas sintcticas sencillas y bsicas, que permitiera concentrar al alumno en la lgica para la resolucin de problemas mediante el diseo y la construccin de algoritmos y facilitara el aprendizaje y uso posterior de un lenguaje de alto nivel. La versin original, tena cientos de errores latentes, slo corra bajo Windows y se limitaba a interpretar el algoritmo o marcar sus errores de sintaxis. Finalmente, en octubre de 2006, se present el trabajo Desarrollo de un Software Intrprete de Pseudocdigo para la Enseanza de Fundamentos de Programacin en el 1er Encuentro de Jvenes Investigadores de Universidades de Santa Fe. Qu es PSeInt? Es una herramienta para aprender la lgica de programacin, est pensado para asistir a los estudiantes que se inician en la construccin de programas o algoritmos computacionales mediante la utilizacin de un simple y limitado pseudo-lenguaje intuitivo y en espaol, permite comenzar a comprender conceptos bsicos y fundamentales de un algoritmo computacional. Nacido originalmente como un proyecto final para el curso de Programacin I de la carrera de Ingeniera Informtica de la Facultad de Ingeniera y Ciencias Hdricas de la Universidad Nacional del Litoral, es en realidad un software que interpreta pseudocdigo basado en contenidos de la ctedra de Fundamentos de Programacin de dicha carrera. Sin duda alguna es una excelente herramienta para aquellos que se inician en este mundo de la programacin, cuya interfaz grfica permite crear, almacenar, ejecutar y corregir fcilmente programas en Pseudocdigo. Para compilar y ejecutar nuestro pseudocdigo debemos presionar el botn:

Caractersticas Presenta herramientas de edicin para escribir algoritmos en pseudocdigo en espaol. Autocompletado. Ayudas Emergentes. Plantillas de Comandos. Coloreado de Sintaxis. Indentado Inteligente, mover un bloque de texto hacia la derecha insertando espacios o tabuladores. Permite generar y editar el diagrama de flujo del algoritmo. Permite la edicin simultnea de mltiples algoritmos La sintaxis del pseudolenguaje utilizado es configurable. Ofrece perfiles de configuracin predefinidos para numerosas instituciones.

Funcionalidades Puede interpretar (ejecutar) los algoritmos escritos. Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando variables y expresiones. Puede confeccionar automticamente una tabla de prueba de escritorio. Determina y marca claramente errores de sintaxis (mientras escribe) y en tiempo de ejecucin. Permite convertir el algoritmo de pseudocdigo a cdigo C++. Ofrece un sistema de ayuda integrado acerca del pseudocdigo y el uso del programa. Incluye un conjunto de ejemplos de diferentes niveles de dificultad. Es multiplataforma (probado en Microsoft Windows 2000, XP y vista, GNU/Linux y Mac OS X). Es una herramienta totalmente libre y gratuita. La sencillez del lenguaje Pseudocdigo lo hacen ideal para la enseanza de la programacin. Permite escribir programas con instrucciones condicionales (Si-Entonces-Sino, Segn) y ciclos (Mientras, Hasta Que, Para), y tambin usar valores numricos (nmeros decimales), lgicos, caracteres y arreglos. Tambin provee funciones de entrada/salida y algunas funciones matemticas. Expresiones Operadores Este pseudolenguaje dispone de un conjunto bsico de operadores que pueden ser utilizados para la construccin de expresiones ms o menos complejas. Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido:

La jerarqua de los operadores matemticos es igual a la del lgebra, aunque puede alterarse mediante el uso de parntesis. Funciones Las funciones en el pseudocdigo se utilizan de forma similar a otros lenguajes. Se coloca su nombre seguido de los argumentos para la misma encerrados entre parntesis (por ejemplo TRUNC(x)). Se pueden utilizar dentro de cualquier expresin, y cuando se evale la misma, se reemplazar por el resultado correspondiente. Actualmente, todas la funciones disponibles son matemticas (es decir que devolvern un resultado de tipo numrico) y reciben un slo parmetro de tipo numrico. A continuacin se listan las funciones integradas disponibles:

Acciones Secuenciales Asignacin: nos permite guardar un valor en una variable. c <- 2; por lo tanto c=2.

Leer: nos permite recibir valores por teclado y guardarlos en variables. Leer a; recibe el valor y lo almacena en a. Leer a, b, c; recibe 3 valores y los guarda en la variable que corresponda.

Escribir: nos permite mostrar en pantalla algn tipo de dato, o varios separados por ,. Escribir hola mundo; Escribir hola mundo, hola, 2, c;

Estructuras de control CONDICIONAL: Si Entonces: es una estructura de control que depende del valor de una condicin lgica. Es decir se debe evaluar una condicin y si la cumple, deber ejecutar todas las acciones despus del Entonces y si no las cumple debe ejecutar todas las accione despus del Sino

Segun: es una estructura de control que depende del valor de una variable de tipo numrica para ejecutar una secuencia de instrucciones asociada a ese valor. Puede suceder que una secuencia de instrucciones sea comn para ms de un valor de la variable numrica, es el caso que se ve en la imagen siguiente, donde el valor 2 y 3 de la variable numrica lleva a ejecutar una misma secuencia de instrucciones. Cada valor de la variable numrica es una opcin que ejecuta una serie de instrucciones, es por esto que esta instruccin es recomendable para manejar Menu muy complejos.

La opcin De otro modo significa que si la variable numrica toma un valor que no est en ninguna de las opciones anteriores ejecuta las instrucciones de esa opcin. Esta opcin es ocupada generalmente para capturar (Catch) errores al ingresar una opcin no disponible y as avisarle al usuario.

REPETITIVA: Mientras: permite ejecutar una secuencia de instrucciones repetidamente hasta que la condicin no se cumpla.

Notaciones Se pueden introducir comentarios luego de una instruccin, o en lneas separadas, mediante el uso de la doble barra (//). Todo lo que precede a //, hasta el fin de la lnea, no ser tomado en cuenta al interpretar el algoritmo. Note que no puede haber instrucciones fuera del programa, aunque si comentarios. Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener otras adentro, pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. Los identificadores, o nombres de variables, deben constar slo de letras y nmeros, comenzando siempre con una letra. Las constantes de tipo carcter se escriben entre comillas (). En las constantes numricas, el punto (.) es el separador decimal. Las constantes lgicas son Verdadero y Falso.