Você está aqui: C++ ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados int da linguagem C++

Quantidade de visualizações: 10609 vezes
O tipo de dados int da linguagem C++ é usado quando queremos representar números inteiros, ou seja, sem partes fracionárias. Veja um trecho de código demonstrando seu uso (note que estes estudos foram feitos no Windows XP - 32 bits - usando Dev-C++):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // declara uma variável do tipo int
  int idade = 45;

  cout << "A idade é: " << idade << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

A capacidade de armazenamento do tipo int depende da arquitetura na qual o programa está sendo executado. Uma forma muito comum de descobrir esta capacidade é usar os símbolos INT_MIN e INT_MAX, definidos no header climits (limits.h). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Valor mínimo: " << INT_MIN << "\n";
  cout << "Valor máximo: " << INT_MAX << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este programa você terá um resultado parecido com:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Valor mínimo: -2147483648
Valor máximo: 2147483647

Veja que o tipo inteiro aceita valores positivos e negativos. Tudo que você tem a fazer é tomar todo o cuidado para que os valores atribuidos a variáveis deste tipo não ultrapassem a faixa permitida. Veja um trecho de código que provoca o que chamamos de transbordamento (overflow):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  int soma = INT_MAX + 2;

  cout << "Resultado: " << soma << "\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Este programa exibirá o seguinte resultado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Resultado: -2147483647

Note que este não é o resultado esperado, visto que INT_MAX + 2 deveria retornar:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

2147483647 + 2 = 2147483649

Porém, como o valor máximo que pode ser armazenado em um int é 2147483647, o procedimento adotado pelo compilador foi tornar o número negativo e subtrair 1. É claro que, se você testar este código em arquiteturas diferentes o resultado poderá ser diferente do exemplificado aqui.

Em termos de bytes, é comum o tipo int ser armazenado em 4 bytes, o que resulta em 32 bits (um byte é formado por 8 bits, lembra?). Veja um trecho de código que mostra como usar o operador sizeof() para determinar a quantidade de bytes necessários para armazenar um variável do tipo int:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Tamanho de um int: " << sizeof(int) 
    << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

O resultado da execução deste código será algo como:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Tamanho de um int: 4 bytes


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço while da linguagem C++ - C++ para iniciantes

Quantidade de visualizações: 19251 vezes
O laço while é usado quando queremos executar um bloco de instruções repetidamente ENQUANTO uma condição for satisfeita. Veja a sintáxe deste laço:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

while(expressão){
  bloco de instruções
}

