Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Python ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço for do Python - Apostila Python para iniciantes - O laço for

Quantidade de visualizações: 12970 vezes
O laço for (laço para) em Python é um pouco diferente daquele encontrado em Java, C ou C++. Na verdade, o laço for da Python está mais para o laço foreach do C# e o novo laço for do Java 1.5.

Em Python, o laço for funciona com sequencias (range), ou seja, a cada iteração do laço, um elemento da sequencia é retornado. Vamos ver isso mais de perto. Veja o exemplo a seguir:

def main():
  for i in range(1, 11):
    print(i)   
 
if __name__== "__main__":
  main()

Este trecho de código exibirá os números de 1 até 10. Veja que o último limite não é incluído na contagem. Este exemplo pode também ser escrito assim:

def main():
  for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    print(i)   
 
if __name__== "__main__":
  main()



VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

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

Quantidade de visualizações: 725 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 VB.NET 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 VB.NET console:

Imports System

Module Program
  ' função principal do programa VB.NET
  Sub Main(args As String())
    ' vamos solicitar que o usuário informe um ano
    Console.Write("Informe o ano: ")
    Dim ano As Integer = Int32.Parse(Console.ReadLine())

    ' vamos verificar se o ano informado é bissexto
    If (((ano Mod 4 = 0) And (ano Mod 100 <> 0)) Or (ano Mod 400 = 0)) Then
      Console.WriteLine("O ano informado é bissexto.")
    Else
      Console.WriteLine("O ano informado não é bissexto.")
    End If

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub

End Module



Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como adicionar itens ao final de um array em Ruby usando a função push()

Quantidade de visualizações: 7971 vezes
Em algumas situações nós precisamos adicionar novos elementos ao final de um array em Ruby. Para isso nós podemos usar a função push() do objeto Array.

Veja como isso pode ser feito no código abaixo:

# vamos criar um array de nomes
nomes = []

# Lê entrada até que o valor -1 seja
# fornecido
loop do
  print "Digite um nome (-1 para sair): "
  nome = gets.chomp
  
  # vamos adicionar este nome no final do
  # array
  if nome != "-1"
    nomes.push(nome) # adiciona o nome ao array
  end
  
  # vamos sair do laço se o valor for "-1"
  if nome == "-1"
    break
  end
end

# Exibe todos os valores do array
puts "\nOs nomes fornecidos foram:"
nomes.each do | nome |
  puts nome
end

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

Digite um nome (-1 para sair): MARCELO
Digite um nome (-1 para sair): JOANA
Digite um nome (-1 para sair): OSMAR
Digite um nome (-1 para sair): JAQUELINE
Digite um nome (-1 para sair): -1

Os nomes fornecidos foram:
MARCELO
JOANA
OSMAR
JAQUELINE


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Ler a idade e o peso de 10 pessoas e mostrar a quantidade de pessoas com mais de 80 quilos e a média das idades

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

Escreva um programa Java que receba a idade (como int) e o peso (como double) de 10 pessoas. Em seguida calcule e mostre:

1) A quantidade de pessoas com mais de 80 quilos;
2) A média das idades das pessoas.

Sua saída deve ser parecida com:

Informe a idade da 1.a pessoa: 95
Informe o peso da 1.a pessoa: 83

Informe a idade da 2.a pessoa: 45
Informe o peso da 2.a pessoa: 115

Informe a idade da 3.a pessoa: 83
Informe o peso da 3.a pessoa: 76

Informe a idade da 4.a pessoa: 19
Informe o peso da 4.a pessoa: 79

Informe a idade da 5.a pessoa: 40
Informe o peso da 5.a pessoa: 93

Quantidade de pessoas com mais de 80 quilos: 3
Média das idades das pessoas: 56.4
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    int quant_acima_80_kg = 0; // quantidade de pessoas acima de 80 quilos
    int soma_idades = 0; // soma das idades para depois obter a média
    
    // vamos ler os dados das 5 pessoas
    for(int i = 0; i < 5; i++){
      System.out.print("Informe a idade da " + (i + 1) + ".a pessoa: ");
      int idade = Integer.parseInt(entrada.nextLine());
      System.out.print("Informe o peso da " + (i + 1) + ".a pessoa: ");
      double peso = Double.parseDouble(entrada.nextLine());
      
      // vamos somar mais esta idade
      soma_idades = soma_idades + idade;
      
      // esta pessoa possui mais de 80 quilos?
      if(peso > 80){
        // aumenta o contador de pessoas acima de 80 quilos
        quant_acima_80_kg++;  
      }
      
      // adiciona uma quebra de linha
      System.out.println();
    }
    
    // e agora mostramos o resultado
    System.out.println("Quantidade de pessoas com mais de 80 quilos: " + 
      quant_acima_80_kg);
    System.out.println("Média das idades das pessoas: " + (soma_idades / 5.0));
  }
}



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

Programação orientada a objetos em Python: Classes, objetos, métodos e variáveis de instância - Atualizado

Quantidade de visualizações: 14194 vezes
A melhor forma de entender a programação orientada a objetos (OOP) é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro.

Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria.

Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método. O método descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em Python, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante.

Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela.

Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas.

Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe.

Veremos agora como definir uma classe em Python e usar um objeto desta classe em um programa. Veja o trecho de código abaixo:

# Definição da classe Cliente 
class Cliente:
  "Minha primeira classe Python"
  # define a propriedade nome
  _nome = None
 
  # um método que permite definir o nome do cliente
  def definir_nome(self, nome):
    self._nome = nome
 
  # um método que permite obter o nome do cliente
  def obter_nome(self):
    return self._nome
