![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 1940 vezes |
Pergunta/Tarefa: Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura: public static int quantRepeticoes(int indice, int valor, int[] vetor){ // sua implementação aqui } Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Java console: package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar um vetor de 10 inteiros int valores[] = new int[5]; // vamos pedir ao usuário que informe os valores do vetor for(int i = 0; i < valores.length; i++){ System.out.print("Informe o " + (i + 1) + " valor: "); // efetua a leitura do valor informado para a posição atual do vetor valores[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos pedir para informar o valor a ser pesquisado System.out.print("\nInforme o valor a ser pesquisado no vetor: "); int valor = Integer.parseInt(entrada.nextLine()); // e vamos ver a quantidade de repetições int repeticoes = quantRepeticoes(0, valor, valores); System.out.print("O valor informado se repete " + repeticoes + " vezes."); System.out.println("\n"); } // método recursivo que recebe um valor public static int quantRepeticoes(int indice, int valor, int[] vetor){ if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade if(vetor[indice] == valor){ return 1; // mais um repetição foi encontrada } } else{ // dispara mais uma chamada recursiva if(vetor[indice] == valor){ // houve mais uma repetição return 1 + quantRepeticoes(indice + 1, valor, vetor); } else{ return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu } } return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada } } |
JavaScript ::: Web APIs (APIs Web) ::: MediaDevices Interface (Interface MediaDevices) |
Como acessar as mídias do usuário em JavaScript usando a função getUserMedia() da interface MediaDevicesQuantidade de visualizações: 2803 vezes |
O método getUserMedia() da interface MediaDevices nos permite acessar as entradas de mídias do usuários, tais como áudio e vídeo. Isso facilita o desenvolvimento de aplicações muito interessantes, a saber, tirar foto usando a webcam, gravar áudio a partir do microfone, gravar vídeo a partir da webcam, etc. No entanto, antes de usar o MediaStream retornado pelo método getUserMedia(), é importante saber que o usuário deverá dar a sua permissão. Assim, sempre que o método getUserMedia() é chamado, uma janela de informação é mostrada para que o usuário concorde ou não em permitir o acesso às suas mídias. Veja, por exemplo, como solicitar acesso à webcam/câmera do usuário: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>A interface MediaDevices</title> </head> <body> <script type="text/javascript"> async function obterMediaUsuario(){ // vamos obter o stream var stream = null; try{ stream = await navigator.mediaDevices.getUserMedia({video: true}); window.alert("A mídia para vídeo foi obtida com sucesso."); // agora podemos fazer algo com o stream aqui } catch(erro){ window.alert("Houve um erro: " + erro); } } // o browser suporta o MediaDevices? if(navigator.mediaDevices){ obterMediaUsuario() } else{ window.alert("O navegador não suporta o MediaDevices"); } </script> </body> </html> Veja que usamos uma função assíncrona para getUserMedia(). Isso é necessário porque esta função retorna uma Promise que, em caso de sucesso, será convertida em um objeto MediaStream. Se o usuário não permitir o acesso, um erro do tipo NotAllowedError ou NotFoundError será retornado. Alguns navegadores só permitem o uso do método getUserMedia() em ambiente seguro HTTPS ou localhost. Em mais dicas dessa seção você verá como tirar proveito do MediaStream retornado pela função getUserMedia() e também como tratar melhor os erros retornados. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como obter a quantidade de linhas em um controle TDBGrid do Delphi (duas formas)Quantidade de visualizações: 10733 vezes |
A quantidade de linhas em um controle TDBGrid pode ser obtida de duas formas diferentes. A primeira consiste em fazer uma conversão de TDBGrid para TStringGrid e usar a propriedade RowCount. Veja:procedure TForm3.Button3Click(Sender: TObject); var quantLinhas: Integer; begin // vamos obter a quantidade de linhas no DBGrid quantLinhas := TStringGrid(DBGrid1).RowCount; // vamos mostrar o resultado ShowMessage('O DBGrid possui ' + IntToStr(quantLinhas) + ' linhas.'); end; Ao executar este código você verá um mensagem parecida com: "O DBGrid possui 5 linhas." Note que a propriedade RowCount inclui a linha reservada aos títulos das colunas do DBGrid, ou seja, uma linha a mais que a quantidade de registros no controle. A segunda forma de se obter a quantidade de linhas no DBGrid consiste em obter a quantidade de registros no TDataSet no qual o DBGrid está conectado por meio de sua propriedade DataSource. Veja como isso pode ser feito: procedure TForm3.Button3Click(Sender: TObject); var quantLinhas: Integer; begin // vamos obter a quantidade de linhas no DBGrid quantLinhas := DBGrid1.DataSource.DataSet.RecordCount; // vamos mostrar o resultado ShowMessage('O DBGrid possui ' + IntToStr(quantLinhas) + ' linhas.'); end; Veja que aqui nós usamos a propriedade RecordCount para obter a quantidade de registros no DataSet. Note que agora a contagem de linhas não inclui a linha reservada para os títulos das colunas. Esta dica foi escrita e testada no Delphi 2009. |
HTML5 ::: Canvas Element ::: Linhas |
Computação gráfica usando HTML 5 - Como usar o método lineTo() do objeto Canvas do HTML5 para desenhar retasQuantidade de visualizações: 2982 vezes |
O método lineTo() do objeto Canvas do HTML5 nos permite desenhar linhas retas entre um ponto x e um ponto y. Para isso, usamos o método moveTo() para mover a caneta (ou pena) de desenho para um coordenada x, y e a partir deste ponto nós especificamos as coordenadas x, y para a outra extremidade da linha. O trecho de código a seguir desenha uma linha saindo das coordenadas x = 20, y = 20 e chegando até x = 300, y = 150. Veja: contexto.moveTo(20, 20); // move a caneta para x, y contexto.lineTo(300, 150); // coordenadas x, y E aqui estão os códigos HTML e JavaScript para o exemplo completo: <!doctype html> <html> <head> <title>O objeto Canvas do HTML5</title> </head> <body> <Canvas id="canvas1" width="500" height="350"></Canvas> <script type="text/javascript"> // obtemos uma referência ao elemento Canvas var canvas = document.getElementById("canvas1"); // obtemos o contexto de desenho var contexto = canvas.getContext("2d"); contexto.beginPath(); // inicia ou reseta o caminho anterior contexto.moveTo(20, 20); // move a caneta para x, y contexto.lineTo(300, 150); // coordenadas x, y contexto.stroke(); // finaliza o desenho </script> </body> </html> Ao abrir esta página HTML nós teremos o seguinte resultado: ![]() |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como criar a janela principal de uma aplicação Python PyQt usando a classe QMainWindowQuantidade de visualizações: 1519 vezes |
Em geral toda aplicação GUI, ou seja, uma aplicação de interface visual, rodando no Window, Linux, MAC, etc, possui uma janela principal. No PyQt tal janela é criada como uma instância da classe QMainWindow. Veja a posição desta classe na hierarquia de classes do PyQt: QObject, QPaintDevice QWidget QMainWindow Uma janela QMainWindow possui o seu próprio layout, no qual podemos adicionar uma barra de ferramentas QToolBar, um QDockWidget (que serve para controles que "grudam" em lados diferentes da tela), uma barra de menus QMenuBar e uma barra de status QStatusBar. O layout oferecido pela classe QMainWindow possui uma área central que pode ser ocupada por qualquer tipo de controle visual. É nessa área central que podemos colocar outros tipos de gerenciadores de layouts, que servirão como containers para os componentes visuais da aplicação. Veja uma aplicação PyQt completa na qual temos uma janela principal QMainWindow e um botão QPushButton. Observe como tiramos proveito da programação orientada em Python para criar uma classe JanelaPrincipal que herda de QMainWindow: # vamos importar os módulos necessários import sys from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * # vamos criar uma classe que herda de QMainWindow class JanelaPrincipal(QMainWindow): # construtor da classe def __init__(self): super().__init__() # definimos o título da janela self.setWindowTitle("Cadastro de Produtos") # vamos criar um botão QPushButton botao = QPushButton("Novo Produto") # definimos este botão como o controle central # da janela principal self.setCentralWidget(botao) if __name__== "__main__": # cria a aplicação app = QApplication(sys.argv) # cria a janela principal e a coloca visível janela_principal = JanelaPrincipal() janela_principal.show() # executa a aplicação app.exec() |
Java ::: Classes e Componentes ::: JComboBox |
Como retornar o valor do item selecionado em um JComboBox do Java Swing usando a função getSelectedItem()Quantidade de visualizações: 15703 vezes |
Nesta dica mostrarei como podemos usar o método getSelectedItem() da classe JComboBox do Java Swing para obter e retornar o valor do item selecionado. Note que usei uma conversão forçada (casting) para String antes de exibir o valor do item selecionado. Para finalizar, coloquei uma mensagem JOptionPane.showMessageDialog para exibir o valor do item selecionado no JComboBox. Veja o código completo para o exemplo: package estudos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JComboBox combo; public Estudos() { super("A classe JComboBox"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria o JComboBox combo = new JComboBox(nomes); // Um botão que permite obter o valor do item selecionado JButton btn = new JButton("Obter valor selecionado"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String valor = (String)(combo.getSelectedItem()); JOptionPane.showMessageDialog(null, "O valor selecionado é: " + valor); } } ); // Adiciona o JComboBox à janela c.add(combo); // 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); } } Ao executar este código Java nós teremos uma mensagem JOptionPane.showMessageDialog com o seguinte texto: O valor selecionado é: Osmar |
Java ::: Pacote java.lang ::: String |
Java para iniciantes - Como usar o método replace() da classe String para efetuar a substituição de caracteres em uma stringQuantidade de visualizações: 9691 vezes |
Em algumas situações gostaríamos de substituir caracteres (não substrings) em uma string. Isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:public String replace(char oldChar, char newChar) Veja um trecho de código no qual substituímos todas as letras "a" por "e" e retornamos uma nova string com as substituições: public class Estudos { public static void main(String[] args) { String frase = "Programar em Java é muito bom"; System.out.println("Frase original: " + frase); // vamos substituir todas as letras "a" por "e" frase = frase.replace('a', 'e'); System.out.println("Depois da substituição: " + frase); } } Após a execução deste código teremos o seguinte resultado: Frase original: Programar em Java é muito bom Depois da substituição: Progremer em Jeve é muito bom |
C# ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em C#Quantidade de visualizações: 3187 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 ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em Java - Como inserir nós no final de uma lista singularmente ligada em JavaQuantidade de visualizações: 8198 vezes |
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):// classe No public class No{ public int valor; public No proximo; } // fim da classe No Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java): public class Lista { No inicio, fim; // início e fim da lista // método que permite exibir os valores de // todos os nós da lista public void exibir() { // vamos obter uma referência ao início da lista No no = inicio; if (no != null) { // a lista não está vazia while (no != null) { // enquanto a lista não estiver vazia System.out.println(no.valor); no = no.proximo; // pula para o nó seguinte } } else { System.out.println("A lista está vazia\n\n"); } } // método que permite inserir nós no // final da lista. // veja que o método recebe o valor a ser // armazenado em cada nó public void inserirFinal(int v) { No novo = new No(); // cria um novo nó novo.valor = v; // é o nó no final, portanto não deverá apontar para nenhum // outro nó novo.proximo = null; // verifica se a lista está vazia if (inicio == null) { // novo aponta para o novo nó inicio = novo; // final deve apontar para o novo nó também fim = novo; } else { // não está vazia....vamos inserir o nó no final da lista // o campo próximo do último nó aponta para o nó recém-criado fim.proximo = novo; // o campo fim aponta para o novo nó...o campo inicio permanece igual fim = novo; } } } Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (Main.java): public class Main { public static void main(String[] args) { // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores no // finalo da lista lista.inserirFinal(45); lista.inserirFinal(3); lista.inserirFinal(98); lista.inserirFinal(17); // exibe os valores na lista lista.exibir(); } } Ao executar o aplicativo teremos o seguinte resultado: 45 3 98 17 |
Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um array em RustQuantidade de visualizações: 616 vezes |
Nesta dica mostrarei como podemos somar os valores de um vetor na linguagem Rust. Para isso nós vamos usar um laço for e percorrer os itens do array um de cada vez. Note também o uso da função len() para retornar o tamanho do array. Veja o código Rust completo para o exemplo: // esta é a função principal do programa Rust fn main() { // vamos criar um array com 6 elementos let valores:[i32;6] = [5, 2, 3, 7, 4, 1]; // para guardar a soma let mut soma:i32 = 0; // vamos mostrar o conteúdo do array println!("Os elementos do array são: {:?}", valores); // agora vamos somar os elementos do array for i in 0..valores.len() { soma = soma + valores[i]; } // e mostramos o resultado println!("A soma dos elementos é: {}", soma); } Ao executarmos este código Rust nós teremos o seguinte resultado: Os elementos do array são: [5, 2, 3, 7, 4, 1] A soma dos elementos é: 22 |
Nossas 20 dicas & truques de programação mais populares |
Portugol - Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em Portugol Python - Como gerar permutações de uma string em Python usando o objeto permutations do módulo Itertools |
Você também poderá gostar das dicas e truques de programação abaixo |
VB.NET - Como retornar o tamanho de uma string em VB.NET usando a propriedade Length da classe String |
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 |