script [RESOLVIDO]

1. script [RESOLVIDO]

marli
marlirodrigues

(usa Outra)

Enviado em 07/10/2016 - 16:34h

Boa tarde

preciso finalizar estes dois scripts e não consigo, será que podem me ajudar a verificar o que está errado?
No aguardo.

Marli

Utilizando a estrutura de repetição until crie um script que leia uma quantidade indefinida de números, caso seja digitado um número menor que 100 imprima a mensagem “menor”, caso seja digitado um número maior que 100 imprima o número digitado. O Script deve ser encerrado quando for digitado o valor 100. (Valor 0.15)
#!/bin/bash
clear
i="0"
until [$i -lt 100];
do
echo $i
i= $ ((i+1))
echo "menor"
fi
done

3) Utilizando a estrutura de repetição while e os comandos break e continue crie um script que leia uma quantidade indefinida de números, caso seja digitado um número par menor que 100 não imprima nada, caso seja digitado um número par maior que 100 imprima o número digitado, caso seja digitado um número ímpar imprima o número multiplicado por dois. O Script deve ser encerrado quando for digitado o valor 100. (Valor 0.15)
#!/bin/bash
clear
for i in 20 106 5;
do echo $i
while true;
do
read i
if [$i=par -lt 100]
then
continue
fi
if [$i=par -gt 100]
then
echo "Núemro: $i"
fi
ir [$i= ímpar $i * $2 ]
then
echo "Omúltiplo é: $i"
fi
if (resp== "100" // resp =="100)
then
break
fi
done




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/10/2016 - 21:39h

marlirodrigues escreveu:

Boa noite.
Marcelo Oliver , a primeira rodou legal. Já a terceira não para de rodar, mas me ajudou muito.


Thinomar, na terceira na linha 10 dá erro de sintaxe , expressão condicional , na linha 11 também próximo a then. Mas agradeço muito , deu pra ter uma noção. Vou tentar ver se consigo corrigir.
Tenho que agradecer muito a ambos , pois me ajudaram muito.
Obrigado.


Marli,
Testado aqui, funcionando.... Da o "break", qdo vc digita o Nº 100.
Só alterei a "posição dos comandos", fica mais fácil entender...

#!/bin/bash
tput clear
while : ;do
read -p "INFORME O NUMERO: " N
if ((N != 100));then #SE DIFERENTE DE 100, CONTINUA
(( ((N>100)) && ((($N%2)==0)) )) && echo -e "NUMERO: $N"
((($N%2)==1)) && echo -e "NUMERO: $((N*2))"
continue
else break #SENÃO, BREAK
fi
done


att.:
Marcelo Oliver

3. Re: script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/10/2016 - 18:52h

[quote]marlirodrigues escreveu:

Boa tarde

preciso finalizar estes dois scripts e não consigo, será que podem me ajudar a verificar o que está errado?
No aguardo.

Marli

Utilizando a estrutura de repetição until crie um script que leia uma quantidade indefinida de números, caso seja digitado um número menor que 100 imprima a mensagem “menor”, caso seja digitado um número maior que 100 imprima o número digitado. O Script deve ser encerrado quando for digitado o valor 100. (Valor 0.15)
#!/bin/bash
clear
i="0"
until [$i -lt 100];
do
echo $i
i= $ ((i+1))
echo "menor"
fi
done
----------------------------------------------------------------------------
Boa noite Marli.
Resposta do 1º exercício.
#!/bin/bash
tput clear
N="0"
until [ $N -eq 100 ];do
read -p "INFORME O NUMERO: " N
((N<100)) && echo -e "\"Menor\"" || echo -e "$N"
done

----------------------------------------------------------------------------
Resposta do 2º Exercício.
#!/bin/bash
CV="\e[0;38;5;118m"
CA="\e[1;38;5;11m"
CF="\e[m"
tput clear
while : ;do
read -p "INFORME O NUMERO: " N
(( ((N>100)) && ((($N%2)==0)) )) && echo -e ""$CA"$N"$CF"" #SE Nº É PAR E MAIOR QUE 100, MOSTRA Nº
(( ((($N%2)==1)) )) && echo -e ""$CV"$((N*2))"$CF"" # SE Nº É IMPAR, MOSTRA Nº*2
[ $N != 100 ] && continue || break #SE Nº É DIFERENTE DE 100, CONTINUA. SE É IGUAL, PARA.
done


A cor é BRINDE . . . :)
OBS.: Se as RESPOSTAS atenderam a sua necessidade, marque o tópico como RESOLVIDO.
Se quiser retribuir . . . Marque a minha RESPOSTA como a MELHOR . . . :)
Att
Marcelo Oliver


