|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
C++ domandine cazzate ma un po' urgenti aspetto risposte
il tipo double comprende i numeri con la virgola e anche i numeri con le frazioni?
1) Es #include <iostream.h> void main (){ double a; double b=5/3; double c=3/4; double d=b+c; cout <<"la somma tra 5/3 e 3/4 e' "<<d<<'\n'; double e=b-c; cout <<"la differenza tra 5/3 e 3/4 e' "<<e<<'\n'; cin >> a; } Domanda perche' non mi da il risultato in decimali o con le frazioni visto che anche la variabile risultato è un double?perche' lo approssima? 2) Es Programma che calcola le soluzioni di una equazioni di secondo grado omogenea cosa sbaglio?funziona tutto ma non da' il risultato! #include <iostream.h> void main () { long double a,b,c,z; long double d=-(c/b); long double e=(b*b)-(4*a*c); cout <<"Questo e' un programma che trova le soluzioni delle equazioni di"<<'\n'; cout <<"secondo grado omogenee del tipo:"<<'\n'; cout <<"ax^2+bx+c=0"<<'\n'; cout <<"Inserisci il coefficiante della a:"<<'\n'; cin >>a; cout <<"Inserisci il coefficiante della b:"<<'\n'; cin >>b; cout <<"Inserisci il coefficiante della c:"<<'\n'; cin >>c; if (a==0 && b==0) {cout <<"L'equazione e' degenere!"<<'\n';} else if (a==0) {cout <<"L'equazione e' di primo grado! "<<b<<"x+"<<c<<"=0"<<'\n'; cout <<"La soluzione dell'equazione e': "<<d;} else {{cout <<"L'equazione e' del tipo: "<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<'\n'; cout <<"Le soluzione dell'equazione sono: "<<'\n';} if (e<0) cout <<"Determinante negativo le soluzioni non appartengono al campo reale!"<<'\n'; else {cout <<"Le soluzioni sono: "<<'\n'; long double f=(-b+sqrt(e))/(2+a); long double g=(-b-sqrt(e))/(2+a); cout <<"Prima= "<<f<<'\n'; cout <<"Seconda= "<<g<<'\n'; }} cin >>z; } Forza ragazzi che il terzo appello si avvicina! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
a quanto ho capito tu vuoi questo
sui float inposta il numero di decimali dopo la virola: cout.preciosion(3); questo produce un numero con tre numeri dopo la virgola; variando il parametro varia la preciosione |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
per il secondo:
#include "stdafx.h" #include <iostream.h> #include <math.h> void main () { long double a,b,c,z; long double d; long double e; cout <<"Questo e' un programma che trova le soluzioni delle equazioni di"<<'\n'; cout <<"secondo grado omogenee del tipo:"<<'\n'; cout <<"ax^2+bx+c=0"<<'\n'; cout <<"Inserisci il coefficiante della a:"<<'\n'; cin >>a; cout <<"Inserisci il coefficiante della b:"<<'\n'; cin >>b; cout <<"Inserisci il coefficiante della c:"<<'\n'; cin >>c; e=(b*b)-(4*a*c); d=-(c/b); if (a==0 && b==0) {cout <<"L'equazione e' degenere!"<<'\n';} else if (a==0) {cout <<"L'equazione e' di primo grado! "<<b<<"x+"<<c<<"=0"<<'\n'; cout <<"La soluzione dell'equazione e': "<<d;} else {{cout <<"L'equazione e' del tipo: "<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<'\n'; cout <<"Le soluzione dell'equazione sono: "<<'\n';} if (e<0) cout <<"Determinante negativo le soluzioni non appartengono al campo reale!"<<'\n'; else {cout <<"Le soluzioni sono: "<<'\n'; long double f=(-b + sqrt(e))/(2+a); long double g=(-b-sqrt(e))/(2+a); cout <<"Prima= "<<f<<'\n'; cout <<"Seconda= "<<g<<'\n'; }} cin >>z; } senza la libreria math non lo puoi nemmeno compilare, dato che serve per la funzione sqrt(), per quanto riguarda i risultati, E e D vanno calcolati dopo che hai i valori, altrimenti non và niente. in alternativa puoi dichiarare le variabili dopo aver chiesto i dati all'utente, altrimenti i calcoli vengono fatti su variabili non iniziallizzate (strano che il tuo compilatore non abbia messo i messaggi di warning)... ciao |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
grazie NA01 ho capito anche come mai non prendeva le frazioni il tipo double vuole l'inizializzazione della variabile non come double a=3/4 ma come double 3.0/4.0!per il secondo hai ragione gli ho dato da calcolare una variabile senza che abbia inumeri in ingresso strano comunque che il dev c++(usoquesto di compilatore) non mi abbia dato errore!
grazie comunque |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
te che sei un grande del c++ mi sapresti spiegare brevemente perche'
++(++i) si puo' fare mentre (i++)++ no? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
nessuno mi sa rispondere?
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2001
Messaggi: 428
|
Il motivo dovrebbe essere questo:
l'operatore di post incremento (almeno quello applicato su tipi base) deve essere applicato ad un oggetto alterabile (l-value) mentre il risultato di (var++) e' un valore e quindi non alterabile. Ciao.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
in parole piu' semplici???e un esempio per favore!grazie
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
poi avrei anche un altra domandina!lo so' scasso!!!!!!!!!!
![]() #include <iostream.h> void main () { int a,n; cin>>n; while(n--) {cout<<n; cout<<'*';} cin>>a; } se inserisco 5 nel cout abbiamo 4*3*2*1*0*. Perche' dopo lo 0 abbiamo l'asterisco? in 0 ,che in c++ significa falso, la condizione del ciclo si interrompe e non dovrebbe stampare * perche' invece lo stampa???? |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perchè n-- non ritorna il valore di n decrementeato di 1, ma il valore di n... Il decremento avviene alla fine dello statement in cui n-- è inserito...
La diffrenza fra gli operatori unari di pre- e post- incremento/decremento sta proprio lì... n = 9; x = n--; //in x ci finisce 9 E' equivalente a fare: n = 9; x = n; --n; Se invece si fa: n = 9; x = --n; //in x ci finisce 8, perchè ild ecremento viene fatto prima dell'assegnazione Quindi se n = 1 e faccio: while(n--) //n-- ritorna 1 e solamente dopo n viene decrementato { cout << n; //stampa 0 } |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1302
|
grazie mille
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:54.