a735cplx.cpp

来自「quinto esempi vari per c++ (schemi base)」· C++ 代码 · 共 91 行

CPP
91
字号
// nuovi concetti: incapsulamento, metodi, metodi inline
#include <iostream>

using namespace std;

struct Complesso {
  float re, im;
  void leggi();
  void scrivi();
  Complesso add(Complesso);
  Complesso sub(Complesso);
  Complesso mul(Complesso);
  Complesso divi(Complesso);
  float modquad() {return re * re + im * im;}
};


void Complesso::leggi() {
  cout << "    parte reale: ";
  cin >> re;
  cout << "    parte immag: ";
  cin >> im;
}

void Complesso::scrivi() {
  cout << re << " ";
  if (im)
    if (im > 0)
      cout << " +i" << im;
    else
      cout << " -i" << -im;
  cout << endl;
}

Complesso Complesso::add (Complesso c) {
  Complesso sum;
  sum.re = re + c.re;
  sum.im = im + c.im;
  return sum;
}

Complesso Complesso::sub (Complesso c) {
  Complesso diff;
  diff.re = re - c.re;
  diff.im = im - c.im;
  return diff;
}

Complesso Complesso::mul (Complesso c) {
  Complesso prod;
  prod.re = re * c.re - im * c.im;
  prod.im = re * c.im + im * c.re;
  return prod;
}

Complesso Complesso::divi (Complesso c) {
  Complesso divis;
  float m = c.modquad();
  divis.re = ( re * c.re + im * c.im) / m;
  divis.im = ( im * c.re - re * c.im) / m;
  return divis;
}

int main() {

  Complesso a, b;

  cout << "Operazioni elementari con numeri complessi\n\n";
  cout << "primo numero\n";
  a.leggi();
  cout << "secondo numero\n";
  b.leggi();
  cout << endl;
  cout << "primo numero    = ";
  a.scrivi();
  cout << "secondo numero  = ";
  b.scrivi();
  cout << "somma           = ";
  a.add(b).scrivi();
  cout << "sottrazione     = ";
  a.sub(b).scrivi();
  cout << "moltiplicazione = ";
  a.mul(b).scrivi();
  cout << "divisione       = ";
  if (b.modquad())
    a.divi(b).scrivi();
  else
    cout << " divisione per zero" << endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?