Hola, soy nuevo aqui en el foro, pero llevo programando en batch un buen tiempo, pero tengo un problema, en el siguiente codigo, pide al usuario un numero, por ejemplo 5, y tendria que mostrar algo asi.
+
++
+++
++++
+++++
osea, que haga X cantidad de filas con cada vez un "+" más, y lo que hace es:
+
+
+
+
+
Pero no se que este mal en este codigo.
@echo off
title Piramide Astericos
color f0
cls
echo.Numero de filas de la piramide?
set/p aster=
set num=1
cls
:ini2
call:aster1 %num%
if %num%==%aster% (
goto fin1
) else (
set/a num=%num%+1
goto ini2
)
:fin1
pause>nul
exit
:aster1
echo.*
De antemano gracias.
PD:En el codigo los "+" son "*"
Lo que debes de hacer:
En una variable ir concatenando los asteriscos:
@echo off
:code
set /p "lineas=Ingresa un numero : "
if not defined lineas (goto:code)
set "string=*"
:loop
echo %string%
set "string=%string%*"
set /a "cont+=1"
if %cont% neq %lineas% (goto:loop)
set /p "="
exit /b 0
No tiene caso que te compliques tanto con tantos gotos y etiquetas.
Incluso podrías con FOR:
@echo off
setlocal enabledelayedexpansion
:code
set /p "lineas=Ingresa un numero : "
if not defined lineas (goto:code)
set "string=*"
for /l %%_ in (1, 1, %lineas%) do (
echo !string!
set "string=!string!*"
)
set /p "="
exit /b 0
Aquí otra menera de como se haría por ejemplo en C:
@echo off
rem Piramide de 5 lineas.
for /l %%i in (1, 1, 5) do (
for /l %%j in (1, 1, %%i) do (
< nul set /p "=*"
)
echo.
)
pause>nul
exit /b 0
Cualquier duda aquí estamos.
Gracias, ya esta solucionado, me sirvio.