Intérprete de pseudocódigo: PSeInt

¿Qué es PSeInt?psEInt

Es una herramienta para asistir a un estudiante en sus primeros pasos en programación.

Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la lógica de los algoritmos, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.

El proyecto es de software libre, gratuito, y se encuentra en constante desarrollo, permitiendo la descarga de las versiones mas recientes al momento de la fecha.

Sitio web oficial : www.pseint.sourceforge.net

Entrando a la web oficial de arriba se puede descargar el intérprete, su instalación es muy rápida y sencilla.

Una vez instalado PSeInt veremos como funciona:

psEInt 1.png

psEInt 2

Estructura general de un algoritmo en PSeInt

Proceso SinTitulo;

  acción 1;

  …

  acción n;

FinProceso

Tipos de datos

  • Tipos Simples: Numérico, Lógico, Caracter.
  • Estructuras de Datos: Arreglos.

Tipos de Datos Simples

Comenzaremos por los tipos de datos simples, los arreglos se veran en otro post más adelante.

  • Numérico: números, tanto enteros como decimales. Para separar decimales se utiliza el punto. Ejemplos: 12 23 0 -2.3 3.14
  • Lógico: solo puede tomar dos valores: VERDADERO o FALSO.
  • Carácter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). Ejemplos ‘hola’ “hola mundo” ‘123’ ‘FALSO’ ‘etc’

Los tipos de datos simples se determinan automáticamente cuando se crean las variables.

Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignación(<-).

Por ejemplo, la asignación “A<-0;” está indicando implícitamente que la variable A será una variable numérica.

Expresiones

  • Operadores.
  • Funciones.

Operadores

PSeInt dispone de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones más o menos complejas.

operadores
Operadores en PSeInt
operadores 2
Funciones matemáticas en PSeInt

 

PRIMITIVAS SECUENCIALES

Se llama primitivas en PSeInt a las palabras que el lenguaje tiene reservadas para determinados comandos de programación.

Comandos de Entrada, Proceso y Salida

  • Lectura (Entrada).
  • Asignación (Proceso).
  • Escritura (Salida).

Lectura o entrada

La instrucción Leer permite ingresar información desde el ambiente.

Leer <variablel> , <variable2> , … , <variableN> ;

Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando leerá uno o más valores.

Escritura o salida

La instrucción Escribir permite mostrar valores al ambiente.

Escribir <exprl> , <expr2> , … , <exprN> ;

Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o más valores.
Estructuras de Control (Proceso)

Condicionales

  • Si-Entonces
  • Selección Múltiple

Repetitivas

  • Mientras
  • Repetir
  • Para

Condicionales

Si-Entonces (If-Then)

La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.

Si <condición> Entonces

   <instrucciones>

  Sino

  <instrucciones>

FinSi

La condición debe ser una expresión lógica, que al ser evaluada retorna
Verdadero o Falso.

La cláusula Entonces debe aparecer siempre, pero la cláusula Sino puede no estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente.

condicion

Ejemplo: Algoritmo que determina si un número es par o impar.

Ejemplo condicion

Selección Múltiple (Select If)

La secuencia de instrucciones es ejecutada por una instrucción “Según” depende del valor de una variable numérica.

Segun <variable> Hacer

  <número1>: <instrucciones>,

   <número2>: <instrucciones>,

  <número3>: <instrucciones>,

  <…>

  De Otro Modo: <instrucciones>

FinSegun

Esta estructura condicional permite determinar de ante mano diversos caminos que pueda tomar el programa de acuerdo a la evaluación de un valor ingresado.

segun

Ejemplo: Algoritmo que detecta la opción elegida y muestra un cartel con la misma.

segun code

Repetitivas
Mientras Hacer (while)

La instrucción “Mientras” ejecuta una secuencia de instrucciones mientras una condición sea verdadera.

Mientras <condición> Hacer

  <instrucciones>

FinMientras

Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y, si es verdadera, la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera.

mientras

Ejemplo: Algoritmo que suma todos los números pares comprendidos entre 1 y 100.

mientras_ej

Repetir Hasta Que 

La instrucción “Repetir Hasta Que” ejecuta una secuencia de instrucciones hasta que la condición sea verdadera.

Repetir

   <instrucciones>

Hasta Que <condición>

Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. Esto se repite hasta que la condición sea verdadera. Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez.

repetir

Ejemplo: Algoritmo que permite ingresar una clave y verifica si es correcta o no.

Repetir ej

Para

La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces.

Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer

<instrucciones>

FinPara

Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula “Con Paso” <paso>, la variable <variable> se incrementará en 1.

para

Ejemplo: Algoritmo que imprime todos los números comprendidos entre 1 y 10 multiplicados por 2.

para ej

MENÚ EJECUTAR:

Este menú contiene diversas opciones relacionadas a cómo ejecutar un programa en PSeInt.

EJECUTAR

