Esse script foi criado para me ajudar na escola, dar uma agilizada =D. Ainda estou aprendendo shell, portanto se quiserem modificar e se tiver algum erro podem falar.
flw
Versões atualizadas deste script
Esconder código-fonte
#!/bin/bash
#Script feito por Rodolfo Marcondes Dias
#pode ser alterado
################################
clear
echo "Digite a ordem de uma matriz quadrada? (2 ou 3)" ; read matriz
if [ $matriz = "2" ] ; then
echo 'digite os 4 elementos da matriz por linha' ;
echo 'a11='
read a11
echo 'a12='
read a12
echo 'a21='
read a21
echo 'a22='
read a22
elif [ $matriz = "3" ] ; then
echo 'digite os 9 elementos da matriz por linha' ;
echo 'a11='
read a11
echo 'a12='
read a12
echo 'a13='
read a13
echo 'a21='
read a21
echo 'a22='
read a22
echo 'a23='
read a23
echo 'a31='
read a31
echo 'a32='
read a32
echo 'a33='
read a33
else
echo 'digite 2 ou 3'
fi
sleep 1
echo 'Voçê deseja calcular o determinate da matriz? (s/n)' ; read resposta
case $resposta in
s) echo 'continuando' ; sleep 1 ;;
n) echo 'saindo' ; exit ;;
*) echo 'ecolha s ou n' ; exit ;;
esac
if [ $matriz = "3" ] ; then
A=$(($a11*$a22*$a33+$a12*$a23*$a31+$a13*$a21*$a32))
B=$(($a13*$a22*$a31+$a11*$a23*$a32+$a12*$a21*$a33))
elif [ $matriz = "2" ] ; then
a=$(($a11*$a22))
b=$(($a12*$a21))
fi
case $matriz in
2) echo 'calculando o determinante da matriz quadrada de ordem 2...' ; sleep 1 ; echo ; echo "o determinate é: $(($a-$b))" ;;
3) echo 'calculando o determinante da matriz quadrada de ordem 3...' ; sleep 1; echo ; echo "o determinate é: $(($A-$B))" ;;
esac
Scripts recomendados
Mantendo hora do servidor atualizada com NTP
Atualisar e instalar pacotes no sistema.
openurl: abre urls no firefox
Sincronizando seu hosts.deny com blacklist online
Backup de MySQL com 1 arquivo para cada Banco
Comentários
Eu havia feito um programa semelhante a esse, mas, precisei ir um pouco mais longe (até ordem 4)
Como usamos as mesmas variáveis, a matemática que useis, posto aqui.
Depois de se ler os valores de a11 até a44, faça:
a=$(($a22*$a33*a44 + $a23*$a34*$a42 + $a24*$a43*$a32))
b=$(($a24*$a33*$a42 +$a23*$a32*$a44 + $a22*$a34*$a43)) ; b=$(($b*-1))
c=$(($a+$b)) ; c=$(($c*$a11))
d=$(($a21*$a33*$a44 + $a23*$a34*$a41 + $a24*$a43*$a31))
e=$(($a24*$a33*$a41 + $a23*$a31*$a44 + $a21*$a34*$a43)) ; e=$(($e*-1))
f=$(($d+$e)) ; f=$(($f*-$a12))
g=$(($a21*$a32*$a44 + $a22*$a34*$a41 + $a24*$a42*$a31))
h=$(($a24*$a32*$a41 + $a22*$a31*$a44 + $a21*$a34*$a42)) ; h=$(($h*-1))
i=$(($g+$h)) ; i=$(($i*$a13))
j=$(($a21*$a32*$a43 + $a22*$a33*$a41 + $a23*$a42*$a31))
k=$(($a23*$a32*$a41 + $a22*$a31*$a43 + $a21*$a42*$a33)) ; k=$(($k*-1))
l=$(($j+$k)) ; l=$(($l*-$a14))
r=$(($c+$f+$i+$l))
echo " Det = $r " ;;
#!/bin/bash
clear
echo "Programa para o cálculo de Determinantes"
echo " Qual a ordem da matriz?"
echo
echo "Para ordem 2 digite 2"
echo "Para ordem 3 digite 3"
echo "Para ordem 4 digite 4"
read o
case $o in
2)
clear
echo
echo "Programa para o cálculo de determinantes en Matrizes 2x2"
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12||"
echo " ||a21 a22||"
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a21" ; read a21
echo "a22" ; read a22
x=$(($a12*$a21*-1))
y=$(($a11*$a22))
r=$(($x+$y))
echo
echo " Det = $r " ;;
3)
clear
echo
echo "Programa para o cálculo de determinantes em Matrizes 3x3 "
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12 a13|| "
echo " ||a21 a22 a23|| "
echo " ||a31 a32 a33|| "
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a13" ; read a13
echo "a21" ; read a21
echo "a22" ; read a22
echo "a23" ; read a23
echo "a31" ; read a31
echo "a32" ; read a32
echo "a33" ; read a33
echo
x=$(($a13*$a22*$a31 + $a11*$a23*$a32 + $a12*$a21*$a33)) ; x=$(($x*-1))
y=$(($a11*$a22*$a33 + $a12*$a23*$a31 + $a13*$a21*$a32)) ; r=$(($x+$y))
echo " Det = $r " ;;
4)
clear
echo
echo "Programa para o cálculo de determinantes em Matrizes 4x4"
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12 a13 a14||"
echo " ||a21 a22 a23 a24||"
echo " ||a31 a32 a33 a34||"
echo " ||a41 a42 a43 a44||"
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a13" ; read a13
echo "a14" ; read a14
echo "a21" ; read a21
echo "a22" ; read a22
echo "a23" ; read a23
echo "a24" ; read a24
echo "a31" ; read a31
echo "a32" ; read a32
echo "a33" ; read a33
echo "a34" ; read a34
echo "a41" ; read a41
echo "a42" ; read a42
echo "a43" ; read a43
echo "a44" ; read a44
a=$(($a22*$a33*a44 + $a23*$a34*$a42 + $a24*$a43*$a32))
b=$(($a24*$a33*$a42 +$a23*$a32*$a44 + $a22*$a34*$a43)) ; b=$(($b*-1))
c=$(($a+$b)) ; c=$(($c*$a11))
d=$(($a21*$a33*$a44 + $a23*$a34*$a41 + $a24*$a43*$a31))
e=$(($a24*$a33*$a41 + $a23*$a31*$a44 + $a21*$a34*$a43)) ; e=$(($e*-1))
f=$(($d+$e)) ; f=$(($f*-$a12))
g=$(($a21*$a32*$a44 + $a22*$a34*$a41 + $a24*$a42*$a31))
h=$(($a24*$a32*$a41 + $a22*$a31*$a44 + $a21*$a34*$a42)) ; h=$(($h*-1))
i=$(($g+$h)) ; i=$(($i*$a13))
j=$(($a21*$a32*$a43 + $a22*$a33*$a41 + $a23*$a42*$a31))
k=$(($a23*$a32*$a41 + $a22*$a31*$a43 + $a21*$a42*$a33)) ; k=$(($k*-1))
l=$(($j+$k)) ; l=$(($l*-$a14))
r=$(($c+$f+$i+$l))
echo " Det = $r " ;;
*)
echo "O número digitado é inválido" ;;
esac
Mensagem
#!/bin/bash
clear
echo "Programa para o cálculo de Determinantes"
echo " Qual a ordem da matriz?"
echo
echo "Para ordem 2 digite 2"
echo "Para ordem 3 digite 3"
echo "Para ordem 4 digite 4"
read o
case $o in
2)
clear
echo
echo "Programa para o cálculo de determinantes en Matrizes 2x2"
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12||"
echo " ||a21 a22||"
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a21" ; read a21
echo "a22" ; read a22
x=$(($a12*$a21*-1))
y=$(($a11*$a22))
r=$(($x+$y))
echo
echo " Det = $r " ;;
3)
clear
echo
echo "Programa para o cálculo de determinantes em Matrizes 3x3 "
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12 a13|| "
echo " ||a21 a22 a23|| "
echo " ||a31 a32 a33|| "
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a13" ; read a13
echo "a21" ; read a21
echo "a22" ; read a22
echo "a23" ; read a23
echo "a31" ; read a31
echo "a32" ; read a32
echo "a33" ; read a33
echo
x=$(($a13*$a22*$a31 + $a11*$a23*$a32 + $a12*$a21*$a33)) ; x=$(($x*-1))
y=$(($a11*$a22*$a33 + $a12*$a23*$a31 + $a13*$a21*$a32)) ; r=$(($x+$y))
echo " Det = $r " ;;
4)
clear
echo
echo "Programa para o cálculo de determinantes em Matrizes 4x4"
echo "A matriz deve estar nesse formato:"
echo
echo " ||a11 a12 a13 a14||"
echo " ||a21 a22 a23 a24||"
echo " ||a31 a32 a33 a34||"
echo " ||a41 a42 a43 a44||"
echo
echo "Insira agora os valores de:"
echo "a11" ; read a11
echo "a12" ; read a12
echo "a13" ; read a13
echo "a14" ; read a14
echo "a21" ; read a21
echo "a22" ; read a22
echo "a23" ; read a23
echo "a24" ; read a24
echo "a31" ; read a31
echo "a32" ; read a32
echo "a33" ; read a33
echo "a34" ; read a34
echo "a41" ; read a41
echo "a42" ; read a42
echo "a43" ; read a43
echo "a44" ; read a44
a=$(($a22*$a33*a44 + $a23*$a34*$a42 + $a24*$a43*$a32))
b=$(($a24*$a33*$a42 +$a23*$a32*$a44 + $a22*$a34*$a43)) ; b=$(($b*-1))
c=$(($a+$b)) ; c=$(($c*$a11))
d=$(($a21*$a33*$a44 + $a23*$a34*$a41 + $a24*$a43*$a31))
e=$(($a24*$a33*$a41 + $a23*$a31*$a44 + $a21*$a34*$a43)) ; e=$(($e*-1))
f=$(($d+$e)) ; f=$(($f*-$a12))
g=$(($a21*$a32*$a44 + $a22*$a34*$a41 + $a24*$a42*$a31))
h=$(($a24*$a32*$a41 + $a22*$a31*$a44 + $a21*$a34*$a42)) ; h=$(($h*-1))
i=$(($g+$h)) ; i=$(($i*$a13))
j=$(($a21*$a32*$a43 + $a22*$a33*$a41 + $a23*$a42*$a31))
k=$(($a23*$a32*$a41 + $a22*$a31*$a43 + $a21*$a42*$a33)) ; k=$(($k*-1))
l=$(($j+$k)) ; l=$(($l*-$a14))
r=$(($c+$f+$i+$l))
echo " Det = $r " ;;
*)
echo "O número digitado é inválido" ;;
esac
Contribuir com comentário
Enviar