![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir partes de uma palavra, frase ou texto em Python usando a função replace() do objeto StringQuantidade de visualizações: 1900 vezes |
Em várias ocasiões nós precisamos efetuar a substituição de substrings em uma string. Para isso nós podemos usar o método replace() da linguagem Python. Esta função possui a seguinte assinatura:string.replace(oldvalue, newvalue, count) onde oldvalue é trecho da string a ser substituído, newvalue é o valor que substituirá o valor antigo e count é a quantidade de substituições. Na ausência do terceiro argumento, TODAS as ocorrências da substring pesquisada serão substituídas. Veja um exemplo no qual substituímos todas as ocorrências de "Java" por "Python" em uma frase: def main(): # frase original original = "Gosto de Java porque Java é fácil" print("Frase original:", original) # vamos substituir "Java" por "Python" nova_frase = original.replace("Java", "Python") print("Após a substituição:", nova_frase) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Frase original: Gosto de Java porque Java é fácil Após a substituição: Gosto de Python porque Python é fácil |
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em C++Quantidade de visualizações: 3244 vezes |
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código C++ completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não: #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ int numero; bool primo = true; // vamos solicitar um número inteiro positivo cout << "Informe um número inteiro positivo: "; cin >> numero; // o número é negativo? if(numero < 0){ cout << "Número inválido.\n\n"; } // é 0 ou 1? else if((numero == 0) || (numero == 1)){ cout << "Número válido, mas não é primo.\n\n"; } // passou até aqui. Vamos testar se o número é primo else{ for (int i = 2; i <= (numero / 2); i++){ // se passar no teste, não é primo if (numero % i == 0) { primo = false; break; } } if(primo){ cout << "O número informado é primo\n\n"; } else{ cout << "O número informado não é primo\n\n"; } } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como testar se uma sub-cadeia está contida em uma cadeia de caracteres em Portugol usando a função posicao_texto()Quantidade de visualizações: 541 vezes |
Nesta dica mostrarei como podemos verificar se uma substring está contida em uma string em Portugol. Para isso nós vamos usar a função posicao_texto() da biblioteca Texto. A função posicao_texto() pede a sub-cadeia a ser pesquisada, a cadeia na qual a pesquisa será feita e o índice do primeiro caractere a partir do qual a sub-string será pesquisada. Se a substring for encontrada, a função retorna a posição do primeiro caractere. Caso contrário o valor -1 será retornado. Veja o código completo para um programa Portugol no qual testamos se uma palavra está contida em uma frase: programa { // vamos importar a biblioteca Texto inclua biblioteca Texto --> tx funcao inicio() { // vamos criar uma frase cadeia frase = "Gosto de programar em Portugol" // vamos criar uma sub-cadeia cadeia palavra = "Portugol" // vamos verificar se a sub-cadeia está contida na cadeia se (tx.posicao_texto(palavra, frase, 0) != -1) { escreva("A substring está contida na string") } senao { escreva("A substring não está contida na string") } } } Ao executar este código Portugol nós teremos o seguinte resultado: A substring está contida na string. |
GNU Octave ::: GNU Octave para Engenharia ::: Geometria Analítica e Álgebra Linear |
GNU Octave para Álgebra Linear - Como calcular o determinante de uma matriz usando a função det() do GNU OctaveQuantidade de visualizações: 2842 vezes |
Na Matemática e na Álgebra Linear, o determinante é uma função matricial que associa a cada matriz quadrada um escalar, ou seja, o determinante é uma função que transforma uma matriz quadrada em um número real. O determinante, ou melhor, a função determinante, permite saber se a matriz tem ou não inversa (matriz inversa), pois, as matriz que não tem inversa, são precisamente aquelas cujo determinante é igual a 0. Se o determinante for diferente de zero, então a matriz é uma matriz invertível. O determinante de uma matriz A é denotado por det(A), det A ou |A|. O software GNU Octave nos fornece uma forma rápida para obtermos o determinante de uma matriz: a função det(). Veja o exemplo a seguir (digitando diretamente na Janela de Comandos): >> A = [1, 2, 3; 2, 5, 2; 1, 3, 1] [ENTER] A = 1 2 3 2 5 2 1 3 1 >> det(A) [ENTER] ans = 2 >> Veja que declaramos uma matriz 3x3 com o nome A e em seguida usamos a função det() para obter o seu determinante. Vamos ver agora como podemos fazer esse mesmo cálculo em um script do GNU Octave: # declara uma matriz quadrada de ordem 3 A = [1, 2, 3; 2, 5, 2; 1, 3, 1] # calculamos o determinante determinante = det(A) # mostramos os resultado fprintf("O determinante da matriz A é %f\n", determinante); Não se esqueça de pesquisar sobre as propriedades do determinante. São cerca de 10 propriedades que nos ajudam a calcular o determinante da matriz simplesmente olhando para a sua composição. |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva uma função C++ que recebe três números inteiros e retorna o menor delesQuantidade de visualizações: 555 vezes |
Pergunta/Tarefa: Escreva um programa C++ que contenha uma função, método ou procedimento que recebe três números inteiros e retorne o menor deles como um inteiro. Seu método não deve produzir nenhuma saída, apenas retornar o menor número entre os três argumentos fornecidos. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 10 Informe o terceiro número: 7 O menor número é: 7 Veja a resolução comentada deste exercício em C++: #include <iostream> #include <algorithm> using namespace std; // função que recebe três números e retorna o menor deles int menor(int a, int b, int c){ return min(min(a, b), c); } // função principal do programa int main(int argc, char *argv[]){ int n1, n2, n3, menor_numero; // vamos pedir para o usuário informar três // números inteiros cout << "Informe o primeiro número: "; cin >> n1; cout << "Informe o segundo número: "; cin >> n2; cout << "Informe o terceiro número: "; cin >> n3; // agora vamos calcular o menor número menor_numero = menor(n1, n2, n3); // e mostramos o resultado cout << "O menor numero é: " << menor_numero << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Ordenação e pesquisa em C - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 3115 vezes |
A ordenação Insertion Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando as cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem C agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: #include <stdio.h> #include <stdlib.h> // função que permite ordenar um vetor de inteiros // usando a ordenação Insertion Sort void insertionSort(int vetor[], int tam){ int i, temp, j; // este laço varre os elementos a partir do segundo // elemento, ou seja, o índice 1 for(i = 1; i < tam; i++){ // guardamos o elemento atual em temp temp = vetor[i]; for(j = i; ((j > 0) && (vetor[j - 1] > temp)); j--){ vetor[j] = vetor[j - 1]; // houve uma troca } vetor[j] = temp; // colocamos temp em seu devido lugar } } int main(int argc, char *argv[]){ int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int i, tamanho = 9; // imprime a matriz sem a ordenação puts("Sem ordenação:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } // vamos ordenar a matriz insertionSort(valores, tamanho); // imprime a matriz ordenada puts("\n\nOrdenada usando Insertion Sort:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Python ::: Dicas & Truques ::: Data e Hora |
Como adicionar dias à uma data em Python usando a função timedelta() da classe datetimeQuantidade de visualizações: 9104 vezes |
Nesta dica mostrarei como é possível usar o método timedelta() da classe datetime do Python para adicionar um determinado número de dias a uma data. O truque aqui é fornecer apenas o dia para o método timedelta(), obter o resultado e somá-lo com a data que já temos. Veja o código completo para o exemplo: import datetime # função principal do programa def main(): # dias a serem adicionados quant_dias = 2 # Obtém a data de hoje hoje = datetime.date.today() print("Hoje é:", hoje) # Adiciona dias à data dias = datetime.timedelta(days=quant_dias) hoje = hoje + dias # Exibe o resultado print("Daqui à", quant_dias, "dias será", hoje) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Hoje é: 2021-03-11 Daqui à 2 dias será 2021-03-13 |
C# ::: Windows Forms ::: DataGridView |
Como retornar a coluna da célula selecionada em um DataGridView do C# Windows FormsQuantidade de visualizações: 14802 vezes |
Muitas vezes precisamos obter a coluna atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito obtendo-se o índice da coluna da célula selecionada e então fornecendo este índice para a propriedade Columns da classe DataGridView. O retorno será um objeto da classe DataGridViewColumn, que representa uma coluna no DataGridView. Podemos usar esta classe para obter o índice da coluna que contém a célula selecionada, percorrer todas as células de uma determinada coluna, etc. Veja um trecho de código no qual obtemos o DataGridViewColumn representando a coluna da célula selecionada: private void button3_Click(object sender, EventArgs e){ // vamos obter a coluna da célula selecionada DataGridViewColumn colunaAtual = dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex]; // vamos exibir o índice da coluna atual int indice = colunaAtual.Index; MessageBox.Show("O índice da coluna atual é: " + indice); } |
Python ::: Itertools ::: Iteradores de Combinação e Permutação |
Como gerar permutações de uma string em Python usando o objeto permutations do módulo ItertoolsQuantidade de visualizações: 963 vezes |
Nesta dica mostrarei como podemos usar o objeto permutations do módulo Itertools para gerar as permutações simples de uma string. Na permutação simples, quando os elementos não se repetem, a quantidade de conjuntos gerados a partir do conjunto analisado equivale a n!, onde n é a quantidade de elementos no conjunto a partir do qual a permutação ocorrerá. Dessa forma, para a palavra LOTE, a quantidade de permutações possíveis (sem repetição) é 4! = 24. Veja o código Python completo que gera as permutações simples para a palavra LOTE: # vamos importar o objeto permutations do Itertools from itertools import permutations def main(): # palavra contendo os caracteres que queremos # gerar a permutação. Veja que não vamos usar # caracteres repetidos palavra = "LOTE" # agora obtemos uma lista com as permutações possíveis permutacoes = [''.join(p) for p in permutations(palavra)] # e mostramos o resultado print("As permutações para a palavra {0} são:\n".format(palavra)) print(permutacoes) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: As permutações para a palavra LOTE são: ['LOTE', 'LOET', 'LTOE', 'LTEO', 'LEOT', 'LETO', 'OLTE', 'OLET', 'OTLE', 'OTEL', 'OELT', 'OETL', 'TLOE', 'TLEO', 'TOLE', 'TOEL', 'TELO', 'TEOL', 'ELOT', 'ELTO', 'EOLT', 'EOTL', 'ETLO', 'ETOL'] |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como usar o método charAt() da classe String para obter o caractere em uma determinada posição de uma frase ou texto - RevisadoQuantidade de visualizações: 569 vezes |
Em várias situações, principalmente quando estamos trabalhando com palavras e textos em Java, surge a necessidade de acessarmos as letras individuais de strings. Para isso podemos usar o método charAt() da classe String. Este método recebe um inteiro indicando o índice do caractere na String. Lembre-se de que os índices começam sempre em 0 em Java. O retorno do método charAt() é um char. Veja um exemplo: public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é muito bom"; // Lembre-se: o indice começa em 0 char letra = frase.charAt(2); System.out.println("O caractere no índice 2 é: " + letra); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: O caractere no índice 2 é: o Esta dica foi revisada e testada no Java 8. |
Nossas 20 dicas & truques de programação mais populares |
GoLang - Como retornar o tamanho de uma string em Golang usando os métodos len() e RuneCountInString() Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python C - Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra Linear |
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 |