# Fim da definição da classe Cliente
 
def main():
  # Cria uma instância da classe Cliente
  cliente = Cliente()
 
  # Define o nome do cliente
  cliente.definir_nome("Osmar J. Silva")
 
  # Obtém o nome do cliente
  print(cliente.obter_nome())

if __name__== "__main__":
  main()

Em mais dicas dessa seção você aprenderá mais sobre a programação orientada a objeto em Python.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporário

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

Dado o vetor:

// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Escreva um método Java que rotaciona este vetor para a direita um determinado número de casas. A função deverá receber o array e um inteiro indicando o número de rotações, ou seja, o número de vezes que os elementos do vetor serão movimentados para a direita.

Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente.

Sua saída deverá ser parecida com:

Array na ordem original:
1 6 9 3 7 8 5 2 

Rotação do vetor no passo 1 do primeiro laço:
8 0 0 0 0 0 0 0 

Rotação do vetor no passo 2 do primeiro laço:
8 5 0 0 0 0 0 0 

Rotação do vetor no passo 3 do primeiro laço:
8 5 2 0 0 0 0 0 

Rotação do vetor no passo 1 do segundo laço:
8 5 2 1 0 0 0 0 

Rotação do vetor no passo 2 do segundo laço:
8 5 2 1 6 0 0 0 

Rotação do vetor no passo 3 do segundo laço:
8 5 2 1 6 9 0 0 

Rotação do vetor no passo 4 do segundo laço:
8 5 2 1 6 9 3 0 

Rotação do vetor no passo 5 do segundo laço:
8 5 2 1 6 9 3 7 

Array depois de rotacionar 3 vezes:
8 5 2 1 6 9 3 7
Resposta/Solução:

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

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um vetor de inteiros
    int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
    
    // mostramos o array na ordem original
    System.out.println("Array na ordem original:");
    exibirVetor(valores);
    
    // vamos rotacionar o array 3 casas para a direita
    valores = rotacionarArray(valores, 3);
    
    // e mostramos o resultado
    System.out.println("Array depois de rotacionar 3 vezes:");
    exibirVetor(valores);
  }
  
  // método usado para exibir o array
  public static void exibirVetor(int []vetor){
    // percorremos cada elemento do vetor
    for (int i = 0; i < vetor.length; i++) {
      System.out.print(vetor[i] + " ");
    }
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e o rotaciona um
  // determinado número de vezes
  public static int[] rotacionarArray(int[] vetor, int n) {
    // vamos obter a quantidade de elementos no vetor    
    int quant = vetor.length;
    
    // o número de rotações é maior que a quantidade de
    // elementos no vetor? Se for nós ajustamos o número
    // de rotações usando o operador de módulo
    if(n > quant){
      n = n % quant;
    }
    
    // criamos um vetor temporário
    int[] resultado = new int[quant];
 
    // o primeiro laço movimenta os elementos a partir
    // do valor de n
    for(int i = 0; i < n; i++){
      resultado[i] = vetor[quant - n + i];
      // mostramos o progresso
      System.out.println("Rotação do vetor no passo " + (i + 1) + 
        " do primeiro laço:");
      exibirVetor(resultado);
    }
 
    // ajustamos o índice para o primeiro elemento do vetor
    int indice = 0;
    for(int i = n; i < quant; i++){
      resultado[i] = vetor[indice];
      // mostramos o progresso
      System.out.println("Rotação do vetor no passo " + (indice + 1) + 
        " do segundo laço:");
      exibirVetor(resultado);
      indice++; // incrementa o índice
    }
    
    // retorna o vetor rotacionado
    return resultado;
  }
}

A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação.


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

Como testar se um número é par ou ímpar em C#

Quantidade de visualizações: 3201 vezes
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em C# usando-se o operador de módulo %, que retorna o resto de uma divisão entre números inteiros. Veja:

static void Main(string[] args){
  Console.Write("Informe um valor inteiro: ");
  int num = int.Parse(Console.ReadLine());

  if(num % 2 == 0){
    Console.WriteLine("Você informou um numero par");
  }
  else{
    Console.WriteLine("Você informou um numero impar");
  } 

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

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

Informe um valor inteiro: 8
Você informou um numero par


Java ::: Dicas & Truques ::: Strings e Caracteres

Como remover quebras de linhas de uma string - Como usar o método replaceAll() da classe String para remover quebras de linha de um texto - Revisado

Quantidade de visualizações: 52 vezes
Nesta dica eu mostro como podemos usar o método replaceAll() da classe String para remover quebras de linha de uma palavra, frase ou texto. Veja:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String original = "Programar em Java\n é mais fácil do\n que você pensa."; 
    
    // vamos exibir a String original
    System.out.println("Original: " + original);
    
    // agora vamos remover as quebras de linha
    String nova = original.replaceAll("[\\n]", "");
    
    // vamos exibir a String sem as quebras de linha
    System.out.println("Sem quebras de linha: " + nova);
    
    System.exit(0);
  }
} 

Este código exibirá o seguinte resultado:

Original: Programar em Java
é mais fácil do
que você pensa.
Sem quebras de linha: Programar em Java é mais fácil do que você pensa.

Esta dica foi revisada e atualizada para o Java 8.


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

Como calcular o seno de um número ou ângulo usando a função sin() da linguagem R

Quantidade de visualizações: 1776 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem R. Esta função recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

> sin(0) [ENTER]
[1] 0
> sin(1) [ENTER]
[1] 0.841471
> sin(2) [ENTER]
[1] 0.9092974
> 


Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




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 Armstrong

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

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;
}


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


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


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