![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Python ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter uma string para um valor numérico inteiro usando a função int() do PythonQuantidade de visualizações: 20727 vezes |
Em algumas situações precisamos converter uma string ou a entrada do usuário para um valor inteiro. Isso pode ser feito por meio da função nativa int(). Esta função recebe uma string (conjunto de dígitos, letras e símbolos) e a converte (ou pelo menos tenta) em um valor inteiro. Veja um exemplo: """ Este trecho de código mostra como ler dois valores informados pelo usuário, convertê-los para inteiros e efetuar uma soma. A função int() é usada para converter uma string ou valor numérico para um inteiro. """ def main(): # vamos ler os dois valores val1 = input("Informe o primeiro número: ") val2 = input("Informe o segundo número: ") soma = int(val1) + int(val2); print("A soma dos valores é: ", soma) if __name__== "__main__": main() A saída deste código será parecida com: Informe o primeiro número: 12 Informe o segundo número: 8 A soma dos valores é: 20 Note que, por padrão, a função int() converte a string para um valor inteiro usando a base 10, ou seja, a base decimal. É possível fornecer uma base diferente. Veja, por exemplo, como ler uma string contendo um valor binário: def main(): # vamos ler um valor binário. Ex: 0101 binario = input("Informe um valor binário: ") print("O valor lido foi:", int(binario, 2)) if __name__== "__main__": main() O resultado da execução desse código será algo como: Informe um valor binário: 0101 O valor lido foi: 5 |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover espaços em excesso em uma string Java usando expressões regularesQuantidade de visualizações: 328 vezes |
Em algumas situações nós precisamos remover os espaços em excesso de um texto ou frase. Há várias formas de se realizar esta tarefa, e uma delas é por meio do uso de expressões regulares. Veja um trecho de código no qual usamos o método replaceAll() da classe Matcher para substituir dois ou mais espaços por apenas um espaço: package arquivodecodigos; // Este exemplo mostra como remover todos os espaços // duplicados de uma string import java.util.regex.*; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java e bom"; System.out.println("Com espaços em excesso: " + frase); frase = removerEspacosDuplicados(frase); System.out.println("Sem espaços em excesso: " + frase); System.exit(0); } public static String removerEspacosDuplicados(String str){ String patternStr = "\\s+"; String replaceStr = " "; Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(str); return matcher.replaceAll(replaceStr); } } Ao executarmos este código Java nós teremos o seguinte resultado: Com espaços em excesso: Programar em Java é bom Sem espaços em excesso: Programar em Java é bom |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de Python - Como retornar o código ASCII associado a um caractere em Python - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 722 vezes |
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em Python: # função principal do programa def main(): # vamos pedir para o usuário informar uma letra, símbolo ou pontuação caractere = input("Informe um caractere: ") # agora vamos obter o código ASCII correspondente codigo = ord(caractere) # e mostramos o resultado print("Você informou o caractere: {0}".format(caractere)) print("O código ASCII correspondente é: {0}".format(codigo)) if __name__== "__main__": main() O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um arquivo em PHP usando a função rename()Quantidade de visualizações: 26894 vezes |
Arquivos podem ser renomeados em PHP usando a função rename(). Esta função recebe o caminho e nome atual do arquivo e o novo caminho e nome. Se o destino for diferente, o arquivo será movido de um diretório para outro. Veja um exemplo:<?php // renomeia o arquivo testes.txt para testes2.txt $de = "/site/public_html/testes.txt"; $para = "/site/public_html/testes2.txt"; if(rename($de, $para)){ echo "Arquivo renomeado com sucesso."; } else{ echo "Não foi possível renomear o arquivo."; } ?> Ao executar este código nós teremos o seguinte resultado: Arquivo renomeado com sucesso. A função rename() da linguagem PHP retorna um valor boolean (verdadeiro ou falso) indicando se a operação foi realizada com sucesso ou se houve um erro. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercícios Resolvidos de Java - Como converter de decimal para números romanos em JavaQuantidade de visualizações: 691 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII 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 criar um array com os valores decimais possíveis de // cada número romano int valoresNumerosRomanos[] = new int[]{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; // representação dos números romanos String numerosRomanos[] = new String[]{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; // vamos pedir para o usuário informar um número decimal System.out.print("Informe um número decimal: "); int numero = Integer.parseInt(entrada.nextLine()); // para guardar o resultado String resultado = ""; // o número é maior que zero? if (numero > 0) { // percorremos o array de valores decimais dos números romanos for(int i = 0;i < valoresNumerosRomanos.length; i++){ // enquanto o número informado for maior que o valor do // do número romano atual while(numero >= valoresNumerosRomanos[i]){ // reduz o número informado numero = numero - valoresNumerosRomanos[i]; // concatena o número romano e continua o cálculo resultado = resultado + numerosRomanos[i]; } } } // mostramos o resultado if(resultado.isEmpty()){ System.out.println("O número informado não possui número romano"); } else{ System.out.println("O número romano correspondente é: " + resultado); } } } |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: VisuAlg Básico |
Exercícios Resolvidos de VisuAlg - Como calcular salário líquido em VisuAlg - Calculando o salário líquido de um professorQuantidade de visualizações: 1016 vezes |
Pergunta/Tarefa: Escreva um algoritmo VisuAlg que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como real), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como real). Em seguida mostre o salário líquido. Sua saída deverá ser parecida com: Informe o valor da hora aula: 28 Informe o número de horas trabalhadas no mês: 12 Informe o percentual de desconto do INSS: 8 Salário Bruto: R$ 336,00 Total de Descontos: R$ 26,88 Salário Líquido: R$ 309,12 Veja a resolução comentada deste exercício usando VisuAlg: Algoritmo "Cálculo de Salário Bruto e Líquido em VisuAlg" Var // variáveis usadas para resolver o problema valor_hora_aula: real horas_trabalhadas: inteiro percentual_desconto_inss: real salario_bruto: real salario_liquido: real total_desconto: real Inicio // vamos ler o valor do hora aula escreva("Informe o valor da hora aula: ") leia(valor_hora_aula) // vamos ler o número de horas trabalhadas no mês escreva("Informe o número de horas trabalhadas no mês: ") leia(horas_trabalhadas) // vamos ler o percentual de desconto do INSS escreva("Informe o percentual de desconto do INSS: ") leia(percentual_desconto_inss) // vamos calcular o salário bruto salario_bruto <- valor_hora_aula * horas_trabalhadas // agora calculamos o total do desconto total_desconto <- (percentual_desconto_inss / 100) * salario_bruto // finalmente calculamos o salário líquido salario_liquido <- salario_bruto - total_desconto // mostramos o resultado escreval("Salário Bruto: R$ ", salario_bruto:2:2) escreval("Total de Descontos: R$ ", total_desconto:2:2) escreval("Salário Líquido: R$ ", salario_liquido:2:2) Fimalgoritmo |
C# ::: Windows Forms ::: CheckBox |
Como marcar ou desmarcar todas as CheckBox de um formulário C# Windows Forms de uma só vez via códigoQuantidade de visualizações: 17406 vezes |
Em algumas situações temos formulários com muitos controles CheckBox C# Windows Forms e gostaríamos de marcá-los ou desmarcá-los de uma só vez. Esta dica mostra como isso pode ser feito. Para simular este exemplo, coloque vários controles CheckBox no formulário e coloque o código abaixo no evento Click de um botão: private void button1_Click(object sender, EventArgs e){ // vamos percorrer todos os controles do formulário for(int i = 0; i < this.Controls.Count; i++){ // vamos testar se o controle é do tipo CheckBox if(this.Controls[i] is System.Windows.Forms.CheckBox){ // é do tipo CheckBox. Vamos marcar (this.Controls[i] as CheckBox).Checked = true; } } } Se quiser desmarcar todas as CheckBoxes, troque a linha: (this.Controls[i] as CheckBox).Checked = true; por (this.Controls[i] as CheckBox).Checked = false; |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de C - Escreva um programa C que usa o laço for para desenhar um padrão de diamante de estrelasQuantidade de visualizações: 2171 vezes |
Pergunta/Tarefa: Neste exercício para a prática da linguagem C você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída: Informe a quantidade de linhas: 5 * *** ***** ******* ********* ******* ***** *** * Pressione qualquer tecla para continuar... Veja a resolução comentada deste exercício em C: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int i, j; // para controlar o laço externo e interno int linhas; // quantidade de linhas int estrelas, espacos; // quantidade de estrelas e espaços // vamos pedir a quantidade de linhas printf("Informe a quantidade de linhas: "); // vamos ler a entrada do usuário scanf("%d", &linhas); estrelas = 1; // começamos com uma estrela (no topo do diamante) espacos = linhas - 1; // se linhas for igual a 5 nós começamos // com 4 espaços // repete duas vezes a quantidade de linhas informadas for(i = 1; i < linhas * 2; i++){ // vamos imprimir os espaços for(j = 1; j <= espacos; j++){ printf(" "); } // agora vamos imprimir estrelas for(j = 1; j < estrelas * 2; j++){ printf("*"); } // passamos para a próxima linha printf("\n"); if(i < linhas){ // é a parte superior do diamante espacos--; // diminui os espaços estrelas++; // e aumenta as estrelas } else{ // é a parte inferior do diamente espacos++; // aumenta os espaços estrelas--; // e diminui as estrelas } } printf("\n\n"); system("pause"); return 0; } |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Como verificar se Num Lock está ativado no seu teclado usando o método getLockingKeyState() da classe Toolkit da linguagem JavaQuantidade de visualizações: 8582 vezes |
Nesta dica mostrarei como é possível verificar se Num Lock está ativado no seu teclado. Para isso nós podemos usar o método getLockingKeyState() da classe Toolkit, do pacote java.awt. Veja o exemplo completo: package arquivodecodigos; import java.awt.Toolkit; import java.awt.event.*; public class Estudos{ public static void main(String[] args){ Toolkit tk = Toolkit.getDefaultToolkit(); if(tk.getLockingKeyState(KeyEvent.VK_NUM_LOCK)){ System.out.println("Num Lock está ativado"); } else{ System.out.println("Num Lock não está ativado"); } System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: Num Lock não está ativado |
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQLQuantidade de visualizações: 89867 vezes |
O que é chave estrangeira (foreign key)? O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros. Comece analisando a tabela autores: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment nome varchar(45) NO - email varchar(45) NO - CREATE TABLE autores( id int(10) unsigned NOT NULL auto_increment, nome varchar(45) NOT NULL, email varchar(45) NOT NULL, PRIMARY KEY(id) )ENGINE=InnoDB; Analise agora a tabela livros: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO - CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id) )ENGINE = InnoDB; O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação. Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints) Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor). Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências. Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis: 1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele; 2) Se o autor for excluído, todos os livros que o referenciam também o serão. Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão: CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT livros_autores FOREIGN KEY(id_autor) REFERENCES autores(id) )ENGINE = InnoDB; A estrutura da tabela livros será alterada para aquela mostrada abaixo: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO MUL - ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`)) Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto Error wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 AutoCAD Civil 3D .NET C# - Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores Delphi - Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do Windows |
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 |