Mudanças entre as edições de "AULA 14 - Programação 1 - Engenharia"
Ir para navegação
Ir para pesquisar
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 10: | Linha 10: | ||
NOTE que as funções atanf e similares retornam em RADIANOS. | NOTE que as funções atanf e similares retornam em RADIANOS. | ||
+ | |||
+ | <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | #include <math.h> | ||
+ | |||
+ | struct tipo_ret { | ||
+ | float x; | ||
+ | float y; | ||
+ | }; | ||
+ | |||
+ | struct tipo_polar { | ||
+ | float mod; | ||
+ | float ang; | ||
+ | }; | ||
+ | |||
+ | |||
+ | /* Função para converter complexo retangular em polar */ | ||
+ | |||
+ | struct tipo_polar converter_ret_pol(struct tipo_ret num_ret) | ||
+ | { | ||
+ | struct tipo_polar num_polar; | ||
+ | float aux; | ||
+ | |||
+ | aux = num_ret.x*num_ret.x + num_ret.y*num_ret.y; | ||
+ | |||
+ | /* falta a lógica para detectar o quadrante */ | ||
+ | num_polar.mod = sqrtf(aux); | ||
+ | num_polar.ang = atanf(num_ret.y/num_ret.x); | ||
+ | return num_polar; | ||
+ | } | ||
+ | |||
+ | /* Função para imprimir complexo retangular */ | ||
+ | void imprimir_complexo_ret(struct tipo_ret num_ret) | ||
+ | { | ||
+ | printf("Coordenada x = %f", num_ret.x); | ||
+ | printf("Coordenada y = %f\n", num_ret.y); | ||
+ | } | ||
+ | |||
+ | /* Função para imprimir complexo retangular */ | ||
+ | void imprimir_complexto_pol(struct tipo_ret num_ret) | ||
+ | { | ||
+ | printf("Coordenada x = %f", num_ret.x); | ||
+ | printf("Coordenada y = %f\n", num_ret.y); | ||
+ | } | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | struct tipo_ret num1; | ||
+ | struct tipo_polar num2; | ||
+ | |||
+ | num1.x = 5; | ||
+ | num1.y = 10; | ||
+ | num2 = converter_ret_pol (num1); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
===Exercício 2=== | ===Exercício 2=== |
Edição atual tal como às 09h21min de 15 de outubro de 2014
Exercícios com structs
Exercício 1
Implementar uma função converte_para_polar que recebe como parâmetro um número complexo na forma retangular (representado por uma struct). A função deve retornar uma struct contendo o número complexo na forma polar.Usar as funções sqrtf e atanf da [matemáticas biblioteca matemática]. Como converter:
- ou
NOTE que as funções atanf e similares retornam em RADIANOS.
#include <stdio.h>
#include <math.h>
struct tipo_ret {
float x;
float y;
};
struct tipo_polar {
float mod;
float ang;
};
/* Função para converter complexo retangular em polar */
struct tipo_polar converter_ret_pol(struct tipo_ret num_ret)
{
struct tipo_polar num_polar;
float aux;
aux = num_ret.x*num_ret.x + num_ret.y*num_ret.y;
/* falta a lógica para detectar o quadrante */
num_polar.mod = sqrtf(aux);
num_polar.ang = atanf(num_ret.y/num_ret.x);
return num_polar;
}
/* Função para imprimir complexo retangular */
void imprimir_complexo_ret(struct tipo_ret num_ret)
{
printf("Coordenada x = %f", num_ret.x);
printf("Coordenada y = %f\n", num_ret.y);
}
/* Função para imprimir complexo retangular */
void imprimir_complexto_pol(struct tipo_ret num_ret)
{
printf("Coordenada x = %f", num_ret.x);
printf("Coordenada y = %f\n", num_ret.y);
}
main()
{
struct tipo_ret num1;
struct tipo_polar num2;
num1.x = 5;
num1.y = 10;
num2 = converter_ret_pol (num1);
}
Exercício 2
Implementar uma função que some dois números complexos no formato retangular e retorne a soma como um complexo retangular.
Exercício 3
Implementar uma função que some dois números complexos no formato polar e retorna a soma no formato polar.