Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 Apenas R$ 32,90
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um arquivo em Delphi usando a função DeleteFile()

Quantidade de visualizações: 32338 vezes
Em algumas situações nossas aplicações precisam excluir arquivos. Para isso o Delphi nos fornece a função DeleteFile(), presente na unit SysUtils. Esta função recebe o caminho e nome do arquivo a ser excluído e retorna true se a exclusão foi feita com sucesso e false em caso contrário.

Veja um trecho de código no qual excluímos um arquivo chamado "dados.txt":

procedure TForm1.Button1Click(Sender: TObject);
var
  arquivo: string;
begin
  // diretorio e nome do arquivo
  arquivo := 'C:\arquivo de codigos\dados.txt';

  // vamos remover o arquivo
  if DeleteFile(arquivo) then
    ShowMessage('O arquivo foi excluído com sucesso')
  else
    ShowMessage('Não foi possível excluir o arquivo');
end;

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


C# ::: Desafios e Lista de Exercícios Resolvidos ::: C# Básico

Exercício Resolvido de C# - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em C#

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

Escreva um programa C# para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

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

using System;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos pedir ao usuário que informe um número inteiro
      Console.Write("Informe um número inteiro: ");
      int numero = Int32.Parse(Console.ReadLine());

      // vamos calcular o sucessor do número informado
      int sucessor = numero + 1;

      // vamos calcular o antecessor do número informado
      int antecessor = numero - 1;

      // e agora mostramos os resultados
      Console.WriteLine("O número informado foi: {0}", numero);
      Console.WriteLine("O antecessor é {0}", antecessor);
      Console.WriteLine("O sucessor é: {0}", sucessor);

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



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

Como arredondar valores de ponto-flutuante usando a função round() da linguagem C

Quantidade de visualizações: 17417 vezes
A função round() da linguagem C é usada quando precisamos arredondar um valor de ponto-flutuante (com casas decimais) para cima ou para baixo, de acordo com as seguintes regras:

a) Se a parte fracionária for igual ou maior que 0,5, o valor será arredondado para o menor inteiro maior que o valor fornecido à função (arredonda para cima).

b) Se a parte fracionária for menor que 0,5, o valor será arredondado para o maior inteiro menor que o valor fornecido à função (arredonda para baixo).

Para entender o funcionamento desta função, vamos considerar o valor 4.3. Ao aplicarmos a função round() a este valor, o retorno será 4.0. Isso pode ser comprovado no trecho de código abaixo:

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

int main(int argc, char *argv[])
{
  printf("O valor 4.3 arredondado usando round() e %f", 
    round(4.3));
  
  printf("\n\n");
  system("pause");
  return 0;
}

Ao executarmos este código teremos o seguinte resultado:

O valor 4.3 arredondado usando round() é 4.000000.


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Manipulação de arquivos em Java - Como obter o tamanho de um arquivo em bytes usando o método length() da classe File do Java

Quantidade de visualizações: 182 vezes
A classe File, do pacote java.io da linguagem Java, nos fornece o método length(), que retorna o tamanho de um arquivo em byes. O retorno é do tipo long.

Veja como podemos usá-lo no código abaixo:

package arquivodecodigos;

import java.io.*;
 
public class Estudos{
  public static void main(String[] args){
    File arquivo = new File("c:\\estudos_java\\lago.jpg");
     
    // Obtém o tamanho do arquivo em bytes
    long tam = arquivo.length();
    System.out.println("Tamanho do arquivo em bytes: " + tam);    
  }
}

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

Tamanho do arquivo em bytes: 143060


Python ::: Dicas & Truques ::: Tupla (Tuple)

Python para iniciantes - Como usar o tipo de dados tuple da linguagem Python

Quantidade de visualizações: 9275 vezes
Uma tupla (tuple) é similar a uma lista (list), com a exceção de que uma tupla não pode ser modificada, ou seja, é imutável.

Veja como criar uma tupla contendo cinco elementos:

# Cria uma tupla
valores = 4, 76, 2, 98, 4

# Exibe o valor do segundo elemento
print valores[1]

