Índice     Introducción ¿Qué es un algoritmo?

Conceptos básicos de algoritmos Propiedades Tipos de datos (Variables) Representaciones de un algoritmo -Lenguaje natural -PseudoCódigo -Diagramas de flujo -Lenguajes de programación  Pseint - Historia del PEsInt - ¿Qué es PEsInt? - Características - Funcionalidades - Expresiones Operadores Funciones - Acciones Secuenciales - Estructuras de control - Notaciones  Bibliografía

tiene el propósito de entender de una mejor manera lo que son los algoritmos. ¿Qué es un algoritmo? Conceptos básicos de un algoritmo Antes llamado algorismo. También veremos lo que es pseudocódigo y algunos de sus lenguajes. un procedimiento que falla en la propiedad de la finitud es simplemente un procedimiento de cálculo. Para resolver un problema es necesario conocer que datos son necesarios como entrada. proviene de la palabra árabe Al-Khwarizmi que era el sobrenombre de un matemático persa que alcanzó gran reputación por el enunciado de las reglas para operar paso a paso números decimales.  Preciso: Cada instrucción de un algoritmo debe ser precisa. métodos y variables.  Posee entradas: La entrada se toma como un conjunto especifico de valores que inicializan el algoritmo. Un algoritmo es una lista de operaciones o acciones (instrucciones) que se utilizan para poder encontrar la solución a un problema. para así estar más familiarizado con la materia y no se nos haga tan difícil a lo largo de la carrera. Cada frase tiene un significado concreto.  Posee salidas: Todo algoritmo posee una o más salidas. como el PEsInt que en este documento daremos una explicación profunda. Para la solución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto y se dispone de 3 pasos. Conceptos básicos de un algoritmo .Propiedades  Finito: La ejecución de un algoritmo acaba en un tiempo finito. . la salida es la transformación de la entrada. debe tener en cuenta un rigor y no la ambigüedad.  Efectivo: Un algoritmo es efectivo cuando las operaciones se efectúan de un modo exacto y en un tiempo finito aun usando métodos manuales. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. Los algoritmos son independientes de los lenguajes de programación. el proceso a utilizar y además la salida a obtener.  • • Está compuesto por operaciones.Introducción  En este documento se ha recopilado las diferentes presentaciones de los alumnos del curso Algoritmos y Lenguajes de Programación del ciclo 2013-II.

Secuencia de Caracteres. Ejm: a. : : : : : : Representaciones de un algoritmo Pseudolenguaje/Pseudocódigo El prefijo pseudo significa falso. Se debe señalar el tipo de dato y la cantidad de elementos que almacena. posee solo los valores VERDADERO o FALSO. etc. Declaraciones: son las variables y constantes que utilizará el algoritmo para resolver el problema. es decir. instrucciones de programación y palabras clave que definen las estructuras básicas. Es un falso código que se utiliza para la simplificación del uso del programa pseint debido a que no se utiliza una sintaxis elaborada. Ejm: -1. es falso lenguaje. 2. De “Booleano”. - .- Tipos de datos (Variables) Representaciones de un algoritmo Tipo de dato (Variables) Num (Variable entera) BOOL (Variable lógica) Char (Variable tipo caracter) Arreglo String (Variable tipo cadena) Nada Representa Cualquier número. Ejm: “aaaaaaaa”. Cuerpo: son los conjuntos de instrucciones o acciones que están entre el Inicio y el Fin. El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común. Representa un caracter. Forma General de un Algoritmo en PseudoCódigo Todo algoritmo en PseudoCódigo de pseint tiene la siguiente estructura general: Cabecera: es la parte del algoritmo que posee el nombre de éste. 3. $. etc. Ausencia de parámetros (para la Entrada y/o para la Salida). “Hola” Lista estática de elementos. pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. b. Es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación.

Son descripciones gráficas de algoritmos. condicionales sientonces o de selección múltiple y/o lazos mientras. Las acciones incluyen operaciones de entrada y salida. usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. repetir o para. asignaciones de variables. Facilita el paso del programa al lenguaje de programación.     Los diagramas de flujo son descripciones gráficas de algoritmos. Es un método que facilita la programación y solución al algoritmo del programa. Una secuencia de instrucciones es una lista de una o más instrucciones. Las características de este pseudolenguaje fueron propuestas en el 2001 por el responsable de la asignatura Fundamentos de Programación (Horacio Loyarte) de la carrera de Ingeniería Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral. luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Es la representación gráfica de un algoritmo.Comienza con la palabra clave Proceso seguida del nombre del programa. Son usados para representar algoritmos y por su facilidad de lectura son usados como introducción a los algoritmos. Representación mediante pseudocódigo - Diagramas de Flujo Son representaciones gráficas de algoritmos. . Es independiente del lenguaje de programación que se vaya a utilizar.      Se puede ejecutar en un ordenador Es una forma de representación sencilla de utilizar y de manipular. cada una terminada en punto y coma. usan símbolos conectados con flechas para indicar la secuencia de instrucciones Los símbolos han sido normalizados por el Instituto Norteamericano de Normalización.