A parte expressão deve sempre resultar em um valor true ou false quando avaliada. Veja um trecho de código no qual temos um laço while que conta de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço while que permite contar de 0 a 10
  int valor = 0;

  while(valor <= 10){
    cout << valor << "\n";
    valor++;
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

É importante lembrar que o C++, ao contrário do C, possui um tipo booleano. Este tipo é chamado bool e pode ser usado em um laço while da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço while que mostra como usar o tipo
  // bool
  bool pode = true;
  int valor = 0;

  while(pode){
    cout << valor << "\n";
    valor++;

    // vamos parar o laço aqui
    if(valor > 10)
      pode = false;
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Lembre-se de que um laço while pode nunca ser executado, ou seja, se a condição testada for sempre insatisfatória, o fluxo de código passará para a próxima instrução após o laço. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // um laço while que nunca é executado
  int valor = 0;

  while(valor > 10){
    cout << valor << "\n";
    valor++;
  }

  cout << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}



C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em C++ - Como controlar o acesso a membros de uma classe C++ usando o modificar public

Quantidade de visualizações: 8124 vezes
Membros de uma classe são suas funções e variáveis. A visibilidade de tais membros pode ser controlada, ou seja, algumas funções e variáveis podem ser ocultadas do mundo externo. Este é o princípio de encapsulamento da programação orientada a objetos.

O modificador public define que os membros de uma classe estarão acessíveis a qualquer função fora da classe. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

class Cliente{
public:
  char *nome;
};

int main(int argc, char *argv[])
{
  // Cria uma instância da classe Cliente
  Cliente *cliente = new Cliente();

  // Define o nome do cliente
  cliente->nome = "Osmar J. Silva";

  // Obtém o nome do cliente
  cout << "Nome do cliente: " << cliente->nome << "\n\n";

  system("PAUSE");
  return EXIT_SUCCESS;
}

Como o atributo nome foi declarado na seção public, o código da função main possui acesso a ele sem a necessidade de métodos acessórios (get) ou mutatórios (set).

Quando usamos o modificador public antes do nome de uma classe base (durante a herança), estamos definindo que os membros public e protected da classe base serão public e protected na classe derivada.

O acesso padrão (sem modificador) dos membros de uma classe é private. Em uniões (union) e estruturas (structure), o acesso padrão é public.

O acesso padrão de uma classe base (durante a herança) é private para classes e public para estruturas. Uniões não podem possuir classes bases.


C++ ::: STL (Standard Template Library) ::: unordered_map

Como contar as frequências de palavras em uma frase ou texto em C++ usando um unordered_map

Quantidade de visualizações: 632 vezes
Nesta dica mostrarei como podemos usar o mapa não ordenado (unordered_map) da linguagem C++ para contar as frequências das palavras individuais de uma palavra ou texto. O exemplo mostrado aqui serve como base para a criação de aplicações muito interessantes.

Veja o código C++ completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>
#include <unordered_map>
#include <bits/stdc++.h>

using namespace std;

// protótipo da função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase);

int main(int argc, char *argv[]){
  // vamos declarar uma frase
  // retirei acentos e pontuações de propósito
  string frase = "Gosto de Java e Python pois quero aprender Java";
  
  // mostramos a frase
  cout << "A frase é: " << frase << endl;
  
  // chamamos a função que exibe as frequencias
  cout << "\nA frequência das palavras é:\n" << endl;
  exibir_frequencias(frase);
 
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}

// função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase){
  // vamos declarar um mapa que terá como chave uma string
  // e como valor um int
  unordered_map<string, int> frequencias;
  
  // agora convertemos a frase recebido como argumento
  // em um objeto stringstream
  stringstream ss(frase);
  
  // e percorremos as palavras individualmente
  string palavra;
  while (ss >> palavra){
    // essa palavra já existe no mapa?
    if (frequencias.find(palavra) == frequencias.end()){
      // adiciona esta palavra ao mapa
      frequencias[palavra] = 1;
    }
    else{
      // já existe. Vamos incrementar esta frequência
      frequencias[palavra] = frequencias[palavra] + 1;
    }
  }
  
  // agora percorremos o mapa não ordenado, acessando
  // cada chave e mostrando a frequencia de cada palavra
  unordered_map<string, int>:: iterator p;
  for (p = frequencias.begin(); p != frequencias.end(); p++){
    cout << "(" << p->first << ", " << p->second << ")\n";
  }
}

Ao executar este código C++ nós teremos o seguinte resultado:

A frase é: Gosto de Java e Python pois quero aprender Java

A frequência das palavras é:

(aprender, 1)
(quero, 1)
(pois, 1)
(Gosto, 1)
(Java, 2)
(e, 1)
(de, 1)
(Python, 1)


Vamos testar seus conhecimentos em Java

Analise o seguinte código Java

public class Estudos {
  public static void main(String[] args) {
    int a = 3;
    System.out.println(++a * 8);
  }
}

Qual é o resultado de sua execução?

A) 24

B) 32

C) 72

D) 25
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

O comportamento estrutural das lajes maciças depende da altura (h) da seção transversal. Quanto maior a altura, maior o momento de inércia da seção e, por consequência, maior a sua capacidade em resistir a deformações.

Considere a seção transversal de uma laje maciça, conforme apresentado na figura a seguir.



Sendo o aço empregado CA-50 e o cobrimento nominal igual a 3,0cm, calcule o valor do momento fletor máximo atuante na laje, considerando uma área de armadura de 0,4729cm2.

A) Mmáx = 1,66kN.m.

B) Mmáx = 1,47kN.m.

C) Mmáx = 1,37kN.m.

D) Mmáx = 1,25kN.m.

E) Mmáx = 1,19kN.m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Formas: Confecção e colocação

Em relação aos materiais utilizados para formas, assinale a alternativa correta.

A) A fibra de vidro é muito utilizada para pilares e vigas.

B) Formas em poliestireno expandido são altamente reaproveitadas.

C) Vidro é muito utilizado para concreto aparente.

D) Tubos de papelão são muito usados em pilares de seção circular e em estruturas com caixão perdido.

E) As tábuas são os materiais que proporcionam o maior reaproveitamento.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Analise o seguinte código Python

a = {5, 8, 2, 1}
b = {1, 4, 5, 3}
c = a & b
print(c)

Qual é o resultado de sua execução?

A) {5, 5, 1, 1}

B) Um erro de execução na linha 2

C) {1, 5}

D) {5, 8, 2, 1, 1, 4, 5, 3}
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil dos prepostos e preponentes

É definido como a pessoa que responde pelos atos da atividade empresária e normalmente pode também ser identificado como o patrão, empregador ou dono do negócio. Assinale a alternativa que corresponde a esta definição.

A) Preposto.

B) Gerente.

C) Preponente.

D) Contabilista.

E) Advogado.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 64 usuários muito felizes estudando em nosso site.