comando while e if

1. comando while e if

Fabio Sena
fabiosena

(usa Ubuntu)

Enviado em 30/10/2016 - 17:29h

olá.
Alguém pode ajudar, como posso usar o comando while e if juntos, para fazer um contador.
tenho 3 problemas, nos quais resolvi de forma simples, utilizei apenas o while, por mim esta bom porem acredito que dá para melhorar.
segue os problemas.

1 - Desenvolva um programa que mostre os números de 1 a 50. Ao chegar no número 25 dar a seguinte mensagem “ chegou na metade” e depois continue contando até chegar no numero 50.
#!/bin/bash
x=0
y=26
while [ $x -le 25 ]
do
echo "$x"
x=$(($x+1))
done
echo "chegou na metade"
#if [ $x -eq 26 ]; then
while [ $y -le 50 ]
do
echo "$y"
y=$(($y+1))
done

2 - Elabore um programa que mostre os números de 1 a 100 sendo que a partir do numero 50 seja incrementado e apresentado de dois em dois.
#!/bin/bash
x=0
y=52
while [ $x -le 50 ]
do
echo "$x"
x=$(($x+1))
done
#if [ $y -eq 52 ]; then

3 - Elabore um programa que conte de 150 até 1 e mostre em ordem decrescente os números entre 100 e 50
#!/bin/bash
x=150
while [ $x -gt 0 ]
do
echo "$x"
x=$(($x - 1))
done

obrigado


  


2. Re: comando while e if

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/10/2016 - 17:35h

Por que não

#!/bin/bash 

x=0

while [ $x -le 50 ]
do

echo "$x"
x=`expr $x + 1`

if [ $x -eq 25 ]
then
echo "chegou na metade"
fi

done


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: comando while e if

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/10/2016 - 17:38h

Por que não

#!/bin/bash 

x=0

while [ $x -le 100 ]
do

echo "$x"

if [ $x -lt 50 ]
then
x=`expr $x + 1`
else
x=`expr $x + 2`
fi

done


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: comando while e if

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/10/2016 - 17:40h

fabiosena escreveu:

3 - Elabore um programa que conte de 150 até 1 e mostre em ordem decrescente os números entre 100 e 50
#!/bin/bash
x=150
while [ $x -gt 0 ]
do
echo "$x"
x=$(($x - 1))
done

obrigado


Esse não deu para entender porque de 150 a 1 já é decrescente.
Como é?

De 150 a 101 é crescente? De 100 a 50 é decrescente? De 49 a 1 é crescente de novo?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: comando while e if

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/10/2016 - 19:11h

============================================================================
Boa tarde Fabio, vamos lá!
01- Laço for
for ((x=1;x<=50;x++));do
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
done

Obs.:
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
É a mesma coisa que:
if [ $x -eq 25 ];then
echo "$x: Chegou na Metade!"
else
echo "$x"
fi

-------------------------------------------------------------------------------------------------------------------------
2 - Laço "for"
for ((x=1;x<=100;x++))do
((x<=50)) || x=$((x+1))
echo $x
done
-------------------------------------------------------------------------------------------------------------------------
2 - "Laço" while
x=1
while ((x<=100));do
((x>50)) && x=$((x+1)) #Se x for > que 50, faz "x=x+1"
echo "$x"
let x++
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "for"
for ((x=150;x>0;x--));do
((x<=100&&x>=50)) && echo "$x" #Se x e <= que 100 E x >= que 50, mostra X
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "while"
x=150
while ((x>0));do
((x<=100&&x>=50)) && echo $x
let x--
done

É isso!!!
Se a resposta foi satisfatória e esclarecedora,
marque a como A MELHOR.....


Att.:
Marcelo Oliver[/quote]



6. Re: comando while e if

Fabio Sena
fabiosena

(usa Ubuntu)

Enviado em 30/10/2016 - 20:55h

listeiro_037 escreveu:

fabiosena escreveu:

3 - Elabore um programa que conte de 150 até 1 e mostre em ordem decrescente os números entre 100 e 50
#!/bin/bash
x=150
while [ $x -gt 0 ]
do
echo "$x"
x=$(($x - 1))
done

obrigado


Esse não deu para entender porque de 150 a 1 já é decrescente.
Como é?

De 150 a 101 é crescente? De 100 a 50 é decrescente? De 49 a 1 é crescente de novo?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



Olá listeiro_037
Obrigado pela ajuda.
Vou ser sincero, nem eu entendi. Na verdade entendi da mesma forma que vc. Acredito que o professor tenha se equivocado quando fez esse exercicio.



7. Re: comando while e if

Fabio Sena
fabiosena

(usa Ubuntu)

Enviado em 30/10/2016 - 21:05h

listeiro_037 escreveu:

Por que não

#!/bin/bash 

x=0

while [ $x -le 50 ]
do

echo "$x"
x=`expr $x + 1`

if [ $x -eq 25 ]
then
echo "chegou na metade"
fi

done


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



olá listeiro_037

obrigado pela ajuda.
Não estou sabendo usar comandos diferentes, junto com outros comandos.



8. Re: comando while e if

Fabio Sena
fabiosena

(usa Ubuntu)

Enviado em 30/10/2016 - 21:09h

msoliver escreveu:

fabiosena escreveu:

olá.
Alguém pode ajudar, como posso usar o comando while e if juntos, para fazer um contador.
tenho 3 problemas, nos quais resolvi de forma simples, utilizei apenas o while, por mim esta bom porem acredito que dá para melhorar.
segue os problemas.

