Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 Apenas R$ 19,90
PHP ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados object da linguagem PHP

Quantidade de visualizações: 7874 vezes
O PHP, especialmente a partir da versão 5.0, suporta a programação orientada a objetos (OOP). A programação OOP promove um design modular limpo, simplifica a depuração e manutenção e facilita a reutilização de códigos.

As classes são os pontos cruciais de um design orientado a objetos. Uma classe é uma definição de uma estrutura que contém propriedades (variáveis) e métodos (funções). Classes são definidas com a palavra-chave class:

class Pessoa{
  public $nome = '';

  function nome($novo_nome = NULL){
    if(!is_null($novo_nome)){
      $this->nome = $novo_nome;
    }
    
    return $this->nome;
  }
}

Uma vez que uma classe é definida, qualquer número de objetos podem ser construídos a partir dela por meio do uso da palavra-chave new, e as propriedades e métodos do objeto podem ser acessadas com a construção ->. Veja:

  $pessoa = new Pessoa;
  $pessoa->nome('Osmar J. Silva');
  printf("Olá, %s<br>", $pessoa->nome);

Se quisermos saber se uma variável é do tipo object, podemos usar a função is_object(). Veja:

<?  
  class Pessoa{
    public $nome = '';

    function nome($novo_nome = NULL){
      if(!is_null($novo_nome)){
        $this->nome = $novo_nome;
      }
    
      return $this->nome;
    }
  }
  
  $pessoa = new Pessoa;

  if(is_object($pessoa)){
    echo 'A variável $pessoa é do tipo object.';
  }
?>

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

A variável $pessoa é do tipo object.


C# ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de C# - Como testar se um ano é bissexto em C# - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou não

Quantidade de visualizações: 479 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 C# 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.
Resposta/Solução:

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

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos solicitar que o usuário informe um ano
      Console.Write("Informe o ano: ");
      int ano = Int32.Parse(Console.ReadLine());

      // vamos verificar se o ano informado é bissexto
      if (((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){
        Console.WriteLine("O ano informado é bissexto.");
      }
      else {
        Console.WriteLine("O ano informado não é bissexto.");
      }

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}



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

Como retornar uma referência ao primeiro elemento de um vector C++ usando a função front()

Quantidade de visualizações: 6708 vezes
O primeiro elemento em um contêiner STL vector do C++ pode ser acessado por meio da função front(). Como esta função é sobrecarregada, temos duas opções:

reference front();
const_reference front() const;  
A primeira versão é do tipo T&, ou seja, retorna uma referência ao primeiro elemento. Veja:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter o valor do primeiro elemento do vector
  // Note que front() pode ser usada dos dois lados
  // de uma operação de atribuição
  int valor = valores.front();
  cout << "Primeiro elemento: " << valor << endl;

  // vamos alterar o valor do primeiro elemento
  valores.front() = 102;

  // vamos testar o resultado
  cout << "Primeiro elemento: " << valores.front() << endl;

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

Note que aqui nós usamos:

int valor = valores.front();
para guardar o valor do primeiro elemento na variável valor. Poderíamos também usar:

int& valor = valores.front();
valor = 102;
Agora valor é uma referência direta ao primeiro elemento do vector. Desta forma, qualquer alteração no valor da variável valor afetará também o primeiro elemento do vector.

Observe agora o seguinte trecho de código:

int valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
cout << "Primeiro elemento: " << valor << endl;

Aqui nós acessamos o valor do primeiro elemento, guardarmos-o na variável valor e atribuímos o valor 20 à valores.front(). Porém, ao imprimirmos a variável valor o seu conteúdo ainda é 54. De fato, o que gostaríamos é que uma alteração em valores.front() afetasse também a variável valor. Assim:

int& valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
cout << "Primeiro elemento: " << valor << endl;
Mas, como evitar alterações diretas na variável valor? Podemos declarar valor como uma referência constante, ou seja, usar a segunda versão da função front(), a saber const T&, que retorna uma referência constante. Veja:

const int& valor = valores.front(); // o primeiro elemento é 54
valores.front() = 20;
valor = 300; // esta linha não compila
cout << "Primeiro elemento: " << valor << endl;

Agora o efeito que queríamos é alcançado. Alterações em valores.front() afetam a variável valor, mas, não podemos alterar valor diretamente, já que esta variável é uma referência constante agora.


Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivada

Quantidade de visualizações: 19293 vezes
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada.

Comece criando a classe Pessoa (Pessoa.java):

public class Pessoa{ 
  public String nome;    
  public int idade;

  // construtor da classe
  public Pessoa(String nome, int idade){
    this.nome = nome;
    this.idade = idade;
  }
}

Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa:

public class Aluno extends Pessoa{ 
  public String matricula;

  // construtor
  public Aluno(String nome, int idade,
               String matricula){
    // chama o construtor da superclasse
    super(nome, idade);
    this.matricula = matricula;
  }  
}

Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada:

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Aluno
    Aluno aluno = new Aluno("Osmar J. Silva", 
      36, "AC434-23");
  
    // Exibe o resultado
    System.out.println("Nome: " + aluno.nome + "\n" +
      "Idade: " + aluno.idade + "\n" +
      "Matrícula: " + aluno.matricula);
  } 
}

Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse:

