Buenas tardes compañeros, mi profesor de Algoritmos y Estructuras 2 nos manda el siguiente ejercicio que dice que: "El campo sueldo debe ser numérico (no deben permitir valores negativos ni caracteres)".
Sucede que cuando ingreso que la cantidad de personas es 1 me ejecuta perfecto el código, pero cuando ingreso que hay 2 o más personas se traba y da el siguiente error: "Lin 43 (inst 1): ERROR 123: Identificador en uso".
Esa linea pertenece a la variable Dimension variable[cont]
No sé por qué no quiere correr el código. Si pueden ayudarme estaria full agradecida. Saludos.
Proceso Nomina
// Variables:
Definir cantPer,cedula,edad Como Entero
Definir nombre,apellido,opc Como Caracter
// Variables para determinar si el sueldo posee es numero o letras:
Definir cont,a,b,num,c Como Entero
Definir sueldo,d,e,variable Como Caracter
// Declaramos el valor de las variables del sueldo:
num<-0; b<-0// Ingresamos los datos:
Escribir 'Ingrese la cantidad de personas:'
Leer cantPer
Escribir ''// Establecemos la dimension:
Dimension apellido[cantPer]
Dimension nombre[cantPer]
Dimension cedula[cantPer]
Dimension sueldo[cantPer]
Dimension edad[cantPer]// Ingresamos los datos:
Para i<-1 Hasta cantPer Hacer
Escribir 'Ingrese el nombre de la persona ',i,':'
Leer nombre[i]
Escribir 'Ingrese el apellido de la persona ',i,':'
Leer apellido[i]
Escribir 'Ingrese la edad de la persona ',i,':'
Leer edad[i]
Escribir 'Ingrese la cedula de la persona ',i,':'
Leer cedula[i]
Escribir 'Ingrese el sueldo de la persona ',i,':'
Leer sueldo[i]// Convertimos el sueldo como minusculas y buscamos su longitud:
sueldo[i]<-Minusculas(sueldo[i])
cont<-Longitud(sueldo[i])// Dimension para el sueldo.
Dimension variable[cont]
Para a<-1 Hasta cont Con Paso 1 Hacer
variable[a]<-Subcadena(sueldo[i],a,a)
Fin Para
// Declaramos el valor a para el sueldo:
a<-0
Para a<-b+1 Hasta cont Con Paso 1 Hacer
d<-ConvertirATexto(a)
Para c<-1 Hasta 9 Con Paso 1 Hacer
e<-ConvertirATexto(c)
Si variable[a]==e Entonces
num<-num+1
FinSi
Fin Para
Fin Para
Si num!=cont Entonces
Escribir 'Ingrese un monto sin letras'
Leer sueldo[i]
SiNo Si num==cont Entonces
Si num<0 Entonces
Escribir 'Ingrese un monto positivo'
Leer sueldo[i]
FinSi
FinSi
Fin Si
Escribir '----------------------------------------------------'
Fin Para
//Escribimos un menu:
Escribir 'Como desea organizar la nomina?'
Escribir 'a)Cedula'
Escribir 'b)Edad'
Escribir 'c)Sueldo'
Escribir 'Seleccione una de las opciones'
Leer opc
Escribir '----------------------------------------------------'//Creamos un switch para poder seleccionar 1 de las opciones:
Segun opc Hacer
'a'://Cedula
Para i<-1 Hasta cantPer Hacer
Para j<-i+1 Hasta cantPer Con Paso 1 Hacer
Si cedula[i]>cedula[j] Entonces
temp<-cedula[i]
cedula[i]<-cedula[j]
cedula[j]<-temp
temp<-edad[i]
edad[i]<-edad[j]
edad[j]<-temp
aux<-sueldo[i]
sueldo[i]<-sueldo[j]
sueldo[j]<-aux
Si cedula[j]>-temp Entonces
aux<-nombre[i]
nombre[i]<-nombre[j]
nombre[j]<-aux
aux<-apellido[i]
apellido[i]<-apellido[j]
apellido[j]<-aux
FinSi
FinSi
Fin Para
Fin Para
Escribir ' Arreglo ordenado por Cedula'
Escribir 'Cedula Nombre Apellido Edad Sueldo'
Para cont<-1 Hasta cantPer Con Paso 1 Hacer
Escribir cedula[cont],' ', nombre[cont],' ', apellido[cont],' ',edad[cont],' ',sueldo[cont]
Fin Para
'b'://Edad
Para i<-1 Hasta cantPer Hacer
Para j<-i+1 Hasta cantPer Con Paso 1 Hacer
Si edad[i]>edad[j] Entonces
temp<-edad[i]
edad[i]<-edad[j]
edad[j]<-temp
temp<-cedula[i]
cedula[i]<-cedula[j]
cedula[j]<-temp
aux<-sueldo[i]
sueldo[i]<-sueldo[j]
sueldo[j]<-aux
Si cedula[j]>-temp Entonces
aux<-nombre[i]
nombre[i]<-nombre[j]
nombre[j]<-aux
aux<-apellido[i]
apellido[i]<-apellido[j]
apellido[j]<-aux
FinSi
FinSi
Fin Para
Fin Para
Escribir ' Arreglo ordenado por Edad'
Escribir 'Edad Nombre Apellido Cedula Sueldo'
Para cont<-1 Hasta cantPer Con Paso 1 Hacer
Escribir edad[cont],' ', nombre[cont],' ', apellido[cont],' ',cedula[cont],' ',sueldo[cont]
Fin Para
'c'://Sueldo
Para i<-1 Hasta cantPer Hacer
Para j<-i+1 Hasta cantPer Con Paso 1 Hacer
Si sueldo[i]>sueldo[j] Entonces
aux<-sueldo[i]
sueldo[i]<-sueldo[j]
sueldo[j]<-aux
temp<-cedula[i]
cedula[i]<-cedula[j]
cedula[j]<-temp
temp<-edad[i]
edad[i]<-edad[j]
edad[j]<-temp
Si cedula[j]>-temp Entonces
aux<-nombre[i]
nombre[i]<-nombre[j]
nombre[j]<-aux
aux<-apellido[i]
apellido[i]<-apellido[j]
apellido[j]<-aux
FinSi
FinSi
Fin Para
Fin Para
Escribir ' Arreglo ordenado por Sueldo'
Escribir 'Sueldo Nombre Apellido Edad Cedula'
Para cont<-1 Hasta cantPer Con Paso 1 Hacer
Escribir sueldo[cont],' ', nombre[cont],' ', apellido[cont],' ',edad[cont],' ',cedula[cont]
Fin Para
De Otro Modo:
Escribir 'Operacion exitosa'
Fin Segun
FinProceso
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2019-03-24
// Dimension para el sueldo.
Dimension variable[cont]
esta linea debe estar colocada antes de que empiece el bucle 'para'
a diferencia de otros lenguajes este Pseint no acepta dimension de la misma variable mas de una vez
En el entorno 'terminal' o sea no consola, se puede hacer
en la linea donde pide la cantidad:
ckantidad = ""
leer ckantidad
sueldo[i] = ConvertirANumero(ckantidad)
si PseInt da error simplemente se retrocede con la rueda (del mouse), se hace click en el
button 'ejecutar desde este punto' en el borde inferior a la derecha
y se intenta de nuevo ingresar el valor
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2019-09-13
si si claro!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Buenas tardes compañeros, mi profesor de Algoritmos y Estructuras 2 nos manda el siguiente ejercicio que dice que: "El campo sueldo debe ser numérico (no deben permitir valores negativos ni caracteres)".
Que pasa, que utilizando el código de esta persona https://sourceforge.net/p/pseint/discussion/2368321/thread/af4b8a01/?limit=25#28a4 establecí que, si al principio consigue una letra, me obligle a ingresar un número, de lo contrario pasa al menú y ahí le digo si quiero que organice la nomina por cedula, edad o sueldo.
Sucede que cuando ingreso que la cantidad de personas es 1 me ejecuta perfecto el código, pero cuando ingreso que hay 2 o más personas se traba y da el siguiente error: "Lin 43 (inst 1): ERROR 123: Identificador en uso".
Esa linea pertenece a la variable
Dimension variable[cont]
No sé por qué no quiere correr el código. Si pueden ayudarme estaria full agradecida. Saludos.
esta linea debe estar colocada antes de que empiece el bucle 'para'
a diferencia de otros lenguajes este Pseint no acepta dimension de la misma variable mas de una vez
En el entorno 'terminal' o sea no consola, se puede hacer
en la linea donde pide la cantidad:
ckantidad = ""
leer ckantidad
sueldo[i] = ConvertirANumero(ckantidad)
si PseInt da error simplemente se retrocede con la rueda (del mouse), se hace click en el
button 'ejecutar desde este punto' en el borde inferior a la derecha
y se intenta de nuevo ingresar el valor
si si claro!