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

<channel>
	<title>Arquivo para C# - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/c/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Wed, 25 Jun 2025 20:09:36 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>Programa que converte um número de binário para decimal em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 20 Sep 2023 12:59:17 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=19702</guid>

					<description><![CDATA[<p>Conversão de um número binário para decimal em C++ Fala pessoal! No artigo passado escrevemos um programa que permitia converter um número decimal em binário, usando C++. Agora vamos criar um pequeno programa que permite realizar o processo inverso &#8211; a conversão de um número binário, fornecido pelo usuário, em seu equivalente decimal, também usando a linguagem C++. Vamos ao código. Código &#8211; Converter binário em decimal com C++ #include&#60;iostream&#62; #include&#60;cmath&#62; using namespace std; int main() { int num, resto, base = 2, soma = 0, i = 0; // Solicita ao usuário que digite o número binário a ser convertido cout &#60;&#60; "CONVERSÃO DE BINÁRIO PARA DECIMAL \n"; cout &#60;&#60; "Digite o número em binário e pressione ENTER: "; cin &#62;&#62; num; // Laço onde é realizada a conversão do número binário em decimal while (num &#62; 0) { resto = num % 10; // Calcula o dígito binário menos significativo soma = soma + (resto * pow(base, i)); // Converte e acumula o dígito binário em decimal num = num / 10; // Remove o dígito binário processado i += 1; // Incrementa o expoente da base (2) } // Exibe o número decimal resultante cout &#60;&#60; "\nNúmero [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/">Programa que converte um número de binário para decimal em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Conversão de um número binário para decimal em C++</h2>
<p>Fala pessoal! No artigo passado escrevemos um programa que permitia<a href="http://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/"> converter um número decimal em binário, usando C++</a>. Agora vamos criar um pequeno programa que permite realizar o processo inverso &#8211; a conversão de um número binário, fornecido pelo usuário, em seu equivalente decimal, também usando a linguagem C++.</p>
<p>Vamos ao código.</p>
<h3>Código &#8211; Converter binário em decimal com C++</h3>
<pre><strong>#include&lt;iostream&gt;</strong>
<strong>#include&lt;cmath&gt;

</strong><strong>using namespace std;

</strong><strong>int main() {</strong>
<strong>  int num, resto, base = 2, soma = 0, i = 0;

</strong><span style="color: #339966;"><strong>  // Solicita ao usuário que digite o número binário a ser convertido</strong></span>
<strong>  cout &lt;&lt; "CONVERSÃO DE BINÁRIO PARA DECIMAL \n"; </strong>
<strong>  cout &lt;&lt; "Digite o número em binário e pressione ENTER: ";</strong>
<strong>  cin &gt;&gt; num;

</strong><span style="color: #339966;"><strong>  // Laço onde é realizada a conversão do número binário em decimal</strong></span>
<strong>  while (num &gt; 0) {</strong>
<strong>    resto = num % 10; <span style="color: #339966;">// Calcula o dígito binário menos significativo</span></strong>
<strong>    soma = soma + (resto * pow(base, i)); <span style="color: #339966;">// Converte e acumula o dígito binário em decimal</span></strong>
<strong>    num = num / 10; <span style="color: #339966;">// Remove o dígito binário processado</span></strong>
<strong>    i += 1; <span style="color: #339966;">// Incrementa o expoente da base (2)</span></strong>
<strong>  }

</strong><span style="color: #339966;"><strong>  // Exibe o número decimal resultante</strong></span>
<strong>  cout &lt;&lt; "\nNúmero convertido para decimal: " &lt;&lt; soma;</strong>
<strong>  return 0;</strong>
<strong>}</strong></pre>
<h4>Resultado</h4>
<pre><span style="color: #000000;"><strong>CONVERSÃO DE BINÁRIO PARA DECIMAL </strong></span>
<span style="color: #000000;"><strong>Digite o número em binário e pressione ENTER: 1001111</strong></span>
<span style="color: #000000;"><strong>Número convertido para decimal: 79</strong></span></pre>
<h3>Funcionamento do Código</h3>
<p>O programa inicia incluindo as bibliotecas <strong><em>iostream</em></strong> e <strong><em>cmath</em></strong> para permitir entrada/saída de dados e realizar cálculos matemáticos, respectivamente. Também usa <strong><em>using namespace std</em></strong> para evitar a necessidade de usar std:: antes de funções como cin e cout.</p>
<p>O programa então declara algumas variáveis, incluindo <strong>num</strong> para armazenar o número binário inserido pelo usuário, <strong>resto</strong> para armazenar o dígito binário atualmente sendo processado, <strong>base,</strong> que é 2 (pois estamos convertendo de binário para decimal), <strong>soma</strong> para acumular o valor decimal resultante e <strong>i</strong> para controlar o expoente da base.</p>
<p>Na sequência é solicitado que o usuário insira o número binário que deseja converter.</p>
<p>O programa entra então em um laço <strong>while</strong> que continuará até que o número binário (num) seja maior que zero.</p>
<p>Dentro esse laço, ele calcula o dígito binário menos significativo usando a operação <strong>num % 10</strong>. Isso resulta em 0 ou 1, que é o dígito binário atual.</p>
<p>O dígito binário é convertido em decimal e adicionado à variável soma usando a fórmula <em><strong>soma = soma + (resto * pow(base, i))</strong></em>. Aqui, <em>resto</em> é o dígito binário, <em>base</em> é 2 (base binária) e<em> i</em> é o expoente que começa em 0 e aumenta a cada iteração.</p>
<p>Logo após o número binário (num) é dividido por 10 (num = num / 10) para remover o dígito binário que foi processado.</p>
<p>Então, o expoente da base (i) é incrementado em 1 (i += 1) para lidar com o próximo dígito binário.</p>
<p>Após a conclusão do laço de repetição, o programa exibe o número decimal resultante.</p>
<p>Finalmente, o programa retorna 0, indicando que a execução foi bem-sucedida.</p>
<p>É isso aí! Nos próximos tutoriais veremos outros tipos de conversões de bases numéricas usando a linguagem C++, como a conversão de hexadecimal em decimal e binário e vice-versa.</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/">Programa que converte um número de binário para decimal em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programa que converte um número de decimal para binário em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 20 Sep 2023 12:39:40 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=19696</guid>

					<description><![CDATA[<p>Conversão de decimal para binário em C++ Fala pessoal! Neste tutorial vamos criar um pequeno programa que permite realizar a conversão de um número decimal, fornecido pelo usuário, em seu equivalente binário, usando a linguagem C++. Usaremos o método das divisões sucessivas por 2, com o emprego da operação aritmética de módulo (resto da divisão inteira) para realizar essa conversão de bases numéricas. Vamos ao código. Código: Converter decimal em binário em C++ #include&#60;iostream&#62; using namespace std; int main() { int num, soma[100], i=0; // Solicita ao usuário que o número decimal a ser convertido cout&#60;&#60; "CONVERSÃO DE UM NÚMERO DECIMAL EM BINÁRIO \n"; cout&#60;&#60;"Digite o número a converter e pressione ENTER: \n"; cin&#62;&#62;num; // Exibe o número decimal que será convertido cout&#60;&#60;"Número a converter: "; cout&#60;&#60;num; // O loop a seguir realiza a conversão do número decimal em binário while (num &#62; 0) { soma[i] = num % 2; // Calcula o resto da divisão por 2 (que é 0 ou 1) i = i + 1; // Incrementa o índice para armazenar o próximo dígito binário num = num / 2; // Divide o número decimal por 2 para continuar a conversão } // Exibe o número binário convertido [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/">Programa que converte um número de decimal para binário em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Conversão de decimal para binário em C++</h2>
<p>Fala pessoal! Neste tutorial vamos criar um pequeno programa que permite realizar a conversão de um número decimal, fornecido pelo usuário, em seu equivalente binário, usando a linguagem C++.</p>
<p>Usaremos o método das divisões sucessivas por 2, com o emprego da operação aritmética de módulo (resto da divisão inteira) para realizar essa conversão de bases numéricas.</p>
<p>Vamos ao código.</p>
<h3>Código: Converter decimal em binário em C++</h3>
<pre><strong>#include&lt;iostream&gt;</strong>
<strong>using namespace std;</strong>
<strong>int main()</strong>
<strong>{</strong>
<strong>  int num, soma[100], i=0;

</strong><span style="color: #339966;"><strong>  // Solicita ao usuário que o número decimal a ser convertido</strong></span>
<strong>  cout&lt;&lt; "CONVERSÃO DE UM NÚMERO DECIMAL EM BINÁRIO \n"; </strong>
<strong>  cout&lt;&lt;"Digite o número a converter e pressione ENTER: \n";</strong>
<strong>  cin&gt;&gt;num;

</strong><span style="color: #339966;"><strong>  // Exibe o número decimal que será convertido</strong></span>
<strong>  cout&lt;&lt;"Número a converter: "; </strong>
<strong>  cout&lt;&lt;num;

</strong><span style="color: #339966;"><strong>  // O loop a seguir realiza a conversão do número decimal em binário</strong></span>
<strong>  while (num &gt; 0) {</strong>
<strong>    soma[i] = num % 2; <span style="color: #339966;">// Calcula o resto da divisão por 2 (que é 0 ou 1)</span></strong>
<strong>    i = i + 1; <span style="color: #339966;">// Incrementa o índice para armazenar o próximo dígito binário</span></strong>
<strong>    num = num / 2; <span style="color: #339966;">// Divide o número decimal por 2 para continuar a conversão</span></strong>
<strong>  }

</strong><span style="color: #339966;"><strong>  // Exibe o número binário convertido</strong></span>
<strong>  cout&lt;&lt;"\nNúmero convertido em binário: "; </strong>
<strong>  for(int j=i-1;j&gt;=0;j--)</strong>
<strong>  {</strong>
<strong>    cout&lt;&lt;soma[j]; <span style="color: #339966;">// Mostra os dígitos binários na ordem correta</span></strong>
<strong>  }</strong>
<strong>  return 0;</strong>
<strong>}</strong></pre>
<h4>Teste</h4>
<pre><span style="color: #000000;"><strong>CONVERSÃO DE UM NÚMERO DECIMAL EM BINÁRIO </strong></span>
<span style="color: #000000;"><strong>Digite o número a converter e pressione ENTER: </strong></span>
<span style="color: #000000;"><strong>1650</strong></span>
<span style="color: #000000;"><strong>Número a converter: 1650</strong></span>
<span style="color: #000000;"><strong>Número convertido em binário: 11001110010</strong></span></pre>
<h3>Funcionamento do Código</h3>
<ol>
<li>O programa inicia com a inclusão da biblioteca <strong><em>iostream</em></strong> para permitir entrada e saída no console (cin e cout), usando o namespace <strong>std</strong> para evitar a necessidade de usar std:: antes das funções cin e cout.</li>
<li>Na sequência declaramos algumas variáveis, incluindo <strong>num</strong> para armazenar o número decimal inserido pelo usuário, um vetor (array)  <strong>soma</strong> para armazenar os dígitos binários e<strong> i</strong> para controlar o índice de soma.</li>
<li>O programa então solicita que o usuário insira o número decimal que deseja converter.</li>
<li>O programa entra em um laço while que continuará iterando até que o número decimal (num) seja maior que zero.</li>
<li>Dentro desse laço, é calculado o resto da divisão (módulo) do número decimal por 2 usando <strong>num % 2</strong>. Isso resulta em 0 ou 1, que é o dígito binário correspondente ao dígito menos significativo do número decimal.</li>
<li>O dígito binário calculado é armazenado no array soma[i], onde i é o índice atual do array. O índice é então incrementado para armazenar o próximo dígito binário.</li>
<li>O número decimal (num) é dividido por 2 (<strong>num = num / 2</strong>) para continuar a conversão, removendo o dígito menos significativo.</li>
<li>Após a conclusão do loop, o programa exibe o número binário resultante. Ele faz isso percorrendo o array <strong>soma</strong> na ordem reversa (do dígito mais significativo para o menos significativo) e exibindo cada dígito binário.</li>
<li>O programa finalmente retorna 0, indicando que a execução foi bem-sucedida.</li>
</ol>
<p>É isso aí! No próximo artigo faremos o processo inverso: faremos a <a href="http://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-binario-para-decimal-em-c/">conversão de um valor binário fornecido pelo usuário em sua representação decimal com C++</a>.</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/">Programa que converte um número de decimal para binário em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/programa-que-converte-um-numero-de-decimal-para-binario-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Erro O nome do tipo &#8220;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8221; (Resolvido) &#8211; Visual Studio</title>
		<link>https://www.bosontreinamentos.com.br/csharp/erro-o-nome-do-tipo-sqlconnection-nao-pode-ser-encontrado-no-namespace-system-data-sqlclient-resolvido-visual-studio/</link>
					<comments>https://www.bosontreinamentos.com.br/csharp/erro-o-nome-do-tipo-sqlconnection-nao-pode-ser-encontrado-no-namespace-system-data-sqlclient-resolvido-visual-studio/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 12 May 2022 14:37:37 +0000</pubDate>
				<category><![CDATA[Programação com C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=18193</guid>

					<description><![CDATA[<p>Erro O nome do tipo &#8220;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8221; Neste tutorial veremos como solucionar o erro &#8220;&#8221;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8220;&#8221; em uma aplicação C# escrita no Microsoft Visual Studio. Problema Durante uma aula de programação com C#, ao tentar criar uma aplicação com GUI usando o Microsoft Visual Studio 19 e o .NET 5.0, os alunos se depararam com o erro a seguir ao codificar a aplicação: Os objetos SqlConnection, SqlCommand e SqlDataReader não eram reconhecidos mesmo após a inclusão do namespace System.Data.SqlClient na seção de diretivas &#8220;using&#8220; do programa. Ao tentar executar o código, as seguintes mensagens de erro eram mostradas na saída: Por que esse erro ocorre O que causa desse erro é o fato do namespace System.Data.SqlClient não ter sido referenciado pelo projeto por padrão, conforme deveria ser feito pelo .NET Framework. Assim, para corrigir esse problema, será necessário adicionar o pacote manualmente ao projeto. Como resolver o problema Solução: instalar o pacote System.Data.SqlClient no NuGet para que o projeto possa utilizá-lo. Siga os passos abaixo para realizar essa tarefa. Clique com o botão direito do mouse no nome da solução no painel de soluções do Visual Studio. No menu [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/csharp/erro-o-nome-do-tipo-sqlconnection-nao-pode-ser-encontrado-no-namespace-system-data-sqlclient-resolvido-visual-studio/">Erro O nome do tipo &#8220;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8221; (Resolvido) &#8211; Visual Studio</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Erro O nome do tipo &#8220;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8221;</h2>
<p>Neste tutorial veremos como solucionar o erro &#8220;&#8221;<strong><em>SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient</em></strong>&#8220;&#8221; em uma aplicação C# escrita no Microsoft Visual Studio.</p>
<h2>Problema</h2>
<p>Durante uma aula de programação com C#, ao tentar criar uma aplicação com GUI usando o Microsoft Visual Studio 19 e o .NET 5.0, os alunos se depararam com o erro a seguir ao codificar a aplicação:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18197 size-full" title="Erro System.Data.SqlClient no Visual Studio em C#" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-01.jpg" alt="Erro System.Data.SqlClient no Visual Studio em C#" width="697" height="468" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-01.jpg 697w, https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-01-420x282.jpg 420w" sizes="auto, (max-width: 697px) 100vw, 697px" /></p>
<p>Os objetos <strong>SqlConnection</strong>, <strong>SqlCommand</strong> e <strong>SqlDataReader</strong> não eram reconhecidos mesmo após a inclusão do namespace <strong>System.Data.SqlClient</strong> na seção de <a href="http://www.bosontreinamentos.com.br/csharp/programacao-em-c-namespaces-assemblies-e-a-diretiva-using-03/">diretivas &#8220;<em>using</em>&#8220;</a> do programa.</p>
<p>Ao tentar executar o código, as seguintes mensagens de erro eram mostradas na saída:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18198" title="Erro conexão SQL Server Visual Studio" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-02.jpg" alt="Erro conexão SQL Server Visual Studio" width="701" height="234" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-02.jpg 1019w, https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-02-420x140.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-02-768x256.jpg 768w" sizes="auto, (max-width: 701px) 100vw, 701px" /></p>
<h3>Por que esse erro ocorre</h3>
<p>O que causa desse erro é o fato do namespace <strong>System.Data.SqlClient</strong> não ter sido referenciado pelo projeto por padrão, conforme deveria ser feito pelo .NET Framework. Assim, para corrigir esse problema, será necessário adicionar o pacote manualmente ao projeto.</p>
<h3>Como resolver o problema</h3>
<p>Solução: instalar o pacote System.Data.SqlClient no NuGet para que o projeto possa utilizá-lo. Siga os passos abaixo para realizar essa tarefa.</p>
<ol>
<li>Clique com o botão direito do mouse no nome da solução no painel de soluções do Visual Studio.</li>
<li>No menu de contexto, selecione Gerenciar Pacotes NuGet para a Solução&#8230;</li>
<li>Na janela Gerenciador de Pacotes NuGet, clique na guia Procurar.</li>
<li>Na caixa de pesquisa digite System.Data.SqlClient e pressione Enter.</li>
<li>Procure o pacote System.Data.SqlClient da Microsoft e o selecione.
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18199" title="Erro System.Data.SqlClient no Visual Studio" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-03.jpg" alt="Erro System.Data.SqlClient no Visual Studio" width="700" height="243" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-03.jpg 729w, https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-03-420x146.jpg 420w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
</li>
<li>Um pequeno painel será aberto no lado direito da janela. Selecione a versão do pacote a instalar (geralmente a mais recente funcionará) e pressione o botão de instalação. Aguarde a conclusão da instalação. O NuGet irá instalar o pacote selecionado e todas as suas dependências.</li>
<li>Após o término da instalação do System.Data.SqlClient retorne ao seu projeto e tente executá-lo novamente. Se tudo correu bem, você não verá o erro ocorrendo outra vez.</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18200 size-full" title="Erro System.Data.SqlClient no Visual Studio resolvido" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-04.jpg" alt="Erro System.Data.SqlClient no Visual Studio resolvido" width="692" height="284" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-04.jpg 692w, https://www.bosontreinamentos.com.br/wp-content/uploads/2022/05/erro-sql-04-420x172.jpg 420w" sizes="auto, (max-width: 692px) 100vw, 692px" /></p>
<p><em><strong>Problema solucionado!</strong></em></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/csharp/erro-o-nome-do-tipo-sqlconnection-nao-pode-ser-encontrado-no-namespace-system-data-sqlclient-resolvido-visual-studio/">Erro O nome do tipo &#8220;SqlConnection&#8221; não pode ser encontrado no namespace &#8220;System.Data.SqlClient&#8221; (Resolvido) &#8211; Visual Studio</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/csharp/erro-o-nome-do-tipo-sqlconnection-nao-pode-ser-encontrado-no-namespace-system-data-sqlclient-resolvido-visual-studio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Operadores Aritméticos em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-aritmeticos-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-aritmeticos-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 12 Mar 2021 13:22:05 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17499</guid>

					<description><![CDATA[<p>Operadores Aritméticos em C++ Um operador aritmético, como o nome sugere, é um operador que permite criar expressões aritméticas para a realização de cálculos matemáticos em u programa, geralmente com a elaboração e aplicação de fórmulas matemáticas comuns. A linguagem C++ possui suporte aos tipos básicos de operadores aritméticos, que cobrem as quatro operações fundamentais da matemática (soma, subtração, multiplicação e divisão), mais um operador para o cálculo do módulo, entendido em programação como o resto de uma divisão inteira (não confundir com módulo matemático, que se refere ao valor absoluto de um número, que é, basicamente, o número sem sinal). A tabela a seguir mostra os operadores aritméticos em C++, suas operações relacionadas e um exemplo de expressão aritmética: Operação Operador Expressão de Exemplo Adição + a + b Subtração &#8211; a &#8211; b Multiplicação * a * b Divisão / a / b Módulo % a % b Esses operadores são todos operadores binários, ou seja, que recebem e processam dois operandos, com associatividade da esquerda para a direita. O operador de divisão / realiza uma operação de divisão inteira caso ambos os operadores sejam números inteiros, e uma operação de divisão comum (de números reais) se ao [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/operadores-aritmeticos-em-c/">Operadores Aritméticos em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Operadores Aritméticos em C++</h2>
<p>Um operador aritmético, como o nome sugere, é um operador que permite criar expressões aritméticas para a realização de cálculos matemáticos em u programa, geralmente com a elaboração e aplicação de fórmulas matemáticas comuns.</p>
<p>A linguagem C++ possui suporte aos tipos básicos de operadores aritméticos, que cobrem as quatro operações fundamentais da matemática (soma, subtração, multiplicação e divisão), mais um operador para o cálculo do módulo, entendido em programação como o resto de uma divisão inteira (não confundir com <em>módulo matemático</em>, que se refere ao <em>valor absoluto</em> de um número, que é, basicamente, o número sem sinal).</p>
<p>A tabela a seguir mostra os operadores aritméticos em C++, suas operações relacionadas e um exemplo de expressão aritmética:</p>
<table style="border-collapse: collapse; width: 100%;" border="1">
<tbody>
<tr>
<td style="width: 33.3333%;">Operação</td>
<td style="width: 33.3333%;">Operador</td>
<td style="width: 33.3333%;">Expressão de Exemplo</td>
</tr>
<tr>
<td style="width: 33.3333%;">Adição</td>
<td style="width: 33.3333%;">+</td>
<td style="width: 33.3333%;">a + b</td>
</tr>
<tr>
<td style="width: 33.3333%;">Subtração</td>
<td style="width: 33.3333%;">&#8211;</td>
<td style="width: 33.3333%;">a &#8211; b</td>
</tr>
<tr>
<td style="width: 33.3333%;">Multiplicação</td>
<td style="width: 33.3333%;">*</td>
<td style="width: 33.3333%;">a * b</td>
</tr>
<tr>
<td style="width: 33.3333%;">Divisão</td>
<td style="width: 33.3333%;">/</td>
<td style="width: 33.3333%;">a / b</td>
</tr>
<tr>
<td style="width: 33.3333%;">Módulo</td>
<td style="width: 33.3333%;">%</td>
<td style="width: 33.3333%;">a % b</td>
</tr>
</tbody>
</table>
<p>Esses operadores são todos operadores binários, ou seja, que recebem e processam dois operandos, com <a href="http://www.bosontreinamentos.com.br/programacao-em-c/associatividade-e-precedencia-de-operadores-em-c/">associatividade</a> da esquerda para a direita.</p>
<p>O operador de divisão / realiza uma operação de divisão inteira caso ambos os operadores sejam números inteiros, e uma operação de divisão comum (de números reais) se ao menos um dos operadores for um número de ponto flutuante (com casas decimais). Veja o exemplo a seguir:</p>
<pre><strong>int a = 9;</strong>
<strong>int b = 2;</strong>
<strong>float c = 2.0;</strong>
<strong>cout &lt;&lt; a / b &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; a / c &lt;&lt; endl;</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #800000;"><strong>4</strong></span>
<span style="color: #800000;"><strong>4.5</strong></span></pre>
<p>No primeiro exemplo o resultado foi um numero inteiro, pois a divisão foi realizada entre dois inteiros, a e b. Já a segunda divisão retornou o número 4,5, um valor de ponto flutuante, pois um dos operandos envolvidos (variável c) era do tipo float.</p>
<p>É importante sempre levar em consideração a <a href="http://www.bosontreinamentos.com.br/programacao-em-c/associatividade-e-precedencia-de-operadores-em-c/">ordem de precedência dos operadores</a>, que determina como uma expressão com mais de um operador será avaliada. Este é o assunto da lição seguinte, que pode ser acessada clicando no link acima.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/operadores-aritmeticos-em-c/">Operadores Aritméticos em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-aritmeticos-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Declaração de Variáveis em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/declaracao-de-variaveis-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/declaracao-de-variaveis-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 11 Mar 2021 12:01:46 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17456</guid>

					<description><![CDATA[<p>Variáveis em C++ As Variáveis, em programação, são identificadores que criamos para armazenar valores ou referências a objetos no código. Na prática, uma variável é um local nomeado na memória RAM do computador, onde valores são armazenados para processamento. Quando criamos uma variável em C++, devemos informar o tipo de dado que ela armazenará. Podemos atribuir um valor à variável na hora em que a criamos (na sua declaração) ou posteriormente, em outro ponto do código. Chamamos a esse processo de&#160; “inicializar a variável”. Mesmo sendo possível inicializar uma variável em um momento posterior à sua declaração, o tipo de dado deve ser sempre atribuído quando a definimos. O C++ não permite que utilizemos uma variável não inicializada para ajudar a impedir que dados não desejados (lixo de memória) sejam usados indevidamente na aplicação. Como declarar uma variável em C++ O trecho de código a seguir demonstra a declaração de uma variável e a atribuição de um valor a ela. Em C++ temos duas formas de inicializar uma variável: int var1 = 0; int var2{1}; Basicamente, a sintaxe é a seguinte: tipo identificador [= valor_inicialização] Onde: tipo é o tipo de dado que será armazenado na variável identificador é o [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/declaracao-de-variaveis-em-c/">Declaração de Variáveis em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Variáveis em C++</h2>
<p><span style="font-weight: 400;">As Variáveis, em programação, são identificadores que criamos para armazenar valores ou referências a objetos no código. Na prática, uma variável é um local nomeado na memória RAM do computador, onde valores são armazenados para processamento.</span></p>
<p><span style="font-weight: 400;">Quando criamos uma variável em C++, devemos informar o tipo de dado que ela armazenará. Podemos atribuir um valor à variável na hora em que a criamos (na sua declaração) ou posteriormente, em outro ponto do código.</span></p>
<p><span style="font-weight: 400;">Chamamos a esse processo de&nbsp; “<em>inicializar a variável</em>”. Mesmo sendo possível inicializar uma variável em um momento posterior à sua declaração, o tipo de dado deve ser sempre atribuído quando a definimos.</span></p>
<p><span style="font-weight: 400;">O C++ não permite que utilizemos uma variável não inicializada para ajudar a impedir que dados não desejados (lixo de memória) sejam usados indevidamente na aplicação.</span></p>
<h3><strong>Como declarar uma variável em C++</strong></h3>
<p><span style="font-weight: 400;">O trecho de código a seguir demonstra a declaração de uma variável e a atribuição de um valor a ela. Em C++ temos duas formas de inicializar uma variável:</span></p>
<pre><span style="font-weight: 400;">int var1 = 0;</span>
<span style="font-weight: 400;">int var2{1};</span></pre>
<p>Basicamente, a sintaxe é a seguinte:</p>
<pre><strong><span style="color: #800080;">tipo identificador [= valor_inicialização]</span></strong></pre>
<p>Onde:</p>
<ul>
<li><strong>tipo</strong> é o <a href="http://www.bosontreinamentos.com.br/programacao-em-c/tipos-de-dados-em-c/">tipo de dado</a> que será armazenado na variável</li>
<li><strong>identificador</strong> é o nome da variável</li>
<li><strong>valor_inicialização</strong> é o valor a ser atribuído à variável (os colchetes denotam que o valor é opcional na declaração da variável, pois pode ser atribuído posteriormente).</li>
</ul>
<h3><strong>Regras para identificadores</strong></h3>
<p><span style="font-weight: 400;">O C++ possui algumas restrições com relação a identificadores (nomes das variáveis e outros elementos) que é importante conhecer.</span></p>
<p><span style="font-weight: 400;">Primeiramente, os identificadores são case-sensitive porque a linguagem C++ é case-sensitive. Isso significa que identificadores como var1, Var1, e VAR1, são considerados identificadores diferentes (variáveis distintas).</span></p>
<p><span style="font-weight: 400;">Os identificadores somente podem ter letras (maiúsculas ou minúsculas), dígitos numéricos e o caractere underline. O identificador somente pode começar com uma letra ou um caractere underline _, não podendo começar com um número.<br />
Assim, <strong>var1</strong> e <strong>_var1</strong> são nomes de variáveis válidos, mas <strong>1var</strong> não é, pois começa com um dígito numérico.</span></p>
<p><span style="font-weight: 400;">A linguagem C++ possui também um conjunto de palavras reservadas que são usadas pela linguagem. Não podemos usar essas palavras reservadas como identificadores no código. É até possível empregar palavras reservadas em caso distinto (em maiúsculas, por exemplo), pois o C++ é case-sensitive, mas essa não é uma abordagem recomendada.</span></p>
<p><span style="font-weight: 400;">A lista a seguir mostra as palavras reservadas que você não deve usar para criar identificadores de nenhum tipo em C++.</span></p>
<h4><em><span style="font-weight: 400;">Lista de palavras reservadas em C++</span></em></h4>
<pre><span style="font-weight: 400;">alignas continue friend register true alignof decltype goto reinterpret_cast tryasm default if return typedef auto delete inline short typeid bool do int signed typename break double long sizeof union case dynamic_cast mutable static unsignedcatch else namespace static_assert usingchar enum new static_cast virtualchar16_t explicit noexcept struct voidchar32_t export nullptr switch volatile class extern operator template wchar_tconst false private this while constexpr float protected thread_localconst_cast for public throw</span></pre>
<p><span style="font-weight: 400;">A lista de palavras reservadas pode ser alterada ao longo do tempo, conforma a linguagem vai evoluindo e novos padrões são publicados. Para se manter atualizado com relação às palavras reservadas em C++, sempre verifique a documentação mais atual padrão do C++, que pode ser acessada aqui: </span><a href="https://isocpp.org/files/papers/N3690.pdf" target="_blank" rel="noopener"><span style="font-weight: 400;">https://isocpp.org/files/papers/N3690.pdf</span></a></p>
<h3>Exemplos de declaração de variáveis em C++</h3>
<p>Vejamos alguns exemplos de declaração e atribuição de variáveis em C++ agora.</p>
<pre><span style="color: #008000;">#include &lt;iostream&gt;</span>

using namespace std;

int main() {
  int a;
  int b;
  a = 10;
  b = 20;
  cout &lt;&lt; "Valor de a: " &lt;&lt; a;
  cout &lt;&lt; "\n";
  cout &lt;&lt; "Valor de b: " &lt;&lt; b &lt;&lt; endl;

  int res;
  res = a + b;
  cout &lt;&lt; "Valor de res: " &lt;&lt; res &lt;&lt; endl;

  int c(15);
  int d(30);
  int result {c + d};
  cout &lt;&lt; "Valor de result: " &lt;&lt; result &lt;&lt; endl;

  return 0;
}</pre>
<p>Resultado:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17457 size-full" title="Declaração de variáveis em C++" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/01/variaveis-c-boson.png" alt="Declaração de variáveis em C++" width="492" height="152" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/01/variaveis-c-boson.png 492w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/01/variaveis-c-boson-420x130.png 420w" sizes="auto, (max-width: 492px) 100vw, 492px" /></p>
<p>É isso aí! Nas próximas lições veremos como usar funções de entrada e saída de dados em C++ (como a função cout mostrada no exemplo), além de empregar operadores diversos para manipular valores armazenados em variáveis.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/declaracao-de-variaveis-em-c/">Declaração de Variáveis em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/declaracao-de-variaveis-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Operadores Relacionais e de Igualdade em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-relacionais-e-de-igualdade-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-relacionais-e-de-igualdade-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 29 Jan 2021 14:14:26 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Cpp]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17501</guid>

					<description><![CDATA[<p>Operadores Relacionais e de Igualdade em C++ Usamos os operadores relacionais para estabelecer uma relação entre dois valores (operandos). Por exemplo, com um operador relacional podemos verificar se dois valores (contidos ou não em variáveis) são iguais ou diferentes entre si. As expressões construídas com operadores relacionais sempre retornam um valor lógico (verdadeiro ou falso) Operador de atribuição Não confunda o operador de igualdade com um operador de atribuição, que possui função distinta &#8211; atribuir valores a variáveis &#8211; apesar de ambos empregarem o sinal de igual (=) A tabela a seguir lista os operadores relacionais e de igualdade usados em programação com linguagem C++, com exemplos. Operadores Relacionais Operação Operador Exemplo Maior que &#62; x &#62; y Menor que &#60; x &#60; y Maior ou igual a &#62;= x &#62;= y Menor ou igual a &#60;= x &#60;= y Operadores de Igualdade Operação Operador Exemplo Igual a == x == y Diferente de != x != y Precedência e associatividade dos operadores Os operadores relacionais tem maior precedência que os de igualdade, mas tem precedência igual entre si. A associatividade de todos esses operadores é sempre da esquerda para a direita. Exemplos Os operadores relacionais e de igualdade são [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/operadores-relacionais-e-de-igualdade-em-c/">Operadores Relacionais e de Igualdade em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Operadores Relacionais e de Igualdade em C++</h2>
<p>Usamos os operadores relacionais para estabelecer uma relação entre dois valores (operandos). Por exemplo, com um operador relacional podemos verificar se dois valores (contidos ou não em variáveis) são iguais ou diferentes entre si.</p>
<p>As expressões construídas com operadores relacionais sempre retornam um valor lógico (verdadeiro ou falso)</p>
<h4>Operador de atribuição</h4>
<p>Não confunda o operador de igualdade com um operador de atribuição, que possui função distinta &#8211; atribuir valores a variáveis &#8211; apesar de ambos empregarem o sinal de igual (=)</p>
<p>A tabela a seguir lista os operadores relacionais e de igualdade usados em programação com linguagem C++, com exemplos.</p>
<table style="border-collapse: collapse; width: 100%;" border="1">
<tbody>
<tr>
<td style="width: 33.3333%; text-align: center;" colspan="3"><span style="font-size: 14pt;"><strong>Operadores Relacionais</strong></span></td>
</tr>
<tr>
<td style="width: 33.3333%; text-align: center;"><strong>Operação</strong></td>
<td style="width: 33.3333%; text-align: center;"><strong>Operador</strong></td>
<td style="width: 33.3333%; text-align: center;"><strong>Exemplo</strong></td>
</tr>
<tr>
<td style="width: 33.3333%;">Maior que</td>
<td style="width: 33.3333%; text-align: center;">&gt;</td>
<td style="width: 33.3333%; text-align: center;">x &gt; y</td>
</tr>
<tr>
<td style="width: 33.3333%;">Menor que</td>
<td style="width: 33.3333%; text-align: center;">&lt;</td>
<td style="width: 33.3333%; text-align: center;">x &lt; y</td>
</tr>
<tr>
<td style="width: 33.3333%;">Maior ou igual a</td>
<td style="width: 33.3333%; text-align: center;">&gt;=</td>
<td style="width: 33.3333%; text-align: center;">x &gt;= y</td>
</tr>
<tr>
<td style="width: 33.3333%;">Menor ou igual a</td>
<td style="width: 33.3333%; text-align: center;">&lt;=</td>
<td style="width: 33.3333%; text-align: center;">x &lt;= y</td>
</tr>
<tr>
<td style="width: 33.3333%; text-align: center;" colspan="3"><span style="font-size: 14pt;"><strong>Operadores de Igualdade</strong></span></td>
</tr>
<tr>
<td style="width: 33.3333%; text-align: center;"><strong>Operação</strong></td>
<td style="width: 33.3333%; text-align: center;"><strong>Operador</strong></td>
<td style="width: 33.3333%; text-align: center;"><strong>Exemplo</strong></td>
</tr>
<tr>
<td style="width: 33.3333%;">Igual a</td>
<td style="width: 33.3333%; text-align: center;">==</td>
<td style="width: 33.3333%; text-align: center;">x == y</td>
</tr>
<tr>
<td style="width: 33.3333%;">Diferente de</td>
<td style="width: 33.3333%; text-align: center;">!=</td>
<td style="width: 33.3333%; text-align: center;">x != y</td>
</tr>
</tbody>
</table>
<h3>Precedência e associatividade dos operadores</h3>
<p>Os operadores relacionais tem maior precedência que os de igualdade, mas tem precedência igual entre si.</p>
<p>A associatividade de todos esses operadores é sempre da esquerda para a direita.</p>
<h4>Exemplos</h4>
<p>Os operadores relacionais e de igualdade são operadores binários que retornam um valor lógico, verdadeiro ou falso, representados respectivamente pelos valores numéricos 1 ou 0. Veja o exemplo a seguir:</p>
<pre><strong>int d = 15;</strong>
<strong>int e = 15;</strong>
<strong>cout &lt;&lt; "d &gt; e? " &lt;&lt; (d &gt; e) &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; "d &gt;= e? " &lt;&lt; (d &gt;= e) &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; "d &lt; e? " &lt;&lt; (d &lt; e) &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; "d &lt;= e? " &lt;&lt; (d &lt;= e) &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; "d == e? " &lt;&lt; (d == e) &lt;&lt; endl;</strong>
<strong>cout &lt;&lt; "d != e? " &lt;&lt; (d != e) &lt;&lt; endl;</strong></pre>
<p>Resultado:</p>
<pre><span style="color: #800000;"><strong>d &gt; e? 0</strong></span>
<span style="color: #800000;"><strong>d &gt;= e? 1</strong></span>
<span style="color: #800000;"><strong>d &lt; e? 0</strong></span>
<span style="color: #800000;"><strong>d &lt;= e? 1</strong></span>
<span style="color: #800000;"><strong>d == e? 1</strong></span>
<span style="color: #800000;"><strong>d != e? 0</strong></span></pre>
<p>Os valores 0 e 1 retornados nos exemplos indicam, respectivamente, os valores lógicos False (falso) e True (verdadeiro). Com isso, é possível tomar decisões baseadas no resultado das comparações realizadas, principalmente quando associamos esses operadores com estruturas de decisão condicional e estruturas de repetição, que estudaremos nas próximas lições.</p>
<p>É isso aí! Vimos nessa lição os operadores relacionais e os operadores de igualdade em C++. Vamos estudar operadores lógicos e aritméticos nas próximas lições.</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/operadores-relacionais-e-de-igualdade-em-c/">Operadores Relacionais e de Igualdade em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/operadores-relacionais-e-de-igualdade-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Diretivas de pré-processamento e namespaces em C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/diretivas-de-pre-processamento-e-namespaces-em-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/diretivas-de-pre-processamento-e-namespaces-em-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 06 Jan 2021 12:50:54 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17449</guid>

					<description><![CDATA[<p>Diretivas de pré-processamento e namespaces em C++ Tarefas de pré-processamento são tarefas que ocorrem antes que um programa seja efetivamente compilado. No pré-processamento, as principais operações realizadas antes da compilação incluem: Definição de Constantes Simbólicas Inclusão de outros arquivos no arquivo a ser compilado Definição de Macros Compilação condicional de código Execução condicional de diretivas As tarefas de pré-processamento são definidas por diretivas de pré-processamento no C++. Todas as diretivas de pré-processador se iniciam com o símbolo #, e não podemos ter nenhum caractere antes de uma diretiva em uma linha, exceto espaços em branco. Como as diretivas de pré-processamento não são declarações do C++ (comandos), elas não terminam com ponto-e-vírgula ;. Colocar o símbolo ; no final de uma diretiva de pré-processamento é, na verdade, um erro de programação comum. Diretivas de pré-processador em C++ São instruções direcionadas ao compilador. podemos fornecer algumas instruções ao compilador de modo que antes de iniciar o processo de compilação essas instruções são executadas. Alguns exemplos de diretivas de pré-processador incluem: #define &#8211; define constantes simbólicas (que não ocupam espaço na memória RAM do sistema) #ifndef &#8211; define um item se ele não tiver sido definido anteriormente #include &#8211; inclusão de cabeçalhos &#8211; [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/diretivas-de-pre-processamento-e-namespaces-em-c/">Diretivas de pré-processamento e namespaces em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Diretivas de pré-processamento e namespaces em C++</h2>
<p>Tarefas de pré-processamento são tarefas que ocorrem antes que um programa seja efetivamente compilado. No pré-processamento, as principais operações realizadas antes da compilação incluem:</p>
<ul>
<li>Definição de Constantes Simbólicas</li>
<li>Inclusão de outros arquivos no arquivo a ser compilado</li>
<li>Definição de Macros</li>
<li>Compilação condicional de código</li>
<li>Execução condicional de diretivas</li>
</ul>
<p>As tarefas de pré-processamento são definidas por diretivas de pré-processamento no C++. Todas as diretivas de pré-processador se iniciam com o símbolo <strong>#</strong>, e não podemos ter nenhum caractere antes de uma diretiva em uma linha, exceto espaços em branco.</p>
<p>Como as diretivas de pré-processamento não são declarações do C++ (comandos), elas não terminam com ponto-e-vírgula <strong>;</strong>. Colocar o símbolo ; no final de uma diretiva de pré-processamento é, na verdade, um erro de programação comum.</p>
<h3>Diretivas de pré-processador em C++</h3>
<p>São instruções direcionadas ao compilador. podemos fornecer algumas instruções ao compilador de modo que antes de iniciar o processo de compilação essas instruções são executadas.</p>
<p>Alguns exemplos de diretivas de pré-processador incluem:</p>
<ul>
<li>#define &#8211; define constantes simbólicas (que não ocupam espaço na memória RAM do sistema)</li>
<li>#ifndef &#8211; define um item se ele não tiver sido definido anteriormente</li>
<li>#include &#8211; inclusão de cabeçalhos &#8211; ver a seguir.</li>
</ul>
<p>Todo código em C++ inicia com a diretiva <strong>#include&lt;&gt;</strong>. A diretiva instrui o pré-processador a incluir uma parte do código padrão do C++ ou outro código pronto no programa atual. Vejamos algumas dessas diretivas com mais detalhes agora.</p>
<h3>Diretiva de pré-processamento #include</h3>
<p>A diretiva de pré-processamento #include faz com que uma cópia de um arquivo específico seja incluído no código, no lugar da diretiva. É empregada geralmente para incluir arquivos de cabeçalho padrão como por exemplo o <strong>&lt;iostream&gt;</strong>.</p>
<p>Há duas formas de se escrever uma diretiva #include:</p>
<pre><strong>#include &lt;arquivo&gt;</strong>
<strong>#include "arquivo"</strong></pre>
<p>A primeira forma, com &lt;&gt;, é empregada para a inclusão de arquivos de cabeçalho da biblioteca padrão C++. O pré-processador procura o arquivo especificado em pastas pré-definidas no computador.</p>
<p>Já na segunda forma, com o nome do arquivo entre aspas &#8220;&#8221;, o pré-processador procura o arquivo primeiramente na mesma pasta (diretório) onde se encontra o arquivo a ser compilado, e então nos diretórios pré-definidos pela implementação do sistema. No geral, usamos essa forma quando queremos incluir arquivos de cabeçalho definidos pelo usuário (criados por nós mesmos).</p>
<p>Por exemplo, a diretiva</p>
<pre><strong>#include&lt;iostream&gt;</strong></pre>
<p>inclui o cabeçalho de nome <strong><em>iostream</em></strong> para dar suporte a operações de entrada e saída de dados, por exemplo disponibilizando funções para ler dados da tela e escrever no console.</p>
<h3>Diretivas de pré-processamento #define</h3>
<p>Com uma diretiva #define criamos Constantes Simbólicas, que são constantes representadas como símbolos, e Macros, que são pequenas operações funcionais. Escrevemos uma diretiva #define da seguinte forma:</p>
<pre><span style="color: #800080;"><strong>#define identificador valor_substituto</strong></span></pre>
<p>Com esta declaração, todas as ocorrências do identificador no código são substituídas pelo <em>valor_substituto</em> informado. Por exemplo, considere a constante simbólica a seguir:</p>
<pre><strong>#define distancia 150</strong></pre>
<p>Toda vez que aparecer o identificador distância no código (exceto se estiver entre aspas), ele será substituído pelo valor 150. Note que NÃO usamos o operador de atribuição = aqui, pois não se trata de uma atribuição de valores, e sim de uma substituição de nomes.</p>
<p>Uma constante simbólica não aloca espaço na memória RAM do sistema e não armazena dado nenhum. No geral, é preferível criar constantes &#8220;comuns&#8221; em C++ com a palavra-chave <em>const</em>, em vez de usar constantes simbólicas, pois isso facilita o <em>debugging</em> do código &#8211; mas as constantes comuns ocupam espaço na memória, o que também deve ser levado em consideração.</p>
<p>Vejamos outro exemplo da diretiva #define, desta vez criando uma <strong>macro</strong>.</p>
<p>Uma macro é uma operação (pequena função) definida em uma diretiva de pré-processamento, e que podem ou não receber argumentos. O exemplo a seguir mostra a definição de uma macro que realiza o cálculo da área de um triângulo retângulo, dada por <strong>A = 1/2 * b * h</strong> (base * altura / 2):</p>
<pre><strong>#define AREA_TRIAN(b, h) ((b * h)/2)</strong></pre>
<p>Toda vez que AREA_TRIAN(b, h) aparecer no código, os valores de b e h serão substituídos pelos valores fornecidos como argumentos, e será retornado o valor calculado da área do triângulo retângulo. Assim, se em algum ponto do código tivermos:</p>
<pre><strong>area = AREA_TRIAN(10,15)</strong></pre>
<p>a variável area receberá o retorno da execução da macro, ou seja: 10 * 15 / 2 = 75.</p>
<p>Uma vantagem do uso de macros em relação à declaração de funções comuns no código é que o código é inserido diretamente no programa, diminuindo a sobrecarga associada à criação de funções. Porém, em C++ é muito comum que as macros sejam substituídas por outras formas de declaração de funções, como <em>templates</em> e funções <em>inline</em> ou funções lambda. As macros são empregadas mais extensivamente em linguagem C.</p>
<h3>Compilação Condicional</h3>
<p>Com uma estrutura de compilação condicional podemos controlar a execução das diretivas de pré-processamento e, assim, a compilação do código-fonte como um todo. Com uma diretiva de pré-processamento condicional, as expressões são avaliadas e será determinado se o código associado será compilado ou não. O exemplo mais comum de diretiva condicional é a diretiva #ifndef (&#8220;IF NOT DEFINED&#8221;). Veja o exemplo a seguir:</p>
<pre><strong>#ifndef NULL</strong>
<strong>  #define NULL 0</strong>
<strong>#endif</strong></pre>
<p>Esta diretiva verifica se uma constante simbólica NULL não está definida. Se estiver definida, nada ocorre, mas se ainda não estiver definida, a constante simbólica será criada com o valor 0.</p>
<p>Note que a diretiva <strong>#ifndef</strong> deve ser fechada (terminada) com <strong>#endif</strong>. Também existe uma diretiva que verifica se uma constante já está definida, que é a constante <strong>#ifdef</strong> (&#8220;IF DEFINED&#8221;), a qual, como se espera, funciona de forma inversa à #ifndef.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17381" title="Linguagem C++" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png" alt="Linguagem de Programação C++" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao.png 1600w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<h3>Namespaces e diretivas using</h3>
<p>Todos os programas em C++ iniciam sua execução a partir de uma função especial chamada de <strong><em>main()</em></strong>, independente de onde ela esteja declarada no código do programa. Seu formato é o seguinte:</p>
<pre><strong>int main() {</strong>
<span style="color: #339966;"><strong>    // Código principal do programa</strong></span>
<strong>}</strong></pre>
<p>As chaves indicam onde inicia e onde termina o bloco de código que é executado pela função.</p>
<h3>Diretivas using</h3>
<p>As diretivas using habilitam um programa a usar todos os nomes em qualquer cabeçalho C++ padrão, como por exemplo o cabeçalho &lt;iostream&gt;. Assim, podemos incluir em um programa o namespace std da seguinte forma:</p>
<pre><strong>using namespace std;</strong></pre>
<p>E desta forma iremos poupar digitação de código posteriormente quando precisarmos utilizar as funções e métodos deste namespace, pois não será necessário referenciá-lo a todo instante.&nbsp;</p>
<p>Por conta disso, em vez de escrevermos:</p>
<pre><strong>std::cout &lt;&lt; "Mensagem"</strong></pre>
<p>podemos escrever simplesmente:</p>
<pre><strong>cout &lt;&lt; "Mensagem"</strong></pre>
<p>Pois o compilador já saberá que a função cout pertence ao namespace std, declarado por meio da diretiva using.</p>
<h3>Namespaces em C++</h3>
<p>Um namespace (espaço de nomes) é uma forma de organização de funções e outros elementos de um programa. São úteis para remover conflitos de nomes entre recursos distintos, como arquivos de cabeçalho que possuam funções ou métodos de mesmo nome, mas com funcionalidades distintas.</p>
<h4>Exemplo de namespaces em C++</h4>
<p>No exemplo a seguir</p>
<pre><strong>#include &lt;iostream&gt;
#include &lt;locale&gt;
</strong>
<strong>namespace ex1 {</strong>
<strong>    void func() {</strong>
<strong>        std::cout &lt;&lt; "Bóson ";
</strong>    }
<strong>}</strong>
<strong>namespace ex2 {</strong>
<strong>    void func() {</strong>
<strong>        using namespace std;
        cout &lt;&lt; "Treinamentos" &lt;&lt; endl;
</strong>    }
<strong>}
</strong>
<strong>using namespace ex1;</strong>
<strong>using namespace std;
</strong>
<strong>int main() {</strong>
<strong>    setlocale(LC_ALL, "");    
    func();</strong>
<strong>    ex2::func();</strong>
<strong>}</strong></pre>
<p><em>Saída obtida:</em></p>
<pre><span style="color: #800000;"><strong>Bóson Treinamentos</strong></span></pre>
<p>A palavra &#8220;Bóson&#8221; vem do retorno da função <strong>func()</strong> definida no namespace <strong>ex1</strong>, e apalavra &#8220;Treinamentos&#8221; vem da função de mesmo nome, <strong>func()</strong>, porém do namespace <strong>ex2</strong>. Incluímos o cabeçalho<strong> locale</strong> e a declaração <strong>setlocale(LC_ALL, &#8220;&#8221;);</strong> para termos suporte aos caracteres especiais da língua portuguesa (e outros) no console, como a letra <strong>o</strong> acentuada da palavra &#8220;Bóson&#8221;.</p>
<p>Podemos manter os namespaces em arquivos de cabeçalho separados, e incluir esses cabeçalhos no código para ter acesso às suas funções quando necessário, a partir de outra parte do programa.</p>
<p><strong>std</strong>: Biblioteca Padrão (standard). Indica o namespace padrão da linguagem, que trata de uma série de comandos, funções e declarações distintas.<br />
Pode ser declarado no início do código, logo após as diretivas #include, com o uso da declaração <strong><em>using</em></strong>:</p>
<pre><strong>#include&lt;iostream&gt;</strong>
<strong>using namespace std;</strong></pre>
<p>Ou ainda usado diretamente no código do programa, precedendo os nomes das funções a serem invocadas (método mais trabalhoso):</p>
<pre><strong>std::cout &lt;&lt; "Olá\n";</strong></pre>
<ul>
<li>O símbolo <strong>::</strong> é o operador de resolução de escopo.</li>
<li><strong>cout</strong> é uma função que pertence ao namespace padrão (std). significa <em><strong>C</strong>haracter <strong>OUT</strong>put</em> (saída de caracteres), e permite escrever dados na saída padrão do computador (tela).</li>
<li><strong>&lt;&lt;</strong> é o operador de inserção, que permite inserir o que é colocado à sua direita no elemento que está à sua esquerda. No caso, a palavra Olá é &#8220;<em>inserida</em>&#8221; no objeto cout &#8211; ou seja, enviada para a tela.</li>
</ul>
<h3>Conclusão</h3>
<p>Estudamos nesta lição as diretivas de pré-processamento principais do C++, como as diretivas <strong>#include</strong>, <strong>#define</strong> e <strong>#ifndef</strong>, e aprendemos os conceitos de <strong>constante simbólica</strong>, <strong>macro</strong> e <strong>arquivo de cabeçalho</strong>.</p>
<p>Também vimos o que é um <strong>namespace</strong> e a diretiva <strong>using</strong>, e entendemos que um programa em C++ sempre inicia com a função <strong>main()</strong>.</p>
<p>É isso aí! A partir da próxima lição vamos iniciar os estudos da sintaxe do C++, aprendendo sobre tipos de dados e declaração e atribuição de variáveis. Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/diretivas-de-pre-processamento-e-namespaces-em-c/">Diretivas de pré-processamento e namespaces em C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/diretivas-de-pre-processamento-e-namespaces-em-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introdução à Linguagem de Programação C++</title>
		<link>https://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/</link>
					<comments>https://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 26 Dec 2020 21:50:59 +0000</pubDate>
				<category><![CDATA[Programação em C++]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17397</guid>

					<description><![CDATA[<p>Linguagem de Programação C++ Uma das linguagens de programação mais importantes e utilizadas no mundo, a linguagem C++ evoluiu a partir da linguagem C, a qual foi desenvolvida por Dennis Ritchie nos laboratórios Bell, no final dos anos 60. Sendo uma extensão do C, de acordo com Bjarne Stroustrup, que é o criador do C++, ela pode ser definida de forma sucinta como: &#8220;&#8230; uma linguagem de programação de propósito geral com uma tendência para programação de sistemas que é um C melhorado suporta abstração de dados suporta programação orientada a objetos suporta programação genérica&#8221; A linguagem C++ começou a ser desenvolvida em 1979 e era originalmente conhecida como C com Classes. Essencialmente, isso significava que os arquivos de classe (usados na programação orientada a objetos), foram simplesmente adicionados à linguagem C. Em 1983 ela foi renomeada para C++. O C++ existe sob a tutela de um comitê de padrões e se tornou um padrão ISO em 1998 com uma revisão em 2011 e outras revisões em 2014, 2017 e 2020, que é a mais atual (C++20). Ela continua a ser atualizada como parte do trabalho do comitê de padrões, sendo que a próxima revisão está prevista para 2023 (C++23). [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/">Introdução à Linguagem de Programação C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Linguagem de Programação C++</h2>
<p><span style="font-weight: 400;">Uma das linguagens de programação mais importantes e utilizadas no mundo, a linguagem C++ evoluiu a partir da <a href="http://www.bosontreinamentos.com.br/category/programacao-em-linguagem-c/">linguagem C</a>, a qual foi desenvolvida por Dennis Ritchie nos laboratórios Bell, no final dos anos 60.</span></p>
<p><span style="font-weight: 400;">Sendo uma extensão do C, de acordo com Bjarne Stroustrup, que é o criador do C++, ela pode ser definida de forma sucinta como:</span></p>
<blockquote>
<p><span style="font-weight: 400;">&#8220;&#8230; uma linguagem de programação de propósito geral com uma tendência para programação de sistemas que</span></p>
<ul>
<li>é um C melhorado</li>
<li>suporta abstração de dados</li>
<li>suporta programação orientada a objetos</li>
<li>suporta programação genérica&#8221;</li>
</ul>
</blockquote>
<p><span style="font-weight: 400;">A linguagem C++ começou a ser desenvolvida em 1979 e era originalmente conhecida como C com Classes. Essencialmente, isso significava que os arquivos de classe (usados na programação orientada a objetos), foram simplesmente adicionados à linguagem C. Em 1983 ela foi renomeada para C++.</span></p>
<p><span style="font-weight: 400;">O C++ existe sob a tutela de um comitê de padrões e se tornou um padrão ISO em 1998 com uma revisão em 2011 e outras revisões em 2014, 2017 e 2020, que é a mais atual (C++20). Ela continua a ser atualizada como parte do trabalho do comitê de padrões, sendo que a próxima revisão está prevista para 2023 (C++23).</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17381" title="Linguagem de Programação C++" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png" alt="Linguagem de Programação C++" width="200" height="200" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao.png 1600w" sizes="auto, (max-width: 200px) 100vw, 200px" /></p>
<h3>Algumas características do C++</h3>
<p><span style="font-weight: 400;">O C++ é uma linguagem que diferencia maiúsculas de minúsculas (é case-sensitive). Isso significa que suas palavras-chave e declarações de variáveis devem corresponder a maiúsculas e minúsculas. Por exemplo, uma palavra-chave C++ para um tipo de constante é const. Se digitarmos Const ou CONST, o compilador não saberá que sua intenção é usar a palavra-chave const.</span></p>
<p><span style="font-weight: 400;">Além da distinção entre maiúsculas e minúsculas, C++ também tem um esboço definido para o código do programa e &#8220;elementos&#8221; específicos encontrados em uma aplicação C++ típica. Esses elementos consistem em:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Diretivas de pré-processador que são usadas para fazer com que o compilador execute tarefas antes de compilar o código-fonte</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Diretivas <em>using &#8211;</em> diretivas que são utilizadas para indicar quais <em>namespaces</em> incluir em um arquivo de código-fonte</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">um cabeçalho de função que consiste em um tipo de retorno, nome de função e parâmetros</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">um corpo de função contendo o código que executa as ações exigidas dessa função</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">declarações que estão contidas no arquivo de código-fonte C ++</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">comentários para documentar o código-fonte para que os programadores entendam o que o código pretende fazer</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">uma instrução de retorno que envia dados de volta ao chamador da função</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">chaves para incluir o corpo das declarações. Normalmente usados para denotar o corpo de uma função ou uma instrução de controle de fluxo, como um loop for</span></li>
</ul>
<p><span style="font-weight: 400;">O código-fonte C ++ também permite o uso criterioso de espaços em branco (tabulações, espaços, novas linhas) para criar um código mais fácil de ler. O compilador ignora completamente o espaço em branco, com uma pequena exceção em relação às instruções if que vamos abordar posteriormente. É altamente recomendável usar o espaço em branco para identar e separar as linhas de código para ajudar na legibilidade dos arquivos de código-fonte.</span></p>
<p><span style="font-weight: 400;">Um programa em C++ é composto de vários componentes, como funções, métodos, classes, etc. As instruções que fazem parte de um programa C++ normalmente residem dentro de funções ou métodos. Essas funções são compostas de instruções C++. Você se verá usando vários tipos de instruções em seu código C++, conforme listadas a seguir:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">declarações &#8211; são usadas para declarar variáveis e constantes que serão usadas no programa</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">atribuições &#8211; são usadas para atribuir valores a variáveis em seu código de aplicativo</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">diretivas de pré-processador &#8211; abordadas no tópico sobre formatação de código</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">comentários &#8211; usados para documentar seu código</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">declarações de função &#8211; abordado no tópico sobre formatação de código</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">instruções executáveis &#8211; são usadas para realizar operações e executar instruções. Um exemplo seria&nbsp;<strong>cout &lt;&lt; &#8220;Olá Bóson!&#8221;</strong>; que produz a frase <em>Olá Bóson!</em> na saída do console.</span></li>
</ul>
<p><span style="font-weight: 400;">Vamos usar esses tipos de instrução durante todo nosso curso de C++.</span></p>
<h3><span style="font-weight: 400;">Estrutura de um programa em C++</span></h3>
<p><span style="font-weight: 400;">Um programa C++ tem uma estrutura muito específica em termos de como o código é escrito e alguns elementos-chave que usamos nos programas em C++.&nbsp;</span></p>
<p><span style="font-weight: 400;">Os programas em C++ consistem de partes modulares chamadas de </span><b><i>classes</i></b><span style="font-weight: 400;"> e </span><b><i>funções</i></b><span style="font-weight: 400;">. Podemos criar nossas próprias classes e funções, quando necessário, e também fazemos uso extensivo de uma rica coleção de classes e funções existente, chamada de </span><b>Biblioteca Padrão do C++</b><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">Desta forma, aprender a programar em C++ consiste em aprender duas partes coligadas: a linguagem em si, com suas estruturas e sintaxe, e aprender a usar o conteúdo da <a href="https://en.cppreference.com/w/" target="_blank" rel="noopener">biblioteca padrão C++</a>.</span></p>
<p><span style="font-weight: 400;">O código-fonte de um programa extremamente simples em C++ é mostrado a seguir.</span></p>
<pre><span style="font-weight: 400;">1 #include &lt;iostream&gt;
</span><span style="font-weight: 400;">2 <span style="color: #339966;">// Função principal que inicia a execução do programa</span>
</span><span style="font-weight: 400;">3 int main()
</span><span style="font-weight: 400;">4 {
</span><span style="font-weight: 400;">5  &nbsp; std::cout &lt;&lt; "Ola Boson!\n";
</span><span style="font-weight: 400;">6  &nbsp; return 0;
</span><span style="font-weight: 400;">7 }</span></pre>
<p><span style="font-weight: 400;">Neste programa simples, notamos alguns elementos importantes. Os números das linhas são usados apenas para referência e não fazem parte do código do programa.</span></p>
<p><span style="font-weight: 400;">Vejamos o que faz cada linha.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 1</strong>: Iniciada com o caractere <strong>#</strong>, é uma diretiva de pré-processador. Processada antes do programa ser efetivamente compilado. No exemplo, ela instrui o compilador a localizar e</span><i><span style="font-weight: 400;"> incluir </span></i><span style="font-weight: 400;">o arquivo que contém o código de uma biblioteca conhecida como <em><strong>iostream</strong></em>. Esta biblioteca contém código que permite a entrada e saída para fluxos de dados, como a janela do console.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 2</strong>: Linha de comentário. Toda linha iniciada com os caracteres <strong>//</strong> é uma linha destinada a comentários, usados para documentar os programas e ajudar outros programadores a entendê-los. Os comentários são ignorados quando o programa é compilado ou executado.</span></p>
<pre><span style="color: #339966;">// Esta linha é um comentário!</span></pre>
<p><span style="font-weight: 400;">Também temos comentários de múltiplas linhas, ou de bloco, que iniciam com os caracteres /* e finalizam com */.</span></p>
<pre><span style="color: #339966;">/*</span>
<span style="color: #339966;">Este bloco de texto inteiro</span>
<span style="color: #339966;">é um bloco de comentários, que ocupa várias linhas</span>
<span style="color: #339966;">*/</span></pre>
<p><span style="font-weight: 400;"><strong>Linha 3</strong>: Todo programa escrito em C++ deve ter uma função principal chamada de <strong>main()</strong>. É o ponto de entrada da aplicação quando iniciamos a execução do programa no computador, mesmo que não seja a primeira função presente no código. A palavra <strong>int</strong> indica o tipo de retorno do método u função &#8211; no caso, um número inteiro.</span></p>
<p><span style="font-weight: 400;">Os parênteses vazios () após o nome do método indicam que esta é uma função e que não leva argumentos, ou seja, não há parâmetros para a passagem de valores.</span></p>
<p><span style="font-weight: 400;">Os programas em C++ são constituídos de diversas funções e classes, e uma delas é sempre a função main.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 4</strong>: Os corpos dos métodos e funções em C++ começam com a abertura de um par de chaves <strong>{</strong>. Ao finalizar o código do método ou função, a chave é fechada <strong>}</strong>.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 5</strong>: Este código usa um método conhecido como <strong>cout</strong> (pronuncia-se &#8220;sí áut&#8221;) para enviar o texto <em>Ola Boson!</em> para o console de saída e exibição na tela. O prefixo <strong>std::</strong> para este comando é uma forma de indicar que cout faz parte de um namespace conhecido como <strong>std</strong>.</span></p>
<p><span style="font-weight: 400;">Outras funções pertencentes ao namespace std incluem <strong>cerr</strong> e <strong>cin</strong>, que estudaremos posteriormente.</span></p>
<p><span style="font-weight: 400;">Assim, o símbolo :: é usado para indicar que cout faz parte do namespace <em><strong>std</strong></em>. Nem sempre usaremos essa notação &#8211; veremos como empregar as diretivas using para declarar os namespaces empregados em um programa em breve.</span></p>
<p><span style="font-weight: 400;">Note também que essa linha termina com um ponto e vírgula, e a linha toda constitui uma </span><b>declaração</b><span style="font-weight: 400;"> em C++. Assim, as declarações em C++ são terminadas com ponto e vírgula, conhecido como &#8220;terminador de declarações&#8221;.</span></p>
<p><span style="font-weight: 400;">Erro comum em programação: Esquecer de inserir os ponto-e-vírgula no final de uma declaração é um erro extremamente comum em programação, não apenas em linguagem C++, mas em várias outras linguagens que utilizam essa sintaxe, como C e Java.</span></p>
<p><span style="font-weight: 400;">O símbolo <strong>&lt;&lt;</strong> é o <em>operador de inserção (de fluxo)</em>. Ao executar um programa, o valor que está à direita desse operador (operando direito) é inserido ou enviado ao elemento que está à esquerda do operador &#8211; no caso, a frase &#8220;<em>Ola Boson!</em>&#8221; é enviada para cout. O operador aponta na direção para onde vão os dados.</span></p>
<p><span style="font-weight: 400;"><strong>\n</strong> é uma sequência de escape &#8211; um caractere especial, que não é especificamente impresso na tela, mas produz algum efeito, como por exemplo mudar o cursor para o início da próxima linha (que é o caso). Outras sequências de escape existem, e as veremos em breve.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 6</strong>: A instrução <strong>return</strong> é usada para encerrar ou sair de uma função ou método, e se espera que um valor seja enviado de volta a um processo chamador (que “chama” a instrução). Nesse caso, o chamador é o sistema operacional e o valor retornado é um valor inteiro 0. Se o programa chegar a essa instrução sem apresentar erros, o retorno de um valor 0 indica ao sistema operacional que o código foi executado com êxito.</span></p>
<p><span style="font-weight: 400;">Antigamente, os programadores retornavam 0 para indicar uma execução bem-sucedida e valores diferentes de zero para indicar que ocorreu um erro em algum lugar do programa.</span></p>
<p><span style="font-weight: 400;"><strong>Linha 7</strong>: Esta linha fecha o corpo da função main() (fechando a chave aberta no início) e é necessária para que o compilador saiba onde a função ou método termina, mas também é usada para outros propósitos que serão cobertos posteriormente no curso, como escopo e visibilidade de variáveis.</span></p>
<p><span style="font-weight: 400;">É isso aí! Neste tutorial apresentamos o que é o C++&nbsp; e os principais elementos da linguagem, com um exemplo bem simples de código, explicando linha por linha as declarações.</span></p>
<p><span style="font-weight: 400;">Na próxima lição vamos abordar mais algumas características importantes da linguagem C++, tais como a Portabilidade e o processo de Compilação de Código.</span></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/">Introdução à Linguagem de Programação C++</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>5 Linguagens de Programação para aprender em 2021</title>
		<link>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/</link>
					<comments>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 18 Dec 2020 12:48:47 +0000</pubDate>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17357</guid>

					<description><![CDATA[<p>5 Linguagens de Programação para aprender em 2021 Finalmente chegamos ao final do ano de 2020. Para boa parte das pessoas, um ano para esquecer &#8211; para mim, sem dúvida, um dos piores períodos em diversos quesitos. Esperamos que o próximo ano seja melhor &#8211; e vamos trabalhar para que isso se concretize. Uma das melhores coisas que podemos fazer é nos prepararmos de forma metódica e planejada, e estudar para enriquecer nosso currículo profissional e avançar em nossas carreiras é o caminho a seguir. Por conta disso trago neste artigo algumas dicas de linguagens de programação que valem a pena estudar durante o ano vindouro, de forma bem objetiva e clara: apenas linguagens com real potencial de trazer benefícios ao estudante / profissional. Escolher uma linguagem de programação Aprender uma nova linguagem de programação não é uma tarefa simples, principalmente se você for iniciante. O processo pode ser demorado, complicado e frustrante &#8211; e no final você pode acabar usando seu tempo precioso para estudar uma linguagem de programação que não terá tanta utilidade em suas vida profissional. Por isso é importante saber escolher qual linguagem (ou quais) você irá estudar. As opções são muitas, e algumas linguagens que [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/">5 Linguagens de Programação para aprender em 2021</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>5 Linguagens de Programação para aprender em 2021</h2>
<p>Finalmente chegamos ao final do ano de 2020. Para boa parte das pessoas, um ano para esquecer &#8211; para mim, sem dúvida, um dos piores períodos em diversos quesitos.</p>
<p>Esperamos que o próximo ano seja melhor &#8211; e vamos trabalhar para que isso se concretize. Uma das melhores coisas que podemos fazer é nos prepararmos de forma metódica e planejada, e estudar para enriquecer nosso currículo profissional e avançar em nossas carreiras é o caminho a seguir.</p>
<p>Por conta disso trago neste artigo algumas dicas de linguagens de programação que valem a pena estudar durante o ano vindouro, de forma bem objetiva e clara: apenas linguagens com real potencial de trazer benefícios ao estudante / profissional.</p>
<h3>Escolher uma linguagem de programação</h3>
<p>Aprender uma nova linguagem de programação não é uma tarefa simples, principalmente se você for iniciante. O processo pode ser demorado, complicado e frustrante &#8211; e no final você pode acabar usando seu tempo precioso para estudar uma linguagem de programação que não terá tanta utilidade em suas vida profissional.</p>
<p>Por isso é importante saber escolher qual linguagem (ou quais) você irá estudar. As opções são muitas, e algumas linguagens que hoje parecem muito importantes talvez percam relevância no futuro, ao passo que linguagens mais &#8220;obscuras&#8221; podem se tornar de uso comum e muito procuradas pelos profissionais e pelas empresas.</p>
<p>Existem literalmente centenas de linguagens de programação disponíveis hoje, e a demanda por essas linguagens varia ano a ano, com novas linguagens surgindo, outras se tornando mais populares, e outras tantas sendo menos utilizadas até se tornarem praticamente obsoletas.</p>
<p>Escolher uma linguagem de programação pode ser complicado &#8211; afinal, você pode acabar usando seu precioso tempo para aprender uma linguagem que, daqui a um ano (ou alguns meses!) não será mais relevante no mercado. Então, como escolher a linguagem (ou linguagens) mais indicadas para aprendizado, que tenham maior potencial de retorno para sua carreira?</p>
<p>Se você é iniciante no mundo do desenvolvimento de sistemas, a dica é investir nas linguagens mais consagradas, que tem ampla aceitação no mercado e utilização profunda pelas empresas &#8211; levando em consideração alguns fatores como crescimento de sua popularidade, nichos de atuação, novos entrantes (novas linguagens) que as possam substituir, quantidade de frameworks e bibliotecas disponíveis, demanda no mercado de trabalho, e outros.</p>
<p>As primeiras linguagens de programação com as quais tive contato foram Delphi, C, Basic e Assembly. Destas, apenas a linguagem C ainda é relevante nos dias de hoje &#8211; e, curiosamente, uma das mais importantes e estudadas ainda!</p>
<p>Porém as outras três acabaram se tornando obsoletas (Basic, Delphi) ou sendo usadas apenas em nichos muito específicos (Assembly, de novo Delphi). O mesmo deve acontecer com a maioria das linguagens mais novas que temos disponíveis &#8211; algumas serão usadas de forma intensiva pelos próximos anos ou até décadas, ao passo que outras são deixadas de lado rapidamente, substituídas por outras linguagens com mais recursos, mais performáticas ou simplesmente mais fáceis de aprender.</p>
<p>Neste artigo listo algumas das linguagens de programação que eu, pessoalmente, acredito que sejam importantes em 2021, e nas quais pode valer a pena investir tempo de estudo (e dinheiro, em alguns casos).</p>
<p>Bem, sem mais delongas, vamos à lista de linguagens para aprender em 2021!</p>
<h3>JavaScript</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17380" title="Programação em Javascript" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson.png" alt="Programação em Javascript" width="290" height="163" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson.png 587w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-420x236.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-580x326.png 580w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-174x98.png 174w" sizes="auto, (max-width: 290px) 100vw, 290px" /></p>
<p>O <a href="http://www.bosontreinamentos.com.br/category/programacao-em-javascript/">JavaScript</a> é uma das linguagens mais usadas no mundo, encontrando aplicação em dispositivos móveis, desenvolvimento de jogos, Internet das Coisas e, principalmente, desenvolvimento Web.</p>
<p>Amplamente empregada no desenvolvimento de aplicações front-end para websites, também pode ser usada em aplicações de back-end (lado servidor), com o ambiente de execução NodeJS.</p>
<p>Não é exatamente uma linguagem simples de se aprender, devido à sua sintaxe, comandos e integração com outras linguagens, mas sem dúvida é uma das mais importantes, e você deve estudar JavaScript com certeza absoluta se tem a mínima intenção de trabalhar com desenvolvimento para Web e afins. O JS é executado normalmente em um navegador, oferecendo uma interface bastante responsiva para as aplicações web, sem a necessidade de compilação de código.</p>
<h3>C++ (e C)</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17381" title="Linguagem de Programação C++" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png" alt="Linguagem de Programação C++" width="270" height="270" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao.png 1600w" sizes="auto, (max-width: 270px) 100vw, 270px" /></p>
<p>O <a href="http://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/">C++</a> é a linguagem mais antiga dessa minha lista, mas não por isso menos importante que as demais.</p>
<p>Na prática, eu listaria C/C++, pois as duas linguagens tem muitos pontos em comum &#8211; mas o paradigma orientado a objetos do C++ faz com que seja mais simples (menos complicado?) desenvolver sistemas nesta linguagem. Mas recomendo também a linguagem C, uma das mais usadas no mundo hoje e a mais importante da história da programação.</p>
<p>Desenvolvida por Bjarne Stroustrup em 1985, o C++ é uma das linguagens mais eficientes e flexíveis que existem, permitindo a criação de aplicações de alta performance e alta confiabilidade, sendo empregada em áreas diversas como Programação de Sistemas, Desenvolvimento de Jogos, Aplicações para Web e Desktop, Área Financeira, Sistemas Embarcados, Aplicações de Tempo Real, Veículos Autônomos e Inteligência Artificial, entre outras.</p>
<p>E é justamente essa demanda de sistemas autônomos, embarcados e jogos de alta performance que fazem com que o C/C++ esteja presente nesta lista. São linguagens antigas e ao mesmo tempo suportam as tecnologias do futuro!</p>
<p>Uma das grandes desvantagens do C++ é sua curva de aprendizado acentuada, pois possui uma sintaxe complexa, e seu sistema de orientação a objetos não é tão claro quanto, por exemplo, o da linguagem Java. Também peca em alguns pontos como a alocação de memória dinâmica ou coletor de lixo. Não é recomendada como linguagem de escolha para iniciantes em programação.<br />
Porém, aplicações escritas em C e C++ são extremamente rápidas, sendo insubstituíveis em muitos casos.</p>
<h3>Java</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17379" title="Linguagem Java da Oracle" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java.png" alt="Linguagem Java da Oracle" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java.png 512w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java-420x420.png 420w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p>Criada por James Gosling em 1995 na Sun Microsystems, é provavelmente a linguagem mais usada atualmente em ambiente empresarial. Totalmente orientada a objetos, aplicações escritas em <a href="http://www.bosontreinamentos.com.br/category/java/">Java</a> podem rodar em qualquer plataforma, bastando para isso ter alguma implementação de Máquina Virtual Java instalada (JVM). É ideal para aplicações de computação distribuída, além de suportar multithreading.</p>
<p>Suas principais aplicações são no desenvolvimento de aplicações Desktop (como o notório programa da Imposto de Renda!), aplicações Web e Mobile (para Android), e nas áreas de serviços Financeiros e aplicações Científicas, entre outras. O Java possui uma variedade enorme de bibliotecas open source e diversas APIs, que facilitam o desenvolvimento de aplicações que envolvam bancos de dados, conectividade à redes, manipulação de formatos variados de dados e muito mais.</p>
<p>Uma de suas desvantagens é o fato do ambiente Java se relativamente &#8220;pesado&#8221;, demandando recursos de hardware específicos, além de ser mais lenta (é interpretada) em comparação com aplicações escritas em linguagens como C/C++ (que são compiladas). O gerenciamento de memória também não é excelente.</p>
<h3>PHP</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3570" title="Linguagem PHP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante.png" alt="Curso de PHP com MySQL - Mascote" width="300" height="204" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante.png 438w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante-420x286.png 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Podem fazer memes e falarem o que quiserem, mas o <a href="http://www.bosontreinamentos.com.br/curso-basico-de-programacao-web-com-php/">PHP</a> ainda é linguagem dominante em aplicações Web Back End. Quase 1/4 dos websites na Internet usam PHP de alguma forma, sendo empregada primariamente na criação de websites dinâmicos e blogs, como os criados usando a plataforma WordPress.</p>
<p>Linguagem multiparadigma (funcional, imperativa, orientada a objetos) lançada em 1995, o PHP possui um vasto ecossistema de aplicações e bibliotecas, e uma grande comunidade para suporte, alé de diversos frameworks que facilitam o desenvolvimento de aplicações na linguagem (como o Laravel).</p>
<p>O PHP hoje sofre competição de linguagens como o Python e o JavaScript (Node), mas ainda impera no quesito linguagem server-side para web. Sua facilidade de aprendizado e a grande quantidade de bibliotecas e frameworks a tornam uma linguagem ideal para quem está iniciando em desenvolvimento web e deseja se inserir no mercado de trabalho sem necessariamente trabalhar com front end (HTML/CSS).</p>
<p>As maiores criticas ao PHP recaem sobre características de segurança e gerenciamento de erros um pouco deficiente, que demandam um maior cuidado ao desenvolver sistemas e aplicações que tratam dados mais sensíveis. Além disso não é tão veloz quanto se espera de uma linguagem de back end.</p>
<h3>Python</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17374" title="Logotipo Python" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-1024x1024.png" alt="Logotipo Python" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo.png 2000w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p><a href="http://www.bosontreinamentos.com.br/category/programacao-em-python/">Python</a>, desenvolvida por Guido van Rossum em <a href="https://diariodonaturalista.com.br/passeio-pelo-parque-oosterpark-em-amsterdam-paises-baixos/" target="_blank" rel="noopener">Amsterdam, na Holanda</a> em 1990, é minha escolha número um para 2021. Uma das linguagens mais versáteis que existem atualmente, pode ser empregada no desenvolvimento de aplicações para inúmeras áreas, sendo dominante em <a href="http://www.bosontreinamentos.com.br/?s=ci%C3%AAncia+de+dados">Ciência de Dados</a>, Machine Learning e Automação em geral. Mas o Python também pode ser utilizado para desenvolver aplicações Web, Desktop, para servidores de Rede, IoT (Internet das Coisas) e muito mais.</p>
<p>Além disso, sua sintaxe muito clara e organizada permite que seja aprendida com bastante facilidade, e em menor tempo que as outras linguagens, sendo por isso muito recomendada para iniciantes em programação em geral. É uma das linguagens mais utilizadas no mundo atualmente, além de ser altamente extensível com o emprego de suas inúmeras bibliotecas, como Matplotlib, Pandas, NumPy e diversas outras.</p>
<p>De acordo com o índice TIOBE de linguagens de programação, o Python é a terceira linguagem mais popular no mundo, atrás apenas das linguagens C e Java (desta última por uma pequena margem de menos de 0,4%):</p>
<div id="attachment_17363" style="width: 810px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-17363" class="wp-image-17363" title="Índice TIOBE de linguagens de programação - dezembro de 2020" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020.jpg" alt="Índice TIOBE de linguagens de programação - dezembro de 2020" width="800" height="162" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020.jpg 885w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020-420x85.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020-768x155.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /><p id="caption-attachment-17363" class="wp-caption-text">Índice TIOBE &#8211; 12/2020. Fonte: <a href="https://www.tiobe.com/tiobe-index/" target="_blank" rel="noopener">www.tiobe.com/tiobe-index/</a></p></div>
<p>Sua maior desvantagem é que o Python é relativamente lento em comparação com outras linguagens, pois se trata de uma linguagem interpretada, de modo que para algumas aplicações, como sistemas de tempo real, não é a tecnologia mais indicada.</p>
<h3>Outras linguagens</h3>
<p>Além das cinco linguagens de programação citadas anteriormente, destaco mais duas (dessa vez, apostas) que podem ter impacto em seu currículo e em sua carreira. Uma delas é a linguagem Go (Golang), que vem crescendo paulatinamente, e a outra é a linguagem R, de nicho mais específico (ciência de dados / análise estatística), bastante utilizada no meio profissional.</p>
<h4>Linguagem Go</h4>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17377" title="Golang - Linguagem Go de Programação" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google.png" alt="Golang - Linguagem Go de Programação" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google.png 500w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google-420x420.png 420w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p>Linguagem de programação criada pelo Google, também conhecida como Golang. Uma de suas principais características é o excelente suporte a multithreading, sendo ideal para o desenvolvimento de aplicações para sistemas distribuídos de grande porte.</p>
<p>É uma linguagem relativamente simples de aprender, devido à sua sintaxe clara e objetiva, mas ainda assim não tão fácil quanto o Python. Porém é bem rápida, sendo compilada em código de máquina, e se você trabalha em projetos de software de grande porte, que emprega processamento pesado em paralelizado, a linguagem Go é uma ótima escolha.</p>
<h4>Linguagem R</h4>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17376" title="Linguagem R" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r.png" alt="Linguagem R" width="300" height="169" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r.png 960w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-420x236.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-768x432.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-580x326.png 580w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-174x98.png 174w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>A <a href="http://www.bosontreinamentos.com.br/category/programacao-em-r/">linguagem R</a>, desenvolvida por Robert Gentleman e Ross Ihaka na Universidade de Auckland (Nova Zelândia) em 1992, é uma linguagem de código aberto para análise de dados estatística, amplamente empregada nas áreas de Ciência de Dados, Computação Estatística, Big Data e Aprendizado de Máquina. Seu aprendizado não é tão simples quanto o da linguagem Python, porém possui um rico ecossistema de pacotes, bibliotecas e ferramentas, incluindo bibliotecas para visualização gráfica de dados de alto padrão.</p>
<p>Permite o desenvolvimento de algoritmos para aprendizado de máquina altamente complexos e poderosos, e por conta dessas características é usada por muitas organizações atualmente.</p>
<p>Entre os pontos fracos do R podemos citar o gerenciamento de memória, não tão eficiente, e a falta de padrões de segurança mais elevados. Mas isso acaba não afetando o uso da linguagem, pois seu rico conjunto de ferramentas compensa facilmente essas deficiências.</p>
<h3>Conclusão</h3>
<p>Mostrei neste artigo cinco linguagens de programação para aprender em 2021 (que eu acredito serem relevantes em 2021), e nas quais vale a pena investir seu tempo de estudo. Não há nenhuma novidade ou grande surpresa na lista, pois afinal as linguagens apresentadas são as dominantes no mercado em seus nichos específicos, e todas tem grande potencial de te ajudar a alavancar sua carreira em tecnologia.&nbsp;</p>
<p>É evidente que, se você pretende trabalhar, por exemplo, com desenvolvimento Web, deve dar preferência ao estudo de JavaScript e PHP em vez de C/C++ ou R; já se pretende trabalhar com ciência de dados, deve focar seus esforços no Python e linguagem R (e outras, como a <a href="http://www.bosontreinamentos.com.br/julia/como-instalar-a-linguagem-julia-no-windows/">linguagem Julia</a> &#8211; assunto para um outro artigo!).</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/tPuqJXiNtXw" allowfullscreen="allowfullscreen" width="560" height="315" frameborder="0"></iframe></p>
<p>É isso aí! Bom final de ano a todos (e que o ano termine logo), e nos vemos em 2021. Abraço!</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/">5 Linguagens de Programação para aprender em 2021</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Listas em C# &#8211; A classe genérica List</title>
		<link>https://www.bosontreinamentos.com.br/csharp/listas-em-c-a-classe-generica-list/</link>
					<comments>https://www.bosontreinamentos.com.br/csharp/listas-em-c-a-classe-generica-list/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 13 Mar 2020 12:10:31 +0000</pubDate>
				<category><![CDATA[Programação com C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=16545</guid>

					<description><![CDATA[<p>Listas em C# Uma lista em C# é um objeto que armazena dados de um determinado tipo em uma ordem específica. Representa uma lista fortemente tipada de objetos que podem ser acessados por meio de um número de índice. O tipo de dado que a lista armazena é definido usando a sintaxe de genéricos. Por exemplo, vamos definir uma lista genérica de nome valores que irá armazenar números inteiros: List&#60;int&#62; valores = new List&#60;int&#62;(); As listas em C# fazem parte do namespace System.Collection.Generic. Diferença entre lista e array em C# A diferença entre listas e arrays é a de que as listas possuem tamanho dinâmico (ajustável), ao passo que os arrays possuem tamanho fixo. Por conta disso, as listas são indicadas para quando não sabemos de antemão a quantidade de dados que serão armazenados. Uma lista armazena itens de um tipo especificado e cresce automaticamente quando novos itens (do mesmo tipo) são adicionados. As listas são ideais para o armazenamento e recuperação de grandes números de elementos, como retornos de consultas a bancos de dados, por exemplo.&#160;Sua capacidade máxima em um sistema de 64 bits é de 2 bilhões de elementos. A capacidade de uma lista pode ser acessada ou [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/csharp/listas-em-c-a-classe-generica-list/">Listas em C# &#8211; A classe genérica List&lt;T&gt;</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Listas em C#</h2>
<p>Uma lista em C# é um objeto que armazena dados de um determinado tipo em uma ordem específica. Representa uma lista fortemente tipada de objetos que podem ser acessados por meio de um número de índice. O tipo de dado que a lista armazena é definido usando a sintaxe de genéricos. Por exemplo, vamos definir uma lista genérica de nome <em>valores</em> que irá armazenar números inteiros:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong></pre>
<p>As listas em C# fazem parte do namespace <em>System.Collection.Generic</em>.</p>
<h3>Diferença entre lista e array em C#</h3>
<p>A diferença entre listas e arrays é a de que as listas possuem tamanho dinâmico (ajustável), ao passo que os arrays possuem tamanho fixo. Por conta disso, as listas são indicadas para quando não sabemos de antemão a quantidade de dados que serão armazenados. Uma lista armazena itens de um tipo especificado e cresce automaticamente quando novos itens (do mesmo tipo) são adicionados.</p>
<p>As listas são ideais para o armazenamento e recuperação de grandes números de elementos, como retornos de consultas a bancos de dados, por exemplo.&nbsp;Sua capacidade máxima em um sistema de 64 bits é de 2 bilhões de elementos. A capacidade de uma lista pode ser acessada ou ajustada por meio da propriedade Capacity.</p>
<p>Vamos estudar algumas operações que podem ser realizadas em listas em C#, usando Windows Forms e o Visual Studio para codificar nossos testes.</p>
<h3>Propriedades e métodos da classe List&lt;T&gt;</h3>
<p>A seguir temos algumas das principais propriedades e métodos da classe List&lt;T&gt; em C#:</p>
<h4>Propriedades</h4>
<ul>
<li><strong>Items</strong> &#8211; Obtém ou grava o elemento na posição de índice especificada</li>
<li><strong>Count</strong> &#8211; Retorna o número total de elementos que existem na lista.</li>
</ul>
<h4>Métodos</h4>
<ul>
<li><strong>Add</strong> &#8211; Adiciona um elemento ao final da lista</li>
<li><strong>AddRange</strong> &#8211; Adiciona elementos de uma coleção especificada ao final da lista</li>
<li><strong>Clear</strong> &#8211; Remove todos os elementos de uma lista</li>
<li><strong>Contains</strong> &#8211; Verifica se um elemento especificado existe ou não em uma lista</li>
<li><strong>Insert</strong> &#8211; Insere um elemento em uma posição (índice) especificada na lista</li>
<li><strong>Remove</strong> &#8211; Remove a primeira ocorrência de um elemento especificado</li>
<li><strong>RemoveAt</strong> &#8211; Remove o elemento em uma posição especificada na lista</li>
<li><strong>Sort</strong> &#8211; Ordena os elementos da lista&nbsp;</li>
</ul>
<h3>Inserir items em uma lista</h3>
<p>Após inicializar uma lista, podemos inserir valores invocando o método <strong>Add()</strong>:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>valores.Add(16);</strong>
<strong>valores.Add(18);</strong>
<strong>valores.Add(23);</strong>
<strong>valores.Add(12);</strong></pre>
<p>Alternativamente, podemos inserir um array de itens de uma só vez usando o método <strong>AddRange()</strong>:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] {16, 18, 23, 12};</strong>
<strong>valores.AddRange(numeros);</strong></pre>
<h3>Contar os elementos da lista</h3>
<p>Com o método <strong>Count</strong> podemos determinar quantos elementos uma lista possui:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] { 16, 18, 23, 12 };</strong>
<strong>valores.AddRange(numeros);</strong>
<strong>MessageBox.Show("A lista tem " + valores.Count() + " itens.");</strong></pre>
<h3>Acessar um elemento na lista</h3>
<p>Podemos acessar um elemento em uma lista genérica usando seu número de índice, que inicia em 0 (zero). Por exemplo, para acessar o primeiro elemento da lista do exemplo anterior podemos adicionar a seguinte linha de código:</p>
<pre><strong>MessageBox.Show("Primeiro item da lista: " + valores[0]);</strong></pre>
<p>Perceba a notação de colchetes usada para especificar o elemento 0 da lista: <span style="color: #800080;"><strong>[0]</strong></span>.</p>
<h3>Remover itens de uma lista em C#</h3>
<p>Usamos os métodos <strong>Remove</strong> e <strong>RemoveAt</strong> para remover itens de uma lista. O método Remove remove a primeira ocorrência do item especificado, ao passo que o método RemoveAt remove o item em uma posição de índice desejada.<br />
Vamos aos exemplos.</p>
<p>1 &#8211; Remover a primeira ocorrência de um item. Vamos remover a primeira ocorrência do valor 18 em uma lista na qual esse valor aparece armazenado em duas posições distintas:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] { 16, 18, 23, 12, 22, 11, 18 };</strong>
<strong>valores.AddRange(numeros);</strong>
<strong>string strValores = String.Empty;

</strong><strong>foreach (int item in valores)</strong>
<strong>{</strong>
<strong>  strValores += "\n" + item.ToString();</strong>
<strong>}

</strong><strong>MessageBox.Show("Lista de valores: " + strValores);

</strong><strong>valores.Remove(18); <span style="color: #339966;">// Remove a primeira ocorrência do valor 18

</span></strong><strong>strValores = String.Empty;</strong>
<strong>foreach (int item in valores)</strong>
<strong>{</strong>
<strong>  strValores += "\n" + item.ToString();</strong>
<strong>}

</strong><strong>MessageBox.Show("Lista de valores: " + strValores);</strong></pre>
<p>2 &#8211; Agora vamos remover o quarto item da lista (índice 3).</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] { 16, 18, 23, 12, 22, 11, 18 };</strong>
<strong>valores.AddRange(numeros);</strong>
<strong>string strValores = String.Empty;

</strong><strong>foreach (int item in valores)</strong>
<strong>{</strong>
<strong>strValores += "\n" + item.ToString();</strong>
<strong>}

</strong><strong>MessageBox.Show("Lista de valores: " + strValores);

</strong><strong>valores.RemoveAt(3); <span style="color: #339966;">// Remove o item no índice 3 (quarto item)</span>
</strong><strong>strValores = String.Empty;</strong>
<strong>foreach (int item in valores)</strong>
<strong>{</strong>
<strong>strValores += "\n" + item.ToString();</strong>
<strong>}</strong>
<strong>MessageBox.Show("Lista de valores: " + strValores);</strong></pre>
<p>Note que o valor <strong>12</strong>, que é o quarto valor em nossa lista inicial, foi eliminado.</p>
<h3>Inserir itens em uma lista em posição específica</h3>
<p>Podemos inserir um elemento em uma lista em uma posição especificada usando o método Insert. Sua sintaxe é como segue:</p>
<pre><span style="color: #800080;"><strong>Lista.Insert(Índice, Valor);</strong></span></pre>
<p>Esse método aceita dois argumentos:</p>
<ul>
<li><strong>Índice</strong> &#8211; Posição na qual o item será inserido</li>
<li><strong>Valor</strong> &#8211; Valor do item a ser inserido na lista</li>
</ul>
<p>Vejamos um exemplo. Vamos inserir o valor <strong>13</strong> na posição #2 (índice 1) de uma lista que já continha valores armazenados:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] { 16, 18, 23, 12 };</strong>
<strong>valores.AddRange(numeros);

</strong><strong>MessageBox.Show("Segundo item da lista: " + valores[1]);

</strong><strong>valores.Insert(1, 13); <span style="color: #339966;">// Inserimos o valor 13 na segunda posição da lista</span></strong>
<strong>MessageBox.Show("Segundo item da lista: " + valores[1]);</strong></pre>
<h3>Iterar pelos itens de uma lista</h3>
<p>Podemos iterar pelos itens em uma lista genérica usando um laço foreach. Veja no exemplo a seguir, codificado em um botão usando Windows Forms no Visual Studio:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();

</strong><strong>valores.Add(16);</strong>
<strong>valores.Add(18);</strong>
<strong>valores.Add(23);</strong>
<strong>valores.Add(12);

</strong><strong>string strValores = String.Empty;

</strong><strong>foreach(int item in valores)</strong>
<strong>{</strong>
<strong>  strValores += "\n" + item.ToString();</strong>
<strong>}

</strong><strong>MessageBox.Show("Lista de valores: " + strValores);</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-16550 size-full" title="Iteração pelos elementos de uma lista em C#" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/03/iterar-lista-c-sharp.jpg" alt="Iteração pelos elementos de uma lista em C#" width="302" height="211" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/03/iterar-lista-c-sharp.jpg 302w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/03/iterar-lista-c-sharp-300x211.jpg 300w" sizes="auto, (max-width: 302px) 100vw, 302px" /></p>
<h3>Procurar um item em uma lista genérica</h3>
<p>Com o método <strong>Contains</strong> podemos descobrir se um valor especificado existe em uma lista, o seja, se esse item está armazenado na lista. Ele retorna o booleano <em><strong>true</strong></em> se o valor for encontrado, e <em><strong>false</strong></em> se não for encontrado na lista. Por exemplo, queremos saber se o valor 16 está presente em uma lista:</p>
<pre><strong>List&lt;int&gt; valores = new List&lt;int&gt;();</strong>
<strong>int[] numeros = new int[] { 16, 18, 23, 12, 22, 11, 18 };</strong>
<strong>valores.AddRange(numeros);</strong>
<strong>string strValores = String.Empty;

</strong><strong>int valorProcurado = 16;</strong>
<strong>bool valorExiste;

</strong><strong>valorExiste = valores.Contains(valorProcurado);

</strong><strong>if (valorExiste)</strong>
<strong>{</strong>
<strong>  MessageBox.Show("O item foi encontrado na lista");</strong>
<strong>}</strong>
<strong>else</strong>
<strong>{</strong>
<strong>  MessageBox.Show("Item inexistente na lista");</strong>
<strong>}</strong></pre>
<p>O método Contains da lista valores retorna <strong><em>true</em></strong> neste exemplo, pois o valor 16 está presente na lista genérica.</p>
<h3>Preencher um ListBox com itens de uma lista</h3>
<p>Suponha um controle ListBox de nome lstList, o qual queremos preencher com os elementos armazenados em uma lista genérica.</p>
<pre><strong>List&lt;string&gt; lugares = new List&lt;string&gt;();

</strong><strong>lugares.Add("Fortaleza");</strong>
<strong>lugares.Add("Buenos Aires");</strong>
<strong>lugares.Add("Cairo");</strong>
<strong>lugares.Add("Sydney");</strong>
<strong>lugares.Add("Lima");</strong>
<strong>lugares.Add("Toronto");

</strong><strong>foreach (string item in lugares)</strong>
<strong>{</strong>
<strong>  lstLista.Items.Add(item);</strong>
<strong>}


</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-16552 size-full" title="Preencher um ListBox com uma lista genérica em C#" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/03/preencher-listbox-classe-list.jpg" alt="Preencher um ListBox com uma lista genérica em C#" width="381" height="174"></p>
<p>A caixa de listagem também pode ser preenchida usando-se o método <strong>ToArray</strong> da lista, em vez de usar um laço <strong>foreach</strong>, para passar seus elementos de uma vez à ListBox:</p>
<pre><strong>lstLista.Items.AddRange(lugares.ToArray());</strong></pre>
<h3>Classificar Listas</h3>
<p>Podemos classificar (ordenar) uma lista em C# empregando o método Sort(). Por exemplo, para ordenar a lista de valores usada nos exemplos anteriores, basta executarmos:</p>
<pre><strong>valores.Sort();</strong></pre>
<p>E os itens dentro desta lista estarão ordenados, em ordem numérica crescente.</p>
<p>É isso aí! Nos próximos tutoriais vamos abordar outras estruturas de armazenamento em C#, tais como Filas e Pilhas. Até!</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/csharp/listas-em-c-a-classe-generica-list/">Listas em C# &#8211; A classe genérica List&lt;T&gt;</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/csharp/listas-em-c-a-classe-generica-list/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
