View Full Version : [C] Chiedo una mano (per il momento)
VegetaSSJ5
05-01-2004, 23:19
I PROBLEMI PRECEDENTI SONO STATI RISOLTI
Ragazzi questa più che altro è una curiosità. Siccome in java ci sono 2 operatori di AND e OR, cioè l'AND "normale" che si denota con questo simbolo &, l'AND "short circuit" che si denota con questo simbolo && e la stessa cosa anche per l'or. La differenza tra and normale e and short circuit sta nel fatto che, siccome l'and per essere vero devono essere veri tutti i termini, l'and normale esegue tutti i confronti tra i termini mentre l'and short circuit si ferma ed esce dai confronti appena incontra un valore di falsità perchè comunque tutta l'espressione sarebbe sisultata falsa. Mi spiego meglio, se abbiamo:
if (e1 && e2 && ... .... .... ... && eN)
l'and short circuit non necessariamente arriva a controllare fino ad eN perchè se già e1 risulta falsa esce subito dal controllo. Questo può far risparmiare del tempo nel caso in cui ci siano molti controlli da fare.
La mia domanda è, siccome in C abbiamo un solo modo di scrivere l'and e cioè così &&, in C le operazioni di and e or funzionano come "normali" o nel modo "short circuit"??
MSciglio
05-01-2004, 23:36
Che errori escono?
Hai inizializzato p1 e p2?
Ciao
VegetaSSJ5
05-01-2004, 23:37
aggiornamento: se invece di creare 2 puntatori a struttura creo 2 elementi della struttura giocatore, cioè se faccio in questo modo:struct giocatore p1;
struct giocatore p2;e poi vado a fare il getchar e il gets in questo modo:gets (p1.nome);
p1.simbolo= getchar();il tutto funziona correttamente. Qualcuno mi sa spiegare come mai utilizzando i puntatori non funziona più???
VegetaSSJ5
05-01-2004, 23:39
Originariamente inviato da MSciglio
Che errori escono?
Hai inizializzato p1 e p2?
Ciao
quando eseguo il programma dopo aver inserito il nome e premo invio, mi dice che il prog ha causato un errore. cosa intendi per inizializzare? non vado ad inizializzare quando assegno i valori ai campi della struttura?
VegetaSSJ5
05-01-2004, 23:57
(questo) problema risolto! aveva ragione MSciglio, non ho inizializzato p1 e p2!p1= (struct giocatore *) malloc (sizeof(struct giocatore));poichè molto probabilmente avrò altri problemi in futuro chiedo ai moderatori di non chiudere questa discussione perchè sicuramente mi servirà di nuovo (è per questo che nel titolo della discussione avevo scritto (per il momento;))!:p
MSciglio
06-01-2004, 00:06
Originariamente inviato da VegetaSSJ5
(questo) problema risolto! aveva ragione MSciglio, non ho inizializzato p1 e p2!p1= (struct giocatore *) malloc (sizeof(struct giocatore));poichè molto probabilmente avrò altri problemi in futuro chiedo ai moderatori di non chiudere questa discussione perchè sicuramente mi servirà di nuovo (è per questo che nel titolo della discussione avevo scritto (per il momento;))!:p
Non facevi prima a scrivere:
p1=new giocatore;
?
:D
VegetaSSJ5
06-01-2004, 00:09
sinceramente non sapevo dell'esistenza (in C) del termine new visto che all'uni ci hanno sempre fatto usare la malloc. mi sai dire la "semantica" del new? si può applicare il new ai puntatori? cioè anche il new, come la malloc, crea spazio in memoria per un alemento della struttura giocatore e restituisce il puntatore a p1?
Originariamente inviato da VegetaSSJ5
Ragazzi qual'è una funzione in C che cancella lo schermo? Per schermo intendo ovviamente la finestra della linea di comando dove è in esecuzione il programma...;)
se ne è parlato di recente, cmq non esistono funzioni standard per la cancellazione.
la cosa più standard che puoi fare è utilizzare la system quindi fare
system("cls") o system("clear") (DOS e Linux).
altrimenti c'è clrscr() ma non è standard quindi non è detto che il tuo compilatore la accetti
Originariamente inviato da VegetaSSJ5
sinceramente non sapevo dell'esistenza (in C) del termine new visto che all'uni ci hanno sempre fatto usare la malloc. mi sai dire la "semantica" del new? si può applicare il new ai puntatori? cioè anche il new, come la malloc, crea spazio in memoria per un alemento della struttura giocatore e restituisce il puntatore a p1?
ho anche io dei dubbi sulla new... è un operatore del C++ ma non del C
cerchiamo di rispettare sempre gli standard...
MSciglio
06-01-2004, 00:50
Originariamente inviato da VegetaSSJ5
sinceramente non sapevo dell'esistenza (in C) del termine new visto che all'uni ci hanno sempre fatto usare la malloc. mi sai dire la "semantica" del new? si può applicare il new ai puntatori? cioè anche il new, come la malloc, crea spazio in memoria per un alemento della struttura giocatore e restituisce il puntatore a p1?
Hai ragione. new è un operatore del c++
VegetaSSJ5
06-01-2004, 01:14
ragazzi grazie a tutti, ho quasi finito il mio gioco di tris! :D :D :D :D :D domani (perchè ora ho sonno) quando avrò finito lo posterò!:cool:
VegetaSSJ5
06-01-2004, 12:30
nuova domanda
MSciglio
06-01-2004, 12:43
Originariamente inviato da VegetaSSJ5
La mia domanda è, siccome in C abbiamo un solo modo di scrivere l'and e cioè così &&, in C le operazioni di and e or funzionano come "normali" o nel modo "short circuit"??
In C/C++ l'and logico dovrebbe essere short circuit per default ma può essere disabilitato attraverso le impostazioni del compilatore (credo).
VegetaSSJ5
06-01-2004, 18:16
ragazzi come promesso ecco il mio programma del tris. non fate caso a come ho arrangiato la griglia ma meglio di così non ho saputo fare, accetto cmq suggerimenti su come migliorarla.
VegetaSSJ5
06-01-2004, 20:32
dai ragazzi su datemi qualche commento! non siete interessati al tris? mai nessuno che ci giocava durante le lezioni al liceo??:D :D ;)
h1jack3r
20-01-2004, 17:09
bel progettino, pecato che mi sia entrato in un loop !!!
Le coordinate inserite non sono corrette..
ved se trovo dove è sbagliato
ah. se hai un po' di esercizi carini fammelo sapere che mi devo rpeparare ad un esame in c..
bello il tris
col C si puo dargli un'interfaccia grafica anke dos come si poteva fare col pascal?
maxithron
21-01-2004, 21:53
Originariamente inviato da VegetaSSJ5
dai ragazzi su datemi qualche commento! non siete interessati al tris? mai nessuno che ci giocava durante le lezioni al liceo??:D :D ;)
Ora devi solo permettere di far scegliere le "faccine" al posto dei simboli!!
VegetaSSJ5
23-01-2004, 15:01
vi allego una nuova versione del tris dove spero di aver risolto qualche caso di loop (che a me non si è mai verificato)
nn va, ho fatto tris ma va avanti a chiedermi dove voglio mettere il segno
VegetaSSJ5
23-01-2004, 16:42
Originariamente inviato da Guts
nn va, ho fatto tris ma va avanti a chiedermi dove voglio mettere il segno
:cry: ora non ho tempo di metterci mano cmq appena possibile lo riscriverò da capo!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.