4. Re: script

thinomar
thinomar

(usa Linux Mint)

Enviado em 07/10/2016 - 19:03h

Primeiro:
#!/bin/bash

echo "Insira numeros para verificar se sao maiores ou menores que 100. Digite 100 para sair."
read -p "Numero: " numero

until [ $numero -eq 100 ]
do
if [ $numero -lt 100 ]
then
echo "Menor"
elif [ $numero -gt 100 ]
then
echo "Maior"
else

read -p "Numero: " numero
done


Segundo:
#!/bin/bash

echo "Insira um numero"

while true
do
read -p "Numero: " numero

if [[ $((numero % 2)) -eq 0 && $numero -lt 100 ]]
then
continue
fi

if [[ $((numero % 2)) -eq 0 && $numero -gt 100 ]]
then
echo $numero
continue
fi

if [ $((numero % 2)) -ne 0 ]
then
echo $((numero * 2))
continue
fi

if [ $numero -eq 100 ]
then
break
fi
done


Creio que você não entendeu o enunciado muito bem, visto o código que você mandou. Sendo assim, sugiro que sempre leia o enunciado com atenção e tente entendê-lo o melhor possível.

No segundo script soh usei varios ifs ao inves de if/elif/else, pra utilizar os continues, como o enunciado pede. Na vida real o correto é utilizar if / elif / else.

Se não entender alguma coisa nos scripts, diga.


5. script

marli
marlirodrigues

(usa Outra)

Enviado em 07/10/2016 - 21:31h

Boa noite.

Marcelo Oliver , a primeira rodou legal. Já a terceira não para de rodar, mas me ajudou muito.


Thinomar, na terceira na linha 10 dá erro de sintaxe , expressão condicional , na linha 11 também próximo a then. Mas agradeço muito , deu pra ter uma noção. Vou tentar ver se consigo corrigir.




Tenho que agradecer muito a ambos , pois me ajudaram muito.


Obrigado.



6. Re: script

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/10/2016 - 22:43h

Resolvi tentar uma versão diferente:

Primeiro exercício que aparece:

#!/bin/bash

clear

i=0

until [ $i -eq 100 ]
do

read -p "Digite um numero: " i
j=$(echo $i | sed -r "s/^\-?[0-9]+//g")

if [ "$i" == "" -o "$j" != "" ]
then
i=0
continue
fi

if [ $i -lt 100 ]
then
echo "Menor."
elif [ $i -gt 100 ]
then
echo $i
fi

done


Segundo exercício que aparece com número 3:

#!/bin/bash

clear

i=0

while true
do

read -p "Digite um numero: " i
j=$(echo $i | sed -r "s/^\-?[0-9]+//g")

if [ "$i" == "" -o "$j" != "" ]
then
i=0
continue
fi

k=$(echo "$i % 2" | bc)

if [ $i -eq 100 ]
then
break
elif [ $i -lt 100 -a $k -eq 0 ]
then
continue
elif [ $i -gt 100 -a $k -eq 0 ]
then
echo $i
elif [ $k -ne 0 ]
then
echo $(echo "$i * 2" | bc)
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



7. script

marli
marlirodrigues

(usa Outra)

Enviado em 08/10/2016 - 01:45h

Resolvido .

Obrigado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts