Primer 1234 Último

Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

      • 24
      • mensajes
      • miembro desde
      • 30/12/11
    03/03/2012
    #11 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Gracias por la segunda explicacion
    por cierto se puede poner un repeat dentro de un repeat? xd

      • 323
      • mensajes
      • miembro desde
      • 07/02/07
    03/03/2012
    #12 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Pues claro que se puede. Sea un REPEAT dentro de otro, o un WHILE dentro de un REPEAT o dentro de otro WHILE; también dentro de un FOR.... etc. Puedes hacer lo que quieras.

    Saludos.

      • 91
      • mensajes
      • miembro desde
      • 13/09/11
    06/03/2012
    #13 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    programar es aprender las reglas de un programa X y luego jugar a la práctica e inventar y reinventar.

    La compilación del mismo y la búsqueda de información junto a la lógica nos hará buenos, muy buenos, mediocres o inservibles para la programación de un lenguaje X.

    Es mi humilde opinión. De repente estoy absolutamente equivocada.

      • 323
      • mensajes
      • miembro desde
      • 07/02/07
    06/03/2012
    #14 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Pues no estoy de acuerdo en lo que dices, ya que para aprender las reglas de un programa X se requiere, dependiendo del programa, tener ciertos conocimientos u otros. No es posible aprender las reglas de un programa recursivo si no se sabe lo que es la recursión. No es posible comprender la lógica de negocios de todo un sistema dividido en capas si no se sabe qué es una capa, cómo se programa y como se comunican.

    Es necesario aprender a programar en algún lenguaje para luego poder aplicar lo aprendido en otro lenguaje y/o en el estudio de un programa X como tú dices.

    Dado el código fuente de un programa complejo ¿De donde empiezas? ¿Cómo estuidiarías ese código si por ejemplo aplicara Programación Orientada a Objetos pero jamás has visto ese paradigma????

    En fin, tal vez no he entendido bien tu postura ya que tu comentario es corto, pero aunque la respeto, te doy mis argumentos de por qué no estoy de acuerdo.

    Saludos y gracias por expresar tu opinión.

      • 91
      • mensajes
      • miembro desde
      • 13/09/11
    06/03/2012
    #15 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Quise decir Vlady que para aprender programación o cualquier otra cosa se parte en lo general de cero. En la medida que los libros, los profesores y todo lo que nos sirva de apoyo nos abra al conocimiento de X cosa,en esa medida comprendemos y aprendemos.

    En el caso específico de la programación, de lenguajes, hemos de aprender su configuración, su estructura y de que es capaz, luego de aprender su sintaxis, entra sin duda alguna nuestra capacidad lógica.

    Sin lógica no se aprende programación. Partiendo de ahí, entonces como bien dijiste en una pregunta anterior, has de tener otras bases es natural.

    Por más programación que sepas, si tienes que escribir un programa para nóminas has de conocer contabilidad y tener claro los elementos implicados en una nómina y en particular los detalles que han de tenerse en cuanta para la que desarrollarás en particular.

    Pero... repito, si uno está aprendiendo programación y se queda estancado en los ejemplos del libro y del profesor, jamás se destacará. Hay que programar y volver a programar, cometer errores, romperse la cabeza, no dormir bien buscando una solución que puede llegarte a las 3 de la madrugada luego de dos dias peleándote entre tu lógica y la del compilador. Preguntar a quienes tienen más experiencia que uno/a. En fin, práctica y más práctica.

    ¡Ah y conocer el lenguaje de máquina me parece vital! Así sabremos como trata cada comando o instrucción que enviamos.

    En fin... no me hagas mucho caso. De repente especulo. Sigue arrojando luz a mis locuras.

    Byeeeeeee

      • 323
      • mensajes
      • miembro desde
      • 07/02/07
    06/03/2012
    #16 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Ahora sí que quedó bien claro y pues, estoy de acuerdo contigo. En lo único que difiero es en que a pesar de no poseer la lógica necesaria esta se puede desarrollar. Algunas personas la tienen innata, pero en sí es un proceso de desarrollo y en principio es la principal barrera a sobrepasar para aprender a programar, más allá del lenguaje seleccionado y demás.

    Muchas gracias por tu aporte. No dudes en publicar más...
    Saludos.

      • 91
      • mensajes
      • miembro desde
      • 13/09/11
    06/03/2012
    #17 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    ¡Correctísimo lo que dices Vlady! Deseo que este esfuerzo tuyo sea el principio de una carrera en programación para quienes decidan programar.

    Es divertido y se gana dinero. Es atinado el esfuerzo. Ojalá que así sea y que luego los agradecidos y agradecidas recuerden agradecerte a ti y al espacio que lo permite.

    Agradecer es de grandes. De los desagradecidos/as estamos hartos.

    Gracias a ti de nuevo.

      • 35
      • mensajes
      • miembro desde
      • 04/04/11
    30/07/2012
    #18 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Hey que hay Vlady...(Si yo otra vez)...me da no sé que estar pregunte y pregunte pero bueno tu lo dijiste...jeje.En fin, he hecho el primer ejercicio(enteros), de modificar el while por el repeat, casi todo me sale bien, a excepción que si ingresa un caracter distinto, es decir, una letra simplemento me dice que el valor de dicho caracter es 0 y no "el caracter no es valido".
    Ya lo verifiqué con el debug pero...no encuentro como solucionarlo.Te paso el código.

    Código:
    PROGRAM enterosRepeat;
    
    VAR
       car: char; //caracter le¡do.
       entero: integer; //Guardar  el valor del caracter pero en integer.
       error: boolean; //True si el usuario no ingresa un entero.
    
    BEGIN
       //Mostramos un mensaje al usuario y leeamos la entrada.
       write('Ingrese un entero: ');
       read(car);
       //Damos la condici¢n de error.
       error:= (ord(car)<48) or (ord(car)>57);
    
       IF not error THEN
          entero:= ord(car)-ord('0');
    
    
       REPEAT
          read(car);
    
          error:= (ord(car)<48) or (ord(car)>57);
    
          if not error then
          entero:= (entero*10) + (ord(car)-ord('0'));
    
    
    
       UNTIL (error);
    
       if not error then
          writeln('El entero ingresado es: ',entero)
       else
          writeln('No ha introducido un entero.');
    
    END.
    Muchas gracias nuevamente y, si lo sé. Soy un PREGUNTON je,je.
    que estes muy bien.
      • 323
      • mensajes
      • miembro desde
      • 07/02/07
    30/07/2012
    #19 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Pues existe una sutileza en este tipo de ejercicios que no está explicada explícitamente. Al usar WHILE debemos "iniciar" nuestro proceso de lectura antes de él porque justamente el WHILE tiene la potencialidad de no ejecutarse nunca si se da un error. Ahora bien, REPEAT se ejecuta siempre al menos una vez, de este modo tú en tu código estás leyendo el primer caracter por fuera del REPEAT y luego al entrar vuelves a leer sin tomar en cuenta si hubo error en dicho caracter o no, es decir, te estás comiendo el primer caracter ingresado. ¿Me sigues?

    Normalmente el cambio de REPEAT a WHILE no es solo cambiar la condición. En este caso, debes omitir la lectura que haces fuera del REPEAT.

    Estudia eso y me comentas.

    PD: La idea de publicar esto en foros es justamente que podamos interactuar. Si preguntan es porque están trabajando en el curso y no hay nada más grato para mí que eso, que lean y tomen en cuenta lo que hago y así aprendan. Pregunta, pregunta y sigue preguntando tanto como haga falta. No importa si tienes que preguntar 621698654984619846548 veces lo mismo, yo responderé con gusto.

    Saludos amigo.

      • 35
      • mensajes
      • miembro desde
      • 04/04/11
    31/07/2012
    #20 Re: Programando desde 0: 10- Repetición condicional con REPEAT...UNTIL

    Ok. Ya estuve bastante tiempo cambiando el código, viendo posibilidades y se resolvio esa duda. El programa ya me indica si no ingrese un entero, si ingreso más de un "caracter" o "entero", es decir, 123, me indica su valor. Pero...surgió otra duda, al momento de ingresar solo un entero o caracter, me devuelve la multiplicación del mismo por 10 más el mismo numero. En concreto si ingreso 1 me devuelve el valor 11, si ingreso 4 ; 44 y así. Ya rebicé con el debug, encuentro donde esta el problema pero no he encontrado una solución y mira que he estado bastante tiempo intentando (4hrs aprox o más ja,ja). Te pido rebices el nuevo código a ver que te parece. Estoy tratando de no desesperarme aunque estoy conciente que es normal tardarse en asimilar todas estas cosas. Desde ya un saludo y que estes muy bien.

    Código:
    PROGRAM enterosRepeat;
    
    VAR
       car: char;
       entero: integer;
       error: boolean;
    
    BEGIN
       write('Ingresa un entero: ');
    
       REPEAT
           read(car);
    
          error:= (ord(car)<48) or (ord(car)>57);
    
          IF not error THEN
             entero:= ord(car)-ord('0');
    
        repeat
    
    
          if not eoln then
             read(car)
          else
    
          error:= (ord(car)<48) or (ord(car)>57);
          if (not error) then
             entero:= (entero*10) + (ord(car)-ord('0'));
    
        until (eoln) or (error);
    
        UNTIL (eoln) or (not error);
    
    
       if not error then
          writeln('El entero ingresado es: ',entero)
       else
          writeln('No ha introducido un entero.');
    
    
    END.
    Un abrazo.
    Suerte.
    P.D: Si no es mucha molestia me puedes dar una pista para hacer el Eercicio 2..por favor, ya que solo consigo leer el saldo de la cuenta y hasta ahí me quedo, intento sumar y restar el deposito y retiro , pero me confundo al saber que puede retirar o depositar mas de una vez y salteado, espero me entiendas.
    Última edición por danteolivetti; 31/07/2012 a las 17:19
Primer 1234 Último