Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

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.


C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico

Exercícios Resolvidos de C - Lendo a idade de um nadador e classificando sua categoria como infantil, juvenil, adolescente, adulto ou sênior

Quantidade de visualizações: 443 vezes
Pergunta/Tarefa:

Escreva um programa C que solicita a idade de um nadador e classifica sua categoria de acordo com as seguintes regras:

a) De 5 a 7 anos - Infantil;
b) De 8 a 10 anos - Juvenil;
c) De 11 a 15 anos - Adolescente;
d) De 16 a 30 anos - Adulto;
e) Acima de 30 anos - Sênior.

Sua saída deverá ser parecida com:

Informe sua idade: 19
Sua categoria é Adulto
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
  // variáveis usadas na resolução do problema
  int idade;
    
  // vamos solicitar a idade do nadador
  printf("Informe sua idade: ");
  scanf("%d", &idade);
     
  // vamos verificar a categoria do nadador
  if((idade >= 5) && (idade <= 7)) {
    printf("Sua categoria é Infantil");  
  }
  else if((idade >= 8) && (idade <= 10)) {  
    printf("Sua categoria é Juvenil");  
  }
  else if((idade >= 11) && (idade <= 15)) {
    printf("Sua categoria é Adolescente");  
  }
  else if((idade >= 16) && (idade <= 30)) {
    printf("Sua categoria é Adulto");  
  }
  else if(idade > 30) {
    printf("Sua categoria é Sênior");  
  }
  else {
    printf("Não pertence a nenhuma categoria.");  
  }
   
  printf("\n\n");
  system("PAUSE");
  return 0;
}



Java ::: Dicas & Truques ::: Threads

Como usar uma thread Java para animar o título de uma janela JFrame do Java Swing

Quantidade de visualizações: 11768 vezes
Nesta dica mostro como podemos usar uma thread para substituir um timer em uma aplicação Swing. Ao executar este código você verá que o texto da barra de títulos da aplicação pisca continuamente enquanto o aplicativo estiver sendo executado.

Veja a listagem para o exemplo:

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("Uso de threads em aplicações Swing");
    
    // vamos criar a thread que fará o título da janela
    // piscar continuamente
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread(this);
    t1.start();

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

// classe que usaremos como thread
class MinhaThread extends Thread{
  private JFrame janela;
  private String titulo;  

  public MinhaThread(JFrame janela){
    this.janela = janela;
    this.titulo = janela.getTitle();
  }   

  public void run(){
    try{
      while(true){
        if(janela.getTitle().equals(""))
          janela.setTitle(titulo);
        else
          janela.setTitle("");

        Thread.sleep(300);
      }
    }
    catch(InterruptedException ex){
      // precisa fazer nada aqui
    }
  }
}

Um detalhe interessante é que, ao ser colocada para dormir, a thread usada no exemplo permite que as demais threads da aplicação continuem suas execuções normalmente. Isso permite que a janela seja movida, redimensionada, minimizada, etc. Lembre-se sempre de usar o método Thread.yield() caso a thread criada estiver executando alguma ação demorada. Isso evitará que a janela do programa pareça congelada.


Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas Java

Quantidade de visualizações: 11952 vezes
Muitos estudantes de Java torcem o nariz quando nós, professores e instrutores, tocamos no assunto de interfaces. Definitivamente este não é um tópico fácil de entender ao primeiro contato. Comecemos com uma analogia simples. É sabido que é cada vez maior o número de softwares sendo desenvolvidos em equipes, ou seja, o projeto do software é desmembrado e suas funcionalidades são implementadas por grupos diferentes de programadores.

Quando estamos desenvolvendo software em grupos de programadores, é comum desenvolvermos partes que dependem do trabalho de um outro grupo. E, nem sempre podemos esperar que uma parte da qual dependemos fique pronta para só então progredirmos.

Para isso, um contrato entre os grupos de programadores é firmado. E este contrato é o que chamamos de interface. Suponhamos que em um determinado momento meu grupo está desenvolvendo código que depende da parte de impressão, sendo desenvolvida por outro grupo. Todos se reúnem e decidimos quais funcionalidades a classe de impressão terá e quais métodos públicos serão disponibilizados. Feito isso, uma interface contendo a assinatura destes métodos é disponibilizada para todos e o desenvolvimento continua. Mais tarde, quando a classe de impressão estiver sendo desenvolvida, ela poderá implementar a interface anteriormente disponibilizada e tudo está resolvido.

Sendo assim, uma interface na linguagem de programação Java é um tipo referência, similar a uma classe. A diferença é que uma interface pode conter apenas constantes e assinaturas e métodos. Não há a implementação dos corpos dos métodos. Além disso, interfaces não podem ser instanciadas usando new. Veja o que acontece quando tentamos fazer isso (lembre-se de que List é interface):

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da interface List
    List lista = new List();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:6: java.util.List is abstract; 
cannot be instantiated
    List lista = new List();
                 ^
1 error


