Pular para o conteúdo

Como resolver esse script

Responder tópico
  • Denunciar
  • Indicar

1. Como resolver esse script

Enviado em 24/11/2011 - 06:58h

Terceira Questão) Escreva um script que receba dois números e retorne todos os números ímpares entre esses dois números.

Quarta Questão) Que mudanças devem ser feitas no laço abaixo:

x=0
while [ $x -lt 10 ]
do
echo "$x \c"
y=$(($x-1))
x=$(($x+1))
while [ $y -ge 0 ] ; do
y=$(($y-1))
echo "$y \c"
done
echo
done

Para que a saída fique dessa maneira:

0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8 9

Responder tópico

2. Re: Como resolver esse script

Enviado em 24/11/2011 - 09:17h

E qual eh a pergunta?

3. Re: Como resolver esse script

Enviado em 24/11/2011 - 10:52h

Terceira questão:

#!/bin/bash
# Script que imprime os números impares no intervalo entre 2 números fornecidos
# Por rai3mb
[ -z "$1" -o -z "$2" ] && echo 'Use: $0 [NUM] [NUM]' && exit

PRIMEIRO=$1
SEGUNDO=$2

#verifica se foram digitados apenas números
if ! echo "$PRIMEIRO $SEGUNDO" | egrep -q '^[0-9]+ [0-9]+$'
then
echo 'Informe apenas números' && exit
fi

# verifica se foram informados números onde há intervalo entre eles
[ $PRIMEIRO -eq $((SEGUNDO - 2)) -o $SEGUNDO -eq $((PRIMEIRO - 2)) ] && echo 'sem intervalo entre eles' && exit

# coleta o maior e o menor valor fonecido, sai do script caso sejam iguais
if [ $PRIMEIRO -gt $SEGUNDO ]; then
MAIOR=$PRIMEIRO && MENOR=$SEGUNDO
elif [ $SEGUNDO -gt $PRIMEIRO ]; then
MAIOR=$SEGUNDO && MENOR=$PRIMEIRO
else
echo "$PRIMEIRO é igual a $SEGUNDO, não há intervalo entre eles!"
exit
fi

# imprime apenas os impares, módulo da divisão diferente de 0
VALOR=$((MENOR+1))
while [ $VALOR -lt $MAIOR ]
do
[ $(expr $VALOR % 2) -ne 0 ] && echo $VALOR
VALOR=$((VALOR+1))
done

4. Re: Como resolver esse script

Enviado em 24/11/2011 - 20:56h

Resolveu?

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder