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
  • carlos julio becerra dice:

    hola buenas noches primero felicitarlos por la ayuda que brindan ya que algunos de nosotros no somos tan habiles con la informatica.y si me pueden ayudar con estos 2 problemas. • Realizar un algoritmo que con 5 opciones, de la cuales las 4 primeras le permitan al usuario aprender saludos en diferentes idiomas y la última permita salir del programa. y el otro Un colegio ingresa el número de estudiantes que quiera junto con sus respectivas notas siendo 5 la nota máxima y 0 la nota mínima. El colegio desea saber cuántos estudiantes reprobaron la materia de Lógica de Programación. El sistema debe calcular el porcentaje de alumnos que reprobaron la materia.

    • terepebernal dice:

      ¡Hola Carlos! El primer ejercicio:

      Algoritmo menuSaludos
      		Definir opcMenu Como Entero
      		Definir salir Como Logico
      		
      		salir <- Falso
      		Repetir
      			Escribir "               MENU"
      			Escribir "----------------------------------"
      			Escribir "(1) Español"
      			Escribir "(2) Inglés"
      			Escribir "(3) Italiano"
      			Escribir "(4) Portugués"
      			Escribir "(5) Salir"
      			Escribir "Seleccione la operación (1 al 5)...." Sin Saltar
      			Leer opcMenu
      			Borrar Pantalla
      			
      			Segun opcMenu Hacer
      				1:
      					Escribir "Hola" 
      					Escribir "Buenos días"
      					Escribir "Buenas tardes"
      					Escribir "Bienvenido"
      					teclayBorrar
      				2:
      					Escribir "Hello" 
      					Escribir "Good morning"
      					Escribir "Good afternoon"
      					Escribir "Welcome"
      					teclayBorrar
      				3:
      					Escribir "Ciao" 
      					Escribir "Buongiorno"
      					Escribir "Buon pomeriggio"
      					Escribir "Benvenuto"
      					teclayBorrar
      				4:
      					Escribir "Olá" 
      					Escribir "Bom dia"
      					Escribir "Boa tarde"
      					Escribir "Bem-vinda"
      					teclayBorrar
      				5:
      					salir <- Verdadero
      				De Otro Modo:
      					Escribir "Opción incorrecta. Inténtelo de nuevo"
      					teclayBorrar
      			FinSegun
      		Hasta Que salir
      FinAlgoritmo
      
      Funcion teclayBorrar
      	Escribir ""
      	Escribir "Pulse una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion

      Y el segundo. He dado por supuesto que los reprobados tendrían una nota menor de 2.5, ya que no lo menciona el enunciado:

      Algoritmo ejemploNotas4
      	Definir i, N, reprobados Como Entero
      	
      	Escribir "Número de estudiantes: " Sin Saltar
      	Leer N
      	Dimension notas[N,1]
      	Definir notas Como Numero
      	
      	// Introducir valores de las notas
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Escribir "Estudiante nº ", i, ":"
      		Repetir
      		Escribir "Nota: " Sin Saltar
      		Leer notas[i,1]
      		Si  !(notas[i,1]>=0 Y notas[i,1]<=5) Entonces
      			Escribir "La nota tiene que tener un valor entre 0 y 5"
      		FinSi
      		Hasta Que (notas[i,1]>=0 Y notas[i,1]<=5)
      	FinPara
      	
      	// Mostrar resultados
      	reprobados <- 0
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Si notas[i,1]>=0 Y notas[i,1]<2.5 Entonces
      			reprobados <- reprobados + 1
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir "Reprobados ", reprobados, " de ", N, " estudiantes"
      	Escribir (reprobados*100)/N, "% reprobados" 
      FinAlgoritmo

      Saludos y gracias

  • jaime dice:

    me pudieran ayudar por fa

    Se ingresa por teclado la cantidad de agua caída, en milímetros día a día durante un mes. Se pide determinar el día de mayor lluvia, el de menor y el promedio. utilizar estructura-repetir

    • terepebernal dice:

      ¡Hola Jaime! Saludos

      Algoritmo diasLluvia
      	Dimension lluvia[31]
      	Definir lluvia, max, min Como Numero
      	Definir i, suma, dias, diaMax, diaMin Como Entero
      	
      	Escribir "¿Cuántos días tiene el mes?: " Sin Saltar
      	Leer dias
      	
      	Si (dias<1 O dias>31) Entonces
      		Escribir "El número de días tiene que ser entre 1 y 31"
      	SiNo
      		// Introducir datos por teclado, no se permiten valores negativos
      		i <- 1
      		Repetir
      			Repetir
      				Escribir "Milímetros día ", i, ": " Sin Saltar
      				Leer lluvia[i]
      				Si lluvia[i]<0 Entonces
      					Escribir "El valor de lluvia no puede ser negativo"
      				FinSi
      			Mientras Que lluvia[i]<0
      			i <- i+1
      		Hasta Que i>dias
      		
      		// Calcula el mayor y el menor día de lluvia, y el promedio
      		// Solo se tiene en cuenta los días que llovió, si no llovió dará todo 0
      		max <- lluvia[1]
      		min <- lluvia[1]
      		diaMax <- 0
      		diaMin <- 0
      		suma <- 0
      		i <- 1
      		Repetir
      			Si lluvia[i] > 0 Entonces
      				Si max <= lluvia[i] Entonces
      					max <- lluvia[i]
      					diaMax <- i
      				FinSi
      				Si min >= lluvia[i] Entonces
      					min <- lluvia[i]
      					diaMin <- i
      				FinSi
      				suma <- suma + lluvia[i]
      			FinSi
      			i <- i+1
      		Mientras Que (i<=dias)
      		
      		Escribir "El día de menos lluvia fue el ", diaMin, " y llovió ", min " mm"
      		Escribir "El día de más lluvia fue el ", diaMax, " y llovió ", max " mm"
      		Escribir "Promedio de lluvia = ", suma/dias
      	FinSi
      FinAlgoritmo
  • Elsa dice:

    Me podrian ayudar por favor!!!
    La empresa Muros S.A. es productora de mallas de dos tipos: planas y en rollo. La
    alta gerencia requiere controlar las ventas por día según las siguientes políticas: si el
    comprador tiene más de cinco años adquiriendo malla en rollo tendrá un descuento
    del 8% en este producto. Si el comprador de malla plana la ha estado adquiriendo
    desde hace más de seis años tendrá un descuento dl 6%. El costo de la malla plana
    es de $400 por metro; la de rollo, de $250 por metro. Elabora un algoritmo en
    (PSEINT) que capture los metros vendidos, clasificados por tipo de
    malla y cliente. Además del tiempo en años que como comprador ha adquirido los
    tipos de mallas existentes. La salida del programa será la cantidad total de
    descuento obtenido por el cliente.

    • terepebernal dice:

      ¡Hola Elsa! Saludos

      Algoritmo ejemploCompra
      	Definir tipoMalla Como Entero
      	Definir anios, metros, dto Como Numero
      	
      	Escribir "Metros de malla: " Sin Saltar
      	Leer metros
      	Escribir ""
      	Escribir "(1) Mallas planas"
      	Escribir "(2) Mallas rollo"
      	Escribir "Elija el tipo de malla (1 o 2)..." Sin Saltar
      	Leer tipoMalla
      	Escribir ""
      	
      	dto <- 0
      	Segun tipoMalla Hacer
      		1:
      			precio <- 400
      			Escribir "Años cliente como comprador" Sin Saltar
      			Leer anios
      			Si anios>6 Entonces
      				dto <- metros*400*0.06
      			FinSi
      			Escribir metros, "m de Mallas rollo x $400 = $", metros*400
      			Escribir "Descuento = $", dto
      			Escribir "Total = $", (metros*400)-dto
      		2:
      			precio <- 250
      			Escribir "Años cliente como comprador" Sin Saltar
      			Leer anios
      			Si anios>5 Entonces
      				dto <- metros*250*0.08
      			FinSi
      			Escribir metros, "m de Mallas planas x $250 = $", metros*250
      			Escribir "Descuento = $", dto
      			Escribir "Total = $", (metros*250)-dto
      		De Otro Modo:
      			Escribir "El tipo de malla no es correcto"
      	FinSegun
      FinAlgoritmo
  • Ariadna dice:

    passwd(1)=”usu1:x:1001:1001::/home/usu1:/bin/bash”
    passwd(2)=”usuario2:x:1002:1002::/home/usuario2:/bin/bash”
    passwd(3)=”mgm3:x:1003:1003::/home/mgm3:/bin/bash”
    passwd(4)=”m3t4g4m3:x:1005:1005::/home/m3t4g4m3:/bin/bash”
    passwd(5)=”jesus:x:1007:1007::/home/jesus:/bin/bash”

    Con estos datos en la tabla passwd, comprobar que un nombre, que leeréis, está en algún elemento de la tabla. Si es así el mensaje será “usuario”, nombre, “existe”.

    Si no se encuentra en la tabla el mensaje será “El usuario buscado no existe” y realizaremos búsquedas hasta que nombre = “fin “.

    • terepebernal dice:

      ¡Hola Ariadna! Saludos

      Algoritmo password
      	Dimension passwd(5)
      	Definir passwd, nombre Como Cadena
      	Definir i,j,k Como Entero
      	
      	passwd[1] <- "usu1:x:1001:1001::/home/usu1:/bin/bash"
      	passwd[2] <- "usuario2:x:1002:1002::/home/usuario2:/bin/bash"
      	passwd[3] <- "mgm3:x:1003:1003::/home/mgm3:/bin/bash"
      	passwd[4] <- "m3t4g4m3:x:1005:1005::/home/m3t4g4m3:/bin/bash"
      	passwd[5] <- "jesus:x:1007:1007::/home/jesus:/bin/bash"
      	
      	Escribir "Nombre: " Sin Saltar
      	Leer nombre
      	i <- 1  // Primer elemento de la tabla donde buscar
      	Repetir
      		j <-Longitud(nombre)
      		k <- 1
      		Para k<-1 Hasta Longitud(passwd[i]) Con Paso 1 Hacer
      			Si nombre==Subcadena(passwd[i],k,j) Entonces
      				Escribir "usuario ", nombre, " existe"
      				// Como se ha encontrado, asignamos a k el máximo valor 
      				// que puede tomar para salir del bucle Para y a nombre
      				// le asignamos fin" para salir del bucle Repetir
      				k<-Longitud(passwd[i])		
      				nombre <- "fin"
      			FinSi
      			j <- j+1
      		FinPara
      		i<-i+1	// Pasamos al siguiente elemento de la tabla
      		Si i==6 Y nombre<>"fin" Entonces 
      			// Si no lo ha encontrado
      			Escribir "El usuario buscado no existe"
      			nombre<-"fin"
      		FinSi
      	Hasta Que nombre="fin"
      FinAlgoritmo
  • Erika dice:

    1-Elaborar un algoritmo q me permita
    *crear un vector de 5 posiciones y llenar sus datos por teclado
    *Imprimiro
    *Ordenarlo de mayor a menor
    *Impimirlo

    2-elaborar un algoritmo que permita crear 3 vectores A,B,C todos del mismo tamaño.
    *El tamaño se lee por teclado.
    *Se debe llenar los datos de los 3 vectores por teclado.
    *Se debe totalizar e imprimir la suma de los datos del vector A.
    *Se debe totalizar e imprimir la suma de los datos del vector B.
    *Se debe totalizar e imprimir la suma de los datos del vector C.
    *Se debe señalar cual de los 3 vectores posee un mayor valor en la suma de sus datos.
    *mostrar el promedio de cada vector.

    Muchas gracias

    • terepebernal dice:

      ¡Hola Erika! El primero:

      Algoritmo ejemploArreglo2
      	Dimension num[5]
      	Definir num, i Como Entero
      	
      	valores(num)
      	mostrarArreglo(num,5)
      	ordenar(num,5)
      	mostrarArreglo(num,5)
      FinAlgoritmo
      
      Funcion valores(arreglo Por Referencia)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir "Número ", i, ": " Sin Saltar
      		Leer arreglo[i]
      	FinPara
      FinFuncion
      
      Funcion ordenar(arreglo Por Referencia, elementos)
      	// Ordenación por selección en orden creciente
      	Definir i,  j, min Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (elementos-1) Con Paso 1
      		min<-i
      		j<-i+1
      		Mientras (j<=elementos) Hacer 
      			Si arreglo[j] < arreglo[min] Entonces
      				min<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-arreglo[i]
      		arreglo[i]<-arreglo[min]
      		arreglo[min]<-temp
      	FinPara
      FinFuncion
      
      Funcion mostrarArreglo(arreglo, elementos)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		Escribir arreglo[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion

      Y el segundo:

      Algoritmo ejemploArreglo3
      	Definir tA, tB, tC, A, B, C Como Entero
      	Definir sumaA, sumaB, sumaC Como Numero
      	
      	Escribir "Tamaño del vector A: " Sin Saltar
      	Leer tA
      	Dimension A[tA]
      	Escribir "Tamaño del vector B: " Sin Saltar
      	Leer tB
      	Dimension B[tB]
      	Escribir "Tamaño del vector C: " Sin Saltar
      	Leer tC
      	Dimension C[tC]
      	
      	Escribir ""
      	Escribir "VECTOR A:"
      	valores(A, tA)
      	Escribir ""
      	Escribir "VECTOR B:"
      	valores(B, tB)
      	Escribir ""
      	Escribir "VECTOR C:"
      	valores(C, tC)
      	
      	Escribir ""
      	sumaA <- sumarArreglo(A, tA)
      	Escribir "SUMA VECTOR A: ", sumaA
      	sumaB <- sumarArreglo(B, tB)
      	Escribir "SUMA VECTOR B: ", sumaB
      	sumaC <- sumarArreglo(C, tC)
      	Escribir "SUMA VECTOR A: ", sumaC
      	
      	Si sumaA>=sumaB Entonces
      		Si sumaA>=sumaC Entonces
      			Escribir "El vector A tiene la suma mayor de sus elementos"
      		SiNo
      			Si sumaC>=sumaB Entonces
      				Escribir "El vector C tiene la suma mayor de sus elementos"
      			FinSi
      		FinSi
      	SiNo
      		Si sumaB>=sumaC Entonces
      			Escribir "El vector B tiene la suma mayor de sus elementos"
      		FinSi
      	FinSi
      	
      	Escribir "PROMEDIO DE VECTOR A = ", sumaA/tA
      	Escribir "PROMEDIO DE VECTOR B = ", sumaB/tB
      	Escribir "PROMEDIO DE VECTOR C = ", sumaC/tC
      FinAlgoritmo
      
      Funcion valores(arreglo Por Referencia, elementos)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		Escribir "Número ", i, ": " Sin Saltar
      		Leer arreglo[i]
      	FinPara
      FinFuncion
      
      Funcion suma <- sumarArreglo(arreglo, elementos)
      	Definir i, suma Como Entero
      	
      	suma <- 0
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		suma <- suma + arreglo[i]
      	FinPara
      FinFuncion
      
      Funcion mostrarArreglo(arreglo, elementos)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		Escribir arreglo[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
  • Micaela dice:

    Hola! Espero que se encuentren bien!
    Necesitaria aclarar una duda que no estoy segura si se puede hacer en PSeInt.
    Cuando tenemos un Menu de opciones, se puede controlar que no acepte caracteres dentro de las opciones?
    Tengo el siguiente Menu y quiero que si el usuario del otro lado ingresa una letra le de un error y se vuelva a iniciar el menu.
    Como podria solucionarlo?

    Desde ya muchas gracias!

    Algoritmo Menu

    Definir salir como Logico //Defino una variable salir como logico y la inicializo en falso para que entre al menu siempre.
    salir = falso

    Escribir «Bienvenido/a al AHORCADO»
    Escribir «El jugador 1, debera ingresar: Nivel y pelicula a adivinar »
    Escribir «El jugador 2 debera adivinar cada letra, o arriesgar la palabra entera»

    Escribir «Pulse una tecla para continuar…»
    Esperar Tecla
    Borrar Pantalla

    Repetir
    Escribir » *Menú*»

    Escribir » 1. Nivel Básico, minimo 4 letras p/palabra »
    Escribir » 2. Nivel Medio, minimo 6 letras p/palabra»
    Escribir » 3. Nivel Avanzado minimo 10 letras p/palabra»
    Escribir » 4. Salir»
    Leer opc

    nivel = opc

    Segun opc hacer
    1:
    Escribir «Nivel Basico»

    2:
    Escribir «Nivel Medio»

    3:
    Escribir «Nivel Avanzado»
    4:
    Escribir «Usted ha salido del juego»
    salir = Verdadero // Salir toma el valor verdadero para asi salir del juego.
    De Otro Modo:
    Escribir «Opcion no valida»
    Escribir «Pulse una tecla para continuar…»
    Esperar Tecla
    Borrar Pantalla

    FinSegun
    Hasta Que salir //Se repite el menu con sus opciones hasta que salir sea verdadero.

    FinAlgoritmo

    • terepebernal dice:

      Hola Micaela, con la estructura SEGUN en PSeInt no se puede, solo permite utilizar números enteros. Podrías intentar hacerlo controlando el menu con otra estructura y utilizando texto en vez de números, aunque se suele escribir más código. Se me ocurre algo así, en el lugar del SEGUN:

      Si opc=='1' O opc=='2' O opc=='3' O opc=='4' Entonces
      	Si opc=='1' Entonces
      		Escribir "Nivel Basico"
      	FinSi		
      	Si opc=='2' Entonces
      		Escribir "Nivel Medio"
      	FinSi
      	Si opc=='3' Entonces
      		Escribir "Nivel Avanzado"
      	FinSi 
      	Si opc=='4' Entonces
      		Escribir "Usted ha salido del juego"
      		salir = Verdadero // Salir toma el valor verdadero para asi salir del juego.
      	FinSi
      SiNo
      	Escribir "No es una opción correcta. Inténtelo de nuevo"
      FinSi

      En la mayoría de los lenguajes de programación no suele pasar esto con las estructuras switch o case, que son lo más parecido al SEGUN.

      • Micaela dice:

        Tere, muchisimas gracias!
        Lo he cambiado asi para poder seguir desarrollando el juego, mientras que mi compa de equipo sigue buscandole vueltas al segun ya que es medio cabezota jajaja .

        Que tengas un buen comienzo de semana!

        • terepebernal dice:

          Pues sí que se puede. Tienes que poner los números entre comillas y después en el perfil hay una opción que dice «Limitar la estructura Según a variables de control numéricas», esta opción no tiene que estar marcada. También te comenté que solo manejaba números enteros, pues tampoco, también se pueden utilizar números decimales. Para acceder al perfil hay que ir al menú Configurar y botón personalizar.

        • terepebernal dice:

          Gracias. Yo también soy un poco cabezota, jiji, y me ha dado por mirarlo otra vez. Y ¿sabes qué?, quizá sí que se pueda, he hecho algunas pruebas rápidas y no me daba error, pero ahora no puedo entretenerme en ello y asegurarlo. Luego te cuento.

  • alexander dice:

    hola !
    me gustaría que me pudieran ayudar con el siguiente ejercicio ejercicio ya que con este entiendo mas sobre el tema y podre solucionar los de mas gracias.

    En una universidad se efectúa un examen de admisión que consta de dos pruebas: aptitud matemática y lógica de programación. Cada pregunta tiene 5 opciones numeradas del 1 al 5. Se prepara un registro con 60 campos de una sola posición que contiene, cada uno, la respuesta correcta a la pregunta correspondiente. Las 30 primeras posiciones corresponden al examen de aptitud matemática y las restantes a las de lógica de programación.
    Se presentaron al examen N estudiantes y para cada uno de ellos se preparó un registro con los siguientes datos:
    a) Numero de la credencial.
    b) Respuestas al examen de aptitud matemática.
    c) Respuestas al examen de lógica de programación.

    • terepebernal dice:

      ¡Hola Alexander! En el enunciado no dice que se muestre resultados de nada, así que no sé si es exactamente lo que quieres, espero que al menos te sirva de guía. El algoritmo genera las respuestas correctas aleatoriamente con valores del 1 al 5 cada una, después da opción a cada estudiante a introducir por teclado sus respuesta una a una, si acierta lo dice mediante un mensaje y suma un acierto, al final de cada examen muestra el número y porcentaje de aciertos de cada examen. Un saludo

      Algoritmo ejemploExamen
      	Dimension respuestasOK[60]
      	Definir respuestasOK, N, i, j, aciertos Como Entero
      	
      	// Rellenar aleatoriamente respuestas correctas
      	Para i<-1 Hasta 60 Con Paso 1 Hacer
      		respuestasOK[i] <- Aleatorio(1,5)
      	FinPara
      	
      	Escribir "Número de estudiantes que harán el examen: " Sin Saltar
      	Leer N
      	Dimension credencial[N]
      	Definir credencial Como Cadena
      	Dimension respEstudiantes[60,N]
      	Definir respEstudiantes Como Entero
      	
      	// Cada estudiante rellena sus respuestas por teclado
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Escribir "Estudiante nº ", i
      		Escribir "Credencial nº: " Sin Saltar
      		Leer credencial[i]
      		aciertos <- 0
      		Escribir "RESPUESTAS PARA APTITUD MATEMÁTICA (1 al 5):"
      		Para j<-1 Hasta 60 Con Paso 1 Hacer
      			Repetir
      				// Si no introduce valores del 1 al 5 tiene que volver
      				// a introducir la respuesta
      				Escribir j, ") " Sin Saltar
      				Leer respEstudiantes[j,i]
      				Si (respEstudiantes[j,i]<=0 O respEstudiantes[j,i]>5) Entonces
      					Escribir "El valor de la respuesta ha de ser entre 1 y 5"
      				SiNo
      					// Si acierta muestra mensaje y suma un acierto
      					Si respEstudiantes[j,i]==respuestasOK[j] Entonces
      						Escribir "Respuesta Correcta"
      						aciertos <- aciertos + 1 
      					FinSi
      				FinSi
      			Mientras Que (respEstudiantes[j,i]<=0 O respEstudiantes[j,i]>5)
      			Si j==30 Entonces
      				// Muestra resultado del primer examen
      				Escribir ""
      				Escribir "Estudiante con credencial: ", credencial[i]
      				Escribir "RESULTADOS APTITUD MATEMÁTICA: " Sin Saltar
      				Escribir "Total aciertos = ", aciertos, " - ", (aciertos*100)/30, "%"
      				aciertos <- 0
      				Escribir "RESPUESTAS PARA LÓGICA DE PROGRAMACIÓN (1 al 5):"
      			FinSi
      		FinPara
      		// Muestra resultado del segundo examen
      		Escribir ""
      		Escribir "Estudiante con credencial: ", credencial[i]
      		Escribir "RESULTADOS LÓGICA PROGRAMACIÓN: " Sin Saltar
      		Escribir "Total aciertos = ", aciertos,  " - ", (aciertos*100)/30,"%"
      		aciertos <- 0
      	FinPara
      FinAlgoritmo
  • Armando carbajal dice:

    Hola buen día amigo espero y me puedas ayudar con este problema:
    Realiza un programa que realice operaciones de Suma Resta Multiplicación, División, Raíz
    Cuadrada y potencia. Utiliza funciones de los tres tipos (tu puedes decidir en cual operación
    realizas cada tipo de función).

    • terepebernal dice:

      ¡Hola Armando!

      Algoritmo operarNumeros
      		Definir A, B Como Numero
      		Definir opcMenu Como Entero
      		Definir salir Como Logico
      		
      		salir <- Falso
      		Repetir
      			Escribir ""
      			Escribir "      MENU"
      			Escribir "-----------------"
      			Escribir "(1) Suma"
      			Escribir "(2) Resta"
      			Escribir "(3) Multiplicación"
      			Escribir "(4) División"
      			Escribir "(5) Raíz cuadrada"
      			Escribir "(6) Potencia"
      			Escribir "(7) Salir"
      			Escribir "Seleccione la operación (1 al 7)...." Sin Saltar
      			Leer opcMenu
      			Borrar Pantalla
      			
      			Segun opcMenu Hacer
      				1:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "Número B: " Sin Saltar
      					Leer B
      					suma(A, B)
      				2:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "Número B: " Sin Saltar
      					Leer B
      					resta(A, B)
      				3:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "Número B: " Sin Saltar
      					Leer B
      					Escribir A, " x ", B, " = ", producto(A, B)	
      				4:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "Número B: " Sin Saltar
      					Leer B
      					Escribir A, "/", B, " = ", division(A, B)	
      				5:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "La raíz cuadrada de ", A, " es ", RAIZ(A)
      				6:
      					Escribir "Número A: " Sin Saltar
      					Leer A
      					Escribir "Exponente: " Sin Saltar
      					Leer B
      					Escribir A, " elevado a ", B, " es igual a ", A^B	
      				7:
      					salir <- Verdadero
      			FinSegun
      		Hasta Que salir
      FinAlgoritmo
      
      Funcion suma(a,b)
      	Escribir a, " + ", b, " = ", a + b
      FinFuncion
      
      Funcion resta(a,b)
      	Escribir a, " - ", b, " = ", a - b
      FinFuncion
      
      Funcion c <- producto(a,b)
      	Definir c Como Numero
      	
      	c <- a*b
      FinFuncion
      
      Funcion c <- division(a,b)
      	Definir c Como Numero
      	
      	c <- a/b
      FinFuncion
  • cleyson garcia dice:

    HOLA BUENAS ALGUIEN ME AYUDA CON ESTE EJERCICIO ES EN PSEINT:
    una empresa tiene el siguiente stock computadoras 100 , monitores 70, teclados 40, mouse 50
    REALIZAR UN EJERCICIO QUE PERMITA COMPRAR PRODUCTOS, DE TAL MANERA QUE SI SE PIDE PRODUCTOS MAS DE LO QUE SE TIENE SE DEBE DE MOSTRAR UN MENSAJE STOCK INNECESARIO
    Y NO SE DEBE DE REALIZAR LA VENTA
    SE DEBE DE MOSTRAR EL PRECIO, CANTIDAD DEL PRODUCTO, EL IGV «19%» DEBE ESTAR INCLUIDO EN EL PRECIO Y SALIR EN LA BOLETA

    • terepebernal dice:

      ¡Hola Cleyson!

      Algoritmo ejemploStock
      	Definir computadoras, monitores, teclados, mouses Como Entero
      	Definir cantidad, producto Como Entero
      	Definir precio Como Numero
      
      	computadoras <- 100
      	monitores <- 70
      	teclados <- 40
      	mouses <- 50
      	
      	Escribir "COMPRAR PRODUCTO"
      	Escribir "----------------"
      	Escribir "(1) Computadoras"
      	Escribir "(2) Monitores"
      	Escribir "(3) Teclados"
      	Escribir "(4) Mouses"
      	Escribir "Elegir producto....(1 al 4)" Sin Saltar
      	Leer producto
      	
      	Segun producto Hacer
      		1:
      			Si cantidad > computadoras Entonces
      				Escribir "No hay stock. No es posible hacer la venta"
      			SiNo
      				Escribir "Cantidad: " Sin Saltar
      				Leer cantidad
      				Escribir "Precio: " Sin Saltar
      				Leer precio
      				mostrarImporte(cantidad, "Computadoras", precio)
      			FinSi
      		2:
      			Si cantidad > monitores Entonces
      				Escribir "No hay stock. No es posible hacer la venta"
      			SiNo
      				Escribir "Cantidad: " Sin Saltar
      				Leer cantidad
      				Escribir "Precio: " Sin Saltar
      				Leer precio
      				mostrarImporte(cantidad, "Monitores", precio)
      			FinSi
      		3:
      			Si cantidad > teclados Entonces
      				Escribir "No hay stock. No es posible hacer la venta"
      			SiNo
      				Escribir "Cantidad: " Sin Saltar
      				Leer cantidad
      				Escribir "Precio: " Sin Saltar
      				Leer precio
      				mostrarImporte(cantidad, "Teclados", precio)
      			FinSi
      		4:
      			Si cantidad > mouses Entonces
      				Escribir "No hay stock. No es posible hacer la venta"
      			SiNo
      				Escribir "Cantidad " Sin Saltar
      				Leer cantidad
      				Escribir "Precio: " Sin Saltar
      				Leer precio
      				mostrarImporte(cantidad, "Mouses", precio)
      			FinSi
      		De Otro Modo:
      			Escribir "Opción incorrecta. Inténtelo de nuevo"
      	FinSegun
      FinAlgoritmo
      
      
      Funcion	mostrarImporte(cant, prod, prec)
      	Definir importe, igv Como Numero
      	
      	Escribir ""
      	Escribir cant, "  ", prod, "  ", prec
      	importe <- cant*prec
      	igv <- (importe)*0.19
      	Escribir "Importe: ", importe
      	Escribir "I.G.V: -",  igv
      	Escribir "Total: ", importe-igv
      FinFuncion
  • Guasca dice:

    Hola buenas me ayudarias a resolver este problema?

    1. Se debe crear un menú, con las siguientes características
    2. En la primera opción, se debe Ingresar un arreglo con 10 números enteros por teclado, mayores que 50 y menores iguales que 100. Si no cumple con la condición debe salir un mensaje de ingresar nuevamente el o los valores que no cumplen con la condición.
    3. Segunda opción, Debe entregar el arreglo ordenado de menor a mayor
    4. Tercera opción, debe entregar si el numero menor del arreglo es primo.(Con funciones o métodos)
    5. Cuarta opción, debe entregar la suma de los 10 números
    6. Quinta opción, devolver el mayor y decir si es par o impar.
    7. Sexta, Mostrar la resta entre el número mayor y el número menor
    8. Septima opción, Salir

    gracias de antemano

    • terepebernal dice:

      ¡Hola Guasca! Saludos

      Algoritmo ejemploArreglo
      	Dimension num[10]
      	Definir num Como Entero
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	Mientras !(salir)
      		Escribir "                MENU"
      		Escribir "------------------------------------------"
      		Escribir "(1) 10 valores en arreglo por teclado"
      		Escribir "(2) Ordenar arreglo de menor a mayor"
      		Escribir "(3) ¿Es primo el menor número del arreglo"
      		Escribir "(4) Suma de los 10 números del arreglo"
      		Escribir "(5) El mayor, ¿es par o impar?"
      		Escribir "(6) Resta entre el mayor y el menor"
      		Escribir "(7) Salir"
      		Escribir "Elija una opción......" Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				valores(num)
      				teclayBorrar
      			2:
      				ordenar(num,10)
      				mostrarArreglo(num,10)
      				teclayBorrar
      			3:
      				ordenar(num,10)
      				Si esPrimo(num[1]) Entonces
      					Escribir "El número menor ", num[1], " es primo"
      				SiNo
      					Escribir "El número menor ", num[1], " no es primo"
      				FinSi
      				teclayBorrar
      			4:
      				Escribir "Los 10 números suman ", sumaArreglo(num,10)
      				Escribir ""
      				teclayBorrar
      			5:
      				ordenar(num,10)
      				Si esPar(num[10]) Entonces
      					Escribir "El número mayor ", num[10], " es par"
      				SiNo
      					Escribir "El número mayor ", num[10], " es impar"
      				FinSi
      				teclayBorrar
      			6:
      				ordenar(num,10)
      				Escribir "La resta entre el mayor y el menor es: ", num[10], " - ", num[1], " = ", num[10]-num[1]
      				teclayBorrar
      			7:
      				salir <- Verdadero
      		FinSegun
      	FinMientras
      FinAlgoritmo
      
      Funcion valores(arreglo Por Referencia)
      	Definir i Como Entero
      	
      	i<-1 
      	Repetir 
      		Escribir "Número ", i, ": " Sin Saltar
      		Leer arreglo[i]
      		Si !(arreglo[i]>50 Y arreglo[i]<=100) Entonces
      			Escribir "El número tiene que ser mayor de 50 y menor o igual que 100"
      			Escribir "Inténtelo de nuevo"
      		SiNo
      			i<-i+1
      		FinSi
      	Hasta Que (i>10)
      FinFuncion
      
      Funcion ordenar(arreglo Por Referencia, elementos)
      	// Ordenación por selección en orden creciente
      	Definir i,  j, min Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (elementos-1) Con Paso 1
      		min<-i
      		j<-i+1
      		Mientras (j<=elementos) Hacer 
      			Si arreglo[j] < arreglo[min] Entonces
      				min<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-arreglo[i]
      		arreglo[i]<-arreglo[min]
      		arreglo[min]<-temp
      	FinPara
      FinFuncion
      
      Funcion mostrarArreglo(arreglo, elementos)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		Escribir arreglo[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
      
      Funcion OK <- esPrimo(n)
      	Definir i,esDivisible Como Entero
      	Definir OK Como Logico
      	Para i<-1 Hasta n Hacer
      		Si n>=1 Entonces
      			Si (n MOD i==0) Entonces
      				esDivisible <- esDivisible+1
      			FinSi
      		FinSi
      	FinPara
      	Si (esDivisible==2) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
      
      Funcion S <- sumaArreglo(arreglo, elementos)
      	Definir i, S Como Entero
      	
      	S <- 0
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		S <- S + arreglo[i]
      	FinPara
      FinFuncion
      
      Funcion OK <- esPar(n)
      	Definir OK Como Logico
      	
      	Si (n MOD 2==0) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
      
      Funcion teclayBorrar
      	Escribir "Pulse una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
  • brayan dice:

    1.-.Construir un algoritmo que lea dos valores, inicio y final, luego muestre todos los valores
    que hay entre esos dos límites ingresados.

    2-.Construir una variación del ejercicio anterior, agregando una variable de salto, muestre
    todos los valores entre el límite ingresado, pero aplicando el salto.

    3-.Leer los datos de unos niños, peso y estatura, entregar el porcentaje de los niños que
    pesan más de 40kg, y de los que miden más de un 1,30 m y que están entre 11 y 16
    años. El programa se detiene cuando al preguntar si viene un nuevo niño, la respuesta
    es “no”.
    por favor ayúdame con esos ejercicios !!!

    • terepebernal dice:

      ¡Hola Brayan! El primero ya está en los comentarios, puedes verlo aquí.
      El segundo, tiene solo tiene una pequeña variación:

      Algoritmo ordenarEntre2NumConSalto
      	Definir num1, num2, i, salto Como Entero
      	
      	Escribir "PRIMER NÚMERO: " Sin Saltar
      	Leer num1
      	Escribir "SEGUNDO NÚMERO: " Sin Saltar
      	Leer num2
      	Escribir "SALTO: " Sin Saltar
      	Leer salto
      	
      	Si (num1<=num2) Entonces
      		Para i<-num1 Hasta num2 Con Paso salto Hacer
      			Escribir ConvertirATexto(i), " " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Para i<-num2 Hasta num1 Con Paso salto Hacer
      			Escribir ConvertirATexto(i), " " Sin Saltar
      		FinPara
      		Escribir ""
      	FinSi
      FinAlgoritmo

      Y el tercero:

      lgoritmo ejemploPorcentaje
      	Definir peso, estatura Como Numero
      	Definir i, edad, suma Como Entero
      	Definir mas Como Texto
      	
      	i<-1 
      	suma <- 0
      	Repetir
      		Escribir "NIÑO Nº ", i, ": "
      		Escribir "Edad: " Sin Saltar
      		Leer edad
      		Escribir "Peso (Kg): " Sin Saltar
      		Leer peso
      		Escribir "Estatura (m): " Sin Saltar
      		Leer estatura
      		Si peso>40 Y estatura>1.30 Y (edad>=11 Y edad<=16) Entonces
      			suma <- suma + 1
      		FinSi
      		Escribir "Escriba NO, si no quiere añadir más niños....." Sin Saltar
      		Leer mas
      		i <- i+1
      	Hasta Que Mayusculas(mas)=='NO'
      	Escribir ""
      	Escribir "Porcentaje = ", (suma*100)/(i-1), "%"
      FinAlgoritmo

      Saludos

  • stefany dice:

    Ejercicios adicionales con matrices:
    Disenar un programa que:
    1. Introduzca n nombres y apellidos de varios estudiantes como se muestra en la siguiente
    + tabla,
    Nombre Apellido
    estudiante 1
    estudiante 2
    estudiante 3
    estudiante n

    de tal forma que al final se muestre toda la tabla en forma presentable, mencionando el
    numero de cada estudiante con sus respectivos datos.

    • terepebernal dice:

      ¡Hola Stefany! Saludos

      Algoritmo tablaEstudiantes
      	Definir i,j, N Como Entero
      	
      	// Introducir el número de estudiantes para
      	// poder definir la dimensión de la matriz estudiantes
      	Escribir "NÚMERO DE ESTUDIANTES: " Sin Saltar
      	Leer N
      	Dimension estudiantes(N,2)
      	Definir estudiantes Como Cadena
      	
      	// Introducir datos
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Escribir "ESTUDIANTE Nº ", i
      		Escribir "NOMBRE: " Sin Saltar
      		Leer estudiantes[i,1]
      		Escribir "APELLIDOS: " Sin Saltar
      		Leer estudiantes[i,2]
      	FinPara
      	
      	// Mostrar datos
      	Escribir ""
      	Escribir "                 NOMBRE                             APELLIDOS"
      	Escribir "----------------------------------------------------------------------------------"
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Escribir "Estudiante ",i,"     ", estudiantes[i,1] Sin Saltar
      		Para j<-1 Hasta (30-Longitud(estudiantes[i,1])) Con Paso 1 Hacer
      			Escribir " " Sin Saltar
      		FinPara
      		Escribir "     ", estudiantes[i,2]
      	FinPara
      FinAlgoritmo
  • lizeth castro dice:

    Buen di

    Porfa me ayuda con operaciones aritméticas entre vectores
    Elaborar un algoritmo en seudocodigo que haciendo uso de subprocesos, permita elegir una operación entre dos vectores.
    //las operaciones a realizar son: suma de vectores, resta de vectores y multiplicacion escalar vectores.
    //antes de proceder a elegir la operacion se debe poblar aleatoriamente los dos vectores implicados en la iperacion.
    //luego elegir la operacion.

    • terepebernal dice:

      ¡Hola Lizeth! He dado por supuesto que son vectores con dos componentes. Saludos

      Proceso operarVectores
      	Dimension u[2]
      	Dimension v[2]
      	Dimension opUyV[3,2]
      	Definir u, v Como Entero
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	vectoresAleatorios(u,v)
      	operaciones(u,v,opUyV)
      	Repetir
      		Escribir "Vector u[", u[1], ", ", u[2] "]"
      		Escribir "Vector v[", v[1], ", ", v[2] "]"
      		Escribir ""
      		// Mostrar menu
      		Escribir "      MENU"
      		Escribir "-----------------"
      		Escribir "(1) Suma"
      		Escribir "(2) Resta"
      		Escribir "(3) Multiplicación"
      		Escribir "(4) Nuevos vectores"
      		Escribir "(5) Salir"
      		Escribir "Seleccione la operación (1 al 5)...." Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				Escribir "   u[", u[1], ", ", u[2] "]"
      				Escribir "   v[", v[1], ", ", v[2] "]"
      				Escribir " u+v[", opUyV[1,1], ", ", opUyV[1,2] "]"
      				teclayBorrar
      			2:
      				Escribir "   u[", u[1], ", ", u[2] "]"
      				Escribir "   v[", v[1], ", ", v[2] "]"
      				Escribir " u-v[", opUyV[2,1], ", ", opUyV[2,2] "]"
      				teclayBorrar
      			3:
      				Escribir "   u[", u[1], ", ", u[2] "]"
      				Escribir "   v[", v[1], ", ", v[2] "]"
      				Escribir " u*v[", opUyV[3,1], ", ", opUyV[3,2] "]"
      				teclayBorrar
      			4:
      				vectoresAleatorios(u,v)
      				operaciones(u,v,opUyV)
      			5:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      				teclayBorrar
      		FinSegun
      	Hasta Que salir
      	
      FinProceso
      
      SubProceso vectoresAleatorios(a Por Referencia, b Por Referencia)
      	Definir i Como Entero
      	
      	// Asignar componentes aleatoriamente con valores del -15 al 15
      	Para i<-1 Hasta 2 Con Paso 1 Hacer
      		a[i] <- Aleatorio(-15,15)
      		b[i] <- Aleatorio(-15,15)
      	FinPara
      FinSubProceso
      
      SubProceso operaciones(a,b,aYb Por Referencia)
      	// Realiza las operaciones entre los vectores a y b,
      	// y guarda los resultados en la matriz aYb
      	Definir i Como Entero
      
      	// Suma de a y b
      	aYb[1,1] <- a[1] + b[1]
      	aYb[1,2] <- a[2] + b[2]
      	// Resta de a y b
      	aYb[2,1] <- a[1] - b[1]
      	aYb[2,2] <- a[2] - b[2]
      	// Multiplicación de a y b
      	aYb[3,1] <- a[1] * b[1]
      	aYb[3,2] <- a[2] * b[2]
      FinSubProceso
      
      SubProceso teclayBorrar
      	Escribir "Pulse una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinSubProceso
  • PEDRO RAMOS dice:

    hola buenas noches he estado mirando algunos codigos pero quisiera saber si me pueden ayudar con estos inconvenientes que tengo

    Desarrolle un programa un psudocodigo en PSeint donde el usuario escriba 3 números , y SE IMPRIMA EN PANTALLA LOS 3 NUMEROS ORGANIZADO DE MAYOR A MENOR.

    ESCRIBA UN PSUDOCODIGO DONDE TENGA DOS VARIABLES CON VALOR DEFINIDO Y EL PROGRAMA INTERCAMBIE SUS VALORES.
    EJ. VAR A=AZUL VAR B=ROJO Y COMO RESULTADO OBTENGA A=ROJO B=AZUL

    DESARROLLE UN PROGRAMA DONDE EL USUARIO ESCRIBA UN NUMERO Y SE IMPRIMA EN PANTALLA SI ES NUMERO PAR O IMPAR.

    Desarrolle un programa para factura en una tienda de zapatos , el programa debe imprimir en pantalla la ’factura’ q debe contener: Fecha de compra día mes año, precio neto(antes de Iva) , Iva y total a pagar. Ademas tiene promociones en el mes de octubre donde todas las compras se les aplica el 20% de descuento.

    desarrolle los algoritmos q calculen las areas de el cuadrado, triangulo, circulo, rectangulo y el trapecio. haga un programa por cada figura y luego de tenerlos todos integralo e uno solo, donde el usuario escoja la figura a resolver

    desarrolle un programa para facturar. donde el usuario(cajero) ingrese el nombre del producto, precio del producto y cantidad, cuando termine de ingresar los productos de la compra se debe imprmir en pantalla la «factura» q debe contener listado del productos con nombre precio unitario, precio neto (antes de iva), iva y total a pagar el iva es del 19%

    desarrolle un programa para un parqueadero de un centro comercial q calcule el tiempo y valor de la estadia del vehiculo de un dia. teniendo en cuenta los siguientes parametros. pueden ingresar tres tipos de vehiculos bici moto y carro q su valor por min son $20 $50 y $100 respectivamente valor de la tarifa dia $5000 $10000 $15000 respectivamente, tiempo de gracia de 15 min la factura debe imprimir los siguientes datos. tipo de vehiculo valor min segun vehiculo hora de ingreso(hh:mm) hora de salida (hh:mm) tiempo de permanencia (hh:mm) valor neto valor iva y total a pagar. si hizo compras mayores a $50000 obtendra el 50% de descuento en el valor a pagar *tiempo de gracia son 15 min que tiene el dueño del vehiculo para que no se le haga cobro del tiempo en la estadia en el parqueadero

    • terepebernal dice:

      ¡Hola Pedro! No me ha dado tiempo a hacerte todos, faltan dos. Más tarde pondré los otros dos, pero no sé si podrá ser hoy, la verdad. Aquí tienes los cuatro primeros:
      Primero:

      Algoritmo mayorAmenor3Numeros
      	Definir A, B, C Como Entero
      	
      	Escribir "NÚMERO A: " Sin Saltar
      	Leer A
      	Escribir "NÚMERO B: " Sin Saltar
      	Leer B
      	Escribir "NÚMERO C: " Sin Saltar
      	Leer C
      	
      	SI A >= B Y A >= C Entonces
      		Si B >= C Entonces
      			Escribir A, "  ", B, "  ", C
      		SiNo
      			Escribir A, "  ", C, "  ", B
      		FinSi
      	SiNo 
      		Si B >= A Y B >= C Entonces
      			Si A >= C Entonces
      				Escribir B, "  ", A, "  ", C
      			SiNo
      				Escribir B, "  ", C, "  ", A
      			FinSi
      		SiNo
      			Si C >= A Y C >= B Entonces
      				Si A >= B Entonces
      					Escribir C, "  ", A, "  ", B
      				SiNo
      					Escribir C, "  ", B, "  ", A
      				FinSi
      			FinSi
      		FinSi
      	FinSi
      FinAlgoritmo

      Segundo:

      Algoritmo mayorAmenor3Numeros
      	Definir A, B Como Cadena
      	Definir cambio Como Caracter
      	
      	A <- "AZUL"
      	B <- "ROJO"
      	
      	Escribir "A = ", A, " y B = ", B
      	Escribir "Pulse S para cambiar las variables..." Sin Saltar
      	Leer cambio
      	
      	Si Mayusculas(cambio) == 'S' Entonces
      		A <- "ROJO"
      		B <- "AZUL"
      	FinSi
      	
      	Escribir ""
      	Escribir "A = ", A, " y B = ", B
      FinAlgoritmo

      Tercero:

      Algoritmo esParImpar
      	Definir n Como Entero
      	Escribir 'NÚMERO: ' Sin Saltar
      	Leer n
      	Si (n MOD 2==0) Entonces
      		Escribir 'Es un número par'
      	SiNo
      		Escribir 'Es un número impar'
      	FinSi
      FinAlgoritmo

      Y cuarto:

      Algoritmo mostrarFactura
      	Definir dia, mes, anio Como Entero
      	Definir neto, iva, total Como Numero
      	
      	Escribir "DÍA: " Sin Saltar
      	Leer dia
      	Escribir "MES: " Sin Saltar
      	Leer mes
      	Escribir "AÑO: " Sin Saltar
      	Leer anio
      	Escribir "PRECIO NETO: " Sin Saltar
      	Leer neto
      	
      	Escribir ""
      	Escribir "FACTURA "
      	Escribir "-------------------------------"
      	Escribir "FECHA COMPRA: ", dia, "/", mes, "/", anio
      	Escribir "PRECIO NETO: ", neto
      	Si mes==10 Entonces
      		Escribir "20% DTO.: -", neto*0.20
      		neto <- neto-(neto*0.20)
      	FinSi
      	iva <- neto*0.19
      	total <- neto + iva
      	Escribir "I. V. A. (19%): ", iva
      	Escribir "IMPORTE TOTAL: ", total
      FinAlgoritmo

      Saludos

  • luis fernando dice:

    buenas noches nesesito ayuda con estos 5 algoritmos tengo la idea pero no me quieren cuadrar agradecería mucho su ayuda

    Ejercicio 1
    Elabore un algoritmo que ofrezca un menú de opciones, mediante el cual se pueda seleccionar,
    calcular el área de las siguientes figuras geométricas: triángulo, cuadrado, rectángulo y círculo.
    Una vez seleccionada la opción, el programa principal debe llamar la respectiva función y dentro
    de ésta, se deben solicitar los datos necesarios y hacer el cálculo correspondiente. Finalmente,
    debe mostrar el resultado en el programa principal.

    Ejercicio 2
    Hacer un algoritmo, que genere las tablas de multiplicar de P hasta Q, tal que P <= Q, caso
    contrario, entonces generarlas desde Q hasta P.

    Ejercicio 3
    Realice un algoritmo que lea N números y muestre:
    • El mayor y el número de veces que fue hallado.
    • El porcentaje de números impares.
    • Un mensaje que indique la existencia de un múltiplo de 7.

    Ejercicio 4
    En una empresa se requiere calcular el salario semanal de cada uno de los 500 obreros que laboran en ella; por cada obrero se lee cédula y horas trabajadas. El salario se obtiene de la siguiente, forma: Si el obrero trabaja 40 horas o menos, se le paga $5.000 por hora. Si trabaja más de 40 horas se le paga $5.000 por cada una de las primeras 40 horas y $2.000 por cada hora extra. Elabore un algoritmo, para mostrar cuánto paga la empresa en total de salarios y el valor promedio de las horas extras pagadas.

    Ejercicio 5
    Se realizó una encuesta a 100 estudiantes de la IUDigital en los programas de Desarrollo de Software, Administración de Empresas y Mercadeo Digital. La Institución desea saber lo siguiente:
    • Cuántos estudiantes menores de 18 años fuman.
    • Cuántos estudiantes del programa de Desarrollo de Software son solteros.
    • Cuántas estudiantes del programa de Administración de Empresas son Mujeres y fuman.
    • Cuántos estudiantes hombres y casados hay en Administración de Empresas y Mercadeo Digital.

    • terepebernal dice:

      ¡Hola Luis Fernando! El primer ejercicio:

      Algoritmo ejemploAreas
      	Definir a, b, c, h Como Numero
      	Definir salir Como Logico
      	Definir opc Como Entero
      	
      	salir <- Falso
      	Repetir
      		Escribir "      MENÚ"
      		Escribir "------------------"
      		Escribir "(1) Área del triángulo"
      		Escribir "(2) Área del cuadrado"
      		Escribir "(3) Área del rectángulo"
      		Escribir "(4) Área del círculo"
      		Escribir "(5) Salir"
      		Escribir "Elija una opción (1 al 5)...." Sin Saltar
      		Leer opc
      		Borrar Pantalla
      		
      		Segun opc Hacer
      			1:
      				triangulo
      				teclayBorrar
      			2:
      				cuadrado
      				teclayBorrar
      			3: 
      				rectangulo
      				teclayBorrar
      			4: 
      				circulo
      				teclayBorrar
      			5:
      				Borrar Pantalla
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nueo"
      				teclayBorrar
      		FinSegun
      	Hasta Que salir
      
      FinAlgoritmo
      
      Funcion teclayBorrar
      	Escribir "Pulse una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion triangulo
      	Definir b, h Como Numero
      	
      	Escribir "Base: " Sin Saltar
      	Leer b
      	Escribir "Altura: " Sin Saltar
      	Leer h
      	Escribir "Área del triángulo = ", (b*h)/2
      FinFuncion
      
      Funcion cuadrado
      	Definir a Como Numero
      	
      	Escribir "Lado: " Sin Saltar
      	Leer a
      	Escribir "Área del cuadrado = ", a*a
      FinFuncion
      
      Funcion rectangulo
      	Definir b, h Como Numero
      	
      	Escribir "Base: " Sin Saltar
      	Leer b
      	Escribir "Altura: " Sin Saltar
      	Leer h
      	Escribir "Área del rectángulo = ", b*h
      FinFuncion
      
      Funcion circulo
      	Definir  r Como Numero
      	
      	Escribir "Radio: " Sin Saltar
      	Leer r
      	Escribir "Área del círculo = ", 3.14*(r^2)
      FinFuncion

      El segundo ejercicio:

      Algoritmo ejemploTablas
      	Definir P, Q, i Como Entero
      	
      	Escribir "Valor de P: " Sin Saltar
      	Leer P
      	Escribir "Valor de Q: " Sin Saltar
      	Leer Q
      	
      	Si P<=Q Entonces
      		Para i<-P Hasta Q Con Paso 1 Hacer
      			tabla(i)
      		FinPara
      	SiNo
      		Para i<-Q Hasta P Con Paso 1 Hacer
      			tabla(i)
      		FinPara
      	FinSi
      FinAlgoritmo
      
      Funcion tabla(n)
      	Definir j Como Entero
      	
      	Escribir "Tabla del ", n
      	Para j<-1 Hasta 10 Con Paso 1 Hacer
      		Escribir j, " x ", n, " = " j*n
      	FinPara
      	Escribir ""
      FinFuncion

      El tercer ejercicio:

      Algoritmo ejemploEnteros12
      	Definir i, N, max, vecesMax, impares Como Entero
      	
      	Escribir "N: " Sin Saltar
      	Leer N
      	Dimension matrizNumeros[N]
      	Definir matrizNumeros Como Entero
      	
      	// Introducir por teclado N números
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Escribir "NÚMERO ", i, ": " Sin Saltar
      		Leer matrizNumeros[i]
      	FinPara
      	
      	// Comprobar qué número es el mayor
      	max <- matrizNumeros[1]
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Si max <= matrizNumeros[i] Entonces
      			max <- matrizNumeros[i]
      		FinSi
      	FinPara
      	Escribir "El número mayor es ", max
      	
      	vecesMax <- 0
      	impares <- 0
      	// Comprobar cuántas veces se ha introducido el mayor número
      	// Hallar el porcentaje de impares
      	// Mostrar mensaje cada vez que se halle un múltiplo de 7
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Si max==matrizNumeros[i] Entonces
      			vecesMax <- vecesMax + 1 
      		FinSi
      		Si (matrizNumeros[i]%7==0) Entonces
      			Escribir matrizNumeros[i], " es múltiplo de 7"
      		FinSi
      		Si !(matrizNumeros[i]%2==0) Entonces
      			impares <- impares + 1
      		FinSi
      	FinPara
      	Escribir "El número ", max, " se ha hallado ", vecesMax, " veces"
      	Escribir "Se han hallado ", impares, " números impares, que representan " Sin Saltar
      	Escribir " el ", (impares*100)/N, "% del total"
      FinAlgoritmo

      El cuarto ejercicio:

      Algoritmo salarioSemanal
      	Definir horas, horasExtra, salario, salarioTotal, hExtraTotal Como Numero
      	Definir cedula Como Cadena
      	Definir teclaSalir Como Caracter
      	
      	salarioTotal <- 0
      	hExtraTotal <- 0
      	i<-1
      	Repetir
      		Escribir "Obrero nº ", i, ":"
      		Escribir "Cédula: " Sin Saltar
      		Leer cedula
      		Escribir "Horas trabajadas: " Sin Saltar
      		Leer horas
      		Si horas <= 40 Entonces
      			salario <- horas*5000
      		SiNo
      			horasExtra <- horas-40
      			hExtraTotal <- hExtraTotal + horasExtra 
      			salario <- (40*5000)+(horasExtra*2000)
      		FinSi
      		salarioTotal <- salarioTotal + salario
      		
      		Escribir "Pulsar la tecla (S) para salir..." Sin Saltar
      		Leer teclaSalir
      		i <- i+1
      	Hasta Que (i==500) O (Mayusculas(teclaSalir)=='S')
      	
      	Escribir ""
      	Escribir "Salario total de ", i, " empleados = ", salarioTotal
      	Escribir "Total horas extras pagadas ", hExtraTotal, ". Promedio = ", hExtraTotal/(i-1)
      FinAlgoritmo

      Y el quinto ejercicio:

      Algoritmo encuestaEstudiantes
      	Dimension preguntas[5]
      	Dimension estudiantes[100,5]
      	Definir estudiantes, preguntas Como Cadena
      	Definir i,j Como Entero
      	Definir teclaSalir Como Caracter
      	
      	preguntas[1] <- "¿Sexo...(H/M)?..."
      	preguntas[2] <- "¿Edad?....."
      	preguntas[3] <- "¿Estado Civil (S/C)?...."
      	preguntas[4] <- "¿Fuma....(S/N)?...."
      	preguntas[5] <- "(1) Desarrollo Software, (2) Administración Empresas, (3) Mercado Digital...(1 a 3)"
      	
      	// Hacer encuesta hasta llegar a los 100 estudiantes o pulsar la tecla S
      	i<-1
      	Repetir
      		Escribir "ESTUDIANTE Nº ", i, ": "
      		Escribir "------------------------------------------------------------"
      		Para j<-1 Hasta 5 Con Paso 1 Hacer
      			Escribir preguntas[j] Sin Saltar
      			Leer estudiantes[i,j]
      		FinPara
      		Escribir ""
      		Escribir "Pulas la tecla S para salir......" Sin Saltar
      		Leer teclaSalir
      		i <- i+1
      	Hasta Que (i==100) O (Mayusculas(teclaSalir)=='S')
      	
      	menores18(estudiantes)
      	solterosDS(estudiantes)
      	mujFumanAE(estudiantes)
      	homCasadosAEyMD(estudiantes)
      FinAlgoritmo
      
      Funcion menores18(matriz)
      	Definir i, vacios, men18 Como Entero
      	
      	men18 <- 0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si !(matriz[i,2]=="") Entonces
      			// Si el registro no está vacío
      			Si ConvertirANumero(matriz[i,2])<18 Entonces
      				men18 <- men18 + 1
      			FinSi
      		SiNo
      			// El registro está vacío, no hay más estudiantes
      			vacios <- i
      		FinSi
      	FinPara
      	
      	Escribir "Estudiantes menores de 18 años = ", men18
      FinFuncion
      
      Funcion solterosDS(matriz)
      	Definir i, vacios, solteros Como Entero
      	
      	solteros <- 0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si !(matriz[i,3]=="") Entonces
      			// Si el registro no está vacío
      			Si Mayusculas(matriz[i,3])=='S' Y matriz[i,5]=='1' Entonces
      				solteros <- solteros + 1
      			FinSi
      		SiNo
      			// El registro está vacío, no hay más estudiantes
      			vacios <- i
      		FinSi
      	FinPara
      	
      	Escribir "Estudiantes solteros del Desarrollo de Software  = ", solteros
      FinFuncion
      
      Funcion mujFumanAE(matriz)
      	Definir i, vacios, mujFuman Como Entero
      	
      	mujFuman <- 0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si !(matriz[i,1]=="") Entonces
      			// Si el registro no está vacío
      			Si Mayusculas(matriz[i,1])=='M' Y Mayusculas(matriz[i,4])=='S' Y matriz[i,5]=='2' Entonces
      				mujFuman <- mujFuman + 1
      			FinSi
      		SiNo
      			// El registro está vacío, no hay más estudiantes
      			vacios <- i
      		FinSi
      	FinPara
      	
      	Escribir "Estudiantes mujeres que fuman del progama de Administracion de Empresas  = ", mujFuman
      FinFuncion
      
      Funcion homCasadosAEyMD(matriz)
      	Definir i, vacios, homCasados Como Entero
      	
      	homCasados <- 0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si !(matriz[i,1]=="") Entonces
      			// Si el registro no está vacío
      			Si Mayusculas(matriz[i,1])=='H' Y Mayusculas(matriz[i,3])=='C' Y (matriz[i,5]=='2' O matriz[i,5]=='3') Entonces
      				homCasados <- homCasados + 1
      			FinSi
      		SiNo
      			// El registro está vacío, no hay más estudiantes
      			vacios <- i
      		FinSi
      	FinPara
      	
      	Escribir "Estudiantes hombres casados de los programas que hay en Administración de empresas y Mercadeo Digital  = ", homCasados
      FinFuncion

      Saludos

  • santiago dice:

    I. Desarrollar el siguiente algoritmo con ciclo para
    1. Usted debe elaborar un programa para una encuesta en la cual se desea determinar los niveles de sedentarismo de un grupo de
    100 personas y se quiere saber cuántas horas a la semana dedican a hacer ejercicio. Las personas se clasifican en dos grupos de edades así:
    • Jóvenes: menores a 30 años
    • Adultos: mayores o iguales a 30 años
    • El tipo de ejercicio se clasifica según el lugar donde lo practiquen: ejercicio en gimnasio, ejercicio en escuela deportiva, ejercicio al aire libre.
    • Por cada persona debe solicitar la edad, las horas que dedican a hacer ejercicio y si estudian o trabajan.
    El algoritmo debe mostrar por cada grupo (jóvenes y adultos):
    a. Sumatoria de horas dedicadas al ejercicio
    b. Cantidad de personas según el lugar en el cual hacen ejercicio: gimnasio, escuela deportiva, ejercicio al aire libre.
    c. Promedio de edades
    d. Cantidad de personas que estudian
    e. Cantidad de personas que trabajan
    En PSEint

    • terepebernal dice:

      ¡Hola Santiago! Saludos

      Algoritmo encuestaSedentarismo
      	Dimension encuestados[100,4]
      	Definir encuestados Como Entero
      	Definir i Como Entero
      	
      	// Recogida de datos
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Escribir "ENCUESTADO Nº ", i, ": "
      		Escribir "---------------------------------------"
      		Escribir "¿Edad?: " Sin Saltar
      		Leer encuestados[i,1]
      		Escribir "(1) Ejercicio en gimnasio"
      		Escribir "(2) Ejercicio en escuela deportiva"
      		Escribir "(3) Ejercicio al aire libre"
      		Escribir "Seleccione el tipo de ejercicio (1 al 3)..." Sin Saltar
      		Leer encuestados[i,2]
      		Escribir "¿Horas dedicadas?: " Sin Saltar
      		Leer encuestados[i,3]
      		Escribir "¿(1) Estudia o (2) trabaja?....(1 al 2)" Sin Saltar
      		Leer encuestados[i,4]
      	FinPara
      	
      	// Mostrar resultados encuesta
      	horasEjercicio(encuestados)
      	lugyPromEdades(encuestados)
      	estOtrabajo(encuestados)
      FinAlgoritmo
      
      Funcion horasEjercicio(matriz)
      	Definir i Como Entero
      	Definir horasJ, horasA Como Entero
      	
      	horasJ<-0
      	horasA<-0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si matriz[i,1]<30 Entonces
      			horasJ <- horasJ + matriz[i,3]
      		SiNo
      			horasA <- horasA + matriz[i,3]
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir "Horas dedicadas al ejercicio = ", (horasJ + horasA)
      	Escribir "Jóvenes = ", horasJ
      	Escribir "Adultos = ", horasA
      FinFuncion
      
      Funcion lugyPromEdades(matriz)
      	Definir i Como Entero
      	Definir ejerG, ejerED, ejerAL Como Entero
      	Definir edadG, edadED, edadAL, edadT Como Entero
      	
      	edadG<-0
      	edadED<-0
      	edadAL<-0
      	edadT<-0
      	ejerG<-0
      	ejerED<-0
      	ejerAL<-0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si matriz[i,2]==1 Entonces
      			ejerG <- ejerG + 1
      			edadG <- edadG + matriz[i,1]
      		FinSi
      		Si matriz[i,2]==2 Entonces
      			ejerED <- ejerED + 1
      			edadED <- edadED + matriz[i,1]
      		FinSi
      		Si matriz[i,2]==3 Entonces
      			ejerAL <- ejerAL + 1
      			edadAL <- edadAL + matriz[i,1]
      		FinSi
      		edadT <- edadT + matriz[i,1]
      	FinPara
      	
      	Escribir ""
      	Escribir "Personas según lugar en el que practican ejercicio:"
      	Escribir "Gimnasios = ", ejerG
      	Escribir "Escuelas Deportivas = ", ejerED
      	Escribir "Al aire libre = ", ejerAL
      	Escribir ""
      	Escribir "El promedio total de edad de los encuestados es ", edadT/100
      	Escribir "El promedio de edad según el lugar en el que practican ejercicio:"
      	Escribir "Gimansios = ", edadG/ejerG
      	Escribir "Escuelas Deportivas = ", edadED/ejerED
      	Escribir "Al aire libre = ", edadAL/ejerAL
      FinFuncion
      
      Funcion estOtrabajo(matriz)
      	Definir i Como Entero
      	Definir estudio, trabajo Como Entero
      	
      	estudio<-0
      	trabajo<-0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si matriz[i,4]==1 Entonces
      			estudio <- estudio+1
      		FinSi
      		Si matriz[i,4]==2 Entonces
      			trabajo <- trabajo+1
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir "Personas que estudian = ", estudio
      	Escribir "Personas que trabajan = ", trabajo
      FinFuncion
  • Marlon dice:

    Buenas me podrian ayudar con el siguiente algoritmo:

    desarrollar un algoritmo que permita convertir un numero de cualquier base en base decimal.
    gracias.

    • terepebernal dice:

      ¡Hola Marlon! Creo que funciona bien, pero no descarto que falle algo. Convierte un número de cualquier base (de la 2 a la 16) en base decimal. Saludos

      Algoritmo pasarABase10
      	Definir num Como Cadena
      	Definir base, i, opcMenu Como Entero
      	Definir salir Como Logico
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	salir <- Falso
      	Repetir
      		Escribir "Nº: ", Mayusculas(num)
      		Escribir ""
      		Escribir "(1) Nuevo número"
      		Escribir "(N) Base N (2 a 16)"
      		Escribir "(0) Salir del programa"
      		
      		Escribir "Elige opción: " Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Si (opcMenu>=2 Y opcMenu<=16) Entonces
      			base <- opcMenu
      			Escribir cambiarAbase10(num,base)
      			teclayBorrar
      		SiNo
      			Si opcMenu==1 Entonces
      				Escribir "NÚMERO: " Sin Saltar
      				Leer num
      			SiNo 
      				Si opcMenu==0 Entonces
      					salir <- Verdadero
      				SiNo
      					Escribir "Opción incorrecta. Inténtalo de nuevo"
      					teclayBorrar
      				FinSi
      			FinSi
      		FinSi
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion nB10 <- cambiarAbase10(n,b)
      	// Calcula el cambio de cualquier base (2 a 16) a base 10 y muestra el resultado
      	Definir i,j Como Entero
      	Definir suma Como Numero
      	Definir valorDigito, digito Como Texto
      	
      	Si esBaseOK(n,b) Entonces
      		j<-0
      		suma <- 0
      		// De derecha a izquierda calcula y va sumando
      		Para i<-Longitud(n) Hasta 1 Con Paso -1 Entonces
      			digito <- Subcadena(n,i,i)
      			valorDigito <- valDigito(digito)
      			// Escribir digito + " x ", b, " elevado a ", j, " = ", ConvertirANumero(valorDigito)*(b^j)
      			suma <- suma + ConvertirANumero(valorDigito)*(b^j)
      			j<-j+1
      		FinPara
      		Escribir "El número ", Mayusculas(n), " en base ", b, " es igual al número ", suma, " en base 10"
      	SiNo
      		Escribir "El número ", Mayusculas(n), " no es un número en base ", b
      	FinSi
      FinFuncion
      
      Funcion b <- valDigito(a)
      	// Devuelve el valor del dígito, por ejemplo, si recibe A devuelve 10
      	Definir b Como Texto
      	Dimension valores[16]
      	Definir valores Como Texto
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		valores[i] <- ConvertirATexto(i-1)
      	FinPara
      	
      	valores[11] <- 'A'
      	valores[12] <- 'B'
      	valores[13] <- 'C'
      	valores[14] <- 'D'
      	valores[15] <- 'E'
      	valores[16] <- 'F'
      	
      	Para i<-1 Hasta 16 Con Paso 1 Hacer
      		Si Mayusculas(a)==valores[i] Entonces
      			b <- ConvertirATexto(i-1)
      			i <- 16
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion OK <- esBaseOK(n,b)
      	Definir OK Como Logico
      	Definir i, j Como Entero
      	Definir digitosBase Como Cadena
      	Definir C Como Caracter
      	
      	// Comprueba que todos los dígitos del número n son dígitos de la base b
      	digitosBase <- digitos(b)
      	Para i<-1 Hasta Longitud(n) Con Paso 1 Hacer
      		C <- Mayusculas(Subcadena(n,i,i))
      		Para j<-1 Hasta Longitud(digitosBase) Con Paso 1 Hacer
      			Si C==Subcadena(digitosBase,j,j) Entonces
      				// Si lo encuentra sale del primer bucle y
      				// continúa con el siguiente dígito
      				OK <- Verdadero
      				j <- Longitud(digitosBase)
      			SiNo
      				// Si no se encuentra el dígito de n, no pertenece a 
      				// la base b, sale de ambos bucles y devuelve Falso
      				Si j==Longitud(digitosBase) Entonces
      					i <- Longitud(n)
      					OK <- Falso
      				FinSi
      			FinSi
      		FinPara
      	FinPara
      FinFuncion
      
      Función d <- digitos(x)
      // Devuelve una cadena de texto con los dígitos de la base x
      	Definir d Como Cadena
      	Definir i Como Entero
      	Definir mas10 Como Cadena
      	
      	mas10 <- "ABCDEF"
      	d <- ""
      	i <- 0
      	Mientras (i<=x-1) Hacer
      		d <- d + ConvertirATexto(i)
      		i<- i+1
      	FinMientras
      	Si x>=11 Y x<=16 Entonces
      		d <- Subcadena(d,1,10)
      		Para i<-11 Hasta x Con Paso 1 Hacer
      			d <- d + Subcadena(mas10,i-10,i-10)
      		FinPara
      	FinSi
      FinFuncion
      
      Funcion teclayBorrar
      	Escribir "Pulsar una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
  • BRYAN DAVID CARDENAS CORONEL dice:

    La empresa Grupo Tech requiere un algoritmo para su sistema de contador de impresiones.

    La gerencia debe generar reportes mensuales en función de las impresiones que se han realizado en cada una de sus impresoras. Este algoritmo debe recibir como entrada el número de impresiones total al inicio y al final del mes. Adicional, debe ingresar el tipo de impresora.

    Si la impresora es blanco/negro el costo de impresión es de $0.06. Mientras que, Si la impresora es a color el costo de impresión es de $0.12. El algoritmo entrega como resultado el número de impresiones del mes y el costo total.

    Finalmente, el algoritmo debe verificar que los valores ingresados sean correctos. No es posible que el contador final sea menor al contador inicial.

    • terepebernal dice:

      ¡Hola Bryan! Saludos

      Algoritmo impresiones
      	Definir impInicio, impFin, impTotal, tipoImpresora Como Entero
      	
      	Escribir "Impresiones al inicio: " Sin Saltar
      	Leer impInicio
      	Escribir "Impresiones al final: " Sin Saltar
      	Leer ImpFin
      	Si  (impInicio>=0 Y impFin>=0) Entonces
      		Si (impFin<impInicio) Entonces
      			Escribir ""
      			Escribir "Las impresiones de final de mes deben ser mayores que las de inicio"
      		SiNo
      			impTotal <- impFin-impInicio
      			Escribir "(1) Blanco/Negro"
      			Escribir "(2) Color" 
      			Escribir "Elegir tipo impresora..." Sin Saltar
      			Leer tipoImpresora
      			Escribir ""
      			Escribir "Número de impresiones = ", impTotal
      			Segun tipoImpresora Hacer
      				1:
      					Escribir "Costo total = ", impTotal*0.06
      				2:
      					Escribir "Costo total = ", impTotal*0.12
      				De Otro Modo:
      					Escribir "La opción de impresora no es correcta"
      			FinSegun
      		FinSi
      	SiNo
      		Escribir ""
      		Escribir "Los valores de las impresiones no pueden ser negativos"
      	FinSi
      FinAlgoritmo
  • CARLOS NAVIL ZARAGOZA CORTES dice:

    Hola! me ayudas a generar un algoritmo
    La creación de un sistema que nos permita conocer el movimiento monetario y financiero de una empresa comercial, cuyo giro de la misma sea encaminado a la venta de productos de supermercado.

    • terepebernal dice:

      ¡Hola Carlos! No sé, lo que comentas me parece algo muy general, ¿no? No se trata de resolver un problema concreto. A ver si puede ayudarte un par de algoritmos que ya hay en comentarios. El primero podría simular un almacén de productos, que permite agregar productos y más o menos controlarlos y el segundo simula una caja registradora. Saludos

  • Elena dice:

    Hola me podría ayudar con un problema
    Tendria q tener una estructura condicional simple
    -contruir un pseudocodigo que permita ingresar un numero ,si el numero es mayor de 500 ,se debe calcular y mostrar en pantalla el 18% de este

  • Jorge dice:

    Una agencia de turismo establece una serie de descuentos en el precio del tour que ofrece y está en función de las características del cliente:
    a) Las personas menores de 6 años no pagan.
    b) Las personas cuya edad está entre 7 y 10 años pagan la mitad del precio del boleto.
    c) Los mayores de 65 años pagan el 50% del precio del boleto.
    d) Los estudiantes pagan el 40 % del precio del boleto.
    Ingrese los datos de una persona e indique cuál es el valor que debe pagar, si el precio del boleto es S/.100

    • terepebernal dice:

      ¡Hola Jorge! Saludos

      Algoritmo precioBoletos
      	Definir edad Como Entero
      	Definir estudiante Como Caracter
      	Definir precio Como Numero
      	
      	precio <- 100
      	Escribir "EDAD: " Sin Saltar
      	Leer edad
      	Escribir "¿ES ESTUDIANTE (S/N)?: " Sin Saltar
      	Leer estudiante
      	
      	Si edad<=6 Entonces
      		precio <- 0
      	SiNo
      		Si edad>=7 Y edad<=10 Entonces
      			precio <- precio/2
      		SiNo
      			Si edad>=65 Entonces
      				precio <- (precio*50)/100
      			FinSi
      		FinSi
      	FinSi
      	Si Mayusculas(estudiante)=='S' Entonces
      		precio <- (precio*40)/100
      	FinSi
      	
      	Escribir "PRECIO = ", precio
      FinAlgoritmo
  • Alexander Hernández dice:

    Hola que tal, espero te encuentres muy bien, estoy cursando el primer año de ingeniería en sistemas y se me dificulta un poco por la circunstancias de hoy me podrías ayudar con el siguiente ejercicio te lo agradecería mucho

    Aprendizaje: Modulo para consultar las tablas de verdad básicas de dos
    proposiciones, se utilizará como aprendizaje de las distintas
    combinaciones.
    Ejemplo:
    i. Conjunción
    *tabla con 4 preposiciones*
    ii. Disyunción
    *tabla con 4 preposiciones*
    Es necesario incluir
    i. Negación
    ii. Conjunción
    iii. Disyunción
    iv. Condicional
    v. Bi Condicional
    vi. Disyunción exclusiva
    Utilizar conceptos de matrices bidimensionales.
    b) Operación: Este módulo será capaz de operar tablas de verdad con las
    siguientes consideraciones:
    1. Capaz de resolver una tabla de verdad de 2 proposiciones.
    2. Las dos proposiciones pueden ser variables a elección ejemplo: pvq, pvr,
    x v y.
    3. Puede soportar proposiciones negadas ejemplo: -p v -q.
    4. Utilice conceptos de matrices bidimensionales.

  • Janio dice:

    Hola soy nuevo alguien me puede ayudar con estos algoritmos en pseudocódigo gracias
    Elabore un algoritmo que permita resolver los siguientes ejercicios:

    Se registra en un concesionario de venta de vehículos (camionetas, automóviles, jeep y trailers) en 5 modelos (años 2016, 2017, 2018, 2019 y 2020). Registrar el número de vehículos vendidos por cada modelo en una matriz, para encontrar lo siguiente:

    Cuál es el modelo que menos se ha vendido.
    Porcentaje total de venta de automóviles.
    Promedio de venta de los modelos 2016.

    En un experimento se analiza el comportamiento de 10 cuerpos en caída libre desde una altura de 200m. Por cada cuerpo se registran dos variables: peso del cuerpo y tiempo en segundos que demora en topar el piso. Indicar:

    Cuál fue el cuerpo más rápido. Fue solo uno o fueron varios?
    Tiempo promedio de los cuerpos en topar el piso.
    Cuerpo más pesado y cuerpo más liviano

    • terepebernal dice:

      ¡Hola Janio! El primer ejercicio:

      Algoritmo concesionario
      	Dimension vehiculos[4,6]
      	Definir vehiculos Como Cadena
      	Definir i, j Como Entero
      	
      	vehiculos[1,1] <- "Camionetas"
      	vehiculos[2,1] <- "Automóviles"
      	vehiculos[3,1] <- "Jeep"
      	vehiculos[4,1] <- "Trailers"
      	
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir Mayusculas(vehiculos[i,1]), ": "
      		Escribir "--------------------------------"
      		Para j<-2016 Hasta 2020 Con Paso 1 Hacer
      			Escribir "Año ", j, ": " Sin Saltar
      			Leer vehiculos[i,j-2014]
      		FinPara
      		Escribir ""
      	FinPara
      	
      	menosVentas(vehiculos)
      	porcAutomoviles(vehiculos)
      	promedio2016(vehiculos)
      FinAlgoritmo
      
      Funcion menosVentas(matriz)
      	// Busca dentro de la matriz el número menor de ventas
      	Definir i, j, min, fila, columna Como Entero
      	
      	min <- ConvertirANumero(matriz[1,2])
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Para j<-2 Hasta 6 Con Paso 1 Hacer
      			Si min >= ConvertirANumero(matriz[i,j]) Entonces
      				min <- ConvertirANumero(matriz[i,j])
      				fila <- i
      				columna <- j
      			FinSi
      		FinPara
      	FinPara
      	
      	Escribir "El modelo menos vendido ha sido: ", Mayusculas(matriz[fila,1]) Sin Saltar
      	Escribir " AÑO ", columna+2014 , " (", matriz[fila, columna], " UD.)"
      FinFuncion
      
      Funcion porcAutomoviles(matriz)
      	// Los automóviles corresponden a la fila 2 de la matriz
      	Definir i, total, automoviles Como Entero
      	
      	automoviles <- 0
      	total <- 0
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Para j<-2 Hasta 6 Con Paso 1 Hacer
      			total <- total + ConvertirANumero(matriz[i,j])
      			Si i==2 Entonces
      				automoviles <- automoviles + ConvertirANumero(matriz[i,j])
      			FinSi
      		FinPara
      	FinPara
      	
      	Escribir "Total de vehículos vendidos = ", total
      	Escribir "Automóviles vendidos = ", automoviles, ", ", (automoviles*100)/total, "% del total"
      FinFuncion
      
      Funcion promedio2016(matriz)
      	// Los modelos del 2016 están guardados en la columna 2 de la matriz
      	Definir i, total, mod2016 Como Entero
      	
      	mod2016<- 0
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		mod2016 <- mod2016 + ConvertirANumero(matriz[i,2])
      	FinPara
      	
      	Escribir "Promedio de modelos del 2016 = ", mod2016/4
      FinFuncion

      Y el segundo ejercicio:

      Algoritmo ejCaidaLibre
      	Definir i Como Entero
      	Dimension cuerpos[10,2]
      	Definir cuerpos Como Numero
      	
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		Escribir "CUERPO Nº ", i, ":"
      		Escribir "----------------------------"
      		Escribir "Peso: " Sin Saltar
      		Leer cuerpos[i,1]
      		Escribir "Tiempo (s): " Sin Saltar
      		Leer cuerpos[i,2]
      	FinPara
      	
      	calculos(cuerpos)
      FinAlgoritmo
      
      Funcion calculos(matriz)
      	Definir i, j, rapidos  Como Entero
      	Definir minT, maxP, minP, sumaTiempo Como Numero
      	
      	sumaTiempo <- 0
      	minT <- matriz[1,2]
      	maxP <- matriz[1,1]
      	minP <- matriz[1,1]
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		Si minT >= matriz[i,2] Entonces
      			minT <- matriz[i,2]
      		FinSi
      		sumaTiempo <- sumaTiempo + matriz[i,2]
      		Si maxP <= matriz[i,1] Entonces
      			maxP <- matriz[i,1]
      		FinSi
      		Si minP>=matriz[i,1] Entonces
      			minP <- matriz[i,1]
      		FinSi
      	FinPara
      	
      	Escribir "El cuerpo más rápido ha tardado ", minT, " segundos"
      	rapidos <- 0
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		Si maxT==matriz[i,2] Entonces
      			rapidos <- rapidos + 1
      		FinSi
      	FinPara
      	Si rapidos>1 Entonces
      		Escribir "Han sido ", rapidos, " cuerpos más rápidos"
      	FinSi
      	Escribir "El tiempo promedio ha sido ", sumaTiempo/10
      	Escribir "El cuerpo más pesado pesa ", maxP
      	Escribir "El cuerpo más liviano pesa ", minP
      FinFuncion

      Saludos

  • Gabriela dice:

    ALGORITMO: Traductor
    DESCRIPCIÓN: Elabore un traductor simple de ingles a español utilizando dos arreglos de tipo cadena como 20 palabras como mínimo.
    Me podrías ayudar por favor

    • terepebernal dice:

      ¡Hola Gabriela! Saludos

      Algoritmo sin_titulo
      	Dimension english[20]
      	Dimension spanish[20]
      	Definir english, spanish, palabra Como Cadena
      	Definir i Como Entero
      	Definir letraSalir Como Caracter
      	
      	english[1] <- "smile"
      	english[2] <- "house"
      	english[3] <- "horse"
      	english[4] <- "thanks"
      	english[5] <- "win"
      	english[6] <- "please"
      	english[7] <- "glass"
      	english[8] <- "apple"
      	english[9] <- "pink"
      	english[10] <- "green"
      	english[11] <- "blue"
      	english[12] <- "window"
      	english[13] <- "door"
      	english[14] <- "table"
      	english[15] <- "face"
      	english[16] <- "car"
      	english[17] <- "dog"
      	english[18] <- "cat"
      	english[19] <- "chair"
      	english[20] <- "kiss"
      	
      	spanish[1] <- "sonrisa"
      	spanish[2] <- "casa"
      	spanish[3] <- "caballo"
      	spanish[4] <- "gracias"
      	spanish[5] <- "ganar"
      	spanish[6] <- "por favor"
      	spanish[7] <- "vaso"
      	spanish[8] <- "manzana"
      	spanish[9] <- "rosa"
      	spanish[10] <- "verde"
      	spanish[11] <- "azul"
      	spanish[12] <- "ventana"
      	spanish[13] <- "puerta"
      	spanish[14] <- "mesa"
      	spanish[15] <- "cara"
      	spanish[16] <- "coche"
      	spanish[17] <- "perro"
      	spanish[18] <- "gato"
      	spanish[19] <- "silla"
      	spanish[20] <- "beso"
      	
      	Repetir
      		Escribir ""
      		Escribir "Palabra en inglés: " Sin Saltar
      		Leer palabra
      		Para i<-1 Hasta 20 Con Paso 1 Hacer
      			Si Minusculas(palabra)==Minusculas(english[i]) Entonces
      				Escribir "Significado: " Minusculas(spanish[i])
      				i<-20
      			SiNo
      				Si i==20 Entonces
      					Escribir "No se encuentra"
      				FinSi
      			FinSi
      		FinPara
      		Escribir "Pulsar la tecla (S) para salir...." Sin Saltar
      		Leer letraSalir
      	Hasta Que Mayusculas(letraSalir)=='S'
      	
      FinAlgoritmo
  • María dice:

    Holaa me puedes ayudar con este problema
    Por favor 🙏la verdad no le entiendo ,es una práctica que ya debo de entregar ayúdame 🙁

    Dada la ecuación general de segundo grado: Ax2+ Bxy + Cy2+ Dx + Ey + F = 0
    Se denomina discriminante al binomio: Δ = B2 – 4AC
    Se sabe que:
    Si Δ >0, la gráfica Será una hipérbola.
    Si Δ=0: si los coeficientes A y C son iguales a cero, la gráfica es una recta, sino, será una Parábola.
    Si Δ <0: si los coeficientes A y C son iguales, la gráfica será una circunferencia, sino, será una elipse.

    Desarrollar un programa que realice lo siguiente:
    Solicite al usuario el ingreso de los coeficientes de la ecuación general de segundo grado, y los lea.
    Escriba un mensaje indicando el tipo de gráfica que tendrá la ecuación.

    • terepebernal dice:

      ¡Hola María! Saludos

      Algoritmo ejDiscriminante
      	Definir A, B, C, Det Como Entero
      	
      	Escribir "A: " Sin Saltar
      	Leer A
      	Escribir "B: " Sin Saltar
      	Leer B
      	Escribir "C: " Sin Saltar
      	Leer C
      	
      	Det <- (B^2)-(4*A*C)
      
      	Escribir "Determinante = ", Det
      	Escribir "La gráfica de la ecuación será " Sin Saltar
      	Si Det>0 Entonces
      		Escribir "una hipérbola"
      	FinSi
      	Si Det==0 Entonces
      		Si A==0 Y C==0 Entonces
      			Escribir "una recta"
      		SiNo
      			Escribir "una parábola"
      		FinSi
      	FinSi
      	Si Det<0 Entonces
      		Si A==C Entonces
      			Escribir "una circunferencia"
      		SiNo
      			Escribir "una elipse"
      		FinSi
      	FinSi
      FinAlgoritmo
  • Nelson dice:

    resolver ejercicios en pseint
    1) x=8+2*5/2-1
    2) x=(4*8(4+(8*4/(3))))
    3)x=4+5*(9*(5-(8+4)/6))
    Gracias

    • terepebernal dice:

      ¡Hola Nelson! Saludos

      Algoritmo ejemploAritmetica
      	Definir x Como Numero
      	
      	x <- 8+2*5/2-1
      	Escribir "1) x = ", x
      	x <- (4*8*(4+(8*4/(3))))
      	Escribir "2) x = ", x
      	x <- 4+5*(9*(5-(8+4)/6))
      	Escribir "3) x = ", x
      	
      FinAlgoritmo
  • Jose Carlos dice:

    Hola! me ayudas a resolver este problema?

    Elaborar un algoritmo en pseint que muestre un menu con 3 opciones, Opción 1, que convierta
    numero binarios a octal y viceversa. Opci ́on 2 que convierta números en Octal a hexadecimal
    y viceversa, Opción 3 que convierta números de binario a hexadecimal y viceversa.

    • terepebernal dice:

      ¡Hola Jose Carlos! Creo que funciona, pero no descarto que se me haya escapado algo. Es largo, así que igual hay código que se podría reducir. Espero que al menos te sirva de guía. Saludos

      Algoritmo menuCambiarBase
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	Repetir
      		Escribir "            	 MENU"
      		Escribir "------------------------------------------"
      		Escribir "(1) De binario a octal y vicecersa"
      		Escribir "(2) De octal a hexadecimal y viceversa"
      		Escribir "(3) De binario a hexadecimal y viceversa"
      		Escribir "(4) Salir"
      		Escribir "Elija una opción...." Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				opcion1
      			2:
      				opcion2
      			3:
      				opcion3
      			4:
      				salir <- Verdadero
      			
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion opcion1
      	Definir opc Como Entero
      	Definir volver Como Logico
      	Definir num Como Cadena
      	
      	volver <- Falso
      	Mientras !volver
      		Escribir "         CONVERTIR" 
      		Escribir "------------------------------"
      		Escribir "(1) De binario a octal" 
      		Escribir "(2) De octal a binario" 
      		Escribir "(3) Volver al menú anterior"
      		Escribir "Eligir opción (1 al 3)...." Sin Saltar
      		Leer opc
      		Borrar Pantalla
      		
      		Segun opc Hacer
      			1: 
      				Escribir "NÚMERO EN BINARIO: " Sin Saltar
      				Leer num
      				Si esBinario(num) Entonces
      					Escribir "Es ", deBinarioAOctal(num), " en octal"
      				SiNo
      					Escribir "No es un número binario"
      				FinSi
      				teclayBorrar
      			2:
      				Escribir "NÚMERO EN OCTAL: " Sin Saltar
      				Leer num
      				Si esOctal(num) Entonces
      					num <- quitarCeros(num)
      					Escribir "Es ", deOctalABinario(num), " en binario"
      				SiNo
      					Escribir "No es un número octal"
      				FinSi
      				teclayBorrar
      			3:
      				Borrar Pantalla
      				volver<-Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      				teclayBorrar
      		FinSegun
      	
      	FinMientras
      FinFuncion
      
      Funcion opcion2
      	Definir opc Como Entero
      	Definir volver Como Logico
      	Definir num Como Cadena
      	
      	volver <- Falso
      	Mientras !volver
      		Escribir "         CONVERTIR" 
      		Escribir "------------------------------"
      		Escribir "(1) De octal a hexadecimal" 
      		Escribir "(2) De hexadecimal a octal" 
      		Escribir "(3) Volver al menú anterior"
      		Escribir "Eligir opción (1 al 3)...." Sin Saltar
      		Leer opc
      		Borrar Pantalla
      		
      		Segun opc Hacer
      			1: 
      				Escribir "NÚMERO EN OCTAL: " Sin Saltar
      				Leer num
      				Si esOctal(num) Entonces
      					num <- quitarCeros(num)
      					Escribir "Es ", deOctalAHexadecimal(num), " en hexadecimal"
      				SiNo
      					Escribir "No es un número octal"
      				FinSi
      				teclayBorrar
      			2:
      				Escribir "NÚMERO EN HEXADECIMAL: " Sin Saltar
      				Leer num
      				Si esHexadecimal(num) Entonces
      					num <- quitarCeros(num)
      					Escribir "Es ", deHexadecimalAOctal(num) " en octal"
      				SiNo
      					Escribir "No es un número hexadecimal"
      				FinSi
      				teclayBorrar
      			3:
      				Borrar Pantalla
      				volver<-Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      				teclayBorrar
      		FinSegun
      	FinMientras
      FinFuncion
      
      Funcion opcion3
      	Definir opc Como Entero
      	Definir volver Como Logico
      	
      	volver <- Falso
      	Mientras !volver
      		Escribir "         CONVERTIR" 
      		Escribir "------------------------------"
      		Escribir "(1) De binario a hexadecimal" 
      		Escribir "(2) De hexadecimal a binario" 
      		Escribir "(3) Volver al menú anterior"
      		Escribir "Eligir opción (1 al 3)...." Sin Saltar
      		Leer opc
      		Borrar Pantalla
      		
      		Segun opc Hacer
      			1: 
      				Escribir "NÚMERO EN BINARIO: " Sin Saltar
      				Leer num
      				Si esBinario(num) Entonces
      					Escribir "Es ", deBinarioAHexadecimal(num), " en hexadecimal"
      				SiNo
      					Escribir "No es un número binario"
      				FinSi
      				teclayBorrar
      			2:
      				Escribir "NÚMERO EN HEXADECIMAL: " Sin Saltar
      				Leer num
      				Si esHexadecimal(num) Entonces
      					num <- quitarCeros(num)
      					Escribir "Es ", deHexadecimalABinario(num) " en binario"
      				SiNo
      					Escribir "No es un número hexadecimal"
      				FinSi
      				teclayBorrar
      			3:
      				Borrar Pantalla
      				volver<-Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      			teclayBorrar
      		FinSegun
      	FinMientras
      FinFuncion
      
      Funcion teclayBorrar
      	Escribir "Pulse una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion OK <- esBinario(cad)
      	Definir OK Como Logico
      	Definir i Como Entero
      	
      	OK <- Falso
      	// Comprobar que la cadena recibida está compuesta solo de ceros y unos
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		Si Subcadena(cad,i,i)=='1' O Subcadena(cad,i,i)=='0' Entonces
      			OK <- Verdadero
      		SiNo
      			// Si encuentra un caracter que no es un 1 o un 0 sale del bucle
      			OK <- Falso
      			i <- Longitud(cad)
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion OK <- esOctal(cad)
      	Definir OK Como Logico
      	Definir i Como Entero
      	Definir C Como Caracter
      	
      	valoresOctal <- "01234567"
      	
      	OK <- Falso
      	// Comprobar que la cadena recibida está compuesta solo por dígitos del 0 al 7
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		C <- Subcadena(cad,i,i)
      		Para j<-1 Hasta 8 Con Paso 1 Hacer
      			Si C==Subcadena(valoresOctal,j,j) Entonces
      				OK <- Verdadero
      				j<-8	// Si encuentra el número, sale del bucle
      			SiNo
      				// Si cad tiene un dígito que no forma parte de la base octal
      				// sale del bucle y devuelve falso
      				Si (j==8) Entonces
      					OK <- Falso
      					i<-Longitud(cad)
      				FinSi
      			FinSi
      		FinPara
      	FinPara
      FinFuncion
      
      Funcion OK <- esHexadecimal(cad)
      	Definir OK Como Logico
      	Definir i Como Entero
      	Definir C Como Caracter
      	
      	valoresOctal <- "0123456789ABCDEF"
      	
      	OK <- Falso
      	// Comprobar que la cadena recibida está compuesta solo por dígitos del 0 al F
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		C <- Subcadena(cad,i,i)
      		Para j<-1 Hasta 16 Con Paso 1 Hacer
      			Si Mayusculas(C)==Subcadena(valoresOctal,j,j) Entonces
      				OK <- Verdadero
      				j<-16	// Si encuentra el número, sale del bucle
      			SiNo
      				// Si cad tiene un dígito que no forma parte de la base hexadecimal
      				// sale del bucle y devuelve falso
      				Si (j==16) Entonces
      					OK <- Falso
      					i<-Longitud(cad)
      				FinSi
      			FinSi
      		FinPara
      	FinPara
      FinFuncion
      
      Funcion nOctal <- deBinarioAOctal(cad)
      	Dimension tablaBinarios[8]
      	Definir cad2, nOctal, nBin, faltan0, tablaBinarios Como Cadena
      	Definir i, j Como Entero
      	
      	tablaBinarios[1] <- "000"	
      	tablaBinarios[2] <- "001"	
      	tablaBinarios[3] <- "010"	
      	tablaBinarios[4] <- "011"
      	tablaBinarios[5] <- "100"
      	tablaBinarios[6] <- "101"
      	tablaBinarios[7] <- "110"
      	tablaBinarios[8] <- "111"
      
      	i<-Longitud(cad) 
      	faltan0 <- ""
      	// Si al hacer grupos de 3  el número binario, 
      	// se queda el primer grupo con menos de 3 números,
      	// añadimos 1 o 2 ceros, para completarlo
      	Si !(i%3==0) Entonces
      		Para j<-1 Hasta (3-(i%3)) Con Paso 1
      			faltan0 <- faltan0 + '0'
      		FinPara
      	FinSi
      	cad <- faltan0+cad
      	
      	nOctal <- ""
      	i<-Longitud(cad) 
      	Repetir
      		// Vamos mirando en número binario de derecha a izquierda, en grupos de 3,
      		// buscando el número correspondiente en octal a cada grupo, y guardándolo
      		// en cad2. Se guarda al revés, hay que cambiar el orden después
      		nBin <- Subcadena(cad,i-2,i)
      		Para j<-1 Hasta 8 Con Paso 1 Hacer
      			Si nBin==tablaBinarios[j] Entonces
      				cad2 <- cad2 + ConvertirATexto(j-1)
      			FinSi
      		FinPara
      		i<-i-3
      	Hasta Que (i<=0)
      	
      	// Cambiamos el orden para obtener el número correcto
      	Para i<-Longitud(cad2) Hasta 1 Con Paso -1
      		nOctal <- nOctal + Subcadena(cad2,i,i)
      	FinPara
      	
      	// Quitamos los ceros a la izquierda del número octal
      	nOctal <- quitarCeros(nOctal)
      FinFuncion
      
      Funcion nBin <- deOctalABinario(cad)
      	Dimension tablaBinarios[8]
      	Definir  nBin, nOctal, faltan0, tablaBinarios Como Cadena
      	Definir i, j Como Entero
      	Definir C Como Caracter
      	
      	tablaBinarios[1] <- "000"	
      	tablaBinarios[2] <- "001"	
      	tablaBinarios[3] <- "010"	
      	tablaBinarios[4] <- "011"
      	tablaBinarios[5] <- "100"
      	tablaBinarios[6] <- "101"
      	tablaBinarios[7] <- "110"
      	tablaBinarios[8] <- "111"
      
      	cad2 <- ""
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		C<-Subcadena(cad,i,i)
      		nBin <- nBin + tablaBinarios[ConvertirANumero(C)+1]
      	FinPara
      FinFuncion
      
      Funcion nBin <- deHexadecimalABinario(cad)
      	Dimension tablaBinarios[16]
      	Definir  nBin, nHexa, faltan0, tablaBinarios, C Como Cadena
      	Definir i, j Como Entero
      	
      	tablaBinarios[1] <- "0000"	
      	tablaBinarios[2] <- "0001"	
      	tablaBinarios[3] <- "0010"	
      	tablaBinarios[4] <- "0011"
      	tablaBinarios[5] <- "0100"
      	tablaBinarios[6] <- "0101"
      	tablaBinarios[7] <- "0110"
      	tablaBinarios[8] <- "0111"
      	tablaBinarios[9] <- "1000"
      	tablaBinarios[10] <- "1001"
      	tablaBinarios[11] <- "1010"
      	tablaBinarios[12] <- "1011"
      	tablaBinarios[13] <- "1100"
      	tablaBinarios[14] <- "1101"
      	tablaBinarios[15] <- "1110"
      	tablaBinarios[16] <- "1111"
      
      	cad2 <- ""
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		j<-ConvertirANumero(numHexa(Subcadena(cad,i,i)))
      		
      			nBin <- nBin + tablaBinarios[j+1]
      	FinPara
      FinFuncion
      
      Funcion nHex <- deOctalAHexadecimal(cad)
      	Dimension tablaBinarios[16]
      	Definir  cad2, nHex, nBin, nOctal, faltan0, tablaBinarios Como Cadena
      	Definir i, j Como Entero
      	Definir C Como Caracter
      	
      	tablaBinarios[1] <- "0000"	
      	tablaBinarios[2] <- "0001"	
      	tablaBinarios[3] <- "0010"	
      	tablaBinarios[4] <- "0011"
      	tablaBinarios[5] <- "0100"
      	tablaBinarios[6] <- "0101"
      	tablaBinarios[7] <- "0110"
      	tablaBinarios[8] <- "0111"
      	tablaBinarios[9] <- "1000"
      	tablaBinarios[10] <- "1001"
      	tablaBinarios[11] <- "1010"
      	tablaBinarios[12] <- "1011"
      	tablaBinarios[13] <- "1100"
      	tablaBinarios[14] <- "1101"
      	tablaBinarios[15] <- "1110"
      	tablaBinarios[16] <- "1111"
      	
      	cad <- deOctalABinario(cad)
      	i<-Longitud(cad) 
      	faltan0 <- ""
      	// Si al hacer grupos de 4 el número binario, 
      	// se queda el primer grupo con menos de 4 números,
      	// añadimos de 1 a 3 ceros, para completarlo
      	Si !(i%4==0) Entonces
      		Para j<-1 Hasta (4-(i%4)) Con Paso 1
      			faltan0 <- faltan0 + '0'
      		FinPara
      	FinSi
      	cad <- faltan0+cad
      	nHex <- ""
      	i<-Longitud(cad) 
      	Repetir
      		// Vamos mirando en número binario de derecha a izquierda, en grupos de 4,
      		// buscando el número correspondiente en hexadecimal a cada grupo, y guardándolo
      		// en cad2. Se guarda al revés, hay que cambiar el orden después
      		nBin <- Subcadena(cad,i-3,i)
      		Para j<-1 Hasta 16 Con Paso 1 Hacer
      			Si nBin==tablaBinarios[j] Entonces
      				Si (j-1) >= 10 Entonces
      					cad2 <- cad2 + letraHexa(ConvertirATexto(j-1))
      				SiNo
      					cad2 <- cad2 + ConvertirATexto(j-1)
      				FinSi
      				j<-16	// Después de encontrar el número sale del bucle
      			FinSi
      		FinPara
      		i<-i-4
      	Hasta Que (i<=0)
      	
      	// Cambiamos el orden para obtener el número correcto
      	Para i<-Longitud(cad2) Hasta 1 Con Paso -1
      		nHex <- nHex + Subcadena(cad2,i,i)
      	FinPara
      	
      	// Quitamos los ceros a la izquierda del número octal
      	nHex <- quitarCeros(nHex)
      	
      FinFuncion
      
      Funcion nOctal <- deHexadecimalAOctal(cad)
      	Dimension tablaBinarios[16]
      	Definir  cad2, nHex, nBin, nOctal, faltan0, tablaBinarios Como Cadena
      	Definir i, j Como Entero
      	Definir C Como Caracter
      	
      	tablaBinarios[1] <- "0000"	
      	tablaBinarios[2] <- "0001"	
      	tablaBinarios[3] <- "0010"	
      	tablaBinarios[4] <- "0011"
      	tablaBinarios[5] <- "0100"
      	tablaBinarios[6] <- "0101"
      	tablaBinarios[7] <- "0110"
      	tablaBinarios[8] <- "0111"
      	tablaBinarios[9] <- "1000"
      	tablaBinarios[10] <- "1001"
      	tablaBinarios[11] <- "1010"
      	tablaBinarios[12] <- "1011"
      	tablaBinarios[13] <- "1100"
      	tablaBinarios[14] <- "1101"
      	tablaBinarios[15] <- "1110"
      	tablaBinarios[16] <- "1111"
      	
      	cad <- deHexadecimalABinario(cad)
      	nOctal <- deBinarioAOctal(cad)
      	// Quitamos los ceros a la izquierda del número octal
      	nOctal <- quitarCeros(nOctal)
      FinFuncion
      
      Funcion nHexa <- deBinarioAHexadecimal(cad)
      	Dimension tablaBinarios[16]
      	Definir cad2, nHexa, nBin, faltan0, tablaBinarios Como Cadena
      	Definir i, j Como Entero
      	
      	tablaBinarios[1] <- "0000"	
      	tablaBinarios[2] <- "0001"	
      	tablaBinarios[3] <- "0010"	
      	tablaBinarios[4] <- "0011"
      	tablaBinarios[5] <- "0100"
      	tablaBinarios[6] <- "0101"
      	tablaBinarios[7] <- "0110"
      	tablaBinarios[8] <- "0111"
      	tablaBinarios[9] <- "1000"
      	tablaBinarios[10] <- "1001"
      	tablaBinarios[11] <- "1010"
      	tablaBinarios[12] <- "1011"
      	tablaBinarios[13] <- "1100"
      	tablaBinarios[14] <- "1101"
      	tablaBinarios[15] <- "1110"
      	tablaBinarios[16] <- "1111"
      	
      	i<-Longitud(cad) 
      	faltan0 <- ""
      	// Si al hacer grupos de 4 el número binario, 
      	// se queda el primer grupo con menos de 3 números,
      	// añadimos 1 a 3 ceros, para completarlo
      	Si !(i%4==0) Entonces
      		Para j<-1 Hasta (4-(i%4)) Con Paso 1
      			faltan0 <- faltan0 + '0'
      		FinPara
      	FinSi
      	cad <- faltan0+cad
      	
      	nHexa <- ""
      	i<-Longitud(cad) 
      	Repetir
      		// Vamos mirando en número binario de derecha a izquierda, en grupos de 4,
      		// buscando el número correspondiente en hexadecimal a cada grupo, y guardándolo
      		// en cad2. Se guarda al revés, hay que cambiar el orden después
      		nBin <- Subcadena(cad,i-3,i)
      		Para j<-1 Hasta 16 Con Paso 1 Hacer
      			Si nBin==tablaBinarios[j] Entonces
      				Si (j-1) >= 10 Entonces
      					cad2 <- cad2 + letraHexa(ConvertirATexto(j-1))
      				SiNo
      					cad2 <- cad2 + ConvertirATexto(j-1)
      				FinSi
      				j<-16	// Después de encontrar el número sale del bucle
      			FinSi
      		FinPara
      		i<-i-4
      	Hasta Que (i<=0)
      	
      	// Cambiamos el orden para obtener el número correcto
      	Para i<-Longitud(cad2) Hasta 1 Con Paso -1
      		nHexa <- nHexa + Subcadena(cad2,i,i)
      	FinPara
      	
      	// Quitamos los ceros a la izquierda del número octal
      	nHexa <- quitarCeros(nHexa)
      FinFuncion
      
      Funcion n <- letraHexa(cad)
      	Definir n Como Caracter
      	
      	Segun ConvertirANumero(cad) Hacer
      		10:
      			n<-'A'
      		11:
      			n<-'B'
      		12:
      			n<-'C'
      		13:
      			n<-'D'
      		14:
      			n<-'E'
      		15:
      			n<-'F'
      	FinSegun
      FinFuncion
      
      Funcion n <- numHexa(C)
      	// Recibe el dígito hexadecimal y devuelve
      	// el índice-1 de la tablaBinarios
      	Definir n, digitos Como Cadena
      	
      	Si Mayusculas(C)=='A' Entonces
      		n <- '10'
      	SiNo
      		Si Mayusculas(C)=='B' Entonces
      			n <- '11'
      		SiNo
      			Si Mayusculas(C)=='C' Entonces
      				n <- '12'
      			SiNo
      				Si Mayusculas(C)=='D' Entonces
      					n <- '13'
      				SiNo
      					Si Mayusculas(C)=='E' Entonces
      						n <- '14'
      					SiNo
      						Si Mayusculas(C)=='F' Entonces
      							n <- '15'
      						SiNo
      							digitos <- "0123456789"
      							Para i<-1 Hasta 10 Con Paso 1 Hacer
      								Si C==Subcadena(digitos,i,i) Entonces
      									n <- C
      									i<-10
      								FinSi
      							FinPara
      						FinSi
      					FinSi
      				FinSi
      			FinSi
      		FinSi
      	FinSi
      FinFuncion
      
      Funcion cad <- quitarCeros(cad)
      	// Quita ceros a la izquierda de números en octal, hexadecimal o decimal
      	Definir i Como Entero
      	Definir n Como Cadena
      	
      	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
      		Si Subcadena(cad,1,1)=='0' Y Longitud(cad)>1 Entonces
      			cad <- Subcadena(cad,2,Longitud(cad))
      		FinSi
      	FinPara
      FinFuncion
  • keys dice:

    hola, necesito ayuda con estos pseudocodigos, porfa
    1. Evaluar el valor de verdad de la siguiente expresión si a=10, b=12 y c=20:
    (𝑎 = 𝑐)
    SOLUCIÓN
    Reemplazamos los valores:
    (10 = 20)
    Separamos las dos expresiones de los paréntesis:
    • 10 = 20 es falso
    Aplicamos el operador lógico “O”, recuerda que este operador se puede reemplazar por la barra horizontal (|)
    p q p v q
    V V V
    V F V
    F V V
    F F F
    Tenemos el caso verdadero o falso y el resultado sería: V O F = V. Por lo tanto, el resultado es verdadero

    2. Evaluar el valor de verdad de la siguiente expresión:
    (21 MOD 4) = 8
    SOLUCIÓN
    Resolvemos la operación del paréntesis, 21 al ser dividido entre 4 nos da como residuo 1. Luego comparamos
    ese valor con el que está al lado del operador de igualdad que es 8.
    • 1 = 8 es falso
    3. Evaluar el valor de verdad de la siguiente expresión:
    (15 MOD 7) > (45/9)

    • terepebernal dice:

      ¡Hola Keys! El pseudocódigo de cada uno de estos ejercicios hechos con PSeInt, podrían ser los siguientes:
      Para el primer ejercicio:

      Algoritmo ejemploExpresion1
      	Definir a, b, c Como Entero
      	Definir resultado Como Logico
      	
      	a<-10
      	b<-12
      	c<-20
      	
      	resultado <- a==c
      	Si (resultado==Verdadero) Entonces
      		Escribir "El resultado es V"
      	SiNo
      		Escribir "El resultado es F"
      	FinSi
      FinAlgoritmo

      Para el segundo ejercicio:

      Algoritmo ejemploExpresion2
      	Definir resultado Como Logico
      	
      	resultado <- (21 MOD 4) = 8
      	Si (resultado==Verdadero) Entonces
      		Escribir "El resultado es V"
      	SiNo
      		Escribir "El resultado es F"
      	FinSi
      FinAlgoritmo

      Y para el tercer ejercicio:

      Algoritmo ejemploExpresion3
      	Definir resultado Como Logico
      	
      	resultado <- (15 MOD 7) > (45/9)
      	Si (resultado==Verdadero) Entonces
      		Escribir "El resultado es V"
      	SiNo
      		Escribir "El resultado es F"
      	FinSi
      FinAlgoritmo
  • Gonz dice:

    Un módulo capaz de operar tablas de verdad con las siguientes consideraciones:
    1. Capaz de resolver una tabla de verdad de 2 proposiciones.
    2. Las dos proposiciones pueden ser variables a elección ejemplo: pvq, pvr, xvy.
    3. Puede soportar proposiciones negadas ejemplo: -p v -q.
    4. Utilizando conceptos de matrices bidimensionales.
    5.Todos los operadores lógicos:
    i. Negación
    ii. Conjunción
    iii. Disyunción
    iv. Condicional
    v. Bi Condicional
    vi. Disyunción exclusiva

  • maribel dice:

    me puede ayudar
    realizar el pseudocodigo de un restaurante
    tiene un menu de 4 opciones (desayuno,comida,cena,colacion) ,al ingresar a alguna opcion que envie otras tres (menu 1, menu 2, menu 3) y el costo total de la comida el programa debe terminar hasta que se dese salir

    • terepebernal dice:

      ¡Hola Maribel! No sé si hace exactamente lo que quieres. Saludos

      Algoritmo restaurante
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	Repetir
      		Escribir "    MENU"
      		Escribir "-------------"
      		Escribir "(1) Desayuno"
      		Escribir "(2) Comida"
      		Escribir "(3) Cena"
      		Escribir "(4) Colación"
      		Escribir "(5) Salir"
      		Escribir "Opción (1 al 5)....." Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				mostrarSubmenu(1,"DESAYUNO")
      			2:
      				mostrarSubmenu(2,"COMIDA")
      			3:
      				mostrarSubmenu(3,"CENA")
      			4:
      				mostrarSubmenu(4,"COLACIÓN")
      			5:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir ""
      				Escribir "Opción incorrecta. Pulse una tecla para continuar"
      				Esperar Tecla
      				Borrar Pantalla
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion mostrarSubmenu(opc,cad)
      	Definir opcSubmenu Como Entero
      	
      	Escribir "  ", cad
      	Escribir "----------------"
      	Escribir "(1) Menú 1"
      	Escribir "(2) Menú 2"
      	Escribir "(3) Menú 3"
      	Escribir "Opción (1 al 3)....." Sin Saltar
      	Leer opcSubmenu
      	Borrar Pantalla
      	
      	Segun opcSubmenu Hacer
      		1:
      			menu(opc,1)
      		2:
      			menu(opc,2)
      		3:
      			menu(opc,3)
      		De Otro Modo:
      			Escribir ""
      			Escribir "Opción incorrecta.Inténtelo de nuevo"
      	FinSegun
      	
      	Escribir ""
      	Escribir "Pulse una tecla para continuar..."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion menu(comida,n)
      	Segun comida Hacer
      		1:
      			// Desayuno
      			Escribir "DESAYUNO: "
      			Si n==1 Entonces
      				Escribir "Menú nº 1 - $5"
      			FinSi
      			Si n==2 Entonces
      				Escribir "Menú nº 2 - $10"
      			FinSi
      			Si n==3 Entonces
      				Escribir "Menú nº 3 - $15"
      			FinSi
      		2:
      			// Comida
      			Escribir "COMIDA: "
      			Si n==1 Entonces
      				Escribir "Menú nº 1 - $20"
      			FinSi
      			Si n==2 Entonces
      				Escribir "Menú nº 2 - $25"
      			FinSi
      			Si n==3 Entonces
      				Escribir "Menú nº 3 - $30"
      			FinSi
      		3:
      			// Cena
      			Escribir "CENA: "
      			Si n==1 Entonces
      				Escribir "Menú nº 1 - $25"
      			FinSi
      			Si n==2 Entonces
      				Escribir "Menú nº 2 - $40"
      			FinSi
      			Si n==3 Entonces
      				Escribir "Menú nº 3 - $52"
      			FinSi
      		4:
      			// Colación
      			Escribir "COLACIÓN: "
      			Si n==1 Entonces
      				Escribir "Menú nº 1 - $10"
      			FinSi
      			Si n==2 Entonces
      				Escribir "Menú nº 2 - $20"
      			FinSi
      			Si n==3 Entonces
      				Escribir "Menú nº 3 - $30"
      			FinSi
      	FinSegun
      FinFuncion
  • Lorena dice:

    Generar un número aleatorio entre 1 y 20. El algoritmo deberá mostrar el número generado y además mostrar su equivalente en formato de texto
    Por ejemplo, si el número generado fue 17, deberá mostrar:
    Número Generado = 17
    Formato Texto = Diecisiete

    • terepebernal dice:

      ¡Hola Lorena! Saludos

      Algoritmo ejNumeroTexto
      	Definir num, i Como Entero
      	Dimension t[20]
      	Definir t Como Cadena
      	
      	t[1] <- "Uno"
      	t[2] <- "Dos"
      	t[3] <- "Tres"
      	t[4] <- "Cuatro"
      	t[5] <- "Cinco"
      	t[6] <- "Seis"
      	t[7] <- "Siete"
      	t[8] <- "Ocho"
      	t[9] <- "Nueve"
      	t[10] <- "Diez"
      	t[11] <- "Once"
      	t[12] <- "Doce"
      	t[13] <- "Trece"
      	t[14] <- "Catorce"
      	t[15] <- "Quince"
      	t[16] <- "Dieciseis"
      	t[17] <- "Diecisiete"
      	t[18] <- "Dieciocho"
      	t[19] <- "Diecinueve"
      	t[20] <- "Veinte"
      	
      	num <- Aleatorio(1, 20)
      	Escribir "Número Generado = ", num
      	
      	Para i<-1 Hasta 20 Con Paso 1 Hacer
      		Si i==num Entonces 
      			// Al llegar al índice igual al número, se muestra el texto
      			Escribir "Formato Texto = ", t[i]
      			i<-20  // Se iguala 20 para terminar el bucle
      		FinSi
      	FinPara
      FinAlgoritmo
  • edith flores dice:

    realiza un algoritmo (diagrama de flujo o pseudocódigo) para resolver sucesiones aritméticas y geométricas. El primer paso será preguntar el tipo de sucesión a resolver y dependiendo de ello, irá solicitando al usuario los valores que consideres necesarios
    me podira ayudar es para mañana

    • terepebernal dice:

      ¡Hola Edith! Con el pseudocódigo puedes obtener el diagrama de flujo en PSeInt. Saludos

      Algoritmo ejemploSucesiones
      	Definir tipoSucesion Como Caracter
      	Definir a1, f, d, r Como Numero
      	
      	Escribir "¿SUCESIÓN ARITMÉTICA O GEOMÉTRICA (A/G)?...." Sin Saltar
      	Leer tipoSucesion
      	
      	Si Mayusculas(tipoSucesion)=='A' Entonces
      		Escribir "Primer término: " Sin Saltar
      		Leer a1
      		Escribir "¿Cuántos términos quieres hallar?: " Sin Saltar
      		Leer f
      		Escribir "Diferencia: " Sin Saltar
      		Leer d
      		sAritmetica(a1,f,d)
      	FinSi
      	Si Mayusculas(tipoSucesion)=='G' Entonces
      		Escribir "Primer término: " Sin Saltar
      		Leer a1
      		Escribir "¿Cuántos términos quieres hallar?: " Sin Saltar
      		Leer f
      		Escribir "Razón " Sin Saltar
      		Leer r
      		sGeometrica(a1,f,r)
      	FinSi
      FinAlgoritmo
      
      Funcion sAritmetica(termino1,final, diferencia)
      	Definir i Como Entero
      	Definir terminoN Como Numero
      	
      	Para i<-1 Hasta (final) Con Paso 1 Hacer
      		// Fórmula sucesión aritmética 
      		terminoN <- termino1 + ((i-1)*diferencia)
      		Escribir terminoN, "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
      
      Funcion sGeometrica(termino1,final,razon)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta final Con Paso 1 Hacer
      		// Fórmula sucesión geométrica 
      		terminoN <- termino1 * (razon^(i-1))
      		Escribir terminoN, "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
  • Estefania Cid Cruz dice:

    buenas tardes me podría ayudar al pseudocódigo y programa para capturar un dato numérico, de acuerdo a las reglas de negocios:
    ►► Solicite al usuario un número que se guarde en la variable N.
    ►► Como salida mostrar en pantalla se debe mostrar la siguiente ejecución.
    1
    1 2
    1 2 3
    1 2 3 4
    ……………..
    1 2 3 4 N
    ►► Adjuntar código fuente y pantallas que muestren la corrida del programa

    • terepebernal dice:

      ¡Hola Estefanía! Saludos

      Algoritmo mostrarPantalla
      	Definir i, N Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer N
      	
      	i<-1	// filas
      	Mientras (i<=N) Hacer
      		j<-1	// columnas (en cada fila se inicializa a 1)
      		Repetir
      			Escribir j, " " Sin Saltar
      			j<-j+1
      		Mientras Que (j<=i)
      		Escribir ""	// termina la fila, salto de línea
      		i<-i+1
      	FinMientras
      	
      	Escribir ""
      FinAlgoritmo


  • help dice:

    : Calcular el total a pagar por la compra de “N” monitores. Los precios dependerán de la marca y el
    modelo. Asumir que se compra sólo de una marca y un modelo. Si la cantidad en unidades es mayor a 10,
    entonces tendrá un descuento de 10% sobre el total de la venta……………………………………………………
    Marca Modelo Precio
    A 1 S/. 750
    2 S/. 700
    3 S/. 650
    B 1 S/. 600
    2 S/. 550

    • terepebernal dice:
      Algoritmo compraMonitores
      	Definir modelo, unidades Como Entero
      	Definir total Como Numero
      	
      	Escribir "¿CUÁNTOS MONITORES VA A COMPRAR?: " Sin Saltar
      	Leer unidades
      		Escribir ""
      		Escribir "(1) MODELO A-1"
      		Escribir "(2) MODELO A-2"
      		Escribir "(3) MODELO A-3"
      		Escribir "(4) MODELO B-1"
      		Escribir "(5) MODELO B-2"
      		Escribir "Elija su monitor: " Sin Saltar
      		Leer modelo
      		
      		Segun modelo Hacer
      			1:
      				total <- unidades * 750
      			2:
      				total <- unidades * 700
      			3:
      				total <- unidades * 650
      			4:
      				total <- unidades * 600
      			5:
      				total <- unidades * 550
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      		Si unidades>10 Entonces
      			total <- total-(total*10)/100
      		FinSi
      		Escribir ""
      		Escribir "IMPORTE TOTAL = ", total
      FinAlgoritmo
  • David Vásquez dice:

    Hola necesito ayuda con lo siguiente…..

    La empresa Pintulac SA necesita llevar un registro del despacho de la cantidad de alcohol 70° y del producto de desinfección ecológico BIOX y su stock que tiene en bodega, la gerencia ha solicitado el registro de ventas por día, por semana y por mes.

    1) El sistema deberá solicitar el ingreso del total de bodega por producto y el total de ventas por mes.

    2) Se debe ingresar los datos considerando el tipo de producto (alcohol 70° y BIOX), y el costo por valor unitario por galón por producto. (Si es alcohol 70° el valor es de 13$ y por BIOX en 16$).

    3) El sistema debe validar que los datos ingresados sean correctos, por ejemplo: No se podrá vender productos que no se dispongan de stock.

    4) Se debe avisar al administrador que se disponen menos del 10% del total del producto.

    5) Y mostrar en pantalla el reporte (recuerde que hay necesidad de conocer el total de ventas, por: día, semana y mes).

    6) Para salir del programa el administrador de Pintulac debe digitar la palabra “SALIR”

  • Deni dice:

    HOLAA, me podría ayudar con este problema
    1.-Realiza el pseudocódigo que muestre al usuario en forma de menú los tips para el cuidado del medio ambiente en casa y solo debe de salir de ejecución hasta que se le indique.
    La información que debe contener el menú es la siguiente:

    TIPS PARA EL CUIDADO DEL MEDIO AMBIENTE
    -Cocina
    -Baño
    -Patio
    -Residuos

    En cada una de las opciones deberá contener información sobre los tips que puede realizar para cuidar el medio ambiente desde casa.
    También me gustaría que le agregara algún tipo de operación matemática.
    Y una duda, hay alguna manera de que estos tips se puedan traducir a ingles.

    • terepebernal dice:

      ¡Hola Deni! Podría ser algo así, metiendo el texto correspondiente. Lo de la operación matemática no lo he entendido muy bien, en los comentarios tienes muchos ejemplos de operaciones matemáticas.

      Algoritmo menuTipsMA
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	Repetir
      		Escribir "TIPS CUIDADO M. AMBIENTE"
      		Escribir "------------------------"
      		Escribir "(1) COCINA"
      		Escribir "(2) BAÑO"
      		Escribir "(3) PATIO"
      		Escribir "(4) RESIDUOS"
      		Escribir "(5) SALIR"
      		Escribir "Elija una opción (1 al 5)..." Sin Saltar
      		Leer opcMenu
      		
      		Segun opcMenu Hacer
      			1:
      				cocina
      			2:
      				aseo
      			3:
      				patio
      			4:
      				residuos
      			5:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir ""
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      				Escribir "Pulsa una tecla para continuar...."
      				Esperar Tecla
      				Borrar Pantalla
      		FinSegun
      	Hasta Que salir 
      FinAlgoritmo
      
      Funcion cocina
      	Definir traducir Como Caracter
      	Borrar Pantalla
      	Escribir "1.- Texto del consejo 1 de cocina"
      	Escribir "2.- Texto del consejo 2 de cocina"
      	Escribir "3.- Texto del consejo 3 de cocina"
      	Escribir "........"
      	Escribir "N.- Texto del consejo N de cocina"
      	Escribir ""
      	Escribir "¿Traducir al inglés (S/N)?....." Sin Saltar
      	Leer traducir
      	Si Mayusculas(traducir)=='S' Entonces
      		Escribir ""
      		Escribir "Traducción de los tips en inglés"
      	FinSi
      	Escribir ""
      	Escribir "Pulsar una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion aseo
      	Definir traducir Como Caracter
      	Borrar Pantalla
      	Escribir "1.- Texto del consejo 1 de baño"
      	Escribir "........"
      	Escribir "N.- Texto del consejo N de baño"
      	Escribir ""
      	Escribir "¿Traducir al inglés (S/N)?....." Sin Saltar
      	Leer traducir
      	Si Mayusculas(traducir)=='S' Entonces
      		Escribir ""
      		Escribir "Traducción de los tips en inglés"
      	FinSi
      	Escribir ""
      	Escribir "Pulsar una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion patio
      	Definir traducir Como Caracter
      	Borrar Pantalla
      	Escribir "1.- Texto del consejo 1 de patio"
      	Escribir "........"
      	Escribir "N.- Texto del consejo N de patio"
      	Escribir ""
      	Escribir "¿Traducir al inglés (S/N)?....." Sin Saltar
      	Leer traducir
      	Si Mayusculas(traducir)=='S' Entonces
      		Escribir ""
      		Escribir "Traducción de los tips en inglés"
      	FinSi
      	Escribir ""
      	Escribir "Pulsar una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion residuos
      	Definir traducir Como Caracter
      	Borrar Pantalla
      	Escribir "1.- Texto del consejo 1 de residuos"
      	Escribir "........"
      	Escribir "N.- Texto del consejo N de residuos"
      	Escribir ""
      	Escribir "¿Traducir al inglés (S/N)?....." Sin Saltar
      	Leer traducir
      	Si Mayusculas(traducir)=='S' Entonces
      		Escribir ""
      		Escribir "Traducción de los tips en inglés"
      	FinSi
      	Escribir ""
      	Escribir "Pulsar una tecla para continuar...."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
  • Francisco Lopéz Hernández dice:

    Buenas Teresa, quería saber si me ayudas a desarrollar un pseudocodigo, se me dificulta la verdad entender, se me pide que realizar un proyecto de un hospital que va asi:
    -Menú con 4 opciones (Consulta Gral., ginecólogia , Oftalmológica y exámenes urinarios
    -Al ingresar a alguna opción que envíe otras 3 opciones (Tipo Enferm1, Tipo Enferm2, etc.)
    -Costo de consulta

    • terepebernal dice:

      ¡Hola Francisco! Saludos

      Algoritmo menuHospital
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	Repetir
      		// Se repetirá el menú mientras no se pulse la opción (5)
      		Escribir "       MENU"
      		Escribir "------------------"
      		Escribir "(1) Consulta Gral."
      		Escribir "(2) Ginecología"
      		Escribir "(3) Oftalmología"
      		Escribir "(4) Exámenes urinarios"
      		Escribir "(5) Salir"
      		Escribir "Elija una opción (1 - 5)..." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				
      				Escribir "CONSULTA GENERAL"
      				teclaBorrar
      			2:
      				// Accede a un submenú
      				subMenu("GINECOLOGÍA")
      			3:
      				// Accede a un submenú
      				subMenu("OFTAMOLOGÍA")
      			4:
      				Escribir "EXÁMENES URINARIOS"
      				teclaBorrar
      			5:
      				// Al poner salir a Verdaero se sale del bucle
      				salir <- Verdadero  
      			De Otro Modo:
      				Escribir "No es una opción correcta. Inténtalo de nuevo"
      		FinSegun
      	Hasta Que (salir) 
      	
      FinAlgoritmo
      
      Funcion subMenu(cad)
      	Definir opcSubmenu Como Entero
      	Escribir "   " + cad
      	Escribir "---------------------"
      	Escribir "(1) Tipo Enferm1"
      	Escribir "(2) Tipo Enferm2"
      	Escribir "(3) Tipo Enferm3"
      	Escribir "(4) Costo consulta"
      	Escribir "Elija una opción (1 - 4)..." Sin Saltar
      	Leer opcSubmenu
      	Escribir ""
      	
      	Segun opcSubMenu Hacer
      		1:
      			Escribir cad," Tipo Enferm1"
      			teclaBorrar
      		2:
      			Escribir cad, " Tipo Enferm2"
      			teclaBorrar
      		3:
      			Escribir cad, " Tipo Enferm3"
      			teclaBorrar
      		4:
      			Escribir cad, " Costo consulta"
      			teclaBorrar
      		De Otro Modo:
      			Escribir "Opción incorrecta."
      	FinSegun
      FinFuncion
      
      Funcion teclaBorrar
      	Definir t Como Caracter
      	
      	Escribir "Pulsa una tecla para continuar...." Sin Saltar
      	Leer t
      	Borrar Pantalla
      FinFuncion
  • bryan dice:

    hola, disculpa m puedes ayudar en un algoritmo, gracias

    La empresa Pintulac SA necesita llevar un registro del despacho de la cantidad de alcohol 70° y del producto de desinfección ecológico BIOX que han realizado a través de su página web y su stock que tiene en bodega, la gerencia ha solicitado el registro de ventas por día, por semana y por mes.

    1) El sistema deberá solicitar el ingreso del total de bodega por producto y el total de ventas por mes.

    2) Se debe ingresar los datos considerando el tipo de producto (alcohol 70° y BIOX), y el costo por valor unitario por galón por producto. (Si es alcohol 70° el valor es de 13$ y por BIOX en 16$).

    3) El sistema debe validar que los datos ingresados sean correctos, por ejemplo: No se podrá vender productos que no se dispongan de stock.

    4) Se debe avisar al administrador que se disponen menos del 10% del total del producto.

    5) Y mostrar en pantalla el reporte (recuerde que hay necesidad de conocer el total de ventas, por: día, semana y mes).

    6) Para salir del programa el administrador de Pintulac debe digitar la palabra “SALIR”

    • terepebernal dice:

      ¡Hola Bryan! No se si es esto exactamente lo que quieres, espero que al menos te sirva de guía. Saludos

      Algoritmo ejemploVentas4
      	// Guarda unidades del producto en almacén
      	Definir almAlcohol, almBiox Como Entero 
      	// Guarda unidades del producto vendidas en un mes
      	Definir vAlcohol, vBiox Como Entero 
      	// Guarda unidades que quedan después de la venta
      	Definir sAlcohol, sBiox Como Entero
      	
      	Definir salir Como Cadena
      	
      	salir <- ""
      	Repetir
      		Escribir "Cantidad de Alcohol 70 en almacén: " Sin Saltar
      		Leer almAlcohol
      		Escribir "Unidades de Alcohol 70 vendido por mes: " Sin Saltar
      		Leer vAlcohol
      		Si vAlcohol>almAlcohol Entonces
      			Escribir ""
      			Escribir "No se dispone de stock (", almAlcohol,")"
      		SiNo
      			Escribir ""
      			Escribir "Total ventas Alcohol 70 mes = ", vAlcohol*13, "$"
      			Escribir "Total ventas Alcohol 70 semana = ", (vAlcohol*13)/4, "$"
      			Escribir "Total ventas Alcohol 70 día = ", (vAlcohol*13)/30, "$"
      			sAlcohol <- almAlcohol-vAlcohol
      			Si sAlcohol<(almAlcohol*10)/100 Entonces
      				Escribir ""
      				Escribir "Stock menor del 10%, quedan ", sAlcohol, " unidades"
      			FinSi
      			Escribir ""
      			Escribir "Cantidad de BIOX en almacén: " Sin Saltar
      			Leer almBiox
      			Escribir "Unidades de BIOX vendido mes: " Sin Saltar
      			Leer vBiox
      			Si vBiox>almBiox Entonces
      				Escribir ""
      				Escribir "No se dispone de stock (", almBiox,")"
      			SiNo
      				Escribir ""
      				Escribir "Total ventas BIOX = ", vBiox*16,"$"
      				Escribir "Total ventas BIOX semana = ", (vBiox*16)/4, "$"
      				Escribir "Total ventas BIOX día = ", (vBiox*16)/30, "$"
      				sBiox <- almBiox-vBiox
      				Si sBiox<(almBiox*10)/100 Entonces
      					Escribir ""
      					Escribir "Stock menor del 10%, quedan ", sAlcohol, " unidades"
      				FinSi
      			FinSi
      		FinSi
      		
      		Escribir ""
      		Escribir "Para salir del programa escriba la palabra SALIR...." Sin Saltar
      		Leer salir
      		Si Mayusculas(salir)<>"SALIR" Entonces
      			Borrar Pantalla
      		FinSi
      		
      	Hasta Que Mayusculas(salir)=="SALIR" 
      FinAlgoritmo
  • Alan dice:

    Buen dia me podrias ayudar en este programa crear un arreglo de números que muestre los números y símbolos de la matriz.
    Es decir necesito hacer la pantalla de una calculadora.

    • terepebernal dice:

      ¡Hola Alan! No sé exactamente que es lo quieres hacer, pero en el siguiente algoritmo te muestro como utilizar los índices de una matriz para pedir los datos por teclado de 5 operaciones matemáticas e ir guardando dichos datos en la matriz y después mostrarlos por pantalla. Espero que al menos te sirva de guía. Un saludo

      Algoritmo pantallaCalculadora
      	// Matriz para guardar 4 operaciones con dos operandos
      	Dimension pantCalculadora[5,5]
      	Definir pantCalculadora Como Cadena
      	// Índices para movernos por la matriz
      	// i, para las filas y j, para las columnas
      	Definir i, j Como Entero
      	
      	// Pide los datos para 5 operaciones y 
      	// guarda los datos de las operaciones en la matriz
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir "OPERACIÓN Nº ",i, ": "
      		Escribir "--------------------------------"
      		Escribir "Operando 1: " Sin Saltar
      		Leer pantCalculadora[i,1]
      		Escribir "Operador (+, -, *, /, ^)" Sin Saltar
      		Leer pantCalculadora[i,2]
      		Escribir "Operando 2: " Sin Saltar
      		Leer pantCalculadora[i,3]
      		pantCalculadora[i,4] <- "="
      		pantCalculadora[i,5] <- ConvertirATexto(operacion(pantCalculadora[i,1], pantCalculadora[i,2],pantCalculadora[i,3]))
      		Escribir ""
      	FinPara
      	
      	// Muestra los datos guardados anteriormente
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir  pantCalculadora[i,1], " ",  pantCalculadora[i,2], " ",  pantCalculadora[i,3], " ",  pantCalculadora[i,4], " ",  pantCalculadora[i,5]
      	FinPara
      FinAlgoritmo
      
      Funcion resultado <- operacion(op1, op, op2)
      	Definir resultado Como Numero
      	
      	Si op=='+' Entonces
      		resultado <- ConvertirANumero(op1)+ConvertirANumero(op2)
      	FinSi
      	Si op=='-' Entonces
      		resultado <- ConvertirANumero(op1)-ConvertirANumero(op2)
      	FinSi
      	Si op=='*' Entonces
      		resultado <- ConvertirANumero(op1)*ConvertirANumero(op2)
      	FinSi
      	Si op=='/' Entonces
      		resultado <- ConvertirANumero(op1)/ConvertirANumero(op2)
      	FinSi
      	Si op=='^' Entonces
      		resultado <- ConvertirANumero(op1)^ConvertirANumero(op2)
      	FinSi
      FinFuncion
  • josselyn dice:

    hola que tal, me podrias ayudar con un ejercicio algo complejo. y es:

    La empresa Pintulac SA necesita llevar un registro del despacho de la cantidad de alcohol 70° y del producto de desinfección ecológico BIOX que han realizado a través de su página web y su stock que tiene en bodega, la gerencia ha solicitado el registro de ventas por día, por semana y por mes.

    1) El sistema deberá solicitar el ingreso del total de bodega por producto y el total de ventas por mes.

    2) Se debe ingresar los datos considerando el tipo de producto (alcohol 70° y BIOX), y el costo por valor unitario por galón por producto. (Si es alcohol 70° el valor es de 13$ y por BIOX en 16$).

    3) El sistema debe validar que los datos ingresados sean correctos, por ejemplo: No se podrá vender productos que no se dispongan de stock.

    4) Se debe avisar al administrador que se disponen menos del 10% del total del producto.

    5) Y mostrar en pantalla el reporte (recuerde que hay necesidad de conocer el total de ventas, por: día, semana y mes).

    6) Para salir del programa el administrador de Pintulac debe digitar la palabra “SALIR”

    Gracias.

  • KingDark dice:

    Buen día, espero se encuentre, sera posible me puedan ayudar con este ejercicio, en lo que puedan. Les agradezco

    La secretaria de salud de su ciudad está interesada en conocer los hábitos saludables de diferentes grupos de personas, para esto ha decidido hacer una encuesta a 100 personas. Usted ha sido seleccionado para elaborar un algoritmo que facilite esta labor.
    A cada persona se le debe preguntar la edad para clasificarla dentro de un grupo de rangos de edad así:
    Numero de grupo Descripción Edades
    1 Adolescente 11 a 15 años
    2 Joven 16 a 24 años
    3 Adulto Joven 25 a 30 años
    4 Adulto Mayores de 31 hasta los 59 años
    5 Adulto Mayor Mayores o iguales a 60

    Para clasificar a la persona dentro del grupo de edades, se debe realizar con una función en la cual se reciba como parámetro la edad y el retorno sea el número de grupo. Si la edad es menor de 11 años debe mostrar un mensaje al usuario que indique que la encuesta es para mayores de 11 años.
    Las preguntas para realizar en la encuesta son:
    1. Maneja bien el estrés (SI O NO)
    2. Come al menos 2 porciones de fruta o ensalada al día (SI O NO)
    3. Bebe de 4 a 8 vasos de agua al día (SI O NO)
    4. Duerme regularmente 8 horas diarias (SI O NO)
    5. Practica algún deporte todas las semanas (SI O NO)
    Usted debe, mediante el uso de funciones, condicionales y/o ciclos mostrar:
    1. Por cada grupo de edad los resultados (por ejemplo, de los adolescentes x dijeron que SI manejan el estrés y Z dijeron que NO manejan el estrés).
    2. Mostrar cuál es el grupo de edad donde las personas están más estresadas
    3. Mostrar el grupo de edad en la cual las personas practican más deporte
    4. Mostrar el grupo de edad donde las personas beben menos de 4 a 8 vasos de agua al día.
    5. Mostrar el grupo de edad donde las personas comen menos de 2 porciones de fruta o ensalada.
    6. Mostrar el promedio de edad de todos los encuestados.
    7. Mostrar la edad mínima y la edad máxima de los encuestados.

  • Rayson dice:

    Hola buenos días necesito ayuda de cómo puedo crear este algoritmo.
    El observatorio meteorológico necesita obtener información relacionada con la variación de temperaturas en distintos momentos del día.
    Se pide generar la siguiente Salida impresa:
    -La temperatura promedio del día.
    Para ello usted dispone de las siguientes Entradas:
    -Temperatura1 (T1): representa la temperatura tomada en horas de la mañana.
    -Temperatura2 (T2): representa la temperatura tomada en horas de la tarde.
    -Temperatura3 (T3): representa la temperatura tomada en horas de la noche.

    • terepebernal dice:

      ¡Hola Rayson! Saludos

      Algoritmo promedioTemperatura
      	Definir T1, T2, T3, promTemp Como Numero
      	
      	// Se pide por teclado al usuario las tres temperaturas
      	Escribir "Temperatura horas de la mañana: " Sin Saltar
      	Leer T1
      	Escribir "Temperatura horas de la tarde: " Sin Saltar
      	Leer T2
      	Escribir "Temperatura horas de la noche: " Sin Saltar
      	Leer T3
      	
      	// Se halla el promedio de las temperaturas y se muestra por pantalla
      	promTemp <- (T1+T2+T3)/3
      	Escribir "Temperatura promedio del día = ", promTemp
      FinAlgoritmo
      • ANONIMO dice:

        quiero saber como llegar a menu otra vez y realizar otra operacion si me responde muchas gracias

        • terepebernal dice:

          Hola, en este caso no hay ningún menú, imagino que te refieres a que vuelva a repetir el algoritmo mientras quieras hacerlo. Ello se consigue encerrando las instrucciones en un bucle y poner una condición que permita repetir el bucle o pararlo si se desea. Te muestro aquí el mismo algoritmo pero encerrado en un bucle REPETIR y cuya condición para que se repita es que la tecla que se pulsa no sea «S». Saludos

          Algoritmo promedioTemperatura1
          	Definir T1, T2, T3, promTemp Como Numero
          	Definir salir Como Caracter
          	
          	salir <- 'N'
          	Repetir
          		// Se pide por teclado al usuario las tres temperaturas
          		Escribir "Temperatura horas de la mañana: " Sin Saltar
          		Leer T1
          		Escribir "Temperatura horas de la tarde: " Sin Saltar
          		Leer T2
          		Escribir "Temperatura horas de la noche: " Sin Saltar
          		Leer T3
          		
          		// Se halla el promedio de las temperaturas y se muestra por pantalla
          		promTemp <- (T1+T2+T3)/3
          		Escribir "Temperatura promedio del día = ", promTemp
          		
          		Escribir ""
          		Escribir "Pulsa la tecla (S) para salir o cualquier otra para reiniciar" Sin Saltar
          		Leer salir
          		Si !(Mayusculas(salir)=='S') Entonces
          			Borrar pantalla
          		FinSi
          	Hasta Que Mayusculas(salir)=='S'
          FinAlgoritmo
  • John Montero dice:

    Buen día Teresa, un cordial saludo de la manera más atenta te solicito ayuda con este algoritmo ya que no he podido solucionarlo, gracias por tu ayuda.

    PACIENTES POR TRIAGE EN HORARIO NOCTURNO

    En una entidad de salud, se requiere que se atiendan los n pacientes que llegan en el transcurso de la noche, de acuerdo al triage que reporte el médico asignado a la valoración, para ello se maneja la siguiente tabla de clasificación:

    Nivel de urgencia Tipo de urgencia Tiempo de espera
    1 Resucitación Inmediatamente
    2 Emergencia 10 – 15 min
    3 Urgencia 60 min
    4 Urgencia menos 2 horas
    5 Sin urgencia 4 horas

    Para el ingreso a la entidad se debe solicitar los datos personales: nombre completo, edad, EPS y nivel de urgencia (triage), se requiere lo siguiente:
    1. ¿Cuántos pacientes fueron atendidos?
    2. ¿Si hay un sólo médico de turno, cuánto tiempo le tardará atender a todos los pacientes?
    3. ¿Cuál es el nivel de urgencia que se presenta con mayor frecuencia?
    4. Diseñe una función que calcule el promedio de las edades del triage 3.
    5. Organizar en un arreglo los nombres de los pacientes de triage 1 e imprimir el arreglo.

    Mil gracias por tu ayuda y ya me escribí a tu canal de youtube seria bueno que ingresaras más contenido.

    • terepebernal dice:

      ¡Hola John! Gracias por tu suscripción. Quiero meter más contenido en el canal de youtube y también aquí en el blog, pero no me da la vida para hacer todo lo que quiero, poquito a poco. Saludos

      Algoritmo triagePacientes
      	Definir N, pacientes  Como Entero
      	Definir nombre, eps, edad, urgencia Como Cadena
      	Definir tiempo Como Numero
      	Definir salir Como Caracter
      	
      	Escribir "NÚMERO MÁXIMO DE PACIENTES: " Sin Saltar
      	Leer N
      	Dimension triage[N,4]
      	Definir triage Como Cadena
      
      	pacientes<-1
      	Repetir 
      		// Datos para el ingreso
      		Escribir "PACIENTE Nº ", pacientes, " (Rellene los datos)"
      		Escribir "--------------------------------------------------------------"
      		Escribir "NOMBRE COMPLETO: " Sin Saltar
      		Leer nombre
      		Escribir "EDAD: " Sin Saltar
      		Leer edad
      		Escribir "EPS: " Sin Saltar
      		Leer eps
      		Escribir "NIVEL DE URGENCIA (1 - 5): " Sin Saltar
      		Leer urgencia
      		Escribir ""
      		
      		// Guardar datos paciente
      		triage[pacientes,1] <- nombre
      		triage[pacientes,2] <- edad
      		triage[pacientes,3] <- eps
      		triage[pacientes,4] <- urgencia
      		pacientes <- pacientes + 1
      		Si pacientes>N Entonces
      			// Si llega a N se sale
      			Escribir "No se pueden añadir más pacientes"
      			Escribir ""
      			salir <- 'S'
      		SiNo
      			Escribir ""
      			Escribir "Pulse cualquier tecla para seguir. Para salir pulse (S)...." Sin Saltar
      			Leer salir
      			Escribir ""
      		FinSi
      	Mientras Que Mayusculas(salir)<>'S' 
      	
      	Escribir "PACIENTES ATENDIDOS = ", (pacientes-1)
      	Escribir "TIEMPO CON UN SOLO MÉDICO = ", tiempoUnMedico(triage,(pacientes-1)), " min."
      	Escribir "NIVEL URGENCIA MAYOR FRECUENCIA = ", nivelUrgMax(triage,(pacientes-1))
      	Escribir "PROMEDIO DE EDAD DEL TRIAGE 3 = ", promedioTri3(triage,(pacientes-1))
      	mostrarTriage1(triage,(pacientes-1))
      FinAlgoritmo
      
      Funcion t <- tiempoUnMedico(matriz,num)
      	Definir i, t, urg Como Entero
      	
      	// Hallar el tiempo sumando el de cada paciente
      	t<-0
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		urg <- ConvertirANumero(matriz[i,4])
      		Segun urg Hacer
      			1:
      				t <- t + 0
      			2:
      				t <- t + 15
      			3:
      				t <- t + 60
      			4:
      				t <- t + 120
      			5:
      				t <- t + 240
      			De Otro Modo:
      				Escribir "Error. No es un valor de urgencia (1 a 5)"
      		FinSegun
      	FinPara
      FinFuncion
      
      Funcion n <- nivelUrgMax(matriz,num)
      	Dimension niveles[5]
      	Definir i, n, max, niveles, urg Como Entero
      	
      	// Inicializar niveles
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		niveles[i] <- 0
      	FinPara
      	
      	// Sumar cuantos pacientes hay en cada nivel
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		urg <- ConvertirANumero(matriz[i,4])
      		Segun urg Hacer
      			1:
      				niveles[1] <- niveles[1]+1
      			2:
      				niveles[2] <- niveles[2]+1
      			3:
      				niveles[3] <- niveles[3]+1
      			4:
      				niveles[4] <- niveles[4]+1
      			5:
      				niveles[5] <- niveles[5]+1
      			De Otro Modo:
      				Escribir "Error. No es un valor de urgencia (1 a 5)"
      		FinSegun
      	FinPara
      	
      	// El mayor nivel de urgencia terminará guardado en n
      	max <- niveles[1]
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max <= niveles[i] Entonces
      			max <- niveles[i]
      			n <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion promedio <- promedioTri3(matriz,num)
      	Definir i, numP Como Entero
      	Definir suma, promedio Como Numero
      	
      	promedio <- 0
      	suma <- 0
      	numP <- 0
      	
      	// Sumar edades con nivel de urgencia 3
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		Si matriz[i,4] == '3' Entonces
      			suma <- suma + ConvertirANumero(matriz[i,2])
      			numP <- numP + 1
      		FinSi
      	FinPara
      	
      	promedio <- suma/numP
      FinFuncion
      
      Funcion mostrarTriage1(matriz,num)
      	Definir i, j, numP Como Entero
      	
      	// Hallar el número de pacientes con triage 1
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		Si matriz[i,4] == '1' Entonces
      			numP <- numP + 1
      		FinSi
      	FinPara
      	
      	// Guardar los pacientes de triage 1 en un arreglo
      	Dimension triage1[numP]
      	Definir triage1 Como Cadena
      	
      	j <- 1
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		Si matriz[i,4] == '1' Entonces
      			triage1[j] <- matriz[i,1]
      			j <- j+1
      		FinSi
      	FinPara
      	
      	// Mostrar los pacientes de triage 1 por pantalla
      	Escribir ""
      	Escribir "NOMBRES DE LOS PACIENTES NIVEL DE URGENCIA 1"
      	Escribir "--------------------------------------------"
      	Para i<-1 Hasta numP Con Paso 1 Hacer
      		Escribir i, ". ", triage1[i]
      	FinPara
      FinFuncion
      • JOSE FERNANDO RIOS dice:

        Buenas tardes, Tengo una duda: Es posible realizar este arreglo abierto para N cantidad de paciente, es decir que cada vez que yo quiera ingresar un nuevo paciente se vaya ampliando y no condicionarlo a un límite de pacientes. No se si fui claro.

        • terepebernal dice:

          Hola Jose, si no me equivoco en PSeInt no, por eso declaro el arreglo después de preguntar el límite de pacientes, para poder darle una dimensión, sino la aplicación da error. Pero en algunos lenguajes de programación sí que se puede. Yo para evitar el tener que meter todos los datos, le suelo poner una opción para poder salir antes. Un saludo

      • John dice:

        Muchas gracias teresa por tu ayuda bendiciones!!

  • Diego dice:

    Ayudenme por favor con este ejercicio estoy confundido y no logro conseguirlo :'(

    *Que calcule el Impuesto de un producto, si es mayor de 25.000 Bs aplicar un 14%, de lo contrario 12%

  • Alejo dice:

    Buenas podrían ayudarme con este problema? De verdad que no consigo como lograr que funcione.

    1)programar Que calcule el Impuesto de un producto, si es mayor de 25.000 Bs aplicar un 14%, de lo contrario 12%

    • terepebernal dice:

      ¡Hola Alejo! Saludos

      Algoritmo ejemploCondicional3
      	Definir importe, total Como Numero
      	
      	Escribir "IMPORTE DEL PRODUCTO: " Sin Saltar
      	Leer importe
      	
      	Si importe>=25000 Entonces
      		total <- importe+(importe*14)/100
      	SiNo
      		total <- importe+(importe*12)/100
      	FinSi
      	
      	Escribir "IMPORTE TOTAL = ", total
      FinAlgoritmo
  • JESUS LESCANO FRANCIA dice:

    necesito ayuda con este algoritmo, me pide lo siguiente;
    1. inicio
    2. declarar las variables producto, cantidad, precio, descuento, subtotal, total descuento, total, IGV y total a pagar.
    3. ingresar el producto
    4. ingresar la cantidad
    5. ingresar el precio
    6. ingresar el porcentaje de descuento
    7. subtotal=cantidad*precio
    8. total descuento=(subtotal*(descuento/100))
    9. total=subtotal-total descuento
    10. IGV=0.19*total
    11. total a pagar = total – IGV
    12. imprimir el subtotal
    13. imprimir el % de descuento
    14. imprimir el total sin IGV
    15. imprimir el IGV
    16. imprimir el total a pagar
    17. fin

    • terepebernal dice:

      ¡Hola Jesús! Tal y como lo escribes no sé si lo que necesitas es el diagrama de flujo o el pseudocódigo, así que te muestro los dos:

      Algoritmo ejemploPrecios1
      	Definir producto Como Caracter
      	Definir cantidad,precio,dto,subtotal,totalDto,total,igv,totalPagar Como Real
      	Escribir 'PRODUCTO: ' Sin Saltar
      	Leer producto
      	Escribir 'CANTIDAD: ' Sin Saltar
      	Leer cantidad
      	Escribir 'PRECIO: ' Sin Saltar
      	Leer precio
      	Escribir '% DESCUENTO: ' Sin Saltar
      	Leer dto
      	subtotal <- cantidad*precio
      	totalDto <- (subtotal*(dto/100))
      	total <- subtotal-totalDto
      	igv <- 0.19*total
      	totalPagar <- total-igv
      	Escribir ''
      	Escribir 'SUBTOTAL = ',subtotal
      	Escribir '% DESCUENT = ',totalDto
      	Escribir 'TOTAL (SIN IGV) = ',total
      	Escribir 'IGV = ',igv
      	Escribir 'TOTAL A PAGAR = ',totalPagar
      FinAlgoritmo

  • Eduard Andrade dice:

    Buen dia,
    Sera que me puedes ayudar con este algoritmo:

    La secretaria de salud de su ciudad está interesada en conocer los hábitos saludables de diferentes grupos de personas, para esto ha decidido hacer una encuesta a 100 personas. Usted ha sido seleccionado para elaborar un algoritmo que facilite esta labor.

    A cada persona se le debe preguntar la edad para clasificarla dentro de un grupo de rangos de edad así:

    Grupo Descripción Edades
    1 Adolescente 11 a 15 años
    2 Joven 16 a 24 años
    3 Adulto Joven 25 a 30 años
    4 Adulto Mayores de 31 hasta los 59 años
    5 Adulto Mayor Mayores o iguales a 60

    Para clasificar a la persona dentro del grupo de edades, se debe realizar con una función en la cual se reciba como parámetro la edad y el retorno sea el número de grupo. Si la edad es menor de 11 años debe mostrar un mensaje al usuario que indique que la encuesta es para mayores de 11 años.

    Las preguntas para realizar en la encuesta son:
    1. Maneja bien el estrés (SI O NO)
    2. Come al menos 2 porciones de fruta o ensalada al día (SI O NO)
    3. Bebe de 4 a 8 vasos de agua al día (SI O NO)
    4. Duerme regularmente 8 horas diarias (SI O NO)
    5. Practica algún deporte todas las semanas (SI O NO)

    Usted debe, mediante el uso de funciones, condicionales y/o ciclos mostrar:

    1. Por cada grupo de edad los resultados (por ejemplo, de los adolescentes x dijeron que SI manejan el estrés y Z dijeron que NO manejan el estrés).
    2. Mostrar cuál es el grupo de edad donde las personas están más estresadas
    3. Mostrar el grupo de edad en la cual las personas practican más deporte
    4. Mostrar el grupo de edad donde las personas beben menos de 4 a 8 vasos de agua al día.
    5. Mostrar el grupo de edad donde las personas comen menos de 2 porciones de fruta o ensalada.
    6. Mostrar el promedio de edad de todos los encuestados.
    7. Mostrar la edad mínima y la edad máxima de los encuestados.

    • terepebernal dice:

      ¡Hola Eduard! He utilizado tres arreglos para guardar los datos, de los 2 más grandes te dejo una representación en dos imágenes después del algoritmo, para que puedas ver mejor como he guardado los datos.

      Algoritmo encHabitosSaludables
      	// 100 filas para los encuestados y 
      	// 7 columnas para , una para grupo de edad, 5 para respuesta a las preguntas
      	// y la última para guardar la edad
      	Dimension encuestados[100,7]
      	Definir encuestados Como Cadena
      	// 5 Filas para los grupos de edad y
      	// 10 columnas para las sumas de los SI y los NO de cada pregunta
      	Dimension sumaGrupos[5,10]
      	Definir edad, sumaGrupos, i, j Como Entero
      	Definir salir, r Como Caracter
      	
      	// Inicializar a cero la matriz sumas de respuestas
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Para j<-1 Hasta 10 Con Paso 1 Hacer
      			sumaGrupos[i,j] <- 0
      		FinPara
      	FinPara
      	
      	i <- 1
      	Repetir
      		// Se repite este bucle para cada encuestado
      		// pero se da la opción de salir pulsando la tecla (S)
      		Escribir "Encuestado nº ", i, ":"
      		Escribir "-------------------------------------------------"
      		Escribir "¿Edad?....." Sin Saltar
      		Leer edad
      		Escribir ""
      		encuestados[i,7] <- ConvertirATexto(edad)
      		grupo <- grupoEncuesta(edad)
      		Si grupo==0 Entonces
      			Escribir "La encuesta es para mayores de 11 años"
      		SiNo
      			// Se guarda el grupo de edad en la primera columna
      			encuestados[i,1] <- ConvertirATexto(grupo)
      			// Se repetirá cada pregunta hasta que pulse (s) o (n)
      			Mientras !(Mayusculas(r)=='S' O Mayusculas(r)=='N') Hacer
      				Escribir "1.- ¿Maneja bien el estrés? (S/N)" Sin Saltar
      				Leer r
      			FinMientras
      			encuestados[i,2] <- Mayusculas(r)
      			r<-""
      			Si encuestados[i,2]=='S' Entonces
      				// Respuesta S en pregunta 1
      				sumaGrupos[grupo,1] <- sumaGrupos[grupo,1] + 1
      			SiNo
      				// Respuesta N en pregunta 1
      				sumaGrupos[grupo,2] <- sumaGrupos[grupo,2] + 1
      			FinSi
      			Mientras !(Mayusculas(r)=='S' O Mayusculas(r)=='N') Hacer
      				Escribir "2.- ¿Come al menos 2 porciones de fruta o ensalada al día? (S/N)" Sin Saltar
      				Leer r
      			FinMientras
      			encuestados[i,3] <- Mayusculas(r)
      			r<-""
      			Si encuestados[i,3]=='S' Entonces
      				// Respuesta S en pregunta 2
      				sumaGrupos[grupo,3] <- sumaGrupos[grupo,3] + 1
      			SiNo
      				// Respuesta N en pregunta 2
      				sumaGrupos[grupo,4] <- sumaGrupos[grupo,4] + 1
      			FinSi
      			Mientras !(Mayusculas(r)=='S' O Mayusculas(r)=='N') Hacer
      				Escribir "3.- ¿Bebe de 4 a 8 vasos de agua al día? (S/N)" Sin Saltar
      				Leer r
      			FinMientras
      			encuestados[i,4] <- Mayusculas(r)
      			r<-""
      			Si encuestados[i,4]=='S' Entonces
      				// Respuesta S en pregunta 3
      				sumaGrupos[grupo,5] <- sumaGrupos[grupo,5] + 1
      			SiNo
      				// Respuesta N en pregunta 3
      				sumaGrupos[grupo,6] <- sumaGrupos[grupo,6] + 1
      			FinSi
      			Mientras !(Mayusculas(r)=='S' O Mayusculas(r)=='N') Hacer
      				Escribir "4.- ¿Duerme regularmente 8 horas diarias? (S/N)" Sin Saltar
      				Leer r
      			FinMientras
      			encuestados[i,5] <- Mayusculas(r)
      			r<-""
      			Si encuestados[i,5]=='S' Entonces
      				// Respuesta S en pregunta 4
      				sumaGrupos[grupo,7] <- sumaGrupos[grupo,7] + 1
      			SiNo
      				// Respuesta N en pregunta 4
      				sumaGrupos[grupo,8] <- sumaGrupos[grupo,8] + 1
      			FinSi
      			Mientras !(Mayusculas(r)=='S' O Mayusculas(r)=='N') Hacer
      				Escribir "5.- ¿Practica algún deporte todas las semanas? (S/N)" Sin Saltar
      				Leer r
      			FinMientras
      			encuestados[i,6] <- Mayusculas(r)
      			r<-""
      			Si encuestados[i,6]=='S' Entonces
      				// Respuesta S en pregunta 5
      				sumaGrupos[grupo,9] <- sumaGrupos[grupo,9] + 1
      			SiNo
      				// Respuesta N en pregunta 5
      				sumaGrupos[grupo,10] <- sumaGrupos[grupo,10] + 1
      			FinSi
      			i <- i+1
      		FinSi
      		Escribir ""
      		Escribir "Pulsa cualquier tecla para seguir. Para salir la tecla (S)..." Sin Saltar
      		Leer salir
      		Escribir ""
      	Hasta Que (i>=100) O Mayusculas(salir)=='S'
      	
      	// Muestra las salida de los datos pedidos
      	mostrarRespuestas(sumaGrupos)
      	Escribir ""
      	Escribir "El grupo más estresado es el número ", masEstres(sumaGrupos)
      	Escribir "El grupo que practica más deporte es el número ", masDeporte(sumaGrupos)
      	Escribir "El grupo que menos agua bebe es el número ", menosAgua(sumaGrupos)
      	Escribir "El grupo que menos fruta come es el número ", menosFruta(SumaGrupos)
      	Escribir ""
      	Escribir "El promedio de edad de todos los encuestados es ", promedioEdad(encuestados)
      	Escribir "La edad mínima de todos los encuestados es ", encuestados[edadMinima(encuestados),7]
      	Escribir "La edad máxima de todos los encuestados es ", encuestados[edadMaxima(encuestados),7]
      	
      FinAlgoritmo
      
      Funcion grupo <- grupoEncuesta(edad)
      	// Devuelve el grupo de edad
      	Definir grupo Como Entero
      	
      	Si edad<11 Entonces
      		grupo <- 0
      	FinSi
      	Si edad>=11 Y edad<=15 Entonces
      		grupo <- 1
      	FinSi
      	Si edad>=16 Y edad<=24 Entonces
      		grupo <- 2
      	FinSi
      	Si edad>=25 Y edad<=30 Entonces
      		grupo <- 3
      	FinSi
      	Si edad>=31 Y edad<=59 Entonces
      		grupo <- 4
      	FinSi
      	Si edad>=60 Entonces
      		grupo <- 5
      	FinSi
      FinFuncion
      
      Funcion mostrarRespuestas(matriz)
      	Definir i, j Como Entero
      	Dimension preguntas[5,2]
      	Definir preguntas Como Cadena
      	
      	preguntas[1,1] <- "ESTRÉS:"
      	preguntas[1,2] <- "manejan bien el estrés"
      	preguntas[2,1] <- "FRUTA:"
      	preguntas[2,2] <-  "come al menos 2 porciones de fruta o ensalada al día"
      	preguntas[3,1] <- "BEBER AGUA:"
      	preguntas[3,2] <- "bebe de 4 a 8 vasos de agua al día"
      	preguntas[4,1] <- "DORMIR:"
      	preguntas[4,2] <- "duerme regularmente 8 horas diarias"
      	preguntas[5,1] <- "DEPORTE:"
      	preguntas[5,2] <- "practica algún deporte todas las semanas"
      	
      	// Muestra la suma de los SI y NO de los encuestados por cada pregunta y grupo de edad
      	j<-1
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir ""
      		Escribir "PREGUNTA Nº ", i, ": ", preguntas[i,1]
      		Escribir "-------------------------------------------"
      		Escribir "De los adolescentes (11 - 15 años), ", matriz[1,j], " dijeron que SI ", preguntas[i,2], " y ", matriz[1,j+1], " dijeron que NO"
      		Escribir "De los jóvenes (16 - 24 años), ", matriz[2,j], " dijeron que SI ", preguntas[i,2], " y ", matriz[2,j+1], " dijeron que NO"
      		Escribir "De los adultos jóvenes (25 - 30 años), " matriz[3,j], " dijeron que SI ", preguntas[i,2], " y ", matriz[3,j+1], " dijeron que NO"
      		Escribir "De los adultos (31 - 59 años), ",  matriz[4,j], " dijeron que SI ", preguntas[i,2], " y ", matriz[4,j+1], " dijeron que NO"
      		Escribir "De los mayores (>59 años), ",  matriz[5,j], " dijeron que SI ", preguntas[i,2], " y ", matriz[5,j+1], " dijeron que NO"
      		j<-j+2
      	FinPara
      FinFuncion
      
      Funcion grupo <- masEstres(matriz)
      	// Devuelve el grupo que maneja mejor el estrés (valor máximo columna 1)
      	Definir i, grupo, max Como Entero
      	
      	max <- matriz[1,1]
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max<=matriz[i,1] Entonces
      			max <- matriz[i,1]
      			grupo <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion grupo <- masDeporte(matriz)
      	// Devuelve el grupo que hace más deporte (valor máximo columna 9)
      	Definir i, grupo, max Como Entero
      	
      	max <- matriz[1,9]
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max<=matriz[i,9] Entonces
      			max <- matriz[i,9]
      			grupo <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion grupo <- menosAgua(matriz)
      	// Devuelve el grupo que bebe menos agua (valor máximo columna 6)
      	Definir i, grupo, max Como Entero
      	
      	max <- matriz[1,6]
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max<=matriz[i,6] Entonces
      			max <- matriz[i,6]
      			grupo <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion grupo <- menosFruta(matriz)
      	// Devuelve el grupo que come menos fruta (valor máximo columna 4)
      	Definir i, grupo, max Como Entero
      	
      	max <- matriz[1,4]
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max<=matriz[i,4] Entonces
      			max <- matriz[i,4]
      			grupo <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion promedio <- promedioEdad(matriz)
      	// Devuelve el promedio de las edades guardadas en la columna 7 de la matriz
      	Definir promedio, suma Como Numero
      	Definir i, encuestados Como Entero
      	
      	suma <- 0
      	promedio <- 0
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si ConvertirANumero(matriz[i,7])<>0 Entonces
      			suma <- suma + ConvertirANumero(matriz[i,7])
      		SiNo
      			encuestados <- i-1
      			i <- 100
      		FinSi
      	FinPara
      	
      	promedio <- suma/encuestados
      FinFuncion
      
      Funcion fila <- edadMaxima(matriz)
      	// Devuelve la fila de la matriz en la que se encuentra la edad máxima (columna 7)
      	Definir i, fila, max, encuestados Como Entero
      	
      	max <- ConvertirANumero(matriz[1,7])
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si ConvertirANumero(matriz[i,7])<>0 Entonces
      			Si max<=ConvertirANumero(matriz[i,7]) Entonces
      				max <- ConvertirANumero(matriz[i,7])
      				fila <- i
      			FinSi
      		SiNo
      			encuestados <- i-1
      			i <- 100
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion fila <- edadMinima(matriz)
      	// Devuelve la fila de la matriz en la que se encuentra la edad mínima (columna 7)
      	Definir i, fila, min, encuestados Como Entero
      	
      	min <- ConvertirANumero(matriz[1,7])
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si ConvertirANumero(matriz[i,7])<>0 Entonces
      			Si min>=ConvertirANumero(matriz[i,7]) Entonces
      				min <- ConvertirANumero(matriz[i,7])
      				fila <- i
      			FinSi
      		SiNo
      			encuestados <- i-1
      			i <- 100
      		FinSi
      	FinPara
      FinFuncion


  • Blanca Alonso dice:

    Hola Tere!
    Me podrías ayudar a resolver este problema por favor.

    Desarrollar un algoritmo que liquide la nómina de n empleados, partiendo de los siguientes datos: días trabajados, salario básico, así mismo debemos tener en cuenta qué:
    • Asignaremos un auxilio de transporte de (97.032) al trabajador que gane hasta: $1.656.232 (Dos salarios mínimos – 2019).

    • La seguridad social se debe tener en cuenta sobre la base de IBC (ingreso base de cotización)

    • La seguridad social por parte de la empresa se debe calcular sobre el total de la columna del IBC

    • Las prestaciones sociales de la empresa se calcula sobre el total de la columna de total nomina devengada, excepto las vacaciones que se calculan sobre el total de la columna del IBC

    • Todos los empleados aportan el 5%, como ahorro al fondo de empleados del total del IBC de cada uno

    Muchas gracias

    • terepebernal dice:

      ¡Hola Blanca! Siento la tardanza, pero no tenía ni idea sobre estos conceptos. He mirado un poquito por internet, pero la verdad, no sé si es correcto. A ver si al menos te sirve de guía. Saludos

      Algoritmo ejemploNominas
      	Definir i, n Como Entero
      	Definir diasT, salarioDia, salarioB, auxTransporte Como Numero
      	Definir ibc, pension, salud, segsocial, vacaciones, fondo Como Numero
      	Definir devengado, deducido, neto Como Numero
      	
      	Escribir "NÚMERO DE EMPLEADOS: " Sin Saltar
      	Leer n
      	
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		salarioB <- 0
      		Escribir ""
      		Escribir "EMPLEADO Nº ", i, ":"
      		Escribir "-------------------------------"
      		Escribir "Días trabajados: " Sin Saltar
      		Leer diasT
      		Escribir "Salario por día: " Sin Saltar
      		Leer salarioDia
      		
      		salarioB <- 30*salarioDia
      		
      		Si salarioB<=1656232 Entonces
      			auxTransporte <- 97032/30
      			devengado<- diasT*(salarioDia+auxTransporte)
      		SiNo
      			devengado<- diasT*salarioDia
      		FinSi
      		
      		ibc <- devengado*0.7
      		pension <- ibc*0.085
      		salud <- ibc*0.12
      		segsocial <- pension+salud
      		vacaciones <- ibc*0.047
      		fondo <- ibc*0.05
      		deducido <- segsocial+vacaciones+fondo
      		neto <- devengado-deducido
      		
      		Escribir "Devengado = ", devengado
      		Escribir "Seguridad Social = ", segSocial
      		Escribir "Vacaciones = ", vacaciones
      		Escribir "Fondo empleados = ", fondo
      		
      		Escribir "Neto a percibir = ", neto
      	FinPara
      FinAlgoritmo
  • EDUARD DUBIN GOMEZ dice:

    POR FAVOR ME PUEDEN AYUDAR
    EL siguiente algoritmo se debe desarrollar con condicionales simples e implementando funciones
    1. Desarrolle un algoritmo que permita determinar si una persona ya puede ingresar a un juego en el parque de diversiones debe recibir como parámetro la altura y de acuerdo a ello retornar un mensaje indicando si puedo o no ingresar NOTA: la estatura mínima para ingreso es de 150 cm.

    • terepebernal dice:

      ¡Hola Eduard! Saludos

      Algoritmo ejemploCondicional2
      	Definir altura Como Entero
      	
      	Escribir "Altura (cm): " Sin Saltar
      	Leer altura
      	
      	puedeEntrar(altura)
      FinAlgoritmo
      
      Funcion puedeEntrar(n)
      	Si n>=150 Entonces
      		Escribir "Puede entrar"
      	SiNo
      		Escribir "No puede entrar"
      	FinSi
      FinFuncion
  • Laura dice:

    Buenas me podrias ayudar a solucionar este problema?

    Programa que lee dos numeros por teclado y muestra por pantalla la suma de los numeros pares y la suma de los numeros impares comprendidos entres esos dos numeros introducidos, ademas debe mostrar tambien la cantidad de numeros pares y de numeros impares que hay entre esos dos numeros.

    Gracias.

    • terepebernal dice:

      ¡Hola Laura! Saludos

      Algoritmo ejemploEnteros9
      	Definir i, num1, num2, pares, impares, sPares, sImpares Como Entero
      	
      	Escribir "PRIMER NÚMERO ENTERO: " Sin Saltar
      	Leer num1
      	Escribir "SEGUNDO NÚMERO ENTERO: " Sin Saltar
      	Leer num2
      	
      	pares <- 0
      	impares <- 0
      	sPares <- 0
      	sImpares <- 0
      	
      	Si (num1<num2) Entonces
      		Para i<-num1 Hasta num2 Con Paso 1 Hacer
      			Si (i%2==0) Entonces
      				pares <- pares+1
      				sPares <- sPares+i
      			SiNo
      				impares <- impares+1
      				sImpares <- sImpares+i
      			FinSi
      		FinPara
      		Escribir "Del ", num1, " al ", num2, " hay:"
      		Escribir pares, " números pares, que suman ", sPares
      		Escribir impares, " números impares, que suman ", sImpares
      	FinSi
      	
      	Si (num1>num2) Entonces
      		Para i<-num2 Hasta num1 Con Paso -1 Hacer
      			Si (i%2==0) Entonces
      				pares <- pares+1
      				sPares <- sPares+i
      			SiNo
      				impares <- impares+1
      				sImpares <- sImpares+i
      			FinSi
      		FinPara
      		Escribir "Del ", num2, " al ", num1, " hay:"
      		Escribir pares, " números pares, que suman ", sPares
      		Escribir impares, " números impares, que suman ", sImpares
      	FinSi
      	
      	Si (num1==num2) Entonces
      		Escribir num1, " y ", num2, " son iguales"
      	FinSi
      FinAlgoritmo
  • Tomas dice:

    Hola necesito ayuda con esto !!
    diseñar y codificar un algoritmo que obtenga el valor
    primo (menor) más cercano a un valor ingresado por el usuario.

    • terepebernal dice:

      ¡Hola Tomás! Hay que tener en cuenta que un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Luego el primer número primo es el número 2. Para buscar el primo más cercano utilizo un PARA (en descendente desde el número introducido por teclado hasta el 2 si fuese necesario), la función esPrimo y que el primer primo que encuentre sea menor que el número introducido. Saludos

      Algoritmo ejemploPrimos2
      	Definir num Como Entero
      	Escribir 'NÚMERO: ' Sin Saltar
      	Leer num
      	Si (num>2) Entonces
      		Para i<-num Hasta 2 Con Paso -1 Hacer
      			Si esPrimo(i) Y (i<num) Entonces
      				Escribir 'El valor primo (menor) más cercano a ',num,' es ',i
      				i <- 2
      			FinSi
      		FinPara
      	SiNo
      		Si (num==2) Entonces
      			Escribir "2 es el menor primo que existe"
      		SiNo
      			Escribir "El número tiene que ser mayor o igual a 2"
      		FinSi
      	FinSi
      FinAlgoritmo
      
      Funcion OK <- esPrimo(n)
      	Definir i,esDivisible Como Entero
      	Definir OK Como Logico
      	Para i<-1 Hasta n Hacer
      		Si (n MOD i==0) Entonces
      			esDivisible <- esDivisible+1
      		FinSi
      	FinPara
      	Si (esDivisible==2) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
  • Ivan pereira dice:

    solicito de su ayuda con la solución de estos dos problemas en pse int

    1.—- Escribir una función que devuelva si un número dado es primo o no. Para que un número sea primo solo es divisible entre 1 y sí mismo (por ejemplo, 13, 17, 19…) Utilizando la función, escribir un programa que muestre todos los números primos entre 1 y un número leído desde el teclado. Tener en cuenta cuáles valores debe devolver la función.

    2 —- Escribir una función que dado un número decimal (en base 10) entre 0 y 15, devuelva el valor equivalente en sistema de numeración binario (en este caso un número binario de 4 dígitos).
    Por ejemplo, si se introduce el número 7, devuelva 0111. Si se introduce un número menor que 0 o mayor que 16, mostrará un mensaje de error.
    Ayuda: Utilizar la función TRUNC que devuelve el valor entero de un número real. La función MOD ya la conocen.
    Para el resultado pueden mostrar los número binarios uno después de otro, por ejemplo:
    0
    1
    1
    1

    • terepebernal dice:

      ¡Hola Iván! El primer algoritmo:

      Algoritmo ejemploPrimos3
      	Definir num Como Entero
      	Escribir 'NÚMERO: ' Sin Saltar
      	Leer num
      	
      	Si (num>=2) Entonces
      		Escribir "Números primos que hay entre 1 y ", num, ": "
      		Para i<-1 Hasta num Con Paso 1 Hacer
      			Si esPrimo(i) Entonces
      				Escribir i, "  " Sin Saltar
      			FinSi
      		FinPara
      	SiNo
      		Escribir "El número tiene que ser mayor o igual a 2"
      	FinSi
      	Escribir ""
      FinAlgoritmo
      
      Funcion OK <- esPrimo(n)
      	Definir i,esDivisible Como Entero
      	Definir OK Como Logico
      	Para i<-1 Hasta n Hacer
      		Si (n MOD i==0) Entonces
      			esDivisible <- esDivisible+1
      		FinSi
      	FinPara
      	Si (esDivisible==2) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion

      Y el segundo algoritmo:

      Algoritmo deBase10aBase2
      	Definir num Como Entero
      	
      	Escribir "NÚMERO EN BASE 10: " Sin Saltar
      	Leer num
      	Si num>=0 Y num<=15 Entonces
      		Escribir "El número ", num, " en base 2 es igual a -> " Sin Saltar
      		Escribir deB10aB2(num)
      	SiNo
      		Escribir "El valor del número no es correcto (0 a 15)"
      	FinSi
      FinAlgoritmo
      
      Funcion cad2 <- deB10aB2(n)
      	Definir i, cociente, resto Como Entero
      	Definir cad1, cad2 Como Cadena
      	
      	cad1 <- ""
      	cad2 <- ""
      
      	Si (n==1) Entonces
      		cad2 <- "1"
      	FinSi
      	Mientras n>=2 Hacer
      		cociente <- trunc(n/2)
      		resto <- n MOD 2
      		n <- cociente
      		cad1 <- cad1 + ConvertirATexto(resto)
      		Si n<2 Entonces
      			cad1 <- cad1 + ConvertirATexto(cociente)
      		FinSi
      	FinMientras
      	Para i<-4 Hasta 1 Con Paso -1
      		cad2 <- cad2 + Subcadena(cad1,i,i)
      	FinPara
      	
      	Si Longitud(cad2)<4 Entonces
      		Para i<-1 Hasta (4-Longitud(cad2)) Con Paso 1 Hacer
      			cad2 <- "0" + cad2
      		FinPara
      	FinSi
      FinFuncion

      Saludos

  • LILY dice:

    MODULO PARA CONSULTAR LAS TABLAS DE VERDAD BASICA DE DOS PROPOSICIONES
    DISYUNCION
    CONJUNCION
    CONDICIONAL
    BICONDICIONAL
    NEGACION
    DISYUNCION EXCLUSIVA

    Y QUE DETERMINE SI ES TAUTOLOGIA, NEGACION O CONTINGENCIA

    • terepebernal dice:

      ¡Hola Lily! No tengo claro si es esto lo que necesitas. El algoritmo muestra un menú a través del cual se puede consultar cada una de las tablas de la verdad que dice el enunciado. He utilizado un arreglo que guarda datos de tipo lógico, las dos primeras columnas representarían las típicas proposiciones p y q de las tablas de verdad, y después por la tabla de verdad de cada una de las opciones que menciona el enunciado, en el mismo orden. Saludos

      Algoritmo menuTablasVerdad
      	Dimension tablasVerdad[4,12]
      	Definir tablasVerdad, salir Como Logico
      	Definir opcMenu Como Entero
      	
      	// Valores de p
      	tablasVerdad[1,1] <- Verdadero
      	tablasVerdad[2,1] <- Verdadero
      	tablasVerdad[3,1] <- Falso
      	tablasVerdad[4,1] <- Falso
      	// Valores de q
      	tablasVerdad[1,2] <- Verdadero
      	tablasVerdad[2,2] <- Falso
      	tablasVerdad[3,2] <- Verdadero
      	tablasVerdad[4,2] <- Falso	
      	
      	// Hacer tablas de verdad
      	hacerTablas(tablasVerdad)
      	
      	// Mostrar menú que permita consultar las tablas
      	salir <- Falso
      	Repetir
      		Escribir ""
      		escribir "         MENU"
      		Escribir "--------------------------"
      		Escribir "(1) DISYUNCIÓN"
      		Escribir "(2) CONJUNCIÓN"
      		Escribir "(3) CONDICIONAL"
      		Escribir "(4) BICONDICIONAL"
      		Escribir "(5) NEGACIÓN"
      		Escribir "(6) DISYUNCIÓN EXCLUSIVA"
      		Escribir "(7) TAUTOLOGÍA"
      		Escribir "(8) CONTRADICCIÓN"
      		Escribir "(9) CONTINGENCIA"
      		Escribir "(0) SALIR"
      		Escribir "Elija una opción....." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				mostrarDisyuncion(tablasVerdad)
      			2:
      				mostrarConjuncion(tablasVerdad)
      			3:
      				mostrarCondicional(tablasVerdad)
      			4:
      				mostrarBicondicional(tablasVerdad)
      			5:
      				mostrarNegacion(tablasVerdad)
      			6:
      				mostrarDisExclusiva(tablasVerdad)
      			7:
      				mostrarTautologia(tablasVerdad)
      			8:
      				mostrarContradiccion(tablasVerdad)
      			9:
      				mostrarContingencia(tablasVerdad)
      			0:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion hacerTablas(matriz Por Referencia)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		// Disyunción
      		matriz[i,3] <- matriz[i,1] O matriz[i,2] 
      		// Conjunción
      		matriz[i,4] <- matriz[i,1] Y matriz[i,2]
      		// Condicional
      		Si matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,5] <- Verdadero
      		FinSi
      		Si matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,5] <- Falso
      		FinSi
      		Si !matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,5] <- Verdadero
      		FinSi
      		Si !matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,5] <- Verdadero
      		FinSi
      		// Biondicional
      		Si matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,6] <- Verdadero
      		FinSi
      		Si matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,6] <- Falso
      		FinSi
      		Si !matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,6] <- Falso
      		FinSi
      		Si !matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,6] <- Verdadero
      		FinSi
      		// Negación de p
      		Si matriz[i,1] Entonces
      			matriz[i,7] <- Falso
      		FinSi
      		Si !matriz[i,1] Entonces
      			matriz[i,6] <- Verdadero
      		FinSi
      		Si matriz[i,2] Entonces
      			matriz[i,8] <- Falso
      		FinSi
      		// Negación de q
      		Si !matriz[i,2] Entonces
      			matriz[i,8] <- Verdadero
      		FinSi
      		// Disyunción Exclusiva
      		Si matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,9] <- Falso
      		FinSi
      		Si matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,9] <- Verdadero
      		FinSi
      		Si !matriz[i,1] Y matriz[i,2] Entonces
      			matriz[i,9] <- Verdadero
      		FinSi
      		Si !matriz[i,1] Y !matriz[i,2] Entonces
      			matriz[i,9] <- Falso
      		FinSi
      	FinPara
      	// Tautología
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		matriz[i,10] <- Verdadero
      	FinPara
      	// Contradicción
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		matriz[i,11] <- Falso
      	FinPara
      	// Ejemplo de contingencia (No es ni tautología ni contradicción)
      	matriz[1,12] <- Verdadero
      	matriz[2,12] <- Verdadero
      	matriz[3,12] <- Falso
      	matriz[4,12] <- Verdadero
      	
      FinFuncion
      
      Funcion C <- deLogicoATexto(valorLogico)
      	Definir C Como Caracter
      	
      	Si valorLogico Entonces
      		C <- 'V'
      	SiNo
      		C <- 'F'
      	FinSi
      FinFuncion
      
      Funcion mostrarDisyuncion(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q      Disyunción"
      	Escribir "------  ------   ----------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) + "           " + deLogicoATexto(matriz[i,3])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarConjuncion(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q      Conjunción"
      	Escribir "------  ------   ----------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) + "           " + deLogicoATexto(matriz[i,4])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarCondicional(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q      Condicional"
      	Escribir "------  ------   -----------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) + "          " + deLogicoATexto(matriz[i,5])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarBicondicional(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q      Bicondicional"
      	Escribir "------  ------   -------------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) + "            " + deLogicoATexto(matriz[i,6])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarNegacion(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q        !p        !q"
      	Escribir "------  ------   -------   -------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) Sin Saltar
      		Escribir "         " + deLogicoATexto(matriz[i,7]) + "         " + deLogicoATexto(matriz[i,8])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarDisExclusiva(matriz)
      	Definir i Como Entero
      	
      	Escribir "   p      q      D. Exclusiva"
      	Escribir "------  ------   ------------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "   " + deLogicoATexto(matriz[i,1]) + "      " + deLogicoATexto(matriz[i,2]) + "             " + deLogicoATexto(matriz[i,9])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarTautologia(matriz)
      	Definir i Como Entero
      	
      	Escribir "Tautología"
      	Escribir "----------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "    " + deLogicoATexto(matriz[i,10])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarContradiccion(matriz)
      	Definir i Como Entero
      	
      	Escribir " Contradiccion"
      	Escribir "--------------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "       " + deLogicoATexto(matriz[i,11])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion mostrarContingencia(matriz)
      	Definir i Como Entero
      	
      	Escribir " Contingencia (ej)"
      	Escribir "------------------"
      	Para i<-1 Hasta 4 Con Paso 1 Hacer
      		Escribir "       " + deLogicoATexto(matriz[i,12])
      	FinPara
      	teclaBorrar
      FinFuncion
      
      Funcion teclaBorrar
      	Definir t Como Caracter
      	
      	Escribir "Pulsa una tecla para continuar...." Sin Saltar
      	Leer t
      	Borrar Pantalla
      FinFuncion
      • LILY dice:

        EN QUE PARTE DEL PSEUDOCODIGO PUEDO AGREGAR EL BORRAR PANTALLA PARA QUE NO SE MUESTRE TANTAS VECES EL MENU ???????

        • terepebernal dice:

          Hola Lily, he actualizado el algoritmo en el mismo comentario en el que estaba. Le he añadido un Borrar Pantalla después de que se ingrese la opción del menú (Leer opcMenu) y luego en cada función de las opciones a mostrar por pantalla he añadido al final una llamada a la una función
          teclaBorrar para que antes de borrar la pantalla te de la opción de pulsar una tecla, sino no se pararía para poder ver las tablas.

      • Bradley dice:

        ¡Hola! Soy amigo de Lily, necesito que nos ayudes con la misma secuencia de operadores, solo que…
        necesitamos una sección de Operación:
        Debe de ser un módulo que sea capaz de operar las tablas de verdad con las siguientes consideraciones:
        1- Sea capaz de resolver una tabla de verdad de 2 proposiciones.
        2- Que las dos proposiciones puedan ser variables a elección, ejemplo: pvq, pvr, xvy.
        3- Que pueda soportar proposiciones negadas, ejemplo: -p v – q.
        4- Utilizando conceptos de matrices bidimensionales.

        Operadores lógicos:
        Negación
        Conjunción
        Disyunción
        Condicional
        Bi Condicional
        Disyunción exclusiva

        Gracias de antemano.

        • terepebernal dice:

          ¡Hola Bradley! Creo que funciona bien, pero con tanto pseudocódigo no descarto que falle algo. A continuación te pongo el pseudocódigo para añadirle al algoritmo anterior, es solo añadir una opción al menú y después el resto al final del algoritmo, después de la última función.
          Primero, añadir en su lugar la opción del menú OPERACIÓN, tanto el texto a mostrar en el menú, como la opción dentro de la estructura SEGUN:

          		Escribir "(9) CONTINGENCIA"
          		Escribir "(10) OPERACIÓN"
          		Escribir "(0) SALIR"
          			9:
          				mostrarContingencia(tablasVerdad)
          			10:  
          				operaciones
          			0:
          				salir <- Verdadero

          Y el resto del pseudocódigo, se puede añadir al final, a continuación del que ya existe:

          Funcion operaciones
          	Definir p, q, volver Como Logico
          	Definir carP, carQ, valP, valQ Como Caracter
          	Definir opcSubmenu Como Entero
          	
          	Escribir "CARACTERES ADMITIDOS: Solo letras excepto v, f, o, y"
          	Escribir "Letra para la primera preposicion: " Sin Saltar
          	Leer carP
          	carP  <- quitarEspacios(carP)
          	Si nombreOK(carP,op) Entonces
          		Escribir "VALORES ADMITIDOS: V, F, 0, 1"
          		Escribir "Escriba el valor de ", carP, ": "
          		Leer valP
          		Si valorOK(valP, op) Entonces
          			Si op Entonces
          				p <- !deTextoALogico(valP)
          			SiNo
          				p <- deTextoALogico(valP)
          			FinSi
          			Escribir "CARACTERES ADMITIDOS: Solo letras excepto v, f, o, y"
          			Escribir "Letra para la segunda preposicion: " Sin Saltar
          			Leer carQ
          			carQ <- quitarEspacios(carQ)
          			Si nombreOK(carQ, op) Y !(carP==carQ) Entonces
          				Escribir "VALORES ADMITIDOS: V, F, 0, 1"
          				Escribir "Escriba el valor de ", carQ, ": "
          				Leer ValQ
          				Si valorOK(valQ, op) Entonces
          					Si op Entonces
          						q <- !deTextoALogico(valQ)
          					SiNo
          						q <- deTextoALogico(valQ)
          					FinSi
          					
          					volver <- Falso
          					Repetir
          						Escribir "    OPERACIONES"
          						Escribir "(1) !", Minusculas(carP), ", !", Minusculas(carQ)
          						Escribir "(2) ", Minusculas(carP), " Y ", Minusculas(carQ)
          						Escribir "(3) ", Minusculas(carP), " O ", Minusculas(carQ)
          						Escribir "(4) ", Minusculas(carP), " -> ", Minusculas(carQ)
          						Escribir "(5) ", Minusculas(carP), " <--> ", Minusculas(carQ)
          						Escribir "(6) O ", Minusculas(carP), " O ", Minusculas(carQ)
          						Escribir "(7) Volver al menú anterior"
          						Escribir "Elija una operación...(1 - 7): " Sin Saltar
          						Leer opcSubmenu
          						Escribir ""
          						Borrar Pantalla
          						
          						Segun opcSubmenu Hacer
          							1:
          								Escribir "!", Minusculas(carP), " = ", deLogicoATexto(!p)
          								Escribir "!", Minusculas(carQ), " = ", deLogicoATexto(!q)
          							2:
          								Escribir Minusculas(carP), " Y ", Minusculas(carQ), " = " Sin Saltar
          								Escribir deLogicoATexto(p), " Y ",deLogicoATexto(q), " = ", deLogicoATexto(p Y q)
          							3:
          								Escribir Minusculas(carP), " O ", Minusculas(carQ), " = " Sin Saltar
          								Escribir deLogicoATexto(p), " O ",deLogicoATexto(q), " = ", deLogicoATexto(p O q)
          							4:
          								Escribir Minusculas(carP), " -> ", Minusculas(carQ), " = " Sin Saltar
          								Escribir deLogicoATexto(p), " -> ",deLogicoATexto(q), " = ", deLogicoATexto(condicional(p,q))
          							5:
          								Escribir Minusculas(carP), " <--> ", Minusculas(carQ), " = " Sin Saltar
          								Escribir deLogicoATexto(p), " <--> ",deLogicoATexto(q), " = ", deLogicoATexto(bicondicional(p,q))
          							6:
          								Escribir "O ", Minusculas(carP), " O ", Minusculas(carQ), " = " Sin Saltar
          								Escribir "O ", deLogicoATexto(p), " O ",deLogicoATexto(q), " = ", deLogicoATexto(disyuncionExclusiva(p,q))
          							7:
          								volver <- Verdadero
          							De Otro Modo:
          								Escribir "Opción incorrecta. Vuelva a intentarlo"
          								Escribir ""
          						FinSegun
          						teclaBorrar
          					Hasta Que volver
          				SiNo
          					Escribir "Debe introducir valores correctos"
          					teclaBorrar
          				FinSi
          			SiNo
          				Escribir "Debe introducir valores correctos"
          				Si carQ==carP Entonces
          					Escribir "Las variables no pueden tener el mismo nombre"
          				FinSi
          				teclaBorrar
          			FinSi
          		SiNo
          			Escribir "Debe introducir valores correctos"
          			teclaBorrar
          		FinSi
          	SiNo
          		Escribir "Debe introducir valores correctos"
          		teclaBorrar
          	FinSi
          FinFuncion
          
          Funcion OK <- nombreOK(c, op Por Referencia)
          	// Devuelve Verdadero si el valor de c se encuentra en carVariables
          	Definir i Como Entero
          	Definir OK, opuesto Como Logico
          	Definir carVariables Como Cadena
          	
          	// Caracteres que se podrán asignar a las variables
          	carVariables <- "abcdeghijklmnñpqrstxz"
          	
          	OK <- Falso
          	opuesto <- Falso
          	
          	Si Longitud(c)==2 Y Subcadena(c,1,1)=='-' Entonces
          		opuesto <- Verdadero
          		Para i<-1 Hasta Longitud(carVariables) Con Paso 1 Hacer
          			Si Subcadena(Minusculas(c),2,2)==Subcadena(carVariables,i,i) Entonces
          				OK <- Verdadero
          				i<-Longitud(carVariables)
          			FinSi
          		FinPara
          	FinSi
          	Si Longitud(c)==1 Entonces
          		Para i<-1 Hasta Longitud(carVariables) Con Paso 1 Hacer
          			Si Minusculas(c)==Subcadena(carVariables,i,i) Entonces
          				OK <- Verdadero
          				i<-Longitud(carVariables)
          			FinSi
          		FinPara
          	FinSi
          FinFuncion
          
          Funcion OK <- valorOK(v,op Por Referencia)
          	// Devuelve Verdadero si el valor de v es correcto
          	Definir i Como Entero
          	Definir OK Como Logico
          	
          	// Valores admitidos para las variables
          	valVariables <- "vf10"
          	
          	OK <- Falso
          	Para i<-1 Hasta Longitud(valVariables) Con Paso 1 Hacer
          		Si Minusculas(v)==Subcadena(valVariables,i,i) Entonces
          			OK <- Verdadero
          			i<-Longitud(valVariables)
          		FinSi
          	FinPara
          FinFuncion
          
          Funcion variable <- quitarEspacios(cad)
          	// Devuelve cad sin espacios en blanco 
          	Definir variable Como Caracter
          	Definir i Como Entero
          	
          	variable <- ""
          	Para i<-1 Hasta Longitud(cad) Con Paso 1 Hacer
          		Si !Subcadena(cad,i,i)==' ' Entonces
          			variable <- variable + Subcadena(cad,i,i)
          		FinSi
          	FinPara
          	cad <- variable
          	Si Longitud(cad)>2 Entonces
          		// Si tiene mas de dos caracteres, ya sin espacios la deja en 2
          		variable <- ""
          		Para i<-1 Hasta 2 Con Paso 1 Hacer
          			variable <- variable + Subcadena(cad,i,i)
          		FinPara
          	SiNo
          		variable <- cad
          	FinSi
          FinFuncion
          
          Funcion B <- deTextoALogico(valorTexto)
          	Definir B Como Logico
          	
          	Si Mayusculas(valorTexto)=='V' O valorTexto=='1' Entonces
          		B <- Verdadero
          	FinSi
          	Si Mayusculas(valorTexto)=='F' O valorTexto=='0' Entonces
          		B <- Falso
          	FinSi
          FinFuncion
          
          Funcion v <- condicional(a, b)
          	Definir v Como Logico
          	
          	Si a Y b Entonces
          		v <- Verdadero
          	FinSi
          	Si a Y !b Entonces
          		v <- Falso
          	FinSi
          	Si !a Y b Entonces
          		v <- Verdadero
          	FinSi
          	Si !a Y !b Entonces
          		v <- Verdadero
          	FinSi
          FinFuncion
          
          Funcion v <- bicondicional(a, b)
          	Definir v Como Logico
          	
          	Si a Y b Entonces
          		v <- Verdadero
          	FinSi
          	Si a Y !b Entonces
          		v <- Falso
          	FinSi
          	Si !a Y b Entonces
          		v <- Falso
          	FinSi
          	Si !a Y !b Entonces
          		v <- Verdadero
          	FinSi
          FinFuncion
          
          Funcion v <-disyuncionExclusiva(a, b)
          	Definir v Como Logico
          	
          	Si a Y b Entonces
          		v <- Falso
          	FinSi
          	Si a Y !b Entonces
          		v <- Verdadero
          	FinSi
          	Si !a Y b Entonces
          		v <- Verdadero
          	FinSi
          	Si !a Y !b Entonces
          		v <- Falso
          	FinSi
          FinFuncion
          • Bradley dice:

            Muchísimas gracias, te mereces el cielo!!
            Nos has ayudado bastante, espero contar con su apoyo más adelante, bendiciones.

      • LILY dice:

        muchas gracias por su ayuda 🙂

  • adeliene ruiz dice:

    hola mucho gusto he estado batallando mucho en la elaboración de este programa
    debo crear un programa que busque, modifique, borre y en liste datos pueden se cualquier tipo de datos todo mediante arreglos
    mi idea es crear un tipo inventario donde pueda agregar productos , borrar productos y modificar el precio de algunos productos y pues que al final me muestre el total de los productos con los que cuento y la suma total de estos productos a si como la suma en dinero de estos.
    espero puedas ayudarme te lo agradeceré muchísimo y si no tan siquiera me podrías dar un ejemplo donde ocurra esto de modificar y borrar ??

    • terepebernal dice:

      ¡Hola Adeline! A ver si se parece algo a lo que pensabas. En el caso de borrar, la posición del arreglo no puede borrarse, así que lo que he hecho es poner todos los datos del producto en blanco. Saludos

      Algoritmo ejemploProductos
      	Definir opcMenu, num Como Entero
      	Definir salir Como Logico
      	
      	
      	Escribir "NÚMERO MÁXIMO DE PRODUCTOS: " Sin Saltar
      	Leer num
      	Dimension productos[num,3]
      	Definir productos Como Cadena
      	
      	salir <- Falso
      	Repetir
      		Escribir "         MENU"
      		Escribir "--------------------"
      		Escribir "(1) Añadir producto"
      		Escribir "(2) Borrar producto"
      		Escribir "(3) Modificar precio"
      		Escribir "(4) Listar productos"
      		Escribir "(0) Salir"
      		Escribir "Elija una opción......." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      		
      		Segun opcMenu Hacer
      			1:
      				altaProducto(productos, num)
      			2:
      				borrarProducto(productos, num)
      			3:
      				editarPrecio(productos, num)
      			4: 
      				listarProductos(productos, num)
      			0:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir""
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion altaProducto(matriz Por Referencia, n)
      	Definir i Como Entero
      	Escribir ""
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si matriz[i,1]=="" Y matriz[i,2]=="" Entonces
      			Escribir "PRODUCTO Nº ", i
      			Escribir "-----------------------------------"
      			Escribir "DESCRIPCIÓN: " Sin Saltar
      			Leer matriz[i,1]
      			Escribir "UNIDADES EN ALMACÉN: " Sin Saltar
      			Leer matriz[i,2]
      			Escribir "PRECIO: " Sin Saltar
      			Leer matriz[i,3]
      			i<-n
      		SiNo
      			Si i==n Entonces
      				Escribir "Se ha llegado al máximo de productos"
      			FinSi
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion borrarProducto(matriz, n)
      	Definir i, idProducto Como Entero
      	
      	Escribir "NÚMERO DE PRODUCTO A ELEMINAR: " Sin Saltar
      	Leer idProducto
      	
      	Si idProducto>0 Y idProducto<n Entonces
      		Para i<-1 Hasta 3 Con Paso 1 Hacer
      			matriz[idProducto,i] <- ""
      		FinPara
      	FinSi
      FinFuncion
      
      Funcion editarPrecio(matriz, n)
      	Definir i, idProducto Como Entero
      	
      	Escribir "NÚMERO DE PRODUCTO A EDITAR: " Sin Saltar
      	Leer idProducto
      	
      	Si (idProducto>0 Y idProducto<=n) Entonces
       		Si !matriz[idProducto,1]=="" Entonces
      			Escribir "NUEVO PRECIO: " Sin Saltar
      			Leer matriz[idProducto,3]
      		FinSi
      	FinSi
      FinFuncion
      
      Funcion listarProductos(matriz, n)
      	Definir i, suma Como Entero
      	
      	sumaValor <- 0
      	sumaProductos <- 0
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir "(", i, ")  ", matriz[i,1], ", UDS: ", matriz[i,2], ", PRECIO: ", matriz[i,3] Sin Saltar
      		Escribir ", VALOR = ", ConvertirANumero(matriz[i,2])*ConvertirANumero(matriz[i,3])
      		sumaProductos <- sumaProductos + ConvertirANumero(matriz[i,2])
      		sumaValor <- sumaValor + (ConvertirANumero(matriz[i,2])*ConvertirANumero(matriz[i,3]))
      	FinPara
      	Escribir ""
      	Escribir "TOTAL NÚMERO DE PRODUCTOS = ", sumaProductos
      	Escribir "TOTAL VALOR DE PRODUCTOS = " , sumaValor
      FinFuncion
  • ANGEL DAVID RIVERA ANAYA dice:

    buenos dias me podrías ayudar con estos algotimos
    Diseñe un algoritmo que eleve un numero al cuadrado cuanto este sea leído por teclado, y si el usuario desea ingresar otro número el algoritmo debe permitir la repetición del proceso de lo contrario terminar.

    Elabore un algoritmo que genere los números pares 2, 4, 6… hasta llegar al 100.

    Elaborar un algoritmo que permita generar la siguiente secuencia numérica:
    1 1 2 3 5 8 13 21 34 55 89.
    Sucesión de Fibonacci
    Al llegar a 89 termine. Instrucciones: el algoritmo debe generar esta secuencia.

    • terepebernal dice:

      ¡Hola Ángel! El primer ejercicio:

      Algoritmo ejemploPotencia
      	Definir num Como Numero
      	Definir salir Como Logico
      	Definir C Como Caracter
      	
      	salir <- Falso
      	Mientras !salir
      		Escribir ""
      		Escribir "NÚMERO: " Sin Saltar
      		Leer num
      		Escribir "El cuadrado de ", num, " es igual a ", num*num
      		Escribir ""
      		Escribir "Pulse la tecla (S) para salir." Sin Saltar
      		Escribir " Cualquier otra para continuar..." Sin Saltar
      		Leer C 
      		Si Mayusculas(C)=='S' Entonces
      			salir <- Verdadero
      		FinSi
      	FinMientras
      FinAlgoritmo

      El segundo ejercicio:

      Algoritmo ejemploEnteros8
      	Definir i Como Entero
      	
      	Para i<-2 Hasta 100 Con Paso 1 Hacer
      		Si (i%2==0) Entonces
      			Escribir i, " " Sin Saltar
      		FinSi
      	FinPara
      FinAlgoritmo

      Y el tercer ejercicio:

      Algoritmo ejFiboHasta89
      	Definir num, suma Como Entero
      	
      	suma <- 0
      	num <- 1
      	Repetir 
      		Escribir suma, " ", num, " "  Sin Saltar
      		suma <- suma + num
      		num <- num + suma
      	Hasta Que (num>89)
      	Escribir ""
      FinAlgoritmo

      Saludos

      • ANGEL DAVID RIVERA ANAYA dice:

        muy buenas tardes me prodrias ayudar con esto algoritmos

        Elabore un algoritmo que genere la tabla de multiplicar del 7 que inicie desde 0 hasta 100.

        Elabore un algoritmo que genere los números pares 2, 4, 6… hasta llegar al 100.

        Diseñe un algoritmo que lea 30 números. Determine cuantos son negativos, cuántos son cero y cuantos son mayores que cero.

        Diseñe un algoritmo que halle el promedio total de 30 números, leídos por teclado.

        • terepebernal dice:

          ¡Hola Ángel! El primer algoritmo:

          Algoritmo ejemploTabla7
          	Definir i Como Entero
          	
          	Para i<-0 Hasta 100 Con Paso 1 Hacer
          		Escribir "7 x ", i, " = ", i*7
          	FinPara
          FinAlgoritmo

          El segundo algoritmo:

          Algoritmo paresDel1al100
          	Definir i Como Entero
          	
          	Para i<-1 Hasta 100 Con Paso 1 Hacer
          		Si (i MOD 2)==0 Entonces
          			Escribir i, " " Sin Saltar
          		FinSi
          	FinPara
          	Escribir ""
          FinAlgoritmo

          El tercero algoritmo:

          Algoritmo ejemploEnteros10
          	Definir i, num, numNeg, numCero, numPos Como Entero
          	
          	numNeg <- 0
          	numCero <- 0
          	numPos <- 0
          	
          	Para i<-1 Hasta 30 Con Paso 1 Hacer
          		Escribir "NÚMERO ", i, ": " Sin Saltar
          		Leer num
          		
          		Si num<0 Entonces
          			numNeg <- numNeg+1
          		FinSi
          		Si num==0 Entonces
          			numCero <- numCero+1
          		FinSi
          		Si num>0 Entonces
          			numPos <- numPos+1
          		FinSi
          	FinPara
          	
          	Escribir numNeg, " números negativos"
          	Escribir numCero, " números igual a cero"
          	Escribir numPos, " números positivos"
          FinAlgoritmo

          Y el cuarto algoritmo:

          Algoritmo ejemploPromedio1
          	Definir i Como Entero
          	Definir num, suma, promedio Como Numero
          	
          	suma <- 0
          	promedio <- 0
          	
          	Para i<-1 Hasta 30 Con Paso 1 Hacer
          		Escribir "NÚMERO ", i, ": " Sin Saltar
          		Leer num
          		suma <- suma + num
          	FinPara
          	
          	promedio <- suma/30
          	Escribir "Promedio = ", promedio
          FinAlgoritmo

          Saludos

      • ANGEL DAVID RIVERA ANAYA dice:

        muchas gracias

  • cesar dice:

    hola podrian ayudarme porfavor

    Hacer un algoritmo que recibe información de 5 canes en una veterinaria, presentando un menú

    con las siguientes opciones:
    a) Altas. En esta opción deberá almacenar en arreglos la inicial del perro, y la edad.
    b) Consultas generales. En esta opción se deberá imprimir una lista con todos los datos de los
    perros (inicial y edad)
    c) Perro con más edad. En esta opción se deberá imprimir los datos del perro que tiene la
    edad mayor.
    d) Perro con menos edad. En esta opción se deberá imprimir los datos del perro que tiene la
    menor edad.
    e) Salir del programa

    • terepebernal dice:

      ¡Hola César! A ver si te sirve. Si tienes dudas, coméntalo. Saludos.

      Algoritmo ejVeterinaria
      	Dimension perros[5,2]
      	Definir perros Como Cadena
      	Definir opcMenu, maxEdad, minEdad Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	// Muestra el menú en bucle hasta que se pulse (5)
      	Repetir
      		Escribir ""
      		Escribir "      MENU       "
      		Escribir "-----------------"
      		Escribir "(1) Altas"
      		Escribir "(2) Consultas generales"
      		Escribir "(3) Perro con más edad"
      		Escribir "(4) Perro con menos edad"
      		Escribir "(5) Salir del programa"
      		Escribir "Elija una opción...." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      	// Opciones del menú
      	Segun opcMenu Hacer
      		1:
      			altas(perros)
      		2:
      			consultas(perros)
      		3:
      			maxEdad <- mayorEdad(perros)
      			Escribir "El perro de mayor edad es ", perros[maxEdad,1], " con ", perros[maxEdad,2], " años"
      		4:
      			minEdad <- menorEdad(perros)
      			Escribir "El perro de menor edad es ", perros[minEdad,1], " con ", perros[minEdad,2], " años"
      		5:
      			salir <- Verdadero
      		De Otro Modo:
      			Escribir "Opción incorrecta. Inténtelo de nuevo"
      	FinSegun
      Hasta Que salir 
      FinAlgoritmo
      
      Funcion altas(arreglo Por Referencia)
      	Definir i Como Entero
      	
      	i<-1
      	Mientras (i<=5) Hacer
      		Si (arreglo[i,1]=="") Entonces
      			// Si el registro está vacío da opción a ingresar los datos
      				Escribir "Inicial: " Sin Saltar
      				Leer arreglo[i,1]
      				arreglo[i,1] <- Mayusculas(Subcadena(arreglo[i,1],1,1))
      				Escribir "Edad: " Sin Saltar
      				Leer arreglo[i,2]
      				i<-6
      		SiNo
      			// Si el registro no está vacío, pasa al siguiente
      			i<-i+1
      			Si (i>5) Entonces
      				// Si ya están ocupados todos los registros, muestra mensaje
      				Escribir "Se ha llegado al límite. Solo pueden guardarse 5 registros"
      			FinSi
      		FinSi
      	FinMientras
      FinFuncion
      
      Funcion consultas(arreglo)
      	Definir i Como Entero
      	
      	// Muestra un listado de los 5 registros
      	Escribir "   INICIAL    EDAD"
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      			Escribir i, ".    ", arreglo[i,1], "        ", arreglo[i,2]
      	FinPara
      FinFuncion
      
      Funcion resultado <- mayorEdad(arreglo)
      	Definir i, max, resultado Como Entero
      	
      	max <- ConvertirANumero(arreglo[1,2])
      	// Busca el perro de mayor edad 
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si max<=ConvertirANumero(arreglo[i,2]) Entonces
      			max <- ConvertirANumero(arreglo[i,2])
      			// Guarda el índice del perro de mayor edad  para devolver el valor
      			resultado <- i
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion resultado <- menorEdad(arreglo)
      	Definir i, min, resultado Como Entero
      	
      	min <- ConvertirANumero(arreglo[1,2])
      	// Busca el perro de menor edad 
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Si min>=ConvertirANumero(arreglo[i,2]) Y ConvertirANumero(arreglo[i,2])>0 Entonces
      			min <- ConvertirANumero(arreglo[i,2])
      			// Guarda el índice del perro de menor edad  para devolver el valor
      			resultado <- i
      		FinSi
      	FinPara
      FinFuncion
      • arturo dice:

        disculpa ya lo puse en marcha este algoritmo pero cuando le pido la menor edad del perro sale el puro texto

        • terepebernal dice:

          Hola Arturo, tienes razón, pasaba cuando no estaban dados de alta los cinco perros, al buscar la edad más baja, como el hueco del arreglo está vacío el número es cero, y entonces tomaba ese número como la edad más baja. Ya lo he arreglado, le he añadido a la condición que el número que está mirando en el arreglo sea mayor que cero, en la función menorEdad, dentro del PARA: Si min>=ConvertirANumero(arreglo[i,2]) Y ConvertirANumero(arreglo[i,2])>0 Entonces. Ya está corregido en el comentario, pruébalo ahora.

  • Marco g dice:

    si me pueden ayudar con este pequeño problema:

    los premios de un determinado juego de azar se distribuyen de acuerdo al siguiente criterio: la cantidad repartida en premios es una 60% de la recaudacion total, existen cinco categorias de premiados (30%,25%20%15%10%) y el numero de acertantes por categorias se intruduce por teclado. indicar mediante un programa la cantidad que recibe cada acertante de cada una de las categorias

    • terepebernal dice:

      ¡Hola Marco! Saludos

      Algoritmo juegoAzar
      	Definir recTotal, repartido Como Numero
      	Definir C1, C2, C3, C4, C5 Como Entero
      	Escribir "Recaudación total: " Sin Saltar
      	Leer recTotal
      	Escribir "Acertantes Categoría 1 (30%): " Sin Saltar
      	Leer C1
      	Escribir "Acertantes Categoría 2 (25%): " Sin Saltar
      	Leer C2
      	Escribir "Acertantes Categoría 3 (20%): " Sin Saltar
      	Leer C3
      	Escribir "Acertantes Categoría 4 (15%): " Sin Saltar
      	Leer C4
      	Escribir "Acertantes Categoría 5 (10%): " Sin Saltar
      	Leer C5
      	
      	repartido <- (recTotal*60)/100
      	Escribir ""
      	Escribir "Cantidad para repartir en premios = ", repartido
      	Escribir C1, " acertantes de Categoría 1, cobrarán " Sin Saltar
      	Escribir (repartido*30/100)/C1
      	Escribir C2, " acertantes de Categoría 2, cobrarán " Sin Saltar
      	Escribir (repartido*25/100)/C2
      	Escribir C3, " acertantes de Categoría 3, cobrarán " Sin Saltar
      	Escribir (repartido*20/100)/C3
      	Escribir C4, " acertantes de Categoría 4, cobrarán " Sin Saltar
      	Escribir (repartido*15/100)/C4
      	Escribir C5, " acertantes de Categoría 5, cobrarán " Sin Saltar
      	Escribir (repartido*10/100)/C5
      FinAlgoritmo
  • CRISTHIAN DAVID RAMIREZ CELY dice:

    Hola amigo, que pena es que estoy empezando en esto de la programacion y estoy manejando DFD quiero saber como escribir el comando ‘convertiratexto’ de pseint en DFD.

    • terepebernal dice:

      ¡Hola Cristhian! Tienes que entrar en la opción del menú para los diagramas de flujo (marcada en la imagen con un círculo rojo), puedes manejar con el ratón los símbolos arrastrándolos y escribir dentro. También puedes hacer el algoritmo en pseudocódigo y al entrar en la opción de DFD, te muestra automáticamente el diagrama.

  • armando carbajal dice:

    Buen día me podrías ayudar con este problema :
    Realizar una estructura para almacenar datos de algún objeto o actividad por ejemplo jugadores de fútbol,tipos de computadoras etc…

    • terepebernal dice:

      ¡Hola Armando! Este es como el de los autos, pero le he puesto «objetos» en vez de «autos», si cambias los «objetos» por lo que quieres (jugadores de fútbol, tipos de computadoras, autos…) te servirá. Si solo quieres que almacene los datos, con borrar la declaración de la variable «rev» y el resto de código, desde donde muestra los datos por pantalla hasta el final te bastará (menos FinAlgoritmo, claro).

      Algoritmo guardarObjetos
      	Definir i, num, rev Como Entero
      	
      	// Filas del arreglo (num), cada fila será un objeto
      	Escribir "Número de objetos: " Sin Saltar
      	Leer num
      	Dimension objetos[num,5]
      	
      	// Pedir datos de cada objeto al usuario
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		// Cada columna será un dato del objeto
      		Escribir "Objeto nº ", i, ": " 
      		Escribir "Dato 1: " Sin Saltar
      		Leer objetos[i,1]
      		Escribir "Dato 2: " Sin Saltar
      		Leer objetos[i,2]
      		Escribir "Dato 3: " Sin Saltar
      		Leer objetos[i,3]
      		Escribir "Dato 4: " Sin Saltar
      		Leer objetos[i,4]
      		Escribir "Dato 5: " Sin Saltar
      		Leer objetos[i,5]
      		Escribir ""
      	FinPara
      	
      	// Muestra un listado de todos los objetos
      	Para i<-1 Hasta num Con Paso 1 Hacer 
      		Escribir "(", i, ") - ", objetos[i,1], ", ", objetos[i,2], ", ", objetos[i,3], ", ", objetos[i,4], ", ", objetos[i,5]
      	FinPara
      	
      	Escribir ""
      	Escribir "Número de objeto a buscar: " Sin Saltar
      	Leer rev
      	
      	// Mostrar objeto del número ingresado por pantalla
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		Si (i==rev)
      			Escribir "(", i, ") - ", objetos[i,1], ", ", objetos[i,2], ", ", objetos[i,3], ", ", objetos[i,4], ", ", objetos[i,5]
      			i<-num // Se asigna a i el valor de num para salir del bucle
      		SiNo
      			Si (i==num)
      				// Si entra aquí es que no lo ha encontrado y ha llegado al final
      				Escribir "El objeto no se encuentra"
      			FinSi
      		FinSi
      	FinPara
      FinAlgoritmo
      • Armando carbajal dice:

        Gracias por la ayuda en verdad soy nuevo en esto y apenas estoy aprendiendo espero y tengas un buen día amigo te agradezco la ayuda

  • Armando carbajal dice:

    Buen dia me podrias ayudar con este problema
    Realizar un programa que utilice un ciclo que contenga una estructura para guardar datos de autos y despues los muestre segun el usuario indique el auto a revisar

    • terepebernal dice:

      ¡Hola Armando! No sé si quieres algo así. Mediante un ciclo se van introduciendo los datos de los autos (tantos como la variable num). Luego los muestra por pantalla y después busca uno de ellos por el número que ocupa en el arreglo.

      Algoritmo guardarAutos
      	Definir i, num, rev Como Entero
      	
      	// Filas del arreglo (num), cada fila será un auto
      	Escribir "Número de autos: " Sin Saltar
      	Leer num
      	Dimension autos[num,5]
      	
      	// Pedir datos de cada auto al usuario
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		// Cada columna será un atributo del auto
      		Escribir "Auto nº ", i, ": " 
      		Escribir "Marca: " Sin Saltar
      		Leer autos[i,1]
      		Escribir "Modelo: " Sin Saltar
      		Leer autos[i,2]
      		Escribir "Potencia: " Sin Saltar
      		Leer autos[i,3]
      		Escribir "Combustible: " Sin Saltar
      		Leer autos[i,4]
      		Escribir "Consumo: " Sin Saltar
      		Leer autos[i,5]
      		Escribir ""
      	FinPara
      	
      	// Muestra un listado de todos los autos
      	Para i<-1 Hasta num Con Paso 1 Hacer 
      		Escribir "(", i, ") - ", autos[i,1], ", ", autos[i,2], " - Potencia: ", autos[i,3], " - Combustible: ", autos[i,4], " - Consumo: ", autos[i,5]
      	FinPara
      	
      	Escribir ""
      	Escribir "Número de auto a revisar: " Sin Saltar
      	Leer rev
      	
      	// Mostrar auto del número ingresado por pantalla
      	Para i<-1 Hasta num Con Paso 1 Hacer
      		Si (i==rev)
      			Escribir "(", i, ") - ", autos[i,1], ", ", autos[i,2], " - Potencia: ", autos[i,3], " - Combustible: ", autos[i,4], " - Consumo: ", autos[i,5]
      			i<-num // Se asigna a i el valor de num para salir del bucle
      		SiNo
      			Si (i==num)
      				// Si entra aquí es que no lo ha encontrado y ha llegado al final
      				Escribir "El auto no se encuentra"
      			FinSi
      		FinSi
      	FinPara
      FinAlgoritmo
  • karla dice:

    hola me podrian ayudar cin este progrma
    Realizar un programa que indique cual es el mayor de 4 números, es
    decir, nos pasan cuatro números enteros y debemos mostrar un mensaje
    con el mayor de los cuatro.

    • terepebernal dice:

      ¡Hola Karla! Saludos

      Algoritmo mayorDe4
      	Definir i Como Entero
      	Definir num, max Como Numero
      
      		max <- 0
      		Para i<-1 Hasta 4 Con Paso 1 Hacer
      			Escribir "NÚMERO ", i, ": " Sin Saltar
      			Leer num
      			Si max <= num Entonces
      				max <- num
      			FinSi
      		FinPara
      		Escribir "EL MAYOR DE LOS CUATRO ES ", max
      FinAlgoritmo
  • Deni dice:

    Holaa, me puede ayudar con esto, por favor 😉
    1.- realiza el pseudocódigo de una tienda de electrónicos o electrodomésticos, que muestre los siguientes departamentos (hogar, entretenimiento, computadoras, celulares) y cada departamento tenga al menos cinco artículos a la venta con una descripción y el precio de venta. El pseudocódigo debe tener un Menú de opciones y solo debe salir de ejecución hasta que se le indique.

    • terepebernal dice:

      ¡Hola Deni! Cada departamento tiene 5 artículos, pero no he puesto ninguna descripción, los he numerado del 1 al 5, puedes cambiarlos tú, al inicio del algoritmo y los precios los he puesto para que los asigne aleatorios, también podrías cambiarlos, si quieres, en vez de utilizar el PARA, asignarlos uno a uno al arreglo PRECIOS, igual que con el de ARTÍCULOS. También podrías añadir más artículos si quisieras, pero tendrías que ajustar los índices de los bucles PARA y las dimensiones de los dos arreglos, para que todo cuadrara.

      Algoritmo tiendaElectronica
      	Dimension articulos[20]
      	Definir articulos Como Cadena
      	Dimension precios[20]
      	Definir precios Como Numero
      	Definir i, opciones Como Entero
      	
      	// Asignar valores a las variables
      	articulos[1] <- "Hogar - Artículo 1"
      	articulos[2] <- "Hogar - Artículo 2"
      	articulos[3] <- "Hogar - Artículo 3"
      	articulos[4] <- "Hogar - Artículo 4"
      	articulos[5] <- "Hogar - Artículo 5"
      	articulos[6] <- "Entretenimiento - Artículo 1"
      	articulos[7] <- "Entretenimiento - Artículo 2"
      	articulos[8] <- "Entretenimiento - Artículo 3"
      	articulos[9] <- "Entretenimiento - Artículo 4"
      	articulos[10] <- "Entretenimiento - Artículo 5"
      	articulos[11] <- "Computadoras - Artículo 1"
      	articulos[12] <- "Computadoras - Artículo 2"	
      	articulos[13] <- "Computadoras - Artículo 3"
      	articulos[14] <- "Computadoras - Artículo 4"
      	articulos[15] <- "Computadoras - Artículo 5"
      	articulos[16] <- "Celulares - Artículo 1"
      	articulos[17] <- "Celulares - Artículo 2"
      	articulos[18] <- "Celulares - Artículo 3"
      	articulos[19] <- "Celulares - Artículo 4"
      	articulos[20] <- "Celulares - Artículo 5"
      	
      	Para i<-1 Hasta 20 Con Paso 1 Hacer
      		precios[i] <- Aleatorio(10,2000)
      	FinPara
      	
      	// Muestra el menú
      	Repetir
      		Escribir ""
      		Escribir "           MENU           "
      		Escribir "--------------------------"
      		Escribir "(1) HOGAR"
      		Escribir "(2) ENTRETENIMIENTO"
      		Escribir "(3) COMPUTADORAS"
      		Escribir "(4) CELULARES"
      		Escribir "(5) SALIR"
      		Escribir "Opción (1 - 5)....." Sin Saltar
      		Leer opciones
      		Escribir ""
      		
      		// Muestra artículos del departamento que seleccione el usuario
      		Segun opciones Hacer
      			1:
      				Para i<-1 Hasta 5 Con Paso 1 Hacer
      					Escribir articulos[i], " - precio: ", precios[i]
      				FinPara
      			2:
      				Para i<-6 Hasta 10 Con Paso 1 Hacer
      					Escribir articulos[i], " - precio: ", precios[i]
      				FinPara
      			3:
      				Para i<-11 Hasta 15 Con Paso 1 Hacer
      					Escribir articulos[i], " - precio: ", precios[i]
      				FinPara
      			4:
      				Para i<-16 Hasta 20 Con Paso 1 Hacer
      					Escribir articulos[i], " - precio: ", precios[i]
      				FinPara
      			5:
      				Escribir ""
      				Escribir "¡Gracias por su visita!"
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      	Hasta Que opciones==5
      FinAlgoritmo
      • Deni dice:

        Muchas gracias
        Otra molestia, cómo hago el arreglo de precios?

        • terepebernal dice:

          Si no quieres poner precios aleatorios, tienes que eliminar desde el trocito que va desde Para hasta FinPara, que incluye precios[i]… y poner en su lugar precios[1] <- (el precio que quieras poner) ..... hasta precios[20] <- (su precio), como con el arreglo artículos, pero sin comillas.

  • Andrey Florez dice:

    podria ayudar a realizar un pseudocódigo que lea el valor del consumo eléctrico de una Vivienda

    lea el estrato de la Vivienda y de acuerdo a ello asignar la tarifa básica (TB) y el valor del Kilowattio(kw)

    Hallar el costo total

    • terepebernal dice:

      ¡Hola Andrey! No tengo ni idea de como se halla la factura eléctrica. Espero que sea algo como lo del algoritmo y te sirva de guía. Saludos.

      Algoritmo facturaElectricidad
      	Definir consumo, valorKW, TB Como Numero
      	Definir estrato Como Entero
      	
      	// Pedir al usuario el consumo y estrato de la vivienda
      	Escribir "Consumo eléctico vivienda: " Sin Saltar
      	Leer consumo
      	
      	Escribir "Estrato de la vivienda: " Sin Saltar
      	Leer estrato
      	
      	// Según el estrato asignar valores de TB y valor del KW
      	Segun estrato Hacer
      		1:
      			TB <- 185.35 
      			valorKW <- 23.43
      		2:
      			TB <- 229.19
      			valorKW <- 25.20
      		3:
      			TB <- 384.9 
      			valorKW <- 27.25
      		4:
      			TB <- 409.10
      			valorKW <- 30.05
      		De Otro Modo:
      			Escribir "Estrato incorrecto"
      			
      	FinSegun
      	
      	// Mostrar total
      	Escribir "Costo total = ", TB+(consumo*valorKW)
      FinAlgoritmo
  • ÁngelaDiHe dice:

    Hola! Me encantaria que me ayudase con el siguiente ejercicio, se me escapa alguna variable o tengo un error que no me doy cuenta de dónde está, se trata de hacer un programa que lee dos números por teclado y muestra por pantalla todos los números comprendidos entre esos dos números introducidos, siempre se debe mostrar los números de menor a mayor, con lo cúal hay que comprobar cúal es el menor de los números introducidos y mostrarlos por pantalla a partir de dicho número.

    Gracias de antemano, un saludo!

    • ÁngelaDiHe dice:

      Gracias!!

    • terepebernal dice:

      ¡Hola Ángela! Saludos

      Algoritmo ordenarEntre2Num
      	Definir num1, num2, i Como Entero
      	
      	Escribir "PRIMER NÚMERO: " Sin Saltar
      	Leer num1
      	Escribir "SEGUNDO NÚMERO: " Sin Saltar
      	Leer num2
      	
      	Si (num1<=num2) Entonces
      		Para i<-num1 Hasta num2 Con Paso 1 Hacer
      			Escribir ConvertirATexto(i), " " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Para i<-num2 Hasta num1 Con Paso 1 Hacer
      			Escribir ConvertirATexto(i), " " Sin Saltar
      		FinPara
      		Escribir ""
      	FinSi
      FinAlgoritmo
  • Alvaro dice:

    diseñar y codificar un algoritmo que determine si un
    valor ingresado por el usuario es capicúa o no.

    ahora me piden ese… ! ayuda!

    • terepebernal dice:

      ¡Hola Álvaro! El algoritmo primero comprueba si es un número y después si es capicúa (se lee igual de izquierda a derecha, que de derecha a izquierda).

      Algoritmo numCapicua
      	Definir num Como Cadena
      	Definir i Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	Si !esNumerico(num) Entonces
      		Escribir "No es un número. Inténtalo de nuevo"
      	SiNo
      		Escribir "El número ", num Sin Saltar
      		Si esCapicua(num) Entonces
      			Escribir " es capicúa"
      		SiNo 
      			Escribir " no es capicúa"
      		FinSi
      	FinSi
      FinAlgoritmo
      
      Funcion OK<-esNumerico(cad)
      	Definir c_numeros Como Cadena
      	Definir OK Como Logico
      	Definir i ,j Como Entero
      	
      	OK <- Falso
      	c_numeros <- "0123456789"
      	
      	Para i<-1 Hasta Longitud(cad) Con Paso 1
      		Para j<-1 Hasta Longitud(c_numeros) Con Paso 1
      			// Se compara cada caracter para comprobar que es un dígito
      			Si (Subcadena(cad,i,i) == Subcadena(c_numeros,j,j)) Entonces
      				OK<-Verdadero	// Es un dígito
      				j<-Longitud(c_numeros)  // Se da a j el valor final para salir del bucle
      			SiNo
      				// El caracter no es un dígito
      				Si j==Longitud(c_numeros) Entonces
      					OK<-Falso	// Luego no es un número
      					i<-Longitud(cad) // Se da a i el valor final para salir del bucle
      				FinSi
      			FinSi
      		FinPara
      	FinPara	
      FinFuncion
      
      Funcion OK<-esCapicua(cad)
      	Definir cad2 Como Cadena
      	Definir OK Como Logico
      	Definir i Como Entero
      	
      	OK <- Falso
      	cad2 <- ""
      	
      	// Se lee la cadena de derecha a izquierda y 
      	// de guarda en otra cadena para después compararlas
      	Para i<-Longitud(cad) Hasta 0 Con Paso -1
      		cad2 <- cad2 + Subcadena(cad,i,i)
      	FinPara
      	
      	Si (cad==cad2) Entonces
      		OK <- Verdadero
      	FinSi
      FinFuncion
  • Alejandra Galicia dice:

    Me puedes ayudar con este algoritmo

    La empresa “SALVO ” desea implementar un programa sencillo que le permita llevar un control de sus productos, ventas diarias, etc. Los productos que venden son los siguientes:
    Producto Precio Unitario
    A) Caja para archivos $45.00
    B) Caja para mudanza $76.00
    C) Caja de doblado fácil $38.00
    • Cuando se venden de 1 a 25 piezas se conserva el precio unitario
    • Cuando se venden de 26 a 50 piezas se hace un descuento (sobre el precio unitario) del 3%
    • Cuando se venden 51 o más piezas se hace un descuento (sobre el precio unitario) del 5%
    4. Construye un algoritmo, en pseudocódigo, que permita a la Empresa salvo saber las piezas vendidas y las ventas totales ($) por caja A, B y C

    • terepebernal dice:

      ¡Hola Alejandra! Dale un buen repaso y si no entiendes algo dímelo. Saludos

      Algoritmo ejemploVentas3
      	Definir i, j, dias Como Entero
      	Dimension productos[3]
      	Definir productos Como Cadena
      	Dimension precios[3]
      	Dimension totales[3,2]
      	Definir precios, ventas, totales, suma Como Numero
      	
      	productos[1] <- "Caja para archivos"
      	productos[2] <- "Caja para mudanza"
      	productos[3] <- "Caja de doblado fácil"
      	precios[1] <- 45
      	precios[2] <- 76
      	precios[3] <- 38
      	
      	Escribir "NÚMERO DE DÍAS: " Sin Saltar
      	Leer dias
      	
      	Dimension ventas[dias,3,3]
      	
      	Si dias>0 Entonces
      		// Ingresar piezas vendidas diarias
      		Para i<-1 Hasta dias Con Paso 1 Hacer
      			Escribir "DÍA Nº ", i, ":"
      			Escribir "Piezas vendidas de " + productos[1] + ": " Sin Saltar
      			Leer ventas[i,1,1]
      			Escribir "Piezas vendidas de " + productos[2] + ": " Sin Saltar
      			Leer ventas[i,2,1]
      			Escribir "Piezas vendidas de " + productos[3] + ": " Sin Saltar
      			Leer ventas[i,3,1]
      		FinPara
      		
      		// Calcular ventas totales
      		Para i<-1 Hasta dias Con Paso 1 Hacer
      			Escribir "Día ", i, ": "
      			// Producto a producto según descuento por número de piezas
      			Para j<-1 Hasta 3 Con Paso 1 Hacer
      				// De 1 a 25, sin descuento
      				Si ventas[i,j,1]>=1 Y ventas[i,j,1]<=25 Entonces
      					ventas[i,j,2] <- precios[j]
      				FinSi
      				// De 26 a 50, descuento del 3%
      				Si ventas[i,j,1]>=26 Y ventas[i,j,1]<=50 Entonces
      					ventas[i,j,2] <- precios[j]-(precios[j]*3)/100
      				FinSi
      				// Más de 51, descuento del 5%
      				Si ventas[i,j,1]>=51 Entonces
      					ventas[i,j,2] <- precios[j]-(precios[j]*5)/100
      				FinSi
      				// Se calcula ventas del producto por día
      				ventas[i,j,3] <- ventas[i,j,1]*ventas[i,j,2]
      				Escribir productos[j], " - ", ventas[i,j,1], " x $", ventas[i,j,2], " = $", ventas[i,j,3]
      				totales[j,1] <- totales[j,1]+ventas[i,j,1]
      				totales[j,2] <- totales[j,2]+ventas[i,j,3]
      			FinPara
      		FinPara
      		
      		// Mostrar por pantalla piezas vendidas y ventas totales
      		Escribir ""
      		Escribir "SUMA TOTAL"
      		Escribir "------------------------------------------------------------"
      		Para i<-1 Hasta 3 Con Paso 1 Hacer
      			Escribir totales[i,1], " piezas - ", productos[i], ", ventas: $", totales[i,2]
      			suma <- suma+totales[i,2]
      		FinPara
      		Escribir "Total Ventas: $", suma
      	SiNo
      		Escribir "El número de días tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
  • junior dice:

    me pueden ayudar ingresar un numero y decir si es dígito
    x cualquier diagrama.

    • terepebernal dice:

      ¡Hola Junior! Con este se ingresa un número o cualquier otro carácter y te muestra por pantalla si es un dígito o no lo es. Saludos

      Algoritmo esDigito1
      	Definir c_caracteres Como Caracter
      	Definir c Como Caracter
      	Definir encontrado Como Logico
      
      	c_caracteres <- '0123456789'
      	encontrado <- Falso
      
      	Escribir 'ESCRIBE EL CARACTER: ' Sin Saltar
      	Leer c
      	Para i<-1 Hasta Longitud(c_caracteres) Hacer
      		Si (c==Subcadena(c_caracteres,i,i)) Entonces
      			encontrado <- Verdadero
      			i <- Longitud(c_caracteres)
      		FinSi
      	FinPara
      	Si encontrado Entonces
      		Escribir 'ES UN DÍGITO'
      	SiNo
      		Escribir 'NO ES UN DÍGITO'
      	FinSi
      FinAlgoritmo

  • armando carbajal dice:

    hola quisiera saber si me puedes ayudar con este problema:

    Utilizar arreglos para simular una caja registradora de una tienda en donde se almacenen los datos
    de productos comprados:
    Un arreglo que contenga los nombres de los productos.
    Un arreglo que contenga el precio de los productos.
    Para realizar una venta:
    a). El programa debe mostrar la lista de productos
    b). Pedirle al usuario que elija el producto a vender.
    c). Pedirle al usuario la cantidad del producto a comprar.
    d). utilizar un arreglo multidimensional en donde se registren los datos de numero de producto,
    cantidad y precio de cada producto comprado.
    e). Para finalizar la compra el usuario debe ingresar el producto 0
    f). Una vez finalizada la compra el programa debe mostrar a manera de ticket todos los productos
    comprados, el total de la compra y el desglose del IVA.

    Espero y me puedas ayudar

    • terepebernal dice:

      ¡Hola Armando! Como hay que darle una dimensión a los arreglos para que no de error y no me especificas el números de productos ni de compras, he puesto 5 para los productos y 10 para compras. Como tampoco dices nombre de los productos ni precios, los productos se llamarán «producto n-(número)» y los precios son aleatorios, y para el IVA he puesto el 21%. Espero que, al menos de guía, pueda servirte. Saludos

      Algoritmo cajaRegistradora
      	Dimension productos[5]
      	Dimension precios[5]
      	Dimension compras[10,3]
      	Definir productos Como Cadena
      	Definir precios Como Numero
      	Definir compras, suma Como Numero
      	Definir i Como Entero
      	
      	// Rellenar productos y precios (aleatorios)
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		productos[i] <- "producto n-"+ConvertirATexto(i)
      		precios[i] <- Aleatorio(3,100)
      	FinPara
      	
      	// Mostrar lista de productos
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir productos[i], " - precio: ", precios[i]
      	FinPara
      	
      	// Compras, se podrá realizar una máximo de 10
      	i<-1
      	Repetir
      		Escribir ""
      		Escribir "Comprar producto número: " Sin Saltar
      		Leer num
      		Si !num==0 Entonces
      			compras[i,1] <- num
      			Escribir "Cantidad: " Sin Saltar
      			Leer ud
      			compras[i,2] <- ud
      			compras[i,3] <- precios[num]
      			i<-i+1
      		FinSi
      	Hasta Que (num==0 O i%gt;10)
      	
      	suma <- 0
      	// Mostrar ticket de compra
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		Si compras[i,1]>0 Entonces   
      			Escribir compras[i,2], " - ", productos[compras[i,1]] Sin Saltar
      			Escribir  " x ", compras[i,3], " = ", compras[i,2]*compras[i,3]
      			suma <- suma + compras[i,2]*compras[i,3]
      		SiNo  // Para evitar que de error si no se han hecho compras
      			i<-10
      		FinSi
      	FinPara
      	Escribir "Total compra = ", suma, " (IVA = ", suma*0.21, ")"
      FinAlgoritmo
  • Milka dice:

    Podria ayudarme por favor
    Los
    productos se codifican de la siguiente forma:
    Código Nombre del producto
    1. Alcohol gel
    2. Mascarillas
    3. Guantes de látex
    4. Jabón liquido
    5. Desinfectante liquido de superficies.
    6. Gafas protectoras
    Se requiere un algoritmo para calcular el precio de venta, para esto hay que
    considerar lo siguiente:
    Costo de producción = Costo materia prima + Costo mano de obra + gastos de
    fabricación
    Precio de venta = costo de producción + 45% del costo de producción.
    El costo de mano de obra se obtiene de la siguiente forma: para los productos de
    código 3 o 4 se carga 75% del costo de materia prima; para los productos de código
    1 y 5 se carga 80% y para los productos código 2 o 6, 85%.
    Para calcular el gasto de fabricación se considera que, si el producto que se va a
    producir tiene códigos 4 o 5, este gasto representa 30% sobre el costo de la materia
    prima; si los códigos son 2 o 6, representa 35%; si los productos son 1 o 3,
    representa 28%.
    El costo de materia prima para cada producto es un valor constante en el periodo
    de producción (N días)
    La producción de los cinco productos se realizaráN días.
    Para cada día se necesita presentar la siguiente información de cada producto:
    1. Código y nombre del producto
    2. Costo de materia prima.
    3. Costo de mano de Obra
    4. Gastos de fabricación
    5. Costo de producción.
    6. Precio de venta.
    Al terminar los N días de producción, se requiere saber cuál seráel monto total de
    Costo de producción.
    Además, se requiere saber cuál será el Monto total de la venta en los N días

    • terepebernal dice:

      ¡Hola Milka! Creo que sería así. Saludos

      Algoritmo ejemploPrecios
      	Definir i, N Como Entero
      	Dimension productos[6]
      	Dimension precios[6,5]
      	Definir productos Como Cadena
      	Definir precios Como Numero
      	
      	productos[1] <- "Alcohol gel"
      	productos[2] <- "Mascarillas"
      	productos[3] <- "Guantes de látex"
      	productos[4] <- "Jabón líquido"
      	productos[5] <- "Desinfectante líquido de superficies"
      	productos[6] <- "Gafas protectoras"
      	
      	//Costo de producción = Costo materia prima + Costo mano de obra + gastos de fabricación
      	//Precio de venta = costo de producción + 45% del costo de producción.
      	
      	Escribir "Días de producción: " Sin Saltar
      	Leer N
      	Si N>=1 Entonces
      		// En la columna 1 de precios se guardará el costo de la materia prima
      		Para i<-1 Hasta 6 Con Paso 1 Hacer
      			Escribir "Precio materia prima de " + productos[i] Sin Saltar
      			Leer precios[i,1]
      			// En la columna 2 de precios se guardará  el costo de la mano de obra
      			// En la columna 3 de precios se guardará  el gasto de fabricación
      			Segun i Hacer
      				1:
      					precios[i,2] <- (precios[i,1]*80)/100
      					precios[i,3] <- (precios[i,1]*28)/100
      				2:
      					precios[i,2] <- (precios[i,1]*85)/100
      					precios[i,3] <- (precios[i,1]*35)/100
      				3:
      					precios[i,2] <- (precios[i,1]*75)/100
      					precios[i,3] <- (precios[i,1]*28)/100
      				4:
      					precios[i,2] <- (precios[i,1]*75)/100
      					precios[i,3] <- (precios[i,1]*30)/100
      				5:
      					precios[i,2] <- (precios[i,1]*80)/100
      					precios[i,3] <- (precios[i,1]*30)/100
      				6:
      					precios[i,2] <- (precios[i,1]*85)/100
      					precios[i,3] <- (precios[i,1]*35)/100
      			FinSegun
      		FinPara
      			// En la columna 4 de precios se guardará el costo de producción
      			// En la columna 5 de precios se guardará el precio de venta
      			Para i<-1 Hasta 6 Con Paso 1 Hacer
      				precios[i,4] <- precios[i,1]+precios[i,2]+precios[i,3]
      				precios[i,5] <- precios[i,4]+(precios[i,4]*45)/100
      			FinPara
      			
      			Para i<-1 Hasta 6 Con Paso 1 Hacer
      				Escribir ""
      				Escribir "Cod: ", i, " - ", productos[i]
      				Escribir "--------------------------------------"
      				Escribir "Costo materia prima = ", precios[i,1]
      				Escribir "Costo mano de obra = ", precios[i,2]
      				Escribir "Gastos de fabricación = ", precios[i,3]
      				Escribir "Costo de producción = ", precios[i,4]
      				Escribir "Precio de venta = ", precios[i,5]
      				Escribir N, " días x ", precios[i,4], " = ", N*precios[i,4], " total costo producción"
      				Escribir N, " días x ", precios[i,5], " = ", N*precios[i,5], " total ventas"
      			FinPara
      			
      	SiNo
      		Escribir "El número de días tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
  • Carolina Galindo dice:

    Hola, me pueden ayudar a realizar en PseInt un algoritmo para determinar alguna actividad social apropiada dada una determinada edad?
    Edades -Actividad
    =18- Excursiones, Viajes, Estudios Profesionales
    se los agradecería demasiado,Gracias 🙂

    • terepebernal dice:

      ¡Hola Carolina! ¿Así?

      Algoritmo ejemploCondicional
      	Definir edad Como Entero
      	
      	Escribir "EDAD: " Sin Saltar
      	Leer edad
      	
      	Si (edad==18) Entonces
      		Escribir "Excursiones, Viajes, Estudios Profesionales" 
      	FinSi
      FinAlgoritmo
  • David Vásquez dice:

    Hola me puede ayudar con este algoritmo por favor Realizar código que se ejecute indefinido número de veces hasta que el usuario digite “SI” para terminar la ejecución del código.

    Guion:

    1. El script debe solicitar el ingreso de un numero N por teclado e identificar los múltiplos de 3 que existen en el rango de [1, N].

    2. Validar que el número no sea menor que 1 ni mayor que 1000

    3. Sumar los múltiplos de 3.

    4. Una vez obtenido la suma de los múltiplos de tres obtener el promedio.

    • terepebernal dice:
      Algoritmo ejemploEnteros6
      	Definir salir Como Cadena
      	Definir N, i, mult3, sumaMult3 Como Entero
      	
      	Mientras !Mayusculas(salir)=='SI' Hacer
      		Escribir ""
      		Escribir "NÚMERO: " Sin Saltar
      		Leer N
      		mult3<-0
      		sumaMult3<-0
      		Si (N<1 Y N>1000) Entonces
      			Escribir "El número tiene que se mayor que cero y menor que 1000. Inténtelo de nuevo"
      		SiNo
      			Para i<-1 Hasta N Con Paso 1 Hacer
      				Si (i%3==0) Entonces
      					Escribir i, " es múltiplo de 3"
      					mult3 <- mult3+1
      					sumaMult3 <- sumaMult3+i
      				FinSi
      			FinPara
      			Escribir ""
      			Escribir "En el rango [1,", N, "] hay ", mult3, " múltiplos de 3"
      			Escribir "Suman ", sumaMult3, " y su promedio es igual a ", sumaMult3/mult3
      		FinSi
      		Escribir ""
      		Escribir "Para salir escriba SI..." Sin Saltar
      		Leer salir
      	FinMientras
      FinAlgoritmo
  • Yina Vanegas dice:

    Hola me pueden ayudar con este algoritmo porfavor

    Julián, es un vendedor de equipos tecnológicos de la empresa “TECNO” cuyo
    salario básico diario es $80.000 y realiza N ventas durante el día. Beatriz, la
    administradora de la empresa, requiere identificar cuántas de las ventas fueron
    menores o iguales a $100.000, cuántas fueron mayores a $100.000 pero menores
    a $500.000, y cuántas fueron mayores o iguales a $500.000.

    Además, Beatriz requiere identificar el monto de ventas por cada categoría de su
    interés:

    ● Categoría A: ventas <=$100.000
    ● Categoría B: ventas>$100000 y ventas <$500.000
    ● Categoría C: ventas>=$500.000

    Adicionalmente, Beatriz desea conocer el monto total de las ventas realizadas por
    Julián (suma de los montos de todas las categorías) y el valor promedio de las
    ventas diarias.

    Otra información importante para Beatriz es conocer el valor que debe pagarle a
    Julián por el trabajo del día. Tener en cuenta que Julián recibe bonificaciones
    diarias de la siguiente forma: Si realiza ventas superiores a $1.500.000 se otorgará
    un incremento al salario, equivalente al 3% de las ventas del día.

    Al finalizar el día, se debe calcular el valor a pagar a Julián, especificando: pago
    básico y el valor de la bonificación recibida.

    Diseñar un algoritmo que le permita a Beatriz conocer toda la información que es
    de su interés. Por favor verifique que los valores ingresados sean positivos (no se
    permiten valores menores a cero).

    • terepebernal dice:

      ¡Hola Yina! Creo que no me he dejado nada. Saludos

      Algoritmo ejemploVentas
      	Definir i, N, catA, catB, catC Como Entero
      	Definir ventas, impA, impB, impC, salBasico, bonificacion Como Numero
      	impA <- 0
      	impB <- 0
      	impC <- 0
      	salBasico <- 80000
      	bonificacion <- 0
      	Escribir "NÚMERO DE VENTAS: " Sin Saltar
      	Leer N
      	Escribir ""
      	
      	Si (N>=1) Entonces
      		Dimension ventas(N)
      		Para i<-1 Hasta N Con Paso 1
      			Repetir
      				Escribir "VENTA Nº ", i, " ($): " Sin Saltar
      				Leer ventas(i)
      				Si (ventas(i)<=0) Entonces
      					Escribir "El importe de la venta tiene que ser mayor que cero"
      				FinSi
      			Mientras Que (ventas(i)<=0)
      		FinPara
      	SiNo
      		Escribir "El número de ventas debe ser mayor que cero"
      	FinSi
      	
      	catA <- ventasCatA(N, ventas, impA)
      	catB <- ventasCatB(N, ventas, impB)
      	catC <- ventasCatC(N, ventas, impC)
      	
      	Escribir ""
      	Escribir "VENTAS CATEGORÍA A = ", catA, ", $", impA
      	Escribir "VENTAS CATEGORÍA B = ", catB, ", $", impB
      	Escribir "VENTAS CATEGORÍA C = ", catC, ", $", impC
      	Escribir "TOTAL VENTAS = $", impA+impB+impC
      	Escribir "PROMEDIO VENTAS = $", (impA+impB+impC)/(catA+catB+catC)
      	
      	Si (impA+impB+impC)>=1500000 Entonces
      		bonificacion <- ((impA+impB+impC)*3)/100
      	FinSi
      	
      	Escribir ""
      	Escribir "SALARIO BASICO JULIÁN = $", salBasico
      	Escribir "BONIFICACIÓN VENTAS JULIÁN = $", bonificacion
      	Escribir "SALARIO TOTAL JULIÁN = $", salBasico+bonificacion
      FinAlgoritmo
      
      Funcion resultado <- ventasCatA(n, datos, importe Por Referencia)
      	Definir i, resultado Como Entero
      	
      	resultado <- 0
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si (datos(i)<=100000) Entonces
      			resultado <- resultado + 1
      			importe <- importe + datos(i)
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion resultado <- ventasCatB(n, datos, importe Por Referencia)
      	Definir i, resultado Como Entero
      	
      	resultado <- 0
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si (datos(i)>100000) Y (datos(i)<500000) Entonces
      			resultado <- resultado + 1
      			importe <- importe + datos(i)
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion resultado <- ventasCatC(n, datos, importe Por Referencia)
      	Definir i, resultado Como Entero
      	
      	resultado <- 0
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si (datos(i)>=500000) Entonces
      			resultado <- resultado + 1
      			importe <- importe + datos(i)
      		FinSi
      	FinPara
      FinFuncion
  • JoshMorales dice:

    Quisiera saber como escribir un Algoritmo que permita ingresar el nombre de 1 estudiante y 4 notas de sus cursos y
    sacar el promedio de esas notas.

    • terepebernal dice:

      ¡Hola JoshMorales! Para este algoritmo solo necesitas la instrucción Definir, que sirve para declarar las variables donde se van a guardar los datos, la instrucción Escribir, que sirve para mostrar texto por pantalla, la instrucción Leer, que sirve para recoger datos por teclado y guardarlos en sus variables, y hallar el promedio. Saludos

      Algoritmo ejemploNotas2
      	Definir nombre Como Cadena
      	Definir nota1, nota2, nota3, nota4 Como Numero
      	
      		Escribir "NOMBRE: " Sin Saltar
      		Leer nombre
      		Escribir "NOTA 1 " Sin Saltar
      		Leer nota1
      		Escribir "NOTA 2 " Sin Saltar
      		Leer nota2
      		Escribir "NOTA 3 " Sin Saltar
      		Leer nota3
      		Escribir "NOTA 4 " Sin Saltar
      		Leer nota4
      		
      		Escribir ""
      		Escribir "PROMEDIO = ", (nota1+nota2+nota3+nota4)/4
      FinAlgoritmo
  • Rafael Nava dice:

    Por favor me ayudan con este ejercicio explicando con comentarios de como se elabora ?

    Hacer un algoritmo por medio de funciones que reciben parámetros permita determinar el seno, coseno, tangente de un número. Además, se debe generar un número aleatorio entre 1 y un número ingresado por el usuario. El programa debe preguntarle al usuario si desea realizar una operación por medio de un menú de operaciones para que escoja.

    Ejemplo: Mostrar el seno de un número.
    Escribir “El seno del número es: “, SEN(numero)

    • terepebernal dice:

      ¡Hola Rafael! Saludos

      Algoritmo ejemploMenu2
      	Definir num Como Numero
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	// Se pide un número por teclado
      	Escribir "Escriba un número: " Sin Saltar
      	Leer num
      	
      	// Mientras no se elija la opción 6 no se podrá salir del menú
      	salir <- Falso
      	Repetir
      		// Mostrar menú por pantalla
      		Escribir ""
      		Escribir "        MENU         "
      		Escribir "---------------------"
      		Escribir "(1) Mostrar el seno "
      		Escribir "(2) Mostrar el coseno"
      		Escribir "(3) Mostrar la tangente"
      		Escribir "(4) Mostrar un número aleatorio"
      		Escribir "(5) Ingresar otro número"
      		Escribir "(6) Salir"
      		Escribir "Elija una opción..." Sin Saltar
      		Leer opcMenu
      		
      		// Opciones del menú
      		Segun opcMenu Hacer
      			1:
      				Escribir ""
      				Escribir "El seno del número es: ", SEN(num)
      			2:
      				Escribir ""
      				Escribir "El seno del número es: ", COS(num)
      			3:
      				Escribir ""
      				Escribir "La tangente del número es: ", TAN(num)
      			4:
      				// Se usará la función trunc(X) ya que la función aleatorio(A,B) es solo para enteros
      				Escribir ""
      				Escribir "Número aleatorio entre 1 y ", num, ": ", Aleatorio(1,trunc(num))
      			5:
      				Escribir ""
      				Escribir "Ingrese un nuevo número: " Sin Saltar
      				Leer num
      			6:
      				salir <- Verdadero
      			De Otro Modo:
      				// Para opciones que no sean del 1 al 6
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
  • Paola Velázquez dice:

    Hola Tere, disculpa la molestia , lo que pasa es que tengo que resolver un algoritmo para calificación de mi examen pero se me complica un poco resolverlo. El problema es el siguiente.
    Una empresa de modelaje desea saber cuántas personas contratadas cumplen con ciertos estándares, pues le solicitan modelos prototipo para la puesta en marcha de una película, por lo que desea ordenar los datos de sus empleados, para ello, solicitará los siguientes datos:

     Nombre
     Sexo, (‘M’ o «F),
     Edad
     Altura (en Metros)
     Peso (en Kilos)
     Color de los ojos (1 para azules, 2 para castaños y 3 para los demás)
     Color del cabello (1 para castaño, 2 para rubio y 3 para los demás)

    Diseñe un algoritmo para que solicite los datos de n empleados e imprima los nombres de:

    o Todas las mujeres de cabello rubio y ojos azules, que miden entre 1.65 metros y 1.75 metros y que pesen menos de 60 kilos.
    o Todos los hombres de ojos castaños de más de 1.70 metros de altura y que pesen entre 60 y 75 kilos.

    Espero me pudieras apoyar, muchas gracias

    • terepebernal dice:

      ¡Hola Paola! A ver si te sirve así, o al menos de guía. Saludos

      Algoritmo protPelicula
      	Definir nombre Como Cadena
      	Definir sexo Como Caracter
      	Definir edad, ojos, cabello, numEmpleados Como Entero
      	Definir altura, peso Como Numero
      	
      	Escribir "NÚMERO DE EMPLEADOS: " Sin Saltar
      	Leer numEmpleados
      	Escribir ""
      	
      	Si numEmpleados>=1 Entonces
      		Dimension empleados[numEmpleados,6]
      		Definir empleados Como Cadena
      		i <- 1
      		Repetir
      			Escribir "EMPLEADO Nº ", i
      			Escribir "NOMBRE: " Sin Saltar
      			Leer nombre
      			empleados[i,1] <- nombre
      			Escribir "SEXO (M/F): " Sin Saltar
      			Leer sexo
      			empleados[i,2] <- sexo
      			Escribir "ALTURA (M): " Sin Saltar
      			Leer altura
      			empleados[i,3] <- ConvertirATexto(altura)
      			Escribir "PESO (KG): " Sin Saltar
      			Leer peso
      			empleados[i,4] <- ConvertirATexto(peso)
      			Escribir "COLOR OJOS (1-AZUL, 2-CASTAÑO, 3-OTRO): " Sin Saltar
      			Leer ojos
      			empleados[i,5] <- ConvertirATexto(ojos)
      			Escribir "COLOR CABELLOS (1-CASTAÑO, 2-RUBIO, 3-OTRO): " Sin Saltar
      			Leer cabello
      			empleados[i,6] <- ConvertirATexto(cabello)
      			Escribir ""
      			i <- i+1
      		Hasta Que (i>numEmpleados)
      	SiNo
      		Escribir "El número de empleados tiene que ser mayor o igual a 1"
      		Escribir ""
      	FinSi
      
      	Escribir "MUJERES:"
      	Para i<-1 Hasta numEmpleados Con Paso 1
      		Si (Mayusculas(empleados[i,2])=='F' Y empleados[i,5]=='1'  Y empleados[i,6]=='2') Entonces
      			Si (ConvertirANumero(empleados[i,3]) >= 1.65) Y (ConvertirANumero(empleados[i,3]) <= 1.75) Entonces
      				Si (ConvertirANumero(empleados[i,4]) < 60) Entonces
      					Escribir empleados[i,1]
      				FinSi
      			FinSi
      		FinSi
      	FinPara
      	
      	Escribir "HOMBRES:"
      	Para i<-1 Hasta numEmpleados Con Paso 1
      		Si (Mayusculas(empleados[i,2])=='M' Y empleados[i,5]=='2') Entonces
      			Si (ConvertirANumero(empleados[i,3]) > 1.70) Entonces
      				Si (ConvertirANumero(empleados[i,4]) >= 60) Y (ConvertirANumero(empleados[i,4]) ;lt;= 75) Entonces
      					Escribir empleados[i,1]
      				FinSi
      			FinSi
      		FinSi
      	FinPara
      FinAlgoritmo
  • abraham hernadez dice:

    hola buenas tarde me podría ayudar con un psedocodigo de kaprekar numero

    • terepebernal dice:

      ¡Hola Abraham! Según la Wikipedia: «En matemáticas, un número de Kaprekar es aquel entero no negativo tal que, en una base dada, los dígitos de su cuadrado en esa base pueden ser separados en dos números que sumados dan el número original. El ejemplo más simple es 9, su cuadrado es 81 y 8+1= 9. Otro ejemplo es el número 703, su cuadrado es 494209». Creo que funciona bien, el algoritmo está hecho para números en base 10.
      He visto que también existe la Constante de Kaprekar, pero he pensado que te referías al número, no a la constante. Saludos.

      Algoritmo numKaprekar
      	Definir num Como Entero
      	Definir j, k Como Numero
      	Definir cuadrado Como Cadena
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	j<-0
      	k<-0
      	cuadrado <- ConvertirATexto(num*num)
      	Si num>=1 Entonces
      		Si esKaprekar(num,cuadrado,j,k) Entonces
      			Escribir "El cuadrado de ", num, " es ", cuadrado
      			Escribir j, " + ", k, " = ", num
      			Escribir "Es un número kaprekar"
      		SiNo
      			Escribir "No es un número kaprekar"
      		FinSi
      	SiNo
      		Escribir "El número tiene que ser un entero positivo. Inténtelo de nuevo"
      	FinSi
      FinAlgoritmo
      
      Funcion OK <- esKaprekar(n, n2, j Por Referencia,k Por Referencia)
      	Definir OK Como Logico
      	Definir i, digitos Como Entero
      	
      	OK <- Falso
      	digitos <- Longitud(n2)
      	// Se va descomponiendo el número en dos y suuándolos de la siguiente manera:
      	// Primero se suma el primer dígitos con el resto de dígitos,
      	// si no el igual al número original, se suman los dos primeros dígitos con el resto,
      	// así hasta que la suma de los números es igual al número original o
      	// hasta que se termina la cadena.
      	Para i<-1 Hasta digitos-1 Con Paso 1
      		// Como hemos pasado j y k por referencia, cuando se vuelva al programa principal
      		// se mantendrán las dos partes del número.guardadas en estas variables
      		j <- ConvertirANumero(Subcadena(n2,1,i)) // Primera parte del número
      		k <- ConvertirANumero(Subcadena(n2,i+1,digitos)) // Segunda parte del número
      		Si (j+k==n) Y (k>=1)  Entonces
      			i<-digitos-1		// Si la suma de las partes da el número originalm
      			OK <- Verdadero	// se sale del bucle, es un número de Kaprekar	
      		SiNo
      			OK <- Falso
      		FinSi
      	FinPara
      FinFuncion
      • terepebernal dice:

        He actualizado el algoritmo, ya que no cumplía una condición para algunos números. En la definición de Kaprekar (según Wikipedia) también dice: «El segundo número puede comenzar por cero, pero debe ser positivo. Un ejemplo es 999, ya que 9992=998001 y se descompone en 998 y 001. Por esto mismo, el número 100 no es un número de Kaprekar, ya que 100²=10000 y se descompone en 100 + 00, pero el segundo sumando no es positivo».
        No lo tuve en cuenta y los números en los que pasaba eso, como por ejemplo 100, si resultaban números de Kaprekar, según el algoritmo. Para corregirlo basta con añadir a la condición de la función esKaprekar «Y (k>=1)»

  • John Montero dice:

    Buen día, que pena la molestia pero me gustaría me colaboraras con el siguiente algoritmo.
    Elaborar un algoritmo que dado el nivel de azucar en la sangre de una persona en ayunas indique el tipo de diabetes de acuerdo a la siguiente tabla:
    * Debajo de 108mg/dl normal
    *Entre 108 y 125 mg/dl pre diabetico
    *más de 125 mg/dl Diabetico

    Gracias

    • terepebernal dice:

      ¡Hola John! Saludos

      Algoritmo tipoDiabetes
      	Definir azucar Como Numero
      	
      	Escribir "AZÚCAR EN SANGRE (MG/DL): " Sin Saltar
      	Leer azucar
      	
      	Si (azucar<108) Entonces
      		Escribir "NORMAL"
      	FinSi
      	Si (azucar>=108 Y azucar<=125) Entonces
      		Escribir "PRE DIABÉTICO"
      	FinSi
      	Si (azucar>125) Entonces
      		Escribir "DIABÉTICO"
      	FinSi
      FinAlgoritmo
      • John Montero dice:

        gracias pero no escribi que deben hacerse con condicionales anidadas , no se puede con simples y se debe implementar funciones.
        Gracias

        • terepebernal dice:

          Entonces podría ser algo así:

          Algoritmo tipoDiabetes
          	Definir azucar Como Numero
          	Definir tipoD Como Cadena
          	
          	Escribir "AZÚCAR EN SANGRE (MG/DL): " Sin Saltar
          	Leer azucar
          	
          	tipoD <- tDiabetes(azucar)
          	
          	Escribir tipoD
          FinAlgoritmo
          
          Funcion tipo <- tDiabetes(n)
          	Definir tipo Como Cadena
          	
          	Si (n<108) Entonces
          		tipo <- "NORMAL"
          	SiNo
          		Si (n>=108 Y n<=125) Entonces
          			tipo <- "PRE DIABÉTICO"
          		SiNo
          			Si (n>125) Entonces
          				tipo <-  "DIABÉTICO"
          			FinSi
          		FinSi
          	FinSi
          FinFuncion
  • Josue dice:

    Calcular a, si a=(b+3)/2

    • terepebernal dice:

      ¡Hola Josue!

      Algoritmo ejFormula
      	Definir a, b Como Numero
      	
      	Escribir "Valor de b: " Sin Saltar
      	Leer b
      	
      	a <- (b+3)/2
      	
      	Escribir "a = " + ConvertirATexto(a)
      FinAlgoritmo

      Saludos

  • ORDOÑEZ BETANCOURT JONATHAN dice:

    Me seria de mucha si me ayudar a plantear este problema:
    Usando la estructura Repetir Hasta Que, cree un programa que
    permita al usuario jugar contra el computador, el juego consiste en que el
    computador generará un número aleatorio entre 0 y 20, el usuario debe digitar la
    diferencia entre el 20 y el número generado por el computador, por ejemplo:
    a. si el computador imprime un 15, el usuario debe digitar 5 para ganar
    b. si el computador imprime un 2, el usuario debe digitar 18 para ganar
    c. si el computador imprime un 0, el usuario debe digitar 20 para ganar
    El juego tendrá 10 intentos y al finalizar el programa debe imprimir los resultados,
    por ejemplo:
    Computador : 6
    Usuario : 4
    Gana el computador

    • terepebernal dice:

      ¡Hola Jonathan! Se trata de adivinar el número aleatorio, luego la condición a cumplir para sumar puntos es que el número que digita el usuario sea igual al número aleatorio. Y después comprobar que número de puntos es mayor. A ver si te sirve. Saludos

      Algoritmo ejemploJuego
      	Definir numAl, num, puntosJ, puntosC, intentos Como Entero
      	
      	puntosJ <- 0
      	puntosC <- 0
      	intentos <- 1
      	Repetir
      		numAl <- Aleatorio(0, 20)
      		Escribir "(" + ConvertirATexto(intentos) Sin Saltar
      		Escribir ") DIFERENCIA = " Sin Saltar
      		Escribir 20-numAl
      		Escribir "NÚMERO: " Sin Saltar
      		Leer num
      		
      		Si (num==numAl) Entonces
      			puntosJ <- puntosJ+1
      		SiNo
      			puntosC <- puntosC+1
      		FinSi
      		
      		intentos <- intentos+1
      	Hasta Que (intentos>10)
      	
      	Escribir "Computador: " + ConvertirATexto(puntosC)
      	Escribir "Usuario: " + ConvertirATexto(puntosJ)
      	
      	Si (puntosC>puntosJ) Entonces
      		Escribir "Gana el computador"
      	SiNo
      		Si (puntosC==puntosJ) Entonces
      			Escribir "¡¡Empate!!"
      		SiNo
      			Escribir "Gana el usuario"
      		FinSi
      	FinSi
      FinAlgoritmo
  • David Vásquez dice:

    Hola! me ayudas a resolver este problema?

    Utilizando la congruencia de Zeller escriba un código que encuentre un número de día de la semana para una fecha ingresada por un usuario. El programa debe preguntarle al usuario el año, mes y día (en este orden) y genera un valor que indica un día de la semana (0 = sábado, 1 = domingo, 2 = lunes, 3 = martes, 4 = miércoles, 5 = jueves, 6 = viernes).

    • terepebernal dice:

      ¡Hola David! He utilizado la fórmula que muestra la wikipedia aquí, para el calendario gregoriano. He tenido que usar la función de PSeInt trunc para coger solo la parte entera de los resultados de las divisiones, sino daría error y no funcionaría. Saludos

      Algoritmo CongZeller
      	Definir year, month, day, a, b, m, d Como Entero
      	Dimension n(7) 
      	Definir n Como Cadena
      	
      	n(0) <- "domingo"
      	n(1) <- "lunes"
      	n(2) <- "martes"
      	n(3) <- "miércoles"
      	n(4) <- "jueves"
      	n(5) <- "viernes"
      	n(6) <- "sábado"
      	
      	Escribir "AÑO: " Sin Saltar
      	Leer year
      	Escribir "MES: " Sin Saltar
      	Leer month
      	Escribir "DÍA: " Sin Saltar
      	Leer day
      	
      	Si (month>=1 Y month<=12) Y (day>=1 Y day<=31) Entonces
      		a <- trunc((14 - month)/12)
      		b <- year - a
      		m <- month + 12 * a - 2
      		
      		d <- (day + b + (trunc(b/4)) - trunc((b/100)) + trunc((b/400)) + trunc((31*m)/12)) MOD 7
      		
      		Escribir "Será " + n(d)		
      	SiNo
      		Escribir "El mes debe tener valores del 1 al 12 y el día del 1 al 31"
      	FinSi
      FinAlgoritmo
      • josselyn dice:

        hey, que genial gracias, me ayudaste mucho, pero una pregunta: al intentar realizar la ejecucion me dice que,Lin 7 (inst 1): ERROR 303: Subindice (0) fuera de rango (1…7) y me gustaria saber como se arregla eso? gracias.

        • terepebernal dice:

          ¡Hola Josselyn! Me alegra saberlo. Ese error da por el índice 0 del arreglo n[7]. Para evitar que te de el error al ejecutarlo tienes que marcar la opción «utilizar indices en arreglos y cadenas en base 0» en el perfil de PSeInt (menú configurar -> opciones del lenguaje, botón personalizar). Saludos

          • terepebernal dice:

            Ten en cuenta que si cambias esa opción y la guardas, se quedará configurado así para el resto de algoritmos que hagas con ese perfil.

  • Deni dice:

    Me podría ayudar con estos ejercicios. necesito usar la sentencia do-while para que el programa no salga de ejecución hasta que selecciones salir.(Ya tengo una parte)

    1.-Escribir 'Escribe el número de la tabla'
    	Leer tabla
    	Para x<-1 Hasta 10 Hacer
    		Escribir x,' x ',tabla,' = ',x*tabla
    	FinPara
    
    2.-Escribir "Ingresa un valor numérico para que sea potenciado"
    	Leer valor1
    	Para x<-1 Hasta 10 Con Paso 1 Hacer
    		Escribir valor1, " ^ ", x, " = ", valor1^x
    	Fin Para
    
    3.-Escribir "Ingresa un saludo"
    	Leer palabra
    	Para i<-1 Hasta 10 Con Paso 1 Hacer
    		Escribir palabra
    	Fin Para
    • terepebernal dice:

      ¡Hola Deni! De esta manera solo podrá salir si pulsa la tecla «S». Saludos

      Algoritmo ejSalirRepetirHQ
      	Definir salir Como Caracter
      	
      	Repetir 
      		Escribir 'Escribe el número de la tabla' 
      		Leer tabla 
      		
      		Para x<-1 Hasta 10 Hacer 
      			Escribir x,' x ',tabla,' = ',x*tabla 
      		FinPara
      		
      		Escribir "Ingresa un valor numérico para que sea potenciado" 
      		Leer valor1 
      		
      		Para x<-1 Hasta 10 Con Paso 1 Hacer 
      			Escribir valor1, " ^ ", x, " = ", valor1^x 
      		FinPara
      		
      		Escribir "Ingresa un saludo" 
      		Leer palabra 
      		
      		Para i<-1 Hasta 10 Con Paso 1 Hacer 
      			Escribir palabra
      		FinPara
      		
      		Escribir "Pulsa S para salir...." Sin Saltar
      		Leer salir
      	Hasta Que (salir=='s' O salir=='S')
      FinAlgoritmo
  • Nahuel dice:

    Resuelva el siguiente problema: Dado un número entero positivo superior a 1000 y no divisible por 10, muestre

    la cantidad de dígitos que posee
    la suma de los dígitos impares.
    el numero que forman sus dígitos pares
    Observación: tener en cuenta que necesitará obtener cada uno de los dígitos por separado para poder trabajarlos.

    El programa finalizará cuando la suma de los dígitos impares (del numero ingresado) sea múltiplo de 3. Al finalizar, mostrar la cantidad de números que se trabajaron

    • terepebernal dice:

      ¡Hola Nahuel! Creo que no me dejo nada. Saludos

      Algoritmo ejemploEnteros5
      	Definir num, cantidad Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	cantidad <- 0
      	Repetir
      		Escribir ""
      		Escribir "NÚMERO ENTERO: " Sin Saltar
      		Leer num
      		cantidad <- cantidad+1
      		
      		Si (num>1000) Y !(num%10==0) Entonces
      			Escribir "TIENE " + ConvertirATexto(Longitud(ConvertirATexto(num))) +  " DÍGITOS"
      			Escribir "SUMA DÍGITOS IMPARES = " + ConvertirATexto(sumaDigImpares(num))
      			Escribir "NÚMERO FORMADO POR DÍGITOS PARES = " + ConvertirATexto(ConvertirANumero(numDigPares(num)))
      			Si (sumaDigImpares(num)%3==0) Entonces
      				Escribir "LA SUMA DE LOS DÍGITOS IMPARES ES MÚLTIPLO DE TRES"
      				Escribir "NÚMEROS TRABAJADOS = " + ConvertirATexto(cantidad)
      				salir <- Verdadero
      			FinSi
      		SiNo
      			Escribir ""
      			Escribir "El número tiene que ser un entero positivo superior a 1000 y no divisible por 10"
      		FinSi
      	Hasta Que (salir)
      FinAlgoritmo
      
      Funcion suma <- sumaDigImpares(n)
      	Definir suma, i, digito Como Entero
      	
      	suma <- 0
      	Para i<-1 Hasta Longitud(ConvertirATexto(n)) Con Paso 1
      		digito <- ConvertirANumero(Subcadena(ConvertirATexto(n),i,i))
      		Si !(digito%2==0) Entonces
      			suma <- suma + digito
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion num <- numDigPares(n)
      	Definir num Como Cadena
      	Definir i, digito Como Entero
      	
      	num <- ""
      	Para i<-1 Hasta Longitud(ConvertirATexto(n)) Con Paso 1
      		digito <- ConvertirANumero(Subcadena(ConvertirATexto(n),i,i))
      		Si (digito%2==0) Entonces
      			num <- num + ConvertirATexto(digito)
      		FinSi
      	FinPara
      FinFuncion
  • Alvaro dice:

    Hola !! ,, soy nuevo me encantaria que me des una mano… la verdad tenemos clases virtuales y no entiendo mucho ,, te paso uno de los tanto problemas que me dan… D:

    Dado el siguiente fragmento de algortimo, donde las variables acum y cont son enteras ..¿ cual es el varlo final de la variable acum ?}

    acum =5) ENTONCES
    si (acum-cont > 0 ) ENTONCES
    acum <- acum+cont DIV2
    sino
    acum <- acum+cont DIV3
    FIN_SI
    FIN_SI
    FIN_PARA.

    seleccione la resp correcta.. 0 , 7 , ninguna opcion , 3 , 10 ..

    Bueno gracias.,., saludos!!

    • terepebernal dice:

      ¡Hola Álvaro! A ver si me sé explicar, según lo veo yo. Si te fijas, el trozo de código termina con un FIN_PARA, de este PARA es de donde va a venir el valor de cont, y va a depender de eso, porque el principio del código es acum=5) ENTONCES, luego si pasa esa condición (suponiendo que no le acompañe otra condición antes), sabemos que acum es igual a 5. Por otro lado, según sea el valor de cont, así será el valor de acum-cont, y nos enviará a una operación u otra (acum <- acum+cont/2 o acum <- acum+cont/3) y de una de estas dos saldrá el valor final de acum, que como cambiará, no volverá a ser 5, por lo que no volverá a entrar en la condición inicial, suponiendo que sea Si acum=5 Entonces, únicamente. Y además, hay que tener en cuenta que en las operaciones que cambian acum, la prioridad está en la división, no es lo mismo acum <- acum+cont/3 que acum <- (acum+cont)/3. En resumen, si la primera condición es solo que acum sea igual a 5, dependiendo de los valores que tome cont en la estructura PARA, acum podrá terminar con los valores 0, 3, 7 o 10.
      Te he hecho un algoritmo en PSeInt con los distintos valores que debería tomar cont para dar las opciones de la respuesta. Están comentados, si le quitas el símbolo // inicial y lo pones en otro, podrás ir viéndolos uno a uno. Además PSeInt, tiene la opción «Ejecutar Paso a Paso» donde puedes ir viendo paso a paso los valores que van tomando las variables y lo que va pasando en el algoritmo, quizá con esa herramienta puedas verlo mejor.

      Algoritmo ejemploEnteros4
      	Definir acum, cont Como Entero
      	
      	acum <- 5
      //	Para cont<-(15) Hasta (16) Con Paso 1 	// Con este valor dará 10
      	Para cont<-(6) Hasta (7) Con Paso 1 	// Con este valor dará 7
      //	Para cont<-(-10) Hasta (-9) Con Paso 1 	// Con este valor dará 0
      //	Para cont<-(-4) Hasta (-3) Con Paso 1 	// Con este valor dará 3
      		Si (acum=5) Entonces	// Por esta condición solo va a pasar la primera vez, pues su valor cambiará
      			Si (acum-cont>0) Entonces
      				acum <- acum+cont/2
      			SiNo
      				acum <- acum+cont/3
      			FinSi
      		FinSi
      	FinPara
      	
      	Escribir "ACUM = " + ConvertirATexto(acum)
      FinAlgoritmo
      

      Saludos

  • Denis dice:

    Buenas tardes me ayuda a resolver este algoritmo porfa.
    Crear un algoritmo en PSeInt que permita almacenar los datos de una lista de estudiantes con sus respectivas calificaciones de acuerdo al siguiente detalle:
    • Para N estudiante
    • 2 exámenes parciales de 20 % cada uno
    • 1 examen final de 30%
    • Asistencia 10%
    • Prácticas 20%
    • La Nota final es la suma de todas las notas obtenidas.
    Debe almacenar los nombres de los n estudiantes
    Debe permitir ver las notas por examen parcial, final, asistencia, prácticas.
    Debe permitir ver nombres y las notas finales.
    Para la resolución usar Vectores o Matrices

    • terepebernal dice:

      ¡Hola Denis! Saludos

      Algoritmo ejemploNotas1
      	Definir N, i Como Entero
      	Definir opcMenu Como Entero
      	Definir salir Como Logico
      	
      	// Almacenar datos
      	Escribir "NÚMERO DE ESTUDIANTES: " Sin Saltar
      	Leer N
      	
      	Dimension estudiantes(N)
      	Definir estudiantes Como Cadena
      	Dimension notas(N,6)
      	Para i<-1 Hasta N Con Paso 1
      		Escribir ""
      		Escribir "ESTUDIANTE Nº " + ConvertirATexto(i)
      		Escribir "----------------------------"
      		Escribir "NOMBRE: " Sin Saltar
      		Leer estudiantes(i) 
      		Escribir "EXAMEN PARCIAL 1  " Sin Saltar
      		Leer notas(i,1)
      		Escribir "EXAMEN PARCIAL 2  " Sin Saltar
      		Leer notas(i,2)
      		Escribir "EXAMEN FINAL      " Sin Saltar
      		Leer notas(i,3)
      		Escribir "ASISTENCIA        " Sin Saltar
      		Leer notas(i,4)
      		Escribir "PRÁCTICAS         " Sin Saltar
      		Leer notas(i,5)
      		notas(i,6) <- notas(i,1)+notas(i,2)+notas(i,3)+notas(i,4)+notas(i,5)
      		Escribir "NOTA FINAL        = " + ConvertirATexto(notas(i,6))
      	FinPara
      	
      	// Ver datos
      	salir <- Falso
      	Mientras !salir Hacer
      		Escribir ""
      		Escribir "           MENU           "
      		Escribir "--------------------------"
      		Escribir "(1) Notas examen parcial 1"
      		Escribir "(2) Notas examen parcial 2"
      		Escribir "(3) Notas examen final"
      		Escribir "(4) Notas asistencia"
      		Escribir "(5) Notas prácticas"
      		Escribir "(6) Nota final"
      		Escribir "(7) Salir"
      		Escribir "Eliga una opción..." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      		
      		Segun opcMenu Hacer
      			1:
      				Escribir "NOTAS EXAMEN PARCIAL 1"
      				Escribir "----------------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,1))
      				FinPara
      			2:
      				Escribir "NOTAS EXAMEN PARCIAL 2"
      				Escribir "----------------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,2))
      				FinPara
      			3:
      				Escribir "NOTAS EXAMEN FINAL"
      				Escribir "------------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,3))
      				FinPara
      			4:
      				Escribir "NOTAS ASISTENCIA"
      				Escribir "----------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,4))
      				FinPara
      			5:
      				Escribir "NOTAS PRÁCTICAS"
      				Escribir "---------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,5))
      				FinPara
      			6:
      				Escribir "NOTAS FINALES"
      				Escribir "---------------"
      				Para i<-1 Hasta N Hacer
      					Escribir estudiantes(i) + ": " + ConvertirATexto(notas(i,6))
      				FinPara
      			7:
      				salir <- Verdadero
      		FinSegun
      	FinMientras
      FinAlgoritmo
  • JOSE ANTONIO ZAVALA MARTINEZ dice:

    Buenas noches ! Podrias ayudarme,,,
    Se tiene la necesidad de implementar un sistema para la captura de datos de una competencia de atletismo; se pretende capturar: nombre del corredor, edad, nacionalidad, peso y sexo, el máximo de participantes a capturar será 20, solo que se tienen varias condiciones: si el participante tiene menos de 20 años se registrará en 5 km., si tiene más de 20 y menos de 30 años se asignara a 10 km. y si está fuera de ese rango se inscribirá en 7 km, así mismo se debe de considerar que el usuario deberá de elegir si desea capturar otro participante o no.

    • terepebernal dice:

      ¡Hola Jose Antonio! Saludos

      Algoritmo sisAtletismo
      	Definir nombre, nacionalidad, sexo Como Cadena
      	Definir edad, numCorredor Como Entero
      	Definir peso, carrera5, carrera7, carrera10 Como Numero
      	Definir salir Como Caracter
      	
      	salir <- "n"
      	numCorredor <- 1
      	carrera5 <- 0
      	carrera7 <- 0
      	carrera10 <- 0
      	
      	Mientras !(salir=="s" O salir=="S") Hacer
      		Escribir "CORREDOR Nº " + ConvertirATexto(numCorredor) +  ": " Sin Saltar
      		Leer nombre
      		Escribir "EDAD: " Sin Saltar
      		Leer edad
      		Escribir "NACIONALIDAD: " Sin Saltar
      		Leer nacionalidad
      		Escribir "PESO: " Sin Saltar
      		Leer peso
      		Escribir "SEXO: " Sin Saltar
      		Leer sexo
      		
      		Si (edad < 20) Entonces
      			carrera5 <- carrera5+1
      		FinSi
      		Si (edad >= 20) Y (edad <= 30) Entonces
      			carrera10 <- carrera10+1
      		FinSi
      		Si (edad > 30) Entonces
      			carrera7 <- carrera7+1
      		FinSi
      		numCorredor <- numCorredor+1
      		Si (numCorredor > 20) Entonces
      			Escribir "Se ha llegado al máximo de corredores (20)"
      			salir <- "s"
      		SiNo			
      			Escribir "Pulsar cualquier tecla para nuevo corredor, Para salir la tecla S..." Sin Saltar
      			Leer salir
      		FinSi
      	FinMientras
      	
      	Escribir ""
      	Escribir "TOTAL CORREDORES = " + ConvertirATexto(numCorredor-1)
      	Escribir "CARRERA 5 KM = " + ConvertirATexto(carrera5)
      	Escribir "CARRERA 7 KM = " + ConvertirATexto(carrera7)
      	Escribir "CARRERA 10 KM = " + ConvertirATexto(carrera10)
      FinAlgoritmo
  • Iván dice:

    Hola. Me ayudas a resolver este ejercicio porfa?

    Dada una cadena, devolver la frase sin espacios en blanco.

    • terepebernal dice:

      ¡Hola Iván!

      Algoritmo cadenaSinBlancos
      	Definir cadTexto1, cadTexto2 Como Cadena
      	Definir i Como Entero
      	
      	Escribir "CADENA DE TEXTO: " Sin Saltar
      	Leer cadTexto1
      	
      	Para i<-1 Hasta Longitud(cadTexto1) Con Paso 1
      		Si !(Subcadena(cadTexto1,i,i) == " ") Entonces
      			cadTexto2 <- cadTexto2 + Subcadena(cadTexto1,i,i)
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir cadTexto2
      FinAlgoritmo

      Saludos

  • Francisco dice:

    Hola, buenos días. ¿Me podrías ayudar con este ejercicio por favor?

    Introducir 50 valores (0-100) en un vector de manera que no haya ninguno repetido.
    Después, ordena el vector anterior en sentido creciente.

    • terepebernal dice:

      ¡Hola Francisco! Saludos

      Algoritmo ejemploVector
      	Dimension vector(50)
      	Definir vector, num, i Como Entero
      	
      	// Introducir en vector 50 valores (0-100) descartando repetidos
      	i<-1
      	Repetir
      		Escribir "NÚMERO: " Sin Saltar
      		Leer num
      		
      		Si (num>=0 Y num<=100) Entonces
      			Si (i==1) Entonces
      				vector(1) <- num
      				i <- i+1
      			SiNo
      				Si esRepetido(vector, i-1, num) Entonces
      					Escribir "Está repetido"
      				SiNo
      					vector(i) <- num
      					i <- i+1
      				FinSi
      			FinSi
      		SiNo
      			Escribir "Valores del 0 al 100, por favor. Inténtelo de nuevo"
      		FinSi
      		Escribir "Faltan " + ConvertirATexto(50-(i-1))
      	Hasta Que (i>50)
      	
      	// Ordenar vector
      	ordenCreciente(vector, 50)
      	
      	// Mostrar vector
      	Escribir ""
      	Para i<-1 Hasta 50 Con Paso 1
      		Escribir "(" + ConvertirATexto(i) + ") - " + ConvertirATexto(vector(i))
      	FinPara
      FinAlgoritmo
      
      Funcion OK <- esRepetido(vector, final, num)
      	Definir i Como Entero
      	Definir OK Como Logico
      	
      	OK <- Falso
      	
      	Para i<-1 Hasta final Con Paso 1
      		Si (num == vector(i)) Entonces
      			OK <- Verdadero
      			i <- final
      		SiNo 
      			OK <- Falso
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion ordenCreciente(serie Por Referencia, cantidad)
      	// Ordenación por selección en orden creciente
      	Definir i,  j, min Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (cantidad-1) Con Paso 1
      		min<-i
      		j<-i+1
      		Mientras (j<=cantidad) Hacer 
      			Si serie[j] < serie[min] Entonces
      				min<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-serie[i]
      		serie[i]<-serie[min]
      		serie[min]<-temp
      	FinPara
      FinFuncion
  • Ángel Rodríguez dice:

    Hola
    Me podrías ayudar con este problema Realice un algoritmo que determine 10 opciones a realizar en un MENU, estas opciones deben ir definidas por numeros del 1 al 0. Debe hacer uso de funciones, operadores y expresiones matematicas. Dobe, además, utilizar la estructura repetir y segin para poder ser calticado el reactivo de forma correcta
    1 – Seno, Coseno ArcoTangente

    2. Logaritmo Natural. Funcion Exponencial

    3. Truncar Redondear 4- Raiz Cuadrada

    5- Valor Absoluto

    8- Separar parte entera y decimal

    7- Hallar Factorial 8 – Averiguar si o primo

    9. Ingresar Otro Numero a- para Sau

    • terepebernal dice:

      ¡Hola Ángel! Saludos

      Algoritmo menuMates
      	Definir opcMenu, i Como Entero
      	Definir salir Como Logico
      	Definir num Como Numero
      	
      	salir <- Falso
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	Repetir
      		Escribir ""
      		Escribir "                    MENU                  "
      		Escribir "------------------------------------------"
      		Escribir "1.- Seno, coseno y arcotangente"
      		Escribir "2.- Logaritmo natural. Función exponencial"
      		Escribir "3.- Truncar y redondear"
      		Escribir "4.- Raíz cuadrada"
      		Escribir "5.- Valor absoluto"
      		Escribir "6.- Separar parte entera y decimal"
      		Escribir "7.- Hallar factorial"
      		Escribir "8.- Averiguar si es primo"
      		Escribir "9.- Ingresar otro número"
      		Escribir "0.- Salir"
      		Escribir "Elige una opción......." Sin Saltar
      		Leer opcMenu
      		
      		Segun opcMenu Hacer
      			1:
      				Escribir "SENO DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir SEN(num)
      				Escribir "COSENO DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir COS(num)
      				Escribir "ARCOTANGENTE DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir ATAN(num)
      			2:
      				Escribir "LOGARITMO NATURAL DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir LN(num)
      				Escribir "FUNCIÓN EXPONENCIAL DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir EXP(num)
      			3:
      				Escribir "TRUNCAMIENTO DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir TRUNC(num)
      				Escribir "REDONDEO DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir REDON(num)
      			4:
      				Escribir "RAÍZ CUADRADA DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir RAIZ(num)
      			5:
      				Escribir "VALOR ABSOLUTO DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir ABS(num)
      			6:
      				Escribir "PARTE ENTERA DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir TRUNC(num)
      				Escribir "PARTE DECIMAL DE " + ConvertirATexto(num) + " = " Sin Saltar
      				Escribir num-TRUNC(num)
      			7:
      				Si (num>=1) Entonces
      					Escribir ConvertirATexto(num) + "! = " + ConvertirATexto(factorial(num))
      				SiNo
      					Escribir "El número tiene que ser mayor o igual que 1"
      				FinSi
      			8:
      				Si (num>=1) Entonces
      					Si esPrimo(num) Entonces
      						Escribir ConvertirATexto(num) + " es un número primo"
      					SiNo
      						Escribir ConvertirATexto(num) + " no es un número primo"
      					FinSi
      				SiNo
      					Escribir "El número tiene que ser mayor o igual que 1"
      				FinSi
      			9:
      				Escribir ""
      				Escribir "OTRO NÚMERO: " Sin Saltar
      				Leer num
      			0:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir ""
      				Escribir "La opción no es correcta. Inténtelo de nuevo"
      		Fin Segun
      	Hasta Que (salir)
      FinAlgoritmo
      
      Funcion OK <- esPrimo(n)
      	Definir i, esDivisible Como Entero
      	Definir OK Como Logico
      	
      	Para i<-1 Hasta n Con Paso 1
      		Si (n%i==0) Entonces
      			esDivisible <- esDivisible+1
      		FinSi
      	FinPara
      	Si (esDivisible==2) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
      
      Funcion resultado <- factorial(n) 
      	Definir resultado Como Numero
      	resultado <- 1
      	Para i<-1 Hasta n Con Paso 1
      		resultado <- resultado * i 
      	FinPara
      FinFuncion
  • David dice:

    Hola! Podrías ayudarme con esto por favor?

    Busque un número dentro de una matriz de 4×3 (números aleatorios de 0-50).
    Determinar y visualizar su posición (o posiciones), si existe, o el mensaje correspondiente en caso contrario.

    • terepebernal dice:

      ¡Hola David! He añadido un trocito de código tras el comentario // Mostrar matriz por pantalla, para que puedas ver que funciona. Si no quieres que se muestre, puedes borrar ese trozo y funcionará igual.

      Algoritmo ejemploMatriz4x3
      	Dimension matriz(4,3)
      	Definir matriz, i, j, num, encontrado Como Entero
      	
      	// Rellenar matriz de números aleatorios de 0 a 50
      	Para i<-1 Hasta 4 Con Paso 1
      		Para j<-1 Hasta 3 Con Paso 1
      			matriz(i,j) <- Aleatorio(0,50)
      		FinPara
      	FinPara
      	
      	// Mostrar matriz por pantalla
      	Para i<-1 Hasta 4 Con Paso 1
      		Para j<-1 Hasta 3 Con Paso 1
      			Escribir matriz(i,j) Sin Saltar
      			Escribir "  " Sin Saltar
      		FinPara
      		Escribir ""
      	FinPara
      	
      	// Pedir el número a buscar
      	Escribir "NÚMERO A BUSCAR (0 - 50): " Sin Saltar
      	Leer num
      	Escribir ""
      	
      	encontrado <- 0
      	
      	// Buscar el número en cada posición y si existe mostrar posición
      	Si (num>=0 Y num<=50) Entonces
      		Para i<-1 Hasta 4 Con Paso 1
      			Para j<-1 Hasta 3 Con Paso 1
      				Si (num == matriz(i,j)) Entonces
      					Escribir "Encontrado en la posición (" Sin Saltar
      					Escribir ConvertirATexto(i) + ", " Sin Saltar
      					Escribir ConvertirATexto(j) + ")"
      					encontrado <- encontrado+1
      				FinSi
      			FinPara
      		FinPara
      		Si (encontrado == 0) Entonces
      			Escribir "El número " + ConvertirATexto(num) + " no se encuentra"
      		FinSi
      	FinSi
      FinAlgoritmo
  • Julio dice:

    Crear un algoritmo que pida al usuario una edad de x persona. El programa
    determinará si x persona puede votar tomando en cuenta que,si es menor que
    18 años no puede votar, si es mayor de 18 años si puede votar.

  • diego dice:

    Hola me podrian ayudar con este algoritmo,recien empiezo la carrera y no entiendo nada : Mostrar el mensaje “Hola Mundo” n veces, donde n debe ser ingresado por el usuario.

    • terepebernal dice:

      ¡Hola Diego! Basta con que utilices:

      • la instrucción Escribir, que sirve para mostrar expresiones por pantalla
      • la instrucción Leer con una variable, que sirve para pedir un valor por teclado
      • y la estructura Para, aunque puedes hacerlo también con Mientras o Repetir, que sirven para ejecutar las intrucciones que se encierran dentro de su estructura repetidas veces

      En esta página puedes encontrar lo básico para empezar a usar PSeInt, ten paciencia.

      Algoritmo holaMundoNveces
      	Definir i, N Como Entero
      	
      	Escribir "NÚMERO DE VECES: " Sin Saltar
      	Leer N
      	Escribir ""
      	
      	Para i<-1 Hasta N Con Paso 1
      		Escribir ConvertirAtexto(i) Sin Saltar
      		Escribir " Hola Mundo"
      	FinPara
      FinAlgoritmo
  • juan andres dice:

    hola quisiera que me ayudaran a resolver este algoritmo
    Crear un algoritmo de n posiciones que reciba las notas definitivas de los
    estudiantes y regrese la siguiente información
    a) cuantos estudiantes obtuvieron un desempeño bajo (nota menos de 3.5)
    b) cuantos estudiantes obtuvieron un desempeño básico (nota de 3.6 a 3.9)
    c) cuantos estudiantes obtuvieron un desempeño alto (nota de 4.0 a 4.5)
    d) cuantos estudiantes obtuvieron un desempeño superior (nota de 4.6 a
    5.0)

    • terepebernal dice:

      ¡Hola Juan Andrés! En el enunciado pones para desempeño bajo, menos de 3.5 y en el siguiente desempeño de 3.6 a 3.9, luego no se incluye la opción de igual a 3.5. En el algoritmo sí he incluido 3.5, si no hay que incluirlo basta con quitar el símbolo «=» y dejar «<«. Saludos

      Algoritmo ejemploNotas
      	Definir nombre Como Cadena
      	Definir nota Como Numero
      	Definir salir Como Caracter
      	Definir dBajo, dBasico, dAlto, dSuperior Como Entero
      	
      	Mientras !(salir=="s" O salir=="S")
      		Escribir "NOMBRE ESTUDIANTE: " Sin Saltar
      		Leer nombre
      		Escribir "NOTA DEFINITIVA: " Sin Saltar
      		Leer nota
      		
      		Si (nota<=3.5) Entonces
      			dBajo <- dBajo+1
      		FinSi
      		Si (nota>=3.6 Y nota<=3.9) Entonces
      			dBasico <- dBasico+1
      		FinSi
      		Si (nota>=4.0 Y nota<=4.5) Entonces
      			dAlto <- dAlto+1
      		FinSi
      		Si (nota>=4.6 Y nota<=5) Entonces
      			dSuperior <- dSuperior+1
      		FinSi
      
      		Escribir ""
      		Escribir "Pulse la tecla S para salir...." Sin Saltar
      		Leer salir
      		Escribir ""
      	FinMientras
      	
      	Escribir ""
      	Escribir "DESEMPEÑO BAJO = " + ConvertirATexto(dBajo) + " ESTUDIANTES"
      	Escribir "DESEMPEÑO BÁSICO = " + ConvertirATexto(dBasico) + " ESTUDIANTES"
      	Escribir "DESEMPEÑO ALTO = " + ConvertirATexto(dAlto) + " ESTUDIANTES"
      	Escribir "DESEMPEÑO SUPERIOR = " + ConvertirATexto(dSuperior) + " ESTUDIANTES"
      FinAlgoritmo
  • David dice:

    Introducida una cadena, genera un código obtenido de la siguiente manera:
    a) Carácter del código: Primer carácter del nombre
    b) Carácter del código: Tercer carácter del nombre
    c) Carácter del código: Último carácter del nombre
    d) Carácter del código: Cantidad de caracteres del nombre

    • terepebernal dice:

      ¡Hola David! ¿Podría ser algo así?

      Algoritmo obtenerCodigo
      	Definir nombre, codigo Como Cadena
      	
      	Escribir "NOMBRE: " Sin Saltar
      	Leer nombre
      	
      	codigo <- Subcadena(nombre,1,1)
      	codigo <- codigo+Subcadena(nombre,3,3)
      	codigo <- codigo+Subcadena(nombre,Longitud(nombre),Longitud(nombre))
      	codigo <- codigo+ConvertirATexto(Longitud(nombre))
      	
      	Escribir "CÓDIGO: " + codigo
      FinAlgoritmo

      Saludos

  • David Vásquez dice:

    Hola! me ayudas a resolver este problema?
    Crear un algoritmo que realice las siguientes tareas:

    1. Leer un numero N por teclado
    2. Validar si el numero N ingresado sea mayor que 1, caso contrario enviar por pantalla un mensaje (Error debe ingresar un número mayor de 1) que haga notar el error y solicitar al usuario que ingrese un número mayor que uno, NO dejar que avance el código mientras no se cumpla la condición.
    3. En el caso de que el número ingresado sea 2 mostrar el mensaje “El 2 Es el primer número primo” y finalizar la ejecución del código.
    4. El código deberá identificar si el numero ingresado N es un número es primo o no es número primo.
    5. Verificar cuantos números primos existen en el rango de [2 a N] y mostrarlo en pantalla.
    6. Sumar los números primos que haya encontrado en el rango de [2 a N].
    7. Obtener el promedio de los números primos encontrados en el rango de [2 a N].

    • terepebernal dice:

      ¡Hola David! Teniendo en cuenta que un número primo solo es divisible por dos números (él mismo y la unidad), yo haría algo así. Espero que lo entiendas y te sirva para aprender. Yo he ido haciéndolo punto por punto (del 1 al 7) y probando cada uno después de hacerlo. Si tienes alguna duda, dímelo. Saludos

      Algoritmo ejemploPrimos
      	Definir N, i, primos, sumaPrimos Como Entero
      	Definir promedioPrimos Como Numero
      	Definir primoOK Como Logico
      	
      	Repetir
      		Escribir "NÚMERO: " Sin Saltar
      		Leer N
      		Si !(N>1) Entonces
      			Escribir "Error debe ingresar un número mayor que 1"
      		SiNo
      			Si (N==2) Entonces
      				Escribir "El 2 es el primer número primo"
      			SiNo
      				primoOK <- esPrimo(N)
      				Si primoOK Entonces
      					Escribir "Es un número primo"
      				SiNo
      					Escribir "No es un número primo"
      				FinSi
      			FinSi
      			
      			primos <- 0
      			sumaPrimos <- 0
      			promedioPrimos <- 0
      			
      			Para i<-2 Hasta N Con Paso 1
      				primoOK <- esPrimo(i)
      				Si primoOK Entonces
      					primos <- primos+1
      					sumaPrimos <- sumaPrimos+i
      				FinSi
      			FinPara
      			
      			promedioPrimos <- sumaPrimos/primos
      			Escribir ""
      			Escribir "De 2 a " + ConvertirATexto(N) + " hay " Sin Saltar
      			Escribir ConvertirATexto(primos) " números primos"
      			Escribir "La suma de esos números primos es " + ConvertirATexto(sumaPrimos)
      			Escribir "Y el promedio es " + ConvertirATexto(promedioPrimos)
      		FinSi
      	Hasta Que (N>1)
      FinAlgoritmo
      
      Funcion OK <- esPrimo(num)
      	Definir i, esDivisible Como Entero
      	Definir OK Como Logico
      	
      	Para i<-1 Hasta num Con Paso 1
      		Si (num%i==0) Entonces
      			esDivisible <- esDivisible+1
      		FinSi
      	FinPara
      	Si (esDivisible==2) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
  • Raul Nieto dice:

    Holaa que tal !

    Diseñe un algoritmo que solicite al usuario su altura y de acuerdo a
    lo siguiente imprima:
    – Si la altura de una persona es menor o igual a 150 cm envíe el
    mensaje: “Persona de baja estatura”
    – Si la altura está entre 151 y 170 escriba el mensaje: “Persona
    de estatura promedio”
    – Si la altura está entre 171 y 175 escriba el mensaje: “Persona
    alta”
    – Si la altura es mayor a 175 escriba el mensaje: “Persona
    muy alta”

    • terepebernal dice:

      ¡Hola Raúl! Saludos

      Algoritmo tipoEstatura
      	Definir altura Como Numero
      	
      	Escribir "ESTATURA EN CM: " Sin Saltar
      	Leer altura
      	
      	Escribir ""
      	
      	Si altura<=150 Entonces
      		Escribir "Persona de baja estatura"
      	FinSi
      	
      	Si (altura>=151 Y altura<=170) Entonces
      		Escribir "Persona de estatura promedio"
      	FinSi
      	
      	Si (altura>=171 Y altura<=175) Entonces
      		Escribir "Persona alta"
      	FinSi
      	
      	Si altura>175 Entonces
      		Escribir "Persona muy alta"
      	FinSi
      FinAlgoritmo
  • Raul Nieto dice:

    Buen dia que tal !

    El siguiente algoritmos se debe desarrollar con la sentencia case o
    casos

    1. La tienda “BABY” comercializa ropa para bebés, cuenta con
    varias sedes en el municipio de Palmira y ha decidido realizar
    un descuento a las compras de sus clientes. Si el cliente
    compra en la sede Norte, se aplica un descuento del 20%; si
    compra en la sede Sur, el descuento será de 25%; y para
    cualquier otra sede, el descuento será del 50%. Realice un
    algoritmo para determinar el descuento realizado a la compra
    de un cliente, debe informar el nuevo valor de la compra
    según el descuento aplicado.

    • terepebernal dice:
      Algoritmo ejemploCasos
      	Definir opcDto Como Entero
      	Definir importe Como Numero
      	
      	Escribir "IMPORTE COMPRA: " Sin Saltar
      	Leer importe
      	
      	Escribir ""
      	Escribir "        MENU          "
      	Escribir "----------------------"
      	Escribir "(1) SEDE NORTE"
      	Escribir "(2) SEDE SUR"
      	Escribir "(3) OTRAS SEDES"
      	Escribir "Elige una opción (1 - 3)" Sin Saltar
      	Leer opcDto
      	
      	Escribir ""
      	Segun opcDto Hacer
      		1:
      			Escribir "IMPORTE TOTAL = " + ConvertirATexto(importe-(importe*20/100))
      		2:
      			Escribir "IMPORTE TOTAL = " + ConvertirATexto(importe-(importe*25/100))
      		3:
      			Escribir "IMPORTE TOTAL = " + ConvertirATexto(importe-(importe*50/100))
      		De Otro Modo:
      			Escribir "La opción no es correcta. Inténtelo de nuevo"
      	Fin Segun
      FinAlgoritmo
  • MARIA JOSE dice:

    Me ayudas con este ejercicio plis:
    Escriba un algoritmo que permita clasificar una fecha. Considere lo siguiente

    a. Si la fecha es entre el 22 de marzo y el 21 de junio: indicar que es OTOÑO
    b. Si la fecha es entre el 22 de junio y el 21 de septiembre: indicar que es INVIERNO
    c. Si la fecha es entre el 22 de septiembre y el 21 de diciembre: indicar que es
    PRIMAVERA
    d. Si la fecha es entre el 22 de diciembre y el 21 de marzo: indicar que es VERANO

    Debe ingresar día, mes y año por separado.

    • terepebernal dice:

      ¡Hola María José! El algoritmo permite meter el día 29 para febrero sin tener en cuenta si es bisiesto o no. Saludos.

      Algoritmo clasFecha
      	Definir day, month, year Como Entero
      	
      	Escribir "DÍA: " Sin Saltar
      	Leer day
      	Escribir "MES: " Sin Saltar
      	Leer month
      	Escribir "AÑO: " Sin Saltar
      	Leer year
      	
      	Si ((day>=22 Y day<=31) Y month==3) O ((day>=1 Y day<=30) Y month==4) O ((day>=1 Y day<=31) Y month==5) O ((day>=1 Y day<=21) Y month==6) Entonces
      		Escribir "ES OTOÑO"
      	FinSi
      	
      	Si ((day>=22 Y day<=30) Y month==6) O ((day>=1 Y day<=31) Y (month>=7 Y month<=8)) O ((day>=1 Y day<=21) Y month==9) Entonces
      		Escribir "ES INVIERNO"
      	FinSi
      	
      	Si ((day>=22 Y day<=30) Y month==9) O ((day>=1 Y day<=31) Y month==10) O ((day>=1 Y day<=30) Y month==11) O ((day>=1 Y day<=21) Y month==12) Entonces
      		Escribir "ES PRIMAVERA"
      	FinSi
      	
      	Si ((day>=22 Y day<=31) Y month==12) O ((day>=1 Y day<=31) Y month==1) O ((day>=1 Y day<=29) Y month==2) O ((day>=1 Y day<=21) Y month==3) Entonces
      		Escribir "ES VERANO"
      	FinSi
      FinAlgoritmo
  • Marcelo dice:

    Necesito un algoritmo que calcule cuánto combustible se gasta un vehículo durante una distancia dada, teniendo en cuenta que el vehículo recorre 30 kilómetros por cada galón consumido.

    • terepebernal dice:

      ¡Hola Marcelo! El algoritmo sería:

      Algoritmo ejCombustible
      	Definir distancia, galones Como Numero
      	
      	Escribir "DISTANCIA (KM): " Sin Saltar
      	Leer distancia
      	
      	Si distancia>0 Entonces
      		Escribir "GALONES CONSUMIDOS = " + ConvertirATexto(distancia/30)
      	SiNo
      		Escribir "La distancia no es correcta. Tiene que ser mayor que cero."
      	FinSi
      FinAlgoritmo

      Saludos

  • Eduardo Perez dice:

    Escribe un pseudocódigo que convierta galones en litros. El programa deberá desplegar galones de 10 a 20 en incrementos de un galón y los litros equivalentes correspondientes. Use la relación que 1 galón contiene 3.785 litros.

    • terepebernal dice:

      ¡Hola Eduardo! Con una estructura repetitiva y un producto es suficiente. Saludos

      Algoritmo litrosGalones
      	Definir i Como Entero
      	
      	Para i<-10 Hasta 20 Con Paso 1
      		Escribir i, " galones = ", (i*3785)
      	FinPara	
      FinAlgoritmo
  • Eduardo Perez dice:

    A un joven adolescente le prometieron darle $100 pesos cuando cumpliera 15 años de edad y duplicar el regalo en cada cumpleaños subsiguiente hasta que el regalo excediera $10,000 pesos. Escriba un programa para determinar qué edad tendrá el joven cuando se cumpla esa cantidad y cuál será la cantidad total recibida.

    • terepebernal dice:

      ¡Hola Eduardo! Yo lo haría así. Si te fijas lees el algoritmo y se parece mucho al enunciado. Saludos

      Algoritmo regaloEdad
      	Definir edad, pesos Como Entero
      	
      	edad<-15
      	pesos<-100
      	
      	Repetir
      		edad<-edad+1
      		pesos<-pesos*2
      	Hasta Que (pesos>10000) 
      	
      	Escribir "EDAD = " + ConvertirATexto(edad)
      	Escribir "PESOS = " + ConvertirATexto(pesos)
      FinAlgoritmo
  • Paul dice:

    1.- Mostrar la lista de los N primeros términos de la serie: 1, 4, 7, 10, 13, … y calcular
    cuánto suman.

    2.- IngresarN notas y calcular el número de alumnos aprobados. (nota mínima aprobatoria
    es igual a 12).

    3.-. Ingresar números enteros, hasta que se ingrese un número negativo y determinar
    cuántos de los números ingresados son pares y cuántos son impares.

    Please necesito ayuda con esto de la cuarentena no entiendo a mi profesor.

    • terepebernal dice:

      ¡Hola Paul! El primer ejercicio:

      Algoritmo listaSuma3
      	Definir cantidad, i, num Como Entero
      	
      	Escribir "CANTIDAD NÚMEROS:  " Sin Saltar
      	Leer cantidad
      	
      	i<-1
      	num<-1
      	
      	Repetir
      		Escribir num,  "  " Sin Saltar
      		num<-num+3
      		i<-i+1
      	Hasta Que  (i==cantidad)
      	
      	Escribir ""
      FinAlgoritmo

      El segundo ejercicio:

      Algoritmo notasAprobados
      	Definir alumnos, i , aprobados Como Entero
      	Definir nota Como Numero
      	
      	aprobados<-0
      	Escribir "Nº DE ALUMNOS: " Sin Saltar
      	Leer alumnos
      	Escribir ""
      	
      	Para i<-1 Hasta alumnos Con Paso 1
      		Escribir "NOTA ALUMNO Nº " + ConvertirATexto(i) + ": " Sin Saltar
      		Leer nota
      		
      		Si (nota>=12) Entonces
      			aprobados<-aprobados+1
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir "NÚMERO DE APROBADOS = ", aprobados
      FinAlgoritmo

      Y el tercer ejercicio:

      Algoritmo ejemploEnteros3
      	Definir num, i, pares, impares Como Entero
      	
      	i<-1
      	pares<-0
      	impares<-0
      	num<-0
      	
      	Repetir
      		Escribir "NÚMERO ENTERO: " Sin Saltar
      		Leer num
      		
      		Si (num%2==0) Entonces
      			Si (num>=0) Entonces
      				pares<-pares+1
      			FinSi
      		SiNo
      			Si (num>=0) Entonces
      				impares<-impares+1
      			FinSi
      		FinSi
      		
      		i<-i+1
      	Hasta Que (num<0)
      		
      	Escribir "NÚMEROS PARES = " + ConvertirATexto(pares)
      	Escribir "NÚMEROS IMPARES = " + ConvertirATexto(impares)
      FinAlgoritmo

      Saludos

  • MARIA JOSE dice:

    HOLA TENGO QUE HACER UN ALGORITMO PARA CLASIFICAR CORREO DE LA SIGUIENTE FORMA, HE TRATADO CON UNA VARIABLE DE CARACTER PERO NO ME RESULTA BIEN.

    Escriba un algoritmo que permita clasificar sus correos. Considere lo siguiente

    a. Si en el asunto es: “compra”, “vende”, indicar que es MARKETING
    b. Si en el asunto es: “postula”, “matriculate”, indicar que es INSTITUTO
    c. Si en el asunto es: “credito”, “cuotas”, indicar BANCO
    d. En caso que no se cumpla ninguna de las anteriores, mostrar correo VALIDO

    • terepebernal dice:

      ¡Hola María José! A ver si te sirve con este. Saludos

      Algoritmo ordCorreos
      	Definir asunto Como Cadena
      	
      	Escribir "ASUNTO DEL CORREO: " Sin Saltar
      	Leer asunto
      	
      	Si (Minusculas(asunto)=="compra") O (Minusculas(asunto)=="vende") Entonces
      		Escribir "MARKETING"
      	SiNo
      		Si (Minusculas(asunto)=="postula") O (Minusculas(asunto)=="matriculate") Entonces
      			Escribir "INSTITUTO"
      		SiNo
      			Si (Minusculas(asunto)=="credito") O (Minusculas(asunto)=="cuotas") Entonces
      				Escribir "BANCO"
      			SiNo
      				Escribir "VALIDO"
      			FinSi
      		FinSi
      	FinSi
      FinAlgoritmo
  • Alberto Cañas dice:

    Mostrar una serie de números definidos por el usuario (el usuario elige dónde comienza y dónde termina la serie) en forma de creciente o decreciente, dependiendo de la selección del usuario. me puedes ayudar por favor?

    • terepebernal dice:

      ¡Hola Alberto! No sé si es esto lo que quieres. A ver si te sirve. Saludos

      Algoritmo serieOrdenada
      	Definir cantidad , i Como Entero
      	Definir num Como Numero
      	Definir orden Como Caracter
      	
      	Escribir "¿Cantidad de números para la serie? " Sin Saltar
      	Leer cantidad
      	Si !(cantidad>=1) Entonces
      		Escribir "La cantidad ha de ser mayor o igual a 1. Inténtalo de nuevo"
      	SiNo
      		Dimension serie(cantidad)
      		Definir serie Como Numero
      		
      		Para i<-1 Hasta cantidad Con Paso 1
      			Escribir "NÚMERO: " Sin Saltar
      			Leer num
      			serie(i)<-num
      		FinPara
      		
      		Escribir "¿Creciente o Decreciente? (C/D) " Sin Saltar
      		Leer orden
      		
      		Si (orden=="c") O (orden=="C") Entonces
      			ordenCreciente(serie, cantidad)		
      			//  Muestra el arreglo después de ordenarlo de menor a mayor
      			Para i<-1 Hasta cantidad Con Paso 1
      				Escribir serie[i] Sin Saltar
      				Escribir "  " Sin Saltar
      			FinPara
      			Escribir " "
      		SiNo
      			Si (orden=="d") O (orden=="D") Entonces
      				ordenDecreciente(serie, cantidad)
      				//  Muestra el arreglo después de ordenarlo de mayor a menor
      				Para i<-1 Hasta cantidad Con Paso 1
      					Escribir serie[i] Sin Saltar
      					Escribir "  " Sin Saltar
      				FinPara
      				Escribir " "
      			FinSi
      		FinSi
      	
      	FinSi
      FinAlgoritmo
      
      Funcion ordenCreciente(serie Por Referencia, cantidad)
      	// Ordenación por selección en orden creciente
      	Definir i,  j, min Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (cantidad-1) Con Paso 1
      		min<-i
      		j<-i+1
      		Mientras (j<=cantidad) Hacer 
      			Si serie[j] < serie[min] Entonces
      				min<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-serie[i]
      		serie[i]<-serie[min]
      		serie[min]<-temp
      	FinPara
      FinFuncion
      
      Funcion ordenDecreciente(serie Por Referencia, cantidad)
      	// Ordenación por selección en orden decreciente
      	Definir i,  j, max Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (cantidad-1) Con Paso 1
      		max<-i
      		j<-i+1
      		Mientras (j<=cantidad) Hacer 
      			Si serie[j] > serie[max] Entonces
      				max<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-serie[i]
      		serie[i]<-serie[max]
      		serie[max]<-temp
      	FinPara
      FinFuncion
  • Diego dice:

    Buenas tardes, necesito a mi calculadora ya terminada, tengo la estructura principal del algortimo, con pantalla de bienvenida, pantalla de menu para las operaciones y que cuando se selecciona la operacion, llama a la funcion que se va a realizar…

    Todo bien, pero necesito agregar que cuando lea los valores que se ingresan para realizar la operacion seleccionada, me lea solo numeros y si se ingresa una letra envie un mensaje de tipo error y vuelva a pedir el valor para que se ingrese correctamente…

    El tema es que, no se como agregarlo y en que parte

    • terepebernal dice:

      ¡Hola Diego! A ver si te sirve la función esNumerico. Recibe como parámetro una cadena de texto y devuelve Verdadero si la cadena es numérica, y Falso si no es numérica. Al no poder ver tu código, no sé si puede venirte bien, ni en que lugar de tu algoritmo podrías colocarlo. Espero que te sirva. Si necesitas alguna aclaración dímelo. Saludos

      Algoritmo cadNumerica
      	Definir num Como Cadena
      	Definir i Como Entero
      	Definir seguir Como Logico
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	Si !esNumerico(num) Entonces
      		Escribir "No es un número. Inténtalo de nuevo"
      	SiNo
      		Escribir "El número es ", num
      	FinSi
      FinAlgoritmo
      
      Funcion OK<-esNumerico(cad)
      	Definir c_numeros Como Cadena
      	Definir OK Como Logico
      	Definir i ,j Como Entero
      	
      	OK <- Falso
      	c_numeros <- "0123456789"
      	
      	Para i<-1 Hasta Longitud(cad) Con Paso 1
      		Para j<-1 Hasta Longitud(c_numeros) Con Paso 1
      			Si (Subcadena(cad,i,i) == Subcadena(c_numeros,j,j)) Entonces
      				OK<-Verdadero
      				j<-Longitud(c_numeros)
      			SiNo
      				Si j==Longitud(c_numeros) Entonces
      					OK<-Falso
      					i<-Longitud(cad)
      				FinSi
      			FinSi
      		FinPara
      	FinPara	
      FinFuncion
  • Malena dice:

    Buenas tardes ¡¡ alguien me podría ayudar con estos ejercicios¡¡
    1) Dado un número natural, mostrar sus dígitos de derecha a izquierda.
    2)Dada una lista de N números enteros y dado un número natural K,
    mostrar cantidad de números ingresados múltiplos de K.

    • terepebernal dice:

      ¡Hola Malena! Para el primer ejercicio:

      Algoritmo ejemploNaturales
      	Definir numN, i Como Entero
      	
      	Escribir "NÚMERO NATURAL:  " Sin Saltar
      	Leer numN
      	
      	Si !(numN>=1) Entonces
      		Escribir "No es un número natural. Inténtalo de nuevo"
      	SiNo
      		Para i<-Longitud(ConvertirATexto(numN)) Hasta 1  Con Paso -1
      			Escribir Subcadena(ConvertirATexto(numN), i, i) Sin Saltar
      			Si !(i==1) Entonces
      				Escribir  "  " Sin Saltar
      			SiNo
      				Escribir ""
      			FinSi
      		FinPara
      	FinSi
      FinAlgoritmo

      Y para el segundo ejercicio:

      Algoritmo ejemploEnteros2
      	Definir numK, numZ, multiplosK Como Entero
      	Definir seguir Como Caracter
      	
      	Escribir "NÚMERO NATURAL:  " Sin Saltar
      	Leer numK
      	Escribir ""
      	Si !(numK>=1) Entonces
      		Escribir "No es un número natural. Inténtalo de nuevo"
      	SiNo
      		Repetir
      			Escribir "NÚMERO ENTERO: " Sin Saltar
      			Leer numZ
      			
      			Si (numZ%numK==0) Entonces
      				multiplosK<-multiplosK+1
      			FinSi
      			
      			Escribir "Para salir pulsa la tecla N..." Sin Saltar
      			Leer seguir
      		Hasta Que (seguir=="n") O (seguir=="N")
      		
      		Escribir ""
      		Escribir "MÚLTIPLOS DE " + ConvertirATexto(numK) + " = " + ConvertirATexto(multiplosK)
      	FinSi
      FinAlgoritmo

      Saludos

  • ESTEBAN ANDRES QUINTERO CANOLES dice:

    hola muy buenas tardes me ayudan con este por favor
    Elabore un programa que lea números enteros mientras sean diferentes de 9999 el programa debe escribir
    • la sumatoria de los números leídos.
    • el producto.
    • la cantidad de números leídos.
    • El mayor número leído.
    • El menor número leído.
    • El numero más cercano a 1000

    • terepebernal dice:

      ¡Hola Esteban! Creo que este resuelve todo el problema. Saludos

      Algoritmo ejemploEnteros
      	Definir i, num, suma, cantidad, numMayor, numMenor, numCerMil Como Entero
      	
      	num<-0
      	suma<-0
      	producto<-1
      	cantidad<-0
      	numMayor<-0
      	numMenor<-0
      	numCerMil<-0
      	
      	Mientras !(num==9999) Hacer
      		Escribir "NÚMERO: " Sin Saltar
      		Leer num
      		
      		suma<-suma+num
      		producto<-producto*num
      		cantidad<-cantidad+1
      		
      		Si !(num==9999) Y (num>numMayor) Entonces
      			numMayor<-num
      		FinSi
      		
      		Si !(num==9999) Y (num<numMenor) Entonces
      			numMenor<-num
      		FinSi
      		
      		Si !(num==9999) Y (Abs(1000-num)<=Abs(1000-numCerMil)) Entonces
      			numCerMil<-num
      		FinSi
      	FinMientras
      	
      	Escribir ""
      	Escribir "SUMA = " + ConvertirATexto(suma-9999)
      	Escribir "PRODUCTO = " + ConvertirATexto(producto/9999)
      	Escribir "CANTIDAD NÚMEROS = " + ConvertirATexto(cantidad-1)
      	Escribir "NÚMERO MAYOR = " + ConvertirATexto(numMayor)
      	Escribir "NÚMERO MENOR = " + ConvertirATexto(numMenor)
      	Escribir "NÚMERO MÁS CERCANO A MIL = " + ConvertirATexto(numCerMil)
      FinAlgoritmo
      
  • Krissia Diaz dice:

    Buenos días . podrían ayudarme con un ejercicio . persona quiere saber el salario que gana mensual con pago base de 3,000 el cual cambia dependiendo del lugar si es de aguchapan aumenta un 20% en cada quincena si es de San Miguel un5% si es de morazan un 10%si es de chalatenango un15%y si es de la unión aumenta 200 y si no es de ningun lugar de estos se pintará solo él el salario definido sueldo base. Por su respuesta muchas gracias.

    • terepebernal dice:

      ¡Hola Krissia! Se podría utilizar una estructura SEGUN y hacer un menú, por ejemplo:

      Algoritmo salarioLugar
      	Definir opcMenu Como Entero
      	
      	Escribir "           MENU           "
      	Escribir "(1) AGUCHAPAN"
      	Escribir "(2) SAN MIGUEL"
      	Escribir "(3) MORAZÁN"
      	Escribir "(4) CHALATENANGO"
      	Escribir "(5) LA UNIÓN"
      	Escribir "(6) OTROS LUGARES"
      	Escribir "Seleccione un lugar (1 - 6)..." Sin Saltar
      	Leer opcMenu
      	
      	Segun opcMenu Hacer
      		1:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000+((3000*20/100)*2))
      		2:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000+((3000*5/100)*2))
      		3:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000+((3000*10/100)*2))
      		4:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000+((3000*15/100)*2))
      		5:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000+200)
      		6:
      			Escribir "SALARIO MENSUAL = " + ConvertirATexto(3000)
      		De Otro Modo:
      			Escribir "No es una opción correcta. Inténtelo de nuevo"
      	FinSegun
      FinAlgoritmo

      Saludos

  • julio dice:

    Haga un programa que genere 3 números aleatorios del 10 al 30.
    Calcular la expresión:
    3(n1)*2(n1^2)*5(n3/2)
    —————————–
    (n1+n2+n3)

    ayuda en algoritmos en pseint porfavor

    • terepebernal dice:

      ¡Hola Julio! La función Aleatorio es propia de PSeInt. Saludos

      Algoritmo tresAleatorios
      	Definir n1, n2, n3 Como Entero
      	Definir resultado Como Numero
      	
      	n1<-Aleatorio(10,30)
      	n2<-Aleatorio(10,30)
      	n3<-Aleatorio(10,30)
      	
      	resultado<-((3*n1)*(2*(n1^2))*(5*(n3/2)))/(n1+n2+n3)
      	
      	Escribir "n1 = " + ConvertirATexto(n1) Sin Saltar
      	Escribir ", n2 = " + ConvertirATexto(n2) Sin Saltar
      	Escribir " y n3 = " + ConvertirATexto(n3) 
      	Escribir ""
      	Escribir "RESULTADO = " + ConvertirATexto(resultado)
      FinAlgoritmo
  • Yina Vanegas dice:

    Hola buenas, me pueden ayudar con estos 3 problemas, por favor…

    II. Los siguientes algoritmos se deben desarrollar con condicionales simples y funciones
    1. Desarrolle un algoritmo que al recibir el parámetro de temperatura en grados centígrados permita devolver el resultado si tiene fiebre o alta NOTA: se considera que tiene fiebre si es mayor a los 37°.

    2. Desarrolle un algoritmo que permita identificar si una persona es hipertensa recibiendo como parámetro la presión sistolíca y diastólica NOTA: presión sistolíca debe ser menos a 120 y la presión diastólica menor a 80, si estos valores son mayores se considera hipertensa, deber retornar un mensaje indicando si es o no Hipertensa.

    III. El siguiente algoritmo se deben hacer con condicionales anidados, no se aceptan simples y debe implementar funciones.

    1. Diseñar un algoritmo que pida un carácter del teclado y de acuerdo a ello, determine si esta es una vocal o una constante, un número o un carácter especial.

    • terepebernal dice:

      ¡Hola Yina! El primero:

      Algoritmo esFiebre
      	Definir temperatura Como Numero
      	
      	Escribir "TEMPERATURA: " Sin Saltar
      	Leer temperatura
      	
      	Si (esAlta(temperatura)==Verdadero) Entonces
      		Escribir "TIENE FIEBRE"
      	SiNo
      		Escribir "NO TIENE FIEBRE"
      	FinSi
      FinAlgoritmo
      
      Funcion OK<-esAlta(n)
      	Definir OK Como Logico
      	
      	OK<-Falso
      	
      	Si n>37 Entonces
      		OK <- Verdadero
      	FinSi
      FinFuncion

      El segundo:

      Algoritmo esHipertensa
      	Definir pr_sistolica, pr_diastolica Como Numero
      	
      	Escribir "PRESIÓN SISTÓLICA: " Sin Saltar
      	Leer pr_sistolica
      	Escribir "PRESIÓN DIASTÓLICA: " Sin Saltar
      	Leer pr_diastolica
      	
      	Si (esAlta(pr_sistolica,pr_diastolica)==Verdadero) Entonces
      		Escribir "PERSONA HIPERTENSA"
      	SiNo
      		Escribir "PERSONA NO HIPERTENSA"
      	FinSi
      	
      FinAlgoritmo
      
      Funcion OK<-esAlta(s,d)
      	Definir OK Como Logico
      	
      	OK<-Falso
      	
      	Si s>120 && d>80 Entonces
      		OK <- Verdadero
      	FinSi
      FinFuncion

      Y el tercero, te he contestado aquí

  • Leonardo dice:

    Hola, tengo que hacer este punto en PSeInt que no me explicaron y no logro entender:
    «Escribir el nombre de un color por medio de una letra. Teniendo en cuenta la siguiente codificación: R (rojo), V (verde), A (amarillo), I (violeta), C (Ocre). Emitir un error en caso de no ser un código correcto.»
    Estamos viendo estructuras de control como Si, segun, entonces, etc. y quieren que trabajemos con eso en esto.
    Traté de hacerlo pero no me funciona, hice algo así:
    PD: Me gustaría saber en qué me estoy equivocando y lograr aprender de eso, desde ya muchas gracias por la ayuda.

    Definir Letra como caracter;
    Escribir «Escribir el nombre de un color por medio de una Letra»;
    Leer Letra;

    Si (Letra = r) entonces;
    Escribir «El color de » (Letra = r) » es el rojo»;
    SiNo
    Si (Letra = v) Entonces;
    Escribir «El color de » (Letra = v) » es el Verde»;

    SiNo
    Escribir «Error: la letra asignada no pertenece a un color específico»

    FinSi

    FinSi

    • terepebernal dice:

      ¡Hola Leonardo! Para comparar expresiones se utiliza un símbolo igual doble (==), si utilizas solo uno (=), en vez de comparar valores lo que haces es asignar un valor a una variable, igual que si utilizaras el símbolo «<-". Por otra parte, al preguntar si la variable Letra es igual a r, por ejemplo, esa r debe ir entre comillas («r»). Y también, para mostrar el valor de la variable Letra por pantalla, únicamente debes escribir Letra, y PSeInt mostrará el valor que se introdujo por teclado. Te muestro el algoritmo para que puedas verlo mejor. Repásalo, entiéndelo e intenta hacerlo tú de nuevo, verás como así lo aprendes bien. Saludos.

      Algoritmo letraColor
      	Definir Letra como caracter;
      	Escribir "Escribir el nombre de un color por medio de una Letra";
      	Leer Letra;
      
      	Si (Letra == "r") O (Letra == "R") Entonces;
      		Escribir "El color de " + Letra + " es el Rojo";
      	SiNo
      		Si (Letra == "v") O (Letra == "V") Entonces;
      			Escribir "El color de " + Letra + " es el Verde";
      		SiNo
      			Si (Letra == "a") O (Letra == "A")  Entonces	
      				Escribir "El color de " + Letra + " es el Amarillo";
      			SiNo
      				Si (Letra == "i") O (Letra == "I")  Entonces	
      					Escribir "El color de " + Letra + " es el Violeta";
      				SiNo
      					Si (Letra == "c") O (Letra == "C")  Entonces	
      						Escribir "El color de " + Letra + " es el Ocre";
      					SiNo
      						Escribir "Error: la letra asignada no pertenece a un color específico"
      					FinSi
      				FinSi
      			FinSi
      		FinSi
      	FinSi
      FinAlgoritmo
  • jarol dice:

    buenas tardes sera que me puede ayudar con este problema
    Se debe realizar un viaje de practica y para este efecto se debe tener el presupuesto total e individual por estudiante, para esto se tiene el costo de transporte y de refrigerio. El refrigerio para todos es de 20Bs. Para poder reducir costos se toma promociones en el transporte: si son más de 75 estudiantes el costo por estudiante es de 15Bs. De 45 a más es de 20Bs. Y menos de 45 es de 25Bs.

    Entrada: número de estudiantes

    Salida: Costo total e individual

    • terepebernal dice:

      ¡Hola Jarol! Si no lo he entendido mal, el algoritmo podría ser así:

      Algoritmo presViaje
      	Definir num_estudiantes Como Entero
      	Definir presTotal, presInd, transporte Como Numero
      	
      	Escribir "NÚMERO DE ESTUDIANTES: " Sin Saltar
      	Leer num_estudiantes
      	
      	Si num_estudiantes>=75 Entonces
      		presInd<-15 
      	FinSi
      	Si num_estudiantes>=45 && num_estudiantes<=74 Entonces
      		presInd<-20
      	FinSi
      	Si num_estudiantes<45 Entonces
      		presInd<-25
      	FinSi
      	
      	Escribir "COSTO INDIVIDUAL = " + ConvertirATexto(presInd+(20/num_estudiantes))
      	Escribir "COSTO TOTAL = " + ConvertirATexto((presInd*num_estudiantes)+20)
      FinAlgoritmo

      Saludos

  • SANTIAGO VELASQUEZ URIBE dice:
    Algoritmo ejercicioconmientras
    	cont_estu=1
    	cont_notas=1
    	Escribir "¿cuantos estudiantes tiene el grupo? :"
    	Leer nume_estu
    	escribir "¿cuantas notas tiene cada estudiante? :"
    	Leer  nume_notas
    	Mientras cont_estu<-nume_estu Hacer
    		escribir Sin Saltar "notas para el estudiante", cont_estu,":"
    		Mientras cont_notas<- nume_notas Hacer
    			escribir Sin Saltar "digite la nota",cont_notas,":"
    			Leer  nota
    			suma_notas=suma_notas+nota
    			cont_notas= cont_notas+1 
    		Fin Mientras
    		prom_estu=suma_notas/nume_notas
    		Escribir "el promedio de este estudiantees es:",prom_estu
    		suma_grupo =suma_grupo+prom_estu
    		cont_notas=1
    		suma_notas=0
    		
    		prom_estu=nume_estu
    		cont_estu=cont_estu+1
    	Fin Mientras
    	prom_grupo=suma_grupo/suma_notas	
    	Escribir "el promedio del grupo es:", prom_grupo
    FinAlgoritmo

    me ayudas a corregirlo porfavor gracias.

    • terepebernal dice:

      Hola Santiago. Tal cual lo has escrito, supongo que el símbolo de la condición de los dos «mientras» es <= (menor o igual), porque sino estarías asignando en vez de comparando. Y después da error en la última división (prom_grupo=suma_grupo/suma_notas) al dividir entre 0 (suma_notas=0). Para obtener el promedio del grupo ¿no sería mejor dividir entre el número de estudiantes?. Creo que una vez corregido eso, el algoritmo hace lo que tú querías. Saludos

      Algoritmo ejercicioconmientras
      	cont_estu=1
      	cont_notas=1
      	
      	Escribir "¿cuantos estudiantes tiene el grupo? :"
      	Leer nume_estu 
      	escribir "¿cuantas notas tiene cada estudiante? :"
      	Leer nume_notas 
      	
      	Mientras cont_estu<=nume_estu Hacer
      		escribir Sin Saltar "notas para el estudiante ", cont_estu,":" 
      		
      		Mientras cont_notas<=nume_notas Hacer
      			escribir Sin Saltar "digite la nota ",cont_notas,":" 
      			Leer nota
      			suma_notas=suma_notas+nota
      			cont_notas=cont_notas+1
      		Fin Mientras 
      		
      		prom_estu=suma_notas/nume_notas
      		Escribir "el promedio de este estudiante es:",prom_estu
      		
      		suma_grupo=suma_grupo+prom_estu
      		cont_notas=1
      		suma_notas=0
      		//prom_estu=nume_estu
      		cont_estu=cont_estu+1
      	Fin Mientras
      	prom_grupo=suma_grupo/nume_estu
      	Escribir "el promedio del grupo es: ", prom_grupo 
      FinAlgoritmo
  • Erick dice:

    Buenas si alguien me podria ayuda como expresar esto en pseint o mejor dicho resolverlo por ese medio disculpe si llego a publicar el comentario 2 veces es que tengo problemas con el internet y no se si realmente lo publica. 🙁

    1. Tomando en cuenta la prioridad de los operadores aritméticos, evalúe las siguientes expresiones:

    a. R = (a * (b + c) – 4) * a + (4 * c – d) – d ^ 3

    b. R = (a * (b + c) ^ 2) – 6 * d + (4 * e – f)

    Donde:
    a = 2; b = 3; c = 1; d = 4; e = 5; f = 5

    • terepebernal dice:

      Hola Erick, sí se escribió el comentario dos veces, pero porque están sometidos a mi aprobación, antes de publicarlos los reviso siempre, para evitar spam, faltas de respeto y todas esas cosas. A continuación te muestro el algoritmo. Saludos

      Algoritmo priAritmetica
      	Definir a, b, c, d, e, f, R Como Numero
      	
      	a <- 2
      	b <- 3
      	c <- 1
      	d <- 4
      	e <- 5
      	f <- 5
      	
      	R <- (a * (b + c) - 4) * a + (4 * c - d) - d ^ 3
      	Escribir "a) R = " + ConvertirATexto(R)
      	
      	R <- (a * (b + c) ^ 2) - 6 * d + (4 * e - f)
      	Escribir "b) R = " + ConvertirATexto(R)
      FinAlgoritmo
  • ALEX CONSDORI dice:

    ME AYUDAN
    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

  • steven dice:

    Hola, muchas gracias por la pag. Por favor alguien me puede ayudar con este algoritmo? que lea un numero de cedula y edad de una persona. si es mayor de 18 años mostrar un mensaje «Ciudadano es mayor de edad, puede votar» en caso que sea menor de 18 años mostrar mensaje de «Ciudadano no puede votar, es menor de edad»

    • terepebernal dice:

      Hola steven, solo tienes que utilizar un condicional simple que compruebe si la edad es mayor o igual que 18. Saludos

      Algoritmo votoCiudadano
      	Definir cedula Como Cadena
      	Definir edad Como Entero
      	
      	Escribir "NÚMERO DE CÉDULA: " Sin Saltar
      	Leer cedula
      	Escribir "EDAD: " Sin Saltar
      	Leer edad
      	
      	Si (edad>=18) Entonces
      		Escribir "Ciudadano es mayor de edad, puede votar"
      	SiNo
      		Escribir "Ciudadano no puede votar, es menor de edad"
      	FinSi	
      FinAlgoritmo
  • Yisleni Gauta Rodriguez dice:

    Hola que pena la molestia.
    ayúdame con este programa Que pida dos números y multiplique todos los números que van desde el primero al segundo. Se debe controlar que los valores son correctos. en pseint con la condición mientras y repetir.
    Te agradezco

    • terepebernal dice:

      Hola Yisleni, se utiliza la estructura mientas cuando el primer número es el menor y la estructura repetir cuando es el mayor. Saludos

      Algoritmo mValores1a2
      	Definir num1, num2, i, producto Como Numero
      	
      	Escribir "PRIMER NÚMERO: " Sin Saltar
      	Leer num1
      	Escribir "SEGUNDO NÚMERO: " Sin Saltar
      	Leer num2
      
      	Si (num1<num2) Entonces
      		producto <- 1
      		i<-num1
      		Escribir "producto = " Sin Saltar
      		Mientras (i<=num2) Hacer
      			Escribir ConvertirATexto(i) Sin Saltar
      			Si !(i==num2)
      				Escribir  " x " Sin Saltar
      			FinSi
      			producto<-producto*i
      			i<-i+1
      		FinMientras
      		Escribir " = " + ConvertirATexto(producto)
      	FinSi
      	
      	Si (num1>num2) Entonces
      		producto <- 1
      		i<-num1
      		Escribir "producto = " Sin Saltar
      		Repetir
      			Escribir ConvertirATexto(i) Sin Saltar
      			Si !(i==num2)
      				Escribir  " x " Sin Saltar
      			FinSi
      			producto<-producto*i
      			i<-i-1
      		Hasta Que (i==num2-1)
      		Escribir " = " + ConvertirATexto(producto)
      	FinSi
      FinAlgoritmo
  • Mary Pérez dice:

    Holaaaaa gracias por la página

  • Andrea dice:

    Hola Bnos días será q me puedes ayudar a hacer este algoritmo el algoritmo dice tengo 5 celulares con diferentes precios celular 1:700 celular 2:1000 celular3::1300 celular 4:se desconoce el precio celular 5; se desconoce el precio realizar un algoritmo que calcule la suma de los precios de los cinco celulares será que me puedes ayudar a hacerlo

    • terepebernal dice:

      Hola Andrea, el precio de los celulares 4 y 5 son desconocidos, pero ¿se piden por teclado?. Si fuera así, imagino que sería algo así:

      Algoritmo sumaCelulares
      	Definir suma, celular4, celular5 Como Numero
      	
      	Escribir "Precio celular nº 1: 700"
      	Escribir "Precio celular nº 2: 1000"
      	Escribir "Precio celular nº 3: 1300"
      	Escribir "Precio celular nº 4: " Sin Saltar
      	Leer celular4
      	Escribir "Precio celular nº 5: " Sin Saltar
      	Leer celular5
      	
      	suma <- 700+1000+1300+celular4+celular5
      	
      	Escribir "Suma de los 5 celulares: " + ConvertirATexto(suma)
      FinAlgoritmo

      Gracias por tu visita. Saludos

  • Rosa Meltuco dice:

    POR FAVORRRR me puede ayudar con este ejercicio????:

    Proponer un algoritmo para realizar el inventario del almacén de la universidad. Este debe leer los artículos que se tienen y solicitar la gestión para la compra de los que hacen falta para el funcionamiento

    • terepebernal dice:

      Hola Rosa, siento la tardanza. No sé si aún te servirá y tampoco tengo claro si es lo que quieres. Muestra un menú con cuatro opciones, las cuales permiten mostrar el inventario del almacén, y también la entrada y salida de artículos del almacén. Espero que al menos te sirva de guía. Saludos.

      Algoritmo almacenUniversidad
      	Dimension almacen[5,4]
      	Definir almacen Como Entero
      	Dimension articulos[5]
      	Definir articulos Como Texto
      	Definir unidades, codigo Como Entero
      	Definir opcionMenu Como Entero
      	Definir seguir Como Logico
      	
      	llenarAlmacen(almacen,articulos)
      	
      	seguir <- Verdadero
      	
      	Mientras (seguir)
      		Limpiar Pantalla
      		Escribir "             MENU"
      		Escribir "-------------------------------"
      		Escribir "1.- MOSTRAR ALMACEN COMPLETO"
      		Escribir "2.- SALIDA DE ALMACEN"
      		Escribir "3.- ENTRADA EN ALMACEN"
      		Escribir "4.- SALIR"
      		Escribir "Elige una opción (1 - 4): " Sin Saltar
      		Leer opcionMenu
      		
      		Segun opcionMenu
      			1:
      				mostrarAlmacen(almacen,articulos)
      				Escribir "Pulsar tecla para volver al menú...."
      				Esperar Tecla
      			2:
      				Escribir "UNIDADES DE SALIDA: " Sin Saltar
      				Leer unidades
      				Escribir "CÓDIGO ARTÍCULO: " Sin Saltar
      				Leer codigo
      				salidaAlmacen(almacen,articulos,unidades,codigo)
      			3:
      				Escribir "UNIDADES DE ENTRADA: " Sin Saltar
      				Leer unidades
      				Escribir "CÓDIGO ARTÍCULO: " Sin Saltar
      				Leer codigo
      				entradaAlmacen(almacen,articulos,unidades,codigo)
      			4:
      				seguir <- Falso
      			De Otro Modo:
      				Limpiar Pantalla
      				Escribir ""
      				Escribir "No es una opción correcta"
      				Escribir "Intentarlo de nuevo pulsando una tecla..."
      				Esperar Tecla
      		FinSegun
      	FinMientras
      FinAlgoritmo
      
      Funcion llenarAlmacen(almacen,articulos)
      	articulos[1] <- "PAPELERAS"
      	almacen[1,1] <- 50
      	almacen[1,2] <- 50
      	articulos[2] <- "FOTOCOPIADORAS"
      	almacen[2,1] <- 5
      	almacen[2,2] <- 5
      	articulos[3] <- "MESAS ALUMNOS"
      	almacen[3,1] <- 400
      	almacen[3,2] <- 400
      	articulos[4] <- "SILLAS ALUMNOS"
      	almacen[4,1] <- 400
      	almacen[4,2] <- 400
      	articulos[5] <- "PIZARRAS"
      	almacen[5,1] <- 30
      	almacen[5,2] <- 30
      FinFuncion
      
      Funcion mostrarAlmacen(almacen,articulos)
      	Definir i Como Entero
      	Limpiar Pantalla
      	
      	Para i<-1 Hasta 5 Con Paso 1
      		Escribir "CÓDIGO: " + ConvertirATexto((i))
      		Escribir "ARTÍCULO: " + articulos[i]
      		Escribir "ESPACIO EN ALMACEN: " + ConvertirATexto(almacen[i,1])
      		Escribir "EXISTEN EN ALMACEN: " + ConvertirATexto(almacen[i,2])
      		Escribir "UNIDADES QUE FALTAN: " + ConvertirATexto(almacen[i,3])
      		Escribir "------------------------------------------------------"
      	FinPara
      FinFuncion
      
      Funcion salidaAlmacen(almacen,articulos,unidades,codigo)
      	Si (almacen[codigo,2]>=unidades) Entonces
      		almacen[codigo,3] <- almacen[codigo,3]+unidades
      		almacen[codigo,2] <- almacen[codigo,1]-almacen[codigo,3]
      		Escribir ""
      		Escribir articulos[codigo]
      		Escribir "----------------------------------------"
      		Escribir "ESPACIO EN ALMACEN: " + ConvertirATexto(almacen[codigo,1])
      		Escribir "EXISTEN EN ALMACEN: " + ConvertirATexto(almacen[codigo,2])
      		Escribir "UNIDADES QUE FALTAN: " + ConvertirATexto(almacen[codigo,3])
      		Escribir ""
      		Escribir "Pulsar tecla para continuar...."
      		Esperar Tecla
      	SiNo
      		Escribir ""
      		Escribir articulos[codigo]
      		Escribir "----------------------------------------"
      		Escribir "NO HAY SUFICIENTES UNIDADES EN ALMACEN"
      		Escribir "EXISTEN EN ALMACEN: " + ConvertirATexto(almacen[codigo,2])
      		Escribir ""
      		Escribir "Pulsar tecla para continuar...."
      		Esperar Tecla
      	FinSi
      FinFuncion
      
      Funcion entradaAlmacen(almacen,articulos,unidades,codigo)
      	Si (almacen[codigo,3]>=unidades) Entonces
      		almacen[codigo,2] <- almacen[codigo,2]+unidades
      		almacen[codigo,3] <- almacen[codigo,3]-unidades
      		Escribir ""
      		Escribir articulos[codigo]
      		Escribir "----------------------------------------"
      		Escribir "ESPACIO EN ALMACEN: " + ConvertirATexto(almacen[codigo,1])
      		Escribir "EXISTEN EN ALMACEN: " + ConvertirATexto(almacen[codigo,2])
      		Escribir "UNIDADES QUE FALTAN: " + ConvertirATexto(almacen[codigo,3])
      		Escribir ""
      		Escribir "Pulsar tecla para continuar...."
      		Esperar Tecla
      	SiNo
      		Escribir ""
      		Escribir articulos[codigo]
      		Escribir "----------------------------------------"
      		Escribir "NO HAY ESPACIO SUFICIENTE EN ALMACEN"
      		Escribir "UNIDADES QUE FALTAN: " + ConvertirATexto(almacen[codigo,3])
      		Escribir ""
      		Escribir "Pulsar tecla para continuar...."
      		Esperar Tecla
      	FinSi
      FinFuncion
  • Mary dice:

    Por favor me puedes ayudar con este algoritmo:
    1. Realizar un algoritmo para encontrar la formula cuadratica:

    x= -b+ raiz cuadruada de: b elevado a 2 – 4ac

    ————————————————————
    2a

    Perdón que no lo pude enviar bien la formula.
    *El +
    – Es así pero claro más unido

    **la raíz cuadrada encierra el b (elevado a 2) – 4ac

    • terepebernal dice:

      Hola Mary, imagino que te refieres a la ecuación de segundo grado.

      Pruébalo, lo he hecho muy deprisa y no sé si fallará algo, pero espero que al menos te pueda servir de guía. La principal condición a tener en cuenta para que no de error el algoritmo es que lo que haya dentro de la raíz no de negativo. Si da negativo, pasa a ser un número imaginario. Saludos

      Algoritmo ecGrado2
      	Definir x1,x2,a,b,c Como Numero
      	
      	Escribir "Valor de a: " Sin Saltar
      	Leer a
      	Escribir "Valor de b: " Sin Bajar
      	Leer b
      	Escribir "Valor de c: " Sin Saltar
      	Leer c
      	
      	Si ((b^2 - 4*a*c) >= 0) Entonces
      		x1 <- (-b + RAIZ(b^2 - 4*a*c))/2*a
      		x2 <- (-b - RAIZ(b^2 - 4*a*c))/2*a
      		Si (x1 == x2) Entonces
      			Escribir "x = " + ConvertirATexto(x1)
      		SiNo
      			Escribir "x1 = " + ConvertirATexto(x1) Sin Saltar
      			Escribir " y x2 = " + ConvertirATexto(x2)
      		FinSi
      	SiNo
      		Escribir "x1 = (" + ConvertirATexto(-b) Sin Saltar
      		Escribir " + " ConvertirATexto(RAIZ(-(b^2 - 4*a*c))) + "i" Sin Saltar
      		Escribir ")/" + ConvertirATexto(2*a)
      		Escribir "x2 = (" + ConvertirATexto(-b) Sin Saltar
      		Escribir " - " ConvertirATexto(RAIZ(-(b^2 - 4*a*c))) + "i" Sin Saltar
      		Escribir ")/" + ConvertirATexto(2*a)	
      	FinSi
      FinAlgoritmo
  • Martina dice:

    Hola me podrías ayudar a resolver este problema:

    En una cafetería, los mozos cobran un sueldo fijo de $16.000 mas un 25% delas propinas (sin cuatro mozos). Además, el dueño del local les paga un bono del 1% de las ganancias. Los datos a solicitar son monto total de propinasen el mes y las ganancias totales del local.

    Saludos, Gracias.

    • terepebernal dice:

      Hola Martina, según lo entiendo yo, solo tienes que sumar a los $16000 el 25% de las propinas y 1% de las ganancias. Con eso obtienes el sueldo de cada mozo. Saludos

      Algoritmo sueldoMozos
      	Definir propinas, ganancias, sueldo Como Numero
      	
      	Escribir "PROPINAS: " Sin Saltar
      	Leer propinas
      	Escribir "GANANCIAS LOCAL: " Sin Saltar
      	Leer ganancias
      	
      	sueldo <- 16000+(propinas*25/100)+(ganancias*1/100)
      	
      	Escribir "EL SUELDO DE CADA MOZO ES $" + ConvertirATexto(sueldo)
      FinAlgoritmo
  • Javier Florez dice:

    Hola, me puedes ayudar con el siguiente algoritmo : Diseñar un algoritmo que pida un carácter del teclado y de acuerdo a ello, determine si esta es una vocal o una constante, un número o un carácter especial. Muchas gracias

    • terepebernal dice:

      Hola Javier, creo que PSeInt no tiene ninguna función para capturar la tecla que se pulsa, lo que haría más fácil crear ese algoritmo que pides. Al no existir tal función se me ocurre hacerlo así. Ten en cuenta que yo le asigno a las variables los caracteres de mi teclado, si se introdujera un caracter que no esté ahí incluido no funcionaría bien.

      Algoritmo tipoCaracter
      	Definir simbolo Como Caracter
      	Definir c_vocales, c_consonantes, c_numeros, c_especiales Como Cadena
      	Definir i Como Entero
      	Definir encontrado Como Logico
      	
      	c_numeros <- "0123456789"
      	c_vocales <- "aeiou"
      	c_consonantes <- "bcdfghijklmnñpqrstvxyz"
      	c_especiales <- "!·$%&/()?¿|@#~€¬`+´ç,.-<>;:_¨Ç^*[]{}"
      	
      	Escribir "ESCRIBE EL CARACTER: " Sin Saltar
      	Leer simbolo
      	
      	encontrado <- Falso
      	Mientras (encontrado == Falso) Hacer
      		Para i<-1 Hasta Longitud(c_numeros)
      			Si (simbolo == Subcadena(c_numeros,i,i)) Entonces
      				Escribir "ES UN NUMERO"
      				encontrado <- Verdadero
      			FinSi
      		FinPara
      		
      		Para i<-1 Hasta Longitud(c_vocales)
      			Si (simbolo == Subcadena(c_vocales,i,i) O simbolo == Mayusculas(Subcadena(c_vocales,i,i))) Entonces
      				Escribir "ES UNA VOCAL"
      				encontrado <- Verdadero
      			FinSi
      		FinPara
      		
      		Para i<-1 Hasta Longitud(c_consonantes)
      			Si (simbolo == Subcadena(c_consonantes,i,i) O simbolo == Mayusculas(Subcadena(c_consonantes,i,i))) Entonces
      				Escribir "ES UNA CONSONANTE"
      				encontrado <- Verdadero
      			FinSi
      		FinPara
      		
      		Para i<-1 Hasta Longitud(c_especiales)
      			Si (simbolo == Subcadena(c_especiales,i,i)) Entonces
      				Escribir "ES UN CARACTER ESPECIAL"
      				encontrado <- Verdadero
      			FinSi
      		FinPara
      	FinMientras
      FinAlgoritmo

      Saludos

      • Yina Vanegas dice:

        Hola yo tengo este mismo problema pero me indica lo siguiente

        III. El siguiente algoritmo se deben hacer con condicionales anidados, no se aceptan simples y debe implementar funciones.

        1. Diseñar un algoritmo que pida un carácter del teclado y de acuerdo a ello, determine si esta es una vocal o una constante, un número o un carácter especial.

        Puedo utilizar este mismo, ayuda por favor…

        • terepebernal dice:

          ¡Hola Yina! Para poder hacerlo con condicionales anidados y además utilizar funciones, se me ocurre ahora hacerlo así:

          Algoritmo tipoCaracter2
          	Definir tecla Como Caracter
          	Definir encontrado Como Logico
          
          	encontrado <- Falso
          	
          	Escribir "ESCRIBE EL CARACTER: " Sin Saltar
          	Leer tecla
          	
          	encontrado <- esNumero(tecla)
          	Si encontrado Entonces
          		Escribir "ES UN NÚMERO"
          	SiNo
          		encontrado <- esVocal(tecla)
          		Si encontrado Entonces
          			Escribir "ES UNA VOCAL"
          		SiNo
          			encontrado <- esConsonante(tecla)
          			Si encontrado Entonces
          				Escribir "ES UNA CONSONANTE"
          			SiNo
          				encontrado <- esEspecial(tecla)
          				Si encontrado Entonces
          					Escribir "ES UN CARACTER ESPECIAL"
          				FinSi
          			FinSi
          		FinSi
          	FinSi
          	
          FinAlgoritmo
          
          Funcion OK<-esNumero(c)
          	Definir c_caracteres Como Cadena
          	Definir OK Como Logico
          	Definir i Como Entero
          	
          	OK <- Falso
          	c_caracteres <- "0123456789"
          	
          	Para i<-1 Hasta Longitud(c_caracteres)
          		Si (c == Subcadena(c_caracteres,i,i)) Entonces
          			OK<-Verdadero
          		FinSi
          	FinPara	
          FinFuncion
          
          Funcion OK<-esVocal(c)
          	Definir c_caracteres Como Cadena
          	Definir OK Como Logico
          	Definir i Como Entero
          	
          	OK <- Falso
          	c_caracteres <- "aeiou"
          	
          	Para i<-1 Hasta Longitud(c_caracteres)
          		Si (c == Subcadena(c_caracteres,i,i) O c == Mayusculas(Subcadena(c_caracteres,i,i))) Entonces
          			OK<-Verdadero
          		FinSi
          	FinPara	
          FinFuncion
          
          Funcion OK<-esConsonante(c)
          	Definir c_caracteres Como Cadena
          	Definir OK Como Logico
          	Definir i Como Entero
          	
          	OK <- Falso
          	c_caracteres <- "bcdfghijklmnñpqrstvxyz"
          	
          	Para i<-1 Hasta Longitud(c_caracteres)
          		Si (c == Subcadena(c_caracteres,i,i) O c == Mayusculas(Subcadena(c_caracteres,i,i))) Entonces
          			OK<-Verdadero
          		FinSi
          	FinPara	
          FinFuncion
          
          Funcion OK<-esEspecial(c)
          	Definir c_caracteres Como Cadena
          	Definir OK Como Logico
          	Definir i Como Entero
          	
          	OK <- Falso
          	c_caracteres <- "!·$%&/()?¿|@#~€¬`+´ç,.-<>;:_¨Ç^*[]{}"
          	
          	Para i<-1 Hasta Longitud(c_caracteres)
          		Si (c == Subcadena(c_caracteres,i,i)) Entonces
          			OK<-Verdadero
          		FinSi
          	FinPara	
          FinFuncion

          Si te das cuenta las funciones son prácticamente iguales. Podrías buscar una manera de no repetir tanto el código.
          Saludos.

  • MARILYN MEDINA CERON dice:

    Hola !
    Me ayudarías a resolver este algoritmo te lo agradecería demasiado
    El gerente de una compañía automotriz desea determinar el impuesto que va a pagar por cada uno de los automóviles que posee, además del total que va a pagar por cada categoría y por todos los vehículos, basándose en la siguiente clasificación:

    Los vehículos con clave 1 pagan el 10% de su valor

    Los vehículos con clave 2 pagan el 7% de su valor

    Los vehículos con clave 3 pagan el 5% de su valor

    • terepebernal dice:

      Hola Marilyn, creo que el algoritmo hace lo que pedías, pruébalo y si no entiendes algo dímelo. Saludos

      Algoritmo impuestoVehiculos
      	Definir seguir Como Caracter
      	Definir clave, importe, impuesto, numVehiculos Como Numero
      	Definir t_clave1, t_clave2, t_clave3, total Como Numero
      	
      	numVehiculos <-0
      	t_clave1 <- 0
      	t_clave2 <- 0
      	t_clave3 <- 0
      	total <- 0
      	
      	seguir <- 'S'
      	Mientras (seguir=='S' O seguir=='s') Hacer
      		numVehiculos<-numVehiculos+1
      		Escribir ""
      		Escribir "VEHÍCULO Nº " + ConvertirATexto(numVehiculos) + ":"
      		Escribir "Valor del vehículo: " Sin Saltar
      		Leer importe
      		Escribir "Categoría del vehículo (1/2/3): " Sin Saltar
      		Leer clave
      		
      		Segun clave Hacer
      			1:
      				impuesto <- (importe*10)/100
      				importe <- importe+impuesto
      				t_clave1 <- t_clave1+importe
      				total <- total+t_clave1
      			2:
      				impuesto <- (importe*7)/100
      				importe <- importe+impuesto
      				t_clave2 <- t_clave2+importe 
      				total <- total+t_clave2
      			3:
      				impuesto <- (importe*5)/100
      				importe <- importe+impuesto
      				t_clave3 <- t_clave3+importe
      				total <- total+t_clave3
      			De Otro Modo:
      				Escribir "La categoría no es correcta"
      				numVehiculos<-numVehiculos-1
      		Fin Segun
      		
      		Si (clave>=1 && clave<=3) Entonces
      			Escribir "Impuesto = " + ConvertirATexto(impuesto)
      			Escribir "Importe total vehículo = " + ConvertirATexto(importe)
      		FinSi
      		
      		Escribir ""
      		Escribir "TOTAL VEHÍCULOS CATEGORÍA 1 = " + ConvertirATexto(t_clave1)
      		Escribir "TOTAL VEHÍCULOS CATEGORÍA 2 = " + ConvertirATexto(t_clave2)
      		Escribir "TOTAL VEHÍCULOS CATEGORÍA 3 = " + ConvertirATexto(t_clave3)
      		Escribir "TOTAL VEHÍCULOS = " + ConvertirATexto(total)
      		
      		Escribir ""
      		Escribir "¿Continuar...(S/N)? " Sin Saltar
      		Leer seguir
      	FinMientras
      	
      FinAlgoritmo
      
  • BRANDONSTIVEN MARTINEZ GUERRERO dice:

    quisiera una ayuda con una algrotimo
    ingresar n numeros naturales comprendidos ente (1 y 100) e indicar
    cuantos del los numero ingresados son menores a 20
    cuantos estan entre el rango de 25 y 45
    cuantos son mayores a 50

    • terepebernal dice:

      Hola Brandon, espero que te ayude, si no entiendes algo dímelo. Saludos

      Algoritmo ejNumNaturales
      	Definir n, num Como Numero
      	Definir menor20, de25a45, mayor50 Como Numero
      	
      	Escribir "¿Cuántos números naturales quieres ingresar? " Sin Saltar
      	Leer n
      	
      	menor20 <- 0
      	de25a45 <- 0
      	mayor50 <- 0
      	
      	Para i<-1 Hasta n Con Paso 1
      		Escribir "Escribe el número (del 1 al 100): " Sin Saltar
      		Leer num
      		
      		Si (num>=1 && num<=100) Entonces
      			Si (num<20) Entonces
      				menor20 <- menor20+1
      			FinSi
      			Si (num>=25 && num<=45) Entonces
      				de25a45 <- de25a45+1
      			FinSi
      			Si (num>50) Entonces
      				mayor50 <- mayor50+1
      			FinSi
      		FinSi
      	FinPara
      	
      	Escribir ""
      	Escribir "MENORES DE 20 = " + ConvertirATexto(menor20)
      	Escribir "DE 25 A 45 = " + ConvertirATexto(de25a45)
      	Escribir "MAYOR DE 50 = " + ConvertirATexto(mayor50)
      	
      FinAlgoritmo
      
  • AlanCruz dice:

    Estoy teniendo problema con un código que me piden, no encuentro como hacerlo, te agradezco si me ayudas.
    Desarrollar un algoritmo donde el texto será ingresado por el usuario y la letra ‘a’=4, ‘e’=3, ‘i’=1 ‘o’=0 ‘u’=9 y mostrar la cadena con las letras reemplazadas por numeros.

    Muchas gracias por tu ayuda.

    • terepebernal dice:

      Hola AlanCruz, ahí te lo dejo. Saludos

      Algoritmo cambiarCadena
      	Definir c_texto1, c_texto2 Como Cadena
      	Definir i Como Numero
      
      	Escribir "Escribe la cadena de texto: " Sin Saltar
      	Leer c_texto1
      	
      	Para i<-1 Hasta Longitud(c_texto1) Con Paso 1
      		Si (Subcadena(c_texto1, i, i)=='a') Entonces
      			c_texto2 <- c_texto2+'4'
      		SiNo
      			Si (Subcadena(c_texto1, i, i)=='e') Entonces
      				c_texto2 <- c_texto2+'3'
      			SiNo
      				Si (Subcadena(c_texto1, i, i)=='i') Entonces
      					c_texto2 <- c_texto2+'1'
      				SiNo
      					Si (Subcadena(c_texto1, i, i)=='o') Entonces
      						c_texto2 <- c_texto2+'0'
      					SiNo
      						Si (Subcadena(c_texto1, i, i)=='u') Entonces
      							c_texto2 <- c_texto2+'9'	
      						SiNo
      							c_texto2 <- c_texto2+Subcadena(c_texto1, i, i)
      						FinSi
      					FinSi
      				FinSi
      			FinSi
      		FinSi
      	FinPara
      	
      	Escribir c_texto2	
      
      FinAlgoritmo
  • Liliana Palacio dice:

    Buenas Noches!
    quisiera que me ayudes hacer un diagrama de flujo y la prueba de escritorio del paralelogramo y trapecio.
    Por favor y Gracias.

    • terepebernal dice:

      Hola Liliana, no tengo claro que debe hacer el algoritmo, ¿cual es el problema a resolver?
      Si te sirve de algo te muestro un diagrama de flujo para un algoritmo que pide por teclado la base, un lado y la altura de un paralelogramo y muestra por pantalla el área y el perímetro de dicho paralelogramo

      Diagrama de flujo para hallar área y perímetro de paralelogramo
      Y la prueba de escritorio, que creo que es algo así, una tabla que muestra algunos valores que pueden tomar las variables y los resultados del algoritmo.

      Prueba de escritorio para área y perímetro de paralelogramo
      Saludos

  • LUIS EDUARDO DONOSO ACHURY dice:

    Amigo necesito ayuda en este algoritmo cómo hago para que me muestre el resultado de la suma reiterada… después del ciclo mientras y después del ciclo repetir. Para poder eliminar la multiplicación final.

    
    Algoritmo TAREA_MULTIPLICACIÓN
    	Definir n,n1,x Como Entero
    	Escribir "Ingresa tu nombre"
    	Leer  Nombre
    	Escribir 'Ingresa dos números positivos para multiplicar'
    	Leer n
    	Leer n1
    	x <- 1
    	
    	Escribir "Las sumas reiteradas son: "
    	
    	Escribir "Primera suma reiterada: "
    	
    	Mientras x<=n1 Hacer
    		Escribir '+',n Sin Saltar
    		x <- x+1
    	FinMientras
    	Escribir ''
    	
    	x <- 0
    	
    	Repetir
    		Escribir '+',n1 Sin Saltar
    		x =n
    	Escribir ''
    	
    	Escribir nombre, " el resultado de " n "*" n1 " es: " (n*n1)
    	
    FinAlgoritmo
    • terepebernal dice:

      Hola Luis, si no te he entendido mal, es esto lo que querías hacer. Saludos

      Algoritmo tareaMultiplicacion
      	Definir n,n1,x,suma Como Numero
      	
      	Escribir "Ingresa tu nombre" 
      	Leer Nombre 
      	
      	Escribir 'Ingresa dos números positivos para multiplicar' 
      	Leer n 
      	Leer n1
      	
      	Escribir "Las sumas reiteradas son: "
      	
      	Escribir "Primera suma reiterada: "
      	suma <- 0
      	x <- 1 
      	Mientras (x<=n1) Hacer
      		Escribir n Sin Saltar
      		Si !(x==n1) Entonces
      			Escribir '+' Sin Saltar
      		FinSi
      		suma <- suma+n
      		x <- x+1
      	FinMientras
      	
      	Escribir ''
      	Escribir Nombre, " el resultado de " n1 "*" n " es: " suma
      	Escribir ''
      	
      	Escribir "Segunda suma reiterada: "
      	suma <- 0
      	x <- 0 
      	Repetir 
      		Escribir n1 Sin Saltar
      		Si !(x==(n-1)) Entonces
      			Escribir '+' Sin Saltar
      		FinSi
      		suma <- suma+n1
      		x <- x+1
      	Hasta que (x==n) 
      	
      	Escribir '' 
      	Escribir Nombre, " el resultado de " n "*" n1 " es: " suma
      	 
      FinAlgoritmo
  • Lisseth dice:

    ¡Hola! Quisiera que me ayudarás.Por Favor.
    Intercambiar el valor de tres variables. De tal manera que sean las variables A, B,C. El valor valor de B y el valor de A se almacene en C. Muestre todo los valores.

    • terepebernal dice:

      ¡Hola Lisseth! Fíjate en el enunciado que has escrito en tu comentario, creo que falta algo. De todas maneras te muestro un algoritmo que intercambia variables, no sé si es lo que querías, pero puede servirte de guía. En este caso, las variables se intercambian de tal manera que el valor A pasa a ser el valor que antes tenía B, el de B el que tenía C y el de C el que tenía A.

      Algoritmo intercambiarVariables
      	Definir A, B, C, aux Como Numero
      	
      	Escribir "Valor de A: " Sin Saltar
      	Leer A
      	Escribir "Valor de B: " Sin Saltar
      	Leer B
      	Escribir "Valor de C: " Sin Saltar
      	Leer C	
      	
      	Escribir "Los valores iniciales son " Sin Bajar
      	Escribir "A=" + ConvertirATexto(A) + ", B="+ ConvertirATexto(B) + " y C=" + ConvertirATexto(C)
      	
      	aux <- A
      	A <- B
      	B <- C
      	C <- aux
      	
      	Escribir "Después de intercambiar son " Sin Bajar
      	Escribir "A=" + ConvertirATexto(A) + ", B="+ ConvertirATexto(B) + " y C=" + ConvertirATexto(C) 
      	
      FinAlgoritmo

      Gracias por tu visita. Saludos.

  • Micaela dice:

    Hola! Necesito ayuda con este algoritmo espero su respuesta! Se lo agradecería mucho.
    Un comercio necesita obtener información, relacionada con el importe a pagar por un determinado cliente.
    Se pide generar la siguiente Salida por Pantalla:
    Mostrar el importe a pagar por el cliente. Si el cliente es categoría “A” y el monto a pagar supera los
    $500, recibirá un descuento del 5%. Si el cliente es categoría “B” y el importe a pagar oscila entre $80 y $250 recibirá
    un descuento del 2%.
    Categoría(CAT): representa la categoría del cliente, que puede asumir los siguientes valores “A” o “B”.
    Importe(IMP): representa el importe a pagar por el cliente.

    • terepebernal dice:

      Hola Micaela, yo lo haría de la siguiente manera. Si no entiendes algo, dímelo.

      Algoritmo dtoClientes
      	Definir CAT Como Caracter
      	Definir IMP Como Numero
      	
      	Escribir "IMPORTE: " Sin Saltar
      	Leer IMP
      	Escribir "CATEGORÍA (A o B): " Sin Bajar
      	Leer CAT
      	
      	Si !(CAT=='A' O CAT=='a' O CAT=='B' O CAT=='b') Entonces
      		Escribir 'La Categoría no es correcta, ha de ser A o B'
      		Escribir 'Inténtalo de nuevo'
      	SiNo
      		Si (CAT=='A' O CAT=='a') && (IMP > 500) Entonces
      			IMP <- IMP - (IMP*5/100)
      		FinSi
      		Si (CAT=='B' O CAT=='b') && ((IMP >= 80) && (IMP <= 250)) Entonces
      			IMP <- IMP - (IMP*2/100)
      		FinSi
      		Escribir "IMPORTE TOTAL  = " + ConvertirATexto(IMP)
      	FinSi
      FinAlgoritmo

      Gracias por tu visita. Saludos

      • Micaela dice:

        Mientras lo estaba probando me di cuenta que al poner el impuesto 80 y poner categoría b, el programa no me toma números decimales, ¿Eso se puede arreglar de alguna forma?

        • terepebernal dice:

          Si se define la variable como Numero sirve para todo tipo de datos numéricos, también para los decimales.
          Para introducir decimales por teclado hay que usar el punto, en vez la coma, ¿puede ser ese el problema?
          ¿Cuál es exactamente el error que te da?

          • Micaela dice:

            Bueno el error que me da es que cuando pongo el número 80 en el ingresar importe me dice que la línea 16 osea dónde está la operación imp <- imp-(imp*2/100) dice así: lin 16 (inst 1): error 314: no coinciden los tipos, el valor a asignar debe ser entero.

          • terepebernal dice:

            Asegúrate de que al principio, donde se definen las variables, ponga Definir IMP Como Numero y no Definir IMP Como Entero

      • Micaela dice:

        De verdad muchas gracias!! Por el momento anda todo genial! Y de paso estoy aprendiendo gracias a usted y su página. Saludos y que tenga un buen día!

  • Carlos dice:

    Hola me podrías ayudar a solucionar estos problemas

    algoritmo que permita conocer la cantidad de números negativos y positivos de una cantidad n de números. Los datos se entraran uno por uno.
    • algoritmo que permita conocer el promedio de números negativos y el promedio de números positivos de una cantidad n de números. Los datos se entraran uno por uno

    Saludos

    • terepebernal dice:

      Hola Carlos, según lo he entendido yo, lo haría así. Si no entiendes algo, házmelo saber.

      Algoritmo promedioPosyNeg
      	Definir i, n, positivos, negativos Como Numero
      	Definir num, suma_pos, suma_neg Como Entero
      	Definir prom_pos, prom_neg Como Numero
      	
      	positivos <- 0
      	negativos <- 0
      	suma_pos <- 0
      	suma_neg <- 0
      	prom_pos <- 0
      	prom_neg <- 0
      	
      	Escribir "¿Qué cantidad de números vas a escribir?" Sin Saltar
      	Leer n
      	
      	Para i<-1 Hasta n Con Paso 1
      		Escribir "N: " + ConvertirATexto(i) + " - Escribe un número: " Sin Bajar
      		Leer num
      		
      		Si (num > 0) Entonces
      			positivos <- positivos + 1
      			suma_pos <- suma_pos + num
      		FinSi
      		Si (num < 0) Entonces
      			negativos <- negativos + 1
      			suma_neg <- suma_neg + num
      		FinSi
      	FinPara
      	
      	prom_pos <- suma_pos/positivos
      	prom_neg <- suma_neg/negativos
      	
      	Escribir "El promedio de los números positivos es " Sin Bajar
      	Escribir ConvertirATexto(suma_pos) + "/" + ConvertirATexto(positivos) + " = " ConvertirATexto(prom_pos)
      	Escribir "El promedio de los números negativos es " Sin Bajar
      	Escribir ConvertirATexto(suma_neg) + "/" + ConvertirATexto(negativos) + " = " ConvertirATexto(prom_neg)
      	
      FinAlgoritmo

      Gracias por la visita. Saludos

  • 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 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 dice:

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

    fact*=prod
    prod + = 1

    • 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 dice:

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

  • 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 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 dice:

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

    • 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 dice:

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

    • 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 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 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 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 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 dice:

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

    • 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 dice:

    excelente

  • panochas3000 dice:

    Sos alto buenardoo.

Deja una respuesta

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