// chama o construtor da superclasse
super(nome, idade);

Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse.


C# ::: Coleções (Collections) ::: ArrayList

Como passar uma ArrayList para um método C#

Quantidade de visualizações: 9420 vezes
Em algumas situações nós precisamos fornecer uma ArrayList para um método C# e manipulá-la a partir deste método. Nesta dica eu mostro como isso pode ser feito.

Veja que, dentro do método Main da aplicação nós criamos um novo objeto da classe ArrayList e inserimos 5 números inteiros nela. Em seguida nós efetuamos uma chamada ao método exibirArrayList() passando a lista como referência, ou seja, qualquer alteração que fizermos na ArrayList dentro do método afetará também o objeto criado fora do método.

Veja o código completo para o exemplo:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // Cria o ArrayList
      ArrayList lista = new ArrayList();

      // Adiciona 5 inteiros
      lista.Add(30);
      lista.Add(2);
      lista.Add(98);
      lista.Add(1);
      lista.Add(7);

      // passa o ArrayList para um método que exibirá
      // seus valores
      exibirArrayList(lista);

      Console.WriteLine("\n\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }

    // método que receberá e exibirá o conteúdo do ArrayList
    static void exibirArrayList(ArrayList mLista) {
      foreach (int valor in mLista) {
        Console.Write("{0} ", valor);
      }
    }
  }
}

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

30 2 98 1 7


Python ::: Dicas & Truques ::: Lista (List)

Como pesquisar um item em uma list e removê-lo usando a função remove() do Python

Quantidade de visualizações: 8784 vezes
Nesta dica mostrarei como é possível usar a função remove() do tipo de dados list para pesquisar um item em uma lista e removê-lo. Observe que, se o item a ser removido não for encontrado, um erro do tipo ValueError será exibido.

Veja o código completo para o exemplo:

# função principal do programa
def main():
  # cria uma lista de inteiros
  valores = [2, 5, 12, 2, 3, 32, 18]
 
  # exibe a lista
  print(valores)
 
  try:
    valor = int(input("Informe o valor a ser removido: "))
    valores.remove(valor)
  except ValueError:
    print("O valor pesquisado nao foi encontrado")
  else:
    print("O valor foi removido com sucesso")
 
  # exibe a lista
  print(valores)
  
if __name__== "__main__":
  main()

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

[2, 5, 12, 2, 3, 32, 18]
Informe o valor a ser removido: 2
O valor foi removido com sucesso
[5, 12, 2, 3, 32, 18]

Observe que a função remove() da list remove apenas o primeiro item encontrado, ou seja, se a lista possuir mais de um valor igual, apenas o primeiro será removido.


C# ::: Windows Forms ::: Formulários e Janelas

Como definir a cor de fundo de um formulário C# Windows Forms usando a propriedade BackColor

Quantidade de visualizações: 9385 vezes
A cor de fundo de um formulário Windows Forms pode ser definida em tempo de design ou execução usando-se a propriedade BackColor. Em tempo de design só precisamos clicar no formulário, acionar a janela de propriedades e escolher a cor de fundo desejada.

Em tempo de execução, a cor de fundo pode ser definida com um código parecido com:

private void button1_Click(object sender, EventArgs e){
  // vamos definir a cor de fundo para o formulário
  this.BackColor = Color.LightSalmon;
}

É possível obter o valor da propriedade BackColor do formulário da seguinte forma:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o valor da propriedade BackColor
  Color corFundo = this.BackColor;

  // vamos mostrar o resultado
  MessageBox.Show("A cor de fundo é: " + corFundo.Name);
}



C ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como alocar memória dinâmica usando a função calloc() da linguagem C

Quantidade de visualizações: 18855 vezes
A função calloc() é bem parecida com a função malloc() e também é usada em C para alocarmos um bloco de memória. A diferença é que calloc() recebe a quantidade de elementos e o número de bytes do elemento e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:

