Member Avatar for Jenniferting

So i have write the following code (above) and now for the second part i am required to apply the Complex Number into finding the voltage across the Resistor in a series RLC circuit.
The following tasks :

Create an executable program Resonant Circuit, which allows you to output the voltage across the resistor. Output is through the main function.

Capture

The characteristic values ​​of the resistance R (10 Ω), the inductance L (10 mH)
and the capacitance C (10 nF) to be created as a constant in the function.

Create a function voltageOverResistor that calculates the complex AC voltage across the resistor. The method gives the angular frequency as a parameter. The input voltage should be assumed to be 1 V.

The output of the voltage is in the range of 10 kHz to 100 kHz in
Steps of 10 kHz.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI  3.14159

struct complex
{
  int real, img;
};

int main()
{
  int choice, temp1, temp2, temp3;
  struct complex a, b, c;

  while(1)
  {
    printf("Press 1 to add two complex numbers.\n");
    printf("Press 2 to subtract two complex numbers.\n");
    printf("Press 3 to multiply two complex numbers.\n");
    printf("Press 4 to divide two complex numbers.\n");
    printf("Press 5 to find the absolute valute of complex numbers.\n");
    printf("Press 6 to find the angle.\n");
    printf("Press 7 to exit.\n");
    printf("Enter your choice\n");
    scanf("%d",&choice);

    if( choice == 7)
      exit(0);

    if(choice >= 1 && choice <= 4)
    {
      printf("Enter a and b where a + ib is the first complex number.");
      printf("\na = ");
      scanf("%d", &a.real);
      printf("b = ");
      scanf("%d", &a.img);
      printf("Enter c and d where c + id is the second complex number.");
      printf("\nc = ");
      scanf("%d", &b.real);
      printf("d = ");
      scanf("%d", &b.img);
    }
    if ( choice == 1 )
    {
      c.real = a.real + b.real;
      c.img = a.img + b.img;

      if ( c.img >= 0 )
        printf("Sum of two complex numbers = %d + %di",c.real,c.img);
      else
        printf("Sum of two complex numbers = %d %di",c.real,c.img);
    }
    else if ( choice == 2 )
    {
      c.real = a.real - b.real;
      c.img = a.img - b.img;

      if ( c.img >= 0 )
        printf("Difference of two complex numbers = %d + %di",c.real,c.img);
      else
        printf("Difference of two complex numbers = %d %di",c.real,c.img);
    }
    else if ( choice == 3 )
    {
      c.real = a.real*b.real - a.img*b.img;
      c.img = a.img*b.real + a.real*b.img;

      if ( c.img >= 0 )
        printf("Multiplication of two complex numbers = %d + %di",c.real,c.img);
      else
        printf("Multiplication of two complex numbers = %d %di",c.real,c.img);
    }

       else if ( choice == 5)
        {
         float abs;  
         printf("Enter a and b where a + ib is the first complex number.");
          printf("\na = ");
          scanf("%d", &a.real);
          printf("b = ");
          scanf("%d", &a.img);

          abs = sqrt(a.real*a.real + a.img*a.img ); 
          printf("Absolute value of the complex number is = %f", abs);
     }
      else if ( choice == 6)
        {
         float angle;  
         printf("Enter a and b where a + ib is the first complex number.");
          printf("\na = ");
          scanf("%d", &a.real);
          printf("b = ");
          scanf("%d", &a.img);

          angle = atan(a.img/a.real); 
          printf("Angle of the complex number is = %f", angle*180/PI);
     }



    else if ( choice == 4 )
    {
      if ( b.real == 0 && b.img == 0 )
        printf("Division by 0 + 0i is not allowed.");
      else
      {
        temp1 = a.real*b.real + a.img*b.img;
        temp2 = a.img*b.real - a.real*b.img;
        temp3 = b.real*b.real + b.img*b.img;

        if ( temp1%temp3 == 0 && temp2%temp3 == 0 )
        {
          if ( temp2/temp3 >= 0)
            printf("Division of two complex numbers = %d + %di",temp1/temp3,temp2/temp3);
          else
            printf("Division of two complex numbers = %d %di",temp1/temp3,temp2/temp3);
        }
        else if ( temp1%temp3 == 0 && temp2%temp3 != 0 )
        {
          if ( temp2/temp3 >= 0)
            printf("Division of two complex numbers = %d + %d/%di",temp1/temp3,temp2,temp3);
          else
            printf("Division of two complex numbers = %d %d/%di",temp1/temp3,temp2,temp3);
        }
        else if ( temp1%temp3 != 0 && temp2%temp3 == 0 )
        {
          if ( temp2/temp3 >= 0)
            printf("Division of two complex numbers = %d/%d + %di",temp1,temp3,temp2/temp3);
          else
            printf("Division of two complex numbers = %d %d/%di",temp1,temp3,temp2/temp3);
        }
        else
        {
          if ( temp2/temp3 >= 0)
            printf("Division of two complex numbers = %d/%d + %d/%di",temp1,temp3,temp2,temp3);
          else
            printf("Division of two complex numbers = %d/%d %d/%di",temp1,temp3,temp2,temp3);
        }

      }


    }
    else
      printf("Invalid choice.");

    printf("\nPress any key to enter choice again...\n");
  }
}

Recommended Answers

All 2 Replies

Do you have a question?

Member Avatar for Jenniferting

I was required to write a programme about how complex number work (addition, absolute value, etc.) and now the second part of the question im needed to apply how complex number works into finding the voltage across the resistor. tq.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.