C++ ::: Fundamentos da Linguagem ::: Passos Iniciais

C++ do básico ao avançado - Conheça a origem da linguagem C++

Quantidade de visualizações: 13712 vezes
C++ começou como uma versão expandida de C. As extensões C++ foram inventadas primeiramente por Bjarne Stroustrup, em 1979, no Bell Laboratories em Murray Hill, New Jersey. Ele inicialmente chamou a nova linguagem de "C com classes". Contudo, em 1983 o nome foi mudado para C++.

Embora C fosse uma das linguagens preferidas e mais usadas para programação profissional em todo o mundo, a invenção de C++ se fez necessária devido a um fator de programação: o aumento da complexidade. No decorrer dos anos, programas de computador se tornaram maiores e mais complexos. Mesmo sendo uma excelente linguagem de programação, C tem seus limites. Em C, uma vez que um programa atinja a marca de 25.000 à 100.000 linhas de códigos, este se torna tão complexo que é difícil analisá-lo como um todo. A manutenção de seu código se torna um pesadelo. O propósito de C++ é quebrar esta barreira. A essência do C++ é permitir que programadores compreendam e gerenciem programas cada vez mais complexos.

A maioria das adições feitas ao C por Stroustrup suportam a programação orientada a objetos, às vezes chamada de POO. Stroustrup afirmou que algumas das características da orientação a objetos de C++ foram inspiradas em uma linguagem chamada Simula67. Assim, C++ representa a combinação de dois métodos poderosos de programação.

Desde que C++ foi inventada, ela já passou por três revisões importantes, com adições e modificações da linguagem. A primeira revisão ocorreu em 1985 e a segunda em 1990. A terceira ocorreu durante a padronização do C++. Há vários anos que este trabalho de padronização foi iniciado. Para esta finalidade, uma associação entre a ANSI (American National Standards Institute) e a ISO (International Standards Organization) resultou em um comitê de padronização.

O primeiro documento contendo o padrão proposto foi criado em 25 de janeiro de 1994. Neste documento, o comitê ANSI/ISO C++ manteve as características definidas por Stroustrup e acrescentou algumas outras. Mas, no geral, este documento inicial refletiu o estado de C++ na época.

Logo após a finalização do primeiro documento de padronização C++, um evento ocorreu e com ele a linguagem foi amplamente expandida: a criação da Standard Template Library (STL) por Alexander Stepanov. A STL é um conjunto de rotinas generícas que podemos usar para manipular dados. A STL não é somente poderosa e elegante, mas também muito extensa.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Um método recursivo que recebe uma String e retorna a quantidade de letras maiúsculas encontradas

Quantidade de visualizações: 5966 vezes
Pergunta/Tarefa:

Escreva um método recursivo que recebe uma palavra ou frase e retorna a quantidade de caracteres (letras) maiúsculos. Seu método deverá possuir a seguinte assinatura:

public static int contarMaiusculas(String frase){
  // sua implementação aqui
}
Veja que o método deverá funcionar para qualquer tamanho de string. Teste também com strings que contenham somente letras maiúsculas ou somente letras minúsculas.

Sua saída deverá ser parecida com:

Digite uma palavra ou frase: Arquivo de Códigos
A palavra ou frase contém 2 letras maiúsculas
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

Observação importante: Este código criará uma cadeia de chamadas recursivas. Cada chamada ao método contarMaiusculas() receberá uma cópia menor da palavra ou frase fornecida. Quando a última chamada recursiva do método receber uma string vazia, a cadeia começa a retornar. Note que os valores acumulados nas várias chamadas ao método vão sendo acumulados na variável quantidade.

package exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // solicita uma palavra ou frase ao usuário
    System.out.print("Digite uma palavra ou frase: ");
    // lê a palavra ou frase
    String frase = entrada.nextLine();
    
    int quantMaiusculas = contarMaiusculas(frase);
    System.out.println("A palavra ou frase contém " + quantMaiusculas +
      " letras maiúsculas");
  }
  
  // método recursivo que recebe uma palavra ou frase e retorna
  // a quantidade de letras maiúsculas
  public static int contarMaiusculas(String frase){
    /* Este código criará uma cadeia de chamadas recursivas. Cada
     * chamada ao método contarMaiusculas() receberá uma cópia menor
     * da palavra ou frase fornecida. Quando a última chamada recursiva do
     * método receber uma string vazia, a cadeia começa a retornar. Note
     * que os valores acumulados nas várias chamadas ao método vão sendo
     * acumulados na variável quantidade
    */ 
    int quantidade = 0;
    
    // o tamanho da string é maior que 0?
    if(frase.length() > 0){
      if(Character.isUpperCase(frase.charAt(0))){
        quantidade = 1 + contarMaiusculas(frase.substring(1));      
      }
      else{
        quantidade = contarMaiusculas(frase.substring(1));    
      }
    }
   
    return quantidade;
  }
}



PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em PHP

Quantidade de visualizações: 1398 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem PHP.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem PHP:

