quarta-feira, 30 de junho de 2010

Shell script para gerar a sequencia de fibonacci até 12

O objetivo desse script foi mais utilizar o conceito de funções, funções recursivas, retorno e passagem por valor para funções em shell script linux

O script pode ser baixado em:
http://danilomatias.net76.net/linguagensDeProgramacao/shellscript/tesfibonaccisimples
Existem duas maneiras de executar ele na console do linux:
Maneira 1:
bash tesfibonaccisimples

Maneira 2 ( passando o termo da sequencia de fibonacci):
bash tesfibonaccisimples 12
O conteúdo do script é:

#!/bin/bash
#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

function fib3(){
local i
if [ $1 -le -1 ]; then
echo -e "\n Erro !! Não existe termo de fibonacci negativo !\n";
else
if [ $1 -ge 13 ]; then
echo -e "\n Erro !! Não é possivel gerar a seqüencia para um número maior que 12 !\n";
else

for (( i=0; i<=$1; i++ ))
do
#x1=fibo $i;
fib2 "$i" ;
echo "$? "
done

fi
fi
}


#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

function fib2(){
local fibs
if [ $1 -le -1 ]; then
echo -e "\n Erro !! Não existe termo de fibonacci negativo !\n";
fi
fib1 "$1" ;
fibs=$? ;
return $fibs ;
}
#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
function fib1(){
local fiba fibb fibc fibd fibe ;


if [ $1 -eq 0 ]; then
fiba=`((0)) `;
return 1;
fi
if [ $1 -eq 1 ]; then
return 1;
fi
#fiba= `$(($1-1))`
fiba=$(($1 - 1)) ;

fibb=$(($1 - 2)) ;
fib1 "$fiba" ;
fibc=$? ;
fib1 "$fibb" ;
fibd=$? ;
fibe=$(($fibc+$fibd))
return $fibe ;

}
#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
function main123(){
if [ -z $1 ]; then

local fib ;
echo -e "\n Teste de fibonacci $? \n";

echo -e "\n Entre com o número para saber o termo de fibonacci \n";
read fib ;
echo -e "\n Número escolhido: $fib \n";
echo -e "Squencia de Fibonacci recursivo...:"
fib3 "$fib" ;



else
local fib ;
fib=$1 ;
fib3 "$fib" ;

fi
}
#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
main123 "$1" "$2" "$3" "$4" "$5" ;
#maneiras de chamar o script na shell
#bash tesfibonaccisimples
#bash tesfibonaccisimples 12

Nenhum comentário: