Título: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 20 Septiembre 2013, 23:33 pm Hola este es mi primer post en este maravillóso foro
Estoy estudiando programación y tengo un problema con un batch, este es la cosigna Tengo que crear un batch que pida en pantalla 3 números y que me los presente ordenados de mayor a menor, ósea primero: el mayor Segundo: el que sigue del primero Tercero: el menor Espero no parecer un estúpido con este post pero me declaró super noob El código que logre fue este @echo off set/p %núm1%=Ingrese un número set/p %núm2%=ingrese un número Acá lo mismo sólo que con un Núm3 If %Núm1% GTR %Núm2% goto %Núm1% GTR %Núm3% If %Núm2% GTR %Núm3% A eso llegue noce si voy bien o todo lo que he hecho esta mal Espero que me ayuden. Saludos! Enviado desde mi ST25i usando Tapatalk 2 Título: Re: Duda-- problema con ejercicio en batch Publicado por: Almapa en 21 Septiembre 2013, 03:16 am Hola estebankpo15, veamos:
Citar set/p %núm1%=Ingrese un número Cuando a una variable se le ponen los símbolos "%" a ambos lados es para obtener su valor pero no para definirla, es decir, que con dicha línea de código estarías definiendo una variable que se llamaría como el valor con el que está definida núm1 y no la variable núm1 en sí. No se si me explico. Un ejemplo:Código: set /p var=Introduce un nombre En cuanto a: Citar If %Núm1% GTR %Núm2% goto %Núm1% GTR %Núm3% Cuando haces una sentencia condicional has de poner cuales serán los comandos llevados a cabo en el caso que se cumpla la condición, pues si te das cuenta comparas los números pero no hace nada. Para organizar bien vale la pena utilizar paréntesis. Para comparar los números puedes hacerlo de varias formas, una seria:If %Núm2% GTR %Núm3% Código: if %num1% GTR %num2% (if %num2% GTR %num3% (Echo Primero: %num1% && Echo Segundo: %num2% && Echo Tercero: %num3%)) Por cierto, en general no te aconsejo utilizar tildes por lo que respecta a la programación. En cambio, si tu redacción de la duda es correcta te tomarán más en serio. Un saludo Título: Re: Re: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 21 Septiembre 2013, 07:17 am Por lo que veo mezcle muchas cosas, jajajaja lo que pasa es que yo más o menos intente hacerlo en base a otro problema en el cual tenia que formular la tabla de multiplicar del 1 al 10 del número que ingrese en pantalla por lo que veo no tiene nada que ver con el otro problema.
Te agradecería más de lo que te agradezco ahora, si pudieras resolverlo porque tengo 2 ejercicios más parecidos a estos y necesito un ejercicio bien hecho para tener una base de como realizar los otros, y no estar molestando tanto Muchas gracias por responder! Saludos! Enviado desde mi ST25i usando Tapatalk 2 Título: Re: Duda-- problema con ejercicio en batch Publicado por: Eleкtro en 21 Septiembre 2013, 08:27 am Podrías ordenar los números por el método burbuja, pero es una técnica "avanzada" y sabrían que el code no lo has hehco tu, además como estás empezando tampoco podrías explicar mucho lo que hace, así que te muestro una manera de hacerlo mediante condicionales:
Código: @Echo OFF Título: Re: Re: Re: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 22 Septiembre 2013, 06:40 am Podrías ordenar los números por el método burbuja, pero es una técnica "avanzada" y sabrían que el code no lo has hehco tu, además como estás empezando tampoco podrías explicar mucho lo que hace, así que te muestro una manera de hacerlo mediante condicionales: Muchas gracias!!! A los dos por la gran ayuda ahora llegó a mi casa y lo pongo en práctica y veo si hay algo que no me queda claro y les pregunto. Saludos!!!Código: @Echo OFF Enviado desde mi ST25i usando Tapatalk 2 Título: Re: Re: Re: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 22 Septiembre 2013, 07:24 am Muchas gracias!!! A los dos por la gran ayuda ahora llegó a mi casa y lo pongo en práctica y veo si hay algo que no me queda claro y les pregunto. Saludos!!! Enviado desde mi ST25i usando Tapatalk 2 Aca una duda amigo, esta parte del codigo no me quedo clara Código: Set /A "Big=-1" primero se puede cambiar los nombres de Big, mid y low? y porque se le asicnas el valor -1 ? Título: Re: Re: Re: Duda-- problema con ejercicio en batch Publicado por: Eleкtro en 22 Septiembre 2013, 07:41 am se puede cambiar los nombres de Big, mid y low? Claro, puedes nombrarlas de la manera que prefieras.porque se le asicnas el valor -1 ? Le puse un valor negativo "-1" como podría haberle puesto un "0" o absolutamente nada, esas tres lineas las escribí para hacer más legible el código dejando constancia del nombre de las variables que se iban a usar en el resto del código. Y también porque considero que es una buena costumbre declarar las variables en la cabecera de un código y al mismo tiempo asignarle un valor inicial a cada variable, un valor nulo por ejemplo, aunque esto en Batch no se tiene casi en cuenta y tampoco tiene mucha importancia, para ser sinceros puedes eliminar las tres lineas de esas variables y el code seguirá funcionando... pero en otros lenguajes es conveniente hacer lo que acabo de comentar para prevenir posibles errores. Saludos Título: Re: Re: Re: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 23 Septiembre 2013, 02:01 am Claro, puedes nombrarlas de la manera que prefieras. Le puse un valor negativo "-1" como podría haberle puesto un "0" o absolutamente nada, esas tres lineas las escribí para hacer más legible el código dejando constancia del nombre de las variables que se iban a usar en el resto del código. Y también porque considero que es una buena costumbre declarar las variables en la cabecera de un código y al mismo tiempo asignarle un valor inicial a cada variable, un valor nulo por ejemplo, aunque esto en Batch no se tiene casi en cuenta y tampoco tiene mucha importancia, para ser sinceros puedes eliminar las tres lineas de esas variables y el code seguirá funcionando... pero en otros lenguajes es conveniente hacer lo que acabo de comentar para prevenir posibles errores. Saludos Haaaa ahora si me quedo claro, osea da lo mismo ponerle un valor negativo o nulo como 0, en todo caso como dices es solo para prolijidad. Tambien ya descubri que podia ponerle a big, mid, low cualquier nombre :). Ahora q lo cache bien es super fasil xD, en el caso de que me pidan hacerlo con 4 numeros tengo que agregar un parrafo mas de condisiones y otra set/p para que funcione? Título: Re: Re: Re: Duda-- problema con ejercicio en batch Publicado por: Eleкtro en 23 Septiembre 2013, 04:57 am Ahora q lo cache bien es super fasil xD, en el caso de que me pidan hacerlo con 4 numeros tengo que agregar un parrafo mas de condisiones y otra set/p para que funcione? Si, además de eso debes agregar la condición de la 4ª variable al resto de comparaciones (low, mid, big), pero como te comenté al principio, existen otras técnicas más profesionales, si quieres impresionar a tu profesor (o quien sea xD) puedes ordenar los números por el método burbuja: Google + Batch Bubble sort (http://www.google.com/search?q=batch+bubble+sort&ie=utf-8&oe=utf-8&lr=lang_en) Otra alternativa igual de efectiva sería: 1. Contar la cantidad de dígitos de los números para obtener el string más largo. 2. Agregar un "0" a la izquierda las veces que sean necesarias al resto de números hasta que tengan la misma longitud de dígitos que el número más largo. 3. Ordenar los números mediante Batch usando el comando Sort con la columna por defecto (1). Saludos. Título: Re: Duda-- problema con ejercicio en batch Publicado por: estebankpo15 en 23 Septiembre 2013, 05:44 am jaja, al profesor jaja. El metodo burbuja parece ya muy avanzado como dices, pero el segundo el de contar los digitos para saber el mas alto y el orden voy a ver si consigo aserlo de esa manera y investigare. Muchas gracias por la ayuda! ;-)
|