<?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>Marcio Bueno - Cursos Online</title>
	<atom:link href="http://marciobueno.com/feed" rel="self" type="application/rss+xml" />
	<link>http://marciobueno.com</link>
	<description>desenvolvimento através do conhecimento</description>
	<lastBuildDate>Mon, 23 Jan 2012 19:21:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Iniciando no Visual C++ 2010 Express Edition (Video Tutorial)</title>
		<link>http://marciobueno.com/cpp/iniciando-visual-cpp-2010-express-edition-video-tutorial?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iniciando-visual-cpp-2010-express-edition-video-tutorial</link>
		<comments>http://marciobueno.com/cpp/iniciando-visual-cpp-2010-express-edition-video-tutorial#comments</comments>
		<pubDate>Sat, 03 Apr 2010 20:19:38 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=294</guid>
		<description><![CDATA[A versão gratuita do Visual C++ da Microsoft está disponível em versão beta e dentro de alguns dias já deve sair a versão definitiva. Você pode fazer o download no site Microsoft Visual Studio 2010 Express. Esta versão está muito melhor que as anteriores, pois o autocompletar foi melhorado e também existe agora um verificador [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">A versão gratuita do Visual C++ da Microsoft está disponível em versão beta e dentro de alguns dias já deve sair a versão definitiva. Você pode fazer o download no site <a rel="nofollow" href="http://www.microsoft.com/express/downloads/">Microsoft Visual Studio 2010 Express</a>.</p>
<p><span id="more-294"></span></p>
<p style="text-align:justify">Esta versão está muito melhor que as anteriores, pois o autocompletar foi melhorado e também existe agora um verificador de sintaxe automático enquanto você digita, portanto não é preciso mais compilar o código para saber se está tudo certo ou errado, basta olhar se tem alguma parte do seu código sublinhada em vermelho. Se tiver, é só parar o mouse por cima do sublinhado vermelho que será exibida uma mensagem informando o erro.</p>
<p style="text-align:justify">Uma das maiores dificuldades que os meus alunos sofrem é saber como começar a utilizar esta ferramenta, pois muitos já estavam acostumados com outras ferramentas mais simples e acham muito ruim ter que criar um projeto para compilar algo simples como um Alô Mundo!.</p>
<p style="text-align:justify">Para isto eu criei um tutorial de como criar e compilar um programa simples no Visual C++ 2010 Express. Este tutorial está dividido em duas partes: a primeira mostrando a criação de um programa simples e a segunda parte mostrando a criação de uma solução contendo vários projetos (algo que você faria ao criar uma lista de exercícios).</p>
<p style="text-align:center">Tutorial de Visual C++ 2010 Express (Parte 1)
<p><object width="423" height="260"><param name="movie" value="http://www.youtube.com/v/_Qg2JZYgEUw&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/_Qg2JZYgEUw&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="423" height="260"></embed></object></p>
<p style="text-align:center">Tutorial de Visual C++ 2010 Express (Parte 2)
<p><object width="423" height="260"><param name="movie" value="http://www.youtube.com/v/H299-0XIoXM=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/H299-0XIoXM&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="423" height="260"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/cpp/iniciando-visual-cpp-2010-express-edition-video-tutorial/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Criando uma Aplicação OpenGL com o Qt Creator</title>
		<link>http://marciobueno.com/cpp/criando-aplicacao-opengl-qt-creator?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=criando-aplicacao-opengl-qt-creator</link>
		<comments>http://marciobueno.com/cpp/criando-aplicacao-opengl-qt-creator#comments</comments>
		<pubDate>Mon, 15 Mar 2010 19:08:11 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=263</guid>
		<description><![CDATA[Ao se desenvolver uma aplicação OpenGL é preciso utilizar em conjunto alguma outra biblioteca para tratar de tarefas específicas como abrir uma janela e interagir com mouse e teclado. O problema é que normalmente estas outras bibliotecas são dependentes de sistema operacional. Existem algumas alternativas para não ficar dependente de sistema operacional, das quais a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">Ao se desenvolver uma aplicação OpenGL é preciso utilizar em conjunto alguma outra biblioteca para tratar de tarefas específicas como abrir uma janela e interagir com mouse e teclado. O problema é que normalmente estas outras bibliotecas são dependentes de sistema operacional.</p>
<p><span id="more-263"></span></p>
<p style="text-align:justify">Existem algumas alternativas para não ficar dependente de sistema operacional, das quais a mais conhecida é utilizar a GLUT, porém ela possui vários problemas. Dentre estes problemas, um dos piores é a necessidade de utilizar variáveis globais para criar a sua aplicação. Portanto, descartando a utilização da GLUT, uma outra abordagem é utilizar o framework Qt da Nokia.</p>
<p style="text-align:justify">Para contextualizar, será criada uma aplicação gráfica com OpenGL e Qt, onde a interface gráfica será criada utilizando o Qt Creator, que é uma IDE de código aberto que possui uma licença gratuita, inclusive para desenvolver aplicações comerciais.
<p style="text-align:justify">A aplicação pode ser vista na figura abaixo e é bem simples. É basicamente um visualizador de polígonos, onde o usuário informa a quantidade de lados e o tamanho do raio através de dois sliders.
<p><a target="_blank" href="http://marciobueno.com/arquivos/posts/qt/OpenGL_Qt.png"><img title="Clique para ampliar a Aplicação OpenGL com Qt" width="410" height="301" src="/arquivos/posts/qt/OpenGL_Qt.png" alt="Aplicação OpenGL com Qt" /></a></p>
<p style="text-align:justify">Este tutorial está dividido em três partes e como ele foi gravado em 720p é recomendado que você selecione esta opção e visualize em tela cheia.
<p style="text-align:center">Tutorial de OpenGL com Qt Creator (Parte 1)
<p><object width="423" height="260"><param name="movie" value="http://www.youtube.com/v/XzZH2uC8tWs&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XzZH2uC8tWs&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="423" height="260"></embed></object></p>
<p style="text-align:center">Tutorial de OpenGL com Qt Creator (Parte 2)
<p><object width="423" height="260"><param name="movie" value="http://www.youtube.com/v/9A1YwqJ2PqA&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9A1YwqJ2PqA&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="423" height="260"></embed></object></p>
<p style="text-align:center">Tutorial de OpenGL com Qt Creator (Parte 3)
<p><object width="423" height="260"><param name="movie" value="http://www.youtube.com/v/-dBrGN3Kx6A&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-dBrGN3Kx6A&#038;hl=pt_BR&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="423" height="260"></embed></object></p>
<p style="text-align:justify">Você pode baixar o código fonte do <a href="http://marciobueno.com/arquivos/posts/qt/Projeto_OpenGL_Qt.zip">Projeto OpenGL com Qt</a>.
<p style="text-align:justify">Espero que tenham gostado deste tutorial. Comentários são bem vindos!</p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/cpp/criando-aplicacao-opengl-qt-creator/feed</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Iniciando no Visual C++ 2008 Express Edition</title>
		<link>http://marciobueno.com/cpp/iniciando-visual-cpp-express-edition?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iniciando-visual-cpp-express-edition</link>
		<comments>http://marciobueno.com/cpp/iniciando-visual-cpp-express-edition#comments</comments>
		<pubDate>Wed, 12 Aug 2009 05:29:26 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=130</guid>
		<description><![CDATA[Para você começar a aprender uma linguagem de programação, é necessário utilizar um compilador para poder ir fazendo os exercícios, e assim aprender a lógica de programação. De preferência, o melhor é utilizar uma IDE (Integrated Development Environment), que na realidade é um ambiente completo para programação, onde além do compilador, você tem um editor [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">Para você começar a aprender uma linguagem de programação, é necessário utilizar um compilador para poder ir fazendo os exercícios, e assim aprender a lógica de programação. De preferência, o melhor é utilizar uma IDE (Integrated Development Environment), que na realidade é um ambiente completo para programação, onde além do compilador, você tem um editor de texto integrado com <em>highlight</em> para destacar os comandos reservados da linguagem e facilitar a leitura do código fonte, autocompletar, e inúmeros outros recursos.</p>
<p><span id="more-130"></span></p>
<p style="text-align:justify">Existem algumas IDEs populares gratuitas para Windows, mas aqui eu vou mostrar uma das melhores IDEs para desenvolvimento na minha opinião que é o Visual C++ 2008 Express Edition (utilizarei também neste post a abreviação VC++). Lógico que a versão completa desta ferramenta (o Visual Studio 2008) possui muitos mais recursos, porém não é gratuito, e para o iniciante é bem mais complicado começar a utilizá-lo, pois são tantas opções que o usuário possui para criar um simples projeto, que normalmente o iniciante fecha a aplicação e vai utilizar alguma outra mais fácil.</p>
<p style="text-align:justify">O primeiro passo é instalar o VC++, e para isto, basta ir entrar no site do <a rel="nofollow" href="http://www.microsoft.com/express/download/">Microsoft Visual Studio Express Edition</a> e fazer o download do Visual C++ 2008 Express Edition. O download é pequeno, pois na realidade é um instalador online, isto é, você precisa estar conectado na Internet para fazer a instalação. Se você precisar instalar em um computador sem acesso à Internet, ou com Internet discada, é melhor realizar o download da versão offline, também disponível para download neste mesmo site. O único inconveniente é precisar gravar um DVD, pois você realiza o download do arquivo .ISO.</p>
<p style="text-align:justify">A instalação é simples, e basicamente é só ir pressionando Next e utilizar as opções padrões. Então, depois de instalá-lo, a primeira vez que você iniciar o programa, ele demorará um pouco para configurar o ambiente, nas próximas execuções o VC++ irá iniciar rapidamente.</p>
<p style="text-align:justify">Para ser possível compilar e executar qualquer código C ou C++ no VC++ é necessário a criação de um projeto. Para isto, você têm três opções diferentes: 1) clique em File &#8211;> New &#8211;> Project, 2) pressione o botão New Project (normalmente o primeiro botão à esquerda na barra de ferramentas), ou 3) utilize o atalho CTRL+SHIFT+N. Isto abrirá a caixa de diálogo New Project exibida na figura abaixo.</p>
<p><a target="_blank" href="http://marciobueno.com/arquivos/posts/vcpp/Visual-Cpp-New-Project.jpg"><img title="Clique para ampliar" width="410" height="283" src="/arquivos/posts/vcpp/Visual-Cpp-New-Project.jpg" alt="Visual C++ 2008 - Project New" /></a></p>
<p style="text-align:justify">Além do conceito de projeto, também existe o de solução (solution). Uma solução pode conter vários projetos, porém somente um fica marcado como projeto padrão, isto é, o projeto que será executado ao pressionar o botão <em>Run</em>. Neste exemplo, não vamos entrar em detalhes sobre este conceito, e portanto você pode desmarcar opção <em>Create directory for solution</em>.</p>
<p style="text-align:justify">Preencha as informações, de acordo com a figura acima, isto é, o nome do projeto é <strong>AloMundoAcentuado</strong>, selecione <em>Win32 Console Application</em> e você pode deixar a pasta padrão para o salvamento dos seus projetos que normalmente é <strong>MeusDocumentosVisual Studio 2008Projects</strong>.</p>
<p style="text-align:justify"><strong>ATENÇÃO!</strong> Este é um dos passos mais importantes para a criação de um novo projeto. Pressione <strong><em>Next</em></strong> no assistente de criação de projetos que irá abrir após você ter pressionado o botão OK, <strong>marque</strong> a opção <strong><em>Empty Project</em></strong>, e <strong>APENAS </strong>depois disto aperte o botão <em>Finish</em>.</p>
<p style="text-align:justify">Neste momento, você terá um projeto vazio, e para começar a digitar qualquer código é necessário criar um arquivo .c ou .cpp dependendo se você quer programar em C ou em C++. Para criar um novo arquivo dentro deste seu projeto, clique com o botão direito do <strong>mouse </strong>em cima do nome do seu projeto (AloMundoAcentuado que está em negrito), selecione a opção <strong><em>Add</em></strong> e depois clique em cima da opção <strong><em>New Item&#8230;</em></strong>.</p>
<p style="text-align:justify">Nesta tela, selecione a opção C++ File (.cpp) e preencha o nome do arquivo, neste nosso exemplo, vamos dar o mesmo nome que o projeto só que iremos adicionar a extensão .c para criar um programa em C. O ambiente do VC++ e a caixa de diálogo já preenchida pode ser vista na próxima imagem.</p>
<p><a target="_blank" href="http://marciobueno.com/arquivos/posts/vcpp/Visual-Cpp-Add-New-Item.jpg"><img title="Clique para ampliar" width="410" height="253" src="/arquivos/posts/vcpp/Visual-Cpp-Add-New-Item.jpg" alt="Visual C++ 2008 - New Item" /></a></p>
<p style="text-align:justify">Agora vamos criar o nosso primeiro programa. Copie e cole o código abaixo no seu arquivo e depois execute-o apertando no botão <strong><em>Run</em></strong>, que é o botão com um triângulo verde igual ao dos <em>DVD Players</em>, ou então apertando a tecla F5.</p>
<p><code><br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>int main()<br />
{<br />
&nbsp;&nbsp;system("color f0");<br />
&nbsp;&nbsp;system("chcp 1252 > nul");<br />
&nbsp;&nbsp;printf("Alô Mundo Acentudado!n");<br />
&nbsp;&nbsp;system("pause");<br />
&nbsp;&nbsp;return 0;<br />
}<br />
</code></p>
<p style="text-align:justify">E provavelmente você verá uma tela com o texto Alô Mundo Acentuado!, porém o &#8220;o&#8221; acentuado não estará aparecendo corretamente. Para isto, você precisa alterar a fonte da sua janela de <em>console</em>. Para isto, selecione a opção Padrões do menu da janela do Prompt de Comando de acordo com a figura abaixo:</p>
<p><a target="_blank" href="http://marciobueno.com/arquivos/posts/vcpp/Prompt-Commando-Padroes.jpg"><img title="Clique para ampliar" width="410" height="220" src="/arquivos/posts/vcpp/Prompt-Commando-Padroes.jpg" alt="Padrões de Prompt de Comando" /></a></p>
<p style="text-align:justify">E agora mude para a fonte <strong>Lucida Console</strong> e para facilitar a leitura aumente o tamanho da fonte para um tamanho que lhe agrade, como na figura abaixo. Agora basta pressionar OK que o novo padrão de janelas de Prompt de Comando aceitarão acentuação.</p>
<p><a target="_blank" href="http://marciobueno.com/arquivos/posts/vcpp/Prompt-Commando-Lucida-Console.jpg"><img title="Clique para ampliar" width="410" height="468" src="/arquivos/posts/vcpp/Prompt-Commando-Lucida-Console.jpg" alt="Lucida Console no Prompt de Comando" /></a></p>
<p style="text-align:justify">Pronto! Agora você já tem uma IDE configurada e funcionando para aprender lógica de programação num ótimo ambiente.</p>
<p style="text-align:justify">Antes de terminar este <em>post</em> quero ainda dar mais duas dicas. A primeira é a seguinte: se você pressionar CTRL+F5 ao invés de F5 para executar o seu programa, não será necessário incluir o comando <code>system("pause");</code> no final do seu programa, pois ele será adicionado automaticamente.</p>
<p style="text-align:justify">A segunda dica é sobre os comandos extras que inseri no código do <strong>Alô Mundo Acentuado!</strong>:</p>
<ul>
<li><code>system("color f0");</code> serve para você não ter a tela preta do DOS, assim a tela ficará com letras pretas, num fundo branco, como no padrão das janelas Windows.</li>
<li><code>system("chcp 1252 > nul");</code> serve para mudar a codificação da janela do DOS para a utilizada pelo Windows, e fazendo que você possa utilizar caracteres acentuados ao criar um programa Console. O redirecionamento para <strong><em>nul</em></strong> (isso mesmo, apenas um &#8220;L&#8221;) é para não exibir a mensagem que você está alterando a codificação de página no início do seu programa.</li>
</ul>
<p style="text-align:justify">Espero que tenham gostado das dicas, e qualquer dúvida é só comentar abaixo.</p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/cpp/iniciando-visual-cpp-express-edition/feed</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Smalltalk &#8211; Uma das Primeiras Linguagens Orientadas a Objetos</title>
		<link>http://marciobueno.com/linguagens-programacao/smalltalk-primeiras-linguagens-orientadas-objetos?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=smalltalk-primeiras-linguagens-orientadas-objetos</link>
		<comments>http://marciobueno.com/linguagens-programacao/smalltalk-primeiras-linguagens-orientadas-objetos#comments</comments>
		<pubDate>Mon, 16 Feb 2009 03:14:13 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[Linguagens de Programação]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=27</guid>
		<description><![CDATA[Uma das primeiras linguagens de programação orientada a objetos (oo) foi o Smalltalk, o grande diferencial entre Smalltalk e a maiorias das outras linguagens oo é que tudo na linguagens são objetos, inclusive if, while e for não são comandos, são métodos por mais incrível que isto pareça. A notação do Smalltalk é semelhante à [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; ">Uma das primeiras linguagens de programação orientada a objetos (oo) foi o <strong>Smalltalk</strong>, o grande diferencial entre Smalltalk e a maiorias das outras linguagens oo é que tudo na linguagens são objetos, inclusive <strong>if</strong>, <strong>while</strong> e <strong>for</strong> não são comandos, são métodos por mais incrível que isto pareça.</p>
<p><span id="more-27"></span></p>
<p style="text-align: justify; ">A notação do Smalltalk é semelhante à escrita em inglês. Veja o código abaixo:</p>
<pre>Transcript clear.
Transcript cr.
Transcript show:'Olá Mundo'.
Transcript cr.</pre>
<p style="text-align: justify; ">Existe um objeto chamado Transcript que representa um console, isto é, um lugar onde as mensagens são exibidas. Na primeira linha, você está executando o método clear (limpar) do objeto Transcript. Na segunda linha é solicitado ao Transcript que pule de linha através do método <strong>cr</strong>, como um <strong>endl</strong> do C++ ou um <strong>&#8220;n&#8221;</strong> do C ou Java. Na terceira linha, é solicitado ao Transcript que seja exibida a string &#8216;Olá Mundo&#8217;, através do método <strong>show:</strong> que recebe como parâmetro uma string. Quando você precisar passar várias mensagens para um objeto, é possível utilizar um ponto-e-vírgula separando as chamadas, como no exemplo abaixo:</p>
<pre>Transcript clear; cr; show:'Olá Mundo'; cr.</pre>
<p style="text-align: justify; ">Voltando ao comandos de controle na maioria das linguagens: o if do Java, em Smalltalk é <strong>ifTrue:</strong>,  um método declarado na classe <strong>Boolean</strong> que recebe com parâmetro (veja o sinal de dois-pontos após o nome do método) um bloco de comandos, que em Smalltalk são comandos que estão dentro de colchetes [ ]. Já o <strong>whileTrue:</strong> é um método definido nas classes <strong>BlockClosure</strong> e <strong>BlockContext</strong>, portanto se o bloco for avaliado e retornar um valor True, então o bloco passado como parâmetro para o <strong>whileTrue:</strong> será avaliado. O exemplo abaixo já integra vários conceitos:</p>
<pre>| i |
i := 9.
Transcript clear.
[ i &gt; 0 ] whileTrue: [
	Transcript show: (i asString), ' -&gt; ',
		(i odd ifTrue: ['Par'] ifFalse: ['Ímpar']);
		cr.
	i := i - 1.
].</pre>
<p style="text-align: justify; ">Na primeira linha é definida a variável <strong>i</strong>, que em Smalltalk não precisa definir o tipo. Na segunda linha é realizado um comando de atribuição. A terceira linha declara um bloco [ i &gt; 0 ] que ao ser avaliado retorna um True ou False, e este bloco recebe a chamada ao método <strong>whileTrue:</strong> que executará o outro bloco enquanto a condição for verdadeira. Agora a terceira linha vamos quebrar em partes para melhor entendê-la. Primeiro, concatenação de strings em Smalltalk é realizada através de vírgula, portanto a variável <strong>i</strong> está sendo convertida para string (<strong>i asString</strong>) e concatenada com a string &#8216; -&gt; &#8216;, que será então concatenada com a string &#8216;Par&#8217; ou &#8216;Ímpar&#8217;. Para selecionar entre a string Par ou Ímpar é chamado o método <strong>odd</strong> para saber se o número é par, o resultado será um valor True ou False. Como o método <strong>ifTrue:ifFalse:</strong> está definido na classe Boolean, então podemos chamá-lo a partir do objeto retornado pelo método <strong>odd</strong>. Em Smalltalk um método que recebe mais de um parâmetro, possui o seu nome divido em partes, onde cada parte possui um símbolo de dois-pontos. Portanto, <strong>ifTrue:ifFalse:</strong> é um método que recebe dois parâmetros, no caso o bloco que contém a string &#8216;Par&#8217; e o bloco que contém a string &#8216;Ímpar&#8217;. E para terminar, um comando de atribuição para diminuir o valor da variável <strong>i</strong>. A saída deste programa é a seguinte:</p>
<pre>9 -&gt; Par
8 -&gt; Ímpar
7 -&gt; Par
6 -&gt; Ímpar
5 -&gt; Par
4 -&gt; Ímpar
3 -&gt; Par
2 -&gt; Ímpar
1 -&gt; Par</pre>
<p style="text-align: justify; ">Vejamos algo impressionante ao utilizar uma linguagem como o Smalltalk. Os testes a seguir daria trabalho para você conseguir implementá-lo em Java ou C:</p>
<pre>Transcript clear.
1 to: 500 do: [:i |
	Transcript show: '2 elevado a ', (i asString), ' é ',
		(2 raisedTo: i) asString; cr.
].</pre>
<pre>Transcript clear.
Transcript show: 5000 factorial asString.</pre>
<p style="text-align: justify; ">No primeiro trecho de código são impressos todos as potências de 2 entre 1 e 500, detalhe 2^500 gera um número com 151 dígitos (veja que já existe o método <strong>raisedTo:</strong> na classe Number). Agora, ao executar o segundo código, será impresso no Transcript o fatorial de 5000, que é um número com 16326 dígitos. Vai tentar fazer isto em Java!</p>
<p style="text-align: justify; ">Bom, para poder executar este programa é necessário utilizar uma IDE Smalltalk. Uma bastante conhecida é a <strong>Squeak!</strong> que possui o código aberto. Você pode baixá-la a partir do site oficial: <a href="http://squeak.org/Download/">http://squeak.org/</a>, utilize o link da direita da tela para fazer o download, senão você terá que baixar separadamente, a máquina virtual, o código fonte e a imagem para poder começar a utilizá-la. Hoje, o link direto se você for um usário do sistema operacional Windows é:</p>
<p><a href="http://ftp.squeak.org/3.10/win/Squeak3.10.2-7179-win32.zip">http://ftp.squeak.org/3.10/win/Squeak3.10.2-7179-win32.zip</a>.</p>
<p>Basta descompactar e executar o programa Squeak.exe.</p>
<p style="text-align: justify; ">O local para realizar alguns testes como os exemplos acima é o Workspace, no Squeak abra a aba Tools (encontra-se no canto superior direita da janela) clique no ícone que indica o Workspace e arraste-o para o meio da tela. Faça o mesmo com o Transcript para poder ver o resultado da execução do seu programa. Para executar um trecho de código, basta selecionar o código e apertar &lt;CTRL+D&gt; (ou clicar com o botão direito em cima da seleção e selecionar a opção <strong>do it</strong>).</p>
<p style="text-align: justify; ">Para aprender mais sobre Smalltalk vá em sites como:</p>
<p style="text-align: justify; ">
<ul>
<li><a rel="nofollow" href="http://www.goodstart.com/">http://www.goodstart.com/</a></li>
<li><a rel="nofollow" href="http://www.squeak.org/">http://www.squeak.org/</a></li>
<li><a rel="nofollow" href="http://www.smalltalk.org/">http://www.smalltalk.org/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/linguagens-programacao/smalltalk-primeiras-linguagens-orientadas-objetos/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>É difícil aprender uma linguagem de programação?</title>
		<link>http://marciobueno.com/cpp/dificil-aprender-linguagem-programacao?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dificil-aprender-linguagem-programacao</link>
		<comments>http://marciobueno.com/cpp/dificil-aprender-linguagem-programacao#comments</comments>
		<pubDate>Sat, 17 Jan 2009 01:05:31 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Ensino]]></category>
		<category><![CDATA[Linguagens de Programação]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=20</guid>
		<description><![CDATA[Há 9 anos eu comecei a ensinar em instituições de ensino superior. No primeiro semestre como professor de programação fui designado para duas turmas: uma de Java para alunos concluintes e outra de Pascal formada apenas por alunos reprovados na disciplina de Técnicas de Linguagens de Programação I. Pois é, duas turmas com perfis bem [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">Há 9 anos eu comecei a ensinar em instituições de ensino superior. No primeiro semestre como professor de programação fui designado para duas turmas: uma de Java para alunos concluintes e outra de Pascal formada apenas por alunos reprovados na disciplina de Técnicas de Linguagens de Programação I. Pois é, duas turmas com perfis bem distintos.</p>
<p><span id="more-20"></span></p>
<p style="text-align:justify">Eu tomei como desafio a turma de alunos reprovados, pois alguns já estavam fazendo a disciplina pela terceira vez. O que eu implementei na época foi: uma aula na sala com assunto teórico e exercícios para serem feitos no caderno e a outra aula da semana era no laboratório para terminar de reforçar o assunto visto.</p>
<p style="text-align:justify">Essa idéia deu resultado, pois praticamente todos os alunos foram aprovados, infelizmente houve reprovação, pois tinha um aluno que assistia aula a cada 15 dias e outro que conheci no dia da primeira prova. Essa mesma metodologia apliquei para a turma de Java, que eram os concluintes da primeira turma deste curso, uma turma pequena, porém esforçada. O resultado desta turma foi muito gratificante, com 100% de aprovação.</p>
<p style="text-align:justify">Fiquei também muito feliz quando escutei do diretor que eu tinha conseguido um milagre, pois muitos alunos estavam elogiando um professor de linguagem de programação, algo realmente raro por ali.</p>
<p style="text-align:justify">Ao longo destes anos, ensinando diversas linguagens de programação e entrando em contato com os mais variados níveis de dificuldades e dúvidas, comecei a alimentar o sonho de desenvolver um curso capaz de atender e suprir as necessidades e lacunas por mim identificadas.</p>
<p style="text-align:justify">Finalmente o sonho da criação de cursos de linguagens de programação está se tornando realidade. E para estreiar, o primeiro curso a distância oferecido é o de <a href="http://marciobueno.com/treinamentos/cpp-orientado-objetos">C++ orientado a objetos</a>.</p>
<p style="text-align:justify">Quero  aproveitar para agradecer a todos os meus alunos que nestes 9 anos com seus feedbacks, críticas e incentivos me ajudaram a desenvolver e aprimorar a minha metodologia de ensino.</p>
<p style="text-align:justify"><em>Muito obrigado e sucesso para todos,</em></p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/cpp/dificil-aprender-linguagem-programacao/feed</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Instalando o Dev-C++ com MinGW e GDB atualizados</title>
		<link>http://marciobueno.com/cpp/instalando-devcpp-mingw-gdb-atualizados?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalando-devcpp-mingw-gdb-atualizados</link>
		<comments>http://marciobueno.com/cpp/instalando-devcpp-mingw-gdb-atualizados#comments</comments>
		<pubDate>Fri, 16 Jan 2009 20:27:45 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=13</guid>
		<description><![CDATA[O Dev-C++ é um ambiente de desenvolvimento em C++ muito utilizado por ser simples de usar e o seu pequeno tamanho (~13MB) em comparação com outras ferramentas como Visual C++ 2008, Netbeans ou Eclipse. Porém, um problema é que quando você instala o Dev-C++ com MinGW e GDB incluídos, você estará utilizando versões antigas das [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">O Dev-C++ é um ambiente de desenvolvimento em C++ muito utilizado por ser simples de usar e o seu pequeno tamanho (~13MB) em comparação com outras ferramentas como Visual C++ 2008, Netbeans ou Eclipse. Porém, um problema é que quando você instala o Dev-C++ com MinGW e GDB incluídos, você estará utilizando versões antigas das ferramentas e bibliotecas para C e C++.</p>
<p><span id="more-13"></span></p>
<p style="text-align:justify">Para resolver isto, segue abaixo um passo a passo para instalar o Dev-C++ com novas versões das ferramentas e bibliotecas:</p>
<ol style="text-align:justify">
<li> Baixe o instalador da última versão do TDM/MinGW (TDM/MinGW Installer &#8211; atualmente a 1.812.0 &#8211; tdm-mingw-1.812.0-f1.exe) do site <a href="http://downloads.sourceforge.net/tdm-gcc">SourceForge.net</a>. Observe o que o tamanho do arquivo é maior que 23MB</li>
<li>Instale o TDM/MinGW (tdm-mingw-1.812.0-f1.exe)
<ul style="text-align:justify">
<li> pressione Create</li>
<li> informe onde deseja instalar (ex: C:MinGW) e pressione Next</li>
<li> selecione o Mirror [South America - Curitiba, Brazil] UFPR] e pressione Next</li>
<li> se você desejar utilizar o GCC mais novo, porém ainda instável selecione TDM-GCC Recommended, C/C++ (minha preferência) ou se você desejar utilizar o GCC mais estável, selecione MinGW Stable, C/C++</li>
<li> pressione Install (e aguarde a instalação)</li>
<li> pressione Next</li>
<li> pressione Finish</li>
</ul>
</li>
<li>Baixe o instalador do Dev-C++ sem o MinGW e GDB (~2.3MB) a partir do link <a href="http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_nomingw_setup.exe">http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_nomingw_setup.exe</a></li>
<li>Se você já tiver o Dev-C++ instalado, primeiro desinstale-o. Depois de desinstalá-lo pelo windows explorer remova completamente a pasta do Dev-C++ (talvez você queira fazer um backup destes arquivos antes).</li>
<li>Instale o Dev-C++ utilizando as configurações padrões (devcpp-4.9.9.2_nomingw_setup.exe). <strong>OBS:</strong> se você tinha o Dev-C++ instalado selecione a opção Remove all previous configuration files</li>
<li>Execute o Dev-C++:
<ul style="text-align:justify">
<li> pressione Yes no aviso sobre utilizar o mingw32-make</li>
<li> pressione OK no aviso sobre utilizar uma versão beta</li>
<li> selecione a sua lingua &#8211; Portuguese (Brazil)</li>
<li> marque a opção Use XP Theme    pressione Next</li>
<li> pressione Next</li>
<li> pressione Next</li>
<li> pressione OK</li>
</ul>
</li>
<li><span style="color: #ff0000;">(Provavelmente opcional)</span> Para configurar o Dev-C++: Vá no Menu Ferramentas -&gt; Opções do Compilador, pressione OK nos dois aviso que aparecerão, selecione a guie Diretórios e inclua os seguintes diretórios dentro da guia Binários:
<ul style="text-align:justify">
<li>C:MinGWbin</li>
<li>C:MinGWlibexecgccmingw324.3.2 (se você escolheu instalar o TDM-GCC Recommended, C/C++) ou</li>
<li>C:MinGWlibexecgccmingw323.4.5 (se você escolheu instalar o MinGW Stable, C/C++)</li>
</ul>
</li>
<p style="text-align:justify"><strong>OBS:</strong> confirme se é realmente estes caminhos que foram instalados na sua máquina</p>
</ol>
<p style="text-align:justify"><strong>Pronto! </strong>Agora você já pode compilar e executar seus programas utilizando o Dev-C++ e provavelmente também terá menos problemas para utilizá-lo no Windows Vista.</p>
<p style="text-align:justify">Abraços e até a próxima,</p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/cpp/instalando-devcpp-mingw-gdb-atualizados/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Apresentação</title>
		<link>http://marciobueno.com/geral/apresentacao?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apresentacao</link>
		<comments>http://marciobueno.com/geral/apresentacao#comments</comments>
		<pubDate>Wed, 14 Jan 2009 04:07:19 +0000</pubDate>
		<dc:creator>Marcio Bueno</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://marciobueno.com/?p=9</guid>
		<description><![CDATA[Sejam bem vindos ao meu blog sobre linguagens de programação. Eu sou professor de linguagens de programação há 9 anos em cursos de graduação de Ciência da Computação e Tecnologia em Sistemas de Informação ensinando Java, C, C++, Delphi e Pascal. Quero utilizar este espaço para postar principalmente sobre algumas dicas e provocar discussões sobre [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">Sejam bem vindos ao meu blog sobre linguagens de programação.</p>
<p style="text-align:justify"> Eu sou professor de linguagens de programação há 9 anos em cursos de graduação de Ciência da Computação e Tecnologia em Sistemas de Informação ensinando <strong>Java</strong>, C, <strong>C++</strong>, Delphi e Pascal.
<p />
</p>
<p style="text-align:justify"> Quero utilizar este espaço para postar principalmente sobre algumas dicas e provocar discussões sobre tópicos relacionados com características, diferenças e desempenho de diversas linguagens.</p>
<p style="text-align:justify"> Dentro em breve devo estar criando uns posts mais substanciais, por hora estou aprendendo a configurar estas tecnologias para sites web como o Drupal e o WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://marciobueno.com/geral/apresentacao/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