# Exibe todos os elementos
for valor in valores:
  print valor,

Veja agora o que acontece quando tentamos alterar o valor de um dos elementos da tupla:

valores[4] = 50

Traceback (most recent call last):
  File "tuplas.py", line 19, in <module>
    valores[4] = 50
TypeError: 'tuple' object does not support item assignment


Contudo, a variável do tipo tupla pode ser alterada para apontar para uma tupla diferente. Veja:

# Cria duas tuplas
valores = 4, 76, 2, 98, 4
letras = 'A', 'B', 'C'

# Atribue os elementos de letras a valores
valores = letras

# Exibe o resultado
print valores

É comum colocar os elementos de uma tupla entre parênteses. Assim, a tupla abaixo é perfeitamente legal:

valores = (4, 76, 2, 98, 4)

Embora não muito provável, se precisarmos criar uma tupla de apenas um elemento, devemos inserir uma vírgula após ele. Veja:

valores = (4,)

Tuplas podem conter elementos de diferentes tipos de dados. Veja:

# Cria uma tupla contendo tipos diferentes
# de dados
cliente = (3, "Osmar J. Silva", "Goiânia", "GO", 35)

# Exibe o valor do 4º elemento
estado = cliente[3]
print estado



Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a equação reduzida da reta em Python dados dois pontos pertencentes à reta

Quantidade de visualizações: 3356 vezes
Nesta dica de Python veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Python completo para esta tarefa:

# método principal
def main():
  # vamos ler as coordenadas do primeiro ponto
  x1 = float(input("Coordenada x do primeiro ponto: "))
  y1 = float(input("Coordenada y do primeiro ponto: "))
  
  # vamos ler as coordenadas do segundo ponto
  x2 = float(input("Coordenada x do segundo ponto: "))
  y2 = float(input("Coordenada y do segundo ponto: "))
 
  sinal = "+"
  # vamos calcular o coeficiente angular da reta
  m = (y2 - y1) / (x2 - x1)
  # vamos calcular o coeficiente linear
  n = y1 - (m * x1)
 
  # coeficiente linear menor que zero? O sinal será negativo
  if (n < 0):
    sinal = "-"
    n = n * -1
  
  # mostra a equação reduzida da reta
  print("Equação reduzida: y = %.2fx %s %.2f" % (m, sinal, n))

if __name__== "__main__":
  main()

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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


Ruby ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Como criar funções em Ruby - Como criar e usar funções na linguagem Ruby

Quantidade de visualizações: 7902 vezes
Funções ou métodos em Ruby são definidos usando-se a palavra chave def e finalizando com a palavra end. Veja:

# define o método
def escrever
  puts "Estou estudando Ruby"  
end

# efetua uma chamada ao método
escrever

Para definir uma método que aceita parâmetros, as variáveis devem ser colocadas entre parênteses. Estas variáveis são locais e portanto acessíveis somente no corpo do método. Veja:

# define o método
def escrever(texto, quant)
  quant.times do
    puts texto
  end
end

# efetua uma chamada ao método
escrever("Estou estudando Ruby", 5)

Ao executar este último exemplo nós teremos o seguinte resultado:

Estou estudando Ruby
Estou estudando Ruby
Estou estudando Ruby
Estou estudando Ruby
Estou estudando Ruby


Java ::: Classes e Componentes ::: JList

Java Swing - Como obter a quantidade de itens em uma JList usando o método getSize() da interface ListModel

Quantidade de visualizações: 9493 vezes
Nesta dica mostrarei como podemos obter a quantidade de itens em uma JList por meio de uma chamada ao método getSize() da interface ListModel, responsável por gerenciar os itens da JList. Note que escrevi o exemplo abaixo sem usar nenhum editor GUI visual. Dessa forma fica mais fácil entender todas as partes que compoem uma aplicação Java Swing.

