<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>O.Cantinho.da.Programação &#187; Vba</title>
	<atom:link href="/tag/vba/feed/" rel="self" type="application/rss+xml" />
	<link>http://omundodaprogramacao.com</link>
	<description>O mundo da programação visto pelos olhos de um novato</description>
	<lastBuildDate>Mon, 07 May 2012 23:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Multiplicar Duas Matrizes 3&#215;3 em Vba\Excel</title>
		<link>http://omundodaprogramacao.com/multiplicar-duas-matrizes-3x3-em-vbaexcel/</link>
		<comments>http://omundodaprogramacao.com/multiplicar-duas-matrizes-3x3-em-vbaexcel/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 00:01:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Exercícios]]></category>
		<category><![CDATA[Línguagens de Programação]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Vba]]></category>

		<guid isPermaLink="false">http://omundodaprogramacao.com/?p=3795</guid>
		<description><![CDATA[Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um: Elabore um algoritmo que permita Somar  5 Células na Horizontal a Partir da Célula Seleccionada. Aqui fica o código que resolve o exercício: Sub MatrixMult() Dim a(1 To 3, 1 To 3) As Double, b(1 To 3, 1 To 3) As [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:</p>
<blockquote><p>Elabore um algoritmo que permita Somar  5 Células na Horizontal a Partir da Célula Seleccionada.</p></blockquote>
<p>Aqui fica o código que resolve o exercício:</p>
<blockquote>
<pre>Sub MatrixMult()
    Dim a(1 To 3, 1 To 3) As Double, b(1 To 3, 1 To 3) As Double
    Dim m(1 To 3, 1 To 3) As Double

    Dim i As Integer, j As Integer, k As Integer

    Dim s As Double

    Dim aCell As Range, bCell As Range, mCell As Range

    ' guardar valores das células A1:C3 na matriz a()
    Set aCell = Range("A1")
    For i = 1 To 3 ' linha
        For j = 1 To 3 ' coluna
            a(i, j) = aCell.Offset(i - 1, j - 1).Value
        Next j
    Next i

    ' guardar valores das células E1:G3 na matriz b()
    Set bCell = Range("E1")
    For i = 1 To 3 ' linha
        For j = 1 To 3 ' coluna
            b(i, j) = bCell.Offset(i - 1, j - 1).Value
        Next j
    Next i

    ' calcula o produto
    For i = 1 To 3 ' linha
        For j = 1 To 3 ' coluna
            s = 0
            For k = 1 To 3
                s = s + a(i, k) * b(k, j)
            Next k
            m(i, j) = s
        Next j
    Next i

    ' apresentar os valores de m(i,j) nas células I1:K3
    Set mCell = Range("I1")
    For i = 1 To 3 ' linha
        For j = 1 To 3 ' coluna
            mCell.Offset(i - 1, j - 1).Value = m(i, j)
        Next j
    Next i
End Sub</pre>
</blockquote>
<p>Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fomundodaprogramacao.com%2Fmultiplicar-duas-matrizes-3x3-em-vbaexcel%2F&amp;t=Multiplicar%20Duas%20Matrizes%203x3%20em%20Vba%5CExcel" id="facebook_share_button_3795" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_3795') || document.getElementById('facebook_share_icon_3795') || document.getElementById('facebook_share_both_3795') || document.getElementById('facebook_share_button_3795');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_3795') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://omundodaprogramacao.com/multiplicar-duas-matrizes-3x3-em-vbaexcel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
