![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string do Java usando o método substring() e um laço forQuantidade de visualizações: 6 vezes |
Nesta dica mostrarei como podemos usar o método substring() da classe String, combinado com o laço for, para contar as ocorrências de uma substring em uma string da linguagem Java. Note que usamos também os métodos length() e equals() para completar a tarefa. Veja o código Java completo para o exemplo: package estudos; public class Estudos{ public static void main(String[] args){ // vamos criar uma string representando uma frase String frase = "Programar em Java só é melhor que programar em Java"; // a substring que vamos pesquisar String sub = "Java"; // ocorrências de "Java" // quantidade de ocorrências int cont = 0; // um laço for que vai de 0 até o tamanho da primeira string menos // o tamanho da segunda string - 1 for(int i = 0; i < (frase.length() - sub.length() + 1); i++){ String res = frase.substring(i, (i + sub.length())); // encontramos a substring mais uma vez? if(res.equals(sub)){ cont++; } } System.out.println("A frase contém " + cont + " ocorrências de " + sub); // fecha o programa System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A frase contém 2 ocorrências de Java |
C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em C++Quantidade de visualizações: 1639 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C++. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C++. Veja um trecho de código C++ completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ // vamos declarar e construir uma matriz de três linhas // e três colunas int linhas = 3, colunas = 3; int matriz[linhas][colunas]; // guarda a soma dos elementos na diagonal principal int soma_diagonal = 0; // vamos ler os valores para os elementos da matriz for(int i = 0; i < linhas; i++){ // linhas for(int j = 0; j < colunas; j++){ // colunas cout << "Informe o valor para a linha " << i << " e coluna " << j << ": "; cin >> matriz[i][j]; } } // vamos mostrar a matriz da forma que ela // foi informada cout << "\n"; // percorre as linhas for(int i = 0; i < linhas; i++){ // percorre as colunas for(int j = 0; j < colunas; j++){ cout << matriz[i][j] << " "; } // passa para a próxima linha da matriz cout << "\n"; } // vamos calcular a soma dos elementos da diagonal // principal for(int i = 0; i < linhas; i++){ for(int j = 0; j < colunas; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } // finalmente mostramos a soma da diagonal principal cout << "\nA soma dos elementos da diagonal principal é: " << soma_diagonal << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma string está toda em letras minúsculas usando a função islower() da classe string do PythonQuantidade de visualizações: 8293 vezes |
Em algumas ocasiões nós precisamos verificar se uma palavra, frase ou texto contém apenas letras minúsculas. Para isso pode usar a função islower() da classe string do Python. Esta função True se a string contiver apenas letras minúsculas e False em caso contrário. Note que, mesmo que a string contenha números ela ainda pode estar em letras minúsculas. Veja o código completo: # função principal do programa def main(): frase = "ainda gosto do python_2.6" if frase.islower(): print("A string está em letras minúsculas") else: print("A string não está em letras minúsculas") if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: A string está em letras minúsculas |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como passar um vetor para uma função CQuantidade de visualizações: 12338 vezes |
Muitas vezes precisamos passar um vetor, ou seja, um array unidimensional para uma função na linguagem C. O trecho de código abaixo mostra como isso é feito. Observe que a passagem de um vetor para uma função é feita por referência, ou seja, qualquer alteração nos valores do array dentro da função será refletida no vetor original: #include <stdio.h> #include <stdlib.h> #include <locale.h> // protótipo da função que recebe o array e exibe os seus elementos void exibir_vetor(int vetor[], int tamanho); // função principal do programa int main(int argc, char *argv[]){ // cria um vetor com 5 inteiros int valores[] = {54, 3, 89, 6, 1}; setlocale(LC_ALL,""); // para acentos do português // passa o vetor para a função exibir_vetor() // veja que temos que enviar também a quantidade // de elementos exibir_vetor(valores, 5); printf("\n\n"); system("PAUSE"); return 0; } // função que recebe o array e exibe os seus elementos void exibir_vetor(int vetor[], int tamanho){ int i; printf("Os elementos do vetor são:\n\n"); for(i = 0; i < tamanho; i++){ printf("%d ", vetor[i]); } } Ao executar este código C nós teremos o seguinte resultado: Os elementos do vetor são: 54 3 89 6 1 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Escreva um programa Java para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 711 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 Java: package exercicio; public class Exercicio { public static void main(String[] args) { // vamos declarar e construir um vetor de 8 inteiros int valores[] = {0, 3, 0, 5, 7, 4, 0, 9}; // vamos mostrar o vetor na ordem original System.out.println("Vetor na ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor int 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(int i = 0; i < valores.length; i++){ // encontramos um valor que não é 0 if(valores[i] != 0){ // fazemos a troca entre os elementos nos índices // i e j int temp = valores[i]; valores[i] = valores[j]; valores[j] = temp; // e avançamos o j para o elemento seguinte j++; } } // agora mostramos o resultado System.out.println("\n\nVetor com os zeros deslocados para o final:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println(); } } 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. |
Delphi ::: Classes, Controles e Componentes ::: TRegistry (Registro do Windows) |
Como verificar se uma chave já existe no registro do Windows usando a função KeyExists() da classe TRegistry do DelphiQuantidade de visualizações: 17208 vezes |
Em algumas situações nós gostaríamos de verificar se uma determinada chave já existe no registro do Windows, talvez antes de criá-la, excluí-la ou tentar ler algum de seus valores. O método KeyExists() da classe TRegistry pode ser usado para esta finalidade. Este método recebe uma string representando a chave a ser pesquisada e retorna um valor Boolean indicando a existência da chave. Veja o trecho de código abaixo: procedure TForm3.Button5Click(Sender: TObject); var reg: TRegistry; begin // uses Registry // vamos criar uma instância da classe TRegistry reg := TRegistry.Create; // a chave raiz padrão é HKEY_CURRENT_USER mas, por via das dúvidas // vamos reafirmar isso reg.RootKey := HKEY_CURRENT_USER; // vamos verificar a existência de uma chave a partir da chave raiz if reg.KeyExists('Arquivo de Códigos') then begin ShowMessage('A chave pesquisada existe.'); end else begin ShowMessage('A chave pesquisada não existe.'); end; // vamos liberar o registro reg.Free; end; Aqui nós estamos verificando a existência da chave "Arquivo de Códigos" a partir da chave raiz HKEY_CURRENT_USER. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escreva um programa Java que leia duas notas obtidas por um aluno na disciplina de Algoritmos e Programação de Computadores, o número de aulas ministradasQuantidade de visualizações: 18953 vezes |
Pergunta/Tarefa: Escreva um programa Java que leia duas notas obtidas por um aluno na disciplina de Algoritmos e Programação de Computadores, o número de aulas ministradas e o número de aulas assistidas por este aluno nesta disciplina. Calcule e mostre a média final deste aluno e diga se ele foi aprovado ou reprovado. Considere que para um aluno ser aprovado ele deve obter média final igual ou maior a 6,0 e ter no mínimo 75% de frequência. Importante: Seu código Java deverá validar os dados de entrada para que as notas não sejam menores que zero nem maiores que 10. Além disso, o número de aulas assistidas não pode ser maior que o número de aulas ministradas. Seu programa Java deverá exibir uma saída parecida com: Informe a primeira nota: 9 Informe a segunda nota: 7 Quantidade de aulas ministradas: 20 Quantidade de aulas assistidas: 17 Aluno aprovado com média 8.0 e frequencia 85.0% 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); // vamos ler as duas notas do aluno System.out.print("Informe a primeira nota: "); double n1 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a segunda nota: "); double n2 = Double.parseDouble(entrada.nextLine()); // vamos ler a quantidade de aulas ministradas System.out.print("Quantidade de aulas ministradas: "); int aulas_ministradas = Integer.parseInt(entrada.nextLine()); // agora a quantidade de aulas assistidas pelo aluno System.out.print("Quantidade de aulas assistidas: "); int aulas_assistidas = Integer.parseInt(entrada.nextLine()); // agora temos que validar as informações inseridas if((n1 < 0) || (n1 > 10)){ System.out.println("\nA nota n1 é inválida"); } else if((n2 < 0) || (n2 > 10)){ System.out.println("\nA nota n2 é inválida"); } else if(aulas_assistidas > aulas_ministradas){ System.out.println("Aulas assistidas maior que aulas ministradas"); } else{ // vamos calcular a média do aluno double media = (n1 + n2) / 2; // vamos calcular a frequencia double frequencia = (aulas_assistidas / (double)aulas_ministradas) * 100; // vamos testar a aprovação do aluno agora if((media >= 6.0) && (frequencia >= 75)){ System.out.println("Aluno aprovado com média " + media + " e frequencia " + frequencia + "%"); } else{ System.out.println("Aluno reprovado com média " + media + " e frequencia " + frequencia + "%"); } } } } |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 963 vezes |
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em Python: # função principal do programa def main(): # vamos ler três números do usuário a = int(input("Primeiro número: ")) b = int(input("Segundo número: ")) c = int(input("Terceiro número: ")) # os números estão em ordem crescente? if a < b and b < c: print("Ordem Crescente") # os números estão em ordem decrescente? elif a > b and b > c: print("Ordem Decrescente") # sem ordem definida else: print("Sem ordem definida") if __name__== "__main__": main() |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para o fundo (parte inferior) usando a API do WindowsQuantidade de visualizações: 7014 vezes |
Em algumas situações gostaríamos de rolar para baixo (fundo) o conteúdo de um TextBox de múltiplas. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_BOTTOM para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para baixo o conteúdo de um TextBox. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: using System.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: private void button2_Click(object sender, EventArgs e){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_BOTTOM = 7; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_BOTTOM; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role para o fundo (parte inferior) SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
C# ::: Dicas & Truques ::: Data e Hora |
Como retornar o ano da data atual em C# usando a propriedade Year da classe DateTimeQuantidade de visualizações: 95 vezes |
Nesta dica eu mostrarei como podemos usar a propriedade Year da classe DateTime da linguagem C# para obter o ano de uma determinada data como um inteiro. Veja o código completo para o exemplo: using System; namespace Estudos { class Program { static void Main(string[] args) { // vamos obter a data e hora atual DateTime agora = DateTime.Now; // e agora o ano da data como um inteiro int ano = agora.Year; // e finalmente mostramos o resultado Console.WriteLine("Estamos no ano: {0}", ano); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Estamos no ano: 2022 |
Nossas 20 dicas & truques de programação mais populares |
Java - Como testar se um ponto está dentro de um círculo em Java - Desenvolvimento de Games com Java PHP - Como obter o caminho da raiz do site usando a variável global $_SERVER['DOCUMENT_ROOT'] do PHP |
Você também poderá gostar das dicas e truques de programação abaixo |
Revit Python Shell - Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python Shell JavaScript - Como calcular o comprimento da hipotenusa em JavaScript dadas as medidas do cateto oposto e do cateto adjascente C++ - Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes 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 |