<?php
  $c = 36.056; // medida da hipotenusa
  $b = 30; // medida do cateto adjascente
  
  // agora vamos calcular o comprimento da cateto oposto
  $a = sqrt(pow($c, 2) - pow($b, 2));
 
  // e mostramos o resultado
  echo "A medida do cateto oposto é: " . $a;
?>

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

A medida do cateto oposto é: 20.000878380711

Como podemos ver, o resultado retornado com o código PHP confere com os valores da imagem apresentada.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercícios Resolvidos de Python - Como escrever uma função Python que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro

Quantidade de visualizações: 722 vezes
Pergunta/Tarefa:

Escreva uma função em Python chamada somar() que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro. Este método deverá ter a seguinte assinatura:

def somar(a, b):
  # sua implementação aqui
}
Após a implementação do método somar(), peça ao usuário para informar dois números inteiros. Em seguida faça uma chamada ao método somar() passando os dois valores como argumentos, obtenha o retorno e exiba-o.

Sua saída deverá ser parecida com:

Informe o primeiro número: 4
Informe o segundo número: 3
A soma dos dois números é: 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

# método que recebe dois inteiros e retorna a soma como um número inteiro
def somar(a, b):
  soma = a + b # soma os dois números
  return soma # retorna a soma para o método chamador

# função principal do programa
def main():
  # vamos pedir ao usuário que informe dois valores inteiros
  n1 = int(input("Informe o primeiro número: "))
  n2 = int(input("Informe o segundo número: "))
  
  # vamos efetuar uma chamada ao método somar() e obter seu retorno
  resultado = somar(n1, n2)
    
  # finalmente mostramos o resultado
  print("A soma dos dois números é: {0}".format(resultado))
  
if __name__== "__main__":
  main()



C++ Builder ::: VCL - Visual Component Library ::: TEdit

Como habilitar ou desabilitar um TEdit usando a função EnableWindow() da API do Windows usando C++ Builder

Quantidade de visualizações: 6170 vezes
Embora o C++ Builder já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false.

A função EnableWindow() possui a seguinte assinatura:

BOOL EnableWindow(          
  HWND hWnd,
  BOOL bEnable
);

Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // vamos desabilitar o TEdit usando a função EnableWindow()
  // com o valor false
  if(EnableWindow(Edit1->Handle, false)){
	ShowMessage("A caixa de texto foi desabilitada com sucesso.");
  }
}

Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // vamos habilitar o TEdit usando a função EnableWindow()
  // com o valor true
  if(EnableWindow(Edit1->Handle, true)){
	ShowMessage("A caixa de texto foi habilitada com sucesso.");
  }
}

É importante observar que o retorno da função EnableWindow será FALSE se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada.


Python ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em Python - Eu tenho um valor de R$ 500,00 que aumentou para R$ 800,00. Qual foi o aumento percentual?

Quantidade de visualizações: 995 vezes
Nesta dica mostrarei como calcular a porcentagem do aumento sofrido por um determinado valor usando a linguagem Python. Este é um cenário muito comum. Veja a seguinte situação:

a) Temos um produto x que custava R$ 500,00 e que foi aumentado para R$ 800,00. Queremos, dessa forma, descobrir o percentual de aumento que o preço do produto sofreu.

Veja o código Python para a realização deste cálculo:

# método principal
def main():
  # preço anterior do produto
  precoAnterior = float(input("Informe o preço anterior: "))
  # preço atual do produto
  precoAtual = float(input("Informe o preço atual: "))
  
  # efetua o cálculo
  a = precoAnterior
  b = 100 * precoAtual
  c = b / a
  d = c - 100
  
  # mostra o resultado
  print("A porcentagem de aumento foi: %f%%" % d)
 
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos um resultado parecido com:

Informe o preço anterior: 500
Informe o preço atual: 800
A porcentagem de aumento foi: 60.000000%


JavaScript ::: Dicas & Truques ::: Cookies

Cookies em JavaScript - Como registrar a quantidade de vezes que o usuário visitou a sua página HTML

Quantidade de visualizações: 138 vezes
Nesta dica mostrarei como podemos cookies em JavaScript para gravar e exibir para o usuário a quantidade de vezes que ele visitou o nosso site ou página. Veja que, no código, nós temos duas funções: gravarCookie(), que recebe o nome, o valor e a direção do cookie em dias, e obterCookie(), que recebe o nome do cookie e retorna o seu valor.

O resultado ficará parecido ao que temos na figura abaixo:



E agora o código JavaScript completo para o exemplo, incluindo a página HTML:

<html>
<head>
<title>Estudando JavaScript</title>

<script type="text/javascript">
  // função que permite gravar um cookie
  function gravarCookie(nome, valor, diasDuracao){
    var dataExpiracao = new Date();
    dataExpiracao.setTime(dataExpiracao.getTime() 
      + (diasDuracao * 24 * 3600 * 1000));
    document.cookie = nome + "=" + escape(valor) +
      ((diasDuracao == null) ? "" : "; expires=" + dataExpiracao);
  }
   
  // função quer permite obter um cookie
  function obterCookie(nome){    
    if(document.cookie.length > 0){
      var c_start = document.cookie.indexOf(nome + "=");
      if(c_start != -1){ 
        c_start = c_start + nome.length + 1; 
        c_end = document.cookie.indexOf(";", c_start);
        
        if(c_end == -1){
          c_end = document.cookie.length;
        }
        
        return unescape(document.cookie.substring(
          c_start, c_end));
      } 
    }
    return null;
  }
