Ayuda con Batch. [Solucionado]

Iniciado por BlacKGilgamesH, 6 Abril 2010, 19:41 PM

0 Miembros y 1 Visitante están viendo este tema.

BlacKGilgamesH

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.

Código (dos) [Seleccionar]
@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 "*"

leogtz

Lo que debes de hacer:

En una variable ir concatenando los asteriscos:

Código (dos) [Seleccionar]
@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:
Código (dos) [Seleccionar]
@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:

Código (dos) [Seleccionar]
@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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

BlacKGilgamesH

Gracias, ya esta solucionado, me sirvio.