Modos de Ejecución:

  • Ejecución normal: ejecuta el programa completo de corrido.
  • Ejecución paso a paso: Ejecuta el programa instrucción por instrucción, permitiendo que podamos ver la secuencia de instrucciones que sigue el mismo.
  • Ejecución Explicada: ejecuta el programa paso a paso y proporciona además una breve explicación de lo que se hace en cada instrucción.

Verificar Sintaxis:

  • Esta opción permite verificar todo el código del programa en búsqueda de errores de sintaxis.
  • En caso de encontrar errores los mostrará en una ventana inferior, identificando el número de línea en que se encuentra y sus posibles causas.

Predefinir entradas

Cuando abrimos esta opción, en la ventana se explica su funcionamiento:

predefinir

Ejemplo:

ejemplo predefinido.png

En este ejemplo, si se utilizaran los valores predefinidos de la imagen de la derecha entonces las variables tomarían los valores:

a<-3

b<-433

c<-6

d<-24


Continuá practicando PSeInt

Ahora que conocés el entorno, las estructuras básicas y la forma de ejecutar algoritmos, podés seguir con la guía completa de PSeInt.

Compiladores, Intérpretes y Entornos de desarrolo

COMPILADORES DE LENGUAJES

Un compilador es un programa informático, que se encarga de traducir el código fuente de una aplicación que esté en desarrollo.  Convierte un programa hecho en lenguaje de programación de alto nivel a un lenguaje de máquina, el cual es conocido como de bajo nivel, de tal forma que sea  más entendible y mucho más fácil de procesar en el equipo en el que se esta ejecutando.

En el desarrollo de un programa, durante la fase de codificación se lleva a cabo la compilación, que consiste en que el compilador traducirá el código fuente a código máquina, también llamado código objeto, siempre y cuando, el propio compilador no detecte ningún error en dicho código fuente.

 

CONVERSION
La imagen ilustra como el código fuente ingresado por el programador es convertida a lenguaje máquina para traducirse en un programa ejecutable.

 

CONVERSION 2
Secuencia empleada por un compilador para llegar desde el código fuente al código máquina resultante antes de ejecutarse.

 

CONVERSION 3
Ejemplo de una compilación de codigo fuente escrito con lenguaje de programación Java.

INTÉRPRETES DE LENGUAJES

Es un programa capaz de analizar y ejecutar programas escritos en un determinado lenguaje de programación.

Los intérpretes se diferencian de los compiladores  en que mientras estos traducen un programa desde su código fuente  escrito en un lenguaje de programación al código máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y una PlayStation 4).

Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos códigos ejecutables específicos a cada sistema.

interprete
Secuencia que realiza un intérprete para llegar desde el código fuente al código máquina a medida que se va ejecutando.

NIVELES DE LENGUAJES DE PROGRAMACIÓN

Los lenguajes de programación tienen una estructura que permite a los programadores diseñar programas de una forma mucho más amigable y comprensible que si tuvieran que hacerlo directamente en el código máquina que entiende la computadora, el  cual se compone únicamente de ceros y unos. De acuerdo a la complejidad de la traducción que existe para llegar de un lenguaje formal de programación al lenguaje máquina se determinan los siguientes niveles:

niveles

DEPURACIÓN DE PROGRAMAS

La depuración de un programa es el proceso de identificar y corregir errores de programación. En inglés se le conoce como debugging y si bien existen depuradores que permiten encontrar errores sistemáticos existen prácticas manuales asociadas a la calidad del software en desarrollo.

ENTORNO DE DESARROLLO INTEGRADO (IDE)

Un entorno de desarrollo integrado es un entorno de programación conformado por un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI).

Algunos ejemplos de entornos de desarrollo:

Entornos para C++:

  • Borland C
  • Code Blocks

Entornos para Java:

  • Netbeans
  • Jcreator
  • Eclipse

Entornos para VB, C#, Asp.Net:

  • Microsoft Visual Studio

 


Llevá estos conceptos a la práctica

Después de entender compiladores, intérpretes y entornos de desarrollo, podés empezar a practicar lógica de programación con la guía completa de PSeInt.

Si preferís avanzar hacia un lenguaje de programación, también tenés disponible la ruta completa de Python.

Continúa aquí con el siguiente post.

Introducción básica

En este primer post, como era de esperarse, veremos un poco de teoría introductoria, solo un poco antes de comenzar con la acción, si bien suele ser la parte aburrida para muchos, es necesaria para el manejo de conceptos básicos que se utilizaran en la práctica.

Informática es un término que reúne dos conceptos, el de “información” y el de “automático”. De esta forma, la informática se refiere al procesamiento automático de datos mediante dispositivos electrónicos y sistemas computacionales para así obtener información útil para el usuario.

proceso

Para que las máquinas y computadoras puedan procesar datos ingresados, se utilizan algoritmos cuyas instrucciones indican como será el procesamiento de estos para así devolver información útil para el usuario.

