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 iniciantesQuantidade 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 publicQuantidade 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_mapQuantidade 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 Javapublic 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 Pythona = {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 |
Software 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 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 |