Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
GPLeo
Forista Nuevo
Forista Nuevo
Mensajes: 44
Registrado: Lun Jun 11, 2007 7:00 am

Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por GPLeo » Mié Dic 14, 2011 11:42 pm

Hola a todos.

Tengo un ejercicio en pseudocodigo y en una parte del mismo se pide ingresar un nombre de usuario con un maximo de 30 caracteres y un mínimo de 5 y ademas el nombre de usuario debe contener obligatoriamente un simbolo arroba (@).

Se que lo que tengo que hacer (una forma de hacerlo) es recorrer el vector letra por letra y luego poner un condicional para que se cumpla la condición que pide el ejercicio, pero ya lo he intentado y no se me ocurre como hacerlo. He estado viendo varios ejemplos, pero ya están codificados en algún lenguaje de programación y en la mayoría se utiliza algun comando nativo como ser (len,strlen,etc) para medir la longitud de la cadena y lo que yo quiero es utilizar comandos que pueda expresar en pseudocodigo.

Agradecería cualquier sugerencia. Gracias.
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por mcun » Jue Dic 15, 2011 12:37 am

pásalos aun array y luego cuéntalos http://itico.wordpress.com/2007/02/22/arrays-en-bash/
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
GPLeo
Forista Nuevo
Forista Nuevo
Mensajes: 44
Registrado: Lun Jun 11, 2007 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por GPLeo » Jue Dic 15, 2011 1:17 am

mcun escribió:pásalos aun array y luego cuéntalos http://itico.wordpress.com/2007/02/22/arrays-en-bash/
Sigo sin que se me ocurra otra cosa, en la pagina que me das de ejemplo, habla de recorrer un array cuando ya se sabe el valor del vector, y aparte no realiza ninguna operación con los datos, solo los muestra. Yo lo que necesito es saber la cantidad de letras del usuario ingresado para así poder poner un condicional que me permita un ingreso de datos condicionado. Pongo solo hasta donde llegue:

Código: Seleccionar todo

Proceso Ejercicio
	i<-1;
	Dimension linea[30];
	Escribir "Ingrese nombre de usuario: ";
	Repetir
		Leer nombre;
		linea[i]<-nombre;
		i<-i+1;
	Hasta Que (i<30) y (i<5)
FinProceso
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por mcun » Jue Dic 15, 2011 1:23 am

Bueno en el caso los muestra tu los puedes contar ... según yo lo interpreto es el 80 % de lo que precisas osea solo tienes que implementar una variable e incrementarla por cada iteración para luego chequearla con un if o case mejor el maximo admisible para el string ... no lo veo difícil a no ser que no comprenda lo que quieres ..
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por neurus » Jue Dic 15, 2011 6:19 am

El problema con el pseudocódgido, es que si no te dan antes las "palabras reservadas", como en cualquier lenguaje, no sabes con qué cuentas.

Hace muchos años, llevábamos dos meses trabajando con pseudocódigo, hasta que, hartos hasta la coronilla, decidimos resolver el ejercicio así:

Código: Seleccionar todo

Inicio ();
   resolver ejercicio;
Fin;
Y ante el primer cuestionamiento, sostuvimos que se trataba de pseudocódigo de alto nivel.

Al final, el profesor comprendió que era mejor reprobarnos en un lenguaje real.

En cuanto a tu problema, no sé qué pueden haber visto en pseudocódigo (¿se nota que me parece una estupidez?). Imagino que no vieron pilas. Una pila es, grosso modo, un array cuyos elementos se extraen en orden inverso. Lo primero que se me ocurre es meter todo en una pila, e ir sacando hasta que se termine, utilizando un contador y un if que busque una arroba.


A falta de pila, tu script podría hacer algo así:

Código: Seleccionar todo

arroba=0
contador=0
while (mientras) (no sé cómo lees el array por elementos, eso iría aquí: leer un elemento del array; Esto es la condición del while)
  {
        $contador++;
    si [elemento array== @]; entonces $arroba++;
 }
 
//Acá ya se salió del bucle.

Si [$contador>30] or [$contador<5]; mensaje de error;
Si [$arroba != 1]; mensaje de error;
  else ¡congratulations, ha terminado el programa que no hace nada!
