|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Creare un programma C++
Ciao a tutti sono nuovo nel forum.
Sto cercando di fare questo programma per esercitarmi!! Creare un programma che dato il raggio del cerchio di base di un cilindro e la sua altezza, calcoli e dia in output il peso di un cilindro sapendo che la sostanza di cui è composto ha peso specifico 3,4 g/cm3 volume= area di base * altezza; peso= volume * peso specifico; Io sono arrivato qui ma non so più cosa fare: { double r, h; cout<<"inserire il raggio r:"; cin>>r; cout<<"inserire l'altezza h:"; cin>>h; cout<<"Volume= "<<3,14*r^2*h<<"\n\n"; ..... ..... ..... system("PAUSE"); return EXIT_SUCCESS; } |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Quote:
Tipo (x+(y+1))*z poi quale sarebbe il problema? che non ti ritornano i risultati? se è cosi è probabile che siano proprio le parentesi inesistenti. |
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Ciao Sharkkk,
ho cambiato un po il tutto dai un occhiata all'URL; mi da uno strano errore quando compilo! https://drive.google.com/file/d/0B0a...it?usp=sharing Grazieee |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
guarda se funziona cosi
Codice:
#include <iostream.h>
#include <stdlib.h>
int main()
{
double r,h,a,v;
cout<<"inserisci a -> ";
cin>>r;
cout<<"\n r ="<<r<<"\n";
cout<<"inserisci h -> ";
cin>>h;
cout<<"\n h ="<<h<<"\n --------";
a=(3.14)*(r*r);
cout<<"\n a ="<<a<<"\n";
v= a*h;
cout<<"\n v ="<<v<<"\n";
system("PAUSE");
}
Per il resto ti posso dire che: -non devi scrivere 3,14 ma 3.14 -alla funzione int main(..) non devi passare argomenti (int argc,char* ...) per l'esercizio che stai svolgendo. [si usa quello che hai scritto quando passi i parametri tramite shell per esempio, tipo ./esercizio 2 3] Ultima modifica di sharkkk : 24-01-2014 alle 11:55. |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Primo errore:
1[Error] iostream.h: No such file or directory |
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Quote:
hai fatto copia incolla di quello che ti ho scritto e compilato oppure hai aggiunto qualcosa di tuo? perche da me funziona esattamente con dev-c++ come te. comunque prova ad aggiungere using namespace std; sotto l'include e a modificare #include <iostream.h> togliendoci il .h finale Codice:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
double r,h,a,v;
cout<<"inserisci a -> ";
cin>>r;
cout<<"\n r ="<<r<<"\n";
cout<<"inserisci h -> ";
cin>>h;
cout<<"\n h ="<<h<<"\n --------";
a=(3.14)*(r*r);
cout<<"\n a ="<<a<<"\n";
v= a*h;
cout<<"\n v ="<<v<<"\n";
system("PAUSE");
}
Ultima modifica di sharkkk : 24-01-2014 alle 12:03. |
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Ho fatto copia incolla e ho tolto il .h prima che lo scrivevi ma c'è sempre lo stesso problema e forse ho capito di cosa si tratta.
Io utilizzo Windows 7, non è che devo modificare/ aggiungere qualcosa nelle opzioni di compilazione? sotto la voce strumenti! |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Quote:
pero guardando il tuo screenshot vedo che hai creato un progetto e poi il sorgente .cpp. prova a cliccare su FILE->NUOVO->FILE SORGENTE, incolli, compili, salvi, esegui |
|
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Grazieeeeeee adesso funzionaaa
però ho bisogno che mi chiarisci delle ultime cose: Quando inserisco "a" (es. 3) perché lui fa r=3? Un'altra cosa, io adesso dovrei ricavare il peso del cilindro, che si trova facendo VOLUME * Peso specifico. Come faccio a fare l'operazione? peso specifico= 3.4 g/cm3 |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Perche per sbaglio ho fatto:
cout<<"inserisci a -> "; cin>>r; quando invece deve essere: cout<<"inserisci r -> "; //visualizza su una shell la scritta inserisci r -> , tra " ... " perche è una stringa, ma volendo potresti visualizzare anche il valore di una variabile senza pero le ".." cin>>r; //prende in input da shell (la finestra nera che ti appare) un valore che assegna alla variabile che tu hai inserito dopo cin>> , in questo caso la variabile double r Per quanto riguarda il peso del cilindro dovresti usare le tue conoscenze di fisica, non so se devi convertire o fare altre cose Se l'unità di misura del volume che hai trovato è g / cm3 allora puoi effettuare la moltiplicazione diretta ed è semplicissimo (VOLUME * 3,4), altrimenti devi convertire Ultima modifica di sharkkk : 24-01-2014 alle 12:35. |
|
|
|
|
|
#11 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
MMmM ok l'ho fatto e funziona perfettamente!
Adesso sto facendo un altro esercizio, come potrei contattarti in caso di problemi? mi sei stato molto d'aiuto! |
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Quote:
)comunque ti consiglio le tante guide che trovi su internet in italiano di c / c++ (io ti consiglio il primo per iniziare), di fare tanti esercizi e di non complicarti la vita scrivendo cose che non conosci altrimenti poi diventa tutto un grossissimo problema Ultima modifica di sharkkk : 24-01-2014 alle 12:46. |
|
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Sharkkk tanto per cambiare ho avuto altri problemi con un nuovo programma:
Creare un programma che date le coordinate di due punti A(x0,y0) e B(x1, y1) di un sistema di riferimento cartesiano ortogonale Oxy, calcoli e dia in output la distanza tra i due punti. ( AB= radice di (x1 - x0)^2 + (y1 - y0)^2) Ho fatto così io: #include <iostream> #include <stdlib.h> #include <cmath> using namespace std; int main() { double x,y,x1,y1,d; cout<<"inserisci la coordinata x -> "; cin>>x; cout<<"inserisci la coordinata y -> "; cin>>y; cout<<"inserisci la coordinata x1 -> "; cin>>x1; cout<<"inserisci la coordinata y1 -> "; cin>>y1; d=sqrt(x1-x)^2+(y1-y)^2; cout<<"distanza tra A e B"<<d<<"\n"; system("PAUSE"); return EXIT_SUCCESS; } |
|
|
|
|
|
#14 | |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
Quote:
sicuro che il problema non sia il solito problema delle parentesi? sqrt(x1-x)^2+(y1-y)^2; non fa la radice di tutto ma la radice della prima parentesi, dovresti scrivere sqrt((( x1-x )^2 )+...) sqrt(..) è come se fosse una funzione matematica f(x) che ti da un risultato. tu che x gli stai dando all funzione sqrt(x1-x)? gli stai dando x1-x e non (((x1-x)^2)+((y1-y)^2))). quindi il risultato della funzione sqrt(x1-x) sarà la radice di x1-x Ultima modifica di sharkkk : 24-01-2014 alle 13:51. |
|
|
|
|
|
|
#15 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
non va perchè l'elevamento a potenza in C sembra che non si faccia con x^y ma con una funzione che sta nella libreria math.h apposita. (ho verificato che poi funziona)
http://it.wikipedia.org/wiki/Math.h Ultima modifica di sharkkk : 24-01-2014 alle 14:09. |
|
|
|
|
|
#17 |
|
Junior Member
Iscritto dal: Jan 2014
Messaggi: 9
|
Risoltooo.
Ecco formula completa #include <iostream> #include <stdlib.h> #include <math.h> using namespace std; int main() { double x,y,x1,y1,d; cout<<"inserisci la coordinata x -> "; cin>>x; cout<<"inserisci la coordinata y -> "; cin>>y; cout<<"inserisci la coordinata x1 -> "; cin>>x1; cout<<"inserisci la coordinata y1 -> "; cin>>y1; d=sqrt(exp(double(x1-x))+ exp(double(y1-y))); cout<<"distanza tra A e B = "<<d<<"\n\n"; system("PAUSE"); return EXIT_SUCCESS; } |
|
|
|
|
|
#18 |
|
Member
Iscritto dal: Oct 2013
Messaggi: 158
|
piu semplice era se usavi la funzione pow(..)
d = sqrt((pow((x1-x),2)) + (pow((y1-y),2))); pow(x,y) - eleva un valore dato ad esponente, x^y |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
![]() Credo di aver capito cos'hai tentato di fare... exp(double(x1-x)) secondo te dovrebbe essere equivalente a "prendi (x1 - x), e dagli un esponente pari a 2"... Quello che hai fatto è corretto dal punto di vista della sintassi (infatti compila e va) ma in realtà stai calcolando l'esponenziale di (x1 - x). double(numero) restituisce numero in formato double precision...non lo eleva al quadrato! Codice:
int a = 5; double b = double(a); // converti a in un double Devi usare pow, come ti ha detto sharkkk. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:43.












)








