![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como criar um vector de strings em C++, inserir alguns nomes usando a função push_back() e percorrê-los usando um iteradorQuantidade de visualizações: 11177 vezes |
Se você tem pouca experiência com a classe container vector da STL (Standard Template Library), este exemplo o ajudará um pouco. Aqui eu mostro como criar um vector de strings em C++, inserir alguns nomes nele usando a função push_back() e depois percorrê-los individualmente usando um iterador. Veja o código C++ completo para o exemplo: #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]){ // um vector vazio que conterá strings vector<string> nomes; // vamos inserir três nomes nomes.push_back("Osmar J. Silva"); nomes.push_back("Carlos de Souza"); nomes.push_back("Maria Dias de Carvalho"); // vamos percorrer o vector e exibir os nomes vector<string>::iterator it; for(it = nomes.begin(); it < nomes.end(); it++){ cout << *it << endl; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Osmar J. Silva Carlos de Souza Maria Dias de Carvalho |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca |
Exercícios Resolvidos de Java - Travessia de uma árvore binária de busca usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)Quantidade de visualizações: 2852 vezes |
Pergunta/Tarefa: O percurso em ordem (em-ordem, in-order, In-ordem ou ordem simétrica) é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente. Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de uma função recursiva. Escreva um programa Java que contenha uma árvore binária de busca cujos nós guardarão, além das referências para o filho esquerdo e o filho direito, apenas um valor inteiro. Forneça uma função inserir() que permitirá inserir os valores na árvore. Em seguida forneça uma função recursiva que permitirá fazer a travessia in-order da árvore. Sua saída deverá ser parecida com: Informe um valor inteiro: 7 Informe um valor inteiro: 3 Informe um valor inteiro: 18 Informe um valor inteiro: 4 Informe um valor inteiro: 9 Percurso em ordem: 3 4 7 9 18 Veja a resolução comentada deste exercício usando Java: Código para NoArvore.java: package estudos; public class NoArvore { int valor; // valor armazenado no nó NoArvore esquerdo; // filho esquerdo NoArvore direito; // filho direito // construtor do nó public NoArvore(int valor){ this.valor = valor; } } Código para ArvoreBinariaBusca.java: package estudos; public class ArvoreBinariaBusca { private NoArvore raiz; // referência para a raiz da árvore // método usado para inserir um novo nó na árvore // retorna true se o nó for inserido com sucesso e false // se o elemento não puder ser inserido (no caso de já // existir um elemento igual) public boolean inserir(int valor){ // a árvore ainda está vazia? if(raiz == null){ // vamos criar o primeiro nó e definí-lo como a raiz da árvore raiz = new NoArvore(valor); // cria um novo nó } else{ // localiza o nó pai NoArvore pai = null; NoArvore noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ if(valor < noAtual.valor) { pai = noAtual; noAtual = noAtual.esquerdo; } else if(valor > noAtual.valor){ pai = noAtual; noAtual = noAtual.direito; } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona ao nó pai if(valor < pai.valor){ pai.esquerdo = new NoArvore(valor); } else{ pai.direito = new NoArvore(valor); } } return true; // retorna true para indicar que o novo nó // foi inserido } // método que permite disparar a travessia em-ordem public void emOrdem(){ emOrdem(raiz); } // sobrecarga do método emOrdem com uma parâmetro (esta é a // versão recursiva do método) private void emOrdem(NoArvore raiz){ if(raiz == null){ // condição de parada return; } // visita a sub-árvore da esquerda emOrdem(raiz.esquerdo); // visita o nó atual System.out.print(raiz.valor + " "); // visita a sub-árvore da direita emOrdem(raiz.direito); } } E aqui está o código para a classe que permite testar a árvore: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Erro. Um elemento já contém este valor."); } } // vamos exibir os nós da árvore usando o percurso em ordem System.out.println("\nPercurso em ordem:"); arvore.emOrdem(); System.out.println("\n"); } } |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Como testar se um ano é bissexto em VisuAlg - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 990 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa VisuAlg que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando VisuAlg: algoritmo "Como testar se um ano é bissexto em VisuAlg" var // variáveis usadas na resolução do problema ano: inteiro inicio // vamos solicitar que o usuário informe um ano escreva("Informe o ano: ") leia(ano) // vamos verificar se o ano informado é bissexto se (((ano mod 4 = 0) e (ano mod 100 <> 0)) ou (ano mod 400 = 0)) entao escreva("O ano informado é bissexto.") senao escreva("O ano informado não é bissexto.") fimse fimalgoritmo |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma stringQuantidade de visualizações: 7 vezes |
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto. Veja o código completo para o exemplo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é muito bom"; System.out.println("Frase: " + frase); int cont = 0; char letra = 'a'; // ocorrências da letra "a" for(int i = 0; i < frase.length(); i++){ if(frase.charAt(i) == letra){ cont++; } } System.out.println("A frase contem " + cont + " ocorrencias da letra \"" + letra + "\""); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Frase: Programar em Java é muito bom A frase contém 4 ocorrências da letra "a" |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como alterar a cor de fundo dos títulos de uma JTable usando o método setBackground() da classe JTableHeaderQuantidade de visualizações: 302 vezes |
Nesta dica mostrarei como podemos chamar o método getTableHeader() da classe JTable para obter um objeto JTableHeader e usar seu método setBackground() para definir a cor de fundo dos títulos da tabela JTable. Veja o trecho de código a seguir: JTableHeader titulos = tabela.getTableHeader(); titulos.setBackground(Color.ORANGE); Note que "tabela" é uma referência a um objeto da classe JTable. |
C# ::: Dicas & Truques ::: Data e Hora |
Como calcular os dias restantes para uma data em C# usando um objeto TimeSpanQuantidade de visualizações: 9470 vezes |
Em algumas ocasiões precisamos saber a quantidade de dias restantes para uma determinada data no futuro em C# (próximo Natal, próxima Páscoa, vencimento de uma duplicata, etc). O trecho de código abaixo mostra como isso pode ser feito. Veja que usamos o construtor da estrutura DateTime para construir a data no futuro e então subtraímos desta a data atual. Em seguida obtemos a quantidade de dias do TimeSpan resultante:static void Main(string[] args){ // vamos obter a quantidade de dias restantes para o Natal de // 2009 DateTime data_futura = new DateTime(2009, 12, 25); // 25/12/2009 DateTime hoje = DateTime.Now; // obtém a quantidade de dias restantes TimeSpan dif = data_futura.Subtract(hoje); int restantes = dif.Days + 1; // dia de hoje na contagem // exibe o resultado System.Console.WriteLine("Faltam " + restantes + " dias para " + "o Natal de 2009"); // pausa o programa Console.ReadKey(); } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de C - Escreva um programa C que pede um número inteiro e informa se o número informado é um número de ArmstrongQuantidade de visualizações: 974 vezes |
Pergunta/Tarefa: Um número é chamado de número de Armstrong quando a soma de cada um dos seus dígitos, elevado à quantidade de dígitos do número, equivale ao próprio número. Por exemplo, 153 e 93084 são números de Armstrong, já que: 153 = 13 + 53 + 33 93084 = 95 + 35 + 05 + 85 + 45 Escreva um programa C que pede para o usuário informar um número inteiro e informa se o número informado é um número de Armstrong ou não. Seu código deve usar apenas os operadores matemáticos disponíveis na linguagem C. Sua saída deverá ser parecida com: Informe um número inteiro: 153 O número informado é um número de Armstrong Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int numero, quant_digitos = 0, temp, resto, soma = 0; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um número printf("Informe um número inteiro: "); scanf("%d", &numero); // o primeiro passo é obter a quantidade de dígitos que o número informado // possui temp = numero; while(temp != 0) { quant_digitos = quant_digitos + 1; temp = temp / 10; } // agora efetuamos o cálculo que verifica se o número é um número // de Armstrong ou não temp = numero; while(temp > 0){ resto = temp % 10; soma = soma + (int)(pow(resto, quant_digitos)); temp = temp / 10; } if(soma == numero){ printf("O número informado é um número de Armstrong"); } else{ printf("O número informado não é um número de Armstrong"); } printf("\n\n"); system("PAUSE"); return 0; } |
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Delphi para matemática - Como arredondar valores de ponto-flutuante para cima usando a função Ceil()Quantidade de visualizações: 16925 vezes |
A função Ceil(), presente na unit Math, é útil quando queremos arrendondar valores de ponto-flutuante (valores com casas decimais) para cima, ou seja, para o menor inteiro maior ou igual ao valor fornecido. Veja um exemplo:procedure TForm2.Button1Click(Sender: TObject); var valor: Real; resultado: Integer; begin // uses Math valor := 8.3; // vamos arredondar o valor para cima // o resultado será 9 resultado := Ceil(valor); // exibe o resultado ShowMessage('O valor arredondado para cima é: ' + IntToStr(resultado)); end; Note que os valores 8.0001, 8.3, 8.1, 8.99, etc, serão todos arredondados para 9. No entanto, 8.0 é arredondado para 8. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C# ::: Datas e Horas ::: DateTime |
Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissextoQuantidade de visualizações: 7585 vezes |
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:static void Main(string[] args){ // vamos verificar se o ano 2008 // é bissexto int ano = 2008; if(DateTime.IsLeapYear(ano)) Console.WriteLine("O ano informado é bissexto"); else Console.WriteLine("O ano informado NÃO é bissexto"); // pausa o programa Console.ReadKey(); } Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999. |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como criar um laço while() infinito na linguagem PythonQuantidade de visualizações: 10182 vezes |
Nesta dica eu mostrarei como é possível criar um laço (loop) while infinito em Python. Esta técnica é útil para as situações nas quais queremos interagir com o usuário do nosso programa até que um determinado valor seja informado. No exemplo abaixo temos um laço while() que será executado até que o texto "fim" seja informado pelo usuário. Veja o código completo: def main(): while True: frase = input("Digite uma frase: "); print("Você digitou: ", frase) # vamos sair do laço if frase == "fim": print("Você acaba de sair do laço while()") break if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: Digite uma frase: Estou estudando Python Você digitou: Estou estudando Python Digite uma frase: Preciso viajar amanhã Você digitou: Preciso viajar amanhã Digite uma frase: fim Você digitou: fim Você acaba de sair do laço while() |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como converter Coordenadas Cartesianas para Coordenadas Polares usando Java - Java para Engenharia JavaScript - JavaScript para Trigonometria - Como converter radianos em graus na linguagem JavaScript JavaScript - Como converter uma string em um valor de ponto-flutuante em JavaScript usando a função parseFloat() VB.NET - Como usar o laço While em VB.NET |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |