<?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>Tecnologia de Programação 1 e 2 (2009) &#187; exercícioF03</title>
	<atom:link href="http://www.brunocampagnolo.com/2009tp/tag/exerciciof03/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunocampagnolo.com/2009tp</link>
	<description>PUCPR &#62; Bacharelado em Sistemas de Informação &#62; 3o e 4o Períodos</description>
	<lastBuildDate>Fri, 18 Dec 2009 10:40:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apresentação do trabalho no Sábado (25/4)</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/23/apresentacao-do-trabalho-no-sabado-254/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/23/apresentacao-do-trabalho-no-sabado-254/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:05:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>
		<category><![CDATA[apresentação]]></category>
		<category><![CDATA[correção]]></category>
		<category><![CDATA[exercícioF03]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=256</guid>
		<description><![CDATA[Observem que apenas os alunos que entregarem seu projeto até 15:00h de amanhã (24/4) poderão apresentar seu projeto.
Já criei uma pasta no Eureka dedicada a esta entrega.
Junto com seus arquivos não esqueça de entregar seu executável também. Importante: programas que não executam não serão corrigidos!

Segue, abaixo e no link o formato que sugiro para sua [...]]]></description>
			<content:encoded><![CDATA[<p>Observem que apenas os alunos que entregarem seu projeto até 15:00h de amanhã (24/4) poderão apresentar seu projeto.<br />
Já criei uma pasta no Eureka dedicada a esta entrega.</p>
<p>Junto com seus arquivos não esqueça de entregar seu executável também. <strong>Importante: programas que não executam não serão corrigidos!</strong></p>
<p><span id="more-256"></span></p>
<p>Segue, abaixo e <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/modelo_apresentacao.ppt">no link</a> o formato que sugiro para sua apresentação. Em, no máximo 4 minutos, as duplas deverão apresentar o funcionamento de seu programa.<br />
Você deverá entregar sua apresentação no Eureka também.</p>
<div>
<div style="text-align: center; color: #595653; font-size: 11px; font-family: Verdana, sans-serif; padding-top: 10px; padding-right: 5px;">Discover Simple, Private Sharing at <a href="http://drop.io">Drop.io</a></div>
<p><script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'></script>
<div id="mediaPlayer"></div>
<p><script type="text/javascript">  var scribd_doc = scribd.Document.getDoc(14567425, 'key-1i26uoutvxzabxt9yf9n');  scribd_doc.addParam('height', 450);scribd_doc.addParam('width', 650);   scribd_doc.write('mediaPlayer');  </script></div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/23/apresentacao-do-trabalho-no-sabado-254/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Critérios de Correção &#8211; Exercício F03</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/23/criterios-de-correcao-exercicio-f03/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/23/criterios-de-correcao-exercicio-f03/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 16:53:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>
		<category><![CDATA[correção]]></category>
		<category><![CDATA[critérios]]></category>
		<category><![CDATA[exercícioF03]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=253</guid>
		<description><![CDATA[Turma, 
Para deixar transparente a correção do exercício no Sábado gerei uma planilha com os critérios que serão aplicados.
Observe que tem maior peso os temas que mais trabalhamos ou que geraram mais dúvidas.
Para simular sua possível nota, faça o download da planilha que será utilizada para correção.
Abaixo, a planilha para visualização rápida.

]]></description>
			<content:encoded><![CDATA[<p>Turma, </p>
<p>Para deixar transparente a correção do exercício no Sábado gerei uma planilha com os critérios que serão aplicados.<br />
Observe que tem maior peso os temas que mais trabalhamos ou que geraram mais dúvidas.</p>
<p>Para simular sua possível nota, <a href="http://spreadsheets.google.com/pub?key=pD5xiFKE9oj3W961r_cgfOQ&#038;output=xls">faça o download da planilha </a>que será utilizada para correção.</p>
<p>Abaixo, a planilha para visualização rápida.</p>
<p><iframe width='650' height='500' frameborder='0' src='http://spreadsheets.google.com/pub?key=pD5xiFKE9oj3W961r_cgfOQ&#038;output=html&#038;widget=true'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/23/criterios-de-correcao-exercicio-f03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas rápidas &#8211; ExF03 &#8211; Drag &amp; Drop em jQuery</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/22/dicas-rapidas-exf03-drag-drop-em-jquery/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/22/dicas-rapidas-exf03-drag-drop-em-jquery/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 15:57:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[drag&drop]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery UI]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=239</guid>
		<description><![CDATA[Na aula sobre drag e drop também apresentei exemplos de drag e drop em jQuery.
Veja o exemplo que coloquei na aula 13:
http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/
Link direto para o exemplo:
http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplosdragedrop.zip
Observe que se for necessário clonar um objeto, será necessária a criação do draggable com esta opção:


$(&#34;.myDrag&#34;).draggable({helper: &#039;clone&#039; }); 

A seguir, em anexo e no jsbin,  


&#60;!DOCTYPE html PUBLIC [...]]]></description>
			<content:encoded><![CDATA[<p>Na aula sobre drag e drop também apresentei exemplos de drag e drop em jQuery.</p>
<p>Veja o exemplo que coloquei na aula 13:<br />
<a href="http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/">http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/</a></p>
<p>Link direto para o exemplo:<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplosdragedrop.zip">http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplosdragedrop.zip</a></p>
<p>Observe que se for necessário clonar um objeto, será necessária a criação do draggable com esta opção:</p>
<pre name="code" class="javascript">

$(&quot;.myDrag&quot;).draggable({helper: &#039;clone&#039; }); 
</pre>
<p>A seguir, em <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplodragcomclone.html">anexo</a> e no <a href="http://jsbin.com/epota/edit">jsbin</a>,  </p>
<pre name="code" class="html">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css&quot; type=&quot;text/css&quot; /&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
    &lt;title&gt;&lt;/title&gt;

    &lt;style type=&quot;text/css&quot;&gt;
        .myDrag
        {
           background: red;
           border: 2px black solid;
           width: 200px;
           font-size: xx-large;
        }
        .myDrop
        {

           background: green;
           border: 2px black solid;
           width: 400px;
           height: 100px;
           font-size: xx-large;

        }
        .jahArrastado {
           background: blue;
           border: 2px black solid;
           width: 200px;
           font-size: xx-large;
        }
    &lt;/style&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
        $(document).ready(function() {
            // Transforma em um elemento arrastável
            $(&quot;.myDrag&quot;).draggable({helper: &#039;clone&#039; });
            // Transforma em um elemento foco de drop
            $(&quot;#drop1&quot;).droppable({

                // Chama a função quando terminar o arrastar
                drop: function(event, ui) {

                    // Se já tiver sido arrastado anteriormente,
                    if(!$(ui.draggable).hasClass(&quot;jahArrastado&quot;))
                    {
                      // Obtém a posição que o elemento foi arrastado
                      var x = ui.position.left;
                      var y = ui.position.top;
                      // Clona o elemento
                      var m = $(ui.draggable).clone();
                      m.css(&quot;position&quot;, &quot;absolute&quot;);
                      m.css(&quot;left&quot;,x);
                      m.css(&quot;top&quot;,y);
                      m.attr(&quot;class&quot;, &quot;jahArrastado&quot;);
                      m.html(&quot;Jah fui arrastado!&quot;);
                      // Altera o elemento arrastado para um elemento que não
                      // pode ser arrastado
                      m.draggable({helper: &#039;original&#039;});
                      // Adiciona ao container
                      $(this).append(m);

                    }

                }
            });
            $(&quot;#lixeira&quot;).droppable({
              drop: function(event, ui) {
                // Só elementos arrastados podem ser removidos
                if($(ui.draggable).hasClass(&quot;jahArrastado&quot;))
                {
                  $(ui.draggable).remove();
                }

              }
            });

        });
    &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;myDrag&quot; id=&quot;drag1&quot;&gt;Posso ser arrastado!&lt;/div&gt;
&lt;div class=&quot;myDrop&quot; id=&quot;drop1&quot;&gt;Arraste algo aqui!&lt;/div&gt;
&lt;div class=&quot;myDrop&quot; id=&quot;lixeira&quot;&gt;Lixeira&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/22/dicas-rapidas-exf03-drag-drop-em-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas rápidas &#8211; ExF03 &#8211; ListBox</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-listbox/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-listbox/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:55:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[listbox]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=236</guid>
		<description><![CDATA[Em seu exercício, você precisa gerenciar uma lista de convidados. Uma ideia simples é utilizar uma caixa de listagem (listbox) para exibir esta lista de convidados e permitir sua reordenação.
Dê uma olhada na documentação que relacionei à listbox e também nos exemplos de uso de cada componente.
Para facilitar, também coloquei um exemplo em anexo relacionado [...]]]></description>
			<content:encoded><![CDATA[<p>Em seu exercício, você precisa gerenciar uma lista de convidados. Uma ideia simples é utilizar uma caixa de listagem (listbox) para exibir esta lista de convidados e permitir sua reordenação.<br />
Dê uma olhada na <a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1040f5vn28cv#bps0">documentação que relacionei à listbox</a> e também nos <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exemploscomponentesv01.zip">exemplos de uso de cada componente</a>.</p>
<p>Para facilitar, também coloquei um <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplolistbox.zip">exemplo em anexo</a> relacionado à reordenação dos itens da lista.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-listbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas Rápidas &#8211; Exercício F03 &#8211; Class Library (2)</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exercicio-f03-class-library-2/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exercicio-f03-class-library-2/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 16:38:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[class library]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[passo a passo]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=223</guid>
		<description><![CDATA[Anteriormente, já deixei claro que um dos requisitos do Exercício F03 é a organização do código em uma biblioteca de classes (Class Library).

1) A Class Library é criada via menu New Project > Class Library.

2) As classes que você deseja expor devem ser públicas.

3) O arquivo referente à class library está dentro da pasta Bin [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009tp/2009/04/04/aula-14-dicas-para-exercicio-f03-class-library/">Anteriormente</a>, já deixei claro que um dos requisitos do Exercício F03 é a organização do código em uma biblioteca de classes (Class Library).<br />
<span id="more-223"></span><br />
1) A Class Library é criada via menu New Project > Class Library.<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary-300x212.png" alt="classlibrary" title="classlibrary" width="300" height="212" class="alignnone size-medium wp-image-224" /></a></p>
<p>2) As classes que você deseja expor devem ser públicas.<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary2.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary2.png" alt="classlibrary2" title="classlibrary2" width="479" height="278" class="alignnone size-full wp-image-225" /></a></p>
<p>3) O arquivo referente à class library está dentro da pasta Bin do projeto.<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary3.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary3-300x59.png" alt="classlibrary3" title="classlibrary3" width="300" height="59" class="alignnone size-medium wp-image-226" /></a></p>
<p>4) Para adicionar a referência dentro de seu projeto Windows Forms ou Web, use a opção Add Reference no menu Project.<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary4.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary4.png" alt="classlibrary4" title="classlibrary4" width="249" height="412" class="alignnone size-full wp-image-227" /></a></p>
<p>5) Se o seu projeto Windows Forms ou Web estiver dentro da mesma solução da Class Library, selecione a opção Projects.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary5.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary5.png" alt="classlibrary5" title="classlibrary5" width="489" height="410" class="alignnone size-full wp-image-228" /></a></p>
<p>6) No caso de trabalhar com a Class Library independentemente ou se você tiver apenas a Dll referente à Class Library, encontre sua dll através da aba Browse.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary6.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary6.png" alt="classlibrary6" title="classlibrary6" width="487" height="412" class="alignnone size-full wp-image-229" /></a></p>
<p>7) Ok! As classes que você expôs estão disponíveis para seu projeto.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary7.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/classlibrary7.png" alt="classlibrary7" title="classlibrary7" width="265" height="384" class="alignnone size-full wp-image-234" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exercicio-f03-class-library-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas Rápidas &#8211; ExF03 &#8211; Selects com jQuery</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-selects-com-jquery/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-selects-com-jquery/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 16:07:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=217</guid>
		<description><![CDATA[Para obter o valor de um &#60;select&#62; através da biblioteca jQuery é necessário descobrir qual é a opção selecionada.
No exemplo abaixo (e no link), ao trocar o item selecionado em uma caixa de seleção, o valor selecionado e o texto referente ao valor são exibidos.


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34;
  &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34; xml:lang=&#34;en&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Para obter o valor de um &lt;select&gt; através da biblioteca jQuery é necessário descobrir qual é a opção selecionada.</p>
<p>No exemplo abaixo (e no <a href="http://jsbin.com/ejato/edit">link</a>), ao trocar o item selecionado em uma caixa de seleção, o valor selecionado e o texto referente ao valor são exibidos.</p>
<pre name="code" class="html">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  $(document).ready( function () {
    // Evento onchange do select
    $(&quot;#slTipo&quot;).change( function() {
      // exibe o valor selecionado e o texto do valor selecionado
      $(&quot;#resultado&quot;).html(&quot;Item selecionado com o valor &quot; + $(this).val() +
                           &quot; e com o texto &quot;+$(&quot;#slTipo :selected&quot;).text());

    });
  });
&lt;/script&gt;
&lt;title&gt;Sandbox&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
body { background-color: #000; font: 16px Helvetica, Arial; color: #fff; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;form action=&quot;&quot;&gt;
    &lt;select id=&quot;slTipo&quot;&gt;
      &lt;option value=&quot;v1&quot;&gt;Op1&lt;/option&gt;
      &lt;option value=&quot;v2&quot;&gt;Op2&lt;/option&gt;
      &lt;option value=&quot;v3&quot;&gt;Op3&lt;/option&gt;
    &lt;/select&gt;
  &lt;/form&gt;
  &lt;div id=&quot;resultado&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>No caso do envio da informação de um select para o servidor Web, pode-se utilizar a função de serialização para codificar o valor do select. Veja abaixo, e<a href="http://jsbin.com/emedi/edit"> no link</a>.</p>
<pre name="code" class="html">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  $(document).ready( function () {
    // Evento onchange do select
    $(&quot;#btEnviar&quot;).click( function() {
      // Serializa os itens do formulário
      var s = $(&quot;#myForm&quot;).serialize();
      //
      $(&quot;#resultado&quot;).html(s);
      // Agora, você pode enviar via Ajax o valor dos itens de formulário...
    });
  });
&lt;/script&gt;
&lt;title&gt;Sandbox&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
body { background-color: #000; font: 16px Helvetica, Arial; color: #fff; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;form action=&quot;&quot; id=&quot;myForm&quot;&gt;
    &lt;input type=&quot;text&quot; id=&quot;nome&quot; name=&quot;nome&quot;&gt;
    &lt;select id=&quot;slTipo&quot; name=&quot;slTipo&quot;&gt;
      &lt;option value=&quot;v1&quot;&gt;Op1&lt;/option&gt;
      &lt;option value=&quot;v2&quot;&gt;Op2&lt;/option&gt;
      &lt;option value=&quot;v3&quot;&gt;Op3&lt;/option&gt;
    &lt;/select&gt;
    &lt;input type=&quot;button&quot; value=&quot;Enviar&quot; id=&quot;btEnviar&quot;&gt;
  &lt;/form&gt;
  &lt;div id=&quot;resultado&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Para um exemplo completo de interação com o servidor, observe o <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/testeselect.zip">exemplo em anexo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/20/dicas-rapidas-exf03-selects-com-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas Rápidas &#8211; ExF03 &#8211; Detecção de Colisão</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-deteccao-de-colisao/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-deteccao-de-colisao/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 16:25:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[colisão]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=207</guid>
		<description><![CDATA[Um dos requisitos no exercício F03 é a não sobreposição dos controles.
Ou seja: um objeto não pode ocupar o lugar de outro ao mesmo tempo. 
Uma maneira simples de detectar a colisão é através da propriedade Bounds de um controle.
Tal propriedade reflete o retângulo relacionado à área ocupada por um controle. O método IntersectsWith desta [...]]]></description>
			<content:encoded><![CDATA[<p>Um dos requisitos no exercício F03 é a não sobreposição dos controles.<br />
Ou seja: um objeto não pode ocupar o lugar de outro ao mesmo tempo. </p>
<p>Uma maneira simples de detectar a colisão é através da propriedade Bounds de um controle.<br />
Tal propriedade reflete o retângulo relacionado à área ocupada por um controle. O método IntersectsWith desta propriedade pode ser usado para verificar se um retângulo tem algum cruzamento com outro.</p>
<p>No exemplo abaixo, no caso de sobreposição, a posição original é retornada.<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/sobreposicao.zip">Ver em anexo</a> o código funcionando.</p>
<pre name="code" class="c#">

// Obtém o elemento que está sendo arrastado
Button b = (Button) e.Data.GetData(typeof(Button));
// Armazena o ponto no qual o retângulo está
Point pOrigem = b.Location;
// Calcula o ponto que o elemento foi arrastado
Point p = new Point(e.X, e.Y);
// Coloca no ponto desejado
b.Location = this.PointToClient(p);
// Percorre todos os controles do form
foreach (Control c in this.Controls)
{
 // Há um cruzamento entre os dois controles
 // ou seja, um está sobre o outro
 // O controle não é ele mesmo (b!=c)
 if (b.Bounds.IntersectsWith(c.Bounds) &amp;&amp; b!=c)
 {
    // Volta para a posição original
    b.Location = pOrigem;
    break;
 }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-deteccao-de-colisao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas rápidas &#8211; ExF03 &#8211; Drag &amp; Drop de elemento criado dinamicamente</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-drag-drop-de-elemento-criado-dinamicamente/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-drag-drop-de-elemento-criado-dinamicamente/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 15:46:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[drag&drop]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=203</guid>
		<description><![CDATA[Em sua interface pode ser necessária a criação de elementos em tempo de execução.
Anteriormente, na Aula 11, percebemos que esta criação se dá através da instanciação do elemento que se deseja inserir na interface e de sua colocação no container desejado através do método Add da coleção Controls.
Exemplo:


// Cria uma instância de botão
Button b = [...]]]></description>
			<content:encoded><![CDATA[<p>Em sua interface pode ser necessária a criação de elementos em tempo de execução.<br />
Anteriormente, na <a href="http://www.brunocampagnolo.com/2009tp/2009/03/26/aula-11-componentes-em-tempo-de-execucao-em-windows-forms/">Aula 11</a>, percebemos que esta criação se dá através da instanciação do elemento que se deseja inserir na interface e de sua colocação no container desejado através do método Add da coleção Controls.</p>
<p>Exemplo:</p>
<pre name="code" class="c#">

// Cria uma instância de botão
Button b = new Button();
// Determina o tamanho na tela
b.Size = new Size(30, 30);
// Coloca na posição 100, 100
b.Location = new Point(100, 100);
// Adiciona no formulário
this.Controls.Add(b);
</pre>
<p>Se for necessária a criação de um componente em tempo de execução e que possua funcionalidade de drag&amp;drop o evento MouseDown também deve ser considerado.</p>
<pre name="code" class="c#">

// Cria uma instância de botão
Button b = new Button();
// Determina o tamanho na tela
b.Size = new Size(30, 30);
// Coloca na posição 100, 100
b.Location = new Point(100, 100);
// Determina o evento de mouse down para indicar
// o drag &amp; drop
b.MouseDown += new MouseEventHandler(b_MouseDown);
// Adiciona no formulário
this.Controls.Add(b);
...
void b_MouseDown(object sender, MouseEventArgs e)
{
       this.DoDragDrop(sender, DragDropEffects.Move);
}
</pre>
<p>Em <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/dragedropdinamico.zip">anexo</a>, exemplo de aplicação desta ideia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/11/dicas-rapidas-exf03-drag-drop-de-elemento-criado-dinamicamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas rápidas &#8211; Ex03 &#8211; Passando informações de um formulário a outro</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-ex03-passando-informacoes-de-um-formulario-a-outro/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-ex03-passando-informacoes-de-um-formulario-a-outro/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:40:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=200</guid>
		<description><![CDATA[Existem diversas abordagens possíveis para a passagem de informações de um formulário a outro.
Ver a discussão de algumas destas no artigo: http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx
Em anexo, exemplo de duas destas abordagens. Na primeira, um controle de um form pode ser exposto para outro através da alteração da propriedade Modifiers.
No segundo exemplo, o construtor do form é alterado de [...]]]></description>
			<content:encoded><![CDATA[<p>Existem diversas abordagens possíveis para a passagem de informações de um formulário a outro.<br />
Ver a discussão de algumas destas no artigo: <a href="http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx">http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx</a></p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplocomunicacaoforms.zip">Em anexo</a>, exemplo de duas destas abordagens. Na primeira, um controle de um form pode ser exposto para outro através da alteração da propriedade Modifiers.</p>
<p>No segundo exemplo, o construtor do form é alterado de maneira a receber o que se deseja compartilhar.</p>
<p>IMPORTANTE: Salienta-se que os <strong>exemplos são didáticos</strong> e servem apenas para demonstração da funcionalidade. Desta forma, não estão preocupados com a organização de seu código em um projeto maior, muito menos com a adequabilidade em relação à patterns de programação ou interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-ex03-passando-informacoes-de-um-formulario-a-outro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas rápidas &#8211; ExF03 &#8211; Alterando a imagem a partir de uma combo</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-exf03-combo-picturebox/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-exf03-combo-picturebox/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 12:38:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[dúvida]]></category>
		<category><![CDATA[ComboBox]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[PictureBox]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=193</guid>
		<description><![CDATA[Começando uma série de postagens baseadas nas principais dúvidas enviadas via Correio referentes aos exercício F03.
Segue em anexo, exemplo de alteração de uma imagem a partir de uma seleção de combobox. Abaixo, fragmento de código a ser inserido no evento SelectedIndexChanged da combo.


            switch [...]]]></description>
			<content:encoded><![CDATA[<p>Começando uma série de postagens baseadas nas principais dúvidas enviadas via Correio referentes aos exercício F03.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplopictureboxcombobox.zip">Segue em anexo</a>, exemplo de alteração de uma imagem a partir de uma seleção de combobox. Abaixo, fragmento de código a ser inserido no evento SelectedIndexChanged da combo.</p>
<pre name="code" class="c#">

            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    pictureBox1.Image = global::ExemploPictureBoxComboBox.Properties.Resources.tankbrigade;
                    break;
                case 1:
                    pictureBox1.Image = global::ExemploPictureBoxComboBox.Properties.Resources.arinoid_master;
                    break;
                case 2:
                    pictureBox1.Image = global::ExemploPictureBoxComboBox.Properties.Resources.vehicles;
                    break;
            }
</pre>
<p>Observe que as imagens devem ser importadas como recurso do projeto para que possam ser utilizadas. Para importar uma imagem crie um novo arquivo de recurso (resource file) ou insira novas imagens no gerenciador de recursos disponível na utilização da propriedade Image da PictureBox (imagem abaixo).<br />
<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/duvida_comboimage.png"><img src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/duvida_comboimage.png" alt="duvida_comboimage" title="duvida_comboimage" width="489" height="343" class="alignnone size-full wp-image-196" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/06/dicas-rapidas-exf03-combo-picturebox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula 13 &#8211; Dicas para o Exercício F03 &#8211; Drag &amp; Drop</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 22:13:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[aula13]]></category>
		<category><![CDATA[drag & drop]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=175</guid>
		<description><![CDATA[O exercício F03, parcial de nosso sistema de cemitério, tem uma interface bastante elaborada para simular um sistema de gerenciamento de velório.

Uma das possíveis técnicas que podem ser aplicadas para a construção da interface de exercício é o padrão de interface drag e drop.
Nesta aula, ilustraremos um exemplo de utilização de drag e drop em [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/">exercício F03</a>, parcial de nosso sistema de cemitério, tem uma interface bastante elaborada para simular um sistema de gerenciamento de velório.<br />
<span id="more-175"></span></p>
<p>Uma das possíveis técnicas que podem ser aplicadas para a construção da interface de exercício é o padrão de interface <a href="http://developer.yahoo.com/ypatterns/parent.php?pattern=dragdrop ">drag e drop</a>.</p>
<p>Nesta aula, ilustraremos um exemplo de utilização de drag e drop em uma interface desktop, construída através da biblioteca Windows Forms e outro exemplo usando a <a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-ui/">biblioteca jQuery Ui</a>.</p>
<p>Os exemplos utilizados nesta aula são:</p>
<ul>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemploscriacaodecomponentes.zip">ExemploCriaçãoComponentes</a>: exemplo em C#/Windows Forms demonstrando a manipulação em tempo de execução dos componentes. Este exemplo será útil para o entendimento de como pode ser a criação dinâmica de uma interface.</li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplodragdrop.zip">ExemploDragEDrop</a>: exemplo em C#/Windows Forms demonstrando funcionalidade básica de drag e drop.</li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/exemplosdragedrop.zip">ExemploDragEDrop</a>: exemplo em JavaScript/jQuery demonstrando funcionalidade básica de drag e drop utilizando os componentes de interação <a href="http://jqueryui.com/demos/draggable/">draggable </a>e <a href="http://jqueryui.com/demos/droppable/">droppable</a>.</li>
</ul>
<p>Importante, o framework jQuery Ui é bastante rico em controles. <a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-ui/">Veja outros exemplos</a>!</p>
<p>A apresentação associada a aula vai <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/13-drag_drop_final.ppt">em anexo</a> (mirror).</p>
<div>
<div style="text-align: center; color: #595653; font-size: 11px; font-family: Verdana, sans-serif; padding-top: 10px; padding-right: 5px;">Discover Simple, Private Sharing at <a href="http://drop.io">Drop.io</a></div>
<p><script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'></script>
<div id="mediaPlayer"></div>
<p><script type="text/javascript">  var scribd_doc = scribd.Document.getDoc(13901374, 'key-1n5mdzxvxo1lsqry3ot7');  scribd_doc.addParam('height', 450);scribd_doc.addParam('width', 650);   scribd_doc.write('mediaPlayer');  </script></div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exercício F03 &#8211; Planejador de Velório</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 13:17:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[cemitério]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[velório]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=143</guid>
		<description><![CDATA[O exercício proposto agora continuará o trabalho com a biblioteca de componentes gráficos Windows Forms. Seu objetivo será criar uma interface que permita o planejamento de um evento de velório.
A mesma interface também deverá ser criada na versão Web de maneira simplificada.
Objetivos

Conhecer os componentes da biblioteca Windows Forms e entender sua aplicação em uma situação [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">O exercício proposto agora continuará o trabalho com a biblioteca de componentes gráficos Windows Forms. Seu objetivo será criar uma interface que permita o planejamento de um evento de velório.</p>
<p style="text-align: justify;">A mesma interface também deverá ser criada na versão Web de maneira simplificada.</p>
<h2 style="text-align: justify;"><span id="more-143"></span>Objetivos</h2>
<ul style="text-align: justify;">
<li>Conhecer os componentes da biblioteca Windows Forms e entender sua aplicação em uma situação real;</li>
<li>Aplicar os conceitos de lógica de programação na geração de um frontend gráfico;</li>
<li>Discutir possibilidades de interação alternativas ao tradicional utilizando, de maneira criativa, os componentes da biblioteca;</li>
<li>Começar a organizar o código de maneira que fique fácil a interação de uma interface cliente com um servidor.</li>
</ul>
<h2 style="text-align: justify;">Referências</h2>
<ul style="text-align: justify;">
<li><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1040f5vn28cv">Lista de referências sobre os componentes Windows Forms</a>;</li>
<li><a href="http://msdn.microsoft.com/en-us/library/ettb6e2a.aspx">Documentação Windows Forms do MSDN;</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exemploscomponentesv01.zip">Exemplos de uso de cada um dos componentes &#8211; versão 0.1</a>;</li>
<li><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1024dmgd8kc8">Canivete .Net 2009;</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-uijquery-ui/">Sobre a biblioteca jQuery UI</a>.</li>
</ul>
<h2 style="text-align: justify;">Procedimento</h2>
<p style="text-align: justify;">Você criará uma interface que permita o planejamento de um evento de velório em seu projeto de cemitério. Nesta interface, o &#8220;futuro cliente&#8221; do velório deverá planejar o evento como um todo: localização de seu velório, tempo total, decoração e posicionamento dos convidados mais importantes. Outra opção será o planejamento do velório de um parente recém-falecido.</p>
<p style="text-align: justify;">Assim, duas interfaces deverão ser geradas: a primeira, construída para Desktop deve ter uma responsividade rápida e ser focada, necessariamente à interação em totens e planejamento de um evento imediato de um parente. A segunda, voltada para Web, deve ser rápida e simples de usar, sendo mais aplicável a um planejamento individual a longo prazo.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>O algoritmo de cálculo de preço deverá ser criado em uma biblioteca de classes (class library) que será compartilhada pelas duas interfaces.</strong></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Importante: não será necessário e nem desejável a persistência de qualquer dado ou configuração de seu sistema, ou seja, quando o programa for fechado toda a simulação é perdida!</strong></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Sugere-se fortemente o uso da biblioteca jQuery para criação da versão Web de seu sistema. Outra sugestão: se desejar uma interface um pouco mais rica e alguns controles prontos associados ao jQuery, use também o seu complemento jQuery UI. <a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-uijquery-ui/">Em anexo, apresentação referente ao jQuery UI</a>. Você tem a liberdade, porém, de usar qualquer outro framework para sua interface Web ou mesmo usar &#8220;JavaScript puro&#8221;.<br />
</strong></span></p>
<p style="text-align: justify;">1) O primeiro passo é a escolha do local do evento. O cliente deverá selecionar dentre um conjunto de opções possíveis qual é o auditório / espaço que gostaria que a cerimônia fosse realizada. Cada local possui restrições diferentes quanto ao <span style="text-decoration: underline;"><strong>formato do local</strong></span>,  <strong><span style="text-decoration: underline;">lotação máxima </span></strong>e <span style="text-decoration: underline;"><strong>flexibilidade da disposição dos objetos</strong></span>. Por exemplo, podem existir locais com formato retangular como uma sala, outros com formato arredondado como um teatro, etc. A lotação máxima pode variar também dependendo do ambiente. Alguns locais podem ter objetos fixos como poltronas fixas. Outros podem ter objetos que podem ser movidos como cadeiras.</p>
<p style="text-align: justify;">O usuário deve ter a opção de escolher um local dentre 5 opções diferentes. Cada opção tem um preço diferente.</p>
<p style="text-align: justify;">2) Em alguns tipos de ambiente podem ser apresentados objetos móveis como: púlpitos, cadeiras, mesas, elementos de decoração (flores, tapetes, velas), Outros elementos são fixos e não podem ser movidos. Os objetos móveis podem ter sua posição planejada. Há porém, algumas restrições:</p>
<ul>
<li>um objeto não pode ocupar o lugar de outro;</li>
<li>dependendo do objeto, deve-se manter uma distância mínima do falecido, que também, dependendo do ambiente, deve ser possível de movimentação;</li>
<li>alguns objetos são incompatíveis em um mesmo ambiente. Por exemplo, flores de cores diferentes, tapetes de cores diferentes, etc;</li>
<li>há um limite na quantidade de alguns objetos;</li>
</ul>
<p style="text-align: justify;">A quantidade de objetos disponíveis também é determinante do preço final. Há também alguns objetos opcionais.</p>
<p style="text-align: justify;">Devem existir pelo menos 7 tipos diferentes de objetos.</p>
<p style="text-align: justify;">3) Por fim, o usuário deverá listar os principais convidados e parentes do evento. Esta lista deve ser usada para:</p>
<ul>
<li>Definir o assento (cadeira, poltrona, etc) de alguns convidados mais importantes;</li>
<li>Indicar a ordem e horário de discursos.</li>
</ul>
<p style="text-align: justify;">4) Exceto no caso da lista de convidados, qualquer modificação provoca uma alteração no preço. Esta alteração deve sempre estar visível na interface e atualizada automaticamente a partir de qualquer mudança.</p>
<h2 style="text-align: justify;">Critérios de Correção</h2>
<p>O  seu programa, nesta fase, estará sendo avaliado em relação aos seguintes critérios:</p>
<ul>
<li>Atendimento aos requisitos acima;</li>
<li>Uso dos componentes padrão disponíveis no Visual Studio / jQuery que encaixem melhor em cada situação;</li>
<li>Semelhança da interface na versão Web e na versão Desktop;</li>
<li>Originalidade na criação da interface;</li>
<li>Criatividade nas possibilidades de interação;</li>
<li>Facilidade de uso;</li>
<li>Validações de dados simples;</li>
<li>Centralização do algoritmo de cálculo do custo em uma class library;</li>
<li>Código-fonte sem cópias de colegas ou de códigos da Internet/livros sem uma citação clara.</li>
</ul>
<p>Os seguintes critérios não terão importância nesta avaliação, porém serão discutidos nas avaliações posteriores:</p>
<ul>
<li>Organização do código usando as patterns mais adequadas para cada situação;</li>
<li>Rigidez na criação das classes e otimização de código;</li>
<li>Criação de novos componentes;</li>
<li>Aderência das regras de negócio em relação a situações reais;</li>
<li>Validações de dados complexas.</li>
</ul>
<h2>Defesa e Entrega</h2>
<p>Este projeto deverá será entregue até o dia <strong><span style="text-decoration: underline;">24/04/2009</span></strong> <span style="text-decoration: underline;"><strong>- 14:00h</strong></span>. <strong><span style="text-decoration: underline;">Trabalhos entregues em atraso serão desconsiderados</span></strong>.</p>
<p>No dia <span style="text-decoration: underline;"><strong>25/04/2009</strong></span>, cada dupla terá <span style="text-decoration: underline;"><strong>três </strong></span>minutos para apresentar e defender o seu trabalho. A ordem de apresentação será fornecida no dia anterior até as 17:00h.</p>
<p>Ponto extra: todos os alunos que entregarem o que já fizeram até o dia 15/04/2009 receberão 0,5 pontos extras na nota final. Nesta entrega, seu projeto pode estar incompleto e com falhas, mas deve transmitir a segurança que você vai conseguir terminá-lo.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exercício de Fixação F03 &#8211; Calculadora em C#</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 01:05:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[calculadora]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=108</guid>
		<description><![CDATA[Exercício de Fixação 03 &#8211; Calculadora em C#
 Neste exercício você vai criar uma calculadora simples em C#. Essa calculadora vai realizar as quatro operações matemáticas quando você clica em quatro botões diferentes e, alternativamente, vai permitir a execução da operação indicada em uma ComboBox (também chamada de DropDownList, caixa de combinação, caixa de seleção [...]]]></description>
			<content:encoded><![CDATA[<h1 id="p9250">Exercício de Fixação 03 &#8211; Calculadora em C#<br id="p9251" /></h1>
<p><br id="p9252" /> Neste exercício você vai criar uma calculadora simples em C#. Essa calculadora vai realizar as quatro operações matemáticas quando você clica em quatro botões diferentes e, alternativamente, vai permitir a execução da operação indicada em uma ComboBox (também chamada de DropDownList, caixa de combinação, caixa de seleção única, etc).</p>
<p>Este exercício deve ser desenvolvido em classe e servirá, principalmente, para você conhecer o Visual Studio 2008.<br />
O resultado esperado como resposta para o exercício está <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exerc03_gabarito.exe">em anexo</a>.<span id="more-108"></span></p>
<h2 id="p9254">Objetivos</h2>
<ul id="p92511">
<li id="p92512"> Conhecer as nossas principais ferramentas de trabalho neste semestre:
<ul>
<li id="p92512">C#;</li>
<li id="p92512">Visual Studio 2008.</li>
</ul>
</li>
</ul>
<ul id="p92510">
<li id="p92513">Conhecer o Visual Studio 2008 e a Plataforma .Net através de um exemplo simples, reconhecendo alguns dos principais paradigmas do desenvolvimento RAD;</li>
</ul>
<ul id="p92514">
<li id="p92515"> Iniciar a compreender as diferenças entre o C# e o Java enquanto linguagens;</li>
<li id="p92516">Reconhecer que no C# todos os controles são objetos e conseguir diferenciar claramente qual é a classe de cada objeto;</li>
</ul>
<ul id="p92517">
<li id="p92518"> Entender a criação automática de eventos através da interface gráfica do Visual Studio 2008;</li>
<li id="p92519"> Familiarizar-se com a sintaxe do C# e com a facilidade de acesso ao help online;</li>
<li id="p92520">Aplicar as funções de conversão de dados através da classe Convert, etc.</li>
<li id="p92521">Conhecer os controles TextBox e ComboBox; <br id="p92522" /></li>
<li id="p92523">Entender o significado do método ToString.</li>
</ul>
<p><br id="p92524" /></p>
<h2 id="p92525">Referências</h2>
<ul id="p92526">
<li id="p92527"> Ajuda dos métodos:
<ul id="p92528">
<li id="p92529"> ToInt32 da classe Convert: <a id="suh:" title="http://msdn2.microsoft.com/pt-br/library/system.convert.toint32(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.convert.toint32%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.convert.toint32(en-us).aspx</a>;</li>
<li id="p92530"> ToString da classe Object;</li>
</ul>
</li>
<li id="p92531"> Ajuda das propriedades:
<ul id="p92532">
<li id="p92533"> Text do controle TextBox e do controle Label;</li>
<li id="p92534"> Items do controle ComboBox;</li>
<li id="p92535">SelectedItem do controle ComboBox: <a id="h7nh" title="http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem(en-us).aspx</a> <br id="p92536" /></li>
<li id="p92537">NewLine da classe Environment: <a id="o:px" title="http://msdn2.microsoft.com/pt-br/library/system.environment.newline(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.environment.newline%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.environment.newline(en-us).aspx</a> <br id="p92538" /></li>
</ul>
</li>
<li id="p92539"> Ajuda dos eventos:
<ul id="p92540">
<li id="p92541"> Click do controle Button;</li>
<li id="p92542"> SelectedIndexChange do controle ComboBox.<br id="p92543" /></li>
</ul>
</li>
</ul>
<h2 id="p92544">Preparação e Dicas<br id="p92545" /></h2>
<ul id="p92546">
<li id="p92547"> Criar no Visual Studio 2008 um novo Projeto, através do menu File &gt; New Project.</li>
<li id="p92548">Cuidado: selecionar a linguagem Visual C# e a opção Windows Forms ao criar o Projeto!</li>
<li id="p92549"> Acessar a ajuda das funções citadas na referência. Clique F1 na palavra que deseja acessar para acessar o Help Online / Offline.<br id="p92550" /></li>
<li id="p92551"> Lembre-se de salvar seu projeto na pasta C:\Temp, caso você esteja trabalhando na PUCPR.</li>
<li id="p92552">O operador de concatenação de texto no C# é o &#8220;+&#8221;;</li>
<li id="p92553">Se você decidir usar a estrutura switch em algum momento, observe que o switch do C# aceita Strings em seus case;</li>
<li id="p92554">As principais propriedades de um controle são acessíveis via <strong id="p92555">Smart Tag </strong>e seus principais eventos clicando duas vezes sobre o controle.<br id="p92556" /></li>
</ul>
<h2 id="p92557">Procedimento</h2>
<ol id="p92558">
<li id="p92559"><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exerc03_gabarito.exe">O resultado esperado do procedimento abaixo está anexo.</a></li>
<li id="p92559">Criar uma interface com: duas caixas de texto chamadas Valor1 e Valor2, um botão com o texto Somar ou &#8220;+&#8221;, um botão com o texto Subtrair ou &#8220;-&#8221;, um botão com o texto Multiplicar ou &#8220;*&#8221; e um botão com o texto Dividir ou &#8220;/&#8221;. Criar também uma ComboBox com quatro elementos representando cada uma das funções. A resposta ficará acumulada em uma caixa de texto de mais de uma linha;</li>
<li id="p92560"> Associar ao evento de clique (Click) de cada um dos botões à respectiva função;</li>
<li id="p92561"> Exibir o resultado da operação em uma caixa de texto de mais de uma linha;<br id="p92562" /></li>
<li id="p92563"> Associar ao evento de mudança do valor da ComboBox (SelectedIndexChange) a execução imediata da operação matemática sem necessitar da chamada ao botão;</li>
</ol>
<p><br id="p92564" /></p>
<h2 id="p92565">Questões</h2>
<p>Responder às questões abaixo no link (<a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..">http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..</a>) ou abaixo e manter uma cópia das respostas com você.<br id="p92567" /><br id="p92568" /></p>
<ol id="p92569">
<li id="p92570">Cole o código responsável por implementar as operações que você implementou. Seu código está dentro do arquivo com extensão .cs.</li>
<li id="p92570">Qual é a extensão do arquivo criado após a compilação? <br id="p92571" /></li>
<li id="p92572">É um projeto do tipo Windows Forms ou Web Forms?</li>
<li id="p92573">Qual é a plataforma que precisa estar instalada na máquina que vai executar o programa?</li>
<li id="p92574">O que é o CLR?<br id="p92575" /></li>
<li id="p92576">O programa em C# é convertido para qual representação intermediária antes de ser executado pelo CLR?<br id="p92577" /></li>
<li id="p92578">Localize em sua aplicação todo o código em C# gerado para criação, posicionamento e formatação de uma caixa de texto. Cole esse código abaixo. Este código está dentro da função InitializeComponent.</li>
<li id="p92579">Os comandos obtidos na questão anterior são de uma linguagem declarativa ou em uma linguagem imperativa?<br id="p92580" /></li>
<li id="p92581"> Escolha 2 propriedades quaisquer da caixa de texto diferentes das que você trabalhou e, através da documentação, cite qual é a sua utilidade. Coloque o link para a página que você conseguiu essa documentação.</li>
<li id="p92581">EXTRA! Refaça o mesmo exercício em WPF e perceba a diferença entre as abordagens.</li>
<li id="p92581">EXTRA! Refaça o mesmo exercício em HTML/jQuery e perceba a diferença entre as abordagens.</li>
</ol>
<h2 id="p92583">Relatório</h2>
<p>Responder às questões acima no link (<a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..">http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..</a>) ou abaixo.</p>
<p>Também não esqueça de manter uma cópia destas respostas com você.<br />
<iframe src="http://spreadsheets.google.com/embeddedform?key=pD5xiFKE9oj1A8rdI5RTIcg" width="500" height="2055" frameborder="0" marginheight="0" marginwidth="0">Carregando&#8230;</iframe></p>
<p><br id="p92586" /><br id="p92590" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
