Aprendiendo a programar programando

    cabecera

terepebernal.com

Algoritmos en Pseudocódigo con PSeInt. Lo más básico

Comparte si quieres

TwitterFacebookLinkedInWhatsApp

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ÓN SIGNIFICADO
RC(X) o RAIZ(X) Raíz cuadrada de X
ABS(X) Valor absoluto de X
LN(X) Logaritmo natural de X
EXP(X) Función exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
TAN(X) Tangente de X
ASEN(X) Arcoseno de X
ACOS(X) Arcocoseno de X
ATAN(X) Arcotangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a X
AZAR(X) Entero aleatorio en el rango[0;x-1]
ALEATORIO(A,B) Entero aleatorio en el rango [A;B]
LONGITUD(S) Longitud de la cadena S
MAYUSCULAS(S) Devuelve una copia de la cadena S en mayúsculas
MINUSCULAS(S) Devuelve una copia de la cadena S en minúsculas
SUBCADENA(S,X,Y) Devuelve una nueva cadena que consiste en la parte de la cadena S que va desde la posición X hasta la posición Y (incluyendo ambos extremos)
CONCATENAR(S1,S2) Devuelve una cadena nueva resultado de unir las cadenas S1 y S2
CONVERTIRANUMERO(X) Convierte a número la variable X
CONVERTIRATEXTO(S) Convierte a texto la variable S

Puedes ver más sobre ejercicios básicos de Pseudocódigo y PSeInt en:

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

Suscríbete

Comparte si quieres

TwitterFacebookLinkedInWhatsApp

A V I S O

Hola, si sueles venir por aquí sabrás que desde el 2 de marzo de 2020 no he parado de responder a peticiones de ayuda para ejercicios de algoritmos en PSeint. Tengo que parar de hacerlo, al menos de momento, terminó el confinamiento por el Covid-19 y no me da la vida; he vuelto a trabajar y tengo que recuperar lo no trabajado, y además tengo un proyecto entre manos que no quiero desatender.

Aquí tienes un montón de ejemplos que te pueden servir de ayuda para resolver tu ejercicio. Si pulsas CTRL+F (buscar) y añades las palabras adecuadas puedes moverte por la página y encontrar lo que buscas.

Aún me queda por responder algunos comentarios y lo haré. Pero a partir de hoy (14 de Junio de 2020) desactivo los comentarios temporalmente, porque no voy a poder atenderlos, y tampoco contestaré a peticiones de ayuda que me lleguen al correo electrónico o redes sociales y que consistan en realizar ejercicios, no me importará ponerte un enlace a algún ejercicio que ya esté hecho y que crea que es similar y pueda ayudarte, pero poco más.

Lo siento, yo también estoy aprendiendo e intento ganarme la vida con esto.

El que aprende y aprende y no practica lo que sabe, es como el que ara y ara y no siembra.- (Platón)

