PDA

View Full Version : Da TurboC++ a Dev C++


alby182
10-10-2008, 17:18
Ho creato un semplice programma con Turbo C++ ora però vorrei trasferirlo su Dev C++.# include <stdio.h>
# include <stdlib.h>
int A[3];
void main()
{
randomize();
A[0]=random(10);

do
{
A[1]=random(10);
}
while (A[1]==A[0]);

do
{
A[2]=random(10);

}
while ((A[2]==A[1]) && (A[2]==A[0]));

do
{
A[3]=random(10);

}
while ((A[3]==A[2]) && (A[3]==A[0])&& (A[3]==A[1]));

printf("%d%d%d%d",A[0],A[1],A[2],A[3]);
}


Il problema e che nn funziona si vede k bisogna fare qualche modifica,
quale x l'esattezza?? spero possiate aiutarmi.
grazie x le eventuali risposte!!

variabilepippo
10-10-2008, 17:27
Con tutto il rispetto, ma quel codice è una schifezza! :)

1) Dichiara la funzione main come

int main(void)

2) Aggiungi un return 0 alla fine del main.

3) randomize va sostituito con srand((unsigned int)(time(NULL)));

4) Sostituisci random con rand() % 10 (per avere numeri casuali compresi tra 0 e 9)

5) Ci sarebbero anche altre questioni, ma per il momento lavora su quanto proposto.

cionci
10-10-2008, 17:36
Il problema e che nn funziona si vede k bisogna fare qualche modifica,
quale x l'esattezza?? spero possiate aiutarmi.
grazie x le eventuali risposte!!
Ci sono moltissime librerie diverse, o meglio, sono le librerie di Turbo C++ ad essere non standard. Quindi SCORDATI tutte le funzioni che sono in conio.h e studiati la libreria C standard. Come già detto da variabilepippo le sostituzioni nell'immediato sono randomize con srand e random con rand. Ovviamente guardati bene come funzionano.

Turbo C++ ha fatto più danni della grandine nelle abitudini dei programmatori, me compreso, visto che ho iniziato da lì.

alby182
10-10-2008, 17:38
Con tutto il rispetto, ma quel codice è una schifezza! :)

1) Dichiara la funzione main come

int main(void)

2) Aggiungi un return 0 alla fine del main.

3) randomize va sostituito con srand((unsigned int)(time(NULL)));

4) Sostituisci random con rand() % 10 (per avere numeri casuali compresi tra 0 e 9)

5) Ci sarebbero anche altre questioni, ma per il momento lavora su quanto proposto.

:D Lo so che è abbastanza una schifezza ma è da pochi mesi che programmo e di solito uso Turbo C++ della Borland dove il mio "codice schifezza" funziona!

# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int A[3];
int main(void)
{
rand((unsigned int)(time(NULL)));
rand() % 10

do
{
A[1]=random(10);
}
while (A[1]==A[0]);

do
{
A[2]=random(10);

}
while ((A[2]==A[1]) && (A[2]==A[0]));

do
{
A[3]=random(10);

}
while ((A[3]==A[2]) && (A[3]==A[0])&& (A[3]==A[1]));

printf("%d%d%d%d",A[0],A[1],A[2],A[3]);
return 0;
system ("pause");
}


Anche se ho fatto quello che dicevi tu il programma non funziona...aspetto suggerimenti!!

cionci
10-10-2008, 17:40
rand serve a sostituire random e srand serve a sostituire randomize. Non andare a caso vai a cercare come lavorano quelle funzioni.

variabilepippo
10-10-2008, 17:45
Anche se ho fatto quello che dicevi tu il programma non funziona...aspetto suggerimenti!!


Al punto 4) ti dicevo di sostituire random con rand (ovviamente, come suggerito anche da Cionci, devi capire a cosa serve e come funziona). return 0 deve essere l'ultima istruzione del main, non la penultima.


Turbo C++ ha fatto più danni della grandine nelle abitudini dei programmatori, me compreso, visto che ho iniziato da lì.


Per i suoi tempi non era malaccio come compilatore, anche se in effetti le comode librerie/funzionalità non-standard hanno portato a codice incompatibile con altri compilatori... :)

cionci
10-10-2008, 17:55
Per i suoi tempi non era malaccio come compilatore, anche se in effetti le comode librerie/funzionalità non-standard hanno portato a codice incompatibile con altri compilatori... :)
Sicuramente non era male, anzi, ma ha lasciato troppe brutte abitudini a giro. Trovo assurdo che la gente lo usi ancora (parlo del Turbo C per DOS ovviamente).

variabilepippo
10-10-2008, 18:07
Trovo assurdo che la gente lo usi ancora

Concordo, il problema è che viene usato molto nelle scuole superiori, suggerito da insegnanti (o meglio, disinsegnanti) che non si aggiornano da decenni... Eppure MinGW, Visual C++, Digital Mars C++, OpenWatcom C++ e l'ultima versione di Turbo C++ sono strumenti gratuiti! :muro:

cionci
10-10-2008, 18:08
Concordo, il problema è che viene usato molto nelle scuole superiori, suggerito da insegnanti (o meglio, disinsegnanti) che non si aggiornano da decenni... Eppure MinGW, Visual C++, Digital Mars C++, OpenWatcom C++ e l'ultima versione di Turbo C++ sono strumenti gratuiti! :muro:
Già :muro: