Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2014, 10:12   #1
vincenzomancari
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;
}
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 10:27   #2
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
<<"Volume= "<<3,14*r^2*h<<"\n\n";
visto che ti stai esercitando l'operazione 3,14*r^2*h prima di tutto dovresti scriverla con le giuste parentesi.
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.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 10:35   #3
vincenzomancari
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
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 10:48   #4
sharkkk
Member
 
L'Avatar di sharkkk
 
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 quegli errori non ne ho idea, lascio la parola a quelli molto piu esperti di me.

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 10:55.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 10:54   #5
vincenzomancari
Junior Member
 
Iscritto dal: Jan 2014
Messaggi: 9
Primo errore:
1[Error] iostream.h: No such file or directory
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 10:57   #6
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
Primo errore:
1[Error] iostream.h: No such file or directory


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");   
}
fammi sapere

Ultima modifica di sharkkk : 24-01-2014 alle 11:03.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:06   #7
vincenzomancari
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!
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:10   #8
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
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!
anche io ho windows 7.

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
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:23   #9
vincenzomancari
Junior Member
 
Iscritto dal: Jan 2014
Messaggi: 9
Grazieeeeeee adesso funzionaaa piango ahahah

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
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:29   #10
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
Quando inserisco "a" (es. 3) perché lui fa r=3?
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 11:35.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:39   #11
vincenzomancari
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!
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 11:42   #12
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
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!
scrivi qui sul forum, quello che puo essere d'aiuto a te puo essere d'aiuto agli altri come lo è stato per me (e lo è ancora )

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 11:46.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 12:23   #13
vincenzomancari
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;
}
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 12:48   #14
sharkkk
Member
 
L'Avatar di sharkkk
 
Iscritto dal: Oct 2013
Messaggi: 158
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
( AB= radice di (x1 - x0)^2 + (y1 - y0)^2)

sqrt(x1-x)^2+(y1-y)^2;
il problema qual'e? devi sempre scriverlo

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 12:51.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 12:56   #15
vincenzomancari
Junior Member
 
Iscritto dal: Jan 2014
Messaggi: 9
Modificato ma non va! Guarda lo screen!

https://drive.google.com/file/d/0B0a...it?usp=sharing
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 13:06   #16
sharkkk
Member
 
L'Avatar di sharkkk
 
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 13:09.
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 13:16   #17
vincenzomancari
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;
}
vincenzomancari è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 13:19   #18
sharkkk
Member
 
L'Avatar di sharkkk
 
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
sharkkk è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2014, 18:40   #19
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da vincenzomancari Guarda i messaggi
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;
}

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
Quindi, dato che x1 e x sono già dei double, la conversione non ha effetto e stai calcolando exp( (x1 - x) ), cioè e^(x1 - x), che, nonostante e valga poco più di 2, è leggermente diverso da (x1 - x)^2...
Devi usare pow, come ti ha detto sharkkk.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Engwe O20 Boost: abbiamo provato in ante...
UWANT V800: addio al rullo rotante, l’as...
Keenetic Stellar 6 porta il WiFi 6 negli...
Instagram spinge sul formato orizzontale...
DMA, l'UE verso la designazione di AWS e...
Dalla fisica quantistica alla fibra: il ...
TikTok, il 59% dei video è AI Slop, 'sch...
Batterie stampate in 3D: la forma libera...
Honor X80 Pro Max ufficiale: vi bastano ...
HONOR Watch 6: batteria infinita, modali...
Windows 11, addio alle ricerche sul web:...
La vera sfida dell’IA non è adott...
Signal contro l'AI agentica: dare ai cha...
Amazon: l'human-in-the-loop non basta a ...
HONOR 600 Lite: design in metallo e batt...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v