Aprendiendo a programar programando

    cabecera

terepebernal.com

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.

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.

Ilustración de un cubo

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];

El resultado sería:
Ejemplo de uno de los algoritmos con PSeInt

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:
Ejemplo condicional simple pseudocódigo PseInt

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:

Ejemplo Selección Múltiple pseudocódigo PseInt

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:

Ejemplo mientras tabla del 10

En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:

Diagrama flujo tabla del 10

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:

Diagrama flujo ejemplo repetir

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:

Diagrama flujo ejemplo Para

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:

Resultado ejemplo función

En la siguiente imagen puedes ver un diagrama de flujo del ejemplo anterior:

Diagrama flujo función Suma de tres

Hay funciones ya integradas en PSeInt, casi todas matemáticas, son las siguientes:

FUNCIÓNSIGNIFICADO
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:

Si quieres estar al tanto de las novedades y publicaciones de esta página web

Suscríbete
  • Frank Frank dice:

    Disculpa, estoy realizando un código para obtener numeros amigos que se ubican entre el 0 y el 300 utilizando un for y while. Será que tenga alguna estructura que me pueda ayudar?

    • terepebernal terepebernal dice:

      Hola Frank, lo he hecho muy deprisa y ahora no tengo mucho tiempo, pero si ves algo que no funciona o que no entiendes, dímelo, ¿vale?.

      Algoritmo numerosAmigos
      	Definir num1, num2, suma1, suma2 Como Entero
      	suma1 <- 0
      	suma2 <- 0
      	
      	Para num1 <- 0 Hasta 2000 Con Paso 1 
      		suma1 <- sumaDivisores(num1)
      		Si (num1<=suma1) Entonces
      			num2 <- suma1
      			suma2 <- sumaDivisores(num2)
      			
      			Si (num1 == suma2) && (num2 == suma1) Entonces
      				Si !(num1 == num2) Entonces
      					Escribir ConvertirATexto(num1) + " y " ConvertirATexto(num2) + " son números amigos"
      				FinSi
      			FinSi
      		FinSi
      	FinPara
      FinAlgoritmo
      
      
      Funcion suma <- sumaDivisores(n)
      	Definir suma, i Como Entero
      	
      	suma<-0
      	
      	Para i<-1 Hasta (n/2) Con Paso 1 Hacer
      		Si (n%i==0) Entonces
      			suma<-suma+i
      		FinSi
      	FinPara
      
      FinFuncion

      Gracias por visitar la página. Saludos

  • alejandra alejandra dice:

    me lo pone como error ya que dice que falta algo antes del + y asi

    fact*=prod
    prod + = 1

    • terepebernal terepebernal dice:

      Hola Alejandra, += y *= son operadores que se permiten en la mayoría de los lenguajes de programación, para hacer más cortas las expresiones, pero en PSeint de momento no se puede utilizar. Prueba a poner fact=fact*prod y prod=prod+1 en su lugar, es lo mismo. Saludos

  • adalberto mancera servin adalberto mancera servin dice:

    MUCHAS GRACIAS POR LA INFORMACIÓN ME SERVIO DE MUCHO, PARA UTILIZAR CORRECTAMENTE EL PROGRAMA Y TODOS SUS ELEMENTOS.

  • Anahi Anahi dice:

    Hola ayuda por favor soy nueva en pseint
    Elabora un algoritmo que permita contar la cantidad de productos que no cumplen con los parámetros de calidad (peso =50g y longitud=15 cm) los datos de cada producto se irán leyendo uno a uno la cantidad de producto es un dato que se pide al inicio

    • terepebernal terepebernal dice:

      Hola Anahi, por lo que yo he entendido, lo haría así. La cantidad de productos se pide al principio y se guarda en la variable llamada cantidad. El ciclo o bucle Para…Hasta permite repetir el proceso producto a producto. Primero se piden por teclado los datos del producto peso y longitud y después se comprueba si el producto cumple con los parámetros de calidad mediante el condicional simple que nos permite introducir la condición «que no tengan un peso igual a 50g y una longitud igual a 15cm». Si el producto no cumple los parámetros, la variable noCalidad aumenta en 1 su valor. Por último se muestra por pantalla el número de productos que no cumplen los parámetros. Pruébalo con PSeInt para ver como funciona, espero que lo entiendas.

      Algoritmo calidadProductos
      	Definir i, cantidad, noCalidad Como Numero
      	
      	Escribir "Cantidad de Productos: "
      	Leer cantidad
      	
      	noCalidad<-0
      	Para i<-1 Hasta cantidad Con Paso 1
      		Escribir "Peso del producto número " + ConvertirATexto(i) + " : " Sin Saltar
      		Leer pesoProducto
      		Escribir "Longitud del producto número " + ConvertirATexto(i) + " : " Sin Saltar
      		Leer longitudProducto
      		Si !(pesoProducto==50 && longitudProducto==15) Entonces
      			noCalidad<-noCalidad+1
      		FinSi
      	FinPara
      	
      	Escribir "Número de productos que no cumplen con los parámetros de calidad: " + ConvertirATexto(noCalidad)
      	
      FinAlgoritmo
      
  • alejandra Lopez alejandra Lopez dice:

    Hola! me ayudas a resolver este problema?
    solicita un número al usuario, y muestra el resultado por pantalla

    • terepebernal terepebernal dice:

      Hola Alejandra, ¿qué tal? Para pedir al usuario el número por teclado se utiliza la instrucción Leer con el nombre de la variable, y si quieres mostrar un mensaje por pantalla se utiliza la instrucción Escribir junto con el mensaje entre comillas, añadiendo Sin Saltar o Sin Bajar, si no quieres que haga un salto de línea. Para poder mostrar el número por pantalla tienes que convertirlo a texto con la función de PSeInt ConvertirATexto(N). Por ejemplo:

      Algoritmo NumeroPorPantalla
      	Definir Num Como Numero
      	
      	Escribir "Dame un número: " Sin Saltar
      	Leer Num
      	
      	Escribir "El número pedido es " + ConvertirATexto(Num)
      FinAlgoritmo

      Gracias por visitar la página. Saludos

  • VERÓNICA VERÓNICA dice:

    Me podrías ayudar urgentemente realizar la respuesta de esta pregunta ¿porfavor?
    ¿Cómo se puede definir un ciclo en Pseint?

    • terepebernal terepebernal dice:

      ¡Hola Verónica! Los ciclos o bucles en PseInt son estructuras repetitivas, existen tres: mientras, repetir y para. Mientras se cumpla una determinada condición, se ejecutan las instrucciones que están incluidas en dichas estructuras. En este mismo artículo tienes algún ejemplo: haz click aquí.
      Saludos

  • Adriana Adriana dice:

    Hola, quisiera que me ayude en el siguiente ejercicio

    En la estructura mientras

    En una jaula se ingresaran pericos en x cantidades pero hay que tomar en cuenta que la jaula tiene como límite 25 pericos. Mostrar un mensaje cuando ya hayan llegado a su límite.

    • terepebernal terepebernal dice:

      Hola Adriana, gracias por visitar la página y perdona por no haber contestado antes. Yo haría algo así.

      Algoritmo Pericos
      	Definir x, jaula Como Numero
      	
      	x <- 0
      	jaula <- 0
      	
      	Mientras (jaula <= 25 ) Hacer
      		Escribir "Pericos que hay en la jaula: " + ConvertirATexto(jaula)
      		Escribir "Pericos que ingresarán en la jaula " Sin Saltar
      		Leer x
      		jaula <- jaula + x
      	FinMientras
      	
      	Escribir "Se llegó al límite de pericos para la jaula"
      	
      FinAlgoritmo
      

      Un saludo

  • Layla Layla dice:

    Hola, quisiera que me ayudaras con un problema el cual dice que quiero un algoritmo que calcule la segunda potencia de un numero con 3 digitos y el resultado de ellos tome los ultimos 3 numeros y de nuevo los eleve a la potencia de dos en una subcadena

    • terepebernal terepebernal dice:

      ¡Hola Layla! Para resolver este problema yo lo dividiría en problemas más pequeños, hasta llegar a la solución final.
      1.- Comprobar que el número tiene 3 dígitos.
      Si tiene 3 dígitos tiene que estar entre 100 y 999, es decir, ser mayor o igual (>=) que 100 y (Y) menor o igual (<=) que 999. Para averiguarlo podemos utilizar el condicional simple (Si ... Entonces). Suponiendo que la variable num guarda el número:

      Si ((num>=100) Y (num<=999)) Entonces
         // Aquí seguir con el punto 2 y siguientes
      SiNo
         Escribir "El número " + ConvertirATexto(num) + " no tiene 3 dígitos"
      FinSi

      2.- Hallar la segunda potencia.
      Es decir, elevarlo al cuadrado. Si guardamos el resultado en una variable llamada, por ejemplo, pot2Num:

      pot2Num = num * num

      3.- Tomar los últimos 3 números de pot2Num.
      Para hacer esto, hay una función propia de PSeInt que se llama SubCadena(cadena, inicio, fin), que permite tomar trocitos de una cadena de texto. Como queremos los 3 últimos números, empezaremos a contar por el final de la cadena, para ello habrá que saber la longitud de la cadena de texto, porque no siempre dará el mismo número de dígitos, dependerá del número. Para saber cuántos números tiene la cadena de texto existe otra función propia de PSeInt, Longitud(cadena), para verlo mejor podemos guardar esa longitud en una variable llamada, por ejemplo, longP2, pero no sería necesario. Hay que tener en cuenta que pot2Num debe ser una cadena de texto, no un número, por lo que habrá que convertir pot2Num a texto con otra función propia de PSeInt, ConvertirATexto(numero):

      lonP2=Longitud(ConvertirATexto(pot2Num))
      subCadPotNum = Subcadena(ConvertirATexto(pot2Num), lonP2-2, lonP2)

      4.- Hallar el cuadrado de la subcadena.
      Ya tenemos los 3 últimos números guardados en subCadPotNum, para hallar su cuadrado o segunda potencia, hacemos lo mismo que en el punto 2, utilizando la función de PSeInt ConverTirANumero(cadena):

      ConverTirANumero(subCadPotNum) * ConverTirANumero(subCadPotNum)

      Espero que me hayas entendido y te haya sido de ayuda. Gracias por visitar la página Layla. Saludos.

  • gabriela gabriela dice:

    Hola! me ayudas a resolver este problema? DETERMINAR SI UN NUMERO ES PAR Y MULTIPLO DE 5

    • terepebernal terepebernal dice:

      ¡Hola Gabriela! Para resolver este problema en PSeInt tendrás que utilizar el operador módulo (MOD o %), que nos permite saber el resto de una división. Y también tendrás que utilizar el operador lógico (Y o &&).
      1.- Si un número es par, siempre nos dará de resto 0 al dividirlo entre 2. Tendrías que utilizar la siguiente expresión: num % 2 == 0, es como preguntar ¿el número que está guardado en la variable num al dividirlo entre 2 nos da un resto igual a 0?.
      2.- Si un número es múltiplo de 5, siempre nos dará de resto 0 al dividirlo entre 5. En este caso la expresión sería: num % 5 == 0.
      3.- Por tu comentario entiendo que el número tiene que cumplir las dos condiciones a la vez. No sería necesario, pero quizá así lo veas mejor, podemos guardar las expresiones anteriores en variables lógicas, por ejemplo:

      nPar=(num%2==0);
      mCinco=(num%5==0);

      Si el número es par, la variable nPar será igual a Verdadero, y si no lo es será igual a Falso.
      Si el número es múltiplo de 5, la variable mCinco será igual a Verdadero, y si no lo es será igual a Falso.
      Para que se cumplan las dos condiciones a la vez, las variables nPar y mCinco tienen que ser las dos igual a Verdadero.
      Eso se puede preguntar con la estructura de control condicional simple, Si (condición) Entonces :

      Si (nPar==Verdadero) Y (mCinco==Verdadero) Entonces
         Escribir "El número " + ConvertirATexto(num) + " es par y múltiplo de cinco";
      SiNo
         Escribir "El número " + ConvertirATexto(num) + " o no es par o no es múltiplo de cinco";
      FinSi
      

      Podrías hacerlo directamente con las expresiones, sin guardarlas en las variables nPar y mCinco:

      Si (num%2==0) Y (num%5==0) Entonces
         Escribir "El número " + ConvertirATexto(num) + " es par y múltiplo de cinco";
      SiNo
         Escribir "El número " + ConvertirATexto(num) + " o no es par o no es múltiplo de cinco";
      FinSi
      

      Espero que me hayas entendido y te sirva de ayuda. Muchas gracias por visitar esta página Gabriela. Un saludo.

  • ELIECER GUEVARA A ELIECER GUEVARA A dice:

    excelente

Deja un comentario

Tu dirección de correo electrónico no será publicada.

* (obligatorio)

Derechos: Tienes derechos, entre otros, a acceder, rectificar, limitar y suprimir tus datos. Envíame un e-mail a contacto@terepebernal.com