ALGORITMOS

Un algoritmo es una lista bien definida, ordenada y finita de operaciones, que permite encontrar la solución a un problema determinado. Es conceptual y se puede describir usando el lenguaje natural que usamos día a día, diagramas de flujo o pseudocódigo para luego ser implementado en uno o varios lenguajes formales de programación.

PSEUDOCÓDIGO

Se llama pseudocódigo a una forma intermedia entre usar lenguaje natural y un lenguaje de programación. No posee una forma estricta pero normalmente se respeta lo siguiente:

Se usa el concepto de variable y asignación.

Ej: “a <- 5” significa que a la variable a se le asignó el valor 5.

Se indican los datos de entrada y de salida.

Utilizan instrucciones condicionales e instrucciones de ciclo.

Ejemplo 1:

//Algoritmo para definir si un triángulo es escaleno, isósceles o equilátero.

Datos de entrada: l1, l2, l3 //lados del triángulo

Datos de salida: tipo

Algoritmo triangulos
	Si (lado1 = l2) y (l1 = l3) entonces
	  tipo <- equilátero
	sino
	   Si (l1=l2) ó (l1=l3) ó (l2=l3) entonces
	      tipo <- isósceles
	   Sino
	       tipo <- escaleno
	   FinSi
	FinSi
FinAlgoritmo

Ejemplo 2:

//Algoritmo que suma los números del 1 al 9 inclusive.
	nro <- 1
	resultado <- 0
		Mientras nro<=9
			resultado <- resultado + nro
			nro <- nro +1
		Fin Mientras
	Escribir resultado
FinAlgoritmo

Ejemplo 3:

//Algoritmo que suma los números pares comprendidos entre
 1 y 15 inclusive.

Algoritmo suma
	nro <- 1
	resultado <- 0
		Mientras nro<=15
	  		Si nro MOD 2 = 0 entonces 
	                    resultado <- resultado + nro 			
                        FinSi 			
                        nro -> nro+1
		Fin Mientras
	Escribir resultado
FinAlgoritmo

 

  • En el ejemplo anterior se utiliza la función MOD, la cual calcula el resto de la división entre dos nros. Si el resto de la división del nro por 2 es 0 entonces es par y se suma al resultado, de lo contrario es impar y no se suma al resultado.

DIAGRAMA DE FLUJO DE DATOS (DFD)

El diagrama de flujo es una metodología gráfica de representar un algoritmo, cada instrucción existente en pseudocódigo tiene su correspondiente símbolo gráfico en DFD. Favorecen la comprensión de un proceso mediante el uso de un dibujo.
La simbología en DFD puede variar un poco de acuerdo a la aplicación que la grafique y sus normas de estandarización pero en general se utilizan las que muestra la siguiente imagen:

simbolos

Ejemplo : En el siguiente ejemplo se presenta un algoritmo que determina si un número es positivo o negativo y a lado se muestra su gráfico correspondiente en DFD:

InicioAlgoritmodfd1

Leer n

Si n > 0 entonces

        Escribir “Positivo”

Sino

        Escribir  “Negativo”

FinAlgoritmo

PROGRAMA

Básicamente, un programa informático es un conjunto de instrucciones en forma secuencial, que a través de su interpretación por el sistema operativo o hardware, le permiten desarrollar una tarea específica a una computadora.

Diferencias entre Programas y Algoritmos:

  • Cuando hablamos de programa siempre existe la idea de que será ejecutado por una computadora mientras que un algoritmo podría ser ejecutado por una persona.
  • Un programa está escrito en lenguaje máquina o por lo menos en un lenguaje de programación que pueda ser compilado o interpretado por algún tipo de máquina.

LENGUAJES DE PROGRAMACIÓN

  • Es un idioma artificial diseñado para expresar instrucciones que pueden ser llevadas a cabo por máquinas y computadoras.
  • Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Algunos ejemplos de lenguajes de programación son los siguientes:

LOGOS

CÓDIGO FUENTE DE UN PROGRAMA

El código fuente es el archivo con las instrucciones necesarias escritas en un lenguaje de programación, que sirve para compilar posteriormente un programa que pueda ser utilizado por el usuario de forma directa ejecutándolo.

Ejemplo 1: Código fuente en lenguaje de programación C

C

Ejemplo 2: Código fuente en lenguaje de programación Java

java

Ejemplo 3: Código fuente en lenguaje de programación PHP

php


Empezá a practicar con PSeInt

Si querés llevar estos conceptos de algoritmos y pseudocódigo a la práctica, podés continuar con la guía completa de PSeInt y los 20 ejercicios resueltos de ciclos y condicionales.

Cuando ya tengas una base sólida, también podés dar el salto a un lenguaje real con De PSeInt a Python: 10 algoritmos traducidos paso a paso.

Continúa aquí con el siguiente post.