/* Considerare due numeri complessi rappresentati come array di 2 elementi (prima cella per la parte reale e seconda per la parte immaginaria). Immettere da tastiera parte reale e parte immaginaria di ciascun numero ed il simbolo di operazione binaria che si vuole compiere con i due complessi. Con uno `switch' stabilire quale operazione fare e visualizzarne il risultato. */ #include #include int main() { int complex_1[2]; int complex_2[2]; // Immissione dei due numeri complessi. cout << "Immettere parte reale e parte immaginaria del primo " << "numero complesso: " << endl; cin >> complex_1[0] >> complex_1[1]; cout << endl; cout << "Immettere parte reale e parte immaginaria del secondo " << "numero complesso: " << endl; cin >> complex_2[0] >> complex_2[1]; cout << endl; // Immissione dell'operazione. char op; cout << "Immettere il simbolo di operazione binaria ('+', '-', '*', '/'): "; cin >> op; cout << endl; bool operazione_implementata = true; float risultato[2]; switch (op) { case '+': risultato[0] = complex_1[0] + complex_2[0]; risultato[1] = complex_1[1] + complex_2[1]; break; case '-': risultato[0] = complex_1[0] - complex_2[0]; risultato[1] = complex_1[1] - complex_2[1]; break; case '*': risultato[0] = complex_1[0]*complex_2[0] - complex_1[1]*complex_2[1]; risultato[1] = complex_1[0]*complex_2[1] + complex_1[1]*complex_2[0]; break; case '/': { float denom = pow(complex_2[0], 2.0) + pow(complex_2[1], 2.0); risultato[0] = (complex_1[0]*complex_2[0] + complex_1[1]*complex_2[1]) / denom; risultato[1] = (complex_1[1]*complex_2[0] - complex_1[0]*complex_2[1]) / denom; break; } default: cout << "Operazione non implementata!" << endl; operazione_implementata = false; } if (operazione_implementata) { // Stampa il primo numero complesso. if (complex_1[1] >= 0) cout << complex_1[0] << "+" << complex_1[1] << "*I "; else cout << complex_1[0] << complex_1[1] << "*I "; // Stampa il secondo numero complesso. if (complex_1[1] >= 0) cout << op << " " << complex_2[0] << "+" << complex_2[1] << "*I = "; else cout << op << " " << complex_2[0] << complex_2[1] << "*I = "; // Stampa il risultato. if (risultato[1] >= 0) cout << risultato[0] << "+" << risultato[1] << "*I" << endl; else cout << risultato[0] << risultato[1] << "*I" << endl; } return 0; }