P.Símbolos gráficos más utilizados para dibujar algoritmos por medio de diagramas de flujo (Ordinograma). alemán. ej. creado por un grupo humano con el fin de comunicarse entre ellos. Una de sus características es que el sentido de las palabras puede ser diverso: polisemia. Es ambiguo y extenso . quechua. • • • Lenguaje Natural Lenguaje que tiene sonidos adscritos a cada símbolo.

Ej.- Lenguajes de Programación Una vez que ya tenemos diseñado nuestro algoritmo. Lenguaje de segunda generación: Son simples procesadores de palabras. su sintaxis es definida por el diseño del hardware.: C++. Ejemplos: Lenguajes máquina: Instrc. Lenguaje de tercera generación: Proporcionan estructuras explícitas para diseñar procesos y ciclos. Tipos de lenguajes de programación: • • • • • Lenguaje de primera generación: Consiste en hileras de números: 0 y 1. Basic. Visual Basic Lenguaje de quinta generación: Tienen por finalidad pensar y anticipar las necesidades de los usuarios. Es un lenguaje formal creado para comunicar algoritmos a las máquinas. Java Lenguaje de cuarta generación (4GL): Se pueden usar para desarrollar prototipos de una clase de aplicación específica rápidamente. 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. Los archivos fuente contienen instrucciones para que la computadora las ejecute. Ej. entre ellas la computadora. y a este conjunto de instrucciones le llamamos LENGUAJE DE PROGRAMACION. para crear archivos fuente. en lugar de solo ejecutar un conjunto de instrucciones. [0] [1] [1] [3] . 0011 0101 Operandos 0000 0001 0001 0011  Lenguaje ensamblador: add mul  Lenguajes de alto nivel: res=(a+b)*c.

Autocompletado.  La versión original. Ayudas Emergentes. ejecutar y corregir fácilmente programas en Pseudocódigo. compilación. almacenar. se propuso la siguiente solución: diseñar un pseudocódigo en español. ¿Qué es PSeInt? Es una herramienta para aprender la lógica de programación.  Para compilar y ejecutar nuestro pseudocódigo debemos presionar el botón: Características • – – – – – – • • – Presenta herramientas de edición para escribir algoritmos en pseudocódigo en español. está pensado para asistir a los estudiantes que se inician en la construcción de programas o algoritmos computacionales mediante la utilización de un simple y limitado pseudo-lenguaje intuitivo y en español. es en realidad un software que interpreta pseudocódigo basado en contenidos de la cátedra de Fundamentos de Programación de dicha carrera. depuración. mover un bloque de texto hacia la derecha insertando espacios o tabuladores. Sin duda alguna es una excelente herramienta para aquellos que se inician en este mundo de la programación. que permitiera concentrar al alumno en la lógica para la resolución de problemas mediante el diseño y la construcción de algoritmos y facilitara el aprendizaje y uso posterior de un lenguaje de alto nivel. .  Finalmente. se presentó el trabajo “Desarrollo de un Software Intérprete de Pseudocódigo para la Enseñanza de Fundamentos de Programación” en el 1er Encuentro de Jóvenes Investigadores de Universidades de Santa Fe.Descubriendo el PEsInt Historia del PEsInt  Teniendo en cuenta que el uso de lenguaje ANSI/ISO C++ para una materia inicial de la programación presenta notorias dificultades para estudiantes inexpertos que deben aprender varios conceptos relativos al diseño de algoritmos y paralelamente lidiar con cuestiones de implementación de las soluciones propuestas relativas a un lenguaje de programación: sintaxis. Ofrece perfiles de configuración predefinidos para numerosas instituciones. Permite generar y editar el diagrama de flujo del algoritmo. etc. cuya interfaz gráfica permite crear. Coloreado de Sintaxis. Permite la edición simultánea de múltiples algoritmos La sintaxis del pseudolenguaje utilizado es configurable. mensajes de errores en inglés. con reglas sintácticas sencillas y básicas. Nacido originalmente como un proyecto final para el curso de Programación I de la carrera de Ingeniería Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral. Plantillas de Comandos. Indentado Inteligente. sólo corría bajo Windows y se limitaba a interpretar el algoritmo o marcar sus errores de sintaxis.. permite comenzar a comprender conceptos básicos y fundamentales de un algoritmo computacional. tenía cientos de errores latentes. en octubre de 2006.

