https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-basico/#div-comment-525
Algoritmos en Pseudocódigo con PSeInt. Lo más básico
PSeInt es una aplicación informática de software libre que sirve para escribir algoritmos en pseudocódigo y ejecutarlos, y además genera diagramas de flujo de dichos algoritmos. La práctica de escribir algoritmos con PSeInt puede ayudarte a aprender a programar.
El pseudocódigo no es un lenguaje de programación, pero es un «falso lenguaje» intermedio entre nuestro lenguaje natural y un lenguaje de programación. A través de él se pueden escribir los algoritmos con un lenguaje más próximo al nuestro. Una vez que tienes un algoritmo escrito en pseudocódigo lo puedes escribir en cualquier otro lenguaje. Utilizar esta aplicación puede ser una buena manera de empezar para aprender a programar. En su página oficial puedes descargar PSeInt.
Si quieres estar al tanto de las novedades y publicaciones de esta página web
Suscríbete
En este artículo podrás ver algunos ejemplos de algoritmos en PSeInt y lo básico sobre cómo usar PSeInt.
Contenidos de esta página [ocultar]
- 1 Cómo hacer un algoritmo en PSeInt. Su estructura
- 2 Variables y tipos de datos de los algoritmos con PSeInt
- 3 Algunas instrucciones o comandos simples de los algoritmos con PSeInt
- 4 Expresiones y operadores de los algoritmos con PSeInt
- 5 PSeInt Ejemplo – Resumen
- 6 Sentencias o estructuras de Control de Flujo en PSeInt
- 7 Funciones en PSeInt
Cómo hacer un algoritmo en PSeInt. Su estructura
En programación un algoritmo o programa es una secuencia de acciones o instrucciones que resuelve un determinado problema. A continuación verás cómo hacer un algoritmo en PSeInt:
Algoritmo (nombre_programa)
// Esto es un comentario
acción 1;
acción 2;
.
.
.
acción n;
FinAlgoritmo
Algoritmo y FinAlgoritmo son las palabras clave que se utilizan para abrir y cerrar, respectivamente, el algoritmo o programa. Y después, cada acción o instrucción puede consistir en: definiciones de variables, mostrar texto por pantalla, pedir datos al usuario por teclado, borrar la pantalla, expresiones matemáticas o lógicas, estructuras de control (condicionales, bucles, …), etc. Para escribir comentarios se empieza la línea con los símbolos «//».
Variables y tipos de datos de los algoritmos con PSeInt
Una variable es un espacio de la memoria donde guardar información. La información que se guarda en la variable puede ser de diversos tipos y puede ir cambiando a lo largo del programa. A la variable hay que darle un nombre para identificarla, y ese nombre estará formado solo por letras, números y el guion bajo únicamente; no debe contener espacios ni operadores, ni palabras claves del lenguaje. Identificadores de variable correctos podrían ser: nombre_usuario, fecha_2018, edad, A, X, suma, …
Cada variable tiene un tipo de dato asociado, por lo que siempre guardará el mismo tipo de dato. Una variable que guarde un número no podrá guardar después otro tipo que no sea un número. Los tipos de datos en PSeInt pueden ser: NUMERO, NUMERICO, ENTERO, REAL, CARACTER, TEXTO, CADENA y LOGICO. Para declarar una variable se utiliza la palabra clave Definir. A continuación veremos la sintaxis y un ejemplo de como declarar variables:
// Sintaxis para declarar variables
Definir (var1, var2, ..., varN) Como (tipo_de_dato);
// Ejemplos
Definir nombre Como Texto;
Definir edad Como Entero;
Definir respuesta Como Logico;
Una vez declarada la variable se le puede asignar un valor y también pedir por teclado ese valor (leer). También existe una palabra clave para mostrar datos por pantalla, esta es Escribir, si se utiliza Sin Saltar, no se hace un salto de línea después, sino se utiliza se hará un salto de línea.
// Asignación de variables
var1 <- valor;
// Lectura de variables
Leer var1;
Leer var2 Sin Saltar;
// Mostrar datos por pantalla
Escribir (cadena_texto);
Escribir var1;
// Ejemplos
nombre <- "Antonio";
Escribir "Introduce tu nombre: ";
Leer nombre;
Escribir "¿Edad?: " Sin Saltar;
Leer edad;
Los tipos de datos anteriores son simples, además existen los arreglos, que son algo más complejos, son las matrices matemáticas, estructuras de datos homogéneos del mismo tipo que pueden tener varias dimensiones. También se suelen llamar arrays.
Para declarar un arreglo se utiliza la palabra clave Dimension, puedes verlo en los dos ejercicios básicos que siguen:
// Sintaxis declaración de un arreglo
Dimension (nombre_arreglo) [(max1), (max2), ..., (maxN)];
// Arreglo para almacenar las notas de 8 alumnos para 5 asignaturas.
Dimension notas[8,5];
notas[1,1]<-8;
notas[1,2]<-4.5;
notas[1,3]<-9.2;
notas[1,4]<-7;
notas[1,5]<-3;
// Para mostrarlo por pantalla
Escribir "Las notas del alumno 1 son:";
Escribir "Asignatura 1: " Sin Saltar;
Escribir notas[1,1];
Escribir "Asignatura 2: " Sin Saltar;
Escribir notas[1,2];
Escribir "Asignatura 3: " Sin Saltar;
Escribir notas[1,3];
Escribir "Asignatura 4: " Sin Saltar;
Escribir notas[1,4];
Escribir "Asignatura 5: " Sin Saltar;
Escribir notas[1,5];
Algunas instrucciones o comandos simples de los algoritmos con PSeInt
Existen otras palabras claves que realizan acciones simples, todas ellas junto con las anteriores, son las llamadas secuenciales. Borrar Pantalla se utiliza para limpiar la pantalla, dejarla vacía como el que limpia una pizarra. Esperar se utiliza para parar el algoritmo un intervalo de tiempo, que se indica a continuación junto a la unidad de dicho intervalo, que puede ser segundos y milisegundos, por ejemplo: Esperar 5 Segundos;. Esperar Tecla se utiliza también para parar el algoritmo hasta que el usuario pulsa una tecla.
Expresiones y operadores de los algoritmos con PSeInt
Las expresiones son combinaciones de constantes, variables y operadores que nos permiten trabajar con los datos. Dependiendo de los operadores utilizados en ellas, pueden ser de varios tipos: aritméticas, relacionales, lógicas, alfanuméricas y de asignación.
- Expresión aritmética
- Aquella en la que se utilizan operadores aritméticos y como operandos datos numéricos.
- +, -, *, /, ^, % o MOD
- Expresión relacional
- Aquella en la que se utilizan operadores relacionales y el resultado de esta expresión siempre será verdadero o falso.
- >, <, >=, <=, =, <>
- Expresión lógica
- Aquella en la que se utilizan exclusivamente operadores lógicos y el resultado también será siempre verdadero o falso.
- Y o &, O o |, NO o ~
- Expresión alfanumérica
- Aquella que se utiliza para unir cadenas de texto. Se usa el operador de concatenación y como operandos, cadenas de texto.
- +
- Expresión de asignación
- Aquella que se utiliza para asignarle un valor a una variable. Se usa el operador de asignación y como operandos el nombre de variable a la izquierda y el valor que se le asigna a la derecha.
- <-
// Expresiones aritméticas
56 + 45;
62 - 15;
100 MOD 4;
// Expresiones relacionales
56 < 45;
62 = 15;
100 >= 4;
// Expresiones lógicas
5 > 4 O 6 < 2;
15 < 25 Y var1 = var2;
NO(48 < 20);
// Expresiones alfanuméricas
"Hola Mundo" + ", qué tal va todo";
// Expresiones de asignación
nombre <- "Juan Luis Sánchez";
edad <- 45;
PSeInt Ejemplo – Resumen
A continuación puedes ver el pseudocódigo de un sencillo algoritmo llamado Op_Aritméticas, que puede servir como ejemplo de todo lo comentado hasta ahora en este artículo. Son ejercicios básicos de pseudocódigo en PSeInt.
Este pequeño programa pide dos números al usuario y muestra por pantalla el resultado de las operaciones aritméticas básicas. Podemos ver también una función integrada de PSeInt que no se había mencionado hasta ahora, pero que ha sido necesario usar para poder concatenar cadenas de texto, se trata de la función ConvertirATexto(número).
Algoritmo Op_Aritmeticas
// Programa que realiza las 6 operaciones aritméticas
// básicas para dos números enteros y muestra los resultados por pantanlla.
Definir x,z Como Entero; // Estos son los dos operandos
Dimension resultados[6]; // Arreglo para guardar resultado operaciones
Dimension operaciones[6]; //Arreglo para guardar símbolo operaciones
operaciones[1] <- ' + '; // Suma
operaciones[2] <- ' - '; // Resta
operaciones[3] <- ' * '; // Producto
operaciones[4] <- ' / '; // División
operaciones[5] <- ' ^ '; // Potencia
operaciones[6] <- ' MOD '; // Resto
// Pedimos los dos números al usuario por teclado
Escribir 'Dame el primer número: ' Sin Saltar;
Leer x;
Escribir 'Dame el segundo número: ' Sin Saltar;
Leer z;
// Asignar a cada posición del array resultados, la expresión aritmética que le corresponde
resultados[1] <- x+z;
resultados[2] <- x-z;
resultados[3] <- x*z;
resultados[4] <- x/z;
resultados[5] <- x^z;
resultados[6] <- x MOD z;
Escribir 'Pulsa una tecla para continuar...';
Esperar Tecla;
Borrar Pantalla;
Escribir ConvertirATexto(x) + operaciones[1] + ConvertirATexto(z) + ' = ';
Escribir resultados[1];
Esperar 2 Segundos;
Escribir ConvertirATexto(x) + operaciones[2] + ConvertirATexto(z) + ' = ';
Escribir resultados[2];
Esperar 2 Segundos;
Escribir ConvertirATexto(x) + operaciones[3] + ConvertirATexto(z) + ' = '; Escribir resultados[3];
Esperar 2 Segundos;
Escribir ConvertirATexto(x) + operaciones[4] + ConvertirATexto(z) + ' = ';
Escribir resultados[4];
Esperar 2 Segundos;
Escribir ConvertirATexto(x) + operaciones[5] + ConvertirATexto(z) + ' = ';
Escribir resultados[5];
Esperar 2 Segundos;
Escribir ConvertirATexto(x) + operaciones[6] + ConvertirATexto(z) + ' = ';
Escribir resultados[6];
Esperar 2 Segundos;
FinAlgoritmo
Sentencias o estructuras de Control de Flujo en PSeInt
Las sentencias o estructuras de control de flujo permiten cambiar y controlar la ejecución del programa. Pueden ser condicionales e iterativas o de repetición.
Condicional Simple (Si-Entonces)
Con la estructura de control condicional si-entonces se evalúa una condición, y dependiendo del resultado, verdadero o falso, se ejecuta un bloque de instrucciones u otro. A continuación verás la sintaxis de la estructura y un ejemplo en el que se piden dos valores (A y B) por teclado, se evalúan con la estructura, y según el resultado muestra un texto u otro por pantalla.
// Sintaxis de estructura Si-Entonces
Si (condición) Entonces
(intrucciones)
SiNo
(intrucciones)
FinSi
// Ejemplo
Escribir "Introduce el valor de A: " Sin Saltar;
Leer A
Escribir "Introduce el valor de B: " Sin Saltar;
Leer B
Si (A = B) Entonces
Escribir "A es igual a B";
SiNo
Escribir "A es distinto de B";
FinSi
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Selección Multiple
Con esta estructura también se evalúa una variable, pero se pueden incluir varias opciones, es decir, se pueden tomar varios caminos con la misma estructura, no únicamente dos, como con la estructura si-entonces. Cada opción tiene su bloque de instrucciones a ejecutar. A continuación puedes ver la sintaxis y un ejemplo en el que podemos escoger entre tres valores numéricos enteros, del 1 al 3, u otro distinto, dependiendo de cual elegimos nos muestra un mensaje por pantalla.
// Sintaxis de estructura Selección Múltiple
Segun (variable) Hacer
(número 1): (instrucciones)
(número 2), (número 3): (instrucciones)
(...)
De Otro Modo: (instrucciones)
FinSegun
// Ejemplo
Definir opcion Como Entero;
Escribir "Elige una opción (1 - 3): " Sin Saltar;
Leer opcion;
Segun opcion Hacer
1:
Escribir "Has elegido la opción 1";
2:
Escribir "Has elegido la opción 2";
3:
Escribir "Has elegido la opción 3";
De Otro Modo:
Escribir "Has elegido una opción distinta";
FinSegun
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Bucle o Ciclo Mientras PSeInt
Esta estructura de control repetitiva permite que mientras se cumpla una condición, se ejecute un bloque de instrucciones determinado. A continuación verás la sintaxis y un ejemplo donde se recorre el array mi_tabla usando la variable i como contador, y el resultado de multiplicar a i por 10 se le asigna a mi_tabla[i], después se muestran los datos introducidos en mi_tabla por pantalla, recorriendo el array usando nuevamente la variable i como contador.
// Sintaxis de estructura Mientras
Mientras (condición) Hacer
(secuencia de acciones)
FinMientras
// Ejemplo
Dimension mi_tabla[10];
Definir i Como Entero;
i <- 1;
Mientras (i <= 10) Hacer
mi_tabla[i] <- i*10;
i <- i+1;
FinMientras
i <- 1;
Mientras (i <= 10) Hacer
Escribir "mi_tabla[" Sin Saltar;
Escribir i Sin Saltar;
Escribir "] = " Sin Saltar;
Escribir i Sin Saltar;
Escribir "x10 = " Sin Saltar;
Escribir mi_tabla[i];
i <- i+1;
FinMientras
El resultado de la ejecución del ejemplo anterior:
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Bucle o Ciclo Repetir PSeInt
Esta estructura de control repetitiva es muy parecida a la anterior, pero mientras en la anterior la condición se evalúa al principio de la estructura, en ésta se hace al final. Aquí se repite un bloque de instrucciones hasta que se cumple una condición determinada. A continuación verás la sintaxis y un ejemplo cuya ejecución da el mismo resultado que el ejemplo anterior, pero utilizando la estructura de control repetir en lugar de la estructura mientras. Como puedes comprobar en la anterior era mientras que i sea menor o igual que 10 hacer (secuencia de acciones), y en ésta es repetir (secuencia de acciones) hasta que i sea mayor que 10.
// Sintaxis de estructura Repetir
Repetir
(secuencia de acciones)
Hasta Que (condición)
// Ejemplo
Dimension mi_tabla[10];
Definir i Como Entero;
i <- 1;
Repetir
mi_tabla[i] <- i*10;
i <- i+1;
Hasta Que(i>10)
i <- 1;
Repetir
Escribir "mi_tabla[" Sin Saltar;
Escribir i Sin Saltar;
Escribir "] = " Sin Saltar;
Escribir i Sin Saltar;
Escribir "x10 = " Sin Saltar;
Escribir mi_tabla[i];
i <- i+1;
Hasta Que(i>10)
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Bucle o Ciclo Para PSeInt
Es otra estructura de control repetitiva pero en este caso la propia estructura inicializa una variable que se va a usar de contador, además, va sumándole la cantidad paso y por último incluye el valor final que debe tomar la variable para salir del bucle. A continuación vemos la sintaxis y también el mismo ejemplo que hemos visto con las estructuras mientras y repetir, que como ves, su ejecución da exactamente el mismo resultado.
// Sintaxis de estructura Para
Para (variable_numerica <- valor_inicial) Hasta (valor_final) Con Paso (paso) Hacer
(secuencia_de_acciones)
Fin Para
// Ejemplo
Dimension mi_tabla[10];
Definir i Como Entero;
Para i <- 1 Hasta 10 Con Paso 1 Hacer
mi_tabla[i] <- i*10;
Fin Para
Para i <- 1 Hasta 10 Con Paso 1 Hacer
Escribir "mi_tabla[" Sin Saltar;
Escribir i Sin Saltar;
Escribir "] = " Sin Saltar;
Escribir i Sin Saltar;
Escribir "x10 = " Sin Saltar;
Escribir mi_tabla[i];
Fin Para
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Funciones en PSeInt
Las funciones son un conjunto de instrucciones que realizan tareas específicas y pueden retornar un valor y también recibirlos (parámetros) para realizar operaciones con ellos. Las funciones pueden ser llamadas desde otras funciones e incluso puede llamarse a sí misma. A continuación puedes ver su sintaxis y el ejemplo de una función sencilla, una suma de tres números enteros; recibirá tres valores a través de los parámetros a, b y c y devolverá la suma con la variable de retorno resultado.
// Sintaxis de Función
Funcion (var_retorno) <- (nombre_funcion) (argumento1, argumento2, ....)
acción 1;
acción 2;
.
.
acción n;
FinFuncion
// Ejemplo
Funcion resultado <- sumaTres (a, b, c)
Definir resultado Como Entero;
resultado <- a+b+c;
FinFuncion
// Ejemplo de llamada de la función
Definir a, b, c, S Como Entero;
Escribir "Dame el primer número: " Sin Saltar;
Leer a;
Escribir "Dame el segundo: " Sin Saltar;
Leer b;
Escribir "El tercero, por favor: " Sin Saltar;
Leer c;
S <- sumaTres (a, b, c);
Escribir "La suma de " Sin Saltar;
Escribir a Sin Saltar;
Escribir " + " Sin Saltar;
Escribir b Sin Saltar;
Escribir " + " Sin Saltar;
Escribir c Sin Saltar;
Escribir " es igual a " Sin Saltar;
Escribir S;
Resultado de la ejecución para los números 12, 24 y 50:
En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:
Hay funciones ya integradas en PSeInt, casi todas matemáticas, son las siguientes:
FUNCIÓN | SIGNIFICADO |
---|---|
RC(X) o RAIZ(X) | Raíz cuadrada de X |
ABS(X) | Valor absoluto de X |
LN(X) | Logaritmo natural de X |
EXP(X) | Función exponencial de X |
SEN(X) | Seno de X |
COS(X) | Coseno de X |
TAN(X) | Tangente de X |
ASEN(X) | Arcoseno de X |
ACOS(X) | Arcocoseno de X |
ATAN(X) | Arcotangente de X |
TRUNC(X) | Parte entera de X |
REDON(X) | Entero más cercano a X |
AZAR(X) | Entero aleatorio en el rango[0;x-1] |
ALEATORIO(A,B) | Entero aleatorio en el rango [A;B] |
LONGITUD(S) | Longitud de la cadena S |
MAYUSCULAS(S) | Devuelve una copia de la cadena S en mayúsculas |
MINUSCULAS(S) | Devuelve una copia de la cadena S en minúsculas |
SUBCADENA(S,X,Y) | Devuelve una nueva cadena que consiste en la parte de la cadena S que va desde la posición X hasta la posición Y (incluyendo ambos extremos) |
CONCATENAR(S1,S2) | Devuelve una cadena nueva resultado de unir las cadenas S1 y S2 |
CONVERTIRANUMERO(X) | Convierte a número la variable X |
CONVERTIRATEXTO(S) | Convierte a texto la variable S |
Puedes ver más sobre ejercicios básicos de Pseudocódigo y PSeInt en:
- Pseudocódigo Ejemplo. Hoja de calendario en PSeInt
- Algoritmo Día de la semana de una fecha con PSeInt. Reutilizando funciones
- Arreglos y parámetros por referencia en pseudocódigo con PSeInt
- Funciones de fecha en Pseudocódigo con PSeInt
No hay comentarios:
Publicar un comentario