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:
ProcesoNomina//Variables:DefinircantPer,cedula,edadComoEnteros;Definiri,jComoEnteros;Definirnombre,apellido,opcComoCaracter;//Variablesparadeterminarsielsueldoposeeesnumerooletras:Definircont,a,b,num,cComoEntero;Definirsueldo,d,e,variableComoCaracter;//Declaramoselvalordelasvariablesdelsueldo:num<-0; b<-0;//Ingresamoslosdatos:Escribir'Ingrese la cantidad de personas:';LeercantPer;Escribir'';//Establecemoslasdimensiones:Dimensionapellido[cantPer];Dimensionnombre[cantPer];Dimensioncedula[cantPer];Dimensionsueldo[cantPer];Dimensionedad[cantPer];Dimensionvariable[cantPer];//Ingresamoslosdatos:Parai<-1HastacantPer-1HacerEscribir'Ingrese el nombre de la persona ',i,':';Leernombre[i];Escribir'Ingrese el apellido de la persona ',i,':';Leerapellido[i];Escribir'Ingrese la edad de la persona ',i,':';Leeredad[i];Escribir'Ingrese la cedula de la persona ',i,':';Leercedula[i];Escribir'Ingrese el sueldo de la persona ',i,':';Leersueldo[i];//Convertimoselsueldocomominusculasybuscamossulongitud:sueldo[i]<-Minusculas(sueldo[i]);cont<-Longitud(sueldo[i]);//Dimensionparaelsueldo.Redimensionarvariable[cont]; //Redimensionar en lugar de Dimensionar, el arreglo variable ya estaba previamenteParaa<-0Hastacont-1ConPaso1Hacervariable[a]<-Subcadena(sueldo[i],a,a);FinPara//Declaramoselvaloraparaelsueldo:a<-0;Paraa<-b+1Hastacont-1ConPaso1Hacerd<-ConvertirATexto(a);Parac<-1Hasta9ConPaso1Hacere<-ConvertirATexto(c);Sivariable[a]=eEntoncesnum<-num+1;FinSiFinParaFinParaSinum<>contEntoncesEscribir'Ingrese un monto sin letras';Leersueldo[i];SiNoSinum=contEntoncesSinum<0EntoncesEscribir'Ingrese un monto positivo';Leersueldo[i];FinSiFinSiFinSiEscribir'----------------------------------------------------';FinPara//Escribimosunmenu:Escribir'Como desea organizar la nómina?';Escribir'a) Cédula';Escribir'b) Edad';Escribir'c) Sueldo';Escribir'Seleccione una de las opciones';Leeropc;Escribir'----------------------------------------------------';//Creamosunswitchparapoderseleccionar1delasopciones:SegunopcHacer'a'://CedulaParai<-1HastacantPer-1HacerParaj<-i+1HastacantPer-1ConPaso1HacerSicedula[i]>cedula[j]Entoncestemp<-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;Sicedula[j]>-tempEntoncesaux<-nombre[i];nombre[i]<-nombre[j];nombre[j]<-aux;aux<-apellido[i];apellido[i]<-apellido[j];apellido[j]<-aux;FinSiFinSiFinParaFinParaEscribir' Arreglo ordenado por Cédula';Escribir'Cédula Nombre Apellido Edad Sueldo';Paracont<-1HastacantPer-1ConPaso1HacerEscribircedula[cont],' ',nombre[cont],' ',apellido[cont],' ',edad[cont],' ',sueldo[cont];FinPara'b'://EdadParai<-1HastacantPer-1HacerParaj<-i+1HastacantPer-1ConPaso1HacerSiedad[i]>edad[j]Entoncestemp<-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;Sicedula[j]>-tempEntoncesaux<-nombre[i];nombre[i]<-nombre[j];nombre[j]<-aux;aux<-apellido[i];apellido[i]<-apellido[j];apellido[j]<-aux;FinSiFinSiFinParaFinParaEscribir' Arreglo ordenado por Edad';Escribir'Edad Nombre Apellido Cedula Sueldo';Paracont<-1HastacantPerConPaso1HacerEscribiredad[cont],' ',nombre[cont],' ',apellido[cont],' ',cedula[cont],' ',sueldo[cont];FinPara'c'://SueldoParai<-1HastacantPer-1HacerParaj<-i+1HastacantPer-1ConPaso1HacerSisueldo[i]>sueldo[j]Entoncesaux<-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;Sicedula[j]>-tempEntoncesaux<-nombre[i];nombre[i]<-nombre[j];nombre[j]<-aux;aux<-apellido[i];apellido[i]<-apellido[j];apellido[j]<-aux;FinSiFinSiFinParaFinParaEscribir' Arreglo ordenado por Sueldo';Escribir'Sueldo Nombre Apellido Edad Cédula';Paracont<-1HastacantPerConPaso1HacerEscribirsueldo[cont],' ',nombre[cont],' ',apellido[cont],' ',edad[cont],' ',cedula[cont];FinParaDeOtroModo:Escribir'Operacion exitosa';FinSegunFinProceso
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2019-03-23
Hola, soy de Algoritmos I no se mucho de programacion aun, pero lo que te puedo decir:
Es que en pseint no se puede declarar un arreglo en un ciclo por que no lo soporta el lenguaje como tal. Se ejecuta bien cuando la cantidad de personas es 1° por q recorre todo el codigo, declara Dimension variable[cont] y continua hasta el final. Apartir del 2° ciclo cuando desea de nuevo declarar el arreglo "variable", tira error por que trata de redimensionar ese vector ya usado, que tiene en sus posiciones los valores dados en el 1° ciclo.
En Java lo que imagino que haria es limpiar la memoria del arreglo y posteriormente asignar un nuevo espacio de acuerdo a la nueva dimension.
Ejecute tu algoritmo en Java y se ejecuta igual que en el pseint a excepcion del error debido a que si soporta ese tipo de instrucciones.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2020-01-14
Geraldine pudiste resolver el problema??
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2020-10-18
Realice un programa usando arreglo, que lea el nombre, apellido y la cedula de un ciudadano.
Coloque en un arreglo nuevo las cedula de los que son extranjeros, así como el nombre y apellido concadenado en otro arreglo nuevo.
Para saber si el ciudadano tiene ciudadanía extranjero debe tener la provincia en 00.
me ayudar ese problema
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2020-10-18
Realice un programa usando arreglo, que lea el nombre, apellido y la cedula de un ciudadano.
Coloque en un arreglo nuevo las cedula de los que son extranjeros, así como el nombre y apellido concadenado en otro arreglo nuevo.
Para saber si el ciudadano tiene ciudadanía extranjero debe tener la provincia en 00.
me ayudar ese problema
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2021-06-25
Ayudaaa
Elabore un algoritmo que permita determinar si el número de la cedula existe o no, de
acuerdo a la siguiente consideración
Lea el numero de cedula en 10 variables diferentes
I
1 7 1 3 1 7 5 0 7 1
I P I P I P I P I DV
Las posiciones impares se multiplican por (2). Si el resultado de esta multiplicación
es mayor a nueve, se le resta nueve. EJEMPLO
12,12,12,52,7*2 =
2,2,2,10,14 =
2,2,2,1,5 =12
Las posiciones pares se suman. EJEMPLO
7+3+7+0 = 17
Se suma el total de pares + impares. EJEMPLO
17+12 = 29
Se obtiene el módulo 10 de la suma total anterior Por ejemplo, si la suma fue 29, el
módulo sería 9.
Si el resultado anterior es cero entonces el dígito verificador es cero, caso contrario
se resta 10 menos el resultado del paso anterior. Por ejemplo la resta sería 10 – 9 =
1, siendo 1 el dígito verificador calculado.
Finalmente se compara el resultado anterior con el último dígito de la cédula si
son iguales imprima "Cédula Válida" caso contrario imprima "Cédula Incorrecta"
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2024-01-21
Post awaiting moderation.
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.
//Los arreglos están en base 0
Hola, soy de Algoritmos I no se mucho de programacion aun, pero lo que te puedo decir:
Es que en pseint no se puede declarar un arreglo en un ciclo por que no lo soporta el lenguaje como tal. Se ejecuta bien cuando la cantidad de personas es 1° por q recorre todo el codigo, declara Dimension variable[cont] y continua hasta el final. Apartir del 2° ciclo cuando desea de nuevo declarar el arreglo "variable", tira error por que trata de redimensionar ese vector ya usado, que tiene en sus posiciones los valores dados en el 1° ciclo.
En Java lo que imagino que haria es limpiar la memoria del arreglo y posteriormente asignar un nuevo espacio de acuerdo a la nueva dimension.
Ejecute tu algoritmo en Java y se ejecuta igual que en el pseint a excepcion del error debido a que si soporta ese tipo de instrucciones.
Geraldine pudiste resolver el problema??
Realice un programa usando arreglo, que lea el nombre, apellido y la cedula de un ciudadano.
Coloque en un arreglo nuevo las cedula de los que son extranjeros, así como el nombre y apellido concadenado en otro arreglo nuevo.
Para saber si el ciudadano tiene ciudadanía extranjero debe tener la provincia en 00.
me ayudar ese problema
Realice un programa usando arreglo, que lea el nombre, apellido y la cedula de un ciudadano.
Coloque en un arreglo nuevo las cedula de los que son extranjeros, así como el nombre y apellido concadenado en otro arreglo nuevo.
Para saber si el ciudadano tiene ciudadanía extranjero debe tener la provincia en 00.
me ayudar ese problema
Ayudaaa
Elabore un algoritmo que permita determinar si el número de la cedula existe o no, de
acuerdo a la siguiente consideración
Lea el numero de cedula en 10 variables diferentes
I
1 7 1 3 1 7 5 0 7 1
I P I P I P I P I DV
es mayor a nueve, se le resta nueve. EJEMPLO
módulo sería 9.
se resta 10 menos el resultado del paso anterior. Por ejemplo la resta sería 10 – 9 =
1, siendo 1 el dígito verificador calculado.
son iguales imprima "Cédula Válida" caso contrario imprima "Cédula Incorrecta"