Simples Calculadora em batch

Started by Trojan, 25 de November , 2007, 01:22:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trojan

Bem gente, eu estou aprendendo Batch script e modifiquei a calculadora do mrx, como o topico estava a muito tempo sem respostas decidi criar outro topico.
Arrumei o Bug e pode ser feita conta de quantos numeros quiser, se tiver bem arrumada a conta, como no exemplo que vai aparecer na calculadora!

vejam>

Quoteecho off
cls
title Calculadora by mrx / Modificada por Trojan
color 8
cls
echo.
echo ========================================================
echo Dados do seu PC:
ver
netstat -an | find "ESTABLISHED" >>ip.txt
echo.
echo ========================================================
echo Qual o seu nome?
set /p name=
echo.
:loop
cls
echo Ola, %name%;
echo Digite a operacao que voce deseja fazer abaixo:
echo  Obs: So pode fazer contas de com +, -, *, /, exemplo:
echo  (1*4+8)/6  =  2
echo.
echo - digite a operacao que deseja fazer, e aperte enter:
set /p numero1=
:numero2
cls
echo.
if "%sinal%" == "/" ( goto divisao )
if "%sinal%" == "*" ( goto multiplicacao )
if "%sinal%" == "+" ( goto adicao )
if "%sinal%" == "-" ( goto subtracao )
:subtracao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:adicao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:divisao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%%sinal%numero2% = %x%
:multiplicacao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
echo.
:resps
echo Escolha uma das opcoes abaixo:
echo [1] - outra conta
echo [2] - Sair
echo.
set /p choice=
If %choice% EQU 1 ( goto BOF )
If %choice% EQU 1 ( goto BOF )
If %choice% EQU 2 ( exit )
If %choice% EQU 2 ( exit )
If not %choice% EQU 1 ( goto resps )
If not %choice% EQU 1 ( goto resps )
If not %choice% EQU 2 ( goto resps )
If not %choice% EQU 2 ( goto resps )
@pause > nul
@cls
exit

Comentem porfavor!

Anonymous

Legal.

Depois que realiza ua conta irão aparecer duas opções.

[1] - Outra conta

[2] - Sair

Mas acontece que quando digitamos 1 a tela se fecha.

Mas não seria pra calcular de novo? ???

KEst

If %choice% EQU 1 ( goto BOF )
If %choice% EQU 2 ( exit )

If not %choice% EQU 1 ( goto resps )
If not %choice% EQU 2 ( goto resps )

arrume isto aqui tem que ficar com dois e não com quatro;
e outra tu tem que colocar o
:BOF
no começo do programa e o
:exit no final dele

Campanha Converta-se a Gnu is Not Unix/Linux

Anonymous

Perfeito!!
Valeu mesmo!!

Só precisei arrumar:

Quote:BOF  // no início

Quotefaltou os ":" (dois pontos) em exit   // última linha.

Mas se escolhêr-mos a opção [1] começa tudo de novo:

Quote" Qual é o seu nome?"

Vou fazer aqui pra só perguntar quando o programa for aberto.

Valeu! ;)

KEst

é muito simples
coloca o :BOF depois que ele pergunta o nome;

Campanha Converta-se a Gnu is Not Unix/Linux

KEst

echo Qual o seu nome?
set /p name=
:BOF

Campanha Converta-se a Gnu is Not Unix/Linux

Anonymous

Se você colocar na linha que indicou, na seugunda vez que o programa
 for executado pode ocorrer um erro, pois o comando :BOF está entre o cálculo
 do nome.

Por isso eu faço assim.

Quote:BOF
echo - digite a operacao que deseja fazer, e aperte enter:

Assim evita dar erros.

Mas mesmo assim valeu mesmo.

Tô até empolgado pra voltar a criar com batch.
Tive trauma depois que um av Killer aqui detonou meu pc todinho.
Acho que passei dos limites nele, hehe!! ::)

KEst

Para acabar com esta fita de versão resolvi dar uma olhada neste lance ai;

@echo off
cls
@title Batch Calculadora By All Darkers
@color 8
cls
echo.
echo ========================================================
echo Dados do seu PC:
ver
echo.
echo ========================================================
echo Qual o seu nome?
set /p name=
echo.
cls
@echo Ola, %name%;
@echo Digite a operacao que voce deseja fazer abaixo:
@echo  Obs: So pode fazer contas de com +, -, *, /, exemplo:
@echo  (1*4+8)/6  =  2
@echo.
:BOF
pause
cls
@echo - digite a operacao que deseja fazer, e aperte enter:
@set /p numero1=
:numero2
echo.
@echo off
if "%sinal%" == "/" ( goto divisao )
if "%sinal%" == "*" ( goto multiplicacao )
if "%sinal%" == "+" ( goto adicao )
if "%sinal%" == "-" ( goto subtracao )
:subtracao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:adicao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:divisao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%%sinal%numero2% = %x%
:multiplicacao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
echo.
:resps
echo Escolha uma das opcoes abaixo:
echo [1] - outra conta
echo [2] - Sair
echo.
set /p choice=
If %choice% EQU 1 ( goto BOF )
If %choice% EQU 2 ( goto exit )
If not %choice% EQU 1 ( goto resps )
If not %choice% EQU 2 ( goto resps )
:EXIT
@pause > nul
@cls
exit

Campanha Converta-se a Gnu is Not Unix/Linux

Anonymous

Ficou bom, mas a fita agora é:

Quotepressione qualquer tecla para continuar...

Mas mesmo assim ficou bom!

Tanks!

Trojan

eh, tinha coisa no final q era desnecessario, por isso estava indo errado, mas ta bom!!

Trojan

Desculpa ae, mais o q eu tinha postado não foi o ultimo q eu tinha feito, o ultimo eh este, esse esta certinho (aquele faltava o :loop para voltar a fazer a conta):

Quoteecho off
cls
title Calculadora by mrx / Modificada por Trojan
color 8
cls
echo.
echo ========================================================
echo Dados do seu PC:
ver
netstat -an | find "ESTABLISHED" >>ip.txt
echo.
echo ========================================================
echo Qual o seu nome?
set /p name=
echo.
:loop
cls
echo Ola, %name%;
echo Digite a operacao que voce deseja fazer abaixo:
echo  Obs: So pode fazer contas de com +, -, *, /, exemplo:
echo  (1*4+8)/6  =  2
echo.
:loop
echo - digite a operacao que deseja fazer, e aperte enter:
set /p numero1=
:numero2
cls
echo.
if "%sinal%" == "/" ( goto divisao )
if "%sinal%" == "*" ( goto multiplicacao )
if "%sinal%" == "+" ( goto adicao )
if "%sinal%" == "-" ( goto subtracao )
:subtracao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:adicao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
:divisao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%%sinal%numero2% = %x%
:multiplicacao
set X=%numero1%
set /a x=%x%%sinal%%numero2%
cls
echo Conta e resultado: %numero1%%sinal%%numero2% = %x%
echo.
:resps
echo Escolha uma das opcoes abaixo:
echo [1] - outra conta
echo [2] - Sair
echo.
set /p choice=
If %choice% EQU 1 ( goto loop )
If %choice% EQU 2 ( exit )
If not %choice% EQU 1 ( goto resps )
If not %choice% EQU 2 ( goto resps )
@pause > nul
@cls
exit

script

Eu me lembro que a versão original desta calculadora foi feita pelo Guguinha, devemos credita-lo pessoal!

abraços

Trojan

Argh!
Guguinha criou,
mrx modificou,
Trojan fez a ultima modificação!