C ::: C para Engenharia ::: Física - Mecânica |
Como calcular Velocidade Vetorial Média usando a linguagem C - C para Engenharia - Física - Mecânica - CinemáticaQuantidade de visualizações: 3327 vezes |
|
Como calcular Velocidade Vetorial Média usando a linguagem C Na Física, mais especificamente na Mecânica e Cinemática, nós estamos o tempo todo interessados em medir a "rapidez" com que uma partícula se move de um ponto para outro ponto. Por partícula podemos entender qualquer móvel: um carro, um avião, uma bola, uma pessoa, etc. No caso de um movimento bidimensional ou tridimensional nós devemos considerar a grandeza velocidade média como vetores e usar a notação vetorial. Em outras dicas do site você encontrará cálculos envolvendo vetores e até mesmo calculadoras com as operações vetoriais mais comuns. Dessa forma, a fórmula para obtenção da Velocidade Vetorial Média é: \[\vec{v}_\text{méd} = \frac{\Delta \vec{r}}{\Delta t} \] Onde __$\Delta \vec{r}__$ é a variação da posição da partícula e __$\Delta t__$ é a variação do tempo entre os dois deslocamentos cuja velocidade vetorial média querermos medir. Antes de vermos o código C, dê uma boa olhada na imagem a seguir: ![]() Nosso objetivo será calcular a velocidade vetorial média da partícula saindo da posição __$\vec{r}_1__$ = 10__$\hat{\imath}__$ + 7__$\hat{\jmath}__$ m (10, 7), no instante t1 = 2s, e indo para a posição __$\vec{r}_2__$ = 12__$\hat{\imath}__$ + 2__$\hat{\jmath}__$ m (12, 2) em t2 = 7s. Note que o trajeto da partícula foi marcado de verde na imagem. E agora, finalmente, vamos ao código C que lê os valores das coordenadas x e y dos dois vetores de posições (inicial e final), o tempo de deslocamento inicial e final e mostra o vetor velocidade média:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
// coordenadas dos dois vetores de posições
float x1, y1, x2, y2;
// guarda o vetor delta r (variação do deslocamento)
float delta_r_x, delta_r_y;
// guarda o tempo inicial, tempo final e variacao (em segundos)
float tempo_inicial, tempo_final, delta_t;
// guarda as coordenadas do vetor velocidade
float vetor_vm_x, vetor_vm_y;
// x e y do primeiro vetor
printf("Coordenada x do primeiro vetor: ");
scanf("%f", &x1);
printf("Coordenada y do primeiro vetor: ");
scanf("%f", &y1);
// x e y do segundo vetor
printf("Coordenada x do segundo vetor: ");
scanf("%f", &x2);
printf("Coordenada y do segundo vetor: ");
scanf("%f", &y2);
// vamos ler o tempo inicial e tempo final
printf("Tempo inicial em segundos: ");
scanf("%f", &tempo_inicial);
printf("Tempo final em segundos: ");
scanf("%f", &tempo_final);
// vamos calcular o vetor delta r
delta_r_x = x2 - x1;
delta_r_y = y2 - y1;
// vamos calcular o delta t (variação do tempo)
delta_t = tempo_final - tempo_inicial;
// finalmente calculamos o vetor velocidade média
vetor_vm_x = delta_r_x / delta_t;
vetor_vm_y = delta_r_y / delta_t;
// mostramos o resultado
printf("O Vetor Velocidade Média é: (%.2f, %.2f)m/s",
vetor_vm_x, vetor_vm_y);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Coordenada x do primeiro vetor: 10 Coordenada y do primeiro vetor: 7 Coordenada x do segundo vetor: 12 Coordenada y do segundo vetor: 2 Tempo inicial em segundos: 2 Tempo final em segundos: 7 O Vetor Velocidade Média é: (0.40, -1.00)m/s Pressione qualquer tecla para continuar. . . Note que aqui nós estamos usando vetores do R2, mas o processo é o mesmo para vetores do R3. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Dart - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 1350 vezes |
|
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Dart que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando Dart:
// Vamos importar a biblioteca dart:io
import 'dart:io';
void main(){
// vamos ler o primeiro lado do triângulo
stdout.write("Informe o primeiro lado do triângulo: ");
int lado_a = int.parse(stdin.readLineSync());
// vamos ler o segundo lado do triângulo
stdout.write("Informe o segundo lado do triângulo: ");
int lado_b = int.parse(stdin.readLineSync());
// vamos ler o terceiro lado do triângulo
stdout.write("Informe o terceiro lado do triângulo: ");
int lado_c = int.parse(stdin.readLineSync());
// os lados informados formam um triângulo?
if((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c))
&& (lado_c < (lado_a + lado_b))){
// é um triângulo equilátero (todos os lados iguais)?
if((lado_a == lado_b) && (lado_b == lado_c)){
stdout.write("\nO triângulo é equilátero\n");
}
else{
// é isósceles (dois lados iguais e um diferente)?
if((lado_a == lado_b) || (lado_a == lado_c) || (lado_c == lado_b)){
stdout.write("\nO triângulo é isósceles\n");
}
else{
// é escaleno
stdout.write("\nO triângulo é escaleno\n");
}
}
}
else{
stdout.write("\nOs lados informados não formam um triângulo.\n");
}
}
|
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em Java dados dois pontos no plano cartesianoQuantidade de visualizações: 2060 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 Java 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:
package arquivodecodigos;
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);
// coordenadas dos dois pontos
double x1, y1, x2, y2;
// guarda o coeficiente angular
double m;
// x e y do primeiro ponto
System.out.print("Coordenada x do primeiro ponto: ");
x1 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do primeiro ponto: ");
y1 = Double.parseDouble(entrada.nextLine());
// x e y do segundo ponto
System.out.print("Coordenada x do segundo ponto: ");
x2 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do segundo ponto: ");
y2 = Double.parseDouble(entrada.nextLine());
// vamos calcular o coeficiente angular
m = (y2 - y1) / (x2 - x1);
// mostramos o resultado
System.out.println("O coeficiente angular é: " + m);
System.out.println("\n\n");
System.exit(0);
}
}
Ao executar este código Java 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.6666666666666666 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__$):
package arquivodecodigos;
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);
// coordenadas dos dois pontos
double x1, y1, x2, y2;
// guarda os comprimentos dos catetos oposto e adjascente
double cateto_oposto, cateto_adjascente;
// guarda o ângulo tetha (em radianos) e a tangente
double tetha, tangente;
// x e y do primeiro ponto
System.out.print("Coordenada x do primeiro ponto: ");
x1 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do primeiro ponto: ");
y1 = Double.parseDouble(entrada.nextLine());
// x e y do segundo ponto
System.out.print("Coordenada x do segundo ponto: ");
x2 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do segundo ponto: ");
y2 = Double.parseDouble(entrada.nextLine());
// 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);
// mostramos o resultado
System.out.println("O coeficiente angular é: " + tangente);
System.out.println("\n\n");
System.exit(0);
}
}
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. |
Java ::: Coleções (Collections) ::: ArrayList |
Como rotacionar os elementos de uma ArrayList do Java para frente ou para trás usando o método rotate()Quantidade de visualizações: 11698 vezes |
Nesta dica mostrarei como podemos usar o método rotate() da classe Collections da linguagem Java para rotacionar os elementos de uma ArrayList. Veja sua assinatura:void rotate(List<?> list, int distance) Este método faz com que um elemento na posição i seja movido para a posição (distance + i) % list.size(). Se você quiser inverter a ordem da rotação, forneça um valor negativo para o argumento distance. Veja o código completo para o exemplo:
package estudos;
import java.util.ArrayList;
import java.util.Collections;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
// exibe os elementos da ArrayList
System.out.println("Antes da rotação:\n");
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));
// Vamos rotacionar os elementos uma posição
Collections.rotate(nomes, 1);
// exibe os elementos da ArrayList
System.out.println("\nDepois da rotação:\n");
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Antes da rotação: Carlos Maria Fernanda Osmar Depois da rotação: Osmar Carlos Maria Fernanda |
Nossas 20 dicas & truques de programação mais populares |
|
C - Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra Linear JavaScript - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como usar objetos Set em seus códigos JavaScript |
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 |