1 - Desenvolva um programa que mostre os números de 1 a 50. Ao chegar no número 25 dar a seguinte mensagem “ chegou na metade” e depois continue contando até chegar no numero 50.
#!/bin/bash
x=0
y=26
while [ $x -le 25 ]
do
echo "$x"
x=$(($x+1))
done
echo "chegou na metade"
#if [ $x -eq 26 ]; then
while [ $y -le 50 ]
do
echo "$y"
y=$(($y+1))
done

2 - Elabore um programa que mostre os números de 1 a 100 sendo que a partir do numero 50 seja incrementado e apresentado de dois em dois.
#!/bin/bash
x=0
y=52
while [ $x -le 50 ]
do
echo "$x"
x=$(($x+1))
done
#if [ $y -eq 52 ]; then

3 - Elabore um programa que conte de 150 até 1 e mostre em ordem decrescente os números entre 100 e 50
#!/bin/bash
x=150
while [ $x -gt 0 ]
do
echo "$x"
x=$(($x - 1))
done
obrigado

============================================================================
Boa tarde Fabio, vamos lá!
01- Laço for
for ((x=1;x<=50;x++));do
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
done

Obs.:
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
É a mesma coisa que:
if [ $x -eq 25 ];then
echo "$x: Chegou na Metade!"
else
echo "$x"
fi

-------------------------------------------------------------------------------------------------------------------------
2 - Laço "for"
for ((x=1;x<=100;x++))do
((x<=50)) || x=$((x+1))
echo $x
done
-------------------------------------------------------------------------------------------------------------------------
2 - "Laço" while
x=1
while ((x<=100));do
((x>50)) && x=$((x+1)) #Se x for > que 50, faz "x=x+1"
echo "$x"
let x++
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "for"
for ((x=150;x>0;x--));do
((x<=100&&x>=50)) && echo "$x" #Se x e <= que 100 E x >= que 50, mostra X
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "while"
x=150
while ((x>0));do
((x<=100&&x>=50)) && echo $x
let x--
done

É isso!!!
Se a resposta foi satisfatória e esclarecedora,
marque a como A MELHOR.....


Att.:
Marcelo Oliver





ola Marcelo,

Obrigado, pela ajuda.



9. Re: comando while e if

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/10/2016 - 21:21h

fabiosena escreveu:

msoliver escreveu:

fabiosena escreveu:

olá.
Alguém pode ajudar, como posso usar o comando while e if juntos, para fazer um contador.
tenho 3 problemas, nos quais resolvi de forma simples, utilizei apenas o while, por mim esta bom porem acredito que dá para melhorar.
segue os problemas.

1 - Desenvolva um programa que mostre os números de 1 a 50. Ao chegar no número 25 dar a seguinte mensagem “ chegou na metade” e depois continue contando até chegar no numero 50.
#!/bin/bash
x=0
y=26
while [ $x -le 25 ]
do
echo "$x"
x=$(($x+1))
done
echo "chegou na metade"
#if [ $x -eq 26 ]; then
while [ $y -le 50 ]
do
echo "$y"
y=$(($y+1))
done

2 - Elabore um programa que mostre os números de 1 a 100 sendo que a partir do numero 50 seja incrementado e apresentado de dois em dois.
#!/bin/bash
x=0
y=52
while [ $x -le 50 ]
do
echo "$x"
x=$(($x+1))
done
#if [ $y -eq 52 ]; then

3 - Elabore um programa que conte de 150 até 1 e mostre em ordem decrescente os números entre 100 e 50
#!/bin/bash
x=150
while [ $x -gt 0 ]
do
echo "$x"
x=$(($x - 1))
done
obrigado

============================================================================
Boa tarde Fabio, vamos lá!
01- Laço for
for ((x=1;x<=50;x++));do
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
done

Obs.:
((x==25)) && echo "$x: Chegou na Metade!" || echo "$x"
É a mesma coisa que:
if [ $x -eq 25 ];then
echo "$x: Chegou na Metade!"
else
echo "$x"
fi

-------------------------------------------------------------------------------------------------------------------------
2 - Laço "for"
for ((x=1;x<=100;x++))do
((x<=50)) || x=$((x+1))
echo $x
done
-------------------------------------------------------------------------------------------------------------------------
2 - "Laço" while
x=1
while ((x<=100));do
((x>50)) && x=$((x+1)) #Se x for > que 50, faz "x=x+1"
echo "$x"
let x++
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "for"
for ((x=150;x>0;x--));do
((x<=100&&x>=50)) && echo "$x" #Se x e <= que 100 E x >= que 50, mostra X
done
-------------------------------------------------------------------------------------------------------------------------
3 - Laço "while"
x=150
while ((x>0));do
((x<=100&&x>=50)) && echo $x
let x--
done

É isso!!!
Se a resposta foi satisfatória e esclarecedora,
marque a como A MELHOR.....


Att.:
Marcelo Oliver





ola Marcelo,

Obrigado, pela ajuda.

==========================================
Quanto ao 3º exercício, apesar da pergunta estar "mal formulada",
entendi que é para "imprimir" somente os Nºs entre 100 e 50, inclusive.

att
Marcelo Oliver



10. Re: comando while e if

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/10/2016 - 21:34h

3º Exercício, em todo caso

#!/bin/bash 

x=150

while [ $x -gt 0 ]
do

echo "$x"

if [ $x -le 100 -a $x -ge 50 ]
then
echo $x
fi

x=`expr $x - 1`

done



----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts