piątek, 11 grudnia 2015

Kalkulator liczb zespolonych.

Mamy napisać program dodający, odejmujący i mnożący liczby zespolone. CO to są liczby zespolone? Są to liczby postaci:
Re + Im*i

Re - część rzeczywista
Im - część urojona
i - jednostka urojona.

Dodajemy i odejmujemy oddzielnie części rzeczywiste i urojone, przy czym jednostkę urojoną tylko przepisujemy, np.:


(2 + 3i) + (3 + 4i) = 2 + 3 +3i + 4i = 5 + 7i

Mnożenie jest nieco ciekawsze. Pamiętać należy powiem, że:

i * i = -1

Mnożymy według zasady każdy czynnik pierwszej liczby, przez każdy czynnik drugiej. Przykład:

(2 + 2i) * (1 + 3i) = 2 * 2 + 2 * 3i + 2i * 1 + 2i * 3i = 4 + 6i + 2i + 6i*i = 4 + 8i + 6*(-1)
(2 + 2i) * (1 + 3i) = 4 + 8i - 6
(2 + 2i) * (1 + 3i) = -2 + 8i

Wszystko jasne?

Nasz program korzystać będzie z instrukcji Switch, dzięki której stworzymy proste menu wyboru działania. Zastosujemy też instrukcję warunkową If, w celu poprawy wyświetlania liczb ze znakiem ujemnym. Oto kod:

package zespolone;                                                               
import java.util.Scanner;                                                        
public class Zespolone                                                           
{                                                                                
 public static void main(String[] args)                                          
 {                                                                               
  Scanner in = new Scanner(System.in);                                           
  System.out.println("podaj pierwszą liczbę:");                                  
  System.out.print("Część rzeczywista: ");                                       
  int re1 = in.nextInt();                                                        
  System.out.print("Część urojona: ");                                           
  int im1 = in.nextInt();                                                        
  System.out.println(" ");                                                       
  if ( im1 < 0 )                                                                 
  {                                                                              
   System.out.println("Wprowadzono liczbę: "+re1+" - "+ Math.abs(im1) + "i");    
  }                                                                              
  else                                                                           
  {                                                                              
   System.out.println("Wprowadzono liczbę: "+re1+" + "+im1+"i");                 
  }                                                                              
  System.out.println(" ");                                                       
  System.out.println("podaj drugą liczbę:");                                     
  System.out.print("Część rzeczywista: ");                                       
  int re2 = in.nextInt();                                                        
  System.out.print("Część urojona: ");                                           
  int im2 = in.nextInt();                                                        
  System.out.println(" ");                                                       
  if ( im2 < 0 )                                                                 
  {                                                                              
   System.out.println("Wprowadzono liczbę: "+re1+" - "+ Math.abs(im2)+"i");      
  }                                                                              
  else                                                                           
  {                                                                              
   System.out.println("Wprowadzono liczbę zespoloną: "+re1+" + "+im2+"i");       
  }                                                                              
  System.out.println(" ");                                                       
  System.out.println("<><><><><><><><><><><><><><><><><><><>");                    System.out.println("<><><><><><><><><><><><><><><><><><><>");                    System.out.println("..... Wpisz numer działania..... + - * / ");                  System.out.println("..... 1 ... + ");                                          
  System.out.println("..... 2 ... - ");                                          
  System.out.println("..... 3 ... * ");                                          
  int reW=0;                                                                     
  int imW=0;                                                                     
  int mat = in.nextInt();                                                        
  switch (mat)                                                                   
  {                                                                              
   case 1:                                                                       
  {                                                                              
   reW= re1+re2;                                                                 
   imW= im1+im2;                                                                 
   break;                                                                        
  }                                                                              
  case 2:                                                                        
  {                                                                              
   reW = re1 - re2;                                                              
   imW=im1-im2;                                                                  
   break;                                                                        
  }                                                                              
  case 3:                                                                        
  {                                                                              
   reW=re1*re2-im1*im2;                                                          
   imW=re2*im1+re1*im2;                                                          
   break;                                                                        
  }                                                                              
 }                                                                               
 if ( imW < 0 )                                                                  
 {                                                                               
  System.out.println("Wynik: "+ reW + " - "+ Math.abs(imW) +"i");                
 }                                                                               
 else                                                                            
 {                                                                               
  System.out.println("Wynik: "+ reW + " + "+ imW +"i");                          
 }                                                                               
 }                                                                               
}                                                                                








Brak komentarzy:

Prześlij komentarz