<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Robert CG's Blog</title>
	<atom:link href="http://robertcg.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://robertcg.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 02 Aug 2011 22:17:46 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='robertcg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Robert CG's Blog</title>
		<link>http://robertcg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://robertcg.wordpress.com/osd.xml" title="Robert CG&#039;s Blog" />
	<atom:link rel='hub' href='http://robertcg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Altere a senha de seu Orkut e MSN</title>
		<link>http://robertcg.wordpress.com/2011/08/02/altere-a-senha-de-seu-orkut-e-msn/</link>
		<comments>http://robertcg.wordpress.com/2011/08/02/altere-a-senha-de-seu-orkut-e-msn/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 20:46:17 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[alterar senha]]></category>
		<category><![CDATA[conta]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[Google Accounts]]></category>
		<category><![CDATA[hackeado]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[hotmail]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[Orkut]]></category>
		<category><![CDATA[senha]]></category>
		<category><![CDATA[Vírus]]></category>
		<category><![CDATA[windows live]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=185</guid>
		<description><![CDATA[Sabe quando seu MSN começa a enviar mensagens ou e-mails para toda a sua lista de contatos mesmo você estando offline (como se ele tivesse uma vida noturna e um apetite voraz por compartilhar links de sites de conteúdo adulto)? Ou quando algum mau feitor rouba seu Orkut e avisa no campo de status, com [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=185&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Sabe quando seu <em>MSN</em> começa a enviar mensagens ou e-mails para toda a sua lista de contatos mesmo você estando offline (como se ele tivesse uma vida noturna e um apetite voraz por compartilhar links de sites de conteúdo adulto)? Ou quando algum mau feitor rouba seu <em>Orkut</em> e avisa no campo de status, com uma mensagem de escárnio, que você foi hackeado? Pois é, justo para evitar estes transtornos que são no mínimo constrangedores, resolvi utilizar alguns minutos do meu vago tempo, a fim de lembrá-lo de: alterar sua senha de acesso ao <em>MSN (Windows Live)</em> e <em>Orkut (Google Accounts)</em>.<img class="size-full wp-image-186 aligncenter" style="border:0 none;margin-top:2px;margin-bottom:2px;" title="orkutmsn" src="http://robertcg.files.wordpress.com/2011/08/orkutmsn.gif?w=210&#038;h=128" alt="" width="210" height="128" /></p>
<p style="text-align:justify;">Hoje em dia, com a popularidade da internet, os vírus digitais, que tem como principal propósito: capturar logins, se tornaram tão epidêmicos que, logo quando se trata de um, num curto período de tempo surge outro incrivelmente pior. A proliferação dos vírus de computador se tem, também, graças a inclusão digital, que insere-se num movimento maior: inclusão social, justo por isso:</p>
<blockquote><p>Comunidades como o próprio Orkut se tornaram hospedeiras de vírus e a maioria dos perfis ali presentes deveriam ser mantidos sob quarentena.</p></blockquote>
<p style="text-align:justify;"><span id="more-185"></span></p>
<p style="text-align:justify;">Sendo assim, para assegurar que nenhum humano ou máquina tenha acesso a sua conta ou login, vamos alterá-las: Para realizar esta tão simples proeza, vamos visitar a página que a Microsoft reserva para tal finalidade, portanto, entre com seus dados de conta de <em>Hotmail</em> (<em>MSN</em>) no seguinte link:</p>
<blockquote><p>https://login.live.com/</p></blockquote>
<p style="text-align:justify;">Após conectar-se como você mesmo, no alto a direita você verá seu nome de usuário, clicando nele você terá um menu em cascata surgindo com diversas opções, no entanto, clique em contas.</p>
<p style="text-align:justify;">A página que surgi se chama <em>&#8220;Visão geral da conta</em>&#8220;, nela você pode facilmente alterar não somente sua senha, mas também: seu nome de usuário, data de nascimento, pode-se alterar também as informações para a redefinição de sua senha, simplesmente clicando no link &#8220;<em>Alterar</em>&#8220;.</p>
<p style="text-align:justify;">Tendo clicado no link para redefinir sua senha, surgirá uma página denominada &#8220;<em>Altere sua senha</em>&#8220;, nela você recebe três campos sendo: “<em>Senha antiga</em>”, “<em>Digite a nova senha</em>”, e por fim, “<em>Digite novamente a nova senha</em>”, onde você deve fazer justamente o que o titulo do campo propõe. Clique em salvar e terá sua nova senha atualizada.</p>
<p style="text-align:justify;">Bom, agora vamos alterar a senha de acesso ao Google, que só não é tão simples quanto ter o Orkut hackeado. Entre na página inicial do Google e digite lá seu login. A direita, assim como na página da Microsoft, clique em seu nome de usuário e logo no menu que surgir, clique em “<em>Configurações da conta</em>”, na página que segue, “<em>Visão geral da conta</em>”, altere sua senha e pronto!</p>
<p style="text-align:justify;">Com isso, você esta mais seguro, detalhe, escreva suas novas senhas num arquivo de texto por segurança, até que você se familiarize com elas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=185&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2011/08/02/altere-a-senha-de-seu-orkut-e-msn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>

		<media:content url="http://robertcg.files.wordpress.com/2011/08/orkutmsn.gif" medium="image">
			<media:title type="html">orkutmsn</media:title>
		</media:content>
	</item>
		<item>
		<title>Maglev, O Trem Voador</title>
		<link>http://robertcg.wordpress.com/2011/08/01/maglev-o-trem-voador/</link>
		<comments>http://robertcg.wordpress.com/2011/08/01/maglev-o-trem-voador/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 21:30:33 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Maglev]]></category>
		<category><![CDATA[Maglev Cobra]]></category>
		<category><![CDATA[Transporte]]></category>
		<category><![CDATA[Trem]]></category>
		<category><![CDATA[Viajem]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=133</guid>
		<description><![CDATA[As viagens aéreas com certeza revolucionaram a indústria de transportes do século XX, graças à velocidade e segurança dos aviões. No entanto, hoje, em pleno século XXI, as viagens aéreas se tornaram um tanto congestionadas e os voos frequentemente atrasam, deixando “no ar” a ligeira ideia de que há mais engarrafamentos no céu que na [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=133&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As viagens aéreas com certeza revolucionaram a indústria de transportes do século XX, graças à velocidade e segurança dos aviões. No entanto, hoje, em pleno século XXI, as viagens aéreas se tornaram um tanto congestionadas e os voos frequentemente atrasam, deixando “no ar” a ligeira ideia de que há mais engarrafamentos no céu que na terra. Além do mais, viagens aéreas de curto trajeto costumam sair mais caro que as de longo trajeto, tornando assim, viajar diariamente de avião, inviável para a maioria dos cidadãos.</p>
<p>Noutro canto da rua encontram-se as empresas de ônibus, que são campeãs no quesito: Indústrias de Transporte com Menor Número de Seguidores no Twitter e amigos no Facebook. Viajar de ônibus é sem dúvida a tortura “mor” para o trabalhador. Nem por isso a fatia de bolo das empresas de ônibus não deixa de ser enorme! Baixa remuneração ao trabalhador, baixa manutenção dos veículos e pressos amargos para os clientes.</p>
<p>Estas características desgostosas, entre muitas outras, tem dado forças e inspiração para a criação de meios de transportes conceituais dos mais diversos e improváveis tipos. Um dos mais impressionantes, que é econômico e de custo acessível para os grandes centros urbanos, saiu do papel e esta correndo a aproximadamente 430 km/h em Xangai:</p>
<p style="text-align:center;"><a href="http://robertcg.files.wordpress.com/2011/08/shanghai-maglev.jpg"><img class="size-full wp-image-134 aligncenter" style="border:0 none;margin-top:2px;margin-bottom:2px;" title="Shanghai Maglev" src="http://robertcg.files.wordpress.com/2011/08/shanghai-maglev.jpg?w=400&#038;h=266" alt="" width="400" height="266" /></a><span id="more-133"></span></p>
<p>O <em>Maglev</em> ou Magnetic levitation transport (Transporte de Levitação Magnética), é um Trem que, literalmente, voa baixo. É isso mesmo, este trem voa ou levita &#8211; como você preferir.</p>
<blockquote><p>É “Trem” pra Mineiro nenhum botar defeito!</p></blockquote>
<p>Dizem que os opostos se atraem e os semelhantes se afastam, no caso dos imãs e eletroímãs isso é verdade e é justamente por este princípio básico que o Maglev funciona. Graças ao campo magnético, criado pela bobina elétrica que há no trilho guia, repelindo os grandes imãs que há no trem, temos uma levitação de até 10 cm de altura do solo. O mesmo princípio é utilizado para mover o trem: um sistema de campos magnéticos dentro das paredes do trilho que, puxam e empurram o trem pelo trilho guia, empurram o veículo a uma velocidade incrível e praticamente sem ruído algum.</p>
<p>No Brasil, temos como alternativa o <em>Maglev Cobra</em>, desenvolvido pela UFRJ, Coppe e pela Escola Politécnica através do LASUP, que fica pra trás dos competidores apenas em questão de velocidade (sua velocidade normal de operação ocorrerá dentro de uma faixa de 70 a 100 km/h, não muito diferente do Metrô de Belo Horizonte). Bom&#8230; em relação ao Maglev de Xangai, a nossa versão, em comparação de velocidade, ainda esta se arrastando, mas poderia ser pior, imagina se o nosso trem se chamasse Maglev Saci?</p>
<p>Deixando de lado o fato de não ser o mais veloz, o Maglev Cobra apresenta um grande número de vantagens como:</p>
<blockquote>
<ul>
<li>Baixou custo global</li>
<li>Rapidez de aplicação e implantação</li>
<li>Leveza</li>
<li>Baixo custo de obras civis</li>
<li>Não poluente e</li>
<li>Racionalização</li>
</ul>
</blockquote>
<p>Pois é, com todas estas vantajosas características, só resta agora colocar em prática, ou seja dar início as obras e implantá-lo dos grandes centros comerciais do Brasil até as cidades dormitório (tomara que não demore tanto quanto o ônibus que me leva ao trabalho).</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Now playing: <a title="'Elvis Presley - Hound Dog' - open on Yahoo! Music" href="http://www.foxytunes.com/artist/elvis+presley/track/hound+dog?locale=chrome://global/locale/intl.properties">Elvis Presley &#8211; Hound Dog</a></p>
<p>via <a title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=133&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2011/08/01/maglev-o-trem-voador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>

		<media:content url="http://robertcg.files.wordpress.com/2011/08/shanghai-maglev.jpg" medium="image">
			<media:title type="html">Shanghai Maglev</media:title>
		</media:content>
	</item>
		<item>
		<title>Áudio 5.1 no Windows 7</title>
		<link>http://robertcg.wordpress.com/2011/08/01/som_5-1_no_windows7/</link>
		<comments>http://robertcg.wordpress.com/2011/08/01/som_5-1_no_windows7/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 18:35:56 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[5.1]]></category>
		<category><![CDATA[ASUS]]></category>
		<category><![CDATA[Goldship]]></category>
		<category><![CDATA[Home Theater]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[LGA775]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[P5KPL SE]]></category>
		<category><![CDATA[Realtek]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=122</guid>
		<description><![CDATA[Em meu Quad-Core LGA775 Intel, que eu gentilmente chamo de Kuiuiu, instalei, naquela época, com propósito de me divertir com alguns jogos, o ultimo sistema operacional da Microsoft, o admirável Windows 7. A placa mãe que incorpora meu Quad é uma ASUS P5KPL SE, que tem, como um dos principais destaques, o sistema de som [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=122&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Em meu Quad-Core LGA775 Intel, que eu gentilmente chamo de Kuiuiu, instalei, naquela época, com propósito de me divertir com alguns jogos, o ultimo sistema operacional da Microsoft, o admirável Windows 7.</p>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 313px"><a href="http://robertcg.files.wordpress.com/2011/08/asus-p5kpl-se2-e1312241153649.jpg"><img class="size-full wp-image-147  " style="border:0 none;margin:2px;" title="asus-p5kpl-se" src="http://robertcg.files.wordpress.com/2011/08/asus-p5kpl-se2-e1312241153649.jpg?w=303&#038;h=259" alt="" width="303" height="259" /></a><p class="wp-caption-text">ASUS P5KPL SE</p></div>
<p>A placa mãe que incorpora meu Quad é uma ASUS P5KPL SE, que tem, como um dos principais destaques, o sistema de som Realtek ALC 662 (6 canais de áudio de alta definição). No entanto, até alguns dias, eu não conseguia obter uma saída de som 5.1 no meu mais novo sistema operacional o que inutilizava meu Home Theater (um modesto Goldship). A solução foi procurar e isso nunca me seria problema, pois, como todo geminiano, sou um tanto curioso!<span id="more-122"></span></p>
<p>Caminhando pela internet, notei que muitíssimos internautas passavam pelo mesmo que eu. Quando cheguei no site da ASUS, uma surpresa, dei de cara com algo que até então não havia: não sei desde quando mas a ASUS possui suporte para Windows 7, sendo que, o DVD que integra a placa mãe, vem escrito em letras brancas sobre um fundo amarelo: Vista Drivers Inside.</p>
<p>Portanto, você que possui uma P5KPL SE, baixe e instale o novo driver de áudio neste endereço: <a title="ASUS Download" href="http://robertcg.wordpress.com/2011/08/01/som_5-1_no_windows7/" target="_blank">http://www.asus.com/Motherboards/Intel_Socket_775/P5KPL_SE/#download</a>, e divirta-se com seu som de cinema!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Now playing: <a href="http://www.foxytunes.com/artist/the+beatles/track/lucy+in+the+sky+with+diamonds?locale=chrome://global/locale/intl.properties">The Beatles &#8211; Lucy in the Sky With Diamonds</a> via <a href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=122&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2011/08/01/som_5-1_no_windows7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>

		<media:content url="http://robertcg.files.wordpress.com/2011/08/asus-p5kpl-se2-e1312241153649.jpg" medium="image">
			<media:title type="html">asus-p5kpl-se</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Operadores Lógico &amp; Controle de Fluxo</title>
		<link>http://robertcg.wordpress.com/2009/12/15/operadores-logico-controle-de-fluxo/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/operadores-logico-controle-de-fluxo/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:40:20 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[break]]></category>
		<category><![CDATA[Controle de Fluxo]]></category>
		<category><![CDATA[do while]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[If]]></category>
		<category><![CDATA[if else]]></category>
		<category><![CDATA[Operadores Lógicos]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=91</guid>
		<description><![CDATA[Operadores Lógicos Para eliminar as dúvidas produzidas pela ambigüidade, temos os operadores lógicos, que estabelecem uma linguagem protocolar, clara e precisa. O retorno de um operador lógico é denominado “Valor Lógico”, que somente pode ser de dois tipos: verdadeiro ou falso. Operador Símbolo Exemplo OR (OU) &#124;&#124; (espressão1) &#124;&#124; (espressão2) AND (E) &#38;&#38; (espressão1) &#38;&#38; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=91&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Operadores Lógicos</em></strong></p>
<p>Para eliminar as dúvidas produzidas pela ambigüidade, temos os operadores lógicos, que estabelecem uma linguagem protocolar, clara e precisa. O retorno de um operador lógico é denominado “Valor Lógico”, que somente pode ser de dois tipos: verdadeiro ou falso.<span id="more-91"></span></p>
<table width="628" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="29%">Operador</td>
<td valign="top" width="22%">Símbolo</td>
<td valign="top" width="48%">Exemplo</td>
</tr>
<tr>
<td valign="top" width="29%">OR (OU)</td>
<td valign="top" width="22%">||</td>
<td valign="top" width="48%">(espressão1) || (espressão2)</td>
</tr>
<tr>
<td valign="top" width="29%">AND (E)</td>
<td valign="top" width="22%">&amp;&amp;</td>
<td valign="top" width="48%">(espressão1) &amp;&amp; (expressão)</td>
</tr>
<tr>
<td valign="top" width="29%">NOT (NÃO)</td>
<td valign="top" width="22%">!</td>
<td valign="top" width="48%">! (expressão)</td>
</tr>
</tbody>
</table>
<p><em>Tabela 03_Operadores Lógicos</em><em> </em></p>
<p>OR: Disjunção não exclusiva</p>
<p>END: Conjunção</p>
<p>NOT: Negação</p>
<p>O operador lógico OR (||), analisa as duas expressões, se uma delas for verdadeira ou diferente de zero, o retorno de OR será verdadeiro:</p>
<p>((a + b = 3) || (a + b = 6)) {comando}</p>
<p>Se “a + b = 3” ou “a + b = 6” for verdadeiro execute o comando seguinte.</p>
<p>O operador lógico AND (&amp;&amp;), analisa duas expressões, para ele retornar valor verdadeiro, as duas expressões devem ser verdadeiras.</p>
<p>((a + b = 3) &amp;&amp; (y + z = 3)) {comando}</p>
<p>Se “a + b = 3” e “y + z = 3”  for verdadeiro o comando seguinte deve ser executado.</p>
<p>O operador lógico NOT (!) que pode ser interpretado como “Diferente de”, avalia uma única expressão por vez, se o valor avaliado for verdadeiro ele retorna falso, se for falso ele retorna verdadeiro.</p>
<p>(a != b) {comando}</p>
<p>Se “a” for diferente de “b” o comando seguinte deve ser executado.</p>
<p>Há exemplos a respeito dos operadores lógicos no capitulo <strong>if</strong>.</p>
<p><strong><em>Operadores Relacionais</em></strong></p>
<p>São eles:</p>
<table style="height:98px;" width="472" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="131">Símbolos</td>
<td valign="top" width="180">Finalidade</td>
<td valign="top" width="289">Exemplo</td>
</tr>
<tr>
<td valign="top" width="131">==</td>
<td valign="top" width="180">Semelhante a</td>
<td valign="top" width="289">(espressão1) == (espressão2)</td>
</tr>
<tr>
<td valign="top" width="131">&lt;</td>
<td valign="top" width="180">Menor que</td>
<td valign="top" width="289">(espressão1) &lt; (espressão2)</td>
</tr>
<tr>
<td valign="top" width="131">&gt;</td>
<td valign="top" width="180">Maior que</td>
<td valign="top" width="289">(espressão1) &gt; (espressão2)</td>
</tr>
<tr>
<td valign="top" width="131">&lt;=</td>
<td valign="top" width="180">Menor ou igual a</td>
<td valign="top" width="289">(espressão1) &lt;= (espressão2)</td>
</tr>
<tr>
<td valign="top" width="131">&gt;=</td>
<td valign="top" width="180">Maior ou igual a</td>
<td valign="top" width="289">(espressão1) &gt;= (espressão2)</td>
</tr>
</tbody>
</table>
<p><em>Tabela 04_Operadores Relacionais</em></p>
<p>Os Operadores Relacionais comparam a expressão e retornam verdadeiro quando a comparação esta correta. São usados em expressões lógicas.</p>
<p>A seguir, exemplos.</p>
<p><strong><em>Controle de Fluxo</em></strong></p>
<p>Como já foi escrito diversas vezes: um programa é lido de cima para baixo. Há certos momentos que necessitamos fazer alguns “desvios” pelo corpo do programa, ou pular para uma outra área. Justo para estes momentos existe os comandos de controle lógico de fluxo:</p>
<p><strong><em>If</em></strong></p>
<p>//13° if</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>bool</strong> falso = (2 + 2 != 4);     //expressão lógica</p>
<p><strong>if</strong> (falso == 0 )       //expressão lógica</p>
<p>{</p>
<p>cout &lt;&lt; &#8221; Falso!&#8221;;</p>
<p>}</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O “<em>if</em>” tem como parte integrante um par de parênteses onde uma determinada condição deve ser alojada, e um corpo limitado por chaves. Há códigos fontes onde se encontram o controlador de fluxo if sem as chaves que limitam seu conteúdo ou instruções, embora não aja – em casos distintos – a necessidade de usá-las em determinados códigos, o programador deve ter total conhecimento sobre onde param os saltos de seu código fonte. As chaves não só limitam o corpo do if como orientam o programador ao indentar.</p>
<p>Acima temos uma típica exemplificação do “<em>if</em>”, que somente será executado se o valor da variável <em>falso</em> do tipo bool for zero. O bool recebeu o identificador falso, que atribuído a ele foi a expressão: 2 + 2 é diferente de 4, como a expressão esta errada o bool envia o zero que o if aguarda.</p>
<p><strong><em>If &amp; Else</em></strong></p>
<p>O “else” é chamado quando o valor do parâmetro de if é dado como falso, o else também possui um corpo limitado por um par de chaves.</p>
<p>(1)       <strong>if</strong> (a &gt; 0)</p>
<p>(2)                   {</p>
<p>(3)                   cout &lt;&lt;“<em>A</em> é maior que zero&#8230;”;</p>
<p>(4)                   }</p>
<p>(5)                   <strong>else</strong></p>
<p>(6)                               {</p>
<p>(7)                               cout &lt;&lt;“<em>A</em> é menor de 0”;</p>
<p>(8)                               }</p>
<p>Acima temos na primeira linha o parâmetro do if dentro dos parênteses:</p>
<p>Se “<em>a</em>” for maior que “0” escreva: “A é maior que zero”. Vamos supor que “<em>a</em>” e uma variável que a ela foi atribuído o valor duma divisão. Mesmo sabendo a procedência de “<em>a</em>” ainda não sabemos o valor. O if avalia o valor de “<em>a</em>” presente entre os parênteses com a condição “maior que zero”, se o valor de a em relação a condição for falso o else entra em ação, ou seja, o comando reservado ao bloco do else será executado. Verdade é e que o else é opcional, é possível utilizar o if sem o apóio do else:</p>
<p>O else, que começa na linha cinco tem seu corpo notavelmente limitado por um par de chaves, finalizado na linha oito. O corpo destes operadores de fluxo é semelhante ao do int main (), portanto todo conteúdo que se encontra entre as chaves deve ser finalizado com o ponto e vírgula.</p>
<p>//if else</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int </strong>numero1;</p>
<p><strong>int</strong> numero2 = 10;<strong> </strong></p>
<p>cout &lt;&lt; “Digite um valor para Numero 1: ”;</p>
<p>cin &gt;&gt; numero1;</p>
<p><strong>if</strong> (numero1 &gt;= numero2)  //linha 11</p>
<p>{</p>
<p>cout &lt;&lt; “Numero 1 maior ou igual a Numero 2”;</p>
<p>}</p>
<p><strong>else</strong></p>
<p>{</p>
<p>cout &lt;&lt; “Numero 1 menor que Numero 2”;</p>
<p>}</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}                                              //fim do main</p>
<p>No exemplo acima: temos duas variáveis do tipo int, o valor 10 foi atribuído a variável “<em>numero2</em>”, já a variável de nome “<em>numero1”</em> receberá um valor a partir da interação do usuário com o programa, ou seja, o “cin” da família do iostream vai capturar o valor e o atribuí-lo a variável numero1. Na linha 11 temos o if e seu parâmetro que exibira o conteúdo do bloco apenas se: o valor de <em>numero1</em> for maior ou igual ao valor do numero2; caso contrário – se o valor for menor que o esperado: o else exibe o conteúdo confinado em seu bloco.</p>
<p>Se, unicamente, a variável <em>numero1</em> for maior ou igual a <em>numero2</em> o conteúdo de if será exibido, todas as outras possibilidades são cabíveis ao else. O corpo do <em>int main</em> acima pode ser escrito de outras formas, dando mais opções, ou eliminando a onipotência do else:</p>
<p><strong>if</strong> (numero1 &gt;= numero2)  //linha 11</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;Numero 1 maior ou igual a Numero 2&#8243;;</p>
<p>}</p>
<p><strong>if</strong> ((numero1 &lt; 10) &amp;&amp; (numero1 &gt;= 0))  //substitui o else</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;Numero 1 menor que 10&#8243;;</p>
<p>}</p>
<p><strong>if</strong> (numero1 &lt; 0)       //adiciona outro if</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;Numero 1 negativo&#8221;;</p>
<p>}</p>
<p>Acima temos a inclusão de um novo if para aumentar as possibilidades do programa o tornando mais&#8230; flexível. O else foi substituído por um if com o seguinte parâmetro: se numero1 for menor que 10 e numero1 for maior ou igual a zero, exiba: Numero 1 menor que 10. Portanto o segundo if toma para si todas as possibilidade de numero1 estar entre o zero e o nove. Todas as possibilidades abaixo de zero serão representadas pelo terceiro if, que tem como parâmetro: se o numero1 for menor que zero exiba: Numero1 negativo.</p>
<p><strong><em>If Encadeado</em></strong></p>
<p>Dentro do corpo de if &amp; else pode se inserir ou declarar qualquer comando possível da sintaxe do C++, assim sendo, pode se haver um outro if &amp; else:</p>
<p>//if &amp; else encadeado</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int</strong> numero;</p>
<p>cout &lt;&lt; &#8221; Digite um numero do conjunto dos inteiros: &#8220;;</p>
<p>cin &gt;&gt; numero;</p>
<p><strong>if</strong> (numero &lt; 10)       //primeiro if</p>
<p>{</p>
<p><strong>if</strong> (numero &gt; 0)        //segundo if dentro do corpo do primeiro</p>
<p>{</p>
<p>cout &lt;&lt; &#8221; Numero entre ZERO e DEZ ou igual a ZERO ou DEZ&#8221;;</p>
<p>}</p>
<p><strong>else </strong>//ßprimeiro else<strong> </strong></p>
<p>{</p>
<p>cout &lt;&lt; &#8221; Numero menor que ZERO&#8221;;</p>
<p>}</p>
<p>}           //fim do primeiro if</p>
<p><strong>else </strong>//ßsegundo else<strong> </strong></p>
<p>{</p>
<p>cout &lt;&lt; &#8221; Numero maior que DEZ&#8221;;</p>
<p>}</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Após todo processo de atribuição de valor para a variável <em>numero</em>, o primeiro if e o segundo avaliam o valor concedido para a variável: se for menor que dez e maior que zero a frase: Numero entre ZERO e DEZ ou igual&#8230; será exibida.</p>
<p>Se o valor atribuído a variável for maior que dez – contradizendo a condição do primeiro if &#8211; o segundo else entra em ação exibindo o conteúdo confinado entre suas chaves. Observe que o segundo “else” esta alinhado com as chaves do primeiro if, isso quer dizer que ele pertence ao primeiro if e: se o valor da variável não estiver de acordo com a condição do primeiro if, o else será chamado. <em>Longa vida a Indentação!</em></p>
<p>Se a variável <em>numero</em> for menor que zero, contradizendo a condição do segundo if, o primeiro else – alinhado às chaves do segundo if – entra em ação exibindo o conteúdo confinado no seu bloco.</p>
<p><strong><em>While</em></strong></p>
<p>O Controlador de Fluxo <em>while</em> é capaz de repetir uma determinada área do código infinitas vezes, ou repetir uma função ou opção se a condição for verdadeira.</p>
<p><strong>while</strong> (Condição) {sentença}</p>
<p>A condição pode ser formada utilizando operadores lógicos ou relacionais ou simplesmente uma variável.</p>
<p>Como o programa vai repetir um número indeterminado de vezes, não é mais necessário a inclusão da biblioteca conio e sua função getch.</p>
<p>No exemplo seguinte, temos um código fonte que quando compilado e executado dará ao usuário o número ASCII de um caractere, símbolo ou número.</p>
<p>Duas variáveis do tipo char foram criadas. O parâmetro do while recebeu a variável <em>loop</em> que tem como valor “s” atribuído.</p>
<p>Após o cout exibir seu ultimo conteúdo, chegamos ao fim do bloco do while, portanto, o while confirma se <em>loop</em> é igual a “s” como a confirmação é verdadeira, o while repete todo o conteúdo confinado em seu bloco novamente.</p>
<p>//While</p>
<p># include &lt;iostream.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>char </strong>loop = ‘s’;</p>
<p><strong>unsigned char </strong>letra;</p>
<p><strong>while</strong> (loop)</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;\n Digite uma letra para recebe-la em ASCII :\b&#8221;</p>
<p>&#8220;\n\tOu CTRL + C para sair :\b&#8221;;</p>
<p>cin &gt;&gt; letra;</p>
<p>cout &lt;&lt; &#8220;\t   &#8221; &lt;&lt; letra &lt;&lt;&#8221; &gt;&gt; ASCII &gt;&gt; &#8221; &lt;&lt; (<strong>int</strong>) letra &lt;&lt;endl;</p>
<p>}</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>A outros meios de se criar um laço infinito como o que temos no exemplo acima, pode-se, simplesmente, colocar entre os parênteses do while a palavra reservada <em>True</em> (verdadeiro) ou o numero 1 que tem valor igual.</p>
<p><strong><em>Do While</em></strong></p>
<p>Para que o while de um suposto programa seja executado pelo menos uma vez temos o auxiliar <em>do</em>. A final, se a condição do parâmetro do while nunca for verdadeira o conteúdo dele nunca será exibido.</p>
<p><strong>do</strong> {sentença} <strong>while</strong> (condição);</p>
<p>//Do While</p>
<p># include &lt;iostream.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>char</strong> resposta;</p>
<p><strong>unsigned char</strong> letra;</p>
<p><strong>do</strong></p>
<p>{</p>
<p>cout &lt;&lt; &#8220;\n Digite uma letra para recebe-la em ASCII : &#8220;</p>
<p>&#8220;\n\tOu CTRL + C para sair :\b&#8221;;</p>
<p>cin &gt;&gt; letra;</p>
<p>cout &lt;&lt; &#8220;\t   &#8221; &lt;&lt; letra &lt;&lt; &#8221; &gt;&gt; ASCII &gt;&gt; &#8221; &lt;&lt; (<strong>int</strong>) letra &lt;&lt;endl;</p>
<p>cout &lt;&lt; &#8220;Para continuar pressione [S]&#8220;;</p>
<p>cin &gt;&gt; resposta;</p>
<p>}</p>
<p><strong> while</strong> (resposta == &#8216;S&#8217; || resposta == &#8216;s&#8217;);</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>No código fonte acima, duas variáveis do tipo char foram declaradas. O <em>do,</em> logo de imediato, exibe o valor confinado entre as chaves sem passar por condição alguma. O cin é utilizado na ultima linha do bloco para capturar um valor igual a “<em>S</em>” ou diferente e atribuí-lo a variável resposta. O while analisa o valor atribuído a variável <em>resposta</em>, a condição é:</p>
<p>Se for igual a “s” minúsculo ou maiúsculo, o laço se repete, se diferente o programa termina naturalmente. Se a condição do while não for previamente especificada pelo programador, o laço assume o valor verdadeiro ou true e repetira seu conteúdo um número indeterminado de vezes.</p>
<p>O do while somado as características do switch são a ferramenta perfeita para se fazer menus em C++ estruturado.</p>
<p><strong><em>Break &amp; Continue</em></strong></p>
<p>A palavra reservada <em>Break</em> é incluída em um laço quando não se há mais a necessidade deste continuar a executa sua rotina, ou seja, quando o objetivo do laço foi concluído o break surge para quebrar a rotina previamente definida.</p>
<p>No exemplo Raiz Quadrada do capitulo <strong>For</strong> temos uma exemplificação perfeita do uso do break, onde: quando a raiz é encontrada o laço é quebrado pelo break e o programa retorna ao ponto onde havia parado.</p>
<p>Já a palavra reservada <em>continue</em> da um fim na linha atuante mas não sai do while. O continue é utilizado quando o conteúdo que o sucede deve ser sob qualquer hipótese, exibido.</p>
<p>O exemplo abaixo exibe, a partir da interação com o usuário, uma reta do conjunto dos Inteiros.</p>
<p>// Break &amp; Continue</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int</strong> num;</p>
<p>cout &lt;&lt; &#8220;Digite um numero do conjunto dos \n&#8221;</p>
<p>&#8220;inteiros entre 1 a 10: *\b&#8221;;</p>
<p>cin &gt;&gt; num;</p>
<p>cout &lt;&lt; &#8220;\nZ = {(&#8230;&#8221;;</p>
<p><strong>int</strong> num2 = (num * (-1));</p>
<p><strong>while</strong> (<strong>true</strong>)</p>
<p>{</p>
<p>num2 ++;</p>
<p><strong>if</strong> (num &gt; num2)</p>
<p>{</p>
<p>cout &lt;&lt;num2 &lt;&lt; &#8220;, &#8220;;</p>
<p><strong>continue</strong>;</p>
<p>}</p>
<p>cout &lt;&lt; &#8220;&#8230;)}&#8221;                        //linha 20</p>
<p>&#8220;\n\n\tAcima a reta do conjunto&#8221;</p>
<p>&#8220;\n\tdos inteiros entre -&#8221;&lt;&lt;num2 &lt;&lt; &#8221; e &#8221; &lt;&lt;num;</p>
<p><strong>break</strong>;</p>
<p>}  //fim do while</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Uma variável denominada <em>num</em> foi declarada e o comando cin atribui valor a ela. Outra variável denominada <em>num2</em> foi definida na linha 10, o valor atribuído a ela é igual ao valor da primeira variável vezes menos um, ou seja, se o valor atribuído a variável num for igual a 5, o valor da variável num2 será igual a 5 negativo.</p>
<p>O while tem true como parâmetro, que permite que ele seja infinito – verdade é que o break quebra o while, então ele não é realmente infinito. Após o num2 ser incrementado, o if surge com uma condição para exibir o valor incrementado:</p>
<p>Se num for maior que num2 exiba.</p>
<p>Portanto, se num for igual a 3 num2 será igual a um laço que começa em -3 e vai incrementando: <em>-</em>2, -1, 0, &#8230;, 3<em>,</em> até ser maior que o num. Quando o num2 for maior que num o if não mais o exibe, o continue pula para a linha 20, após o conteúdo do cout ser exibido o break encerra o while.</p>
<p>Observe na linha 22, (&#8230;inteiros entre -&#8221;&lt;&lt;num2 &lt;&lt; &#8221; e &#8221; &lt;&lt;num) após a palavra “entre” há um traço representando o sinal negativo, como o num2 termina com o mesmo valor do num foi necessário inserir este sinal para representar o primeiro número do conjunto.</p>
<p>Como o break encerra o while, para o programa não fechar após a exibição do ultimo cout, o getch da biblioteca conio foi inserido no código fonte.</p>
<p><strong><em>For</em></strong></p>
<p>A sintaxe do <em>for:</em></p>
<p><strong>for</strong> ( inicialização; condição; incremento) {sentença}</p>
<p>A sentença será executada até que o valor da condição seja falso.</p>
<p>A inicialização pode ser uma expressão ou condição, ela é a primeira a ser executada. Variáveis definidas dentro do parâmetro do for são válidas apenas dentro do for, por exemplo:</p>
<p><strong>for</strong> ( <strong>int</strong> i = 0; i &lt; 10; i ++) {sentença}</p>
<p>No caso acima, temos o “i” do tipo inteiro com valor inicial igual a zero, a condição determina que “i” vai até 9, o incremento produz todos os valores entre  0 e 9 e os atribui a variável int i.</p>
<p>Se no parâmetro do for não houver valor algum, temos um laço for infinito:</p>
<p><strong>for</strong> ( ; ; );</p>
<p>O exemplo a seguir encontra raízes quadradas a partir da interação do usuário. Este exemplo é muito interessante por sua simplicidade, nele é utilizado não só o controlador de fluxo for, mas o if também dentro do corpo do for.</p>
<p>//Raiz Quadrada</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main()</p>
<p>{</p>
<p><strong>int</strong> r, i;</p>
<p>cout &lt;&lt; &#8220;Digite um numero do conjunto dos inteiros positivo: &#8220;;</p>
<p>cin &gt;&gt; r;</p>
<p><strong>for</strong> (i = 0; i &lt; r; i ++)                    //Se: r = 9, i = {0, 1, 2, 3, 4, 5, 6, 7, 8}</p>
<p>{</p>
<p><strong>if</strong> (i * i == r)</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;A raiz de &#8221; &lt;&lt; r &lt;&lt; &#8221; eh: &#8221; &lt;&lt; i;</p>
<p><strong>break</strong>;</p>
<p>}</p>
<p>}</p>
<p><strong>if</strong> ( i * i != r)   //linha 18</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;\tRaiz Inexistente!&#8221;;</p>
<p>}</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Duas variáveis do tipo int foram declaradas, mas nenhum valor foi atribuído a elas. O cout é usado para informar ao usuário que deve digitar um número do conjunto dos inteiros para que o programa lhe envie a raiz – se existente -, o cin logo abaixo captura o valor e o atribui a variável “r”. A variável <em>int i</em> é utilizada dentro do parâmetro do <em>for</em> tendo inicialmente seu valor igual <em>zero</em> até <em>r &#8211; 1</em>, ou seja:</p>
<p>Se “r” for igual a nove, i = {0, 1, 2, 3,&#8230;, 7, 8}, um laço de 0 até 8.</p>
<p>No bloco do for tem os comandos para com este laço:</p>
<p>O controlador de fluxo if que se encontra entre as chaves do for, testa todas as combinações possíveis entre o conjunto de números que foram atribuídos ao “i” dentro do parâmetro do for.</p>
<p>A condição do parâmetro do if será verdadeira quando:</p>
<p>Se “i” vezes “i” for igual a r, execute o cout. Graças ao break o laço é interrompido logo no momento em que o if encontra a raiz, se a raiz não for encontrada entre todas as possibilidades, temos a partir da linha 18 as ações decorrentes:</p>
<p>Se i * i for diferente de r, exiba Raiz Inexistente. Simples e eficiente!</p>
<p><strong><em>Switch</em></strong></p>
<p>Muito usado para criar menus em C e C++ estruturado, o <em>Switch</em> tem lá suas semelhanças com as funções do capitulo 11, ora, pois:</p>
<p>O switch recebe um argumento do bloco principal que passa por instruções em seu próprio corpo. As instruções de seu corpo comparam o argumento recebido com um distinto número de alternativas, que podem variar entre qualquer expressão válida em C++. O switch avalia o argumento e o compara com as possibilidades presentes em seu próprio corpo.</p>
<p>O switch pode ser definido entre as chaves de uma função e ao mesmo tempo guardar instruções como chamadas de uma outra função:</p>
<p><strong>switch</strong> (d)</p>
<p>{</p>
<p><strong>case</strong> 1:</p>
<p>somar();</p>
<p><strong>break</strong>;</p>
<p><strong>case</strong> 2:</p>
<p>cout &lt;&lt; “Maior Abandonado”;</p>
<p><strong>break</strong>;</p>
<p><strong>default</strong>:</p>
<p>cout &lt;&lt; “Numero Invalido!”;</p>
<p>}</p>
<p>Acima, como exemplo, o switch tem o corpo limitado por chaves, entre estas chaves encontram se os cases – casos – que são enumerados pelo programador. Além de números podem receber letras também se a variável que estão esperando for do tipo char. Cada case é encerrada com o comando break, o default não necessita de um comando break sendo que ele é a ultima opção.</p>
<p>Entre os parênteses, o switch tem uma variável denominada “d”, julgando que o argumento recebido no int main seja de tipo esperado e de valor igual a 2, então, o case dois do corpo do switch será acionado &#8211; o cout terá permissão para exibir seu conteúdo. Portanto se o valor esperado pelo switch for igual a 1, o case 1 será acionado e a função somar será executada.</p>
<p>Atenção: A condição do switch é de igualdade, ele avalia e compara o valor recebido com o valor de seus <em>cases</em>, sendo assim, não se usam variáveis do tipo bool, muito menos operadores relacionais como Parâmetro do switch.</p>
<p>Qualquer que seja o número digitado &#8211; diferente de 1 ou 2 &#8211; o default será acionado. Embora não seja obrigatório, o default é muito útil para o tipo de aviso exemplificado acima.</p>
<p>O break determina até onde vai a permissão concedida ao <em>case</em>, por exemplo, se o primeiro break for retirado da sintaxe acima, e se o parâmetro receber o argumento de valor 1  ambos os <em>cases</em> serão executados.</p>
<p>//Menu</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main()</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;Quem escreveu o Fantastico, Morbido e Febril\n&#8221;</p>
<p>&#8220;\tNoite na taverna ?\n\n&#8221;;</p>
<p>cout &lt;&lt; &#8220;\t (1)Machado de Assis!\n&#8221;</p>
<p>&#8220;\t (2)Lord Byron\n&#8221;</p>
<p>&#8220;\t (3)Alvares de Azevedo\n&#8221;;</p>
<p>cout &lt;&lt; &#8220;\t (?)Digite um valor de 1 a 3:\n&#8221;;</p>
<p><strong>int</strong> b;</p>
<p>cin &gt;&gt; b;</p>
<p><strong>switch</strong>(b)</p>
<p>{</p>
<p><strong>case</strong> 1:</p>
<p>cout &lt;&lt; &#8220;\t Machado de Assis!&#8221;</p>
<p>&#8220;\n\t Passou longe&#8221;;</p>
<p><strong>break</strong>;</p>
<p><strong>case</strong> 2:</p>
<p>cout &lt;&lt; &#8220;\t Lord Byron&#8221;</p>
<p>&#8220;\n\t Quase!&#8221;;</p>
<p><strong>break</strong>;</p>
<p><strong>case</strong> 3:</p>
<p>cout &lt;&lt; &#8220;\t\a Alvares de Azevedo&#8221;</p>
<p>&#8220;\n\t Correto!&#8221;;</p>
<p><strong>break</strong>;</p>
<p><strong>default</strong>:</p>
<p>cout &lt;&lt; &#8220;\t Nao faz ideia?\n &#8220;</p>
<p>&#8220;\t Foi Alvarez de Azevedo&#8221;;</p>
<p>}</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O menu foi feito a partir do comando cout. Utilizando-se de seqüência de escape é possível colocar um determinado texto onde desejar. Logo após a conclusão do menu foi declarado uma variável de nome &#8220;b&#8221; do tipo int, o cin surge para pedir um valor para esta variável através da interação com o usuário.</p>
<p>Esta mesma variável esta entre os parênteses do switch, portanto, a resposta do switch é relativa ao valor atribuído a variável, para cada case uma resposta ou comportamento diferente. Se o número for maior que 3 ou menor que 1 o default será acionado e o cout além dele exibira seu respectivo conteúdo.</p>
<p>O break ao longo de todos os <em>cases</em> delimita até onde pode ser exibido o conteúdo do case, ou seja, o break deve estar presente como último comando do case.</p>
<p>As possibilidades de uso do controlador de fluxo lógico switch são ilimitadas!</p>
<p style="text-align:center;"><a href="http://wp.me/stOAh-funcoes" target="_self">&lt;&lt;&lt;Anterior</a></p>
<p style="text-align:left;">&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Oh! Darling' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/oh!+darling">The Beatles &#8211; Oh! Darling</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=91&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/operadores-logico-controle-de-fluxo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Funções</title>
		<link>http://robertcg.wordpress.com/2009/12/15/funcoes/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/funcoes/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:38:25 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Argumento]]></category>
		<category><![CDATA[Declarando]]></category>
		<category><![CDATA[Definindo uma Função]]></category>
		<category><![CDATA[Funções]]></category>
		<category><![CDATA[Parâmetro]]></category>
		<category><![CDATA[Protótipo]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=86</guid>
		<description><![CDATA[Funções Para realizar uma determinada tarefa que se repete consecutivamente no bloco do programa, temos as funções. As funções evitam a repetição de um mesmo comando no bloco principal, ou seja, esta suposta repetição e substituída pelo nome da função.  No bloco de uma função há um conjunto de instruções declaradas pelo programador para realizar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=86&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Funções</em></strong></p>
<p>Para realizar uma determinada tarefa que se repete consecutivamente no bloco do programa, temos as funções.</p>
<p>As funções evitam a repetição de um mesmo comando no bloco principal, ou seja, esta suposta repetição e substituída pelo nome da função.  No bloco de uma função há um conjunto de instruções declaradas pelo programador para realizar a tarefa que se repete indeterminadamente. Geralmente as funções utilizam valores – Argumentos &#8211; do bloco int main para retorna um outro valor. São também declaradas e definidas assim como as variáveis.</p>
<p>Sempre que uma função é chamada para aplicar suas instruções em uma área qualquer do bloco principal, ela executa algo como uma sub-rotina, a final, ela muda a direção do programa que é naturalmente executado de cima para baixo. Após retorna o valor ou simplesmente terminar a execução de uma função, o programa torna a caminhar normalmente de onde havia parado.</p>
<p>Todo e qualquer programa em C/C++ tem pelo menos uma função, a final, o int main () e uma função! O int main ou função principal como já foi destacado, pode receber argumentos ou parâmetros, e retorna uma variável do tipo int, se o valor atribuído a esta variável for igual a zero significa que não há erros no programa, do contrário&#8230;<span id="more-86"></span></p>
<p><strong><em>Declarando &amp; Definindo uma Função</em></strong></p>
<p>Declarando uma função a partir de seu protótipo:</p>
<p><strong>double </strong>somar (<strong>int</strong> i);</p>
<p>Acima há uma declaração de uma função, ou seja, basta escrever o protótipo de uma função para esta estar declarada. No exemplo acima temos um protótipo de função denominada <em>somar</em>, enominado palavra mos um prototipo o al xo., ela muda a direçterminados pelo criador da funç que retornará um tipo double, o parâmetro é definido pelo (int i) que define o tipo que a função irá receber quando for chamada no bloco principal – int main. A declaração de um protótipo de uma função apresenta ao compilador: a função, seu retorno, o que recebe ou se é do tipo void. Uma função só é compilada se for declarada antes de seu uso.nçapos nç<strong> </strong></p>
<p>No bloco principal, a função <em>somar</em> receberá uma variável do tipo int e após esta variável passar pelo bloco da função recebendo todas as instruções lá presentes, sairá como um double.</p>
<p>Definir uma função consiste em escrever seu conteúdo &#8211; escrever para função um bloco com instruções:</p>
<p><strong>double</strong> somar (<strong>int</strong> i)</p>
<p>{</p>
<p><strong>double</strong> d = 3.6;</p>
<p><strong>return</strong> (i + d);</p>
<p>}</p>
<p>Acima temos a definição do corpo de uma função denominada somar, tipo de retorno double e parâmetro int. No corpo da função foi declarada uma variável do tipo double, o identificador recebeu o nome “d” e o valor 3.6, conseqüentemente, a variável criada dentro do escopo da função será somada ao argumento que a função esta esperando. Toda variável criada entre o bloco de uma suposta função é válido somente lá dentro, uma variável é válida onde for criada, com exceções às variáveis globais.</p>
<p><strong><em>Protótipo, Parâmetro &amp; Argumento</em></strong></p>
<p>//12° Funções/palavra</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>void </strong>palavra ();        //ßprotótipo da função palavra, declarado antes do uso</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>palavra ();          //chama a função palavra após tê-la declarado acima</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p><strong>void</strong> palavra ()             //Definição da função palavra();</p>
<p>{</p>
<p>cout &lt;&lt; “Brain Damage”;  //dentro do bloco da função palavra</p>
<p>}</p>
<p>O protótipo da função deve ser finalizado com o ponto e vírgula, e deve ser declarado fora de qualquer escopo ou bloco.</p>
<p>Como uma variável, após ser declarada, a função não precisa mais carregar seu tipo de retorno quando for chamada no bloco int main ().</p>
<p>Observe: o bloco da função palavra é delimitado pelas chaves assim como o do main.</p>
<p>Esta função por se tratar do tipo <em>void</em> não retorna valor algum e por não conter parâmetros e argumentos entre seus parênteses (), não recebe valor algum.</p>
<p>//13° Funções/somar</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int </strong>somar (<strong>int</strong> i, <strong>int</strong> e);        //protótipo da função somar com dois parâmetros</p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int</strong> a = 10;</p>
<p><strong>int</strong> b = 15;</p>
<p><strong>int</strong> resultado;                     //ßvariável para guardar o valor da função somar</p>
<p>resultado = somar(a, b);  /*ßchama a função somar e atribui seu valor</p>
<p>de retorno a variável resultado*/</p>
<p>cout &lt;&lt; “A + B = ” &lt;&lt; resultado;            //ßexibindo o valor da função</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p><strong>int</strong> somar (<strong>int</strong> i, <strong>int</strong> e)                                              //ßfunção somar(<strong>int</strong> i, <strong>int</strong> e);</p>
<p>{</p>
<p><strong>return</strong> (i + e);                                            //ßdentro do bloco da função palavra</p>
<p>}</p>
<p>Parâmetro refere-se ao tipo que a função recebe, na função <em>somar</em> temos o tipo int ou conjunto dos números inteiro. Argumento refere-se ao valor que são atribuídos para as variáveis que precedem o parâmetro.</p>
<p>No exemplo acima, o protótipo da função <em>somar</em> recebe os parâmetros “int i” e “int e”, em outras palavras, a função somar esta esperando duas variáveis do tipo int. O “i” e o “e” são marcadores, como para primeiro e para segundo, ou para servir de referência para o programador, por isso as variáveis que a função somar esta esperando no bloco do int main foram declaradas com o nome de “a” e “b”, portanto, não é necessário declarar as variáveis do bloco do int main com o mesmo nome dos parâmetros, afinal, uma função não é feita simplesmente para duas variáveis mais para um escopo inteiro. O protótipo da função <em>int somar </em> também poderia ser escrita da seguinte forma:</p>
<p><strong>int</strong> somar (<strong>int</strong>, <strong>int</strong> );</p>
<p>A função somar, após receber os valores, retorna um número do tipo int, este valor é a soma de a + b dentro do escopo da função.</p>
<p>O int <em>resultado</em> foi criado apenas para capturar o valor de retorno da função. Quando a execução do programa chega a: “resultado = somar (a, b)”, a função somar procura saber se os valores que estão dentro dos parênteses são do tipo esperado, se forem, são enviados para o corpo da função onde as instruções são aplicadas sobre os valores recebidos, no caso, as instruções são: somar os dois valores do tipo int coletados no bloco principal. Se os valores coletados pela função no bloco principal forem diferentes do esperado, a conversão de um tipo para outro pode terminar de forma inesperada.</p>
<p><em>Recapitulando</em>: Uma função e definida a partir de um protótipo – um cabeçalho – que indica o tipo de retorno e o tipo e quantidade de parâmetros e argumentos que ela recebe, este protótipo deve ser declarado antes da utilização da função – antes dela ser chamada.  O corpo ou escopo de uma função é semelhante ao da função principal <em>int main</em>, nele ocorrem as instruções que se repetem consecutivamente. Uma função do tipo void não retorna valor algum, uma função sem argumentos ou parâmetros não recebe valor algum.</p>
<p style="text-align:center;"><a href="http://wp.me/ptOAh-1l" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-1t" target="_self">Próximo&gt;&gt;&gt;</a> Operadores Lógico &amp; Controle de Fluxo</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Maxwell's Silver Hammer' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/maxwells+silver+hammer">The Beatles &#8211; Maxwell&#8217;s Silver Hammer</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=86&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/funcoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Operadores Matemáticos</title>
		<link>http://robertcg.wordpress.com/2009/12/15/operadores-matematicos/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/operadores-matematicos/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:34:42 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Divisão]]></category>
		<category><![CDATA[Multiplicação]]></category>
		<category><![CDATA[Operadores Matemáticos]]></category>
		<category><![CDATA[Soma]]></category>
		<category><![CDATA[Subtracao]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=83</guid>
		<description><![CDATA[Operadores Matemáticos Os operadores matemáticos são utilizados para se fazer “expressões”, no total são 5 os operadores matemáticos de C++, a seguir eles e seus respectivos símbolos: Adição (+), Subtração (-), Multiplicação (*), Divisão (/) e Módulo (%). Exceto o ultimo operador – Módulo -, os demais funcionam da forma típica que já conhecemos. Os [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=83&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Operadores Matemáticos</em></strong></p>
<p>Os operadores matemáticos são utilizados para se fazer “expressões”, no total são 5 os operadores matemáticos de C++, a seguir eles e seus respectivos símbolos:</p>
<p>Adição (+), Subtração (-), Multiplicação (*), Divisão (/) e Módulo (%).</p>
<p>Exceto o ultimo operador – Módulo -, os demais funcionam da forma típica que já conhecemos.</p>
<p>Os parênteses são de uso comum quando se faz uma expressão matemática em C++. Os parênteses determinam qual algarismo ou grupo de algarismo deverá ter prioridade na operação, por exemplo:</p>
<p>1° Sentença     à      3 * 4 + 5 = 17;</p>
<p>2° Sentença      à      3 * (4 + 5) = 27;</p>
<p>Na primeira sentença, o numeral 3 é multiplicado por 4 gerando o valor 12, logo o numeral 5 e adicionado finalizando a operação com o valor 17.</p>
<p>Na segunda sentença, os numerais 4 e 5 são somados gerando o valor 9, logo, o numeral 3 multiplica o valor resultante de 4 + 5 finalizando a operação com o valor 27. Ou seja, quando se há parênteses numa expressão, o código é lido de dentro para fora, do contrário ele é lido da direita para a esquerda obedecendo a prioridade dos operadores – Multiplicação e divisão tem prioridade sobre Adição ou Subtração.<span id="more-83"></span></p>
<p>//5° Operadores Matemáticos</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;\t Operadores Matematicos&#8221;;</p>
<p>cout &lt;&lt;&#8221;\n Adicao: 1 + 1 =&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.&#8221; &lt;&lt;(1 + 1)</p>
<p>&lt;&lt;&#8221;\n Subtracao: 2 &#8211; 1 =&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.&#8221; &lt;&lt;(2 &#8211; 1)</p>
<p>&lt;&lt;&#8221;\n Multiplicacao: 3 * 3 =&#8230;&#8230;&#8230;&#8230;&#8230;&#8221; &lt;&lt;(3 * 3)</p>
<p>&lt;&lt;&#8221;\n Divisao: 4 / 4 =&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8221; &lt;&lt;(4 / 4)</p>
<p>&lt;&lt;&#8221;\n Divisao Inteira ou Resto de: 9 % 2 =.&#8221; &lt;&lt;(9 % 2);</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Os pontos adicionados a partir do = são simplesmente para melhorar a visualização do programa quando este for executado.</p>
<p><strong><em>Divisão Inteira</em></strong></p>
<p><strong><em> </em></strong></p>
<p>O operador Módulo é usado quando se necessita do resto de uma divisão entre inteiros:</p>
<p>10 / 3 = 3; resta 1.</p>
<p>Temos o “10” representando o dividendo, o primeiro “3” representando o divisor, o segundo “3” representando o quociente e, por fim, o “1” que representa o resto (nunca negativo).</p>
<p>Deste modo, o quociente vezes o divisor mais o resto são iguais ao dividendo.</p>
<p>Lembre-se, o grupo dos inteiros não admite números fracionários, portanto, para se obter o número restante que adicionado ao resultado da soma entre divisor e quociente seria igual ao dividendo, é necessário utilizar o operador de Módulo.</p>
<p>O exemplo a seguir determina a velocidade média de um corpo que percorre uma distância de 17 km em 3 horas.</p>
<p>//6° Divisão Inteira</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt;&#8221; Velocidade Media: Consiste em dividir a distancia&#8221;</p>
<p>&lt;&lt;&#8221;\n total percorrida por um corpo pelo tempo de\n&#8221;</p>
<p>&lt;&lt;&#8221;\t\t viagem\n&#8221;;</p>
<p><strong>int</strong> Distancia = 17, tempo = 3, Velocidade_Media, resta;</p>
<p>Velocidade_Media = (Distancia / tempo);</p>
<p>cout &lt;&lt;&#8221;\t\t A Velocidade Media e’: &#8221; &lt;&lt; Velocidade_Media</p>
<p>&lt;&lt;&#8221; km/h&#8221;;</p>
<p>resta = (Distancia % tempo);</p>
<p>cout &lt;&lt;&#8221; Resta: &#8221; &lt;&lt; resta ;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Para maior compreensão:</p>
<p>Se de 9 partes de um determinado produto dividir-mos por duas pessoas:</p>
<p>9 / 2 = 4 resta 1, pois</p>
<p>2 * 4 = 8 + 1 = 9</p>
<p>Este número 1 poderia ser dividido pelas duas pessoas, sendo que cada uma ficasse com 0, 5, mas, como já mencionado acima o grupo dos números inteiros não admite número fracionário, então o 1 deve permanecer inteiro.</p>
<p><strong><em>Atribuindo Valor a uma Expressão</em></strong></p>
<p>//5° Operadores Matemáticos 2</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;\t Declarando variaveis A, B, C, sem atribuir valor algum:&#8221;;</p>
<p><strong>int</strong> a, b, c;</p>
<p>cout &lt;&lt;&#8221;\n Atribuindo valor para as variaveis&#8221;;</p>
<p>a = 10;</p>
<p>b = 20;</p>
<p>c = 30;</p>
<p>cout &lt;&lt;&#8221; e exibindo valores&#8221;</p>
<p>&lt;&lt;&#8221;\n Valor de A: &#8221; &lt;&lt; a &lt;&lt;&#8221;\n Valor de B: &#8221; &lt;&lt; b</p>
<p>&lt;&lt;&#8221;\n Valor de C: &#8221; &lt;&lt; c;</p>
<p>//Criando variável <em>total</em> para guardar a soma dos valores das variáveis a, b, c</p>
<p><strong>int</strong> total;</p>
<p>total = (a + b + c);</p>
<p>//Exibindo o valor de total que é igual a: a + b + c</p>
<p>cout &lt;&lt;&#8221;\n A soma dos valores A, B e C = &#8221; &lt;&lt; total;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p><strong><em>Lendo o Teclado</em></strong></p>
<p><strong><em> </em></strong></p>
<p>O cin da “família” do iostream atribui a qualidade de ler o teclado aos programas de console – entenda-se por ler: capturar o que for digitado.</p>
<p>O cin será nossa primeira função disposta a receber entrada de dados.</p>
<p>Ele é simples assim com seu parceiro cout, embora seu operador de atribuição seja dois sinais de mais – o cout possui dois sinais de menos.</p>
<p>//10° Cin</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int</strong> numero_digitado;</p>
<p>cout &lt;&lt; &#8221; Digite um numero: &#8220;;</p>
<p>cin &gt;&gt; numero_digitado;</p>
<p>cout &lt;&lt; &#8221; O numero e’: &#8221; &lt;&lt; numero_digitado;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O exemplo acima exemplifica o simples funcionamento da função cin.</p>
<p>Primeiramente, declaramos um tipo para salvar o valor digitado no teclado, logo após usarmos o cout – que finalizamos naturalmente com o ponto e vírgula – surge o cin, &#8211; com seu operador de atribuição &gt;&gt; &#8211; o valor digitado é atribuído à variável <em>numero_digitado</em>. O cout volta no fim do código fonte para exibir o valor digitado no teclado.</p>
<p>//10° Somar</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>int</strong> pri_parcela, sec_parcela, soma;     //declara 3 variáveis sem atribuir valor</p>
<p>cout &lt;&lt; &#8221; Digite a primeira parcela: &#8220;;</p>
<p>cin &gt;&gt; pri_parcela;                         //atribui valor para pri_parcela</p>
<p>cout &lt;&lt; &#8221; Digite a segunda parcela: &#8220;;</p>
<p>cin &gt;&gt; sec_parcela;             // Atribui valor para sec_parcela</p>
<p>soma = (pri_parcela + sec_parcela);             //Atribui valor para variável soma</p>
<p>cout &lt;&lt; &#8220;\nTotal: &#8221; &lt;&lt; soma;               //ßexibindo os valores somados</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O código fonte acima quando compilado e executado pede para o usuário digitar a primeira parcela – digitar um número qualquer do tipo int &#8211; logo, pede para digitar a segunda parcela – digitar outro número qualquer do tipo int -, quando digitado, ambos os valores são salvos em variáveis.  O valor das duas parcelas somadas é atribuído a variável denominada <em>soma</em>. No fim do programa o cout exibe o valor da soma das duas variáveis.</p>
<p>O exemplo abaixo exemplifica a captura do tipo char:</p>
<p>//11° Entra de Dados</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>char </strong>nome[7];<strong> </strong></p>
<p>cout &lt;&lt; &#8221; Digite seu nome: &#8220;;</p>
<p>cin &gt;&gt; nome;</p>
<p>cout &lt;&lt; &#8220;\n Seu nome e’ &#8221; &lt;&lt; nome;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Após o cout exibir a string “Digite seu nome” o cin entra em ação, lembre-se, o programa é lido de cima para baixo. A função cin permite que o usuário digite o nome &#8211; que o cout pediu &#8211; utilizando o teclado. Após digitar o nome através do teclado, o cin o salva na variável nome do tipo char – que é o tipo apropriado para salvar caracteres.</p>
<p>O <em>char nome</em> é uma variável declarada sem atribuição para receber seis valores digitados a partir do teclado. Se por acaso for digitado um nome ou texto qualquer maior que o esperado (estouro da string), o programa pode se comportar de forma inesperada, se for digitado um espaço entre as palavras o compilador entendera este espaço como o caractere NULL, e finalizará a string, fazendo que somente os caracteres que precederem o espaço sejam salvos na variável. O cout volta no fim do código fonte para exibir o nome digitado.</p>
<p>Cuidado com os erros ocasionados pelo mal uso da função string, o “estouro” dela pode derrubar o sistema facilmente.</p>
<p style="text-align:center;"><a href="http://wp.me/ptOAh-17" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-1o" target="_self">Próximo&gt;&gt;</a>&gt; Funções</p>
<p style="text-align:left;">&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Come Together' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/come+together">The Beatles &#8211; Come Together</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=83&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/operadores-matematicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Identificadores, Constantes Literais &amp; Declaração</title>
		<link>http://robertcg.wordpress.com/2009/12/15/identificadores-constantes-literais-declaracao/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/identificadores-constantes-literais-declaracao/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:21:18 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Constantes Literais]]></category>
		<category><![CDATA[Declaração]]></category>
		<category><![CDATA[Identificadores]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=72</guid>
		<description><![CDATA[Identificadores, Constantes Literais &#38; Declaração Os Identificadores ou identifier correspondem as variáveis dos tipos. Todos os tipos para serem usados devem possuir um identificador: int inteiro; char caractere; float flutuante; O “inteiro” do tipo int, o “caractere” do tipo char e o “flutuante” do tipo float são os identificadores deste exemplo. Um identificador do tipo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=72&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Identificadores, Constantes Literais &amp; Declaração</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Os <em>Identificadores</em> ou <em>identifier</em><em> </em>correspondem as variáveis dos tipos. Todos os tipos para serem usados devem possuir um identificador:</p>
<p><strong>int</strong> <em>inteiro</em>;</p>
<p><strong>char</strong> <em>caractere</em>;</p>
<p><strong>float</strong> <em>flutuante</em>;</p>
<p>O “inteiro” do tipo int, o “caractere” do tipo char e o “flutuante” do tipo float são os identificadores deste exemplo. Um identificador do tipo char não recebe como atribuição: numerais, tanto float quanto inteiro ou de qualquer conjunto que seja, conseqüentemente, são atribuídos aos identificadores valores respectivos a seu tipo.</p>
<p><span id="more-72"></span></p>
<p><em>Literais</em> são os valores carregados nas variáveis dos tipos, exemplo:</p>
<p><strong>int</strong> inteiro = <em>10</em>;</p>
<p><strong>char</strong> caractere = ‘<em>C</em>’;</p>
<p><strong>float</strong> flutuante = <em>3.2</em>;</p>
<p>Os valores atribuídos aos identificadores “inteiro”, “caractere” e “flutuante” são considerados literais. No int inteiro, temos o valor 10 atribuído, significa que o sistema reserva espaço na memória para dez identificadores inteiro do tipo int.</p>
<p>A <em>Declaração</em> é quando se cria uma variável de um tipo qualquer, mas não atribui valor algum a esta:</p>
<p><strong>double </strong><em>pi</em><strong>;</strong></p>
<p><strong> </strong>Aqui temos uma declaração do tipo double, observe que a direita do identificador “pi” nós temos o ponto e vírgula que representa o fim da declaração.</p>
<p>O operador de atribuição (=) deve ser usado quando se necessita atribuir um valor a variável. Verdade é que se pode declarar a variável e imediatamente atribuir um valor qualquer a ela, embora, às vezes é necessário declarar uma variável sem atribuição alguma. Pode-se também declarar mais de um identificador a um determinado tipo, com ou sem valor atribuído, sendo que devem ser separados pelo operador vírgula (,):</p>
<p><strong>int </strong>velocidade = 60,  tempo = 2, Distancia;</p>
<p>Foram declarados três identificadores do tipo int separados pelo operador vírgula, sendo que o identificador <em>Distancia</em> não recebeu valor. A partir de uma operação matemática ou qualquer outro método distinto, pode-se atribuir um valor a ele:</p>
<p>Distancia = (velocidade * tempo);</p>
<p>//4° A Declaração</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;\t\t Um veiculo que se movimenta em velocidade constante&#8221;</p>
<p>&#8220;\n\t\t de 60 km/h, num tempo de 2 horas, conclui-se: \n&#8221;;</p>
<p><strong>int</strong> velocidade = 60, tempo = 2, Distancia;</p>
<p>Distancia = (velocidade * tempo);</p>
<p>cout &lt;&lt;&#8221;\t\t A Distancia percorrida por este veiculo e’ &#8221; &lt;&lt; Distancia</p>
<p>&lt;&lt;&#8221;km&#8221;;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p style="text-align:center;"><a href="http://wp.me/ptOAh-17" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-1l" target="_self">Próximo&gt;&gt;&gt;</a> Operadores Matemáticos</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Can't Buy Me Love' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/cant+buy+me+love">The Beatles &#8211; Can&#8217;t Buy Me Love</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=72&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/identificadores-constantes-literais-declaracao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Os Tipos &amp; Seqüência de escape</title>
		<link>http://robertcg.wordpress.com/2009/12/15/os-tipos-sequencia-de-escape/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/os-tipos-sequencia-de-escape/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:12:52 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[bool]]></category>
		<category><![CDATA[char]]></category>
		<category><![CDATA[double]]></category>
		<category><![CDATA[enum]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[long]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[Tipos]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=69</guid>
		<description><![CDATA[Os Tipos Há tipos básicos em C/C++, divididos em duas variedades, signed e unsigned – com sinal e sem sinal, respectivamente – a seguir a tabela referente aos supostos tipos e suas características: Tipo Valor Min. Valor Max. Característica Bytes bool 0 1 boleano 1 char -128 127 Caracteres 1 unsigned char 0 255 Char [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=69&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Os Tipos</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Há <em>tipos</em> básicos em C/C++, divididos em duas variedades, <em>signed</em> e <em>unsigned</em> – com sinal e sem sinal, respectivamente – a seguir a tabela referente aos supostos tipos e suas características:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="132" valign="top">Tipo</td>
<td width="120" valign="top">Valor Min.</td>
<td width="120" valign="top">Valor Max.</td>
<td width="144" valign="top">Característica</td>
<td width="48" valign="top">Bytes</td>
</tr>
<tr>
<td width="132" valign="top">bool</td>
<td width="120" valign="top">0</td>
<td width="120" valign="top">1</td>
<td width="144" valign="top">boleano</td>
<td width="48" valign="top">1</td>
</tr>
<tr>
<td width="132" valign="top">char</td>
<td width="120" valign="top">-128</td>
<td width="120" valign="top">127</td>
<td width="144" valign="top">Caracteres</td>
<td width="48" valign="top">1</td>
</tr>
<tr>
<td width="132" valign="top">unsigned char</td>
<td width="120" valign="top">0</td>
<td width="120" valign="top">255</td>
<td width="144" valign="top">Char sem sinal</td>
<td width="48" valign="top">1</td>
</tr>
<tr>
<td width="132" valign="top">short</td>
<td width="120" valign="top">-32768</td>
<td width="120" valign="top">32767</td>
<td width="144" valign="top">Inteiros</td>
<td width="48" valign="top">2</td>
</tr>
<tr>
<td width="132" valign="top">unsigned short</td>
<td width="120" valign="top">0</td>
<td width="120" valign="top">65535</td>
<td width="144" valign="top">Inteiro s/ sinal</td>
<td width="48" valign="top">2</td>
</tr>
<tr>
<td width="132" valign="top">int</td>
<td width="120" valign="top">-2.147.483.648</td>
<td width="120" valign="top">+2.147.483.648</td>
<td width="144" valign="top">Inteiros</td>
<td width="48" valign="top">4</td>
</tr>
<tr>
<td width="132" valign="top">unsigned int</td>
<td width="120" valign="top">0</td>
<td width="120" valign="top">+4.294.295.000</td>
<td width="144" valign="top">Inteiro s/ sinal</td>
<td width="48" valign="top">4</td>
</tr>
<tr>
<td width="132" valign="top">long</td>
<td width="120" valign="top">-2.147.483.648</td>
<td width="120" valign="top">+2.147.483.648</td>
<td width="144" valign="top">Inteiro Longo</td>
<td width="48" valign="top">4</td>
</tr>
<tr>
<td width="132" valign="top">enum</td>
<td width="120" valign="top">-2.147.483.648</td>
<td width="120" valign="top">+2.147.483.648</td>
<td width="144" valign="top">Enumerado</td>
<td width="48" valign="top">2</td>
</tr>
<tr>
<td width="132" valign="top">unsigned long</td>
<td width="120" valign="top">0</td>
<td width="120" valign="top">+4.294.295.000</td>
<td width="144" valign="top">Int. Long s/sinal</td>
<td width="48" valign="top">4</td>
</tr>
<tr>
<td width="132" valign="top">float</td>
<td width="120" valign="top">3.4e-38</td>
<td width="120" valign="top">3.4e+38</td>
<td width="144" valign="top">Fração, 7 dígitos</td>
<td width="48" valign="top">4</td>
</tr>
<tr>
<td width="132" valign="top">double</td>
<td width="120" valign="top">1.7e-308</td>
<td width="120" valign="top">1.7e+308</td>
<td width="144" valign="top">Fração, 15 dígitos</td>
<td width="48" valign="top">8</td>
</tr>
<tr>
<td width="132" valign="top">long double</td>
<td width="120" valign="top">3.4e-4932</td>
<td width="120" valign="top">3.4e+4932</td>
<td width="144" valign="top">Fração, 18 dígitos</td>
<td width="48" valign="top">10</td>
</tr>
</tbody>
</table>
<p><em>Tabela 01_Tipos<span id="more-69"></span></em></p>
<p>Quando é adicionado o valor “1” a uma variável de tipo qualquer que tenha já atribuída a ela seu valor máximo, esta retorna ao valor mínimo ou recomeça, por exemplo, um tipo <em>short</em> que possui valor máximo de 32767, se acrescentado 1, ele retornará para seu valor mínimo -32768.</p>
<p>O tipo <em>int</em> e <em>short</em>: é utilizado quando necessário o uso de valores numéricos do conjunto dos números inteiros (Z):</p>
<p>Conjunto Z= {&#8230; -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5&#8230;}</p>
<p>O conjunto de números inteiros é formado por números positivos, negativos mais o zero &#8211; que é maior que qualquer número negativo.</p>
<p>//6° o tipo int</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main()</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;2007 menos 1984 e’ igual a: &#8220;;   //exibe texto no console</p>
<p><strong>int</strong> resultado = 23;          //declara variável resultado e atribui o valor 23 à ela</p>
<p>cout &lt;&lt; resultado;   //exibe o valor</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Neste exemplo temos um uso básico do tipo int. O int foi previamente definido com o identificador “<em>resultado”</em>, o valor (literal) 23 foi atribuído a ele, conseqüentemente o identificador do tipo int armazena o valor 23. Quando se faz uma definição, um quinhão de memória e armazenado para a variável, o tamanho do espaço reservado é relativo ao valor atribuído à variável.</p>
<p>O tipo <em>char: </em>é utilizado para escrever (strings), seu nome já o diz: “Caractere”. Tem geralmente oito bites de tamanho ou um byte que comporta até 256 caracteres.</p>
<p>//7° o tipo char</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p># include &lt;string.h&gt;                      //ßpara o uso de string</p>
<p><strong>int</strong> main()</p>
<p>{</p>
<p>char texto [27] = &#8220;Can&#8217;t You Hear me Knocking&#8221;;         //ßstring</p>
<p>cout &lt;&lt; texto;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Acima temos a ilustração do tipo char. Observe que uma biblioteca foi adicionada, trata-se da string que deve ser chamada para a utilização de <em>strings</em>. O char previamente definido com o identificador “<em>texto</em>” suporta uma quantidade antecipadamente definida de caracteres, logo, não se pode introduzir um número de caracteres superior. Observe que à direita do identificador <em>texto</em> entre os colchetes ([]), mesmo tendo o número 27, este tipo char texto suporta apenas 26 caracteres, pois, para finalizar toda string é necessário o caractere NULL que corresponde ao número octogonal &#8216;<em>00&#8242;</em>, sendo assim, uma das “casas” da string é reservada ao NULL para identificar o fim, exemplo:</p>
<p>Declarando variável “<em>palavra”</em> do tipo char e inicia com capacidade para sete caracteres, sendo um reservado para o NULL:<strong> </strong></p>
<p><strong>char</strong> palavra [7] = “String”;</p>
<p>A palavra <em>String</em> tem seis caracteres, portanto, este número de caracteres corresponde ao máximo que a variável texto do tipo char suporta, estes mesmos caracteres ficam armazenados em posições consecutivas na memória da máquina hospedeira.</p>
<p>Exemplificando o funcionamento de uma string quando executada:</p>
<p>palavra [0] = &#8216;S&#8217;;</p>
<p>palavra [1] = &#8216;t&#8217;;</p>
<p>palavra [2] = &#8216;r&#8217;;</p>
<p>palavra [3] = &#8216;i&#8217;;</p>
<p>palavra [4] = &#8216;n&#8217;;</p>
<p>palavra [5] = &#8216;g&#8217;;</p>
<p>palavra [6] = &#8217;00&#8242;;</p>
<p>Quando a string palavra é executada, um laço em cadeia contendo valores atribuídos a ela é lançado na tela em sentido crescente.</p>
<p>A variável “<em>texto”</em> do tipo char que suporta 27 caracteres tem armazenado a frase Can&#8217;t You Hear me Knockin, sendo assim, onde ela for declarada a frase passa a existir.</p>
<p>Uma string é uma seqüência ordenada de caracteres.</p>
<p>Não se preocupe se lhe parece complicado, mais a frente vamos voltar a este assunto quando tratar-mos de <em>Arrays</em>.</p>
<p>O tipo <em>float </em>e <em>double: </em>são utilizados para expressar números fracionários ou de ponto flutuante.</p>
<p>//8° o tipo float e double</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;Qual a velocidade do som em Km/h? &#8220;;</p>
<p><strong>int</strong> metros_sec = 340;                      //o som no ar tem a velocidade de 340 m/s</p>
<p><strong>double</strong> tempo<strong> = </strong>3.6;                       //uma hora possui 3.600 segundos ou 3.6s<strong> </strong></p>
<p><strong>float </strong>resultado;                                //declara variável mas não adiciona valor</p>
<p>resultado = metros_sec * tempo;</p>
<p>cout &lt;&lt; &#8220;\nA velocidade e’: &#8221; &lt;&lt;resultado &lt;&lt; &#8221; Km/h&#8221;;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Temos acima um exemplo mais sofisticado do uso dos tipos float e double. Como você vê, a variável tempo e igual a um número fracionário, como o tipo int não suporta este conjunto de números, utilizamos os apropriados, float ou double. Note também que a variável do tipo double foi declarada embora sem valor algum. Esta variável – <em>resultado</em> &#8211; foi declarada apenas para guardar o valor da multiplicação entre o <em>int metros_sec</em> e o <em>float<strong> </strong>tempo</em>. Isso ocorre constantemente em linguagens de programação, alguma variável tem que armazenar o valor.</p>
<p>A conversão de tipos nem sempre termina em final feliz! Para provar isso, modifique os tipos do programa acima, por exemplo, inverta o do <em>metros_sec </em>com o do <em>tempo </em>deixando-os float e int, respectivamente.</p>
<p>E por fim, o tipo <em>bool</em>: que é utilizado para expressar dois valores, sendo um por vez, verdadeiro ou falso (true e false), assim sendo, quando o valor de retorno do tipo bool for igual a “1” (um) temos um “verdadeiro”, se for “0” (zero) como retorno significa “falso”.</p>
<p>//9° O tipo bool</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>bool</strong> falso = (2 + 2 != 4);</p>
<p>cout&lt;&lt; falso;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O tipo bool foi declarado como <em>falso</em> e atribuído a ele a expressão 2 + 2 é diferente de 4. Como a expressão esta incorreta o bool retornará um  zero.</p>
<p>Para comparar o tamanho dos tipos há uma função denominada <em>sizeof</em> que inserindo dentro de seus parênteses um tipo qualquer a função retorna o tamanho. Alguns tamanhos podem variar de plataforma para plataforma. O código fonte a seguir exemplifica o funcionamento da função <em>sizeof</em>:</p>
<p>//9° O Sizeof</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt; &#8220;&gt;&gt;&gt;&gt;Sizeof&lt;&lt;&lt;&lt;\n&#8221;;</p>
<p>cout &lt;&lt; &#8220;\nbool:   &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>bool</strong>)  &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\nchar:   &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>char</strong>)  &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\nshort:  &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>short</strong>) &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\nint:    &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>int</strong>)   &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\nlong:   &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>long</strong>)  &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\nfloat:  &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>float</strong>) &lt;&lt; &#8221; byte&#8221;</p>
<p>&lt;&lt; &#8220;\ndouble: &#8221; &lt;&lt; <strong>sizeof</strong>(<strong>double</strong>)&lt;&lt; &#8221; byte&#8221;;</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>A tabela que se obtêm a partir da compilação e execução deste código fonte é semelhante a <em>Tabela 02_Tipos</em> que temos no início deste capítulo embora informe apenas o tamanho dos tipos.</p>
<p><strong><em>Seqüências de Escape</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Alguns caracteres (tipo <em>char</em>) não podem ser representados normalmente como geralmente fazemos, outros para serem apresentados precisam da junção entre dois caracteres. Na tabela a seguir alguns destes caracteres e suas representações entre outras informações.</p>
<table style="height:194px;" border="1" cellspacing="0" cellpadding="0" width="487">
<tbody>
<tr>
<td width="136" valign="top">Escape</td>
<td width="144" valign="top">Hexadecimal</td>
<td width="143" valign="top">ANSI</td>
<td width="166" valign="top">Função:</td>
</tr>
<tr>
<td width="136" valign="top"><span style="text-decoration:underline;"> </span></td>
<td width="144" valign="top">0&#215;00</td>
<td width="143" valign="top">NULL</td>
<td width="166" valign="top">Caractere Nulo</td>
</tr>
<tr>
<td width="136" valign="top">\a</td>
<td width="144" valign="top">0&#215;07</td>
<td width="143" valign="top">BELL</td>
<td width="166" valign="top">Alarme</td>
</tr>
<tr>
<td width="136" valign="top">\b</td>
<td width="144" valign="top">0&#215;08</td>
<td width="143" valign="top">BS</td>
<td width="166" valign="top">Retrocesso</td>
</tr>
<tr>
<td width="136" valign="top">\f</td>
<td width="144" valign="top">0x0C</td>
<td width="143" valign="top">FF</td>
<td width="166" valign="top">Avançar Página</td>
</tr>
<tr>
<td width="136" valign="top">\n</td>
<td width="144" valign="top">0x0A</td>
<td width="143" valign="top">LF</td>
<td width="166" valign="top">Quebra de Linha</td>
</tr>
<tr>
<td width="136" valign="top">\t</td>
<td width="144" valign="top">0&#215;09</td>
<td width="143" valign="top">HT</td>
<td width="166" valign="top">Tab Horizontal</td>
</tr>
<tr>
<td width="136" valign="top">\v</td>
<td width="144" valign="top">0x0B</td>
<td width="143" valign="top">VT</td>
<td width="166" valign="top">Tab Vertical</td>
</tr>
<tr>
<td width="136" valign="top">\\</td>
<td width="144" valign="top">0x5C</td>
<td width="143" valign="top">\</td>
<td width="166" valign="top">Barra Invertida</td>
</tr>
<tr>
<td width="136" valign="top">\’</td>
<td width="144" valign="top">0&#215;27</td>
<td width="143" valign="top">‘</td>
<td width="166" valign="top">Aspa Simples</td>
</tr>
<tr>
<td width="136" valign="top">\”</td>
<td width="144" valign="top">0&#215;22</td>
<td width="143" valign="top">“</td>
<td width="166" valign="top">Aspa Dupla</td>
</tr>
<tr>
<td width="136" valign="top">\?</td>
<td width="144" valign="top">0x3F</td>
<td width="143" valign="top">?</td>
<td width="166" valign="top">Interrogação</td>
</tr>
</tbody>
</table>
<p><em>Tabela 02_Seqüências de Escape</em></p>
<p>Observe o código fonte a seguir, apresenta o “\n” ou quebra de linha, o “endl” – fim da linha &#8211; também é apresentado neste exemplo:</p>
<p>//3° Quebra de linha</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt;&#8221;Riding on the highway&#8230;&#8221;                  //1° linha do cout</p>
<p>&#8220;\n     Long way to the top&#8230;&#8221;             //2° linha do cout</p>
<p>&#8220;\n     Think it&#8217;s easy\?&#8221;                      //3° linha do cout</p>
<p>&lt;&lt;endl;                                                        //4° linha do cout</p>
<p>cout  &lt;&lt;&#8221;\n     Try playin&#8217;!&#8221;;                              //5° linha, outro cout</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O “\n” é responsável pela quebra de linha, ele da um fim na linha onde se encontra ou na linha atuante enviando o texto seguinte para a linha de baixo. No código fonte que temos acima: o texto “Riding on the highway&#8230;”, após o programa ser compilado, tem como lugar a primeira linha do console, a segunda linha inicia-se com um \n &#8211; que envia todo o texto da sua direita para a segunda linha. Na quarta linha temos um comando denominado “endl” ou “fim da linha” que descarrega o buffer do cout obrigando o programa a exibir imediatamente o conteúdo e, como o \n, da uma linha nova ao conteúdo.</p>
<p>Observe também que os operadores de inserção (&lt;&lt;) e as aspas orientam o programador, a partir deles você alinha o conteúdo que deseja exibir no console. O programa “Quebra de Linha” exibe as linhas 2°, 3°, 5° uma abaixo da outra, justo por este recurso.</p>
<p>Lembre-se: as aspas – simples ou duplas &#8211; devem estar presentes antes da string e depois, sendo que, na mesma linha da string; do contrário o compilador acusara um erro. Por se tratar de um único tipo – caractere – não é necessário utilizar o operador de inserção nas linhas 2 e 3.</p>
<p>Compile ambos os programas e modifique-os para que você se familiarize com os comandos apresentados neles. Naturalmente o botão <em>F9</em> do teclado compila e executa os arquivos fontes, do contrário clique no botão com o respectivo nome.</p>
<p>Neste seguinte exemplo, apresentamos o uso do número correspondente ao BELL e ao \n em Hexadecimal.</p>
<p>//3° Usando valor Hexadecimal</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p><strong>char</strong> uvula = 0&#215;07;    //atribui o valor 0&#215;07 a uma variável de tipo caractere</p>
<p><strong>char</strong> QuebrarLinha = 0x0A;</p>
<p>cout &lt;&lt; QuebrarLinha      //usa o valor do ‘\n’ atribuído a variável</p>
<p>&lt;&lt;&#8221;Bells&#8221;&lt;&lt;uvula;    //usa o valor do ‘\a’ atribuído a variável</p>
<p>getch();</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>Se a uma variável do tipo char – caractere &#8211; for atribuído o valor hexadecimal do BELL, passa esta variável a “carregar” o valor a ela aplicado.</p>
<p style="text-align:center;"><a href="http://wp.me/ptOAh-14" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-1a" target="_self">Próximo&gt;&gt;&gt;</a> Identificadores, Constantes Literais &amp; Declaração</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Wait' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/wait">The Beatles &#8211; Wait</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=69&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/os-tipos-sequencia-de-escape/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Iniciando Em C++</title>
		<link>http://robertcg.wordpress.com/2009/12/15/iniciando-em-c/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/iniciando-em-c/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:53:48 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Bloodshed Dev-C++]]></category>
		<category><![CDATA[Free Format]]></category>
		<category><![CDATA[Kdevelop IDE]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=66</guid>
		<description><![CDATA[Iniciando Em C++ O código fonte C++ gera diversos arquivos quando compilado, portanto, numa determinada região de seu computador crie uma pasta com o nome Omni.  Nesta pasta salve todos os documentos derivados deste estudo, &#8211; cada exemplo em uma sub-pasta. Logo você verá que: “A organização é um passo para o triunfo em qualquer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=66&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;">Iniciando Em C++</h2>
<p>O código fonte C++ gera diversos arquivos quando compilado, portanto, numa determinada região de seu computador crie uma pasta com o nome Omni.  Nesta pasta salve todos os documentos derivados deste estudo, &#8211; cada exemplo em uma sub-pasta. Logo você verá que: “A organização é um passo para o triunfo em qualquer linguagem de programação que seja!”</p>
<p>A seguir um tutorial a respeito do <em>Kdevelop IDE </em>e do<em> </em><em>Bloodshed Dev-C++</em>.</p>
<p>O tutorial é básico, por hora, lhe será dito o que é necessário saber sobre ambos.<span id="more-66"></span><strong> </strong></p>
<p>Abra seu bloco de notas ou sua IDE.</p>
<p><strong><em> </em></strong></p>
<p><strong><em>Como usar o Kdevelop IDE</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Primeiro passo: Crie um novo projeto com o Help do <em>Kdevelop Application Wizard</em>. Use o Project Type &#8211; ou tipo de projeto – Terminal C++.</p>
<p>Segundo passo: Edite seu arquivo de código fonte com o editor do Kdevelop e compile-o utilizando um dos botões do menu.</p>
<p><strong><em> </em></strong></p>
<p><strong><em>Como usar o </em></strong><strong><em>Bloodshed Dev-C++</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Primeiro passo – Projeto: No menu <em>Arquivo</em> passe o mouse sobre <em>Novo</em> e clique em <em>Projeto</em>, surgirá uma janela com diversas opções divididas em três categorias: Basic, Introduction e Multimedia. Cada uma seria um degrau como seus próprios nomes sugerem.</p>
<p>Na Basic, clique em “Console Aplication” e selecione mais à baixo: Projeto C++, se já não o esta. Após clicar em “<em>Ok” </em>o Dev abrirá uma tela para salvar o projeto, de ao projeto um nome, os caracteres válidos para nomear um programa são: a até z e A até Z. Os sinais válidos são:</p>
<p>&amp; ( ) [ ] { }  + &#8211; * / = , . : ; ? \ &#8221; ’ _ | ! # $</p>
<p>Salve-o na pasta Omni.</p>
<p><!--more--></p>
<p><strong><em>O Primeiro não se Esquece</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Para escrever um código fonte decente você deve incluir Bibliotecas. Aqui neste exemplo, temos duas: iostream e conio. A primeira é uma biblioteca para entrada e saída de dados, ela nos fornece o comando “cout” – Console Out ou simplesmente <em>c out</em> &#8211; seguido do operador de inserção “&lt;&lt;”, o cout nos permite escrever frases ou “Strings” e numerais no console.</p>
<p>//1° Primeiro Programa</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout  &lt;&lt; &#8220;Stairway to Heaven&#8221;;</p>
<p>getch();</p>
<p><strong>return</strong> 0;         //retorna zero</p>
<p>}</p>
<p>Repare que a frase Stairway to Heaven esta entre aspas (“ ”), para se escrever diretamente no console sem utilizar uma variável que salve o valor, você deve utilizar este procedimento, quando se trata de um numeral não se deve usar aspas e quando for um único caractere utilize aspas simples (‘ ‘). O ponto e vírgula (;) determina o fim da operação. O <em>getch ()</em> fornecido pela biblioteca conio paralisa a tela do console, ou seja, o programa quando executado exibe a frase rapidamente e fecha a tela do console, o getch () a paralisa até que uma tecla qualquer seja digitada – experimente retirá-lo para conferir o resultado. O <em>return </em>e uma palavra reservada do C/C++, como ele há muitas outras palavras reservadas, logo há frente temos a tabela com as palavras de uso único do C/C++. O return da um comando ao programa para que ele finalize naturalmente após exibir o conteúdo do cout e recomece a partir de onde ele foi chamado, portanto se não há nada adiante dele, o programa é finalizado naturalmente. O zero é o valor de retorno, ou seja&#8230; nada.</p>
<p>O iostream, o conio entre outros, são arquivos Standard do C++, em outras palavras, são Bibliotecas padrões. Somente Arquivos Standard do C++ devem ficar entre os sinais de mais e menos &lt; &gt;, portanto, todos os arquivos de recurso criados pelo programador devem ficar entre aspas, mais a frente você compreenderá com perfeição este comentário.</p>
<p>Todo programa escrito em C/C++ deve ter como corpo principal o <em>int main ()</em>, que nada mais é que a função principal. Todas as funções recebem valores de entrada denominados Parâmetros ou Argumentos, e retornam um determinado valor, no caso, o valor de retorno do int main trata-se: de um tipo inteiro (int). Funções que não retornam valor algum são denominadas “<em>void</em>”. Atenção, a função int main – função principal presente em todos os programas C/C++ &#8211; sempre retorna um tipo inteiro exceto quando esta é void.</p>
<p>Todo o código do programa é delimitado pelas chaves {} ou <em>block</em><em> </em><em>statement</em>, onde a primeira determina o início do bloco do programa e a segunda o fim do bloco.</p>
<p>Em C++ caracteres maiúsculos são diferentes de minúsculos, como exemplo: <em>cout</em> e um comando derivado da biblioteca <em>iostream</em> se, por acaso, for escrito com caracteres maiúsculos não executará a função de imprimir mensagens na tela, ou seja, “A” é diferente de “a” em C++.</p>
<p>Como em toda linguagem que se preze, existe a possibilidade de escrever comentários no código fonte – para orientar um outro programador que venha a ler o código ou mesmo para auxiliar o dono.  No C++ há duas maneiras de se escrever comentários: do modo dele mesmo e do modo do C.</p>
<p>Veja no exemplo a seguir como fazer comentários:</p>
<p>//2° comentários</p>
<p># include &lt;iostream.h&gt;                 //cout</p>
<p># include &lt;conio.h&gt;                       //getch()</p>
<p><strong> </strong></p>
<p><strong>int</strong> main ()</p>
<p>{</p>
<p>cout &lt;&lt; 300;  /*  1° &#8211; Comentário</p>
<p>de diversas linhas. */</p>
<p>getch();           // 2° &#8211; Comentário de uma linha.</p>
<p><strong>return</strong> 0;</p>
<p>}</p>
<p>O primeiro comentário foi herdado do C, já o segundo é o comentário de C++<em>.</em> O primeiro permite escrever em quantas linhas desejar o, conteúdo é delimitado pelos caracteres /* */, todo conteúdo que estiver entre eles será ignorado pelo compilador; o segundo permite escrever em uma única linha, a partir da direita das duas barras (//) o código será ignorado pelo compilador.</p>
<p>Cabe ao programador decidir qual é o ideal para uma determinada região do código fonte, verdade é que: ambos são úteis.</p>
<p><strong><em>Free Format</em></strong></p>
<p><strong><em> </em></strong></p>
<p>Um programa em C++ também pode ser escrito da seguinte forma:</p>
<p>//4° Formato Livre</p>
<p># include &lt;iostream.h&gt;</p>
<p># include &lt;conio.h&gt;</p>
<p><strong>int</strong> main () { cout &lt;&lt; ”The Door’s are open!”;  getch();  return 0; }</p>
<p>Não há ordem previamente padronizada para se escrever um código fonte que funcione, o compilador não observa a distribuição dos caracteres, mas, tenha sã consciência que: em um código fonte de mil linhas escrito desordenadamente seria um caos tentar encontrar um “goto”&#8230; Com isso, temos o que chamamos de indentação. O Dev-C++ tem uma opção denominada “Auto Indentar” &#8211; que não faz milagre, mas ajuda &#8211; para acessá-la: Clique em <em>Ferramentas</em>, logo <em>em Opções do Editor, </em>marque as opções <em>Auto Indentar </em>e aproveite para marcar <em>Tabulação Inteligente</em> também.</p>
<p>PS: As diretivas # include devem estar separadas.</p>
<p><a href="http://wp.me/ptOAh-T" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-17" target="_self">Próximo&gt;&gt;&gt;</a> Os Tipos &amp; Seqüência de escape</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Girl' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/girl">The Beatles &#8211; Girl</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=66&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/iniciando-em-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
		<item>
		<title>C/C++: Ferramentas</title>
		<link>http://robertcg.wordpress.com/2009/12/15/ferramentas/</link>
		<comments>http://robertcg.wordpress.com/2009/12/15/ferramentas/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:39:21 +0000</pubDate>
		<dc:creator>Robert CG</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Conteúdo]]></category>
		<category><![CDATA[Linguagem de Programação]]></category>
		<category><![CDATA[Bloodshed Dev-C++]]></category>
		<category><![CDATA[kdevelop]]></category>

		<guid isPermaLink="false">http://robertcg.wordpress.com/?p=55</guid>
		<description><![CDATA[Ferramentas O Ming é um compilador gratuito e baseado no gcc da Gnu, produzido para trabalhar em Dos e Windows. Siga o link para baixá-lo: http://www.xraylith.wisc.edu/~khan/software/gnu-win32/ Há também o djgpp, que é um exímio compilador. Encontra-se em: http://www.delorie.com/djgpp/ O Unix e suas implementações vêem com compilador como parte integrante. Sendo assim, digite no Shell “g++ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=55&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Ferramentas</em></strong></p>
<p><strong><em> </em></strong></p>
<p>O <em>Ming</em> é um compilador gratuito e baseado no gcc da Gnu, produzido para trabalhar em <em>Dos</em> e Windows. Siga o link para baixá-lo:</p>
<p><em>http://www.xraylith.wisc.edu/~khan/software/gnu-win32/</em></p>
<p>Há também o djgpp, que é um exímio compilador. Encontra-se em:</p>
<p><em>http://www.delorie.com/djgpp/</em></p>
<p>O Unix e suas implementações vêem com compilador como parte integrante. Sendo assim, digite no Shell “g++ -v<strong>” </strong>para saber qual a versão que você possui. Para compilar um programa em Unix digite:</p>
<p>“<em>g++ nome_do_programa.cpp</em>”</p>
<p>Para os iniciantes Windows&#8230; bom mesmo seria uma IDE, sugerimos o Bloodshed Dev-C++: Bom, Bonito e Gratuito! Produzido com a linguagem de programação <em>Delphi</em>, que<em> </em>ironia, hein? Encontra-se em:</p>
<p><em>http://www.bloodshed.net/dev/devcpp.html </em></p>
<p>Para os usuários de GNU/Linux, Unix; temos a IDE <em>Kdevelop, </em>que é um ambiente de programação completo, possui como parte integrante a biblioteca qt (toolkit gráfico)<em>:</em></p>
<p><em>http://www.kdevelop.org/</em></p>
<p><em><br />
</em></p>
<p style="text-align:center;"><a href="http://wp.me/ptOAh-Q" target="_self">&lt;&lt;&lt;Anterior</a> <a href="http://wp.me/ptOAh-14" target="_self">Próximo&gt;&gt;&gt;</a> Iniciando Em C++</p>
<p style="text-align:center;">
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Listening to: <a title="'The Beatles - Michelle' - open on FoxyTunes Planet" href="http://www.foxytunes.com/artist/the+beatles/track/michelle">The Beatles &#8211; Michelle</a><br />
<span style="color:#999999;font-style:italic;font-size:10px;">via <a style="color:#666666;" title="FoxyTunes - Web of music at your fingertips" href="http://www.foxytunes.com/signatunes/">FoxyTunes</a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/robertcg.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/robertcg.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/robertcg.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=robertcg.wordpress.com&amp;blog=7105961&amp;post=55&amp;subd=robertcg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://robertcg.wordpress.com/2009/12/15/ferramentas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="http://1.gravatar.com/avatar/f212532b872c405b3eaff1fbf9773650?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robbie</media:title>
		</media:content>
	</item>
	</channel>
</rss>
