C ::: Desafios e Lista de Exercícios Resolvidos ::: Data e Hora |
Exercícios Resolvidos de C - Escreva um programa C que peça para o usuário informar um ano e informe o dia da semana que o ano começou (domingo, segunda-feiraQuantidade de visualizações: 208 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um ano e então mostre em qual dia da semana o ano começou, por exemplo, domingo, segunda-feira, terça-feira, quarta-feira, etc. Sua saída deverá ser parecida com: Informe um ano: 2022 O ano informado começou em um(a) Sábado Informe um ano: 2023 O ano informado começou em um(a) Domingo Informe um ano: 2024 O ano informado começou em um(a) Segunda-feira Informe um ano: 2025 O ano informado começou em um(a) Quarta-feira Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]) { // variáveis usadas na resolução do problema char dias_semana[][20] = {"Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"}; int ano, dia_inicial; // vamos pedir para o usuário informar o ano printf("Informe um ano: "); scanf("%d", &ano); // vamos calcular o número equivalente ao dia da semana que o // ano iniciou: 0:Domingo, 1:Segunda-feira, 2:Terça-feira, etc // note que as divisões abaixo são divisões por inteiro, ou seja, // sem a parte fracionária dia_inicial = (ano + (ano - 1) / 4) - ((ano - 1) / 100) + ((ano - 1) / 400); dia_inicial = dia_inicial % 7; // e mostramos o resultado printf("O ano informado começou em um(a) %s", dias_semana[dia_inicial]); printf("\n\n"); system("PAUSE"); return 0; } |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se ao menos um elemento de um array satisfaz uma condição em JavaScript usando a função some()Quantidade de visualizações: 2144 vezes |
O método some(), adicionado à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5) pode ser usado quando queremos verificar se um ou mais elementos de um vetor satisfaz uma determinada condição. Este método nos permite fornecer uma função de callback que será chamada para cada um dos elementos do vetor. E o retorno do método some() é um valor true se ao menos um dos elementos passar no teste e false em caso contrário. Tão logo o valor true seja satisfeito, a função some() encerra sua execução imediatamente. Veja um exemplo no qual testamos se AO MENOS um elemento do array é maior que 70: <script type="text/javascript"> function testar(valor, indice, vetor){ if(valor > 70){ return true; } } var valores = new Array(21, 50, 30, 71, 12, 3); // vamos verificar se AO MENOS um valor é maior que 70 var res = valores.some(testar); window.alert("Alguns valores passaram no teste: " + res); </script> Aqui o resultado será true, pois o valor 71 passou no teste. É importante observar que, assim que a função de callback retorna true pela primeira vez, o método some() já abandona sua execução. Uma função passada para o método some() pode conter os seguintes argumentos (nessa mesma ordem): a) O valor do item; b) O índice do item (opcional); c) O vetor a partir do qual o método some() está sendo chamado (opcional). Como última observação, o método some() não modifica o array original. |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: Passos Iniciais |
Como usar a biblioteca Pandas do Python em seus projetos de Data Science e Machine LearningQuantidade de visualizações: 3101 vezes |
A biblioteca Pandas foi criada por Wes McKinney em 2008 e, desde então, tem sido adotada em projetos que envolvem Big Data, Data Science, Data Mining, Machine Learning e até mesmo aplicações gerais de Inteligência Artificial (IA). Esta biblioteca nos oferece funções para o trabalho com datasets (conjunto de dados). Tais funções permitem analisar, limpar, explorar e manipular dados. Isso faz todo sentido, visto que o nome Pandas é uma referência à "Panel Data" e "Python Data Analysis". Já tenho o Pandas disponível na minha instalação do Python? Antes de iniciar qualquer projeto que envolva a bilioteca Pandas, é importante verificar se a mesma está disponível em sua instalação do Python. Isso pode ser de várias formas. Mostrarei como obter a lista de módulos usando a opção "list" do pip. Basta abrir uma janela de terminal e disparar o seguinte comando: C:\Users\Osmar>pip list Você terá um resultado parecido com: Package Version ----------------- ------- astroid 2.4.2 colorama 0.4.4 isort 5.6.4 lazy-object-proxy 1.4.3 mccabe 0.6.1 numpy 1.19.4 pandas 1.1.5 Pillow 8.0.1 pip 20.2.3 pylint 2.6.0 python-dateutil 2.8.1 pytz 2020.4 setuptools 49.2.1 six 1.15.0 toml 0.10.2 wrapt 1.12.1 wxPython 4.1.1 Uma outra forma é tentando importar o módulo pandas. Veja: # importamos a bibliteca Pandas import pandas as pd def main(): # vamos mostrar a versão da biblioteca Pandas versao = pd.__version__ print("A versão do Pandas é:", versao) if __name__== "__main__": main() Se você tiver o Pandas instalado, o resultado desse código será algo como: A versão do Pandas é: 1.1.5 Se você não tiver a biblioteca Pandas instalada, a seguinte mensagem de erro será exibida: Exception has occurred: ModuleNotFoundError No module named 'pandas' File "C:\estudos_python\estudos.py", line 2, in <module> import pandas as pd Não tenho o Pandas ainda. O que faço? Abra uma janela de terminal e dispare o comando abaixo: C:\Users\Osmar>pip install pandas Depois de alguns segundos você verá o seguinte resultado: Collecting pandas Downloading pandas-1.1.5-cp39-cp39-win_amd64.whl (8.9 MB) |-| 8.9 MB 1.7 MB/s Collecting numpy>=1.15.4 Downloading numpy-1.19.4-cp39-cp39-win_amd64.whl (13.0 MB) |-| 13.0 MB 3.3 MB/s Collecting pytz>=2017.2 Downloading pytz-2020.4-py2.py3-none-any.whl (509 kB) |-| 509 kB 6.4 MB/s Collecting python-dateutil>=2.7.3 Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB) |-| 227 kB 3.2 MB/s Requirement already satisfied: six>=1.5 in c:\users\osmar\appdata\roaming\python\python39\site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0) Installing collected packages: numpy, pytz, python-dateutil, pandas Successfully installed numpy-1.19.4 pandas-1.1.5 python-dateutil-2.8.1 pytz-2020.4 WARNING: You are using pip version 20.2.3; however, version 20.3.1 is available. You should consider upgrading via the 'c:\python_3_9_1\python.exe -m pip install --upgrade pip' command. Obteve resultado parecido? Pronto! Você já pode começar a usar a biblioteca Pandas em seus aplicações Python. |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para leitura em Ruby sem a necessidade de métodos acessores usando a função attr_readerQuantidade de visualizações: 6960 vezes |
Por padrão, variáveis de instância em Ruby só podem ser acessadas usando métodos acessores, ou seja, uma variável de instância @nome deve ser lida usando um método obter_nome. É possível dispensar o uso de métodos acessores empregando o método attr_reader nos nomes das variáveis que poderão ser acessadas, para leitura, é claro. Veja um exemplo: # Definição da classe Cliente class Cliente attr_reader :nome, :idade def initialize(nome, idade) @nome = nome @idade = idade end def obter_nome @nome end def obter_idade @idade end end # Cria uma instância da classe Cliente e inicializa as # variáveis de instância @nome e @idade cliente = Cliente.new("Osmar J. Silva", 35) # Acessa as variáveis de instância sem a necessidade de # métodos acessórios puts cliente.nome puts cliente.idade Sem o uso do método attr_reader, a linha: puts cliente.nome causaria o seguinte erro: teste.rb:25: undefined method `nome' for #<Cliente:0x27f540c @nome="Osmar J. S ilva", @idade=35> (NoMethodError) |
GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Equações Lineares |
Exercício Resolvido de Octave - Sistema de Equações Lineares - Como resolver um sistema de equações lineares em OctaveQuantidade de visualizações: 473 vezes |
Pergunta/Tarefa: Este exercício de Octave mostra como resolver uma equação linear. 1) Dado o seguinte sistema de equações lineares: ![]() use o GNU Octave para encontrar os valores das incógnitas x, y e z. Sua saída deverá ser parecida com: x = 6 2 7 Para resolver esse sistema nós temos que definir três matrizes para representarmos as equações lineares no formato de matriz: Ax = b onde A, x, e b são matrizes. Dessa forma, para obter o conjunto de soluções, ou seja, as incógnitas, nós temos que escrever as equações lineares na forma: x = A \ b Veja agora o código Octave para a resolução (aqui eu fiz em modo interativo): >> % vamos criar a matriz A [ENTER] >> A = [4 3 2; 3 7 4; 8 9 5]; [ENTER] >> % agora vamos criar a matriz b [ENTER] >> b = [44; 60; 101]; [ENTER] >> % obtemos o conjunto de solucoes [ENTER] >> x = A \ b [ENTER] |
C# ::: Windows Forms ::: CheckBox |
Como testar se uma CheckBox do C# Windows Forms está marcada ou desmarcadaQuantidade de visualizações: 22309 vezes |
Em algumas situações precisamos verificar se uma CheckBox do C# Windows Forms está marcada ou desmarcada. Para isso só precisamos acessar sua propriedade Checked. Esta propriedade retorna um valor true se a CheckBox estiver marcada e false em caso contrário. Veja o trecho de código abaixo (estou assumindo que você colocou um Button e uma CheckBox no seu formulário): private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(checkBox1.Checked) MessageBox.Show("A CheckBox está marcada"); else MessageBox.Show("A CheckBox está desmarcada"); } Se você quiser inverter o teste, ou seja, verificar primeiro se a CheckBox está desmarcada, poderá fazer algo assim: private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(!checkBox1.Checked) MessageBox.Show("A CheckBox está desmarcada"); else MessageBox.Show("A CheckBox está marcada"); } |
Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do ano em Ruby usando um objeto da classe Time e a função ydayQuantidade de visualizações: 6856 vezes |
Em algumas situações precisamos obter uma representação numérica do dia do ano na linguagem Ruby. Para isso podemos usar o método yday da classe Time. Este método retorna um número inteiro na faixa 1..366. Veja como usá-lo no trecho de código abaixo:# constrói um objeto Time com a data e hora atual agora = Time.now # obtém o dia do ano dia_ano = agora.yday # exibe o resultado puts "O dia do ano é: " + dia_ano.to_s Ao executar este código Ruby nós teremos o seguinte resultado: O dia do ano é: 80 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamenteQuantidade de visualizações: 2448 vezes |
Pergunta/Tarefa: Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três. A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma: O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente. 1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B; 2) Mova o disco n de A para B; 3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A. Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package arquivodecodigos; import java.util.Scanner; public class Estudos { static int quantChamadasRecursivas = 0; // registra as chamadas recursivas public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de discos a serem usados na simulação System.out.print("Informe a quantidade de discos: "); int discos = Integer.parseInt(entrada.nextLine()); // resolve o problema recusivamente System.out.println("\nOs movimentos para resolver o problema foram:\n"); moverDiscos(discos, 'A', 'B', 'C'); System.out.println("\nForam feitas " + quantChamadasRecursivas + " chamadas recursivas"); System.out.println(); } // método recursivo que resolve o problema da Torre de Hanói public static void moverDiscos(int n, char daTorre, char paraTorre, char torreAux) { quantChamadasRecursivas++; // registra mais uma chamada recursiva if(n == 1){ // condição de parada System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); } else{ // faz mais uma chamada recursiva moverDiscos(n - 1, daTorre, torreAux, paraTorre); System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); moverDiscos(n - 1, torreAux, paraTorre, daTorre); } } } |
JavaScript ::: Dicas & Truques ::: Set (Conjunto) |
Como converter um Set em um Array JavaScript usando a função Array.from()Quantidade de visualizações: 1179 vezes |
Em algumas situações nós gostaríamos de tratar um objeto Set da linguagem JavaScript como se ele fosse um Array, ou seja, um vetor (matriz de apenas uma linha e várias colunas). Para estes casos nós podemos usar o método Array.from(), adicionado à linguagem JavaScript na revisão ECMAScript 2015 (ES6 ou ECMAScript 6). Este método recebe vários objetos, entre eles Map e Set, e retorna um array. Assim, veja um trecho de código no qual criamos um Set com três elementos, usamos o método Array.from() para obter um Array a partir dele e, em seguida, percorremos e exibimos os elementos do array. Eis o código completo para o exemplo: <!doctype html> <html> <head> <title>O objeto Set do JavaScript</title> </head> <body> <script type="text/javascript"> // vamos criar um novo conjunto contendo // 3 linguagens de programação var linguagens = new Set(["Java", "PHP", "Delphi"]); // agora vamos converter este Set em um Array var vetor = Array.from(linguagens); // vamos percorrer os elementos do vetor for(var i = 0; i < vetor.length; i++){ document.writeln(vetor[i] + "<br>"); } </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: Java PHP Delphi |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string contém apenas letras em Python usando a função isalpha()Quantidade de visualizações: 14996 vezes |
Este exemplo mostra como podemos a função isalpha() do Python para verificar se uma string contém apenas letras, ou seja, nada de números, espaços nem pontuação. Se algum número, espaço, um caractere especial ou pontuação estiver contido, a função retorna False.def main(): # uma palavra contendo apenas letras palavra = "Arquivo" # a palavra contém apenas letras? if palavra.isalpha(): print("A string contém apenas letras") else: print("A string não contém somente letras") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: A string contém apenas letras. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from() |
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 |
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 |