hola estoy aprendiendo el lenguaje de programacion en BATCH y tengo un inconveniente con la suma de arrays bidimensionales. Como podria solucionarlos?. Este es mi codigo.
@echo off
setlocal enabledelayedexpansion
REM construyendo los arrays:
set /p filas=ingrese el numero de filas:
set /p columnas=ingrese el numero de columnas:
for /l %%i in (0,1,%filas%) do (
for /l %%j in (0,1,%columnas%) do (
set /a num1=!random! %%10
set /a num2=!random! %%10
set array[%%i,%%j]=!num1!
set array2[%%i,%%j]=!num2!
)
)
set array array2
pause
REM SUMA DE ARRAYS
for /l %%i in (0,1,%filas%) do (
for /l %%j in (0,1,%columnas%) do (
set /a suma=%array[%%i,%%j]%+%array2[%%i,%%j]%
set sumarray[%%i,%%j]=%suma%
)
)
set sumarray
pause
exit
Saludos,
- Lo estabas haciendo bien, SetLocal EnableDelayedExpansion permite actualizar variables dentro de bucles For, pero para que esto suceda tienes que usar !variable! en lugar de %variable%, en tu caso sigues utilizando %variable% en tus bucles de suma de variables.
- En Batch puro no hay Arrays, tu idea en realidad crea variables para cada valor de tu "Array" simulándolo.
- A mí me funciona lo siguiente, fíjate que he reemplazado % por ! siempre que voy a actualizar variables dentro del bucle:
@echo off
setlocal enabledelayedexpansion
REM construyendo los arrays:
set /p filas=ingrese el numero de filas:
set /p columnas=ingrese el numero de columnas:
for /l %%i in (0,1,%filas%) do (
for /l %%j in (0,1,%columnas%) do (
set /a num1=!random! %% 10
set /a num2=!random! %% 10
set array[%%i,%%j]=!num1!
set array2[%%i,%%j]=!num2!
)
)
set array array2
pause
REM SUMA DE ARRAYS
for /l %%i in (0,1,%filas%) do (
for /l %%j in (0,1,%columnas%) do (
set /a suma=!array[%%i,%%j]!+!array2[%%i,%%j]!
set sumarray[%%i,%%j]=!suma!
)
)
set sumarray
pause
muchas gracias!