![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
![]() |
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversaQuantidade de visualizações: 16099 vezes |
Exercício Resolvido de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa Pergunta/Tarefa: Escreva um programa Java console ou GUI que leia um número de 3 dígitos e o inverta, escrevendo o número lido e o invertido. Por exemplo, se o usuário informar o valor 753, seu programa deverá invertê-lo, resultando em 357. Seu programa deverá exibir a seguinte saída: Informe um valor inteiro de três dígitos: 753 O valor original é: 753 O valor invertido é: 357 Veja a resolução comentada deste exercício usando Java console: public static void main(String[] args){ // não se esqueça de adicionar um import para a classe Scanner // import java.util.Scanner; // vamos criar um objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar ao usuário que informe um valor inteiro // na faixa 100 a 999 (incluindo) System.out.print("Informe um valor inteiro de três dígitos: "); // vamos ler o valor informado int valor = Integer.parseInt(entrada.next()); // vamos verificar se o valor está na faixa permitida if(valor < 100 || valor > 999){ System.out.println("Valor fora da faixa permitida"); System.exit(0); } // vamos criar uma variável temporária para manter intacto o valor lido int temp = valor; int inverso = 0; // guardará o valor invertido // vamos inverter o valor agora while(temp != 0){ inverso = (inverso * 10) + (temp % 10); temp = temp / 10; } // vamos mostrar o resultado System.out.println("O valor original é: " + valor); System.out.println("O valor invertido é: " + inverso); } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função is_numeric() em C que verifica se uma string contém apenas dígitos de 0 a 9Quantidade de visualizações: 10145 vezes |
Em algumas situações precisamos verificar se uma string contém apenas dígitos de 0 a 9, ou seja, é um valor numérico inteiro válido. Para isso podemos usar a função personalizada em C que mostro nesta dica. Veja que o segredo é passar todos os caracteres individualmente para a função isdigit(). Veja o código:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> // função personalizada que permite verificar se uma // string contém apenas dígitos de 0 a 9 int is_numeric(const char *str){ int res = 1; // passou no teste // vamos percorrer todos os caracteres da string // e testar se cada um é um dígito. Se não // for nós marcamos res como 0 e retornamos while(*str){ if(!isdigit(*str)){ res = 0; break; } // vamos passar para o próximo caractere str++; } return res; } int main(int argc, char *argv[]){ char valor[20]; // vamos guardar o valor digitado aqui // vamos ler o valor informado pelo usuário printf("Digite qualquer coisa e tecle ENTER: "); gets(valor); // vamos verificar se o usuário informou uma string // que contém apenas dígitos de 0 a 9 if(is_numeric(valor)) printf("Voce informou uma string numerica"); else printf("Voce NAO informou uma string numerica"); puts("\n\n"); system("PAUSE"); return 0; } E, antes que perguntem como é possível verificar se a string contém um valor fracionário válido, a seguinte alteração pode ser feita: int is_numeric(const char *str){ int res = 1; // passou no teste // vamos percorrer todos os caracteres da string // e testar se cada um é um dígito ou uma vírgula. Se não // for nós marcamos res como 0 e retornamos while(*str){ if((!isdigit(*str)) and (*str != ',')){ res = 0; break; } // vamos passar para o próximo caractere str++; } return res; } |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do DelphiQuantidade de visualizações: 16339 vezes |
O evento OnDrawCell, definido originalmente na classe TCustomDrawGrid, é disparado quando uma determinada célula do TStringGrid precisa ser desenhada. Este evento possui a seguinte assinatura:property OnDrawCell: TDrawCellEvent; O tipo Grids.TDrawCellEvent apresenta, no Delphi 2009, a seguinte lista de parâmetros: TDrawCellEvent = procedure(Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object; Vamos ver cada um destes parâmetros separadamente: Sender - Representa a grid na qual a célula está sendo desenhada; ACol, ARow - Índices da coluna e linha na qual a célula está sendo desenhada; Rect - Localização da célula na área de desenho (canvas); State - Um objeto Grids.TGridDrawState que indica se a célula possui o foco (gdFocused), está selecionada (gdSelected) e se a mesma é uma célula fixa (gdFixed). Células fixas permanecem vísiveis quando as barras de rolagem são acionadas. Veja um trecho de código no qual usamos o evento OnDrawCell para colorir de amarelo o fundo de uma determinada célula do TStringGrid: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var conteudo: String; begin // vamos obter o conteúdo da célula conteudo := StringGrid1.Cells[ACol, ARow]; // vamos colorir a célula na segunda linha e terceira // coluna com o fundo amarelo if (ACol = 2) and (ARow = 1) then begin StringGrid1.Canvas.Brush.Color := clYellow; StringGrid1.Canvas.FillRect(Rect); StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, conteudo); end; end; Para este exemplo deixei o valor da propriedade DefaultDrawing do TStringGrid como true. Isso faz com que o fundo da célula seja pintado antes que o evento DrawCell seja chamado e o efeito 3D das células fixas seja exibido ou o retângulo de foco ao redor da célula que possui o foco no momento seja desenhado após o evento. Experimente executar o exemplo com o valor false para a propriedade DefaultDrawing para ver o resultado. Veja agora um trecho de código no qual definimos a cor vermelha para o texto das células cujo valor inteiro seja menor que 10: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var conteudo: String; begin // vamos obter o conteúdo da célula conteudo := StringGrid1.Cells[ACol, ARow]; // vamos definir a cor vermelha para o texto das células // contendo valores menores que 10 if (conteudo <> '') and (StrToInt(conteudo) < 10) then begin StringGrid1.Canvas.Font.Color := clRed; StringGrid1.Canvas.FillRect(Rect); StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, conteudo); end; end; Tenha cuidado para que o valor da célula possa ser convertido para inteiro por meio do uso da função StrToInt(). Caso a conversão não for possível, uma exceção do tipo EConvertError será lançada. |
Java ::: Tratamento de Erros ::: Passos Iniciais |
Como usar try catch em Java - Aprenda a tratar erros em Java usando o bloco try...catchQuantidade de visualizações: 40042 vezes |
A forma mais comum de tratar e se recuperar de erros em uma aplicação Java é usando o bloco try...catch. Todo o código que apresenta a possibilidade de erros ou falhas é colocado em um bloco try. E o código a ser executado caso o erro ou falha aconteça é colocado em um bloco catch. Veja a sintáxe:try{ // código que pode provocar erros } catch(Tipo_Exceção nome){ // tratamento do erro } A palavra-chave catch é seguida por uma declaração do tipo de exceção sendo lançada. É aqui que entram detalhes interessantes. Antes de tratar um erro, é preciso que você saiba qual erro estará tratando. Em Java temos três tipos de erros: runtime exceptions, checked exceptions e errors. Errors não precisam ser tratados com bloco try...catch, runtime exceptions (erros causados por códigos mal escritos ou mal testados) opcionalmente usam try...catch e checked exceptions (erros que fogem ao controle do programador) devem obrigatoriamente usar try...catch. Vamos ver um exemplo do uso de try...catch: import java.io.*; public class Estudos{ public static void main(String[] args){ try{ DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("conteudo.txt"))); while(in.available() != 0) System.out.print((char) in.readByte()); } catch(IOException e){ System.out.print(e.getMessage()); } System.exit(0); } } Neste trecho de código nós tentamos ler o conteúdo de um arquivo. O que aconteceria se o arquivo não existisse? O programa entraria em colapso. Além disso, todas as operações de entrada e saída (IO) estão suscetíveis a falhas externas. Por esta razão, o compilador nos força a usar try...catch nestas situações. Neste exemplo podemos ver que o bloco catch é seguido por uma definição da classe IOException. No entanto, este trecho de código pode também disparar a exceção FileNotFoundException. Olhando a documentação vemos que FileNotFoundException herda de IOException, que por sua vez herda de Exception. Isso nos mostra que, se não estivermos certos de qual exceção será lançada, podemos usar a superclasse Exception e usarmos o método getMessage() ou demais métodos para obter maiores informações sobre o erro. Vamos ver mais um exemplo de try...catch. Desta vez veremos como evitar uma exceção StringIndexOutOfBoundsException: import java.util.*; public class Estudos{ public static void main(String[] args){ String palavra = "Java"; Scanner in = new Scanner(System.in); System.out.print("Informe um inteiro: "); int indice = in.nextInt(); try{ System.out.println("O caractere no índice " + "informado é " + palavra.charAt(indice)); } catch(StringIndexOutOfBoundsException e){ System.out.println("Erro:" + e.getMessage()); } } } Compile, execute este código e forneça um inteiro maior que 3 para ver o resultado. |
JavaScript ::: JavaScript para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando JavaScript - Geometria Analítica e Álgebra Linear usando JavaScriptQuantidade de visualizações: 2543 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 JavaScript que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo: <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> // vamos declarar os valores x e y var x = 7; var y = 6; // vamos calcular a norma do vetor var norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); // mostra o resultado document.writeln("A norma do vetor é: " + norma); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: 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. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
Java - Como retornar os índices dos itens selecionados em uma JList de seleção múltipla do Java Swing |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |