![]() |
|
||||
![]() 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 testar se uma substring está contida no final de uma string em Python usando a função endswith()Quantidade de visualizações: 9260 vezes |
Em várias situações nós precisamos verificar se uma palavra, frase ou texto termina com um determinado texto, ou seja, uma substring. A linguagem Python nos oferece a função endswith(), que possui a seguinte assinatura:endswith(substring[, start[, end]]) Se o argumento start for especificado, a busca inicia a partir de tal índice. Se o argumento end for especificado, a busca terminará no índice definido. Dessa forma, a função endswith retorna 1 se a substring estiver contida no final da string. Do contrário, o valor 0 será retornado. Veja o código completo para o exemplo: def main(): frase = "Gosto de programar em Java" if frase.endswith("Java") == 1: print("A frase termina com \"Java\"") else: print("A frase NÃO termina com \"Java\"") if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: A frase termina com "Java" |
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: 322 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; } |
LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar uma condição em Lisp usando a macro ifQuantidade de visualizações: 1143 vezes |
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional. Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10: ; Vamos definir as variáveis que vamos ; usar no programa (defvar numero) ; Este é o programa principal (defun Estudos() ; Vamos ler o número (princ "Informe um número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável numero (setq numero (read)) ; vamos testar se este número é maior que 10 (if (> numero 10) (format t "~D é maior que 10~%" numero)) ; E mostramos o número informado (format t "O número informado foi: ~D" numero) ) ; Auto-executa a função Estudos() (Estudos) Ao executar este código Common Lisp nós teremos o seguinte resultado: Informe um número: 12 12 é maior que 10 O número informado foi: 12 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca |
Exercícios Resolvidos de Java - Como pesquisar um valor em uma árvore binária de busca usando uma função recursivaQuantidade de visualizações: 4341 vezes |
Pergunta/Tarefa: Escreva uma função recursiva em Java que permite pesquisar um valor em uma árvore binária de busca (BST). Se o valor for encontrado, uma referência ao nó da árvore (um objeto da classe NoArvore, por exemplo) deverá ser retornado. Caso contrário, o valor null deverá ser retornado para indicar que não há nós na árvore contendo tal valor. Sua saída deverá ser parecida com: Informe um valor inteiro: 7 Informe um valor inteiro: 1 Informe um valor inteiro: 8 Informe um valor inteiro: 10 Informe um valor inteiro: 4 Informe o valor a ser pesquisado: 3 O valor não foi encontrado na árvore Informe um valor inteiro: 8 Informe um valor inteiro: 2 Informe um valor inteiro: 35 Informe um valor inteiro: 4 Informe um valor inteiro: 7 Informe o valor a ser pesquisado: 4 O valor foi encontrado na árvore Veja a resolução comentada deste exercício usando Java: Código para NoArvore.java: package estudos; public class NoArvore { int valor; // valor armazenado no nó NoArvore esquerdo; // filho esquerdo NoArvore direito; // filho direito // construtor do nó public NoArvore(int valor){ this.valor = valor; } } Código para ArvoreBinariaBusca.java: package estudos; public class ArvoreBinariaBusca { private NoArvore raiz; // referência para a raiz da árvore // método usado para inserir um novo nó na árvore // retorna true se o nó for inserido com sucesso e false // se o elemento // não puder ser inserido (no caso de já existir um // elemento igual) public boolean inserir(int valor){ // a árvore ainda está vazia? if(raiz == null){ // vamos criar o primeiro nó e definí-lo como a raiz da árvore raiz = new NoArvore(valor); // cria um novo nó } else{ // localiza o nó pai NoArvore pai = null; NoArvore noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ if(valor < noAtual.valor) { pai = noAtual; noAtual = noAtual.esquerdo; } else if(valor > noAtual.valor){ pai = noAtual; noAtual = noAtual.direito; } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona ao nó pai if(valor < pai.valor){ pai.esquerdo = new NoArvore(valor); } else{ pai.direito = new NoArvore(valor); } } return true; // retorna true para indicar que o novo nó // foi inserido } // método que permite pesquisar na árvore binária de busca public NoArvore pesquisar(int valor){ return pesquisar(raiz, valor); // chama a versão recursiva // do método } // sobrecarga do método pesquisar que recebe dois // parâmetros (esta é a versão recursiva do método) private NoArvore pesquisar(NoArvore noAtual, int valor){ // o valor pesquisado não foi encontrado....vamos retornar null if(noAtual == null){ return null; } // o valor pesquisado foi encontrado? if(valor == noAtual.valor){ return noAtual; // retorna o nó atual } // ainda não encontramos...vamos disparar uma nova // chamada para a sub-árvore da esquerda else if(valor < noAtual.valor){ return pesquisar(noAtual.esquerdo, valor); } // ainda não encontramos...vamos disparar uma nova // chamada para a sub-árvore da direita else{ return pesquisar(noAtual.direito, valor); } } } E aqui está o código para a classe que permite testar a árvore: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Erro. Um elemento já contém este valor."); } } // vamos pesquisar um valor na árvore System.out.print("\nInforme o valor a ser pesquisado: "); int valorPesquisa = Integer.parseInt(entrada.nextLine()); // obtém um objeto da classe NoArvore a partir do // método pesquisar() da classe ArvoreBinariaBusca NoArvore res = arvore.pesquisar(valorPesquisa); // o valor foi encontrado? if(res != null){ System.out.println("O valor foi encontrado na árvore"); } else{ System.out.println("O valor não foi encontrado na árvore"); } System.out.println("\n"); } } |
C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando C++ - Geometria Analítica e Álgebra Linear usando C++Quantidade de visualizações: 2262 vezes |
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0). Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2: \[\vec{v} = \left(7, 6\right)\] Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D: ![]() Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9. Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6). Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras: \[a^2 = b^2 + c^2\] Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira: \[a = \sqrt{b^2 + c^2}\] Passando para os valores x e y que já temos: \[a = \sqrt{7^2 + 6^2}\] Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final: \[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\] E aqui está o código C++ que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo: #include <string> #include <iostream> #include <math.h> using namespace std; int main(int argc, char *argv[]){ float x, y, norma; // vamos ler os valores x e y cout << "Informe o valor de x: "; cin >> x; cout << "Informe o valor de y: "; cin >> y; // vamos calcular a norma do vetor norma = sqrt(pow(x, 2) + pow(y, 2)); // mostra o resultado cout << "A norma do vetor é: " << norma; cout << "\n\n"; system("PAUSE"); return 0; } Ao executar este código C++ nós teremos o seguinte resultado: Informe o valor de x: 7 Informe o valor de y: 6 A norma do vetor é: 9.219544457292887 Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo. |
JavaScript ::: Dicas & Truques ::: Formulários |
Formulários HTML - Como marcar ou desmarcar todas as checkboxes de um formulário HTML de uma só vez usando JavaScriptQuantidade de visualizações: 18697 vezes |
Nesta dica mostrarei como é possível clicar em um botão (pode ser um link também) e chamar uma função JavaScript que marca ou desmarca todos os elementos HTML checkbox de uma só vez. Para isso usaremos o método getElementsByName() para retornar todas as checkbox e em seguida manipular sua propriedade checked. Veja a imagem abaixo: ![]() E agora o código HTML e JavaScript completo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <form name="teste"> <input type="checkbox" name="linguagem">Java <input type="checkbox" name="linguagem">Delphi <input type="checkbox" name="linguagem">C++ </form> <a href="javascript:marcar()">Marcar Todas</a> | <a href="javascript:desmarcar()">Desmarcar Todas</a> <script language="JavaScript"> function marcar(){ var boxes = document.getElementsByName("linguagem"); for(var i = 0; i < boxes.length; i++) boxes[i].checked = true; } function desmarcar(){ var boxes = document.getElementsByName("linguagem"); for(var i = 0; i < boxes.length; i++) boxes[i].checked = false; } </script> </body> </html> |
JavaScript ::: DOM (Document Object Model) ::: document Object |
Como usar o método getElementById() do objeto document para localizar um elemento HTML baseado em seu id usando JavaScriptQuantidade de visualizações: 13114 vezes |
O método getElementById() do objeto document é usado quando queremos localizar e retornar um elemento HTML baseado no valor de sua propriedade id. Veja um exemplo:<html> <head> <title>Estudos JavaScript</title> <script type="text/javascript"> function localizarElemento(){ // vamos localizar o elemento com o id "aviso" var elem = document.getElementById("aviso"); // o elemento foi localizado if(elem != null){ // vamos definir o conteúdo do elemento encontrado elem.innerHTML = "Vejam este texto."; } else{ window.alert("O elemento HTML pesquisado não foi encontrado."); } } </script> </head> <body> <button onclick="localizarElemento()">Localizar DIV</button> <div id="aviso"></div> </body> </html> Execute o exemplo e clique no botão. Você verá que o texto do elemento div com o id "aviso" é definido para "Vejam este texto.". Note que, se o elemento não for encontrado, o retorno do método getElementById() é null na maioria dos browsers. Há algumas observações interessantes em relação ao método getElementById() do objeto document: a) Se o valor da propriedade id pertencer a uma coleção, ou seja, se houver mais de um elemento HTML com o mesmo id, o método retornará o primeiro elemento na coleção. b) No Firefox, Opera, Google Chrome, Safari e Internet Explorer (IE) a partir da versão 8, o método getElementById() é case-sensitive (sensível a maiúsculas e minúsculas) em relação ao valor da propriedade id. Nas versões anteriores do IE isso não acontecia. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como trabalhar com strings em Delphi - Como usar strings na linguagem DelphiQuantidade de visualizações: 28320 vezes |
Strings estão presentes em praticamente todos os programas que desenvolvemos, não importa a linguagem de programação usada. Sempre que queremos trabalhar com nomes de pessoas, nomes de cidades, palavras, frases e textos, as strings estão lá para nos auxiliar. Assim, para as linguagens de programação, as strings são apenas matrizes de caracteres (letras ou símbolos). Em Delphi podemos declarar e inicializar strings da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string begin nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // exibe o conteúdo da string end; Quando declaramos uma string em Delphi usando a palavra-chave string, o compilador automaticamente assume o tipo UnicodeString, com uma capacidade de 2^30 caracteres (mais ou menos 1.073.741.824 caracteres) com uma capacidade variando de 4 bytes até 2GB. Além do tipo string, o Delphi suporta outros tipos que possibilitam também o trabalho com strings e caracteres. Entre eles podemos citar ShortString, AnsiString, WideString entre outros. Quando puder dê mais uma revisada nas minha dicas sobre strings e caracteres para aprender mais. É possível também usar o tipo string para criar strings com tamanhos pré-definidos. Veja: var nome: string[5]; // declara uma variável do tipo string // que guardará apenas 5 caracteres Aqui temos uma string que não suportará mais que cinco caracteres. Importante notar que, internamente, teremos agora uma string do tipo ShortString e não mais UnicodeString como anteriormente. Se tentarmos atribuir mais que cinco caracteres nesta variável, o restante será truncado: nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // mostrará apenas "Osmar" Para finalizar, veja como podemos solicitar ao usuário que informe seu nome e exibí-lo usando a função ShowMessage(): procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string begin // vamos solicitar ao usuário que informe seu nome nome := Dialogs.InputBox('Nome', 'Informe seu nome:', ''); ShowMessage('Seu nome é: ' + nome); // mostrará apenas "Osmar" end; Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesianoQuantidade de visualizações: 3244 vezes |
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem Python que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos: # vamos importar o módulo Math import math as math def main(): # x e y do primeiro ponto x1 = float(input("Coordenada x do primeiro ponto: ")) y1 = float(input("Coordenada y do primeiro ponto: ")) # x e y do segundo ponto x2 = float(input("Coordenada x do segundo ponto: ")) y2 = float(input("Coordenada y do segundo ponto: ")) # agora vamos calcular o coeficiente angular m = (y2 - y1) / (x2 - x1) # e mostramos o resultado print("O coeficiente angular é: %f\n\n" % m) if __name__== "__main__": main() Ao executar este código em linguagem Python nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 3 Coordenada y do primeiro ponto: 6 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 10 O coeficiente angular é: 0.666667 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$): # vamos importar o módulo Math import math as math def main(): # x e y do primeiro ponto x1 = float(input("Coordenada x do primeiro ponto: ")) y1 = float(input("Coordenada y do primeiro ponto: ")) # x e y do segundo ponto x2 = float(input("Coordenada x do segundo ponto: ")) y2 = float(input("Coordenada y do segundo ponto: ")) # vamos obter o comprimento do cateto oposto cateto_oposto = y2 - y1 # e agora o cateto adjascente cateto_adjascente = x2 - x1 # vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa # (em radianos, não se esqueça) tetha = math.atan2(cateto_oposto, cateto_adjascente) # e finalmente usamos a tangente desse ângulo para calcular # o coeficiente angular tangente = math.tan(tetha) # e mostramos o resultado print("O coeficiente angular é: %f\n\n" % tangente) if __name__== "__main__": main() Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em PHP - Como passar um objeto de uma classe para uma função PHPQuantidade de visualizações: 8599 vezes |
Em algumas situações precisamos fornecer um objeto de uma classe para um método de outra classe ou mesmo uma simples função PHP. Nesta dica eu mostro como isso pode ser feito. Note que, ao receber o objeto da classe no método ou função, todas as alterações feitas no objeto serão refletidas no objeto original, ou seja, objetos de classe são automaticamente passados por referência em PHP. Eis o código: <?php // classe Cliente com duas variáveis privadas e seus // correspondentes métodos mutatórios e acessórios class Cliente{ private $nome; private $email; public function setNome($nome){ $this->nome = $nome; } public function getNome(){ return $this->nome; } public function setEmail($email){ $this->email = $email; } public function getEmail(){ return $this->email; } } // vamos criar um novo objeto da classe Cliente $c = new Cliente; $c->setNome("Osmar J. Silva"); $c->setEmail("osmar@arquivodecodigos.com.br"); // vamos agora passar este objeto para uma função PHP imprimirCliente($c); // e aqui está a função que recebe o objeto da classe Cliente // e exibe o valor de suas variáveis function imprimirCliente($cliente){ echo "Nome: " . $cliente->getNome() . "<br> E-Mail: " . $cliente->getEmail(); } ?> Ao executar este código teremos o seguinte resultado: Nome: Osmar J. Silva E-Mail: osmar@arquivodecodigos.com.br |
Nossas 20 dicas & truques de programação mais populares |
C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C VisuAlg - Exercício Resolvido de VisuAlg - Um programa que lê três números inteiros e mostra o maior GNU Octave - Como calcular o comprimento da hipotenusa em GNU Octave dadas as medidas do cateto oposto e do cateto adjascente |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como testar o conteúdo no final de uma string usando Java - O método endsWith() da classe String Java - Como usar a classe Character da linguagem Java para tratar caracteres individuais em seus programas Python - Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d") Android Java - Como detectar um clique em um botão do Android usando o evento onClick no XML de layout |
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 |