Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Eleкtro en 5 Mayo 2012, 08:18 am



Título: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Eleкtro en 5 Mayo 2012, 08:18 am
Aquí pueden comentar todo lo que quieran, sus dudas, avances o soluciones acerca del siguiente reto:

Reto iniciado por Puntoinfinito

Reto Nº 2:

Nombre:         Números II (Puntoinfinito)
Dificultad:       4/10
Objetivo:        Consiste en hacer un batch que al poner un numero neutral luego te diga los siguientes datos:
    
  • El numero que has puesto
  • Como seria invertido
  • El numero mayor
  • El menor numero
  • Y finalmente que te diga todos los números pares de la serie

Pistas:            Con la foto creo que os basta.
Ejemplo:
                       (http://i49.tinypic.com/fdf3g6.png)


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Runex en 5 Mayo 2012, 11:47 am
Se puede hacer en python? xD

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. numero = raw_input("Introduce un numero>")
  4. lista = []
  5. total = "0"
  6. x = 0
  7. for digito in numero:
  8. lista.append(digito)
  9. if int(digito) % 2 == 0:
  10. total += digito
  11. lista.sort()
  12. invertido = 0
  13. numero2 = int(numero)
  14. while numero2>0:
  15.    invertido = invertido * 10 + numero2 % 10
  16.    numero2 /= 10
  17. print "El invertido es: " + str(invertido)
  18. print "El menor es: " + lista[0]
  19. print "El mayor es: " + lista[len(lista)-1]
  20. print "Los digitos pares son: " + total
  21.  
  22.  

Solución sucia xD. Sé que solo se puede en batch, pero no he visto la solución y me apetecía hacer retos de estos :)

Un saludo


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Puntoinfinito en 5 Mayo 2012, 22:24 pm
Eis, yo tengo la respuesta en Batch.
¿Le paso a alguien, o no hace falta?

Salu2


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: $Edu$ en 5 Mayo 2012, 22:35 pm
Para que pasarles la solucion? xD la idea es que piensen o pregunten aca y vos los orientas si ves q estan muyyy perdidos


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Puntoinfinito en 5 Mayo 2012, 22:43 pm
No lo digo para pasarle a elektro... xd

Venga va ánimos chicos!
Por cierto, la serie que escribir a de ser infinita :D (para hacerlo más difícil)


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Snows en 7 Mayo 2012, 16:29 pm
Yo tengo una duda, y es que ya se como hacerlo, es decir tengo la idea, pero no se como juzgar cuantos numeros hay, para despues leerlos al reves.

Saludos!


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: 79137913 en 7 Mayo 2012, 19:43 pm
HOLA!!!

Código
  1. @ECHO OFF
  2. SETlocal enabledelayedexpansion
  3. SET /P N=INTRODUCE EL NUMERO:
  4. SET /A MIN=9
  5. SET /A MAX=0
  6. SET NUM=0
  7. :LOOP
  8. call set CHAR=%%N:~%NUM%,1%%%
  9. set /a NUM+=1
  10. IF "%CHAR%" EQU "" (GOTO TERMINAR)
  11. IF 1%CHAR% LSS 1%MIN% (SET /A MIN = %CHAR%)
  12. IF 1%CHAR% GTR 1%MAX% (SET /A MAX = %CHAR%)
  13. SET RN=%CHAR%%RN%
  14. SET /A ISP= %CHAR% %% 2
  15. IF %ISP% == 0 (CALL SET PARES=%PARES%%CHAR%)
  16. GOTO LOOP
  17. :TERMINAR
  18. ECHO REVSTR:%RN% MIN:%MIN% MAX:%MAX% PARES:%PARES%

GRACIAS POR LEER!!!


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Snows en 7 Mayo 2012, 21:36 pm
Ok ya me quedo claro :P

Saludos


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Eleкtro en 8 Mayo 2012, 04:45 am
HOLA!!!
GRACIAS POR LEER!!!

Excelente :)


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: BatchianoISpyxolo en 14 Mayo 2012, 16:20 pm
Funcionamiento:

(http://img215.imageshack.us/img215/782/80212644.png)

Código:
::Batchiano :)
@echo off
setlocal enabledelayedexpansion
set /a i=0
set "pares="
set "invertido="
echo. -Analizar Numero-
set /p numero=Numero:
set /a MAYOR=!numero:~0,1!
set /a MENOR=!numero:~0,1!
:proceso
if "!numero:~%i%,1!" NEQ "" (
set /a value=!numero:~%i%,1!
set invertido=!value!!invertido!
set /a mod=!value! %% 2
if !mod! == 0 (
set pares=!pares!!value!
)
if !value! GTR !MAYOR! (
set /a MAYOR=!value!
) else (
if !value! LSS !MENOR! (
set /a MENOR=!value!
)
)
set /a i+=1
goto proceso
)

echo ^>^> Numero:!numero! ^| Invertido:!invertido! ^| Mayor:!MAYOR! ^| Menor:!MENOR! ^| Pares:!pares!
pause&exit/b


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Binary_Death en 22 Julio 2012, 17:29 pm
Mi solución a este reto:

Código:
@echo off
setlocal enabledelayedexpansion

set/p "num=Cifra >> "

set/a hst=0,lst=9
set "evn_lst=" & set "rev_lst="

for /f "tokens=* eol=" %%_ in (
'"cmd /u /c echo+%num%|more"'
) do (
set "rev_lst=%%_!rev_lst!"
if %%_ GTR !hst! set/a hst=%%_
if %%_ LSS !lst! set/a lst=%%_
set/a pry=%%_ %% 2
if !pry! EQU 0 set "evn_lst=!evn_lst!%%_"
)
more/c<nul
echo: Cifra: %num% ^| Invertido: %rev_lst% ^| Mayor: %hst% ^| Menor: %lst% ^| Pares: %evn_lst%
pause 1>nul & exit

Otro más para la colección. A ver si hoy los termino todos ya  :P


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Meine programmen en 22 Diciembre 2012, 19:56 pm
Pues aqui esta mi solucion

Código:
@ECHO OFF
SetLocal EnableDelayedExpansion
SET /P NUMNAT=¨Numero natural?
echo %NUMNAT%>NUMNAT.bar
FOR %%A IN (NUMNAT.bar) DO (SET /A LONG=%%~zA - 2)
DEL NUMNAT.bar
SET /A LONGMENOS1=%LONG%-1
SET NUMNATINV=
FOR /L %%B IN (0,1,%LONGMENOS1%) DO (SET NUMNATINV=!NUMNAT:~%%B,1!!NUMNATINV: =!
SET NUMNATESP=!NUMNATESP!!NUMNAT:~%%B,1! )
FOR %%C IN (%NUMNATESP%) DO (IF .!NUMMAX!.==.. SET NUMMAX=%%C
IF %%C GEQ !NUMMAX! SET NUMMAX=%%C)
FOR %%D IN (%NUMNATESP%) DO (IF .!NUMMIN!.==.. SET NUMMIN=%%D
IF %%D LEQ !NUMMIN! SET NUMMIN=%%D)
FOR %%E IN (%NUMNATESP%) DO (SET /A MOD=%%E %% 2
IF !MOD!==0 SET PARNUMS=!PARNUMS!%%E )
echo Numero          : %NUMNAT%
echo Numero invertido: %NUMNATINV%
echo Numero menor    : %NUMMIN%
echo Numero mayor    : %NUMMAX%
echo Numeros pares   : %PARNUMS%
pause >nul
exit
A ver que tal lo hice  ;D


Título: Re: [Reto Batch] Números II (Puntoinfinito)
Publicado por: Dankhrat en 7 Marzo 2014, 03:37 am
Hola, soy nuevo en esto, podrían decirme que debo empezar a estudiar, leer para hacer esto, no quiero leer las soluciones, de hecho no las he visto, claro esta si me recomiendan algo por favor sea de forma ordenada, desde lo basico