Mudanças entre as edições de "AULA 14 - Programação 1 - Engenharia"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
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;
 +
 
 +
  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 das 09h20min 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;
  
  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.