DOMANDA Piccolo aiutino in semplice programma in C++

=Dynamic=

Utente Attivo
88
3
CPU
Intel Pentium 4 640 3.21Ghz @ 4.01Ghz
Scheda Madre
Asus P5LD2-SE
HDD
Maxtor 160gb 7200rpm
RAM
3Gb Kingston DDR2
GPU
Nvidea Geforce 9800GT
Audio
Integrata
Monitor
Philips 170s
PSU
500w
OS
Windows 8 Professional 32bit
Salve a tutti, mi servirebbe un piccolo aiutino in un semplice programma in C++ ..
Sono alle prime armi.
La traccia mi dice di creare una classe cerchio e poi generare due oggetti di classe cerchio. Calcolare circonferenza e area di entrambi e infine confrontare la lunghezza della circonferenza dei due cerchi e visualizzare un opportuno messaggio.
Attributi: raggio
Metodi: Circonferenza, Area

Ho fatto il programma ma ho problemi nella memorizzazione, mi date un aiutino :asd: ??

Codice:
#include <iostream>
#include <stdlib.h>
using namespace std;
class Cerchio{
    float raggio;
    public: 
        void Assegna(float r1, float r2){
            raggio=r1;
            raggio=r2;
        }
        float Circonferenza(){
            return 6.28*raggio;
        }
        float Area(){
            return 3.14*(raggio*raggio);
        }
        Cerchio(){
            raggio=0.0;
        }        
};
int main (){
    float r1, r2;
    Cerchio cerchio1;
    Cerchio cerchio2;
    cout<< "Inserisci raggio primo cerchio ";
    cin>>r1;
    cerchio1.Assegna(r1,r2);
    cout<< "Inserisci raggio secondo cerchio ";
    cin>>r2;
    cerchio2.Assegna(r1,r2);
    cout<< "\nCirconferenza primo cerchio = " << cerchio1.Circonferenza() << "\n\n";
    cout<< "Circonferenza secondo cerchio = " << cerchio2.Circonferenza() << "\n\n";
    cout<< "Area primo cerchio = " << cerchio1.Area() << "\n\n";
    cout<< "Area secondo cerchio = " << cerchio2.Area() << "\n\n";
    if(cerchio1.Circonferenza() > cerchio2.Circonferenza()){
        cout<< "La circonferenza del primo cerchio e' piu grande\n\n";
        }
        else{
        cout<< "La circonferenza del secondo cerchio e' piu grande\n\n";
        }
    system("pause");    
    return 0;
}
 
Ultima modifica:

campo23

Utente Attivo
621
118
CPU
Ryzen 7 3700x
Dissipatore
Noctua NH-U12A
Scheda Madre
MSI X570 Gaming Edge WIFI
HDD
Samsung 960 EVO 256gb
RAM
Vengeance DDR4 32GB 3000Mhz
GPU
EVGA RTX 2060 XC Black
Monitor
Samsung U28H750
PSU
Seasonic Focus Gold 650
Case
Phanteks Eclipse P400 Tempered Glass
OS
Windows 11 Professional x64
perchè fai float r1, r2? te ne basta solo uno, visto che il raggio è solo uno...non è che quando crei un oggetto cerchio1 il dato che hai già su r1 viene memorizzato anche in r1 su cerchio2

ti basta fare cosi:

float raggio;
void Assegna(float r) {
raggio=r;
}

e dopo quando la richiami fai direttamente

float r;
cin >> r;
cerchio1.Assegna(r);
cin >> r;
cerchio2.Assegna(r);
 

=Dynamic=

Utente Attivo
88
3
CPU
Intel Pentium 4 640 3.21Ghz @ 4.01Ghz
Scheda Madre
Asus P5LD2-SE
HDD
Maxtor 160gb 7200rpm
RAM
3Gb Kingston DDR2
GPU
Nvidea Geforce 9800GT
Audio
Integrata
Monitor
Philips 170s
PSU
500w
OS
Windows 8 Professional 32bit
perchè fai float r1, r2? te ne basta solo uno, visto che il raggio è solo uno...non è che quando crei un oggetto cerchio1 il dato che hai già su r1 viene memorizzato anche in r1 su cerchio2

ti basta fare cosi:

float raggio;
void Assegna(float r) {
raggio=r;
}

e dopo quando la richiami fai direttamente

float r;
cin >> r;
cerchio1.Assegna(r);
cin >> r;
cerchio2.Assegna(r);

Grazie mille !!
Ho risolto il problema, adesso il programma funziona perfettamente :)
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!