Expresiones Operadores Este pseudolenguaje dispone de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones más o menos complejas. Para). Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando variables y expresiones. Es una herramienta totalmente libre y gratuita. Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido: • . Permite escribir programas con instrucciones condicionales (Si-Entonces-Sino. lógicos. Permite convertir el algoritmo de pseudocódigo a código C++. y también usar valores numéricos (números decimales).Funcionalidades • – – – • • – – – • • Puede interpretar (ejecutar) los algoritmos escritos. Determina y marca claramente errores de sintaxis (mientras escribe) y en tiempo de ejecución. Puede confeccionar automáticamente una tabla de prueba de escritorio. caracteres y arreglos. La sencillez del lenguaje Pseudocódigo lo hacen ideal para la enseñanza de la programación. XP y vista. Hasta Que. Es multiplataforma (probado en Microsoft Windows 2000. Incluye un conjunto de ejemplos de diferentes niveles de dificultad. También provee funciones de entrada/salida y algunas funciones matemáticas. Según) y ciclos (Mientras. GNU/Linux y Mac OS X). Ofrece un sistema de ayuda integrado acerca del pseudocódigo y el uso del programa.

Funciones Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes. por lo tanto c=2. c. A continuación se listan las funciones integradas disponibles: Acciones Secuenciales  Asignación: nos permite guardar un valor en una variable.  Leer: nos permite recibir valores por teclado y guardarlos en variables. Se coloca su nombre seguido de los argumentos para la misma encerrados entre paréntesis (por ejemplo TRUNC(x)). recibe 3 valores y los guarda en la variable que corresponda. Actualmente.  Leer a.2.La jerarquía de los operadores matemáticos es igual a la del álgebra. se reemplazará por el resultado correspondiente. aunque puede alterarse mediante el uso de paréntesis.  c <. y cuando se evalúe la misma. recibe el valor y lo almacena en a. . b. todas la funciones disponibles son matemáticas (es decir que devolverán un resultado de tipo numérico) y reciben un sólo parámetro de tipo numérico.  Leer a. Se pueden utilizar dentro de cualquier expresión.

Estructuras de control  CONDICIONAL:  Si – Entonces: es una estructura de control que depende del valor de una condición lógica.  Escribir „hola mundo‟. es el caso que se ve en la imagen siguiente.‟. o varios separados por „. Escribir: nos permite mostrar en pantalla algún tipo de dato.  Puede suceder que una secuencia de instrucciones sea común para más de un valor de la variable numérica.  Escribir „hola mundo‟.  Cada valor de la variable numérica es una opción que ejecuta una serie de instrucciones. c. es por esto que esta instrucción es recomendable para manejar Menu muy complejos. 2. „hola‟. . deberá ejecutar todas las acciones después del “Entonces” y si no las cumple debe ejecutar todas las accione después del “Sino”  Segun: es una estructura de control que depende del valor de una variable de tipo numérica para ejecutar una secuencia de instrucciones asociada a ese valor. donde el valor 2 y 3 de la variable numérica lleva a ejecutar una misma secuencia de instrucciones.  Es decir se debe evaluar una condición y si la cumple.

) es el separador decimal. el punto (. aunque si comentarios. . Todo lo que precede a //. Es decir. La opción “De otro modo” significa que si la variable numérica toma un valor que no está en ninguna de las opciones anteriores ejecuta las instrucciones de esa opción. comenzando siempre con una letra. pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. o nombres de variables.  Las constantes lógicas son Verdadero y Falso. hasta el fin de la línea. deben constar sólo de letras y números.  Las estructuras no secuenciales pueden anidarse.  Los identificadores. mediante el uso de la doble barra (//).  En las constantes numéricas. Notaciones  Se pueden introducir comentarios luego de una instrucción. o en líneas separadas.  Note que no puede haber instrucciones fuera del programa. pueden contener otras adentro.  Esta opción es ocupada generalmente para capturar (Catch) errores al ingresar una opción no disponible y así avisarle al usuario.  REPETITIVA:  Mientras: permite ejecutar una secuencia de instrucciones repetidamente hasta que la condición no se cumpla.  Las constantes de tipo carácter se escriben entre comillas (“). no será tomado en cuenta al interpretar el algoritmo.