Test Foro de elhacker.net SMF 2.1

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:
   
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 (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
numero = raw_input("Introduce un numero>")
lista = []
total = "0"
x = 0
for digito in numero:
lista.append(digito)
if int(digito) % 2 == 0:
total += digito
lista.sort()
invertido = 0
numero2 = int(numero)
while numero2>0:
   invertido = invertido * 10 + numero2 % 10
   numero2 /= 10
print "El invertido es: " + str(invertido)
print "El menor es: " + lista[0]
print "El mayor es: " + lista[len(lista)-1]
print "Los digitos pares son: " + total



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 (dos) [Seleccionar]
@ECHO OFF
SETlocal enabledelayedexpansion
SET /P N=INTRODUCE EL NUMERO:
SET /A MIN=9
SET /A MAX=0
SET NUM=0
:LOOP
call set CHAR=%%N:~%NUM%,1%%%
set /a NUM+=1
IF "%CHAR%" EQU "" (GOTO TERMINAR)
IF 1%CHAR% LSS 1%MIN% (SET /A MIN = %CHAR%)
IF 1%CHAR% GTR 1%MAX% (SET /A MAX = %CHAR%)
SET RN=%CHAR%%RN%
SET /A ISP= %CHAR% %% 2
IF %ISP% == 0 (CALL SET PARES=%PARES%%CHAR%)
GOTO LOOP
:TERMINAR
ECHO REVSTR:%RN% MIN:%MIN% MAX:%MAX% PARES:%PARES%
pause


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
Cita de: 79137913 en  7 Mayo 2012, 19:43 PM
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)


::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:


@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

@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