Domanda da principiante.

di il
6 risposte

Domanda da principiante.

Buona sera a tutti, solo di recente mi sono interessato al mondo della programmazione e sono alle primissime armi. Chiedo scusa in anticipo se le mie richieste non possano essere chiare, o formulate con il giusto linguaggio. Comunque sia, seguendo qualche guida su internet ho provato a creare un programma banalissimo che possa calcolare l'area del cerchio, inserendo il valore del raggio. Nel momento in cui provo a far stampare su schermo il risultato, mi dà sempre 0, indipendentemente dal valore che attribuisca al raggio. Solo per curiosità ho provato a mettere cout<<r alla fine, e mi dava effettivamente il valore del raggio. Credo che il problema allora stia nella definizione della variabile rquad, ma non ne sono sicuro perché ho abbastanza confusione riguardo queste cose. Vi ringrazio in anticipo, e vi chiedo di perdonare la mia ignoranza in materia,

#include <iostream>
#include <cmath>
using namespace std;

// Definizione costanti
#define PI 3.14159

// Programma
int main ()
{
	// Definizione formule
    float r, rquad;
    float Ar;
    rquad=pow(r,2);
    Ar=PI*rquad;
    
    // Calcoli
	cout<<"Ciao, qui puoi calcolare l'area del cerchio'"<< endl;
	cout<<"Inserisci la lunghezza del raggio:"<< endl;
	cin>>r;
	cout<<"L'area del cerchio in questione e\':"<<endl;
	cout<<Ar;
	
	return 0;
}

6 Risposte

  • Re: Domanda da principiante.

    Ciao
    il problema sta nel fatto che fai prima i calcoli e poi richiedi l'input
    cosi facendo ti calcola la potenza di 0 portandoti tutti i dati a zero.
    basta che porti i calcoli dopo l'input
    
      rquad=pow(r,2);
        Ar=PI*rquad;
        
    deve andare dopo la cin >>
    spero di esserti stato di aiuto
  • Re: Domanda da principiante.

    Consiglio fondamentale: lascia perdere il C++ e passa a Python.

    Il C++ e' un linguaggio complesso (PARECCHIO), che richede un approccio alla programmazione estremamente rigoroso anche per fare le cose piu' banali.
    E' complicato nella gestione della memoria, nella gestione delle stringhe (tra stringhe alla C ed alla C++) nella gestione dei vettori, delle strutture dati, ... Insomma, un disastro.

    Considera che e' complesso ANCHE per programmatori esperti (con N-mila anni di esperienza )

    Ma a parte questo, qui il problema e' decisamente piu' banale:

    immagina che l'esecuzione del tuo programmino venga fatta riga per riga.
    Quello che succede e' che calcoli 'rquad' e 'Ar' PRIMA di aver assegnato un qualche valore a 'r'!

    In altri termini, il seguente codice
    
        rquad=pow(r,2);
        Ar=PI*rquad;
    
    NON E' la definizione di una funzione (in C++ si fa in un'altro modo) ma il CALCOLO di un'espressione matematica semplice.

    E sei pure fortunato che ritorni 0, perche' se NON INIZIALIZZI il valore delle variabili ('r', 'rquad', 'Ar') il loro contenuto e' ASSOLUTAMENTE CASUALE, nel qual caso il valore di AR poterva essere un numero strampalato a caso
  • Re: Domanda da principiante.

    Grazie ad entrambi, adesso funziona. Non so se è consono al regolamento continuare la discussione qui; comunque sia il linguaggio Python è maggiormente consigliabile per un principiante autodidatta? Ho iniziato due giorni fa perché vorrei iniziare gli studi universitari in informatica ma stando frequentando uno scientifico tradizionale non ho per niente le basi in materia. Grazie ancora in anticipo.
  • Re: Domanda da principiante.

    In una parola: si.

    Comunque non pensare che il linguaggio sia 'banale' viene usato in ambito scientifico perche' ci sono un sacco di librerie scritte in C ed integrate in Python per fare le cose piu' assurde: dall'analisi delle immagini satellitari alle reti neurali, il Machine Learning, applicazioni di Intelligenza Artificiale, ecc.

    E' infinitamente piu' semplice da imparare, rispetto al C++, ma lo puoi usare in modi anche piu' sofisticati

    Il C/C++ ha senso se devi implementare algoritmi che richiedono potenza di calcolo (ad esempio le reti neurali, grafica 3D, elaborazioni di immagini, player video,... ).
    Ma per usarlo al meglio serve essere gia' un buon programmatore.

    E' come voler guidare una macchina F1: lo si puo' anche fare ma useresti il linguaggio all'1% delle sue potenzialita'
  • Re: Domanda da principiante.

    Per il livello zero suggerisco pure io Python o perfino l'inossidabile Pascal.
    La gestione stringhe C++ è quantomeno cervellotica (almeno per i principianti), quella C è difficile e rischiosa per chiunque.

    Sarà indispensabile per te conoscere il C più avanti, in quanto linguaggio pressochè "universale" (in sostanza è come avere un'infarinatura di inglese: indispensabile. anche meglio una conoscenza approfondita, ma in ogni caso un minimo ci vuole).
  • Re: Domanda da principiante.

    Okay, proseguirò con il linguaggio Python. Grazie mille, alla prossima!
Devi accedere o registrarti per scrivere nel forum
6 risposte