</script>

</head>
<body>
  
</HEAD>
<BODY>
 
<script type="text/javascript">
  // verifica se o visitante já esteve aqui
  var vezes = obterCookie('visitas');
  if(vezes != null){
    document.write("<h1>Esta é a sua " + vezes + "ª visita.</h1>");
    gravarCookie("visitas", ++vezes, 30);
  }
  else{ // é a primeira vez. grave a visita
    // grava um cookie que durará 30 dias
    gravarCookie("visitas", 1, 30); 
    document.write("<h1>Esta é a sua primeira visita ao site</h1>");
  }
</script>
 
</body>
</html>



JavaScript ::: Dicas & Truques ::: Data e Hora

Como calcular a quantidade de dias restantes para uma determinada data em JavaScript

Quantidade de visualizações: 9205 vezes
Em algumas situações nós precisamos calcular quantos dias faltam para uma determinada data em JavaScript. Por exemplo, você gostaria de saber quantos dias ainda falta para o Natal, ou para o seu aniversário?

Veja a página HTML completa para o exemplo:

<!doctype html>
<html>
<head>
  <title>Data e hora em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos obter a data de hoje
  var hoje = new Date();
  
  // vamos construir a data do Natal
  var data_natal = new Date(hoje.getFullYear(), 11, 25);
  
  // quantidade de milisegundos em um dia
  var dia = 1000 * 60 * 60 * 24;
 
  // calculamos os dias restantes para a data escolhida  
  var restantes = Math.ceil((data_natal.getTime() - 
    hoje.getTime()) / dia);
	
  // e mostramos o resultado
  document.write("Hoje é: " + hoje.toLocaleDateString() + "<br>");  
  document.write("Faltam " + restantes + " dias para o natal.");
</script>
  
</body>
</html>

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

Hoje é: 06/02/2023
Faltam 322 dias para o natal.


Delphi ::: VCL - Visual Component Library ::: TStringGrid

Como definir a altura padrão das linhas em um TStringGrid do Delphi usando a propriedade DefaultRowHeight

Quantidade de visualizações: 10936 vezes
A propriedade DefaultRowHeight é útil quando queremos obter ou definir a altura padrão das linhas de um TStringGrid. Por padrão, o valor desta propriedade é 24 pixels.

Veja no trecho de código abaixo como o valor desta propriedade é obtido:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos obter a altura padrão das linhas
  // do TStringGrid
  Memo1.Lines.Add('A altura padrão das linhas do TStringGrid é: ' +
    IntToStr(StringGrid1.DefaultRowHeight));
end;

Ao executar este trecho de código você terá o seguinte resultado:

A altura padrão das linhas do TStringGrid é: 24.

Podemos definir a altura padrão das linhas do TStringGrid em tempo de design ou execução simplemente definindo um valor inteiro para sua propriedade DefaultRowHeight. Veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos definir a altura padrão das linhas
  // do TStringGrid
  StringGrid1.DefaultRowHeight := 50;
end;

Quando novas linhas são adicionadas por meio da propriedade RowCount, suas alturas serão aquelas da propriedade DefaultRowHeight.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators)

Exercícios Resolvidos de Java - Como converter de decimal para binário usando os operadores de bits em Java

Quantidade de visualizações: 986 vezes
Este exercício faz parte da nossa lista de desafios de programação em Java.

Pergunta/Tarefa:

Escreva um programa Java para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits.

Sua saída deverá ser parecida com:

Informe um número decimal: 9
O número binário é: 00000000000000000000000000001001
Resposta/Solução:

Veja a resolução completa para o exercício em Java, comentada linha a linha:

package estudos;

import java.util.Scanner;

public class Estudos {
  // vamos definir o tamanho do vetor para guardar
  // os dígitos do número binário
  final static int TAM_INT = Integer.BYTES * 8;
  
  public static void main(String[] args){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // variáveis para ajudar a resolver o problema
    int decimal, indice, i;
  
    // vetor para guardar o número binário
    int binario[] = new int[TAM_INT];

    // vamos pedir para o usuário informar um decimal inteiro
    System.out.print("Informe um número decimal: ");
    decimal = Integer.parseInt(entrada.nextLine());

    // ajustamos índice para o último elemento do vetor
    indice = TAM_INT - 1;

    // enquanto índice for maior ou igual a 0
    while(indice >= 0){
      // vamos guardar o bit menos significativo LSB
      binario[indice] = decimal & 1;
    
      // diminuímos o índice  100010
      indice--;

      // desloca bits para a direita uma posição
      decimal = decimal >> 1;
    }

    // agora vamos exibir o número binário
    System.out.print("O número binário é: ");
    for(i = 0; i < TAM_INT; i++){
      System.out.print(binario[i]);
    }
    
    System.out.println("\n\n");
  }
}


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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



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