echo ¡hola, mundo! // Esto es por tradición.
Avatar de Usuario
GPLeo
Forista Nuevo
Forista Nuevo
Mensajes: 44
Registrado: Lun Jun 11, 2007 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por GPLeo » Lun Dic 19, 2011 3:47 pm

El problema con el pseudocódgido, es que si no te dan antes las "palabras reservadas", como en cualquier lenguaje, no sabes con qué cuentas.
Bueno, y llevando el problema a un lenguaje que mas o menos vi como Ruby como lo podría implementar. Se que el problema no es tan complicado, en teoría, pero no se como abordar el mismo.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por neurus » Lun Dic 19, 2011 9:24 pm

¿Es un chiste, verdad?
¿No tienes ninguna pista sobre cómo abordar el problema?
Es más, ¿no está resuelto el problema?.
Avatar de Usuario
GPLeo
Forista Nuevo
Forista Nuevo
Mensajes: 44
Registrado: Lun Jun 11, 2007 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por GPLeo » Mié Dic 21, 2011 6:04 pm

Perdon por molestar de nuevo. Finalmente lo codifique directamente en Ruby y logre hacerlo funcionar en parte. El problema con el pseudocodigo, es que suelo utilizar un interprete de pseudocodigo llamado Pseint que funciona bien, pero cuando hay que utilizar estructuras de datos un poco mas complejas se complica un poco. Bueno volviendo nuevamente al codigo, logre hacer funcionar la parte que pide el usuario con un determinado numero maximo de elementos, pero ahora no se como hacer que me valide el nombre de usuario al ingresar un simbolo arroba.

Aca va el codigo:

Código: Seleccionar todo

nombre=[];
i=1;
cont=0;

begin
	print "Ingrese nombre de usuario: "
	nombre[i]=gets.chomp.to_s;
	acum=nombre[i].length
	for i in 1..acum
		if nombre[i]=="@" then
			cont=cont+1;
		end
	end
end until (acum>=5) and (acum<=10) and (cont>=1)
y de nuevo perdon por molestar, se que son dudas tontas para el ya lleva un rato programando, pero yo recién empiezo en esto.
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por niky45 » Mié Dic 21, 2011 7:37 pm

pseudocodigo:

Código: Seleccionar todo

blablabla
contar_elementos nombre
blablabla
puesto que es un comando que tiene TODOS los lenguajes, no veo por que no se puede poner asi. yo he visto pseudocodigos bastante menos explicitos ultimamente,

ruby:
GPLeo escribió:pero ahora no se como hacer que me valide el nombre de usuario al ingresar un simbolo arroba.
en que falla tu codigo exactamente?? digo, que dice, que hace, para que digas que no funcione?? (puede no ejecutarse, o pasar de una condicion, o.... simplemente, dar un resultado incorrecto)

digo, yo lo que veo (que no se ruby) me parece correcto.

:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por neurus » Mié Dic 21, 2011 9:33 pm

1) Está mal la sintaxis del if. Es Ruby, no Pascal.
2) Luego de decir que no tenías idea de por dónde empezar, implementaste el mismo algoritmo que yo había armado arriba.
3) No sería mala idea especificar un poco más allá del "no funciona". Digo, para poder darle un descanso a las bolas. Las de cristal, claro.
Avatar de Usuario
GPLeo
Forista Nuevo
Forista Nuevo
Mensajes: 44
Registrado: Lun Jun 11, 2007 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por GPLeo » Mié Dic 21, 2011 10:57 pm

niky45 escribió:pseudocodigo:

Código: Seleccionar todo

blablabla
contar_elementos nombre
blablabla
puesto que es un comando que tiene TODOS los lenguajes, no veo por que no se puede poner asi. yo he visto pseudocodigos bastante menos explicitos ultimamente,

ruby:
GPLeo escribió:pero ahora no se como hacer que me valide el nombre de usuario al ingresar un simbolo arroba.
en que falla tu codigo exactamente?? digo, que dice, que hace, para que digas que no funcione?? (puede no ejecutarse, o pasar de una condicion, o.... simplemente, dar un resultado incorrecto)

digo, yo lo que veo (que no se ruby) me parece correcto.

:)
niki45 escribió: en que falla tu codigo exactamente?? digo, que dice, que hace, para que digas que no funcione?? (puede no ejecutarse, o pasar de una condicion, o.... simplemente, dar un resultado incorrecto)
Falla en que el nombre de usuario ingresado tiene que tener una longitud máxima de 30 caracteres y una minima de 5 pero ademas debe contener obligatoriamente un simbolo arroba (@) y cuando lo ejecuto asi como esta, el ciclo no termina mas y se queda pidiendo un nombre de usuario. O sea que el error esta al querer ingresar ese simbolo arroba (@).
neurus escribió: Es Ruby, no Pascal.
que novedad.
neurus escribió:
no es pseudocodigo es ruby, ademas tu pseudocodigo esta poco elaborado, por que los condicionales los pusiste sueltos y deben ir dentro de un ciclo, dado que si no ingreso el nombre de usuario tal y como me lo pide el problema el programa me lo tendria que volver a pedir y esa era mi pregunta.
neurus escribió: No sería mala idea especificar un poco más allá del "no funciona". Digo, para poder darle un descanso a las bolas. Las de cristal, claro.
No seria mala idea que si no tenes ganas de ayudar simplemente no escribieras nada en lugar de mostranos lo inteligente que sos y dejaras a los que de verdad quieran ayudar. Digo, para poder darle un descanso a las bolas. Las de verdad, claro.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por neurus » Mié Dic 21, 2011 11:12 pm

Caramba, y yo que pensé que te había ayudado, construyéndote la solución desde cero.

Los demás cuestionamientos, no son hacia tus conocimientos de programación. Todos hemos pasado por la etapa de aprendizaje.
Son cuestionamientos a tus pocas ganas de ser específico en el planteo del problema.

Y te recuerdo que empezaste preguntando por pseudocódigo, y la solución allí está. Luego lo cambiaste por Ruby. Y está mal planteado el if, insisto. Pero dado tu desgano para describir un problema que es tuyo (no mío), supongo que haría bien en seguir tu consejo, y no ayudar en absoluto, al menos en este hilo. Porque pedirte que seas específico es también ayudarte. Y lo hago gratis.

Finalmente, digo yo, si no tienes ganas de describir el problema, y hay que sacártelo con tirabuzón, ¿para qué preguntas?.

Por si no está claro:
deben ir dentro de un ciclo, dado que si no ingreso el nombre de usuario tal y como me lo pide el problema el programa me lo tendria que volver a pedir y esa era mi pregunta.
Pero resulta que no, que no era tu pregunta:
Tengo un ejercicio en pseudocodigo y en una parte del mismo se pide ingresar un nombre de usuario con un maximo de 30 caracteres y un mínimo de 5 y ademas el nombre de usuario debe contener obligatoriamente un simbolo arroba (@).
¿Te das cuenta de las dificultades de adivinar el pensamiento?. Mis poderes, a veces fallan.
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por akodo » Mié Dic 21, 2011 11:43 pm

Relájense un poco y dejen descansar las bolas (las mías, claro). Ni para preguntar ni para responder hace falta ser tan borde.

Llendo al tema que nos ocupa, y partiendo de la base que no tengo ni idea de ruby, hay una cosa que me extraña

Código: Seleccionar todo

nombre=[];
....
   nombre[i]=gets.chomp.to_s;
   acum=nombre[i].length
....
      if nombre[i]=="@" then
         cont=cont+1;
      end
Supongo que "nombre" contiene la cadena que has escrito (por ejemplo "micorreo@foo.bar"). Luego obtienes la longitud de la cadena, ¿y compruebas que la cadena "micorreo@foo.bar" (variable nombre) es igual a "@"?

Creo que has perdido un poco de vista lo que estas haciendo. La variable "nombre" debe ser un string, y luego tienes que recorrer los caracteres de dicha variable buscando la @

Simplemente tienes que sustituir las siguientes líneas:

Código: Seleccionar todo

nombre[i]=gets.chomp.to_s;      ----->>    nombre=gets.chomp.to_s;
   acum=nombre[i].length     ----->>   acum=nombre.length
No tengo claro si ruby necesita declarar variables, pero de no ser así también puedes quitar la línea "nombre=[]"
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ingresar nombre de usuario de determinada longitud (Pseudocodigo)..

Mensaje por neurus » Mié Dic 21, 2011 11:48 pm

Un último detalle: el primer índice de un array es siempre cero.
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje