viernes, 19 de diciembre de 2014

Ejercicios Simples

Con los comandos ya presentados podemos hacer un montón de cosas. Ahora jugaré un poco con ellos e inventaré algunas cosas, ¡a ver que tal sale!


Lo primero que se me vino a la mente son los ejercicios que nos hacen en informática cuando empiezas con Java. Son unos calculos matemático muy básico y a medida que avanzaos se les agrega más complejidad.

Partiré con la suma y resta:

   
        @Echo off
       
        REM Lo primero que se debe hacer para sumar o restar es crear una o más variables
        REM que guarden resultados o los dígitos a evaluar.
        REM El comando Set tiene permitido guardar y evaluar números enteros, hexadecimales y octales.
       
        Set numero_entero_1=128
        Set numero_entero_2=896
       
        REM Ahora necesitamos un comando que evalue y los sume.
        REM En este mismo comando "Set" tenemos un modificador ("/A") que nos permite hacer eso.
        REM Usaremos "Set /A" para realizar la evaluacón, pero la guardaremos en otra variable.
       
        Set /A suma=%numero_entero_1% + %numero_entero_2%
        Set /A resta=%numero_entero_1% - %numero_entero_2%
       

        REM Ya tenemos la suma y resta de 128 y 896, pero necesitamos un comando que los saque por pantalla.
        REM Aquí entra "Echo" y "Pause". Este último es para que la consola no se cierre luego de completar la acción.
       
        Echo La suma de %numero_entero_1% y %numero_entero_2% es : %suma%
        Echo. (Lo que hace "echo" aquí es un salto de línea, y solo poniendo un punto delante del comando lo hace)
        Echo La resta de %numero_entero_1% y %numero_entero_2% es: %resta%
        Pause
       
Para la multiplicación y división es lo mismo, pero encontramos una piedra de tope en la división ya que CMD trabaja sólo con números enteros.

        @Echo off
       
        REM Al igual que en el ejercicio anterior lo primero es crear las variables, pero esta vez harémos
        REM que el usuario ingrese los números a evaluar usando el modificador "/P" en Set.
       
        Set /P numero_entero_1=Ingresa el primero numero:
        Set /P numero_entero_2=Ingresa el segundo numero:
       
        REM Ahora los evaluamos usando "Set /A" nuevamente.
       
        Set /A multiplicacion=%numero_entero_1% * %numero_entero_2%
        Set /A division=%numero_entero_1% / %numero_entero_2%
       
        REM Nuevamente usaremos "Echo" para sacar los resultados en pantalla.
       
        Echo La multiplicacion de %numero_entero_1% y %numero_entero_2% es : %multiplicacion%
        Echo.
        Echo la division de %numero_entero_1% y %numero_entero_2% es : %division%
        Pause
       
    Nota: A causa de la limitación de CMD al dividir, éste sólo nos mostrará el valor entero.
        Ejemplo: "1000 / 14 = 74,42" y la consola nos mostrará "1000 / 14 = 74"
       
Existen algunas formas de hacer que se muestren algunos decimales por ejemplos esta:

        @Echo off
        MODE con cols=46 lines=20
        Title Division
        :Inicio
        Echo numero 1:
        Set /P num1=
        Set decimales=%num1%
        Echo numero 2:
        Set /P num2=
        Set decimales2=%num2%

        REM Desglosado
        Echo.
        Echo.

        Set /A entero=%num1%/%num2%
        Set /A decimales*=10000
        Set /A decimales2*=100
        Set /A decimal=%decimales%/%decimales2%
        For /F "tokens=* delims=%entero%" %%a IN ("%decimal%") DO (
        Set decimal2=%%a
        )
        Echo Entero=%entero%
        Echo Decimal=%decimal2%
        Echo.
        Echo
Resultado: %entero%,%decimal2%
       
    Nota: Esta forma funciona sólo con numeros enteros positivos. Además solo puede ser la division de un número mayor por uno menos.
          A base de esto se puede mejorar mucho el código. Simplemente lo que hace es "agrandar" los números para poder tener más dígitos positivos
          y así poder trabajar con ellos pasándolos a decimales.
         
Otros ejercicios sin evaluaciones matemáticas podrían ser relacionados al mismo sistema operativo:

        @Echo off & Title Buscador de objetos
        Setlocal enabledelayedexpansioin
        :Inicio
        Cls
        CD
%userprofile%
        For /D %%a IN (*) DO (Echo %%a)
        Echo --------------------- Directorios disponibles---------------------
        Echo.
        Echo.
        Echo
Escriba el directorio que desee recorrer:
        Set /P opcion=
        CD %opcion%
        If %errorlevel%==1 Goto Inicio
        Echo.
        Echo
Escriba la extension de el(los) archivo(s) a buscar:
        Set /P opcion2=
        Echo.
        Set
count=0
        For /R %%b IN (*.%opcion2%) DO (
        Set encontrado=%%b
        For /F "tokens=3-13 delims=\" %%c IN ("%%b") DO (
        Set encontrados=%%c   %%d   %%f   %%g   %%h   %%i   %%j   %%k   %%l 
        )
        Call:Funcion_1
        )
        Echo Total archivos encontrados:%count%
        Pause
        Goto
Inicio

        :Funcion_1
        Echo Encontrado: %encontrados%
        Set /A count=%count%+1
       
Ahora al revez, primero digo lo que el programa debe mostrar y luego doy el código que lo realiza.
       
        -Programa que lea dos números ingresados por el usuario y muestre por pantalla el mayor de ambos.
        -Programa que lea tres números ingresados por el usuario y muestre el menor de los tres.
        -Programa que lea 5 números ingresados por el usuario y muestre los que son pares.
        -Programa que muestra la tabla de multiplicar hasta 10 de un número ingresado por el usuario.
        -Programa que muestre por pantalla el mensaje escrito por el usuario con la respectiva fecha y hora.

       
        NOTA: Todo se puede realizar con los comandos básico ya mencionados.
              ¡Respuestas en el próximo post!

No hay comentarios.: