![]() |
|
||||
![]() 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 forQuantidade 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ãoQuantidade 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. 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 idadesQuantidade 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 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 - AtualizadoQuantidade 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árioQuantidade 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}; 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 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 - RevisadoQuantidade 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 RQuantidade 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 ArmstrongQuantidade 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 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; } |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em Java GNU Octave - Como calcular o cosseno de um ângulo em GNU Octave usando a função cos() - Calculadora de cosseno em Octave |
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 |