Si quieres apoyar el blog, puedes hacerlo a través de Ko-fi

  • terepebernal dice:

    Lorme, has escrito mal el correo electrónico y no puedo enviártelo, así que lo pongo aquí.
    Enunciado:
    Desarrollar un programa en pseudocódigo que luego de ingresar 2 números naturales por teclado, donde el segundo debe ser mayor que el primero. Luego muestre los números naturales que hay entre ambos empezando de menor a mayor. Debe utilizar los ciclos que sean necesarios para desarrollar el ejercicio.

    Algoritmo ejemploNaturales2
    	Definir i, num1, num2 Como Entero
    	
    	Escribir "PRIMER NÚMERO NATURAL: " Sin Saltar
    	Leer num1
    	Escribir "SEGUNDO NÚMERO NATURAL: " Sin Saltar
    	Leer num2
    	
    	// Si son naturales tienen que ser mayores que cero
    	Si num1>=1 Y num2>=1 Entonces
    		// Si el segundo es el mayor
    		Si (num1<num2) Entonces
    			Para i<-num1 Hasta num2 Con Paso 1 Hacer
    				// Muestra el número más un espacio
    				Escribir i, "  " Sin Saltar
    			FinPara
    			Escribir ""
    		FinSi
    		
    		// Si el primero es el mayor
    		Si (num1>num2) Entonces
    			Para i<-num2 Hasta num1 Con Paso 1 Hacer
    				// Muestra el número más un espacio
    				Escribir i, "  " Sin Saltar
    			FinPara
    			Escribir ""
    		FinSi
    		
    		Si (num1==num2) Entonces
    			Escribir num1, " y ", num2, " son iguales"
    		FinSi
    	SiNo
    		Escribir "Los dos números tienen que ser naturales"
    	FinSi
    FinAlgoritmo
  • Érica dice:

    Buenas Noches, me ayudarias con este ejercicio?
    Una Clínica odontológica desea llevar el control de sus 500 pacientes. Necesita guardar los siguientes datos:
    • Nº de historia clínica
    • DNI
    • APELLIDO
    • CANTIDAD DE VISITAS REALIZADAS
    • IMPORTE PROMEDIO ABONADO POR CONSULTAS
    • FECHA DE INGRESO(ingresarlo en variables separadas, por día, mes y año)
    Se pide:
    1. Ingresar los datos para los pacientes
    2. Calcular y mostrar el promedio de visitas realizadas por todos los pacientes ingresados
    3. Calcular y mostrar el importe total abonado por consultas
    4. Listar todos los pacientes cuya fecha de ingreso corresponda al mes de mayo de cualquier año.

    • terepebernal dice:

      ¡Hola Érica! Saludos

      Algoritmo clinicaDental
      	Dimension pacientes[500,7]
      	Definir pacientes Como Cadena
      	Definir i, j, numPacientes Como Entero
      	Definir sumaVisitas, importeConsultas Como Numero
      	
      	// Ingresar datos para los pacientes
      	// El bucle termina cuando se ingresan los 500 pacientes
      	// O si se introduce un número de historia vacío
      	i<-1
      	Repetir 
      		Escribir "Paciente ", i, ": "
      		Escribir "NÚMERO HISTORIA CLÍNICA: " Sin Saltar
      		Leer pacientes[i,1]
      		Si !(pacientes[i,1]=="") Entonces
      			Escribir "DNI: " Sin Saltar
      			Leer pacientes[i,2]
      			Escribir "CANTIDAD DE VISITAS REALIZADAS: " Sin Saltar
      			Leer pacientes[i,3]
      			Escribir "IMPORTE PROMEDIO ABONADO POR CONSULTAS: " Sin Saltar
      			Leer pacientes[i,4]
      			Escribir "FECHA DE INGRESO: "
      			Escribir "DÍA: " Sin Saltar
      			Leer pacientes[i,5]
      			Escribir "MES: " Sin Saltar
      			Leer pacientes[i,6]
      			Escribir "AÑO: " Sin Saltar
      			Leer pacientes[i,7]
      			Escribir ""
      		FinSi
      		i<-i+1
      	Hasta Que i>500 O pacientes[i-1,1]=""
      	
      	// Calcular y mostrar el promedio de visitas realizadas por todos los pacientes ingresados
      	Para i<-1 Hasta 500 Con Paso 1 Hacer
      		Si pacientes[i,1]=="" Entonces
      			i<-500
      		SiNo
      			sumaVisitas <- sumaVisitas + ConvertirANumero(pacientes[i,3])
      			numPacientes <- i
      		FinSi	
      	FinPara
      	
      	Si numPacientes>0 Entonces
      		Escribir ""
      		Escribir "Promedio Visitas = ", sumaVisitas/numPacientes
      	SiNo 
      		Escribir "Promedio Visitas = 0. No hay pacientes"
      	FinSi
      	
      	// Calcular y mostrar el importe total abonado por consultas
      	Para i<-1 Hasta 500 Con Paso 1 Hacer
      		Si pacientes[i,1]=="" Entonces
      			i<-500
      		SiNo
      			importeConsultas <- importeConsultas + ConvertirANumero(pacientes[i,4])
      			numPacientes <- i
      		FinSi	
      	FinPara
      	Si numPacientes>0 Entonces
      		Escribir "Importe total consultas = ", importeConsultas
      	SiNo
      		Escribir "Importe total consultas = 0. No hay pacientes guardados"
      	FinSi
      	
      	// Listar pacientes con fecha ingreso en mayo
      	Escribir ""
      	Escribir"PACIENTES INGRESADO EN MAYO"
      	Escribir "-------------------------------------------"
      	Para i<-1 Hasta 500 Con Paso 1 Hacer
      		Si pacientes[i,1]=="" Entonces
      			Escribir "No hay pacientes guardados"
      			i<-500
      		SiNo
      			Si ConvertirANumero(pacientes[i,6])==5 Entonces
      				Escribir "(", i, ") - N.H: ", pacientes[i,1], ", DNI: ", pacientes[i,2], ", VISITAS: ", pacientes[i,3] Sin Saltar
      				Escribir ", IMPORTE ABONADO: ", pacientes[i,4], ", FECHA INGRESO: ", pacientes[i,5], "/", pacientes[i,6], "/", pacientes[i,7] 
      			FinSi
      		FinSi
      	FinPara
      FinAlgoritmo
  • Christian David dice:

    Hola Tere quería ver si eres tan amable de ayudarme con este problema llevo mucho tiempo intentando resolverlo y no me sale si fueras tan amable de ante mano gracias. PD:Me gusta tu trabajo.
    3. Una empresa de ventas a domicilio maneja 10 artículos diferentes y cuenta con 50 vendedores. En un arreglo de 50×10 se tienen almacenadas las cantidades de cada artículo vendidas por cada vendedor. Además, los precios de cada artículo están almacenados en un vector de tamaño 10. Se desea elaborar un diagrama de caja para imprimir lo siguiente :
    • La cantidad de dinero recopilado por cada vendedor.
    • El número del vendedor que recopiló la mayor cantidad de dinero.
    • El número del artículo más vendido (entre todos los vendedores).
    • El total de vendedores que no vendieron ningún artículo número ocho.

    • terepebernal dice:

      ¡Hola Christian! Como el enunciado no habla de si hay que agregar datos o no a los arreglos, para que veas como funciona, en el algoritmo almacena datos aleatorios. Un saludo

      Algoritmo ejemploVentas3
      	Dimension articulos[50,10]
      	Dimension precios[10]
      	Dimension ventas[50,11]
      	Definir articulos, precios, ventas Como Numero
      	Definir masVentas, posMasVentas, masArticulos, vend8x0 Como Numero
      	Definir i, j Como Entero
      	
      	// Cargar con números aleatorios los arreglos
      	// de articulos vendidos y de precios
      	Para i<-1 Hasta 50 Con Paso 1 Hacer
      		Para j<-1 Hasta 10 Con Paso 1 Hacer
      			articulos[i,j] <- Aleatorio(0,100)
      			Si i==1 Entonces
      				masArticulos <- articulos[i,j]
      				posIarticulos <- 1
      				posJarticulos <- 1
      			FinSi
      			Si masArticulos<=articulos[i,j] Entonces
      				masArticulos <- articulos[i,j]
      				posIarticulos <- i
      				posJarticulos <- j
      			FinSi
      		FinPara
      	FinPara
      	
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		precios[i] <- Aleatorio(25,1000)
      	FinPara
      	
      	// Mostrar cantidad de artículos por cada vendedor
      	Escribir ""
      	Para i<-1 Hasta 50 Con Paso 1 Hacer
      		Escribir "Vendedor ", i, ": " Sin Saltar
      		Para j<-1 Hasta 10 Con Paso 1 Hacer
      			Escribir articulos[i,j], "  " Sin Saltar
      			Si j==8 Y articulos[i,j]==0 Entonces
      				vend8x0 <- vend8x0 + 1
      			FinSi
      		FinPara
      		Escribir ""
      	FinPara
      	
      	// Mostrar precios de los artículos
      	Escribir ""
      	Para i<-1 Hasta 10 Con Paso 1 Hacer
      		Escribir "Artículo ", i, " : ", precios[i]
      	FinPara
      	// Calular dinero recopilado por cada vendedor y
      	// almacenar en el arreglo ventas
      	Para i<-1 Hasta 50 Con Paso 1 Hacer
      		Para j<-1 Hasta 10 Con Paso 1 Hacer
      			ventas[i,j] <- articulos[i,j]*precios[j]
      		FinPara
      	FinPara
      	
      	// Mostrar dinero recopilado por cada vendedor
      	// La suma la guardamos en la columna 11
      	Escribir ""
      	Para i<-1 Hasta 50 Con Paso 1 Hacer
      		Escribir "Vendedor ", i, ": " Sin Saltar
      		Para j<-1 Hasta 10 Con Paso 1 Hacer
      			Escribir ventas[i,j], "  " Sin saltar
      			ventas[i,11] <- ventas[i,11] + ventas[i,j]
      		FinPara
      		Escribir " = ", ventas[i,11]
      		Si i==1 Entonces
      			masVentas <- ventas[i,11]
      			posMasVentas <- 1
      		FinSi
      		Si masVentas<=ventas[i,11] Entonces
      			masVentas <- ventas[i,11]
      			posMasVentas <- i
      		FinSi
      	FinPara
      	
      	// Mostrar el número de vendedor de más ventas
      	Escribir ""
      	Escribir "El vendedor " , posMasVentas, " recopiló más dinero (", masVentas, ")"
      	
      	// Mostrar el artículo más vendido
      	Escribir "El artículo ", posJArticulos, " es el más vendido (", masArticulos,"), por el vendedor ", posIArticulos	
      	
      	// Mostrar el número vendedores que no vendieron ningún artículo número 8
      	Escribir vend8x0, " vendedores no vendieron ningún artículo 8"
      FinAlgoritmo
  • wilson dice:

    me puede ayudar con estos ejercicios xfavor
    Realice los pseudocodigos en PseInt de los siguientes anunciados:

    1. Calcular según la talla de varias personas introducidas por teclado (n), lo siguiente:

    Cuales el promedio de talla
    Cual es la talla de la persona mas baja
    Cual es la talla de la persona mas alta

    Ejemplo

    Entrada: 1.66, 1.65, 1.72, 1.55, 1.71, 1.70, 1.67

    Salida: Promedio 1.66

    Persona mas baja 1.55

    Persona mas alta 1.72

    2. Mezclar 2 listas de nombres cuales quiera que sea introducidos por teclado de manera intercalada.

    Ejemplo. Entrada Lista uno: Juan, Pedro, Raul, Mario

    Lista dos: Silvia, Iveth, Mayda, Monica, Karina

    Salida: Juan, Silvia, Pedro, Iveth, Raul, Mayda, Mario, Monica, Karina

    3. Generar 30 números aleatorios de un rango de 1 al 200 en un array y crear un nuevo arreglo donde deben almacenarse los números primos encontrados.

    Ejemplo. Entrada: 3, 45, 23, 7, 45, 10, 12,……..

    Salida: 3, 23, 7…..

    4. Verificar un correo electrónico si presenta los elementos mínimos para ser válido.

    (debe presentar @, y .com, .org., .bo el punto y un dominio)

    Ejemplo. Entrada: potosi_federal@hotmail.com

    Salida: es un correo electronico valido

    Entrada: hola pero.com

    Salida: correo electronico invalida

    • terepebernal dice:

      ¡Hola Wilson! Saludos. El primer ejercicio:

      Algoritmo ejemploTallas
      	Definir i, N Como Entero
      	Definir talla, max, min, suma Como Numero
      	
      	Escribir "Número de personas: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		i<-1
      		suma <- 0
      		Repetir
      			Escribir "Talla ", i,  ": " Sin Saltar
      			Leer talla
      			Si talla<=0 Entonces
      				Escribir "La talla tiene que ser mayor o igual a 1"
      			SiNo
      				Si i==1 Entonces
      					max <- talla
      					min <- talla
      				FinSi
      				Si max<=talla Entonces
      					max <- talla
      				FinSi
      				Si min>=talla Entonces
      					min <- talla
      				FinSi
      				suma <- suma + talla
      				i<-i+1
      			FinSi
      		Hasta Que i>N
      		Escribir ""
      		Escribir "Promedio ", suma/(i-1)
      		Escribir "Persona más baja ", min 
      		Escribir "Persona más alta ", max
      	SiNo
      		Escribir "El número de personas tiene que ser mayor o igual a 1"
      	FinSi
      FinAlgoritmo

      El segundo ejercicio:

      Algoritmo listasNombres
      	Definir lista1, lista2, lista3, nombre Como Cadena
      	Definir C Como Caracter
      	Definir i, j, posI, posJ Como Entero
      	
      	Escribir "Lista uno: " Sin Saltar
      	Leer lista1
      	Escribir "Lista dos: " Sin Saltar
      	Leer lista2
      	
      	lista3 <- ""
      	posI <- 1
      	posJ <- 1
      	Repetir
      		nombre<-nombreLista(lista1,posI)
      		Si !(nombre=='') Entonces
      			// Si hay nombre en la lista1, se añade a lista3
      			lista3 <- lista3 + nombre
      			lista3 <- lista3 + ", "
      			posI <- posI + Longitud(nombre)+1
      			posI <- moverEspacios(lista1,posI+1)
      		FinSi
      		nombre<-nombreLista(lista2,posJ)
      		Si !(nombre=='') Entonces
      			// Si hay nombre en la lista2, se añade a lista3
      			lista3 <- lista3 + nombre
      			lista3 <- lista3 + ", "
      			posJ <- posJ + Longitud(nombre)+1
      			posJ <- moverEspacios(lista1,posJ+1)
      		FinSi
      	Mientras Que posJ<=Longitud(lista2) O posI<=Longitud(lista1)
      	
      	// Quitar la coma final
      	Si Subcadena(lista3,Longitud(lista3)-1,Longitud(lista3))==', ' Entonces
      		lista3 <- Subcadena(lista3,1,Longitud(lista3)-2)
      	FinSi
      	// Mostra resultado
      	Escribir lista3
      FinAlgoritmo
      
      Funcion n <- moverEspacios(lista,pos)
      	// Devuelve la posición de la cadena para seguir
      	Definir i, n Como Entero
      	
      	n<-pos
      	Para i<-pos Hasta Longitud(lista) Hacer
      		C=Subcadena(lista,i,i)
      		Si C==' ' Entonces
      			n <- n + 1
      		SiNo
      			i<-Longitud(lista)
      		FinSi
      	FinPara	
      FinFuncion
      
      Funcion nombre <- nombreLista(lista, pos)
      	// Devuelve el nombre de la lista antes de llegar a la coma
      	Definir nombre Como Cadena
      	Definir i Como Entero
      	
      	nombre <- ""
      	Para i<-pos Hasta Longitud(lista) Con Paso 1 Hacer
      		C <- Subcadena(lista,i,i)
      		Si !(C==',') Entonces
      			nombre <- nombre + C
      		SiNo
      			i<-Longitud(lista)
      		FinSi
      	FinPara
      FinFuncion

      El tercer ejercicio:

      Algoritmo aleatoriosYprimos
      	Dimension aleatorios[30]
      	Definir i, nPrimos Como Entero
      	
      	Para i<-1 Hasta 30 Con Paso 1 Hacer
      		aleatorios[i] <- Aleatorio(1,200)
      		Si esPrimo(aleatorios[i]) Entonces
      			// Para hallar la dimensión del arreglo de primos
      			nPrimos <- nPrimos+1
      		FinSi
      	FinPara
      	
      	Dimension primos[nPrimos]
      	Definir primos Como Entero
      	
      	j<-1
      	Para i<-1 Hasta 30 Con Paso 1 Hacer
      		Si esPrimo(aleatorios[i]) Entonces
      			primos[j] <- aleatorios[i]
      			j <- j+1
      		FinSi
      	FinPara
      	
      	// Mostrar los dos arreglos
      	Escribir "Aleatorios = " Sin Saltar
      	Para i<-1 Hasta 30 Con Paso 1 Hacer
      		Escribir aleatorios[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	Escribir "Primos en los aleatorios = " Sin Saltar
      	Para i<-1 Hasta nPrimos Con Paso 1 Hacer
      		Escribir primos[i], "  " Sin Saltar
      	FinPara
      	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 cuarto ejercicio:

      Algoritmo correoElectronico
      	Definir correo, extension Como Cadena
      	Definir lCorreo, i Como Entero
      	
      	Escribir "Correo electrónico: " Sin Saltar
      	Leer correo
      	
      	lCorreo <- Longitud(correo)
      	i<-lCorreo
      	extension <- ""
      	Repetir
      		C=Subcadena(correo,i,i)
      		i<-i-1
      	Hasta Que C=="." O i==0
      	extension <- Subcadena(correo,i+1,lCorreo)
      	Si extension==".com" O extension==".org" O extension==".bo" Entonces
      		i<-lCorreo-Longitud(extension)
      		Repetir
      			C=Subcadena(correo,i,i)
      			i<-i-1
      		Hasta Que C="@" O i==0
      		Si C=="@" Entonces
      			Escribir "Es un correo válido"
      		SiNo
      			Escribir "No es un correo electrónico válido"
      		FinSi
      	SiNo
      		Escribir "No es un correo electrónico válido"
      	FinSi
      FinAlgoritmo
  • Jaime Baltazar dice:

    Hola muy buena Información me fueron bastante útiles, me podrían ayudar con este ejercicio porfavor

    Diseñar el algoritmo (diagrama de flujo y pseudocódigo) correspondiente a un programa que funcione como una calculadora, que muestre distintas opciones, si es una suma, resta, multiplicación y división, el cual debe de preguntar cuántos números desea realizar para cada opción.

    • terepebernal dice:

      ¡Hola Jaime! Saludos

      Algoritmo ejemploCalculadora2
      	Definir opcMenu, N Como Entero
      	Definir salir Como Logico
      	Dimension operandos[50]
      	Definir operandos Como Numero
      	
      	salir <- Falso
      	Repetir 
      		Escribir ""
      		Escribir "         MENU      "
      		Escribir "-------------------"
      		Escribir "(1) Suma"
      		Escribir "(2) Resta"
      		Escribir "(3) Multiplicación"
      		Escribir "(4) División"
      		Escribir "(5) Salir"
      		Escribir "Eliga una opción..." Sin Saltar
      		Leer opcMenu
      		Escribir ""
      		
      		Segun opcMenu Hacer
      			1:
      				N <- pedirN()
      				leerOperandos(operandos, N)
      				Escribir ""
      				Escribir "SUMA = " , operar(operandos, N, 1)
      				teclaYborrarPantalla
      			2:
      				N <- pedirN()
      				leerOperandos(operandos, N)
      				Escribir ""
      				Escribir "RESTA = " , operar(operandos, N, 2)
      				teclaYborrarPantalla
      			3:
      				N <- pedirN()
      				leerOperandos(operandos, N)
      				Escribir ""
      				Escribir "PRODUCTO = " , operar(operandos, N, 3)
      				teclaYborrarPantalla
      			4:
      				N <- pedirN()
      				leerOperandos(operandos, N)
      				Escribir ""
      				Escribir "DIVISIÓN = " , operar(operandos, N, 4)
      				teclaYborrarPantalla
      			5:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir "No es una opción correcta. Inténtalo de nuevo"
      				teclaYborrarPantalla
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion teclaYborrarPantalla
      	Escribir "Pulse una tecla para continuar..."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      
      Funcion n <- pedirN()
      	Definir n Como Entero
      	
      	Repetir
      		Escribir "Para cuántos números desea realizar la operación: " Sin Saltar
      		Leer n
      		Si n<=1 Entonces
      			Escribir "La cantidad de números tiene que ser mayor que uno"
      		FinSi
      	Mientras Que (n<=1)
      FinFuncion
      
      Funcion leerOperandos(Oper Por Referencia, n)
      	Definir i Como Entero
      	
      	Si n>50 Entonces
      		Escribir "No puede haber más de 50 operandos"
      	SiNo
      		Para i<-1 Hasta n Con Paso 1 Hacer
      			Escribir "NÚMERO ", i, ": " Sin Saltar
      			Leer Oper[i]
      		FinPara
      	FinSi
      FinFuncion
      
      Funcion resultado <- operar(oper, final, op)
      	Definir resultado Como Numero
      	Definir i Como Entero
      	
      	Segun op Hacer
      		1:
      			resultado <- 0
      			Para i<-1 Hasta final Con Paso 1 Hacer
      				resultado <- resultado + oper[i]
      			FinPara
      		2:
      			resultado <- 0
      			Para i<-1 Hasta final Con Paso 1 Hacer
      				resultado <- resultado - oper[i]
      			FinPara
      		3:
      			resultado <- 1
      			Para i<-1 Hasta final Con Paso 1 Hacer
      				resultado <- resultado * oper[i]
      			FinPara
      		4:
      			i<-1
      			resultado <- oper[i]
      			Para i<-2 Hasta final Con Paso 1 Hacer
      				resultado <- resultado / oper[i]
      			FinPara
      		De Otro Modo:
      			Escribir "Se ha producido algún error..."
      	FinSegun	
      FinFuncion
  • Andrea Nuñez dice:

    Nuevamente por acá necesito ayuda con un pseudocodigo, el enunciado es el siguiente:
    realice el cálculo del sueldo de 5 trabajadores, para
    esto, se debe solicitar por teclado el ingreso del nombre de la persona, la cantidad de
    horas trabajadas y el cargo que desempeña, esto es , si es operario, supervisor o gerente
    (caracteres ‘O’, ‘S’ , ‘G’).
    El precio por hora es 5000 si es O,10000 si es S, 20000 si es G
    Lo que usted debe mostrar finalmente es:
    – El nombre de la persona con el sueldo más alto, su cargo y su sueldo.
    – El nombre de la persona con el sueldo más bajo, su cargo y su sueldo.
    No se puede usar subrutinas ni arreglos, se debe usar el ciclo iterativo Para hacer con paso

    • terepebernal dice:

      ¡Hola Andrea! Podría ser algo así:

      Algoritmo sueldoTrabajadores
      	Definir nombre, cargoCompleto, nomMax, carMax, nomMin, carMin  Como Cadena
      	Definir prHora, horas, sueldo, max, min Como Numero
      	Definir cargo Como Caracter
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 5 Con Paso 1 Hacer
      		Escribir "Nombre trabajador ", i, ": " Sin Saltar
      		Leer nombre
      		Escribir "Horas trabajadas: " Sin Saltar
      		Leer horas
      		Escribir "(O) Operario"
      		Escribir "(S) Supervisor"
      		Escribir "(G) Gerente"
      		Escribir "Elija cargo que desempeña...." Sin Saltar
      		Leer cargo
      		Segun Mayusculas(cargo) Hacer
      			'O':
      				prHora <- 5000
      				cargoCompleto <- "Operario"
      			'S':
      				prHora <- 10000
      				cargoCompleto <- "Supervisor"
      			'G':
      				prHora <- 20000
      				cargoCompleto <- "Gerente"
      			De Otro Modo:
      				Escribir "El cargo seleccionado no es correcto"
      		FinSegun
      		sueldo <- horas*prHora
      		Si i==1 Entonces
      			min <- sueldo
      			nomMin <- nombre
      			carMin <- cargoCompleto
      			max <- sueldo
      			nomMax <- nombre
      			carMax <- cargoCompleto
      		SiNo
      			Si min>=sueldo Entonces
      				min <- sueldo
      				nomMin <- nombre
      				carMin <- cargoCompleto
      			FinSi
      			Si max<=sueldo Entonces
      				max <- sueldo
      				nomMax <- nombre
      				carMax <- cargoCompleto
      			FinSi
      		FinSi
      		
      	FinPara
      	
      	Escribir "El trabajador con el sueldo más alto es: ", nomMax, " , ", carMax, ", ", max
      	Escribir "El trabajador con el sueldo más bajo es: ", nomMin, " , ", carMin, ", ", min	
      FinAlgoritmo
  • Sara dice:

    Saludos ! Me podria asesorar como seria la sintaxis para Pseint en la definición de un registro pues no he encontrado en nigun sitio como realizar registros.

    Ejemplo: Se desea almacenar y gestionar la información de 500 alumnos(nombre,edad,semestre,calificación de 6 materias por 3 parciales usando una matriz de [6][3] .

    De antemano muchas gracias!

    • terepebernal dice:

      ¡Hola Sara! En PSeInt puedes simular los registros con arreglos, utilizando las dimensiones que necesites. Te muestro un algoritmo que podría servir para el caso que pones aquí. Serviría para almacenar los datos y después mostrarlos. Saludos

      Algoritmo ejemploAlumnos
      	// datos: matriz para 500 alumnos, cada fila representa un regisro (un alumno)
      	// cada columna un campo: (1) nombre, (2) edad, (3) semestre
      	Dimension datos[500,3]
      	Definir datos Como Cadena
      	// notas: matriz 3 dimensiones para las calificaciones de 500 alumnos (filas)
      	// 6 columnas para las 6 materias y cada columna tiene 3 huecos más para
      	// los 3 parciales
      	Dimension notas[500,6,3]
      	Definir notas Como Numero
      	// Índices para manejar las matrices
      	Definir i, j, k Como Entero
      	// Variable para poder salir del bucle antes de llegar a los 500
      	Definir salir Como Caracter
      	
      	// Índice para el nombre
      	i<-1
      	Repetir 
      		Escribir ""
      		Escribir "Alumno ", i, ": "
      		Escribir "-------------------"
      		Escribir "Nombre: " Sin Saltar
      		Leer datos[i,1] 
      		Si datos[i,1]=='' Entonces
      			Escribir "Debe escribir un nombre"
      		SiNo
      			Escribir "Edad: " Sin Saltar
      			Leer datos[i,2]
      			Escribir "Semestre: " Sin Saltar
      			Leer datos[i,3]
      			
      			// Materia
      			Para j<-1 Hasta 6 Con Paso 1 Hacer
      				Escribir "Materia ", j, ": "
      				Para k<-1 Hasta 3 Con Paso 1 Hacer
      					// Parciales
      					Escribir "Calificación Parcial ", k, ": " Sin Saltar
      					Leer notas[i,j,k]
      				FinPara
      			FinPara
      			i<-i+1
      		FinSi
      		Escribir "Pulse S para salir, cualquier otra tecla para continuar..." Sin Saltar
      		Leer salir
      	Hasta Que i>500 O Mayusculas(salir)='S' 
      	
      	// Mostrar datos
      	Para i<-1 Hasta 500 Con Paso 1 Hacer
      		// Si el dato del nombre está vacío no lo muestra y sale del bucle
      		Si !(datos[i,1]=='') Entonces
      			Escribir "(", i, ") - " datos[i,1], ", ", datos[i,2], " años , semestre ", datos[i,3]
      			Para j<-1 Hasta 6 Con Paso 1 Hacer
      				Escribir "Materia ", j, ": P1 = ", notas[i,j,1], ", P2 = ", notas[i,j,2], ", P3 = ", notas[i,j,3]
      			FinPara
      		SiNo
      			i<-500
      		FinSi
      	FinPara
      FinAlgoritmo
  • Sandra dice:

    Hola
    Me podrías ayudar a como se hace un programa do-while,if que indique cuando realizar un pedido si hay menos de 20 cajas de pastillas, cada caja vale 205 y hay ahorita 40 cajas de inventario. También indicará el total a pagar por el cliente

    • terepebernal dice:

      ¡Hola Sandra! Si no es exactamente lo que quieres, te servirá de guía, saludos.

      Algoritmo cajasPastillas
      	Definir inventario, cajas Como Entero
      	
      	
      	inventario <- 40
      	Repetir
      		Escribir "Cajas cliente: " Sin Saltar
      		Leer cajas
      		Si cajas<=inventario
      			Escribir "Importe cliente = ", cajas*205
      			inventario <- inventario - cajas
      			Si inventario<20 Entonces
      				Escribir "Es necesario hacer un pedido. " Sin Saltar
      			FinSi
      			Escribir "Quedan ", inventario, " cajas"
      		SiNo
      			Escribir "No hay suficientes cajas"
      		FinSi
      	Mientras Que inventario>=20
      FinAlgoritmo
  • GUSTAVO dice:

    Se cuenta con la información brindada por un conjunto de vendedores. Por cada
    uno de ellos se ingresa su código (un carácter distinto de *) y el importe total de sus
    ventas. Determinar el código del vendedor con mayor importe vendido y dicho
    importe. me prodrian ayudar con este algoritmo gracias

    • terepebernal dice:

      ¡Hola Gustavo! Saludos

      Algoritmo ejemploVentas
      	Definir i, N Como Entero
      	Definir codigo, maxCod Como Caracter
      	Definir ventas, max Como Numero
      	
      	Escribir "Número de vendedores: " Sin Saltar
      	Leer N
      	Escribir ""
      	
      	Si N>0 Entonces
      		i<-1
      		Repetir 
      			Escribir "Código de vendedor ", i, ": " Sin Saltar
      			Leer codigo
      			Si codigo=='*' O  codigo=='' Entonces
      				Escribir "Se debe introducir algún caracter. El caracter * no es válido"
      			SiNo
      				i <- i+1
      			FinSi
      			Escribir "Ventas: " Sin Saltar
      			Leer ventas
      			Si max<=ventas Entonces
      				max <- ventas
      				maxCod <- codigo
      			FinSi
      		Hasta Que i>N 
      		
      		Escribir ""
      		Escribir "El vendedor ", maxCod, " es el de mayor ventas con ", max
      	SiNo
      		Escribir "El número de vendedores tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
  • kelly dice:

    Buenas! Tengo dudas de como hacer este ejercicio.Se necesita un algoritmo que permita ingresar el nombre de 10 personas.
    Luego se necesita saber para cada una:
    a) cuantas letras tiene el nombre
    b) cuantas letras tiene el nombre más corto ingresado
    c) cuantas letras tiene el nombre más largo ingresado
    d) cuantas vocales aparecen en los nombres ingresados. (Se deberá mostrar en
    pantalla por cada nombre ingresado)
    e) Se debe recordar al usuario en pantalla que los caracteres ingresados para los
    nombres solo contengan letras sin símbolos de puntuación o acentuación.

    • terepebernal dice:

      ¡Hola Kelly! Saludos

      Algoritmo ejemploCadenas2
      	Definir nombre Como Cadena
      	Definir i, max, min Como Entero
      	
      	i<-1
      	Repetir
      		Escribir  "(", i, ") Nombre (sin símbolos de" Sin Saltar
      		Escribir " puntuación o acentuación): " Sin Saltar
      		Leer nombre
      		Si i==1 Entonces
      			max <- Longitud(nombre)
      			min <- max
      		FinSi
      		// Número de caracteres
      		Escribir nombre, " tiene ", Longitud(nombre), " caracteres"
      		Si max<=Longitud(nombre) Entonces
      			max <- Longitud(nombre)
      		FinSi
      		Si min>=Longitud(nombre) Entonces
      			min <- Longitud(nombre)
      		FinSi
      		Escribir nombre, " tiene ", numVocales(nombre), " vocales"
      		i<-i+1
      	Hasta Que i>10
      	
      	Escribir "El nombre más corto tiene ", min, " caracteres"
      	Escribir "El nombre más largo tiene ", max, " caracteres"
      FinAlgoritmo
      
      Funcion n <- numVocales(nom)
      	Definir vocales Como Cadena
      	Definir C Como Caracter
      	Definir n Como Entero
      	
      	n <- 0
      	vocales <- "aeiou"
      	
      	Para i<-1 Hasta Longitud(nom) Con Paso 1 Hacer
      		C<-Subcadena(nom,i,i)
      		Para j<-1 Hasta Longitud(vocales) Con Paso 1 Hacer
      			Si Minusculas(C)==Subcadena(vocales,j,j) Entonces
      				n <- n+1
      			FinSi
      		FinPara
      	FinPara
      FinFuncion
  • Sebatina dice:

    1. Implementar un algoritmo que muestre 3 veces el texto “a”.
    2. Implementar un algoritmo que muestre 5 veces una letra l (ingresada por teclado).
    3. Implementar un algoritmo que muestre n veces una letra l (n y l ingresados en teclado).
    4. Implementar un programa que evalúe si un número n es divisible entre 2.
    5. Implementar un programa que evalúe si un número n es divisible entre los numero (2y3)
    6. Implementar un programa que evalúe si un número n es divisible entre por los números que van desde n hasta 1.

    • terepebernal dice:

      ¡Hola Sebatina! Saludos
      Ejercicio 1:

      Algoritmo a3veces
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Escribir "a " Sin Saltar
      	FinPara
      	Escribir ""
      FinAlgoritmo

      Ejercicio 2:

      Algoritmo l5veces
      	Definir i Como Entero
      	Definir letra Como Caracter
      	
      	Escribir "LETRA: " Sin Saltar
      	Leer letra
      	
      	Si letra=='l' Entonces
      		Para i<-1 Hasta 5 Con Paso 1 Hacer
      			Escribir letra, "  " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Escribir "No es la letra l"
      	FinSi
      FinAlgoritmo

      Ejercicio 3:

      Algoritmo lNveces
      	Definir i, n Como Entero
      	Definir letra Como Caracter
      	
      	Escribir "LETRA: " Sin Saltar
      	Leer letra
      	Escribir "Veces a imprimir: " Sin Saltar
      	Leer n
      	
      	Si letra=='l' Y n>0 Entonces
      		Para i<-1 Hasta n Con Paso 1 Hacer
      			Escribir letra, "  " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Escribir "O no es la letra l, o n es menor o igual a cero"
      	FinSi
      FinAlgoritmo

      Ejercicio 4:

      Algoritmo esNdivisible2
      	Definir n Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer n
      	
      	Si (n MOD 2)==0 Entonces
      		Escribir "Es divisible entre 2"
      	SiNo
      		Escribir "No es divisible entre 2"
      	FinSi
      FinAlgoritmo

      Ejercicio 5:

      Algoritmo esNdivisible2y3
      	Definir n Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer n
      	
      	Si (n MOD 2)==0 Y (n MOD 3)==0 Entonces
      		Escribir "Es divisible entre 2 y 3"
      	SiNo
      		Escribir "No es divisible entre 2 y 3"
      	FinSi
      FinAlgoritmo

      Ejercicio 6:

      Algoritmo esNdivisibleNa1
      	Definir i, n Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer n
      	
      	Para i<-n Hasta 1 Con Paso -1 Hacer
      		Si (n MOD i)==0 Entonces
      			Escribir "Es divisible entre ", i
      		SiNo
      			Escribir "No es divisible entre ", i
      		FinSi
      	FinPara
      FinAlgoritmo
  • DANNERY KATHERINE MANAYALLE PURIZACA dice:

    Hola como estan; por favor ayudenme con este ejercicio, es para hoy.. hacer un programa que permita validar el ingreso de notas ( 0-20) para «n» alumnos es decir mientras la nota este fuera de ese rango el programa deberia indicar al usuario ingresar la nota, hasta que ingrese la nota correcta; al final mostrar el promedio

    • terepebernal dice:

      ¡Hola Dannery! Seguramente llega tarde, intenta ponerlo con tiempo, dependiendo del día, hay veces que no me da tiempo a mirarlo todo. Pero ejercicios de este tipo hay varios en los comentarios, quizá no exactamente iguales pero sí muy parecidos. Si pulsas CTRL+F (buscar) se te abre una ventanita en el navegador donde puedes meter palabras y moverte a donde están las palabras en la página.

      Algoritmo ingresarNotas
      	Definir i, N Como Entero
      	Definir nota, suma Como Numero
      	
      	Escribir "NÚMERO DE ALUMNOS: " Sin Saltar
      	Leer N
      	Escribir ""
      	
      	suma <- 0
      	Si N<1 Entonces
      		Escribir "El número de alumnos tiene que ser mayor que cero"
      	SiNo
      		i<-1
      		Repetir
      			Escribir "NOTA ALUMNO ", i, ": " Sin Saltar
      			Leer nota
      			Si !(nota>=0 Y nota<=20) Entonces
      				Escribir "La nota tiene que estar entre 0 y 20"
      			SiNo
      				i <- i+1
      				suma <- suma + nota
      			FinSi
      		Hasta Que i>N
      	FinSi
      	
      	Escribir ""
      	Escribir "Promedio = ", suma/(i-1)
      FinAlgoritmo
  • xavier riquelme dice:

    hola buena, tengo una consuta sobre como generar un programa donde ingrese dos números y el sistema deba mostrar los números naturales que entre ambos empezando desde mayo a menor y señalando cuanto numero pares hay y calcular la suma de los impares mostrando el resultado

    • terepebernal dice:

      ¡Hola Xavier! Al ser tan parecidos los dos PARA que utilizo en el ejercicio, quizá podría hacerse con menos código, no te lo puedo asegurar por falta de tiempo. Tal cual está creo que funciona bien y resuelve el problema, hay uno muy parecido en los comentarios, pero con números enteros, lo he hecho utilizando ese. Un saludo

      Algoritmo ejemploNaturales1
      	Definir i, num1, num2, pares, impares, sPares, sImpares Como Entero
      	
      	Escribir "PRIMER NÚMERO NATURAL: " Sin Saltar
      	Leer num1
      	Escribir "SEGUNDO NÚMERO NATURAL: " Sin Saltar
      	Leer num2
      	
      	// Si son naturales tienen que ser mayores que cero
      	Si num1>=1 Y num2>=1 Entonces
      		pares <- 0
      		impares <- 0
      		sPares <- 0
      		sImpares <- 0
      		
      		// Si el segundo es el mayor
      		Si (num1<num2) Entonces
      			Para i<-num2 Hasta num1 Con Paso -1 Hacer
      				Si (i%2==0) Entonces
      					// Cuenta los pares y los suma
      					pares <- pares+1
      					sPares <- sPares+i
      				SiNo
      					// Cuenta los impares y los suma
      					impares <- impares+1
      					sImpares <- sImpares+i
      				FinSi
      				// Muestra el número más un espacio
      				Escribir i, "  " Sin Saltar
      			FinPara
      			Escribir ""
      			Escribir ""
      			Escribir "Del ", num2, " al ", num1, " hay:"
      			Escribir pares, " números pares, que suman ", sPares
      			Escribir impares, " números impares, que suman ", sImpares
      		FinSi
      
      		// Si el primero es el mayor
      		Si (num1>num2) Entonces
      			Para i<-num1 Hasta num2 Con Paso -1 Hacer
      				Si (i%2==0) Entonces
      					// Cuenta los pares y los suma
      					pares <- pares+1
      					sPares <- sPares+i
      				SiNo
      					// Cuenta los impares y los suma
      					impares <- impares+1
      					sImpares <- sImpares+i
      				FinSi
      				// Muestra el número más un espacio
      				Escribir i, "  " Sin Saltar
      			FinPara
      			Escribir ""
      			Escribir ""
      			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
      			Escribir num1, " y ", num2, " son iguales"
      		FinSi
      	SiNo
      		Escribir "Los dos números tienen que ser naturales"
      	FinSi
      FinAlgoritmo
  • Alex Bernal dice:

    Jefe, tengo varias dudas sobre como realizar el siguiente algoritmo…ayudaa!!!!

    Hacer un algoritmo que calcule y muestre en pantalla, la cantidad de bencina que debe tener un vehículo y cual es su costo total, con solo ingresar desde el teclado los siguientes datos:

    a.- Cantidad de Km. que debe recorrer el vehículo

    b.- El rendimiento que tiene el vehículo , (Por ejemplo una motocicleta rinde 19 km. Una camioneta 13 km aprox)

    c.- El costo de la bencina en la gasolinera (Ejemplo, 780 pesos)

    • terepebernal dice:

      ¡Hola Alex! Saludos

      Algoritmo consumoBencina
      	Definir km, rendimiento, costo Como Numero
      	
      	Escribir "Km que debe recorrer el vehículo: " Sin Saltar
      	Leer km
      	Escribir "Rendimiento: " Sin Saltar
      	Leer rendimiento
      	Escribir "Costo bencina: " Sin Saltar
      	Leer costo
      	
      	Escribir ""
      	Escribir "Para recorrer ", km, " km, el vehículo consumiría ", km/rendimiento 
      	Escribir "El costo sería ", (km/rendimiento)*costo
      FinAlgoritmo
  • DineMesa dice:

    Hola me puedes ayudar por favor con estos algoritmos
    1. Realizar un algoritmo que defina un arreglo unidimensional de n elementos de tipo entero y mediante un menú de opciones (1. Ingresar 2. Consultar 3. Modificar 4. Eliminar 5. Salir) se debe realizar cada opción después de ingresar lo números enteros, cuando consulte o modifique el número lo muestre y diga en qué posición está el número.
    2.Elabore un algoritmo que llene una matriz de 3×3 tipo entero hallar el promedio de la matriz

    • terepebernal dice:

      ¡Hola DineMesa! Saludos.
      El primero:

      Algoritmo ejemploArreglos
      	Definir N Como Entero
      	Definir opcMenu Como Caracter
      	Definir salir Como Logico
      	
      	Escribir "Dimensión del arreglo: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		Dimension A[N]
      		Definir A Como Cadena
      		
      		salir <- Falso
      		Repetir
      			Escribir ""
      			Escribir "    MENÚ"
      			Escribir "------------"
      			Escribir "(1) Ingresar"
      			Escribir "(2) Consultar"
      			Escribir "(3) Modificar"
      			Escribir "(4) Eliminar"
      			Escribir "(5) Salir"
      			Escribir "Elija una opción (1 al 5)...." Sin Saltar
      			Leer opcMenu
      			Borrar Pantalla
      			
      			Segun opcMenu Hacer
      				'1':
      					ingresar(A, N)
      					teclaYBorrar
      				'2':
      					Escribir "Posición: " Sin Saltar
      					Leer pos
      					consultar(A, N, pos)
      					teclaYBorrar
      				'3':
      					Escribir "Posición: " Sin Saltar
      					Leer pos
      					modificar(A, N, pos)
      					teclaYBorrar
      				'4':
      					Escribir "Posición: " Sin Saltar
      					Leer pos
      					eliminar(A, N, pos)
      					teclaYBorrar
      				'5':
      					salir <- Verdadero
      				De Otro Modo:
      					Escribir "Opción incorrecta"
      					teclaYBorrar
      			FinSegun
      		Hasta Que salir
      	SiNo
      		Escribir "La dimensión del arreglo tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
      
      Funcion ingresar(arreglo Por Referencia, final)
      	Definir i Como Entero
      	
      	Escribir "Dimensión del arreglo = ", final
      	i<-1
      	Repetir
      		Si arreglo[i]=="" Y i<=final Entonces
      			Escribir ""
      			Escribir "Ingresar número en la posición ", i, ": " Sin Saltar
      			Leer arreglo[i]
      			i<-final+1
      		SiNo
      			Si i==final Entonces
      				Escribir ""
      				Escribir "Se ha llenado el arreglo, no hay más huecos"
      				i<-final+1
      			SiNo
      				i<-i+1
      			FinSi
      		FinSi
      	Hasta Que i>final
      FinFuncion
      
      Funcion consultar(arreglo, final, indice)
      	Si indice>=1 Y indice<=final Entonces
      		Si arreglo[indice]=="" Entonces
      			Escribir "La posición ", indice, " está vacía"
      		SiNo
      			Escribir "En la posición ", indice, " está el número ", arreglo[indice]
      		FinSi
      	SiNo
      		Escribir "La posición dada no es correcta. Dimensión del arreglo = ", final
      	FinSi
      FinFuncion
      
      Funcion modificar(arreglo, final, indice)
      	Definir num Como Cadena
      	
      	Si indice>=1 Y indice<=final Entonces
      		Si arreglo[indice]=="" Entonces
      			Escribir "No hay nada que modificar. La posición está vacía"
      		SiNo
      			Escribir "Esta posición está ocupada por el número ", arreglo[indice]
      			Escribir "Escriba el nuevo número: " Sin Saltar
      			Leer arreglo[indice]
      		FinSi
      	SiNo
      		Escribir "La posición dada no es correcta. Dimensión del arreglo = ", final
      	FinSi
      FinFuncion
      
      Funcion eliminar(arreglo, final, indice)
      	Definir respuesta Como Caracter
      	
      	respuesta<-"N"
      	Si indice>=1 Y indice<=final Entonces
      		Si arreglo[indice]=="" Entonces
      			Escribir "La posición ", indice, " está vacía"
      		SiNo
      			Escribir "En la posición ", indice, " está el número ", arreglo[indice]
      			Escribir "¿Quiere eliminar el número de esta posición?..." Sin Saltar
      			Leer respuesta
      			Si Mayusculas(respuesta)=='S' Entonces
      				arreglo[indice] <- ""
      			FinSi
      		FinSi
      	SiNo
      		Escribir "La posición dada no es correcta. Dimensión del arreglo = ", final
      	FinSi
      FinFuncion
      
      Funcion teclaYborrar
      	Escribir "Pulse una tecla para continuar..."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion

      Y el segundo:

      Algoritmo ejemploMatriz3x3
      	Dimension matriz[3,3]
      	Definir i, j, matriz, suma Como Entero
      	
      	suma <- 0
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Para j<-1 Hasta 3 Con Paso 1 Hacer
      			matriz[i,j] <- Aleatorio[-10,10]
      			suma <- suma + matriz[i,j]
      			Escribir matriz[i,j], "  " Sin Saltar
      		FinPara
      		Escribir ""
      	FinPara
      	
      	Escribir ""
      	Escribir "Promedio = ", suma, "/9 = ", suma/9
      FinAlgoritmo
  • WILLIAM dice:

    Por favor me pueden ayudar en estos problemas:

    Problema I. Realiza un diagrama de flujo y pseudocódigo, utilizando la estructura de control condicional. Que despliegue un mensaje al alumno de acuerdo con la calificación del examen. Si la calificación es igual 100 que imprima “E”. Si la calificación se encuentra entre 80 a 99 es “B”. Si la calificación se encuentra entre 70 a 79 es “R”. Si la calificación es de 0 a 69 es “I”.
    Entrada:

    Nombre del alumno: Manuel
    Digite la calificación: 89

    Salida: Nombre: Manuel Promedio final: B

    Problema II: Realiza un diagrama de flujo y pseudocódigo, utilizando la estructura de control de flujo repetitiva Mientras y Para. Imprima la suma de 10 números en serie de 5.

    Solicita (Entrada): Pulsa enter para continuar…

    Devuelve en pantalla (Salida):

    La suma total números es: 275

    • terepebernal dice:

      ¡Hola William! Problema I:

      Algoritmo calificacion
      	Definir nombre Como Caracter
      	Definir nota Como Real
      	Definir promedio Como Caracter
      	Escribir 'Nombre del alumno: ' Sin Saltar
      	Leer nombre
      	Escribir 'Digite la calificación: ' Sin Saltar
      	Leer nota
      	Si nota>=0 Y nota<=100 Entonces
      		Si nota>=0 Y nota<=69 Entonces
      			promedio <- 'I'
      		FinSi
      		Si nota>=70 Y nota<=79 Entonces
      			promedio <- 'R'
      		FinSi
      		Si nota>=80 Y nota<=99 Entonces
      			promedio <- 'B'
      		FinSi
      		Si nota==100 Entonces
      			promedio <- 'E'
      		FinSi
      		Escribir ''
      		Escribir 'Nombre: ',nombre,' Promedio final: ',promedio
      	SiNo
      		Escribir 'La calificación no es correcta, tiene que estar entre 0 y 100'
      	FinSi
      FinAlgoritmo

      DFD - Algoritmo calificacion
      Problema II:

      Algoritmo suma10NumSerie5
      	Definir C Como Caracter
      	Definir i,j,suma Como Entero
      	Escribir 'Pulsa enter para continuar... ' Sin Saltar
      	Leer C
      	Si C='' Y Longitud(C)==0 Entonces
      		suma <- 0
      		j <- 1
      		Mientras j<=5 Hacer
      			Para i<-1 Hasta 10 Con Paso 1 Hacer
      				suma <- suma+i
      			FinPara
      			j <- j+1
      		FinMientras
      		Escribir ''
      		Escribir 'La suma total de números es: ',suma
      	SiNo
      		Escribir 'Debe pulsar la tecla enter'
      	FinSi
      FinAlgoritmo

      DFD - Algoritmo suma10NumSerie5

  • Martín dice:

    Hola buenos dia puede ser amable de realizar en pseint, soy nuevo. Se le agradecería, saludos.
    Realizar un algoritmo que permita realizar una encuesta sobre la bebida de preferencia. El algoritmo deberá mostrar tres opciones al encuestado:
    1-pepsi
    2-gallito
    3-fioravanti
    La persona a quien se le realiza la encuesta deberá elegir por una de esas opciones, al final deberá mostrar indicar el nombre del encuestado y la bebida de preferencia, en caso de que la persona haya ingresado un dato diferente a los de las opciones mostrar un mensaje de que la respuesta presentaba errores

    • terepebernal dice:

      ¡Hola Martín! Saludos

      Algoritmo ejemploEncuesta
      	Definir nombre Como Cadena
      	Definir opc Como Caracter
      	
      	Escribir "Nombre: " Sin Saltar
      	Leer nombre
      	
      	Escribir ""
      	Escribir "(1) Pepsi"
      	Escribir "(2) Gallito"
      	Escribir "(3) Fioravanti"
      	Escribir "Elija la bebida de su preferencia (1 a 3)..." Sin Saltar
      	Leer opc
      	Escribir ""
      	
      	Segun opc Hacer
      		'1':
      			Escribir nombre, ", Pepsi"
      		'2':
      			Escribir nombre, ", Gallito"
      		'3':
      			Escribir nombre, ", Fioravanti"
      		De Otro Modo:
      			Escribir "La opción no es correcta"
      	FinSegun
      FinAlgoritmo
  • Carmen dice:

    Hola me podrias ayudar con estos ejercicios?
    Dados dos números A y B, generar un vector de orden N que cumpla con las siguientes
    condiciones:

    a) V[0] = A y V[1] = B.
    b) El valor de V[2] será igual V[0] + V[1].
    c) El valor de V[3] será igual V[0] – V[1].
    d) El valor de V[4] será igual V[2] + V[3].
    e) El valor de V[5] será igual V[2] – V[3].
    Continuar con la serie hasta agotar el vector.

    Dado un número entero positivo de 4 o más dígitos. Generar con los dígitos del número dado
    un vector. Mostrar el vector generado y su orden.
    Ejemplo: Número dado: 45932, V = (4 , 5 , 9 , 3 , 2), orden 5.

    • terepebernal dice:

      ¡Hola Carmen! Se utilizan los índices 0, así que tendrás que tener marcado en el perfil de PSeInt la opción «Utilizar índices en arreglos y cadenas en base 0», sino te dará error. El primer ejercicio:

      Algoritmo ejemploArreglos8
      	Definir i, N Como Entero
      	Definir A, B Como Numero
      	
      	Escribir "Dimensión del vector V: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		Dimension V[N]
      		Definir V Como Entero
      		
      		Escribir "Número A: " Sin Saltar
      		Leer A
      		Escribir "Númro B: " Sin Saltar
      		Leer B
      		
      		V[0] <- A
      		V[1] <- B
      		Para i<-2 Hasta N-1 Con Paso 1 Hacer
      			V[i] <- V[i-2] + V[i-1]
      			Si i+1<=N-1 Entonces
      				V[i+1] <- V[i-2] - V[i-1]
      				i<-i+1
      			FinSi
      		FinPara
      		
      		Escribir "V = " Sin Saltar
      		Para i<-0 Hasta N-1 Con Paso 1 Hacer
      			Escribir V[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Escribir "La dimensión de V tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo

      Y el segundo ejercicio:

      Algoritmo ejemploArreglos9
      	Definir i, num Como Entero
      	Definir cadenaNum Como Cadena
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	cadenaNum <- ConvertirATexto(num)
      	Si num>0 Y Longitud(cadenaNum)>=4 Entonces
      		Dimension V[num]
      		Definir V Como Caracter
      		
      		Para i<-0 Hasta Longitud(cadenaNum)-1 Con Paso 1 Hacer
      			V[i] <- Subcadena(cadenaNum,i,i)
      		FinPara
      		
      		Escribir ""
      		Escribir "Número dado: ", num, ", V = (" Sin Saltar
      		Para i<-0 Hasta Longitud(cadenaNum)-1 Con Paso 1 Hacer
      			Escribir V[i] Sin Saltar
      			Si !(i==Longitud(cadenaNum)-1) Entonces
      				Escribir ", " Sin Saltar
      			SiNo
      				Escribir "), orden ", Longitud(cadenaNum)
      			FinSi
      		FinPara
      		Escribir ""
      	SiNo
      		Escribir "El número tiene que ser mayor que cero y de 4 dígitos o más"
      	FinSi
      FinAlgoritmo
  • Alex dice:

    1. Dado un vector V de N números enteros, cambie cada elemento menor que 10 por 0 y cada elemento mayor que 20 por 1. Encuentre cuántos elementos quedaron sin cambiar.

    2. Diseñe un algoritmo que permita llenar un vector y encontrar en qué posición está el número mayor y el menor.

    • terepebernal dice:

      ¡Hola Alex! El primero:

      Algoritmo ejemploArreglos6
      	Definir i, N, sincambios Como Entero
      	
      	Escribir "Dimensión del vector V: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		Dimension V[N]
      		Definir V Como Entero
      		
      		Escribir "V = " Sin Saltar
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			V[i] <- Aleatorio(-10, 50)
      			Escribir V[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      		
      		sincambios <- 0
      		Escribir "V (con cambios) = " Sin Saltar
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Si V[i]<10 Entonces
      				V[i] <- 0
      			SiNo
      				Si V[i]>20 Entonces
      					V[i] <- 1
      				SiNo
      					sincambios <- sincambios + 1
      				FinSi
      			FinSi
      			Escribir V[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      		Escribir sincambios, " elementos sin cambiar"
      	SiNo
      		Escribir "La dimensión de V tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo

      Y el segundo:

      Algoritmo ejemploArreglos7
      	Definir i, N, max, min, posMax, posMin Como Entero
      	
      	Escribir "Dimensión del vector V: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		Dimension V[N]
      		Definir V Como Entero
      		
      		Escribir "V = " Sin Saltar
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			V[i] <- Aleatorio(-10, 50)
      			Escribir V[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      		
      		max <- V[1]
      		min <- V[1]
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Si min>V[i] Entonces
      				min <- V[i]
      				posMin <- i
      			FinSi
      			Si max<V[i] Entonces
      				max <- V[i]
      				posMax <- i
      			FinSi
      		FinPara
      		
      		Escribir ""
      		Escribir "El número mayor es ", max, " y está en la posición ", posMax
      		Escribir "El número menor es ", min, " y está en la posición ", posMin
      	SiNo
      		Escribir "La dimensión de V tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
  • Alex dice:

    Ayuda !!!! Diseñe un algoritmo que permita llenar un vector con números enteros entre 1 y 100 y realizar las siguientes operaciones
    • Si son números de 2 cifras sumarlas y colocar su respuesta en otro vector
    • Si la suma es aún de 2 cifras volver a repetir el proceso
    • Y ordenar el nuevo vector desde el mayor al menor

    • terepebernal dice:

      ¡Hola Alex! Saludos

      Algoritmo ejemploArreglos5
      	Definir i, j, k, N Como Entero
      	Definir dig1, dig2 Como Caracter
      	
      	Escribir "Dimensión del vector: " Sin Saltar
      	Leer N
      	
      	Si N>0 Entonces
      		Dimension A[N]
      		Dimension B[N]
      		Dimension C[N]
      		Definir A, B, C Como Entero
      		
      		j<-1
      		k<-1
      		Escribir "A = " Sin Saltar
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			A[i] <- Aleatorio(1,100)
      			Escribir A[i], "  " Sin Saltar
      			Si Longitud(ConvertirATexto(A[i]))==2 Entonces
      				dig1 <- Subcadena(ConvertirATexto(A[i]),1,1) 
      				dig2 <- Subcadena(ConvertirATexto(A[i]),2,2)
      				B[j] <- ConvertirANumero(dig1) + ConvertirANumero(dig2)
      				Si Longitud(ConvertirATexto(B[j]))==2 Entonces
      					dig1 <- Subcadena(ConvertirATexto(B[j]),1,1) 
      					dig2 <- Subcadena(ConvertirATexto(B[j]),2,2)
      					C[k] <- ConvertirANumero(dig1) + ConvertirANumero(dig2)
      					k<-k+1
      				FinSi
      				j <- j+1
      			FinSi
      		FinPara
      		Escribir ""
      		
      		Escribir "B = " Sin Saltar
      		Para i<-1 Hasta j-1 Con Paso 1 Hacer
      			Escribir B[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      		
      		OrdenDecreciente(C,k-1)
      		Escribir "C = " Sin Saltar
      		Para i<-1 Hasta k-1 Con Paso 1 Hacer
      			Escribir C[i], "  " Sin Saltar
      		FinPara
      		Escribir ""
      	SiNo
      		Escribir "La dimensión del vector tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
      
      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
  • MALENA dice:

    hola! me ayudas con esto, calcular y mostrar para cada obra el importe total a pagar por la misma, en funcion de la cantidad de metros construidos

    • terepebernal dice:

      ¡Hola Malena! Saludos

      Algoritmo importeObra
      	Definir m2, precio Como Numero
      	
      	Escribir "Metros Cuadrados: " Sin Saltar
      	Leer m2
      	Escribir "Precio meetro cuadrado: " Sin Saltar
      	Leer precio
      	
      	Si m2<1 O precio<1 Entonces
      		Escribir "El metro cuadrado y el precio tienen que tener valores mayores que cero"
      	SiNo
      		Escribir "Importe obra = ", m2*precio
      	FinSi
      FinAlgoritmo
  • Santiago Andres Banquet Lascano dice:

    hola soy algo nuevo en pseint y me pusieron este ejercicio Desarrollar un algoritmo implementado en PSeInt que permita crear una matriz mágica NxN de forma aleatoria, con valores enteros tanto positivos como negativos

    • terepebernal dice:

      ¡Hola Santiago! Los valores aleatorios los he puesto de -20 a 20. Saludos

      Algoritmo matrizMagica
      	Definir n, i, j Como Entero
      	
      	Escribir "Dimensión de la matriz cuadrada: " Sin Saltar
      	Leer n
      	
      	Si n<=0 Entonces
      		Escribir "La dimensión tiene que ser mayor que cero"
      	SiNo
      		Dimension matriz[n,n]
      		Definir matriz Como Entero
      		
      		Para i<-1 Hasta n Con Paso 1 Hacer
      			Para j<-1 Hasta n Con Paso 1 Hacer
      				matriz[i,j]<-Aleatorio(-20,20)
      				Escribir matriz[i,j], "   " Sin Saltar
      			FinPara
      			Escribir ""
      		FinPara
      	FinSi
      FinAlgoritmo
  • Luis dice:

    Escriba un diagrama de flujo tal que dado como entrada un arreglo unidimensional que contiene números enteros, determine cuántos de ellos son positivos, negativos o nulos.

    En una universidad se conoce el número de alumnos que ingresaron en sus 7 diferentes carreras, en los últimos 12 años. Construya un diagrama de flujo que pueda proporcionar la siguiente información:

    1. Total, de alumnos por año.
    2. Porcentaje de alumnos ingresados en el año X de la carrera Y.
    3. En qué año y en que carrera se dio el menor ingreso de alumnos.
    4. Año en el cual la carrera T tuvo el mayor ingreso de alumnos.

    7. Construya un diagrama de flujo que llene de ceros una matriz A [N x N], excepto en la diagonal principal donde debe asignar 1. Si N es igual 4, la matriz debe quedar de la siguiente manera:

    1 0 0 0
    0 1 0 0
    0 0 1 0
    0 0 0 1

    • terepebernal dice:

      ¡Hola Luis! Con PSeInt puedes obtener el diagrama de flujo del pseudocódigo y viceversa. Te pongo aquí los algoritmos y podrás obtener los diagramas de flujo en la aplicación.
      El primero:

      Algoritmo ejemploArreglo4
      	Definir N Como Entero
      	
      	Escribir "Dimensión del arreglo unidimensional: " Sin Saltar
      	Leer N
      	Dimension A[N]
      	Definir A Como Entero
      	
      	rellenarArreglo(A, N, -50, 50)
      	Escribir ""
      	mostrarArreglo(A, N)
      	Escribir ""
      	tipoEntero(A,N)
      FinAlgoritmo
      
      Funcion rellenarArreglo(arreglo Por referencia, n, iniNum, finNum)
      	// Recibe como parámetro un arreglo de n elementos y lo rellena
      	// dándole valores enteros a sus elementos entre iniNum y finNum aleatorios
      	Definir i Como Entero
      	
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		arreglo[i] <- Aleatorio(iniNum, finNum)
      	FinPara
      FinFuncion
      
      Funcion mostrarArreglo(arreglo, n)
      	// Recibe como parámetro un arreglo de n elementos y muestra sus elementos por pantalla
      	Definir i Como Entero
      	
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir arreglo[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
      Funcion tipoEntero(arreglo, n)
      	// Recibe como parámetro un arreglo de n elementos y muestra por
      	// pantalla los cantidad de números positivos, negativos y nulos que tiene
      	Definir i, nulos, positivos, negativos Como Entero
      	
      	nulos <- 0
      	positivos <- 0
      	negativos <- 0
      	
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si arreglo[i]==0 Entonces
      			nulos <- nulos + 1
      		FinSi
      		Si arreglo[i]>0 Entonces
      			positivos <- positivos + 1
      		FinSi
      		Si arreglo[i]<0 Entonces
      			negativos <- negativos + 1
      		FinSi
      	FinPara
      	
      	Escribir "El arreglo tiene: "
      	Escribir nulos, " números igual a cero"
      	Escribir positivos, " números positivos"
      	Escribir negativos, " números negativos"
      FinFuncion

      El segundo:

      Algoritmo datosUniversidad
      	Dimension alumnos[7,12]
      	Definir alumnos,i,j Como Entero
      	rellenarAlumnos(alumnos)
      	totalAlumnos(alumnos)
      	// Porcentaje de alumnos para el año 10 de la carrera 5
      	porAnioCarrera(alumnos,5,10)
      	// Año y carrera de menor ingreso de alumnos
      	menosAlumnos(alumnos)
      	// Año del mayor número de ingreso de alumnos en la carrera 4
      	masAlumnosCarrera(alumnos,4)
      FinAlgoritmo
      
      Funcion rellenarAlumnos(arreglo Por Referencia)
      	Definir i,j Como Entero
      	Para i<-1 Hasta 7 Hacer
      		Para j<-1 Hasta 12 Hacer
      			arreglo[i,j]<-Aleatorio(10,100)
      		FinPara
      	FinPara
      FinFuncion
      
      Funcion totalAlumnos(arreglo)
      	Definir i,j Como Entero
      	Para i<-1 Hasta 7 Hacer
      		Escribir ''
      		Escribir 'Carrera ',i
      		Para j<-1 Hasta 12 Hacer
      			Escribir 'Año ',j,' - ' Sin Saltar
      			Escribir arreglo[i,j],' alumnos'
      		FinPara
      	FinPara
      FinFuncion
      
      Funcion porAnioCarrera(arreglo,carrera,anio)
      	Definir i,alumnosAnio Como Entero
      	alumnosAnio <- 0
      	Para i<-1 Hasta 7 Hacer
      		alumnosAnio <- alumnosAnio+arreglo[i,anio]
      	FinPara
      	Escribir ''
      	Escribir 'Total alumnos del año ',anio,': ',alumnosAnio
      	Escribir (arreglo[carrera,anio]*100)/alumnosAnio,'%',' de alumnos de ese año de la carrera ',carrera,': '
      FinFuncion
      
      Funcion menosAlumnos(arreglo)
      	Definir i,j,min,indI,indJ Como Entero
      	min <- arreglo[1,1]
      	Para i<-1 Hasta 7 Hacer
      		Para j<-1 Hasta 12 Hacer
      			Si min>=arreglo[i,j] Entonces
      				min <- arreglo[i,j]
      				indI <- i
      				indJ <- j
      			FinSi
      		FinPara
      	FinPara
      	Escribir 'El menor ingreso de alumnos ha sido de ',arreglo[indI,indJ],' y ha tenido lugar en la carrera ',indI,' y el año ',indJ
      FinFuncion
      
      Funcion masAlumnosCarrera(arreglo,carrera)
      	Definir i,min,indI,indJ Como Entero
      	max <- arreglo[carrera,1]
      	Para i<-1 Hasta 12 Hacer
      		Si max<=arreglo[carrera,i] Entonces
      			max <- arreglo[carrera,i]
      			indI <- i
      		FinSi
      	FinPara
      	Escribir 'La carrera ',carrera,' ha tenido en el año ',indI,' su mayor número de alumnos (',arreglo[carrera,indI],')'
      FinFuncion

      Y el tercero:

      Algoritmo matrizDiagonal
      	Definir n, i, j Como Entero
      	
      	Escribir "Dimensión de la matriz cuadrada: " Sin Saltar
      	Leer n
      	
      	Si n<=0 Entonces
      		Escribir "La dimensión tiene que ser mayor que cero"
      	SiNo
      		Dimension matriz[n,n]
      		Definir matriz Como Entero
      		
      		Para i<-1 Hasta n Con Paso 1 Hacer
      			Para j<-1 Hasta n Con Paso 1 Hacer
      				Si i<>j Entonces
      					matriz[i,j]<-0
      				SiNo
      					matriz[i,j]<-1
      				FinSi
      				Escribir matriz[i,j], "   " Sin Saltar
      			FinPara
      			Escribir ""
      		FinPara
      	FinSi
      FinAlgoritmo

      Saludos

  • Daniel Guadamuz dice:

    ayuda para crear este algoritmo porfavor , Calcular la velocidad y altura de un cuerpo que es lanzado verticalmente hacia arriba
    con una velocidad inicial de 150 ms/s, después de un tiempo de 5seg. Crear el
    algoritmo y seudocódigo.

    • terepebernal dice:

      ¡Hola Daniel! Creo que es así:

      Algoritmo tiroVertical
      	Definir vIni, vFin, tiempo, altura Como Numero
      	
      	vIni <- 150
      	tiempo <- 5
      	
      	altura <- 0 + ((vIni*tiempo)+(1/2*(-9.8*(tiempo^2))))
      	vFin <- vIni + (-9.8*tiempo)
      	
      	Escribir "Altura = ", altura, " m"
      	Escribir "Velocidad final = ", vFin, " m/s"
      FinAlgoritmo
  • Andrea Nuñez dice:

    Tengo una problema con este algoritmo que debo desarrollar en pseint. No se debe ocupar matriz ni for, solo repetir, mientras y el acumulador/contador.

    Se debe realizar un algoritmo en pseudocódigo, que se encargue de generar una
    estadística respecto a los vehículos que transitan a exceso de velocidad. Para esto, se
    solicita el ingreso de un valor que indique por cuanto se sobrepasó el límite de velocidad
    (por sobre 100 km/h que es el límite) y un carácter que indique si este exceso de velocidad
    ocurrió durante la mañana, la tarde o la noche (‘m’, ’t’, ’n’). El ingreso de datos finalizará
    cuando se ingrese 0 donde se solicita el exceso de velocidad. Una vez ocurre esto, debe
    mostrar como resultado un mensaje para cada periodo del día en el que ocurrió el exceso,
    junto con el número de vehículos que sobrepasó este límite y el promedio de velocidad. A
    continuación un ejemplo:
    Para indicar el caso en que un vehículo en la mañana transitaba a 130 k/h, el ingreso de
    datos por teclado debe ser el siguiente:
    – El primer valor ingresado debe ser 30 (que es el valor en km/h que indica por cuanto
    se sobrepasó).
    – El segundo valor ingresado debe ser el carácter ‘m’ (que representa que este exceso
    de velocidad ocurrió en la mañana).

    • terepebernal dice:

      ¡Hola Andrea! Saludos

      Algoritmo estadisticaVelocidad
      	Definir excesoVelocidad, mVehiculos, mVelocidad, tVehiculos, tVelocidad, nVehiculos, nVelocidad  Como Entero
      	Definir momentoDia Como Caracter
      	
      	Repetir
      		Escribir "Exceso de velociad (sobre 100 km/h): " Sin Saltar
      		Leer excesoVelocidad
      		Si excesoVelocidad > 0 Entonces
      			Escribir "Momento del dia (m, t, n): " Sin Saltar
      			Leer momentoDia
      			Segun Minusculas(momentoDia) Hacer
      				'm':
      					mVehiculos <- mVehiculos + 1
      					mVelocidad <- mVelocidad + (100+excesoVelocidad)
      				't':
      					tVehiculos <- tVehiculos + 1
      					tVelocidad <- tVelocidad + (100+excesoVelocidad)
      				'n':
      					nVehiculos <- nVehiculos + 1
      					nVelocidad <- nVelocidad + (100+excesoVelocidad)
      				De Otro Modo:
      					Escribir "Opción incorrecta. Inténtelo de nuevo"
      			FinSegun
      		SiNo
      			Escribir ""
      			Escribir "El exceso tiene que ser mayor que cero"
      		FinSi
      	Hasta Que excesoVelocidad==0
      	
      	Escribir ""
      	// Condicionales para que al dividir por cero no de error
      	Si mVehiculos>0 Entonces
      		Escribir "Mañana: ", mVehiculos, " vehículos sobrepasaron 100 km/h, el promedio de velocidad fue ", mVelocidad/mVehiculos
      	SiNo
      		Escribir "Mañana: 0 vehículos"
      	FinSi
      	Si tVehiculos>0 Entonces
      		Escribir "Tarde: ", tVehiculos, " vehículos sobrepasaron 100 km/h, el promedio de velocidad fue ", tVelocidad/tVehiculos
      	SiNo
      		Escribir "Tarde: 0 vehículos"
      	FinSi
      	Si nVehiculos>0 Entonces
      		Escribir "Noche: ", nVehiculos, " vehículos sobrepasaron 100 km/h, el promedio de velocidad fue ", nVelocidad/nVehiculos
      	SiNo
      		Escribir "Noche: 0 vehículos"
      	FinSi
      FinAlgoritmo
  • Samuel dice:

    Hola. Necesito ayuda con este ejercicio. Un médico requiere conocer el número de pulsaciones de una persona
    por ejercicio aeróbico realizado. Para ello necesita un programa que
    considere: Calcular el número de pulsaciones que debe tener una persona
    por cada 10 segundos de ejercicio aeróbico; la formula que se aplica
    cuando el sexo es femenino es: num. pulsaciones = (220 –
    edad)/10 y si el sexo es masculino: num. pulsaciones = (210 – edad)/10

    • terepebernal dice:

      ¡Hola Samuel! Saludos

      Algoritmo pulsaciones
      	Definir sexo Como Caracter
      	Definir edad Como Entero
      	
      	Escribir "Edad: " Sin Saltar
      	Leer edad
      	
      	Si edad>0 Entonces
      		Escribir "Sexo (M/F): " Sin Saltar
      		Leer sexo
      		
      		Si Mayusculas(sexo) == 'M' Entonces
      			Escribir "Pulsaciones (10s) = ", (210-edad)/10
      		SiNo
      			Si Mayusculas(sexo) == 'F' Entonces
      				Escribir "Pulsaciones (10s) = ", (220-edad)/10
      			SiNo
      				Escribir "La opción pulsada no es correcta"
      			FinSi
      		FinSi
      	SiNo
      		Escribir "La edad tiene que ser mayor que cero"
      	FinSi
      FinAlgoritmo
  • Carlos Alarcon dice:

    Que tal compa ! que pena la molestia, queria saber si me podria colaborar con estos ejercicio, le agradezco muchisimo

    1. Los siguientes algoritmos se debe desarrollar con arreglos

    a. Realizar un algoritmo que defina un arreglo unidimensional tipo cadena y diga si una palabra es palíndrome (Una palabra palíndrome es aquella que se lee de derecha a izquierda de la misma manera) ejemplo: anitalavalatina.

    b. Elabore un algoritmo que llene una matriz de 3×3 tipo entero diga cuántos números son pares y cuantos números son impares.

    2. Desarrollar el siguiente algoritmo con ciclo mientras
    a. Google está interesado en realizar un algoritmo para calcular el promedio de visitantes durante N días de uno de sus sitios web. El algoritmo debe solicitar por pantalla el número de días, y para cada día el número de visitas que se realizaron ese día. Al finalizar debe mostrar el promedio de visitantes durante los N días.

    • terepebernal dice:

      ¡Hola Carlos! El primer ejercicio:

      Algoritmo palindrome
      	Definir palabra, izquierda, derecha Como Cadena
      	Definir i Como Entero
      	
      	Escribir "PALABRA: " Sin Saltar
      	Leer palabra
      	
      	Dimension arreglo[Longitud(palabra)]
      	Definir arreglo Como Cadena
      	
      	Para i<-1 Hasta Longitud(palabra) Con Paso 1 Hacer
      		arreglo[i] <- Subcadena(palabra,i,i)
      	FinPara
      	
      	izquierda <- ""
      	Para i<-1 Hasta Longitud(palabra) Con Paso 1 Hacer
      		izquierda <- izquierda + arreglo[i]
      	FinPara
      	
      	derecha <- ""
      	Para i<-Longitud(palabra) Hasta 1 Con Paso -1 Hacer
      		derecha <- derecha + arreglo[i]
      	FinPara
      	
      	Si izquierda==derecha Entonces
      		Escribir "La palabra ", palabra, " es palíndrome"
      	SiNo
      		Escribir "La palabra ", palabra, " no es palíndrome"
      	FinSi
      FinAlgoritmo

      El segundo ejercicio:

      Algoritmo matriz3x3
      	Dimension matriz[3,3]
      	Definir matriz, i, j, pares, impares Como Entero
      	
      	pares <- 0
      	impares <- 0
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Para j<-1 Hasta 3 Con Paso 1 Hacer
      			matriz[i,j] <- Aleatorio(0,20)
      			Si matriz[i,j]%2==0 Entonces
      				pares <- pares + 1
      			SiNo
      				impares <- impares + 1
      			FinSi
      		FinPara
      	FinPara
      	
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Para j<-1 Hasta 3 Con Paso 1 Hacer
      			Escribir matriz[i,j], "  " Sin Saltar
      		FinPara
      		Escribir ""
      	FinPara
      	
      	Escribir ""
      	Escribir "Hay ", pares, " números pares y ", impares, " números impares"
      FinAlgoritmo

      Y el tercer ejercicio:

      Algoritmo visitasWeb
      	Definir nDias, nVisitas, tVisitas, i Como Entero
      	
      	Escribir "Número de días: " Sin Saltar
      	Leer nDias
      	Escribir ""
      	
      	Si nDias<=0 Entonces
      		Escribir "El número de días tiene que ser mayor que cero"
      	SiNo
      		i<-1
      		Mientras i<=nDias
      			Escribir "Número de visitas día ", i, ": " Sin Saltar
      			Leer nVisitas
      			
      			Si nVisitas>=0 Entonces
      				tVisitas <- tVisitas + nVisitas
      				i <- i+1
      			SiNo
      				Escribir "El número de visitas tiene que ser mayor o igual a cero"
      			FinSi
      		FinMientras
      		Escribir ""
      		Escribir "Promedio visitantes para los ", nDias, " días es ", tVisitas/nDias
      	FinSi
      FinAlgoritmo
  • Nelson fiereo dice:

    Porfa me podrían ayudar con este problema en pseint
    Realizar un programa utilizando el ciclo mientras que muestre los 20 primeros múltiplos de 5, empezando desde el 5
    Graciasss

    • terepebernal dice:

      ¡Hola Nelson! Saludos

      Algoritmo multiplosDe5
      	Definir num, multiplos Como Entero
      	
      	multiplos <- 0
      	num <- 5
      	Mientras (multiplos < 20) Hacer
      		Si (num%5==0) Entonces
      			Escribir num, "  " Sin Saltar
      			multiplos <- multiplos + 1
      		FinSi
      		num <- num+5
      	FinMientras
      	Escribir ""
      FinAlgoritmo
  • Diego Martinez dice:

    El municipio de Medellín, organizó un evento en el cual, el ingreso es a través de la factura de los servicios públicos. A este evento, no se permite el ingreso de quiénes en su factura, la luz exceda los 250kW/h y el agua los 20ml3. El cupo máximo es de 20 personas.

    • terepebernal dice:

      ¡Hola Diego! Saludos

      Algoritmo paseEvento
      	Definir facturaLuz, facturaAgua Como Numero
      	Definir salir Como Caracter
      	
      	salir <- 'N'
      	Repetir
      		Escribir "Consumo factura luz: " Sin Saltar
      		Leer facturaLuz
      		Escribir "Consumo factura agua: " Sin Saltar
      		Leer facturaAgua
      		
      		Si facturaLuz>250 O facturaAgua>20 Entonces
      			Escribir "Excede el consumo de facturas. No está permitido el acceso"
      		SiNo
      			personas <- personas + 1
      			Escribir "Han entrado ", personas, " personas"
      		FinSi
      		Si !(personas==20) Entonces
      			Escribir ""
      			Escribir "Para salir pulse la tecla S, para seguir cualquier otra..." Sin Saltar
      			Leer salir
      		FinSi
      	Hasta Que (personas==20) O Mayusculas(salir)=='S'
      FinAlgoritmo
  • MEL1 dice:

    Hola, porfavor necesito ayuda con ese algoritmo!!

    Desarrollar un algoritmo que permita ingresar la edad de N personas, validando que este valor sea positivo. Luego mostrar un cuadro resumen con la cantidad de personas mayores de edad y menores de edad. Considerar 18 años para la mayoría de edad. Además, mostrar el promedio de edades.

    • terepebernal dice:

      ¡Hola Mel1! Saludos

      Algoritmo ejemploEdad
      	Definir edad, N, i, mayorEdad, mayores, menores, suma Como Entero
      	
      	mayorEdad <- 18
      	mayores <- 0
      	menores <- 0
      	suma <- 0
      	Escribir "NÚMERO DE PERSONAS: " Sin Saltar
      	Leer N
      	Escribir ""
      	
      	Para i<-1 Hasta N Con Paso 1 Hacer
      		Repetir 
      			Escribir "EDAD PERSONA ", i, ": " Sin Saltar
      			Leer edad
      			Si edad<=0 Entonces
      				Escribir "La edad tiene que ser mayor que cero"
      			SiNo
      				Si edad>=mayorEdad Entonces
      					mayores <- mayores + 1
      				SiNo
      					menores <- menores + 1
      				FinSi
      				suma <- suma + edad
      			FinSi
      		Hasta Que edad>0
      	FinPara
      
      	Escribir "Mayores de edad: ", mayores
      	Escribir "Menores de edad: ", menores
      	Escribir "Promedio de edades = ", suma/(mayores+menores)
      FinAlgoritmo
  • Moiss Y dice:

    Felicidades por el espacio que tienes para ayudar a novatos que estamos enpesando en esta de la programación xf ayudame con este actividad que estoy intentan e intent2. Realizar el Pseudocódigo en PSeInt, Diagrama de flujo y su respectiva
    codificación en lenguaje C++, que permita calcular el costo de agua potable
    (recibo de agua) de un medidor. Sabiendo que:
    – Hasta los 500 cm^3 se paga $5,45
    – Hasta los 750 cm^3 se paga $7,49
    – Por encima de los 750 se paga $10,30
    – Se debe ingresar por teclado el número de cm^3 consumidos y mostrar por
    pantalla el valor a pagar.
    – Guarde los archivos con el nombre de pago_agua.
    Universidad de las Fuerzas Armadas ESPE Unidad de Educación a Distancia
    2
    3. Realizar el Pseudocódigo en PSeInt, Diagrama de flujo y su respectiva
    codificación en lenguaje C++, permita calcular el bono de desarrollo de una
    persona teniendo en cuenta que:
    – La persona debe ser de la tercera edad.
    – Los ingresos de dicha persona no deben ser superiores a $395
    – Si la edad está comprendida entre 63 y 67 años, recibe $10
    – Si la edad está comprendida entre 68 y 72 años, recibe $15
    – Si la edad es mayor a 73 años, recibe $20
    – Se debe ingresar por teclado la edad y el sueldo y mostrar por pantalla el bono
    a recibir.
    – Guarde los archivos con el nombre de Bonoa y nada .

    • terepebernal dice:

      ¡Hola Moiss! Con el PSeInt puedes obtener el diagrama de flujo del pseudocódigo y viceversa.
      El primero:

      Algoritmo pago_agua
      	Definir cm3,precio Como Real
      	Escribir 'Centímetros cúbicos: ' Sin Saltar
      	Leer cm3
      	Si cm3<=0 Entonces
      		Escribir 'La cantidad tiene que ser mayor que cero'
      	SiNo
      		Si cm3>=1 Y cm3<=500 Entonces
      			precio <- 5.45
      		SiNo
      			Si cm3>=501 Y cm3<=750 Entonces
      				precio <- 7.49
      			SiNo
      				Si cm3>=750 Entonces
      					precio <- 10.3
      				FinSi
      			FinSi
      		FinSi
      		Escribir cm3,' centímetros cúbicos x $',precio,' = $',cm3*precio
      	FinSi
      FinAlgoritmo
      using namespace std;
      
      #include 
      #include 
      
      int main() {
      	float cm3, precio;
      	
      	cout<<"CENTIMETROS CUBICOS: ";
      	cin>>cm3;
      	
      	if (cm3<=0) {
      		printf("La cantidad tiene que ser mayor que cero");
      	}
      	else {
      		if (cm3>=1 && cm3<=500){
      			precio=5.45;
      		}
      		else if (cm3>=501 && cm3<=750){
      			precio=7.49;
      		}
      		else if (cm3>=750) {
      			precio=10.3;
      		}
      		cout<<"\n";
      		printf("%.2f", cm3);
      		cout<<" CENTIMETROS CUBICOS x $";
      		printf("%.2f", precio);
      		cout<<" = $";
      		printf("%.2f", cm3*precio);
      	}
      }

      Y el segundo:

      Algoritmo Bonoa
      	Definir edad Como Entero
      	Definir sueldo,bono Como Real
      	Escribir 'Edad: ' Sin Saltar
      	Leer edad
      	Escribir 'Sueldo: ' Sin Saltar
      	Leer sueldo
      	Si edad>=0 O sueldo<=0 Entonces
      		Escribir 'La edad y el sueldo tienen que ser mayores que cero'
      	SiNo
      		Si edad>=63 Y sueldo<=395 Entonces
      			Si edad>=63 Y edad<=67 Entonces
      				bono <- 10
      			SiNo
      				Si edad>=68 Y edad<=72 Entonces
      					bono <- 15
      				SiNo
      					Si edad>=73 Entonces
      						bono <- 20
      					FinSi
      				FinSi
      			FinSi
      			Escribir 'Bono = $',bono
      		SiNo
      			Escribir 'La edad o el sueldo no permiten recibir el bono'
      		FinSi
      	FinSi
      FinAlgoritmo
      using namespace std;
      
      #include 
      #include 
      
      int main() {
      	int edad;
      	float sueldo, bono;
      	
      	cout<<"EDAD: ";
      	cin>>edad;
      	cout<<"SUELDO: ";
      	cin>>sueldo;
      	
      	if (edad<=0 || sueldo<=0) {
      		printf("La edad y el sueldo tienen que ser mayores que cero");
      	}
      	else {
      		if (edad>=63 && sueldo<=395){
      		 	if (edad>=63 && edad<=67){
      				bono=10;
      			}
      			else if (edad>=68 && edad<=72) {
      				bono=15;
      			}
      			else if (edad>=73) {
      				bono=20;
      			}
      			cout<<"\nBono = $";
      			printf("%.2f", bono);
      		}
      		else {
      			cout<<"La edad o el sueldo no permiten recibir el bono";
      		}
      	}
      }
  • diego dice:

    leer un vector B, cuyos elementos solo pueden ser 0 y 1. leer tambien los vectores l y m con datos de tipo reales. hacer un programa que permita crear un vector A que:
    a[i]=l[i] si B[i]=0
    a[i]=m[i] si B[i]=1

    • terepebernal dice:

      ¡Hola Diego! Como el enunciado no dice las dimensión para los vectores, el algoritmo pide la dimensión por teclado. Saludos

      Algoritmo leerVectores
      	Definir N, i Como Entero
      	
      	// Leer vector B
      	Escribir "Dimensión para los vectores: " Sin Saltar
      	Leer N
      	Si N>0 Entonces
      		Dimension B[N]
      		Definir B Como Entero
      		Escribir ""
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Repetir
      				Escribir "Valor para B[", i, "]: " Sin Saltar
      				Leer B[i]
      				Si !(B[i]==0 O B[i]==1) Entonces
      					Escribir "Solo se admiten valores igual a 0 o 1"
      				FinSi
      			Hasta Que B[i]==0 O B[i]==1
      		FinPara
      		
      		// Leer vector l
      		Dimension l[N]
      		Definir l Como Real
      		Escribir ""
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Escribir "Valor para l[", i, "]: " Sin Saltar
      			Leer l[i]
      		FinPara
      		
      		// Leer vector m
      		Dimension m[N]
      		Definir m Como Real
      		Escribir ""
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Escribir "Valor para m[", i, "]: " Sin Saltar
      			Leer m[i]
      		FinPara
      	SiNo
      		Escribir "La dimensión de los vectores tiene que ser mayor que cero"
      	FinSi
      	
      	Dimension A[N]
      	Definir A Como Real
      	crearVectorX(B, l, m, N, A)
      	
      	// Mostrar los 4 vectores
      	mostrarVectores(B,l,m,A,N)
      FinAlgoritmo
      
      Funcion crearVectorX(v1, v2, v3, n, X Por Referencia)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Si v1[i]==0 Entonces
      			X[i] <- v2[i]
      		FinSi
      		Si v1[i]==1 Entonces
      			X[i] <- v3[i]
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion mostrarVectores(v1,v2,v3,v4,n)
      	Definir i Como Entero
      	
      	// Vector B
      	Escribir ""
      	Escribir "B = " Sin Saltar
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir v1[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	// Vector l
      	Escribir "l = " Sin Saltar
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir v2[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	// Vector m
      	Escribir "m = " Sin Saltar
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir v3[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	// Vector A
      	Escribir "A = " Sin Saltar
      	Para i<-1 Hasta n Con Paso 1 Hacer
      		Escribir v4[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      FinFuncion
  • diego dice:

    un programa que permita generar numeros comprendidos entre 100 y 999 y cargar en vectores ay b , de 15 y 20 elementos cada uno. crear un vector c, que sea el resultado de la union de los vectores a y b (el vector c no debe tener repetidos). imprimir los vectores a,b y c.

    • terepebernal dice:

      ¡Hola Diego! Saludos

      Algoritmo unionVectores
      	Dimension A[15]
      	Dimension B[20]
      	Dimension C[35]
      	Definir A, B, C, i, j, num Como Entero
      	
      	// Cargar vector A
      	Para i<-1 Hasta 15 Con Paso 1 Hacer
      		A[i] <- Aleatorio(100,999]
      	FinPara
      	
      	// Cargar vector B
      	Para i<-1 Hasta 20 Con Paso 1 Hacer
      		B[i] <- Aleatorio(100,999]
      	FinPara
      	
      	// Mostrar vector A
      	Escribir "A = " Sin Saltar
      	Para i<-1 Hasta 15 Con Paso 1 Hacer
      		Escribir A[i], " " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	// Mostrar vector B
      	Escribir "B = " Sin Saltar
      	Para i<-1 Hasta 20 Con Paso 1 Hacer
      		Escribir B[i], "  " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	// Cargar C con los elementos de A y ce B
      	// comprobando que el elemento a cargar 
      	// no está ya en C
      	i<-1
      	Para j<-1 Hasta 15 Con Paso 1 Hacer
      		num <- A[j]
      		Si !esDeC(C, 35, num) Entonces
      			C[i] <- num
      			i<-i+1
      		FinSi
      	FinPara
      
      	i<-posVacia(C, 35)
      	Para j<-1 Hasta 20 Con Paso 1 Hacer
      		num <- B[j]
      		Si !esDeC(C, 35, num) Entonces
      			C[i] <- num
      			i<-i+1
      		FinSi
      	FinPara
      	
      	// Mostrar vector C
      	Escribir "C = " Sin Saltar
      	Para i<-1 Hasta 35 Con Paso 1 Hacer
      		Si !(C[i]==0) Entonces
      			Escribir C[i], "  " Sin Saltar
      		SiNo
      			i<-35
      		FinSi
      	FinPara
      	Escribir ""
      FinAlgoritmo
      
      Funcion OK <- esDeC(arreglo, finArreglo, n)
      	// Si el número n está en el arreglo devuelve Verdadero, sino Falso
      	Definir OK Como Logico
      	Definir i Como Entero
      	
      	OK <- Falso
      	Para i<-1 Hasta finArreglo Con Paso 1 Hacer
      		Si !(arreglo[i]==0) Entonces
      			Si n==arreglo[i] Entonces
      				OK <- Verdadero
      				i <- finArreglo
      			FinSi
      		SiNo
      			i<-finArreglo
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion pos <- posVacia(arreglo, finArreglo)
      	// Devuelve la primera posición vacía (igual a cero) del arreglo
      	Definir i, pos Como Entero
      	
      	Para i<-1 Hasta finArreglo Con Paso 1 Hacer
      		Si arreglo[i]==0 Entonces
      			pos<-i
      			i<-finArreglo
      		FinSi
      	FinPara
      FinFuncion
  • javier dice:

    hola me podrian ayudar con este algoritmo porfavor…..
    Realice un algoritmo el cual está conectado a una computadora análoga que le reporta el número de vehículos que transitan por una calle, se estima que transita un vehículo cada minuto, el algoritmo debe de enviar la información de cuál es la velocidad máxima y mínima que se transitó en un periodo de una hora.

    • terepebernal dice:

      ¡Hola Javier! No tengo claro si es exactamente esto lo que pides, espero que sí. Saludos

      Algoritmo velocidadCoches
      	// En una hora se estiman 60 coches (1 por minuto)
      	Dimension velocidad[60]
      	Definir i, velocidad, vMin, vMax, posMin, posMax Como Entero
      	
      	// Carga el vector con supuestas velocidades (aleatorio, entre 30 y 180 km/h)
      	Para i<-1 Hasta 60 Con Paso 1 Hacer
      		velocidad[i] <- Aleatorio(30, 180)
      	FinPara
      	
      	// Buscar velocidad máxima y mínima y mostrar por pantalla
      	vMin<-velocidad[1]
      	vMax<-velocidad[1]
      	Para i<-1 Hasta 60 Con Paso 1 Hacer
      		Si vMin>=velocidad[i] Entonces
      			vMin <- velocidad[i]
      			posMin <- i
      		FinSi
      		Si vMax<=velocidad[i] Entonces
      			vMax <- velocidad[i]
      			posMax <- i
      		FinSi
      		Escribir "Coche ", i, ": ", velocidad[i], " km/h"
      	FinPara
      	
      	Escribir ""
      	Escribir "La velocidad máxima ha sido ", vMax, " km/h del coche número ", posMax
      	Escribir "La velocidad mínima ha sido ", vMin, " km/h del coche número ", posMin
      FinAlgoritmo
  • daniel baires dice:

    hola quiera me ayudaran con estos ejercicios, con estos defino mi ciclo en la universidad…..porfavor
    Resuelva los siguientes algoritmos.
    1. El algoritmo que calcule el Angulo interno de las agujas de un reloj, utilizando la hora como
    dato de entrada. Reloj de 12 horas

    2. Determine la velocidad de una pelota al tocar el piso dejándola caer desde una altura X, el
    valor de entrada es la altura a la que se dejará caer el balón, desprecie la fricción del viento.

    3. Se desea el promedio de la nota obtenida por los estudiantes de la asignatura lógica para
    computación, sabiendo que se ingresarán la notas de cada uno de los estudiantes que en
    total son 150, tomando en cuenta la información anterior diseñe un algoritmo tomando en
    cuenta los siguientes datos:
    a. Si el estudiante tiene alguna nota igual a 0, mostrará en pantalla ‘llamar para
    revisión a + nombre’, esto es una observación
    b. Se realizó una actividad con la que algunos estudiantes se ganaron un punto, realice
    la consulta respectiva.
    c. P1=20%, P2=20%, T1=30%, T2=20%
    Datos de entrada: Nombre, asistencia, P1, P2, P3, P4, Punto_extra.
    Datos de salida: Promdio_total150, Alumnos_con_observacion

    4. Cree un algoritmo que resuelva la siguiente situación, usted viaja a una velocidad X en un
    Ferrari, y de pronto aparece una persona en un Lamborghini a una velocidad Y.
    a. Si usted va más rápido que el Lamborghini mantiene su velocidad
    b. si usted va más lento que el Lamborghini acelera por 10 segundos a una velocidad
    Z para alcanzar al Lamborghini
    c. Si usted va a un ¾ de la velocidad del Lamborghini o menor entonces presiona un
    botón que inyecta nitroglicerina en el ciclo del motor haciendo que usted viaje
    mucho más rápido, por 10 segundos su aceleración es de 5km/s2 si es el caso
    determine si usted va más rápido que el Lamborghini.
    En este caso nos interesa saber nuestra velocidad final y la diferencia de velocidades entre
    los 2 vehículos.

    5. Desarrolle un algoritmo que calcule la suma sucesiva de números desde 1 hasta la cantidad
    que el usuario lo indique, tomar en cuenta lo siguiente:
    a. Usted determina cuales son los valores de entrada
    b. El valor de salida que nos interesa es el valor de la sumatoria
    Nota: Sea creativo para determinar el nombre de sus variables.

    • terepebernal dice:

      ¡Hola Daniel! De momento solo he podido hacerte estos tres, si puedo te haré los otros dos, sino puedo, lo siento.
      El primero:

      Algoritmo anguloReloj
      	Definir hora, angulo Como Entero
      	
      	Escribir "Hora: " Sin Saltar
      	Leer hora
      	
      	Si hora>=1 Y hora<=12 Entonces
      		// Ángulo medido desde las 12 horas
      		angulo <- hora*30
      	SiNo
      		Escribir "El valor de la hora tiene que estar entre 1 y 12"
      	FinSi
      	
      	Escribir "El ángulo de la hora ", hora, " del reloj mide ", angulo, " grados"
      FinAlgoritmo

      El segundo:

      Algoritmo caidaLibre
      	Definir altura, tiempo, velocidad Como Numero
      	
      	Escribir "Altura (m): " Sin Saltar
      	Leer altura
      	
      	tiempo <- RAIZ((-2*(0 - altura))/(9.8))	
      	velocidad <- 9.8*tiempo
      
      	Escribir "Velocidad = ", velocidad, " m/s"
      FinAlgoritmo

      Y el quinto:

      Algoritmo sumaSucesiva
      	Definir n, contador, num Como Entero
      	Definir suma Como Numero
      	
      	Escribir "N: " Sin Saltar
      	Leer n
      	
      	suma <- 0
      	Para contador <- 1 Hasta n Con Paso 1 Hacer
      		num <- Aleatorio(0,100)
      		suma <- suma + num
      	FinPara
      	
      	Escribir "Suma sucesiva = ", suma
      FinAlgoritmo
  • jacobo sandoval dice:

    me podrian ayudar porfavor
    1. REALIZAR UN EJERCICIO QUE NOS PERMITA EL INGRESO DE UN UN SUELDO BASICO , UNA BONIFICACION DE 10%, UN DESCUENTO 3% POR CADA HIJO . SI SE TIENE 3 HIJOS, LE CORRESPONDE 9% DESCUENTO. EL TOTAL FINAL A PAGAR PARA DICHA PERSONA…
    2. HACER UN ejercicio QUE PERMITA EL INGRESO DE 2 PRODUCTOS, SI EL PRODUCTO ES MAYOR QUE 100 EL SEGUNDO LE SSALE GRATIS EN EL CASO CONTRARIO PREGUNTAR EL PRECIO DEL 2DO PRODUCTO , FINALMENTE CALCULAR CUANTO ES EL TOTAL A PAGAR POR EL CLIENTE . NO OLVIDAR QUE EL TOTAL A PAGAR YA TIENE INCLUIDO EL 18% DEL IGV EN EL PRECIO, IGUAL CALCULAR CUANTO ES EL IGV Y TOTAL FINAL
    3. SE TIENE A CARGO UNA TIENDA DE RECARGAS: A DICHA TIENDA VIENEN CLIENTES DE TELEFONICA, CLARO, ENTEL Y BITEL,, CADA UNO DE ELLOS LE TRAE UN % DE GANANCIA A LA TIENDA . DE ESTA MANERA SI ES CLARO : 3%, TELEFONICA:5%, ENTEL:6% Y BITEL 7% . SE DEBE DE INDICAR LA CANTIDAD A RECARGAR Y LA CANTIDAD A PAGAR DEL CLIENTE Y CUANTO INGRESA A LA TIENDA .

    • terepebernal dice:

      ¡Hola Jacobo! Los dos primeros ejercicios ya están en los comentarios, puedes verlos aquí. Y el tercer ejercicio, a continuación:

      Algoritmo recargas
      	Definir opcMenu Como Caracter
      	Definir recarga, ganancia Como Numero
      	
      	Escribir "CANTIDAD A RECARGAR: " Sin Saltar
      	Leer recarga
      	
      	Escribir "(1) CLARO"
      	Escribir "(2) TELEFÓNICA"
      	Escribir "(3) ENTEL"
      	Escribir "(4) BITEL"
      	Escribir "Elija operadora (1 al 4)..." Sin Saltar
      	Leer opcMenu
      	
      	Segun opcMenu Hacer
      		'1':
      			ganancia <- recarga-(recarga/(1.03))
      		'2':
      			ganancia <- recarga-(recarga/(1.05))
      		'3':
      			ganancia <- recarga-(recarga/(1.06))
      		'4':
      			ganancia <- recarga-(recarga/(1.07))
      		De otro Modo: 
      			Escribir "Opción incorrecta"
      	FinSegun
      	
      	Escribir ""
      	Escribir "El Cliente paga ", recarga
      	Escribir "La tienda ingresa ", ganancia
      FinAlgoritmo
  • carlos dice:

    hola que tal, me puedes ayudar con este ejercicio

    Crear un algoritmo que permita obtener el resultado de la siguiente serie:

    Con una condición adicional.

    Si n es par, el término se suma, si n es impar el término se resta.

    Formula en latex: \sum_{n=1}^{k}\frac{2n^{2}-1}{3n^{5}+2n+1}

    El algoritmo recibe como entrada el valor de k (entero positivo mayor que 0) y retorna el valor de cada uno de los términos de la serie y el valor final.

    Entrada: Valor de k
    Salida: Términos y resultado final

    ejemplo 1.-
    ingrese k: 2
    n 1: -0.1666
    n 2: 0.0891
    respuesta: -0.775

    ejemplo 2.-
    ingrese k: -5
    error: elvalor de k es menor que 1
    ingrese k: 5
    n 1: -0.1666
    n 2: 0.0693
    n 3: -0.0231
    n 4: 0.0100
    n 5: -0.0052
    respuesta: -0.1156

    Gracias!!!
    respuesta: -0.775

    • terepebernal dice:

      ¡Hola Carlos! Pongo una imagen de la fórmula para que se pueda entender mejor el algoritmo. Saludos
      Fórmula de serie matemática

      Algoritmo ejemploSerie
      	Definir k,n Como Entero
      	Definir t, suma Como Real
      	
      	Escribir "k: " Sin Saltar
      	Leer k
      	
      	Si k>0 Entonces
      		suma <- 0
      		Para n<-1 Hasta k Con Paso 1 Hacer
      			Escribir "n ",n, ": " Sin Saltar
      			Si esPar(n) Entonces
      				t <- ((2*(n^2))-1)/((3*(n^5))+(2*n)+1)
      			SiNo
      				t <- -((2*(n^2))-1)/((3*(n^5))+(2*n)+1)
      			FinSi
      			Escribir t
      			suma <- suma + t
      		FinPara
      		Escribir "respuesta: ", suma
      	SiNo
      		Escribir "El valor de k es menor que 1"
      	FinSi
      FinAlgoritmo
      
      Funcion OK<-esPar(num)
      	Definir OK Como Logico
      	
      	Si (num%2==0) Entonces
      		OK <- Verdadero
      	SiNo
      		OK <- Falso
      	FinSi
      FinFuncion
  • Anna dice:

    Me puedes ayudar con una matriz con arreglos bidimensionales
    Arreglo A que tiene tamaño de (3,3)
    Arreglo B que tiene tamaño de(3,3)
    Y el arreglo c tiene el mismo tamaño de los dos primero (3,3)

    A = 1 3 5
    9 2 0
    2 4 6

    B= 4 6 1
    9 4 6
    3 1 1

    C= 5 9 6
    18 6 6
    5 5 7
    Se realiza la suma de A +B =C

    • terepebernal dice:

      ¡Hola Anna! Saludos

      Algoritmo ejSumaMatrices
      	Dimension A[3,3]
      	Dimension B[3,3]
      	Dimension C[3,3]
      	Definir A, B, C, i, j Como Entero
      	
      	A[1,1] <- 1
      	A[1,2] <- 3 
      	A[1,3] <- 5
      	A[2,1] <- 9
      	A[2,2] <- 2
      	A[2,3] <- 0
      	A[3,1] <- 2
      	A[3,2] <- 4
      	A[3,3] <- 6
      	B[1,1] <- 4
      	B[1,2] <- 6 
      	B[1,3] <- 1
      	B[2,1] <- 9
      	B[2,2] <- 4
      	B[2,3] <- 6
      	B[3,1] <- 3
      	B[3,2] <- 1
      	B[3,3] <- 1
      	
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Para j<-1 Hasta 3 Con Paso 1 Hacer
      			C[i,j] <- A[i,j] + B[i,j]
      		FinPara
      	FinPara
      	
      	Escribir "La suma de A y B es igual a:"
      	Para i<-1 Hasta 3 Con Paso 1 Hacer
      		Para j<-1 Hasta 3 Con Paso 1 Hacer
      			Escribir C[i,j], "  " Sin Saltar
      		FinPara
      		Escribir ""
      	FinPara
      FinAlgoritmo
  • Anonimo dice:

    1.REALIZAR UN EJERCICIO DE LOGICA DE PROGRAMACIÓN QUE NOS PERMITA:
    -EL INGRESO DE UN UN SUELDO BASICO
    -UNA BONIFICACION DE 10%
    -UN DESCUENTO 3% POR CADA HIJO, SI SE TIENE 3 HIJOS LE CORRESPONDE 9% DESCUENTO
    -EL TOTAL FINAL A PAGAR PARA DICHA PERSONA.

    2.HACER UN PSEUDOCODIGO QUE PERMITA:
    -EL INGRESO DE 2 PRODUCTOS, SI EL PRODUCTO ES MAYOR QUE 100 EL SEGUNDO LE SALE GRATIS EN EL CASO CONTRARIO PREGUNTAR EL PRECIO DEL 2DO PRODUCTO, FINALMENTE CALCULAR CUANTO ES EL TOTAL A PAGAR POR EL CLIENTE.
    -NO OLVIDAR QUE EL TOTAL A PAGAR YA TIENE INCLUIDO EL 18% DEL IGV EN EL PRECIO.
    -IGUAL CALCULAR CUANTO ES EL IGV Y TOTAL FINAL.

    • terepebernal dice:

      Hola, el primer ejercicio:

      Algoritmo sueldoBasico
      	Definir hijos, salario Como Numero
      	
      	// Se ingresa el salario básico y el número de hijos por teclado
      	Escribir "Sueldo básico: " Sin Saltar
      	Leer salario
      	Escribir "Número de hijos: " Sin Saltar
      	Leer hijos
      	
      	Si salario>=0 Y hijos>=0 Entonces
      		// Se le añade una bonificación del 10%
      		salario <- salario + (salario*0.01)
      		// Descuento según número de hijos
      		salario <- salario - (salario*(hijos*3))/100
      	SiNo
      		Escribir "El salario y el número de hijos tienen que ser igual o mayor a cero"
      	FinSi
      	
      	Escribir ""
      	Escribir "Salario  = ", salario
      FinAlgoritmo

      Y el segundo ejercicio:

      Algoritmo ejemploProductos2
      	Definir producto1, producto2, igv, total Como Numero
      	
      	Escribir "PRODUCTO 1: " Sin Saltar
      	Leer producto1
      	
      	Si producto1>=0 Entonces
      		Si producto1>100 Entonces
      			producto2<-0
      		SiNo
      			Escribir "PRODUCTO 2: " Sin Saltar
      			Leer producto2
      		FinSi
      	SiNo
      		Escribir "Los productos 1 y 2 deben tener un precio igual o mayor que cero"
      	FinSi
      	total <- producto1 + producto2
      	igv <- total-(total/1.18)
      	Escribir "TOTAL = ", total
      	Escribir "IGV = ", igv
      FinAlgoritmo

      Saludos

  • FANIA dice:

    Hola me pueden ayudar por favor con este ejercicio :

    Elaborar un algoritmo que permita obtener el valor final del sueldo mensual de un trabajador; tomando en consideración lo siguiente: se sabe el número de horas trabajadas en el mes y el valor de cada hora; si el trabajador ha logrado cumplir con 80 o más horas en el mes, recibirá una bonificación adicional del 35% de su sueldo; caso contrario, se le debe descontar el 8% del sueldo. Al final se debe presentar un mensaje con el valor del sueldo final.

    Gracias.,,

    • terepebernal dice:

      ¡Hola Fania! Saludos

      Algoritmo salarioMensual
      	Definir horas, precioHora, salario Como Numero
      	
      	Escribir "Horas trabajadas mes: " Sin Saltar
      	Leer horas
      	Escribir "Precio hora: " Sin Saltar
      	Leer precioHora
      	Si horas >= 80 Entonces
      		salario <- (horas*precioHora)
      		salario <- salario + (salario*0.35)
      	SiNo
      		salario <- (horas*precioHora)
      		salario <- salario - (salario*0.08)
      	FinSi
      	
      	Escribir ""
      	Escribir "Salario  = ", salario
      FinAlgoritmo
  • JONATHAN H dice:

    hola me puedes ayudar con este algoritmo .Se desea conocer la preferencia sobre noticieros en el país, para lo cual se realiza una encuesta en la cual se consigna el nombre, teléfono y la preferencia que puede ser 1=RCN, 2=CARACOL, 3=CityTV, 4=OTRO. La lista termina cuando la preferencia es 9. Se pide diseñar un algoritmo que visualice la preferencia de los noticieros de mayor a menor mostrando cantidad y porcentaje.

    • terepebernal dice:

      ¡Hola Jonathan! Creo que es esto lo que pides, no he puesto nombre a los noticieros, solo les he dado un número, puedes cambiarlos tú, al principio, donde se declaran las variables. El algoritmo hace una encuesta pidiendo un voto para su noticiero preferido y después los muestra ordenados de mayor a menor, con número de votos y porcentaje.

      Algoritmo encuestaPreferenciasTV
      	Dimension preferencias[9,2]
      	Dimension noticieros[9]
      	Dimension encuestados[100,3]
      	Definir noticieros, encuestados Como Cadena
      	Definir i, preferencias Como Entero
      	Definir teclaSalir Como Caracter
      	
      	noticieros[1] <- "RCN"
      	noticieros[2] <- "CARACOL"
      	noticieros[3] <- "CityTV"
      	noticieros[4] <- "Noticiero 4"
      	noticieros[5] <- "Noticiero 5"
      	noticieros[6] <- "Noticiero 6"
      	noticieros[7] <- "Noticiero 7"
      	noticieros[8] <- "Noticiero 8"
      	noticieros[9] <- "Noticiero 9"
      	
      	Para i<-1 Hasta 9 Con Paso 1 Hacer
      		preferencias[i,1] <- i
      	FinPara
      	
      	// Hacer encuesta hasta llegar a los 100 encuestados o pulsar la tecla S
      	i<-1
      	Repetir
      		Escribir "ENCUESTADO Nº ", i, ": "
      		Escribir "------------------------------------------------------------"
      		Escribir "NOMBRE: " Sin Saltar
      		Leer encuestados[i,1]
      		Escribir "TELEFONO: " Sin Saltar
      		Leer encuestados[i,2]
      		Repetir
      			Escribir ""
      			Escribir "(1) " + noticieros[1]
      			Escribir "(2) " + noticieros[2]
      			Escribir "(3) " + noticieros[3]
      			Escribir "(4) " + noticieros[4]
      			Escribir "(5) " + noticieros[5]
      			Escribir "(6) " + noticieros[6]
      			Escribir "(7) " + noticieros[7]
      			Escribir "(8) " + noticieros[8]
      			Escribir "(9) " + noticieros[9]
      			Escribir "Elija noticiero (1 al 9)..." Sin Saltar
      			Leer encuestados[i,3]
      			Si !(ConvertirANumero(encuestados[i,3])>=1 Y ConvertirANumero(encuestados[i,3])<=9) Entonces
      				Escribir "El noticiero a seleccionar tiene que estar entre 1 y 9. Vuelva a intentarlo"
      			SiNo
      				preferencias[encuestados[i,3],2] <- preferencias[encuestados[i,3],2] + 1
      			FinSi
      		Hasta Que ConvertirANumero(encuestados[i,3])>=1 Y ConvertirANumero(encuestados[i,3])<=9
      		Escribir ""
      		Escribir "Pulsar la tecla S para salir......" Sin Saltar
      		Leer teclaSalir
      		i <- i+1
      	Hasta Que (i==100) O (Mayusculas(teclaSalir)=='S')
      	ordenDecreciente(preferencias, 9)
      	totalVotos <- i-1
      	Escribir ""
      	Para i<-1 Hasta 9 Con Paso 1 Hacer
      		Escribir "(", i, ") - ", noticieros[preferencias[i,1]], " - Votos: ", preferencias[i,2], " - ", (preferencias[i,2]*100)/totalVotos, "%"
      	FinPara
      	Escribir ""
      FinAlgoritmo
      
      Funcion ordenDecreciente(arreglo Por Referencia, n)
      	// Ordenación por selección en orden decreciente
      	Definir i,  j, max Como Entero
      	Definir temp Como Numero
      	
      	Para i<-1 Hasta (n-1) Con Paso 1 Hacer
      		max<-i
      		j<-i+1
      		Mientras (j<=n) Hacer 
      			Si arreglo[j,2] $gt; arreglo[max,2] Entonces
      				max<-j
      			FinSi
      			j<-j+1
      		FinMientras
      		temp<-arreglo[i,2]
      		indTemp<-arreglo[i,1]
      		arreglo[i,2]<-arreglo[max,2]
      		arreglo[i,1]<-arreglo[max,1]
      		arreglo[max,2]<-temp
      		arreglo[max,1]<-indTemp
      	FinPara
      FinFuncion
  • Grady! dice:

    Hola!qué tal, me podría ayudar con un proyecto, debo construir un + programa en pseint dado que: Ingrese un número de candidatos participantes en una elección para x cargo.
    Solicite el primer voto ingresando el número del candidato ejemplo: Se ingresaron 10 candidatos el voto es para el candidato 5.
    Al finalizar el voto, el sistema debe preguntar si desea cerrar la votación, mientras no cierre la votación el sistema debe seguir solicitando votos.

    Al momento que se desee se cierra la votación.
    Al finalizar el sistema debe imprimir una matriz bidimensional
    CANDIDATO 1 CANDIDATO 2 CANTIDATO3 CANDIDATO 4
    2 5 4 7

    Totalizando los datos, además de indicar cual es el candidato ganador.

    • terepebernal dice:

      ¡Hola Grady! Saludos

      Algoritmo ejemploCandidatos
      	Definir candidatos, voto, i, j, max Como Entero
      	Definir continuar Como Caracter
      	
      	Escribir "NÚMERO DE CANDIDATOS: " Sin Saltar
      	Leer candidatos
      	Dimension votaciones[candidatos,1]
      	Definir votaciones Como Entero
      	
      	Repetir
      		Escribir "Hay ", candidatos, " candidatos"
      		Escribir "Voto para el número: " Sin Saltar
      		Leer voto
      		Si voto<=0 O voto>candidatos Entonces
      			Escribir "El voto no es correcto. Inténtelo de nuevo"
      		SiNo
      			votaciones[voto,1] <- votaciones[voto,1] + 1
      		FinSi
      		Escribir "Para continuar pulse la tecla S, cualquier otra para no hacerlo..." Sin Saltar
      		Leer continuar
      	Hasta Que !(Mayusculas(continuar)=='S')
      	
      	Para i<-1 Hasta candidatos Con Paso 1 Hacer
      		Escribir "CANDIDATO ",i, "    " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	Para i<-1 Hasta candidatos Con Paso 1 Hacer
      		Escribir "    ", votaciones[i,1], "          " Sin Saltar
      	FinPara
      	Escribir ""
      	
      	max <- votaciones[1,1]
      	Para i<-1 Hasta candidatos Con Paso 1 Hacer
      		Si max<=votaciones[i,1] Entonces
      			max <- votaciones[i,1]
      			j <- i
      		FinSi
      	FinPara
      	
      	Escribir "El candidato ganador es el número ", j, " con ", votaciones[j,1] " votos"
      FinAlgoritmo
  • lautaro dice:

    ayudaaa
    Escribir un algoritmo que dado el día, mes y año (en números), las visualice como: día
    (número) de mes (letra) de año (número).
    Entrada: 12 2 1996 –> Salida: 12 de Febrero de 1996.

    • terepebernal dice:

      ¡Hola Lautaro! Saludos

      Algoritmo ejemploFecha2
      	Definir fecha, sinespacios, dia, mes, anio Como Cadena
      	Definir C Como Caracter
      	Definir i, digitosDia Como Entero
      	
      	Escribir "FECHA: " Sin Saltar
      	Leer fecha
      	
      	// Si el primer caracter de la cadena fecha es un espacio,
      	// quitar espacios en blanco iniciales de la cadena fecha
      	C<-Subcadena(fecha,1,1)
      	Si C==" "
      		i<-1 
      		Repetir 
      			C<-Subcadena(fecha,i,i)
      			Si C==" " Entonces
      				sinespacios <- Subcadena(fecha,i+1,Longitud(fecha))
      			FinSi
      			i <- i+1
      		Hasta Que !(C==" ")
      		fecha <- sinespacios
      	FinSi
      	
      	// Hasta el primer espacio, para hallar 
      	// el número de dígitos que tiene el día
      	i <- 1
      	digitosDia <- 0
      	Repetir
      		C<-Subcadena(fecha,i,i)
      		Si !(C==" ") Entonces
      			digitosDia <- digitosDia + 1
      		FinSi
      		i <- i+1
      	Hasta Que C==" "
      	
      	// Quitar espacios en blanco de la cadena fecha
      	sinespacios <- ""
      	Para i<-1 Hasta Longitud(fecha) Con Paso 1 Hacer
      		C<-Subcadena(fecha,i,i)
      		Si !(C==" ") Entonces
      			sinespacios <- sinespacios + Subcadena(fecha,i,i)
      		FinSi
      	FinPara
      	
      	fecha <- sinespacios
      	
      	dia <- Subcadena(fecha,1,digitosDia)
      	mes <- Subcadena(fecha, digitosDia+1, Longitud(fecha)-4)
      	anio <- Subcadena(fecha, Longitud(fecha)-3, Longitud(fecha))
      	
      	// Escribir fecha
      	Escribir dia, " " Sin Saltar
      	
      	Si Mayusculas(mes)=='1' Entonces
      		Escribir "ENERO", " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='2' Entonces
      		Escribir "FEBRERO", " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='3' Entonces
      		Escribir 'MARZO', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='4L' Entonces
      		Escribir 'ABRIL', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='5' Entonces
      		Escribir 'MAYO', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='6' Entonces
      		Escribir 'JUNIO', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='7' Entonces
      		Escribir 'JULIO', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='8' Entonces
      		Escribir 'AGOSTO', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='9' Entonces
      		Escribir 'SEPTIEMBRE', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='10' Entonces
      		Escribir 'OCTUBRE', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='11' Entonces
      		Escribir 'NOVIEMBRE', " " Sin Saltar
      	FinSi
      	Si Mayusculas(mes)=='12' Entonces
      		Escribir 'DICIEMBRE', " " Sin Saltar
      	FinSi
      	
      	Escribir anio
      FinAlgoritmo
  • jose reyes dice:

    algoritmo que ingrese el número de problema planteado y que se mantenga en el sistema hasta que el usuario seleccione la opción salir (6)

    Los algoritmos que debe resolver el sistema son
    1- Ingresar un número y debe indicar si el numero el múltiplo de 5
    2- Ingresar un número y mostrar la tabla de multiplicar de dicho número desde 1 hasta 10, por ejemplo si ingresa el 7 debe mostrar “7 * 1 = 7”, “7 * 2 = 14” hasta “7*10 = 70”,l debe usar mientras
    3- Realice un algoritmo que permita ingresar 6 números y calcule la suma de los números ingresados
    4- Realice un algoritmo que muestre por pantalla la serie matemática 2 ,4, 6, 8, 10,,, n. El usuario la cantidad de elementos que se mostrara por pantalla
    5- ingresar 2 números e indicar si la suma de ambos es 10, en caso de no ser 10, no debe mostrar ningún mensaje

    • terepebernal dice:

      ¡Hola Jose! Saludos

      Algoritmo menuAlgoritmos
      		Definir opcMenu Como Entero
      		Definir salir Como Logico
      
      		salir <- Falso
      		Repetir
      			Escribir ""
      			Escribir "               MENU"
      			Escribir "----------------------------------"
      			Escribir "(1) ¿Es múltipolo de 5?"
      			Escribir "(2) Tabla de multiplicar"
      			Escribir "(3) Suma 6 números"
      			Escribir "(4) Serie matemática"
      			Escribir "(5) ¿Suma igual a 10?"
      			Escribir "(6) Salir"
      			Escribir "Seleccione la operación (1 al 6)...." Sin Saltar
      			Leer opcMenu
      			Borrar Pantalla
      			
      			Segun opcMenu Hacer
      				1:
      					opcion1
      					teclayBorrar
      				2:
      					opcion2
      					teclayBorrar
      				3:
      					opcion3
      					teclayBorrar
      				4:
      					opcion4
      					teclayBorrar
      				5:
      					opcion5
      					teclayBorrar
      				6:
      					salir <- Verdadero
      			FinSegun
      		Hasta Que salir
      FinAlgoritmo
      
      Funcion opcion1
      	Definir num Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	Si (num%5==0) Entonces
      		Escribir "Es múltiplo de 5"
      	SiNo
      		Escribir "No es múltipolo 5"
      	FinSi
      FinFuncion
      
      Funcion opcion2
      	Definir i, um Como Entero
      	
      	Escribir "NÚMERO: " Sin Saltar
      	Leer num
      	
      	i<-1
      	Mientras (i<=10) Hacer
      		Escribir num, " * ", i, " = ", num*i
      		i<-i+1
      	FinMientras
      FinFuncion
      
      Funcion opcion3
      	Dimension num[6]
      	Definir num, suma Como Numero
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 6 Con Paso 1 Hacer
      		Escribir "NÚMERO ", i, ": " Sin Saltar
      		Leer num[i]
      	FinPara
      	
      	suma <- 0
      	Para i<-1 Hasta 6 Con Paso 1 Hacer
      		suma <- suma + num[i]
      	FinPara
      	Escribir ""
      	Escribir "SUMA = ", suma
      FinFuncion
      
      Funcion opcion4
      	Definir elementos, n Como Entero
      	
      	Escribir "NÚMERO DE ELEMENTOS: " Sin Saltar
      	Leer elementos
      	
      	n <- 2
      	Para i<-1 Hasta elementos Con Paso 1 Hacer
      		Escribir n, "  " Sin Saltar
      		n <- n+2
      	FinPara
      	Escribir ""
      FinFuncion
      
      Funcion opcion5
      	Definir num1, num2 Como Numero
      	
      	Escribir "NÚMERO 1: " Sin Saltar
      	Leer num1
      	Escribir "NÚMERO 2: " Sin Saltar
      	Leer num2
      	
      	Si (num1+num2)==10 Entonces
      		Escribir "SUMA = 10"
      	FinSi
      FinFuncion
      
      Funcion teclayBorrar
      	Escribir "Pulse una tecla para continuar..."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
      • jose reyes dice:

        gracias!!!! me ayudaste mucho y me salvas la vida al mismo tiempo jajajaja te debo un pack de cervezas o jugo jajaja gracias de verdad

  • lineth dice:

    hola necesito ayuda, con una matriz

    este es el problema
    Dibuje la matriz conocida como «Matriz de Diagonal Principal»
    desde ya le agradezco

    • terepebernal dice:

      ¡Hola Lineth! Saludos

      Algoritmo matrizDiagonal
      	Definir n, i, j Como Entero
      	
      	Escribir "Dimensión de la matriz cuadrada: " Sin Saltar
      	Leer n
      	
      	Si n<=0 Entonces
      		Escribir "La dimensión tiene que ser mayor que cero"
      	SiNo
      		Dimension matriz[n,n]
      		Definir matriz Como Entero
      		
      		Para i<-1 Hasta n Con Paso 1 Hacer
      			Para j<-1 Hasta n Con Paso 1 Hacer
      				Si i<>j Entonces
      					matriz[i,j]<-0
      				SiNo
      					matriz[i,j]<-Aleatorio(0, 9)
      				FinSi
      				Escribir matriz[i,j], "   " Sin Saltar
      			FinPara
      			Escribir ""
      		FinPara
      	FinSi
      FinAlgoritmo
  • javier dice:

    si me podria ayudar en estos algoritmos
    1. Elaborar un pseudocódigo que permita ingresar la nota de “n” estudiantes, luego mostrar la cantidad de aprobados (mayor o igual a 12) y desaprobados.
    Nota:
    • Validar “n”, debe ser un valor positivo.
    • Validar las notas de los estudiantes, entre 0 y 20.
    • No interrumpir el algoritmo si se ingresan datos erróneos.

    2. Escribir un pseudocódigo que permita ingresar el nombre, precio y cantidad de diversos productos para un carrito de compras.
    Condiciones:
    • Validar que la cantidad es positiva
    • Validar que el precio sea positivo
    • Preguntarle al usuario si desea continuar
    • Mostrar el importe por producto (cantidad por precio unitario)
    • Mostrar el importe total.

    • terepebernal dice:

      ¡Hola Javier! El primero:

      Algoritmo ejemploNotas5
      	Definir i, N, desaprobados, aprobados Como Entero
      	
      	Escribir "Número de estudiantes: " Sin Saltar
      	Leer N
      	Si N<=0 Entonces
      		Escribir "El número de estudiantes debe ser positivo"
      	SiNo
      		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]<=20) Entonces
      				Escribir "La nota tiene que tener un valor entre 0 y 20"
      			FinSi
      			Hasta Que (notas[i,1]>=0 Y notas[i,1]<=20)
      		FinPara
      		
      		// Mostrar resultados
      		desaprobados <- 0
      		aprobados <- 0
      		Para i<-1 Hasta N Con Paso 1 Hacer
      			Si notas[i,1]>=0 Y notas[i,1]<12 Entonces
      				desaprobados <- desaprobados + 1
      			FinSi
      			Si notas[i,1]>=12 Y notas[i,1]<=20 Entonces
      				aprobados <- aprobados + 1
      			FinSi
      		FinPara
      		
      		Escribir ""
      		Escribir "Aprobados ", aprobados, " de ", N, " estudiantes"
      		Escribir "Desaprobados ", desaprobados, " de ", N, " estudiantes"
      	FinSi
      FinAlgoritmo

      El segundo:

      Algoritmo carritoCompra
      	Definir salir Como Caracter
      	Definir producto Como Cadena
      	Definir cantidad, precio, suma Como Numero
      	
      	salir <- 'N'
      	suma <- 0
      	cantidad <- 0
      	precio <- 0
      	Repetir 
      		Escribir "PRODUCTO: " Sin Saltar
      		Leer producto
      		Mientras (cantidad<=0) Hacer
      			Escribir "CANTIDAD: " Sin Saltar
      			Leer cantidad
      			Si cantidad<=0 Entonces
      				Escribir "La cantidad tiene que ser mayor que cero"
      			FinSi
      		FinMientras
      		Mientras (precio<=0) Hacer
      			Escribir "PRECIO: " Sin Saltar
      			Leer precio
      			Si precio<=0 Entonces
      				Escribir "El precio tiene que ser mayor que cero"
      			FinSi
      		FinMientras
      		Escribir ""
      		Escribir cantidad, "  ", producto, "  ", precio, "  ", cantidad*precio
      		suma <- suma + (cantidad*precio)
      		cantidad <- 0
      		precio <- 0
      		Escribir ""
      		Escribir "Para salir pulse S, para continuar cualquier otra..." Sin Saltar
      		Leer salir
      	Hasta Que Mayusculas(salir)=='S'
      	Escribir ""
      	Escribir "IMPORTE TOTAL = ", suma
      FinAlgoritmo
  • Freddy Penado dice:

    Hola, estoy empezando con la programación y aun estoy algo verde en esto, quisiera su ayuda para el siguiente ejercicio:

    Veterinaria Docki desea un progra,a que le permita registrar las ventas realizadas a lo largo del dia, ademas de poder eliminar, actualizar y visualizar las ventas que esten registradas.
    Realizar un programa que muestre un menu con las 5 opciones posibles:
    1. insertar nueva venta
    2. eliminar una venta.
    3. modificar una venta
    4. visualizar todas las ventas
    5. salir

    Se debe trabajar con un arreglo sobredimensionado de 100 valores. debe ser de tipo entero.

    Muchas gracias de antemano

    • terepebernal dice:

      ¡Hola Freddy! Saludos

      Algoritmo veterinariaDock
      	Dimension ventas[100]
      	Definir ventas, n, opcMenu Como Entero
      	Definir salir Como Logico
      	
      	salir <- Falso
      	Repetir
      		Escribir ""
      		Escribir "           MENU"
      		Escribir "-------------------------"
      		Escribir "(1) Insertar nueva venta"
      		Escribir "(2) Eliminar una venta"
      		Escribir "(3) Modificar una venta"
      		Escribir "(4) Visualizar todas las ventas"
      		Escribir "(5) Salir"
      		Escribir "Seleccione la operación (1 al 5)...." Sin Saltar
      		Leer opcMenu
      		Borrar Pantalla
      		
      		Segun opcMenu Hacer
      			1:
      				nuevaVenta(ventas)
      			2:
      				Escribir "Número de venta a eliminar: " Sin Saltar
      				Leer n
      				borrarVenta(ventas, n)
      				teclayBorrar
      			3:
      				Escribir "Número de venta a modificar: " Sin Saltar
      				Leer n
      				editarVenta(ventas, n)
      			4:
      				mostrarVentas(ventas)
      				teclayBorrar
      			5:
      				salir <- Verdadero
      			De Otro Modo:
      				Escribir "Opción incorrecta. Inténtelo de nuevo"
      		FinSegun
      	Hasta Que salir
      FinAlgoritmo
      
      Funcion mostrarVentas(arreglo)
      	Definir i Como Entero
      	
      	Para i<-1 Hasta 100 Con Paso 1 Hacer
      		Si !(arreglo[i]==0) Entonces
      			Escribir "(", i, ") - ", arreglo[i]
      		FinSi
      	FinPara
      FinFuncion
      
      Funcion borrarVenta(arreglo, i)
      	// Para borrar la venta se pondrá el valor a 0
      	Si i<=0 Entonces
      		Escribir "El número de venta tiene que ser mayor que cero"
      	SiNo
      		Si arreglo[i]==0 Entonces
      			Escribir "Esa venta está borrada o no existe"
      		SiNo
      			Escribir "(", i, ") - ", arreglo[i]
      			arreglo[i] <- 0
      			Escribir "Venta eliminada"
      		FinSi
      	FinSi
      FinFuncion
      
      Funcion editarVenta(arreglo Por Referencia, i)
      	Si i<=0 Entonces
      		Escribir "El número de venta tiene que ser mayor que cero"
      	SiNo
      		Si arreglo[i]==0 Entonces
      			Escribir "Esa venta está borrada o no existe"
      		SiNo
      			Escribir "(", i, ") - ", arreglo[i]
      			Escribir "Nuevo importe: " Sin Saltar
      			Leer arreglo[i]
      		FinSi
      	FinSi
      FinFuncion
      
      Funcion nuevaVenta(arreglo)
      	// La nueva venta se añadirá al primer registro
      	// que encuentre con valor 0
      	Definir i Como Entero
      	
      	i<-1
      	Mientras !(arreglo[i]==0)
      		i <- i+1
      	FinMientras
      	Repetir
      		Escribir "Importe venta: " Sin Saltar
      		Leer arreglo[i]
      		Si arreglo[i]<=0 Entonces
      			Escribir "La venta tiene que ser mayor que cero"
      		FinSi
      	Hasta Que (arreglo[i]>0)
      FinFuncion
      
      Funcion teclayBorrar
      	Escribir "Pulse una tecla para continuar..."
      	Esperar Tecla
      	Borrar Pantalla
      FinFuncion
  • 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.

    • weider dice:

      me pueden ayudar con este problema 🙁

      Escribir un pseudocódigo que permita ingresar el nombre, precio y cantidad de diversos productos para un carrito de compras.
      Condiciones:
      • Validar que la cantidad es positiva
      • Validar que el precio sea positivo
      • Preguntarle al usuario si desea continuar
      • Mostrar el importe por producto (cantidad por precio unitario)
      • Mostrar el importe total.

    • 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 dia amigo espero y me puedas ayudar con este
    Utilizar funciones completas para realizar las funciones de conversión de radianes a grados,
    resolver una ecuación lineal, convertir coordenadas polares a rectangulares y obtener el perímetro
    de un triángulo. El programa principal deberá tener un menú y todos los datos se piden y
    muestran desde el programa principal.

    • terepebernal dice:
      Algoritmo menuOperaciones
      		Dimension cRect[2]
      		Definir A, B, C, cRect Como Numero
      		Definir opcMenu Como Entero
      		Definir salir Como Logico
      		
      		salir <- Falso
      		Repetir
      			Escribir ""
      			Escribir "               MENU"
      			Escribir "----------------------------------"
      			Escribir "(1) Convertir de radianes a grados"
      			Escribir "(2) Resolver una ecuación lineal"
      			Escribir "(3) Convertir coordenadas polares a rectangulares"
      			Escribir "(4) Perímetro de un triángulo"
      			Escribir "(5) Salir"
      			Escribir "Seleccione la operación (1 al 5)...." Sin Saltar
      			Leer opcMenu
      			Borrar Pantalla
      			
      			Segun opcMenu Hacer
      				1:
      					Escribir "Radianes: " Sin Saltar
      					Leer A
      					Escribir A, " rad = ", grados(A), " grados"
      				2:
      					Escribir "Para la ecuación lineal ax + b = 0" 
      					Escribir "Introduce el valor de a: " Sin Saltar
      					Leer A
      					Escribir "Introduce el valor de b: " Sin Saltar
      					Leer B
      					Escribir "x = ", ecuacionLineal(a,b)
      				3:
      					Escribir "Valor del radio: " Sin Saltar
      					Leer A
      					Escribir "Valor del ángulo: " Sin Saltar
      					Leer B
      					dePolarARectangular(A, B, cRect)
      					Escribir "Coordenadas rectangulares = (", cRect[1], ", ", cRect[2], ")" 
      				4:
      					Escribir "Valor del lado 1: " Sin Saltar
      					Leer A
      					Escribir "Valor del lado 2: " Sin Saltar
      					Leer B
      					Escribir "Valor del lado 3: " Sin Saltar
      					Leer C
      					Escribir "Perímetro = ", perimetroTriangulo(A, B, C)
      				5:
      					salir <- Verdadero
      				De Otro Modo:
      					Escribir "Opción incorrecta. Inténtelo de nuevo"
      			FinSegun
      		Hasta Que salir
      FinAlgoritmo
      
      Funcion g <- grados(rad)
      	Definir g Como Numero
      	
      	g <- (rad*180)/3.1416
      FinFuncion
      
      Funcion x <- ecuacionLineal(a, b)
      	x <- -b/a
      FinFuncion
      
      Funcion dePolarARectangular(radio, angulo, arreglo Por Referencia)
      	arreglo[1] <- radio*COS(angulo)
      	arreglo[2] <- radio*SEN(angulo)
      FinFuncion
      
      Funcion p <- perimetroTriangulo(a, b, c)
      	Definir p Como Numero
      	
      	p <- a+b+c
      FinFuncion
  • 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
      • Deni dice:

        Muchas graciaaaas, es la mejor
        Tengo una duda, si quisiera asignarle un valor a los tips como lo haría?
        También con ese valor quiero hacer una suma

        • terepebernal dice:

          ¡Hola Deni! Se me pasó contestar tu comentario, lo siento. Por si te sirve aún, he pensado que podría ser algo como lo que te muestro para la Función cocina, si la sustituyes en el algoritmo por la que había antes verás como funciona. Se pueden meter los tips en español y en inglés en un arreglo bidimensional, junto con el valor que quieres darle a cada tip. Lo único que como el arreglo tiene que guardar valores del mismo tipo, para hacerlo el valor tiene que ser en formato texto y después si quieres operar con los valores tendrás que convertirlos a número.

          Funcion cocina
          	Definir traducir Como Caracter
          	Dimensión tipsCocina[5,3]
          	Definir tipsCocina Como Cadena
          	Definir i Como Entero
          	
          	tipsCocina[1,1] <- 'Texto del consejo 1 de cocina'
          	tipsCocina[2,1] <- 'Texto del consejo 2 de cocina'
          	tipsCocina[3,1] <- 'Texto del consejo 3 de cocina'
          	tipsCocina[4,1] <- 'Texto del consejo 4 de cocina'
          	tipsCocina[5,1] <- 'Texto del consejo 5 de cocina'
          	tipsCocina[1,2] <- '5'
          	tipsCocina[2,2] <- '4'
          	tipsCocina[3,2] <- '3'
          	tipsCocina[4,2] <- '2'
          	tipsCocina[5,2] <- '1'
          	tipsCocina[1,3] <- 'Traducción al inglés del consejo 1 de cocina'
          	tipsCocina[2,3] <- 'Traducción al inglés del consejo 2 de cocina'
          	tipsCocina[3,3] <- 'Traducción al inglés del consejo 3 de cocina'
          	tipsCocina[4,3] <- 'Traducción al inglés del onsejo 4 de cocina'
          	tipsCocina[5,3] <- 'Traducción al inglés del consejo 5 de cocina'
          	Borrar Pantalla
          	Para i<-1 Hasta 5 Con Paso 1 Hacer
          		Escribir "Consejo ", i, ".- ", tipsCocina[i,1], " - Valor: ", tipsCocina[i,2]
          	FinPara
          	Escribir ""
          	Escribir "¿Traducir al inglés (S/N)?....." Sin Saltar
          	Leer traducir
          	Si Mayusculas(traducir)=='S' Entonces
          		Escribir ""
          		Para i<-1 Hasta 5 Con Paso 1 Hacer
          			Escribir "Tip ", i, ".- ",tipsCocina[i,3], " - Value: ", tipsCocina[i,2]
          		FinPara
          	FinSi
          	Escribir "Suma de los tipos 1 y 3 (por ejemplo): ", ConvertirANumero(tipsCocina[1,2])+ ConvertirANumero(tipsCocina[3,2])
          	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
      • Juan Peralta dice:

        Buenas Noches
        Una Ayuda
        Necesito un algoritmo que pida dos números y multiplique todos los números que van desde el primero al segundo. Se deben controlar que los valores sean correctos.

  • 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.

A V I S O

Hola, si sueles venir por aquí sabrás que desde el 2 de marzo de 2020 no he parado de responder a peticiones de ayuda para ejercicios de algoritmos en PSeint. Tengo que parar de hacerlo, al menos de momento, terminó el confinamiento por el Covid-19 y no me da la vida; he vuelto a trabajar y tengo que recuperar lo no trabajado, y además tengo un proyecto entre manos que no quiero desatender.

Aquí tienes un montón de ejemplos que te pueden servir de ayuda para resolver tu ejercicio. Si pulsas CTRL+F (buscar) y añades las palabras adecuadas puedes moverte por la página y encontrar lo que buscas.

Aún me queda por responder algunos comentarios y lo haré. Pero a partir de hoy (14 de Junio de 2020) desactivo los comentarios temporalmente, porque no voy a poder atenderlos, y tampoco contestaré a peticiones de ayuda que me lleguen al correo electrónico o redes sociales y que consistan en realizar ejercicios, no me importará ponerte un enlace a algún ejercicio que ya esté hecho y que crea que es similar y pueda ayudarte, pero poco más.

Lo siento, yo también estoy aprendiendo e intento ganarme la vida con esto.

El que aprende y aprende y no practica lo que sabe, es como el que ara y ara y no siembra.- (Platón)

Si quieres apoyar el blog, puedes hacerlo a través de Ko-fi