Interfaces devem ser implementadas por classes ou extendidas por outras interfaces. Agora, um detalhe interessante. Se você verificar a API do Java, verá que a interface List é implementada pelas classes AbstractList, ArrayList, LinkedList e Vector. Desta forma, o código anterior pode ser modificado para:

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da interface List
    List lista = new ArrayList();
  } 
}

Este código compila normalmente e fortalece nossa discussão a respeito da interface de impressão. O sistema inteiro pode fazer referências a uma interface e, para que ele funcione da forma esperada, só precisamos fornecer a classe que implementa a interface no momento de instanciar os objetos. Isso demonstra que o nome de uma interface pode ser usado em qualquer lugar no qual um tipo da classe que a implementa seja necessário.

Vamos ver agora como criar uma interface chamada Pessoa. Veja:

public interface Pessoa{
  public void setNome(String nome); 
  public String getNome();
}


Salve esta interface como Pessoa.java e a compile. Pronto! Esta interface já pode ser usada no sistema, contanto que todos do grupo tenham concordado com as assinaturas dos métodos. Agora observe uma classe Cliente que implementa esta interface:

public class Cliente implements Pessoa{ 
  private String nome;
  private int idade;

  public void setNome(String nome){
    this.nome = nome;
  } 

  public String getNome(){
    return this.nome;
  }
}

Salve este código como Cliente.java e o compile. O primeiro detalhe a observar é o uso da palavra-chave implements para mostrar que a classe implementa a interface Pessoa. Note também que a classe fornece implementação para todos os métodos da interface. Não seguir esta regra geraria o seguinte erro de compilação:

Cliente.java:1: Cliente is not abstract and 
does not override abstract method getNome() in 
Pessoa
public class Cliente implements Pessoa{
       ^
1 error


Em resumo, uma interface define um protocolo de comunicação entre dois objetos e pode conter, além das assinaturas dos métodos, constantes. Neste caso todas estas constantes serão implicitamente public, static e final. Mesmo que estes modificadores sejam omitidos.


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um arquivo em Java usando o método delete() da classe File - Curso de Java para iniciantes

Quantidade de visualizações: 226 vezes
Nesta dica mostrarei como podemos usar o método delete() da classe File da linguagem Java para excluir um arquivo no computador local. Se o arquivo for excluído com sucesso, o retorna será true, e false em caso contrário.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.io.*;
 
public class Estudos{
  public static void main(String[] args){
    File arquivo = new File("C:\\estudos_java\\osmar.txt");
         
    if(arquivo.delete()){
      System.out.println("Arquivo excluido com sucesso.");
    }
    else{
      System.out.println("Não foi possivel excluir o arquivo");
    }
  }
}

Ao executar este código nós teremos o seguinte resultado:

Arquivo excluido com sucesso.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Como calcular e exibir os 50 primeiros números primos em Java

Quantidade de visualizações: 10919 vezes
Pergunta/Tarefa:

Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo.

Escreva um programa (algorítmo) Java que usa um laço for, while ou do...while para calcular e exibir os 50 primeiros números primos.

Sua saída deverá ser parecida com:

50 primeiros numeros primos:

     2     3     5     7    11    13    17    19    23    29
    31    37    41    43    47    53    59    61    67    71
    73    79    83    89    97   101   103   107   109   113
   127   131   137   139   149   151   157   163   167   173
   179   181   191   193   197   199   211   223   227   229
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    int quantidade = 50; // quantidade de números primos
    int contador = 0; // quantidade de números primos encontrados
    int numero = 0; // inteiro inicial             
               
    // Lembre-se! O número 1 não é primo
    System.out.println(quantidade + " primeiros numeros primos:\n");
  
    // laço while será executado até encontrar os 50 primeiros números primos 
    while(contador < quantidade){
      boolean primo = true;
                       
      // se o valor de i for 7, a variável j do laço contará
      // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o 
      // módulo de 7 por qualquer um dos valores neste intervalo 
      // for igual a 0, então o número não é primo
      for(int j = 2; j <= (numero / 2); j++){
        if(numero % j == 0){
          primo = false; // não é primo
          break;
        }
      }
    
      if((primo) && (numero > 1)){
        System.out.printf("%6d", numero);
        contador++; // encontramos um número primo
      
        if(contador % 10 == 0){
          System.out.println();
        }
      }  
      
      numero++;
    }
  }
}



VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o condicional If...Then e If...Then...Else em VB.NET

Quantidade de visualizações: 18211 vezes
Uma das estruturas condicionais mais usadas em VB.NET é o If...Then. Esta estrutura avalia uma condição e executa um bloco de códigos baseado no resultado. Veja um exemplo:

Dim valor As Integer = 10

If valor > 9 Then
  Console.WriteLine("Valor é maior que 10")
End If

Há casos em que queremos que um bloco de códigos seja também executado caso a condição avaliada retorne um valor falso. Para isso podemos usar a estrutura If...Then...Else. Veja:

Dim valor As Integer = 10

If valor > 10 Then
  Console.WriteLine("Valor é maior que 10")
Else
  Console.WriteLine("Valor é menor ou igual a 10")
End If

Veja agora como é possível testarmos três condições:

Dim valor As Integer = 10

