![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Escreva um programa C para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 883 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; int i; // para o controle do laço int j; // variável auxiliar int temp; // variável temporária setlocale(LC_ALL,""); // para acentos do português // vamos mostrar o vetor na ordem original printf("Vetor na ordem original:\n"); for(i = 0; i < 8; i++){ printf("%d ", valores[i]); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for(i = 0; i < 8; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado printf("\n\nVetor com os zeros deslocados para o final:\n"); for(i = 0; i < 8; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("pause"); return 0; } Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
GNU Octave ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em GNU Octave dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1104 vezes |
Nesta dica mostrarei como é possível usar a linguagem GNU Octave para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código GNU Octave (um script do GNU Octave). Veja: a <- 20 # medida do cateto oposto b <- 30 # medida do cateto adjascente # agora vamos calcular o comprimento da hipotenusa c <- sqrt(power(a, 2) + power(b, 2)) # e mostramos o resultado fprintf("O comprimento da hipotenusa é: %f\n\n", c) Ao executar este código GNU Octave nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.056000 Como podemos ver, o resultado retornado com o código GNU Octave confere com os valores da imagem apresentada. |
Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em Delphi dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1778 vezes |
Nesta dica mostrarei como é possível usar a linguagem Delphi para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras), tudo que temos a fazer a converter esta fórmula para código Delphi. Veja: procedure TForm2.Button1Click(Sender: TObject); var a, b, c: Real; begin a := 20; // medida do cateto oposto b := 30; // medida do cateto adjascente // agora vamos calcular o comprimento da hipotenusa c := sqrt(sqr(a) + sqr(b)); // e mostramos o resultado Edit1.Text := 'A medida da hipotenusa é: ' + FloatToStr(c); end; Perceba que o cálculo foi efetuado a partir do evento Click de um botão Button1 e o resultado foi exibido na propriedade Text de uma caixa de texto Edit1. Ao executar este código Delphi nós teremos o seguinte resultado: A medida da hipotenusa é: 36,0555127546399 Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada. |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como pesquisar um valor em um vetor C# e retornar seu índice usando a função IndexOf() da classe ArrayQuantidade de visualizações: 14073 vezes |
Nesta dica mostrarei como pesquisar um valor em um array C# e retornar o índice de sua primeira ocorrência usando o método IndexOf() da classe Array. Este método recebe uma referência ao array que queremos pesquisar e o valor a ser pesquisado. Neste exemplo queremos pesquisar um valor inteiro. Veja o código C# completo: using System; namespace Estudos { class Program { static void Main(string[] args) { // cria e inicializa um array de inteiros int[] valores = { 14, 69, 21, 30, 17, 23, 14 }; Console.Write("Informe o valor a ser pesquisado: "); string valor = Console.ReadLine(); int pos = Array.IndexOf(valores, Convert.ToInt32(valor)); if (pos > -1) { Console.WriteLine("O valor pesquisado foi encontrado no índice: " + pos); } else { Console.WriteLine("O valor pesquisado não foi encontrado."); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Informe o valor a ser pesquisado: 17 O valor pesquisado foi encontrado no índice: 4 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercício Resolvido de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash tableQuantidade de visualizações: 2613 vezes |
Exercícios Resolvidos de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table Pergunta/Tarefa: Dadas duas palavras p1 e p2, escreva um código Python que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez. Para esta solução você deverá, obrigatoriamente, usar um dicionário Python, ou seja, um objeto dict. O objetivo é construir duas tabelas de frequências dos caracteres de cada palavra. Dicionários em Python são similares às tabelas hash (hash tables) em outras linguagens de programação. Seu programa deverá exibir a seguinte saída: ![]() Resposta/Solução: Veja a resolução com código comentado em Python: # método que recebe duas palavras e retorna # verdadeiro se uma palavra for anagrama da # outra def anagramas(palavra1, palavra2): # o primeiro passo é verificar se os comprimentos das duas # palavras são iguais if(len(palavra1) != len(palavra2)): return False # agora criamos dois dictionaries para as frequencias de # cada uma das palavras freq_p1 = {} freq_p2 = {} # agora registramos as frequências de letras na primeira # palavra for letra in palavra1: # a letra já está no dicionário? if letra in freq_p1: freq_p1[letra] += 1 # aumenta a frequêcia desta letra else: freq_p1[letra] = 1 # ainda não estava no dicionário # agora registramos as frequências de letras na segunda # palavra for letra in palavra2: # a letra já está no dicionário? if letra in freq_p2: freq_p2[letra] += 1 # aumenta a frequêcia desta letra else: freq_p2[letra] = 1 # ainda não estava no dicionário # registradas as frequências de letras das duas palavras, # chegou a hora de compararmos os dois dicionários for chave in freq_p1: # esta chave não está no segundo dicionário ou # possui valores diferentes? if chave not in freq_p2 or freq_p1[chave] != freq_p2[chave]: return False # se chegou até aqui então uma palavra é anagrama da outra return True def main(): # vamos ler duas palavras e verificar se uma é anagrama da outra palavra1 = input("Informe a primeira palavra: ") palavra2 = input("Informe a segunda palavra: ") # vamos chamar o método que faz a verificação if(anagramas(palavra1, palavra2)): print("As duas palavras são anagramas") else: print("As duas palavras não são anagramas") if __name__== "__main__": main() |
Java ::: Pacote java.awt ::: Graphics |
Como desenhar texto na superfície de uma JLabel do Java Swing usando o método drawString() da classe GraphicsQuantidade de visualizações: 11838 vezes |
A classe Graphics possui um método chamado drawString() que é usado para desenhar uma string na superfície de um componente. Veja a assinatura deste método:public abstract void drawString(String str, int x,int y) Como podemos ver, só precisamos fornecer a string a ser desenhada, a coordenada x e a coordenada y. Estas coordenadas são obtidas a partir do canto superior esquerdo do componente no qual desenharemos. O trecho de código abaixo mostra como desenhar a string "Arquivo de Códigos" em um JLabel: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JLabel label; public Estudos() { super("Desenhando em um JLabel"); Container c = getContentPane(); c.setLayout(new BorderLayout()); // Cria um JLabel label = new JLabel(); c.add(label, BorderLayout.CENTER); // Cria um botão JButton btn = new JButton("Desenhar uma string"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // Desenha uma string no JLabel Graphics graphics = label.getGraphics(); graphics.drawString("Arquivo de Códigos", 20, 50); } } ); // Adiciona o botão à janela c.add(btn, BorderLayout.SOUTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Um programa que calcule e mostre a tabuada de multiplicação de um número digitado pelo usuário (entre 1 e 10)Quantidade de visualizações: 6721 vezes |
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para calcular a tabuada de multiplicação para um número digitado pelo usuário. Este número deve estar entre 1 e 10 (inclusive). Sua saída deve ser parecida com: Informe um valor entre 1 e 10: 8 A tabuada do número 8 é: 8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64 8 X 9 = 72 8 X 10 = 80 Veja a resolução comentada deste exercício usando Java console: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar que o usuário informe um inteiro entre 1 e 10 System.out.print("Informe um valor entre 1 e 10: "); int numero = Integer.parseInt(entrada.nextLine()); // vamos verificar se o valor está na faixa desejada if((numero < 1) || (numero > 10)){ System.out.println("O número deve ser entre 1 e 10"); } else{ // o número é válido....vamos exibir a tabuada System.out.println("\nA tabuada do número " + numero + " é:\n"); for(int i = 1; i <= 10; i++){ System.out.println(numero + " X " + i + " = " + (numero * i)); } } System.out.println("\n"); } } |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todos os espaços em uma string pelo caractere de underline em C# usando o método Replace() da classe StringQuantidade de visualizações: 8316 vezes |
Nesta dica de C# eu trago um trecho de código que mostra como substituir todos os espaços em uma string pelo caractere de sublinhado (underline). Para a realização desta tarefa nós vamos usar o método Replace() da classe String da linguagem C#. Veja o código completo para o exemplo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto muito de C#"; Console.WriteLine("Frase original: " + frase); // substitui os espaços por underline frase = frase.Replace(" ", "_"); Console.WriteLine("Depois da substituição: " + frase); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Frase original: Gosto muito de C# Depois da substituição: Gosto_muito_de_C# |
Python ::: Dicas & Truques ::: Data e Hora |
Como construir uma data em Python usando o construtor da classe datetimeQuantidade de visualizações: 6979 vezes |
Nesta dica mostrarei como podemos usar o construtor da classe datetime do Python para construir e retornar uma nova data. Note que estou fornecendo a data para construtor da classe datetime usando o ano, o mês e o dia. Veja o código Python completo para o exemplo: from datetime import datetime # função principal do programa def main(): # vamos definir o dia, mês e ano dia = 20 mes = 4 ano = 1980 # Constrói um datetime (ano, mês, dia) data = datetime(ano, mes, dia) # Exibe o conteúdo do datetime print("A data construída foi {0}".format(data)) # Obtém o ano da data recém-criada print("O ano da data construída foi: {0}".format(data.year)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: A data construída foi 1980-04-20 00:00:00 O ano da data construída foi: 1980 |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto ArrayQuantidade de visualizações: 5041 vezes |
Em várias ocasições temos códigos JavaScript envolvendo arrays (vetores, matrizes) e gostaríamos de eliminar os valores duplicados, ou seja, retornar um novo vetor sem elementos repetidos. Para isso podemos usar os métodos filter() e indexOf(). Como pode ser visto em dicas nesta mesma seção, o método filter() é usado para retornar apenas os elementos do vetor que se encaixem em uma determinada condição. O método indexOf(), por sua vez, retorna o índice da primeira ocorrência do elemento no vetor. Assim, a combinação desses dois métodos é perfeita para esta situação, ainda que você consiga fazer de outras formas. Veja o trecho de código a seguir: <script type="text/javascript"> function removerDuplicados(valor, indice, vetor){ // o índice desse elemento é o primeiro encontrado // no vetor? if(indice == vetor.indexOf(valor)){ return true; } return false; } var valores = new Array(6, 6, 1, 7, 3, 7, 1, 7, 4, 3, 5); // vamos obter um vetor sem repetições var novoVetor = valores.filter(removerDuplicados); // vamos mostrar o resultado window.alert(novoVetor); </script> Execute este código e veja que apenas os valores únicos serão retornados. Note agora como o mesmo código pode ser escrito de forma mais reduzida: <script type="text/javascript"> var valores = new Array(8, 8, 1, 7, 3, 7, 1, 7, 8, 3, 5); // vamos obter um vetor sem repetições var novoVetor = valores.filter(function(val, ind, vet){ return vet.indexOf(val) == ind; }); // vamos mostrar o resultado window.alert(novoVetor); </script> |
Nossas 20 dicas & truques de programação mais populares |
C - Como concatenar apenas parte de uma string à outra string usando a função strncat() da linguagem C |
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 |