void *calloc(size_t n, size_t size);


Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado.

É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um único inteiro. Você poderia ter algo assim:

// aloca memória para um int
ponteiro = calloc(1, 4);


Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja:

// aloca memória para um int
ponteiro = calloc(1, sizeof(int));

Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // ponteiro para uma variável do tipo inteiro
  int *ponteiro;

  // aloca memória para um int
  ponteiro = calloc(1, sizeof(int));

  // testa se a memória foi alocada com sucesso
  if(ponteiro)
    printf("Memoria alocada com sucesso.\n");
  else
    printf("Nao foi possivel alocar a memoria.\n");

  // atribui valor à memória alocada
  *ponteiro = 45;

  // obtém o valor atribuído
  printf("Valor: %d\n\n", *ponteiro);

  // libera a memória
  free(ponteiro);

  system("PAUSE");
  return 0;
}

Uma aplicação interessante da função calloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int i;

  // quantidade de elementos na matriz
  int quant = 10;

  // ponteiro para o bloco de memória
  int *ponteiro;

  // aloca memória para uma matriz de inteiros
  ponteiro = calloc(quant, sizeof(int));

  // testa se a memória foi alocada com sucesso
  if(ponteiro)
    printf("Memoria alocada com sucesso.\n");
  else{
    printf("Nao foi possivel alocar a memoria.\n");
    exit(1);
  }

  // atribui valores aos elementos do array
  for(i = 0; i < quant; i++){
    ponteiro[i] = i * 2;
  }

  // exibe os valores
  for(i = 0; i < quant; i++){
    printf("%d  ", ponteiro[i]);
  }

  // libera a memória
  free(ponteiro);

  printf("\n\n");
  system("PAUSE");
  return 0;
}



Delphi ::: VCL - Visual Component Library ::: TListBox

Como adicionar itens em uma ListBox do Delphi usando a função Add()

Quantidade de visualizações: 14367 vezes
Itens em uma TListBox podem ser adicionados usando-se o método Add() da propriedade Items, um objeto da classe TString. Este método aceita uma string representando o novo ítem e retorna um inteiro cujo valor é o índice do novo ítem. Veja o seguinte trecho de código:

procedure TForm1.Button1Click(Sender: TObject);
var
  item: String;
begin
  // vamos adicionar um item vindo de uma variável
  item := 'Sou o primeiro item';
  ListBox1.Items.Add(item);

  // vamos adicionar outro item...desta vez um literal
  ListBox1.Items.Add('Sou o segundo item');
end;

Note que neste exemplo não fizemos uso do valor inteiro retornado pelo método Add(). Caso isso seja necessário, podemos usar código parecido com:

procedure TForm1.Button1Click(Sender: TObject);
var
  item: String;
  indice: Integer;
begin
  // vamos adicionar um item vindo de uma variável
  // e obter o seu índice
  item := 'Sou o primeiro item';
  indice := ListBox1.Items.Add(item);

  ShowMessage('O novo ítem foi inserido no índice: ' +
    IntToStr(indice));
end;

É importante notar que, em uma TListBox não ordenada, ou seja, o valor de sua propriedade Sorted é false, o método Add() sempre adicionará o novo item no final da lista. Em uma lista ordenada, o item é inserido em uma posição determinada pela ordenação alfabética dos demais itens.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


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

Exercício Resolvido de C - Um método recursivo que conta de 0 até 10

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

Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:

void contar_recursivamente(int n){
  // sua implementação aqui
}
Veja que o método deverá receber o valor 0 e efetuar novas chamadas a si mesmo até que os valores de 0 a 10 sejam exibidos. O ponto de parada da recursividade é a exibição do valor 10.

Sua saída deverá ser parecida com:

0  1  2  3  4  5  6  7  8  9  10
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
  
// método recursivo que conta de 0 até 10;
void contar_recursivamente(int n){
  // vamos exibir o número atual
  printf("%d  ", n);
    
  // devemos prosseguir com a recursividade?
  if(n < 10){
    // incrementa o valor de n
    n++;  
    contar_recursivamente(n); // e faz uma nova chamada recursiva
  }
}  
  
// método principal do programa  
int main(int argc, char *argv[]){
  // efetua uma chamada ao método recursivo fornecendo o primeiro valor
  contar_recursivamente(0);
  
  printf("\n\n");
  system("pause");
  return 0;
}


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á 54 usuários muito felizes estudando em nosso site.