Veja o código completo:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class Estudos extends JFrame{
  JList lista;  
 
  public Estudos() {
    super("A classe JList");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
     
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};
 
    // Cria a JList
    lista = new JList(nomes);
  
    // Um botão que permite obter a quantidade de itens
    JButton btn = new JButton("Quantidade de Itens");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          int quant = lista.getModel().getSize();
 
          JOptionPane.showMessageDialog(null, 
            "A lista contém " + quant + " itens");
        }
      }
    );
 
    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));
 
    // Adiciona o botão à janela
    c.add(btn);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercício Resolvido de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações

Quantidade de visualizações: 6129 vezes
Exercícios Resolvidos de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações

Pergunta/Tarefa:

Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações:

void armazenaPessoa(String nome, int idade, float altura);
void removePessoa(String nome);
int buscaPessoa(String nome); // informa em que posição da agenda está a pessoa
void imprimeAgenda(); // imprime os dados de todas as pessoas da agenda
void imprimePessoa(int index); // imprime os dados da pessoa que está na posição "i" da agenda.

O código deverá ser desenvolvido em Java console (modo texto) e usar um menu switch() para as operações.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

Código para a classe Pessoa (Pessoa.java):

package arquivodecodigos;

public class Pessoa {
  private String nome;
  private int idade;
  private double altura;

  // construtor cheio 
  public Pessoa(String nome, int idade, double altura) {
    this.nome = nome;
    this.idade = idade;
    this.altura = altura;
  }

  // construtor vazio
  public Pessoa() {
  }
  
  
  // método que imprime todos os dados da pessoa
  public void imprimirDados(){
    System.out.println("Nome: " + nome + "\nIdade: " +
      idade + "\nAltura: " + altura);
  }
  
  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public int getIdade() {
    return idade;
  }

  public void setIdade(int idade) {
    this.idade = idade;
  }

  public double getAltura() {
    return altura;
  }

  public void setAltura(double altura) {
    this.altura = altura;
  }
}     

Código para a classe Agenda (Agenda.java):

package arquivodecodigos;

public class Agenda {
  // vetor que guardará as pessoas
  private Pessoa pessoas[];

  // construtor da classe Agenda
  public Agenda(int quantidade){
    pessoas = new Pessoa[quantidade];
  }

  public void armazenaPessoa(String nome, int idade, double altura){
    // ainda temos posições disponíveis na agenda?
    boolean cadastrado = false;
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] == null){
        // encontramos uma posição
        Pessoa p = new Pessoa(nome, idade, altura); // criamos uma nova pessoa
        // guardamos ela no vetor
        pessoas[i] = p;
        // e avisamos que o cadastro foi efetuado com sucesso
        cadastrado = true;
        break; // sai do laço
      }
    }
    
    if(cadastrado){
      System.out.println("\nCadastro efetuado com sucesso");
    }
    else{
      System.out.println("\nNão foi possível cadastrar. Agenda cheia");
    }
  }

  // método que permite pesquisar e excluir uma pessoa
  public void removePessoa(String nome){
    // vamos verificar se a exclusão foi efetuada com sucesso
    boolean excluido = false;
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        // esta é a pessoa que estamos procurando?
        if(pessoas[i].getNome().equals(nome)){
          pessoas[i] = null; // posição disponível novamente
          excluido = true;
          break; // sai do laço
        }
      }
    }
    
    if(excluido){
      System.out.println("\nPessoa removida com sucesso");
    }
    else{
      System.out.println("\nNão foi possível remover. Pessoa não encontrada.");
    }
  }

  // informa em que posição da agenda está a pessoa 
  public int buscaPessoa(String nome){
    int resultado = -1;
    
    // vamos verificar se a pessoa existe na agenda
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        // esta é a pessoa que estamos procurando?
        if(pessoas[i].getNome().equals(nome)){
          resultado = i;
          break; // sai do laço
        }
      }
    }
    
    return resultado;
  }

  // imprime os dados de todas as pessoas da agenda
  public void imprimeAgenda(){
    // vamos percorrer o vetor de pessoas e imprimir cada uma
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        Pessoa p = pessoas[i];
        System.out.println("\nNome: " + p.getNome());
        System.out.println("Idade: " + p.getIdade());
        System.out.println("Altura: " + p.getAltura());
      }
    }
  }

  // imprime os dados da pessoa que está na posição "i" da agenda
  public void imprimePessoa(int index){
    // este índice é válido?
    if((index < 0) || (index > (pessoas.length - 1))){
      System.out.println("\nÍndice inválido");
    }
    else{
      Pessoa p = pessoas[index];
      if(p == null){
        System.out.println("\nNão existe pessoa nesse índice ainda.");
      }
      else{
        System.out.println("\nNome: " + p.getNome());
        System.out.println("Idade: " + p.getIdade());
        System.out.println("Altura: " + p.getAltura());
      }
    }
  }  
}

