Linux slogan
Visite também: BR-Linux.org · Dicas-L · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Ubuntu Daredevil
Por daredevil


Scripts

Linux user

Publicado por Rodolfo Marcondes Dias em (última atualização em 15/07/2011)   [ 8154 hits ]

Login: Rodolfo_RR, 90486 pontos

Download:

Versão 2:



Descrição

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


[ Download: matriz ]   [ Enviar nova versão ]

Versões atualizadas deste script (NOVO)
Linux user

Publicado por Adriel Macedo em 12/05/2011

Changelog: Calcula o Determinante de matrizes de ordem 2,3 e 4.

(versão 2)

 

[ 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
   Script Linux recomendado IPv6 fácil e rápido
   Script Linux recomendado Logs do daemontools - tradução de timestamp
   Script Linux recomendado Firewall funcional
   Script Linux recomendado backupsl.sh
   Script Linux recomendado wma2mp3

Comentários
[1] Comentário enviado por Macedo2 em 12/05/2011 - 00:27h:

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 " ;;


[2] Comentário enviado por Macedo2 em 12/05/2011 - 00:28h:

#!/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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.