Documente Academic
Documente Profesional
Documente Cultură
PSeInt permite personalizar algunos aspectos del lenguaje. Para evitar confusión
en los alumnos, la idea es que la primera vez que se ejecute el programa, solicite
al estudiante elegir un "perfil de configuración" para su
universidad/facultad/carrera, definiendo rápidamente y en un solo paso la
configuración del lenguaje de acuerdo a las exigencias de su docente. Este
mensaje es para solicitar a los docentes que envíen sus perfiles para agregarlos a
la lista. Para ello, deben realizar los siguientes pasos:
Definir VAL_MAYOR,ARREGLO,CANT,I
Como Enteros;
Escribir "Ingrese la cantidad
de numeros:"
Dimension ARREGLO[100];
Leer CANT
Escribir "Ingrese la cantidad de
Dimension ARREGLO[CANT]
numeros:";
Leer CANT;
Para Cada Elemento de ARREGLO
Escribir "Ingrese un
Para I<-0 Hasta CANT-1 Hacer
numero:"
Escribir "Ingrese un numero:";
Leer ELEMENTO
Leer ARREGLO[I];
Fin Para
FinPara
VAL_MAYOR<-0
VAL_MAYOR<-0;
Para Cada ELEMENTO de ARREGLO
Para I<-0 Hasta CANT-1 Hacer
Si ELEMENTO Es Mayor Que
Si ARREGLO[I]>VAL_MAYOR Entonces
VAL_MAYOR
VAL_MAYOR<-ARREGLO[i];
VAL_MAYOR<-ELEMENTO
FinSi
Fin Si
FinPara
Fin Para
Si VAL_MAYOR % 2 = 0 Entonces
Si VAL_MAYOR Es Par
Escribir "El mayor es
Escribir "El mayor es "
",VAL_MAYOR," y es par";
VAL_MAYOR " y es par"
Sino
Sino
Escribir "El mayor es
Escribir "El mayor es "
",VAL_MAYOR," y es impar";
VAL_MAYOR " y es impar"
FinSi
Fin Si
FinProceso
FinAlgoritmo
El Pseudo-código
Proceso SinTitulo
accion 1;
accion 1;
.
.
.
accion n;
FinProceso
Asignación
Entradas
Salidas
Dimensionamiento
La instrucción Dimension permite definir un arreglo, indicando sus
dimensiones.
Dimesion <identificador> (<maxl>,...,<maxN>);
Condicional Si-Entonces
Si <condición>
Entonces
<instrucciones>
Sino
<instrucciones>
FinSi
Lazos Para
Operadores y Funciones
Este pseudolenguaje dispone de un conjunto básico de operadores y
funciones que pueden ser utilizados para la construcción de expresiones
más o menos complejas.
Función Significado
RC(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
ATAN(X) Arcotangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a X
AZAR(X) Entero aleatorio entre 0 y X-1
Algunas Observaciones
Proceso Mayores
FinProceso
Coloquial: En este ejemplo se muestran algunas de las variantes
que se pueden utilizar con el perfil de lenguaje Flexible para que el
pseudocódigo se asemeje más al lenguaje coloquial.
Proceso Adivina_Numero
intentos<-10
num_secreto <- azar(100)+1
Si num_secreto=num_ingresado Entonces
Escribir "Exacto! Usted adivino en ",11-
intentos," intentos."
Sino
Escribir "El numero era: ",num_secreto
FinSi
FinProceso
Proceso TrianguloRectangulo
// cargar datos
Escribir "Ingrese el lado 1:"
Leer l1
Escribir "Ingrese el lado 2:"
Leer l2
Escribir "Ingrese el lado 3:"
Leer l3
FinProceso
OrdenaLista: Este ejemplo almacena una lista de nombres en un
arreglo y luego los ordena alfabéticamente. El método de
ordenamiento es relativamente simple. Para la entrada de datos se
utiliza una estructura Mientras, sin saber a priori la cantidad de
datos que se ingresarán
Proceso Modulo
Escribir "Ingrese el numero: "
Leer N
Escribir "Ingrese el divisor: "
Leer M
Si N MOD M = 0 Entonces
Escribir M," es divisor exacto de ",N,"."
Sino
Escribir "El resto de dividir ",N," por
",M," es: ",N MOD M
FinSi
FinProceso
Proceso Primos
Si es_primo Entonces
cant_mostrados <- cant_mostrados + 1
Escribir cant_mostrados, ": ",n
FinSi
n <- n + 2
FinMientras
FinProceso
Proceso Factorizacion
Escribir "Ingrese el numero: "
Leer num
Escribir "Factorizacion: "
factorizar<-verdadero
Mientras factorizar Y num>1 hacer
div<-0
Si num/2 = trunc(num/2) Entonces
Escribir 2
num<-num/2
Sino
div<-1; factor_primo<-Verdadero
Mientras div<=rc(num) Y
factor_primo Hacer
div <- div+2
Si num/div = trunc(num/div)
Entonces
factor_primo <- Falso
FinSi
FinMientras
Si factor_primo Entonces
escribir num
factorizar<-falso
sino
escribir div
num<-num/div
factor_primo<-verdadero
FinSi
FinSi
FinMientras
FinProceso
FinProceso
Proceso DosALaDiezRecursivo
Escribir "Ingrese Base"
Leer base
Escribir "Ingrese Exponente"
Leer exponente
Escribir "El resultado es
",Potencia(base,exponente)
FinProceso
Proceso Misil
Esperar .2 Segundos
FinPara
FinProceso
Proceso Romanos
// leer el número
Escribir "Ingrese un número entre 1 y
1000"
Leer Numero
// controlar que sea válido para convertir
SePuedeConvertir<-Verdadero
Si Numero=0 Entonces
Escribir "No existe ningún símbolo
para representar el 0"
SePuedeConvertir<-Falso
FinSi
Si Numero<>trunc(numero) Entonces
Escribir "El número debe ser entero"
SePuedeConvertir<-Falso
FinSi
Si Numero>1000 Entonces
Escribir "Muy alto"
SePuedeConvertir<-Falso
FinSi
Si Numero<0 Entonces
Escribir "Debe ser positivo"
SePuedeConvertir<-Falso
FinSi
// realizar la conversión
Si SePuedeConvertir Entonces
Si Numero=1000 Entonces
Escribir "M"
Sino
Dimension nu[10], nd[10], nc[10]
// notación para unidades, decenas y centenas
nu[1]<-''; nu[2]<-'I'; nu[3]<-
'II'; nu[4]<-'III'; nu[5]<-'IV'; nu[6]<-'V';
nu[7]<-'VI'; nu[8]<-'VII'; nu[9]<-'VIII';
nu[10]<-'IX'
nd[1]<-''; nd[2]<-'X'; nd[3]<-
'XX'; nd[4]<-'XXX'; nd[5]<-'XL'; nd[6]<-'L';
nd[7]<-'LX'; nd[8]<-'LXX'; nd[9]<-'LXXX';
nd[10]<-'XC'
nc[1]<-''; nc[2]<-'C'; nc[3]<-
'CC'; nc[4]<-'CCC'; nc[5]<-'CD'; nc[6]<-'D';
nc[7]<-'DC'; nc[8]<-'DCC'; nc[9]<-'DCCC';
nc[10]<-'CM'
centenas<-trunc(Numero/100) MOD 10
decenas<-trunc(Numero/10) MOD 10
unidades<-Numero MOD 10
Escribir
nc[centenas+1],nd[decenas+1],nu[unidades+1]
FinSi
FinSi
FinProceso
Hanoi: Implementa el conocido juego de las torres de Hanoi en
pseudocódigo