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



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

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

Login: Rodolfo_RR, 89361 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 Script para configuracao rapida da eth0
   Script Linux recomendado Fazendo Backup de arquivos de micros em redes.
   Script Linux recomendado Abrir arquivos em nova aba no Firefox
   Script Linux recomendado Instalação do LibreOffice 64 bits no Ubuntu
   Script Linux recomendado Cadastro de Usuário Samba

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.