Código para a classe Principal (Principal.java):

package arquivodecodigos;

import java.util.Scanner;

public class Principal {
  // para fazer a leitura da entrada do usuário
  static Scanner entrada = new Scanner(System.in);
  
  public static void main(String[] args) {
    // cria uma nova Agenda
    Agenda agenda = new Agenda(10);
    String nome; // nome da pessoa
    int idade; // idade da pessoa
    double altura; // altura da pessoa
    
    // cria o menu de opções
    while(true){
      System.out.println("\n1. Nova Pessoa");
      System.out.println("2. Excluir Pessoa");
      System.out.println("3. Buscar Pessoa");
      System.out.println("4. Imprimir Agenda");
      System.out.println("5. Imprimir Pessoa (Índice)");
      System.out.println("6. Sair");
      System.out.print("Sua opção: ");
      int opcao = Integer.parseInt(entrada.nextLine());
      
      switch(opcao){
        case 1:
          System.out.print("\nInforme o nome: ");
          nome = entrada.nextLine();
          System.out.print("Informe a idade: ");
          idade = Integer.parseInt(entrada.nextLine());
          System.out.print("Informe a altura (use ponto em vez de vírgula): ");
          altura = Double.parseDouble(entrada.nextLine());
          agenda.armazenaPessoa(nome, idade, altura);
          break;
          
        case 2:
          System.out.print("\nInforme o nome a ser removido: ");
          nome = entrada.nextLine();
          agenda.removePessoa(nome);
          break;  
        
        case 3:
          System.out.print("\nInforme o nome a ser pesquisado: ");
          nome = entrada.nextLine();
          int indice = agenda.buscaPessoa(nome);
          if(indice < 0){
            System.out.println("\nA pessoa não foi encontrada");
          }
          else{
            System.out.println("\nA pessoa foi encontrada no índice: "
              + indice);
          }
          
          break;  
        
        case 4:
          agenda.imprimeAgenda();
          break;
        
        case 5:
          System.out.print("\nInforme o índice desejado: ");
          int index = Integer.parseInt(entrada.nextLine());
          agenda.imprimePessoa(index);
          break;  
          
        case 6:
          System.exit(0);
          
        default:
          System.out.println("\nOpção inválida\n");
          break;
      }
    }
  }
}



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

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

Quantidade de visualizações: 7162 vezes
O último elemento de um contêiner STL vector pode ser acessado por meio da função back(). Como esta função é sobrecarregada, temos duas opções:

reference back();
const_reference back() const;  
A primeira versão é do tipo T&, ou seja, retorna uma referência ao último 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 último elemento do vector
  // Note que back() pode ser usada dos dois lados
  // de uma operação de atribuição
  int valor = valores.back();
  cout << "Último elemento: " << valor << endl;

  // vamos alterar o valor do último elemento
  valores.back() = 102;

  // vamos testar o resultado
  cout << "Último elemento: " << valores.back() << endl;

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

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

Último elemento: 87
Último elemento: 102

Note que aqui nós usamos:

int valor = valores.back();

para guardar o valor do último elemento na variável valor. Poderíamos também usar:

int& valor = valores.back();
valor = 102;

Agora valor é uma referência direta ao último elemento do vector. Desta forma, qualquer alteração no valor da variável valor afetará também o último elemento do vector.

Observe agora o seguinte trecho de código:

int valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último elemento: " << valor << endl;

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

int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último 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 back(), a saber const T&, que retorna uma referência constante. Veja:

const int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
valor = 300; // esta linha não compila
cout << "Último elemento: " << valor << endl;

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

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