Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Aiuto soluzione 2 programmi in c++

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, axelrox

Aiuto soluzione 2 programmi in c++

Postdi therealslimshady » 14/01/04 20:09

Salve, mi servirebbe un'aiuto per risolvere questi due programmi in c++ che ho iniziato ma che non riesco a completare.
Il primo si tratta della realizzazione di un programma che dati 2 numeri mi dia il massimo comun divisore e il massimo comune multiplo.

/*Mcd e mcm di un numero*/
#include <iostream>
int num1,num2,mcm,mcd;
using namespace std;
int main ()
{
cout<<"Inserisci due numeri: "<<endl;
cin>>num1>>num2;
while (num1!=num2)
{
if (num1>num2)
num1=num1-num2;
else
num2=num2-num1;

}
cout<<"Il massimo comun divisore e': "<<num2<<endl;
mcd=num2;
int mcd (num2);
mcm= (num1*num2) /mcd;
cout<<"Il minimo comune multiplo e' "<<mcm<<endl;

return 0;
}

Il MCD viene fuori giusto l'unico problema è per l''mcm dato che avevo intenzione di calcolarlo con il teorema di euclide ovvero num1*num2/mcd, il problema è che alla fine del ciclo num1 e num2 hanno cambiato valore perchè ho ottenuto l'mcd, dunque come faccio a riprendere il valore iniziale del num1 e num2?

Per quanto riguarda il secondo si tratta di simulare una specie di battaglia navale per la quale ho due coordinate x, y che generano dei valori casuali da 1 e 20 (che sarebbero le caselle) poi inserite le coordinate x1, y1 c'è un controllo che confronta le coordinate inserite con quelle generate e stampa: "colpito se i valori coincidono o "acqua" se non.

#include <iostream>
using namespace std;

int x1= rand ()%20+1,y1= rand ()%20+1,x,y;


int main ()

{
srand((1));

cout<<"Inserire coordinata X"<<endl;
cin>>x;
cout<<"Inserire coordinata Y"<<endl;
cin>>y;
while (x==x1 && y==y1)
{

if (x==x1 && y==y1)
cout<<"Caccia torpediniere colpito";

else
cout<<"Acqua";}

cout<<x1;
cout<<y1;

return 0;
}


Il problema è che mi genera sempre gli stessi numeri, mi hanno detto di inserire la funzione srand (seme) ma non ho idea di dove si deve mettere perchè sono agli inizi. Un'altro problema è che una volta inserite le coordinate vorrei che il tutto si ripetesse.

Grazie per l'aiuto!!!! :D
therealslimshady
Utente Junior
 
Post: 27
Iscritto il: 28/01/02 01:00
Località: roma

Sponsor
 

Postdi pjfry » 14/01/04 23:52

1) usare 2 variabili 'di appoggio' dove mettere i valori iniziali non si può??? :)
2) srand devi usarlo prima di rand, altrimenti è inutile... inoltre di solito si usa srand(time()) mi pare, o cmq qualcosa che sia variabile... se il seme è sempre lo stesso allora è inutile ;)
3) x1 e x2 sono la posizione della nave, giusto? quindi la nave è grande una casella... mi pare che la tua idea vada quasi bene, solo che il while dovrebbe andare + su, prima di prendere le coordinate, no? ;)
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi therealslimshady » 15/01/04 23:22

Grazie ho risolto con
randomize ()
therealslimshady
Utente Junior
 
Post: 27
Iscritto il: 28/01/02 01:00
Località: roma


Torna a Discussioni


Topic correlati a "Aiuto soluzione 2 programmi in c++":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti

cron