If valor > 10 Then
  Console.WriteLine("Valor é maior que 10")
ElseIf valor < 10 Then
  Console.WriteLine("Valor é menor que 10")
Else
  Console.WriteLine("Valor é igual a 10")
End If

Todos os testes efetuados em uma estrutura If precisam retornar um valor True ou False. Veja como isso é verdade no trecho de código a seguir:

Dim valor As Integer = 15

If (valor > 10) = True Then
  Console.WriteLine("Valor é maior que 10")
End If

Veja que usamos parênteses ao redor da condição para deixar claro a quem ler nosso código, que a condição é testada e só então seu resultado é comparado com a palavra-chave True. Podemos usar mais parênteses. Veja:

Dim valor As Integer = 15

If ((valor > 10) = True) Then
  Console.WriteLine("Valor é maior que 10")
End If

O compilador nunca reclama dos parênteses. Podemos usá-los à vontade para tornar o código mais légivel.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Eletricidade - Leis de Ohm

Exercícios Resolvidos de Física usando Java - Calcule a resistência elétrica de um resistor que apresenta 10 A

Quantidade de visualizações: 1190 vezes
Pergunta/Tarefa:

Calcule a resistência elétrica de um resistor que apresenta 10 A de intensidade de corrente elétrica e 200 V de diferença de potencial (ddp).

Sua saída deverá ser parecida com:

Informe a corrente: 10
Informe a tensão: 200
A resistência elétrica é: 20.0
Resposta/Solução:

Segundo a Primeira Lei de Ohm, a resistência é calculada pela seguinte expressão:

\[R = \frac{U}{I} \]

Onde:

R = Resistência elétrica (medida em ohms (&#937;)).
U = Tensão elétrica U, (medida em volts (V), ou joules por coulomb).
I = Corrente elétrica I (medida em ampères (A), ou coulombs por segundo).

Como os dados que temos já estão no SI (Sistema Internacional de Medidas), tudo que temos a fazer é jogá-los na fórmula. Veja o código Java que pede para o usuário informar a intensidade da corrente elétrica e a voltagem (ddp) e retorna a resistência elétrica no resistor:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos usar a classe Scanner para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar os dados
    System.out.print("Informe a corrente: ");
    double corrente = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe a tensão: ");
    double tensao = Double.parseDouble(entrada.nextLine());
    
    // agora vamos calcular a resistência
    double resistencia = tensao / corrente;
    
    // e mostramos o resultado
    System.out.println("A resistência elétrica é: " + resistencia);
  }
}



Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Delphi para iniciantes - Como escrever uma função que retorna uma matriz de Integer

Quantidade de visualizações: 13703 vezes
Em algumas situações precisamos retornar uma matriz a partir de uma função. Nesta dica eu mostro como isso pode ser feito. O primeiro passo é declarar um novo tipo. Veja:

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

Aqui o tipo TMatrizInteiros representa uma matriz de inteiros. Veja a unit completa para o exemplo:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type // vamos declarar um novo tipo
  TMatrizInteiros = array of Integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// função usada para construir e retornar uma
// matriz de Integer
function obterValores: TMatrizInteiros;
var
  tempArray: TMatrizInteiros;
  i: integer;
begin
  // vamos definir o tamanho da matriz
  SetLength(tempArray, 10);

  // vamos inicializar a matriz com os números pares de 0 até 18
  // note que em matrizes abertas o índice inicial é sempre 0
  for i := Low(tempArray) to High(tempArray) do
    begin
      tempArray[i] := i * 2;
    end;

  Result := tempArray; // vamos retornar a matriz
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  valores: TMatrizInteiros; // uma matriz do tipo TMatrizInteiros
  i: Integer;
begin
  valores := obterValores();

  // que já temos a matriz, vamos exibir os valores de
  // seus elementos
  for i := 0 to High(valores) do
    begin
      Memo1.Lines.Add(IntToStr(valores[i]));
    end;
end;

end.

Note que a função retornará uma matriz aberta (open array). Desta forma, seu índice inicial será sempre 0.


Python ::: Dicas & Truques ::: Livros, E-books, Apostilas e Cursos

E-Book 650 Dicas, Truques e _Exercícios Resolvidos_ de Python - PDF com 1.200 páginas

Quantidade de visualizações: 1335 vezes


Domine lógica de programação e a linguagem Python usando o nosso E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python. Trata-se de um PDF com 1.200 páginas para você estudar onde e quando quiser. Todos os códigos estão em português e comentados linha a linha para que você, em pouco tempo, adquira todo o conhecimento necessário para se tornar um(a) programador(a) experiente em Python.

Este e-book contém anotações, dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, internet, arquivos e diretórios, Pandas, Pygame, Matplotlib, exercícios resolvidos, programação orientada a objetos e muito mais.

Veja o conteúdo completo desse e-book: Conteúdo do E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas .

Adquira pelo WhatsApp +55 (062) 98553-6711 (Osmar) ou diretamente pelo Mercado Pago (PIX, cartão de crédito, boleto, etc).

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 68 usuários muito felizes estudando em nosso site.