Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Algoritmi e strutture dati > Progetto "FACCIALIBRO"
Pages (28): « First ... « 6 7 8 9 [10] 11 12 13 14 » ... Last »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
darkshadow
Are You From The Past?

User info:
Registered: Jul 2007
Posts: 485 (0.07 al dì)
Location: Milano
Corso: Informatica Magistrale
Anno: 1
Time Online: 13 Days, 13:38:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

 
sul sito di aguzzoli c'è gcc per win. decomprimi la cartella e poi da riga di comando vai nella cartella e digiti gocs che ti setta le variabili d'ambiente e poi il resto è uguale a gcc in linux.

__________________
by Ð@rk§h@ÐØw

11-02-2009 12:41
Click Here to See the Profile for darkshadow Click here to Send darkshadow a Private Message Find more posts by darkshadow Add darkshadow to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Joy88
.consigliere.

User info:
Registered: Jan 2008
Posts: 101 (0.02 al dì)
Location: ~Milano
Corso: Informatica
Anno:
Time Online: 1 Day, 10:27:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ti ringrazio Darkshadows!!!
Adesso ci provo..!!
Ti citerò nei ringraziamenti del progetto!!!
:cool:
ihihih!!!

__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."

*Dante*

11-02-2009 12:49
Click Here to See the Profile for Joy88 Click here to Send Joy88 a Private Message Find more posts by Joy88 Add Joy88 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Benny
.fedelissimo.

User info:
Registered: May 2003
Posts: 48 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 2
Time Online: 12:49:02: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

iuz-lab ci ho capito poco di tutto quello che hai detto, anche perchè io prima usavo l'originale gets e il prof me lo aveva vietato, cosi sono passato alla scanf, e tutto andava bene ma siccome devo prendere un input con spazi bianchi e quindi ho usato strcat per aggiungerli, mi fa un casino non indifferente..in pratica credo che con la scanf il puntatore venga sovrascritto normalmente, ma nel caso io usi la strcat, sovrascriva solo l'ultimo puntatore, e presto si riempira del tutto lasciando il vecchio contenuto quasi intatto...continuo a provare a ripulire il puntatore, ma perdo tempo per sta cosa..
ti ringrazio per l'interesse, pero non posso copiare il tuo codice o il prof mi fa il culo quando lo vede

__________________
Se non credi in te stesso, chi ci crederà?

11-02-2009 23:38
Click Here to See the Profile for Benny Click here to Send Benny a Private Message Find more posts by Benny Add Benny to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
iuz-lab
.amico.

User info:
Registered: Feb 2006
Posts: 38 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:09:25 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

allora vedo di essere piu' chiaro..

l'obiettivo è dividere una stringa in modo particolare.. nello specifico (per nick n st):
<spazi bianchi> <nick> <spazi bianchi> <char 'n'> <spazi bianchi> <st>

per farlo il c ti mette a disposizione diverse funzioni utili.. gets e strtok sono quelle che ci interessano..

char *gets(char *s);
Reads next line from stdin into s. Replaces terminating newline with '\0'. Returns s, or NULL on end-of-file or error.
e qui ci troviamo di fronte al problema dell'overflow che puoi risolvere usando readstring (ammesso che io abbia capito quello che dovrebbe fare readstring.. magari mi sto' sbagliando) o la funzione che ho postato o una funzione equivalente..

char* strtok(char* s, const char* ct);
A sequence of calls to strtok returns tokens from s delimited by a character in ct. Non-NULL s indicates the first call in a sequence. ct may differ on each call. Returns NULL when no such token found.
questa funzione è una manna per leggere stringhe del tipo nick n st..
in pratica la prima volta che la chiamiamo gli passiamo come primo parametro il nome della stringa da esaminare e nelle successive chiamate gli passiamo NULL, mentre come secondo parametro gli indichiamo un set di caratteri che funzionano da delimitatori..

per esempio:

code:
char *string = "123 456 789"; char *part; part = strtok(string, " "); do { printf("-- %s --\n", part); } while (part = strtok(NULL, " ") != NULL);


stamperà:
code:
-- 123 -- -- 456 -- -- 789 --


questo pero' non è il comportamento che volevamo.. per noi dopo il secondo token "tutto fa brodo"..
ma strtok ci mette in condizione di cambiare i caratteri delimitatori del token ad ogni chiamata..
quindi possiamo scrivere un codice del tipo:
code:
char *string = "bob n i hate facebook"; char *nickname, *action, *status; nickname = strtok(string, " "); action = strtok(NULL, " "); status = strtok(string, ""); // NOTA CHE NON HO DATO ALCUN CARATTERE DELIMITATORE printf("--%s--", nickname); printf("--%s--", action); printf("--%s--]", status);


visto che nell'ultima chiamata a strtok non ho messo delimitatori strtok mi ritornerà il resto della stringa (che è il comportamento desiderato)..

quindi l'ouput sarà:
code:
--bob-- --n-- -- i hate facebook--


ora, come puoi vedere, siamo vicinissimi alla soluzione.. dico vicinissimi perchè cambiare il set di delimitatori nella terza strtok ci ha fatto prendere come stringa di status " i hate facebook" (nota lo spazio iniziale) invece di "i hate facebook"..

per risolvere puoi usare la funzione strspn..
size_t strspn(const char* cs, const char* ct);
Return length of prefix of cs consisting entirely of characters in ct.

questa funzione non te la spiego.. perchè iniziano a sanguinarmi gli occhi :-D ma la puoi sfruttare per scriverti una funzione ltrim in C..

ricapitolando:
code:
char *line; char *nick, *status, *action, *string1; while(line = gets() != NULL) { // qui usa una funzione sicura ma equivalente a gets string1 = strtok(line, " "); // questo è il primo token (non so come chiamarlo finche //non conosco l'azione da intraprendere.. //e questo lo posso capire solo esaminando il secondo token nello switch) action = strtok(NULL, " "); switch(action[0]) { // ... case 'n': nick = string1; // adesso che so che la funzione è 'n' ho capito che il // primo token rappresentava il nickname status = strtok(NULL, ""); // qui ci finirà "status" con eventuali spazi iniziali // elimino gli spazi iniziali (e magari anche finali) da status // faccio le mie sporche operazioni con nick e status break; // ... } }


spero di essere stato sufficientemente chiaro (dubito)..

ciao,
iuz

12-02-2009 02:15
Click Here to See the Profile for iuz-lab Click here to Send iuz-lab a Private Message Find more posts by iuz-lab Add iuz-lab to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
iuz-lab
.amico.

User info:
Registered: Feb 2006
Posts: 38 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:09:25 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Benny io prima usavo l'originale gets e il prof me lo aveva vietato, cosi sono passato alla scanf [/B]


sia gets che scanf soffrono degli stessi problemi.. vanno evitate entrambe :-P

se le usi non sei in grado di rispettare il vincolo del progetto che dice "non devono esistere limiti alla lunghezza massima di una stringa" o qualcosa del genere (il succo comunque era quello)..

scriviti una funzione gets sicura e sei a posto..

ne trovi mille implementazioni gia' pronte in rete (probabilmente anche nei progetti passati) oltre quella che ho gia' lasciato nel post di ieri (era ieri?!?)..

12-02-2009 02:20
Click Here to See the Profile for iuz-lab Click here to Send iuz-lab a Private Message Find more posts by iuz-lab Add iuz-lab to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
xSharKMaNx
un gioco della follia

User info:
Registered: Sep 2007
Posts: 1477 (0.22 al dì)
Location:
Corso: F49
Anno: Laureato
Time Online: 10 Days, 17:15:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Grande iuz-lab ... è esattamente ciò che ho fatto ;)
ma la fgets si potrà utilizzare ?

ieri sera leggendo tutti i i punti del progetto ho notato:


Per semplicità si suppone che l’input sia sempre conforme alle specifiche delle Tabelle 1,2,3 e 4, per cui
non è necessario controllare la correttezza dell’input. Per leggere l’input si usino le funzioni standard
ANSI C getchar() e/o scanf().

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)

12-02-2009 08:05
Click Here to See the Profile for xSharKMaNx Click here to Send xSharKMaNx a Private Message Find more posts by xSharKMaNx Add xSharKMaNx to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Joy88
.consigliere.

User info:
Registered: Jan 2008
Posts: 101 (0.02 al dì)
Location: ~Milano
Corso: Informatica
Anno:
Time Online: 1 Day, 10:27:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Ragazzi io sto implementando tutto tramite liste..
Ma avete pensato a come fare per i gradi di separazione?? :?
Non so proprio dove sbatter la testa..

__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."

*Dante*

12-02-2009 09:17
Click Here to See the Profile for Joy88 Click here to Send Joy88 a Private Message Find more posts by Joy88 Add Joy88 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Gehur
.grande:maestro.

User info:
Registered: Apr 2006
Posts: 519 (0.07 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 3 Days, 0:41:42 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

be io conto tutti gli amici che ho, e ci levo 1..

quindi se ho 3 mici nella lista amici, il grado di separazione sarà 2, se ho solo 1 amico, sarà infinito..

il fatto è che non sono sicuro di aver capito la specifica :D

ma qualcuno è riuscito a finirlo il progetto??

12-02-2009 09:57
Click Here to See the Profile for Gehur Click here to Send Gehur a Private Message Find more posts by Gehur Add Gehur to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Joy88
.consigliere.

User info:
Registered: Jan 2008
Posts: 101 (0.02 al dì)
Location: ~Milano
Corso: Informatica
Anno:
Time Online: 1 Day, 10:27:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

No aspetta x il grado di separazione io l'ho inteso così:
A amico di B amico di C amico di D
tra A e B il grado è 1
tra A e C il grado è 2
tra A e D il grado è 3

se avessi:
A amico di B amico di C amico di D e E amico di F
tra A e E il grado è infinito
tra A e F il grado è infinito
:shock:
..Ho capito male io??? :?

__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."

*Dante*

12-02-2009 10:03
Click Here to See the Profile for Joy88 Click here to Send Joy88 a Private Message Find more posts by Joy88 Add Joy88 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Gehur
.grande:maestro.

User info:
Registered: Apr 2006
Posts: 519 (0.07 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 3 Days, 0:41:42 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

quindi tu dici se non sono amici grado infinito,altrimenti se sono amici conta quante persone ci sono tra loro 2

e bo..io non ho capito molto bene il testo, dovrei rileggerlo ma adesso sono in sbatta per far funzionare il tutto correttamente, al max il grado di separazione lo ricalcolo, non mi sembra il problema più grosso..

12-02-2009 10:29
Click Here to See the Profile for Gehur Click here to Send Gehur a Private Message Find more posts by Gehur Add Gehur to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Joy88
.consigliere.

User info:
Registered: Jan 2008
Posts: 101 (0.02 al dì)
Location: ~Milano
Corso: Informatica
Anno:
Time Online: 1 Day, 10:27:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Joy88
No aspetta x il grado di separazione io l'ho inteso così:
A amico di B amico di C amico di D
tra A e B il grado è 1
tra A e C il grado è 2
tra A e D il grado è 3

se avessi:
A amico di B amico di C amico di D e E amico di F
tra A e E il grado è infinito
tra A e F il grado è infinito
:shock:
..Ho capito male io??? :?


Ma guarda che nel mio esempio A è amico di B ma NON di C e D..
Per quello mi sembra difficile.. tutti gli amici di A hanno grado 1 gli amici degli amici di A (che non sono miei amici) hanno grado 2, gli amici degli amici degli amici di A (non miei amici) hanno grado 3 ecc..
Ho paura di una funzione ricorsiva infinita!!!!
:twisted:

__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."

*Dante*

12-02-2009 10:35
Click Here to See the Profile for Joy88 Click here to Send Joy88 a Private Message Find more posts by Joy88 Add Joy88 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Gehur
.grande:maestro.

User info:
Registered: Apr 2006
Posts: 519 (0.07 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 3 Days, 0:41:42 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

io alla prima lettura l'avevo interpretata così:
system ! nick nick2
nick e nick 2 devono essere amici, se sono amici conta quante persone ci sono nella lista amici di nick, se è presente solo nick2 fai grado infinito..

ripeto dovrei rileggerla visto che ho dubbi su come l'ho compresa

12-02-2009 11:39
Click Here to See the Profile for Gehur Click here to Send Gehur a Private Message Find more posts by Gehur Add Gehur to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
iuz-lab
.amico.

User info:
Registered: Feb 2006
Posts: 38 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 7:09:25 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by xSharKMaNx
ma la fgets si potrà utilizzare ?


beh, se usata bene, fgets è sicura.. mentre scanf no..

visto che il docente aveva proibito l'uso di fgets (non è che la abbia proprio proibita.. ma tant'è) io ho (come vedi dai post precedenti) scritto una funzione safe_gets che lavora con stringhe di lunghezza arbitraria e funziona grazie alla funzione getchar (che, al contrario di fgets, il docente dice di usare)

comunque non credo sia un problema.. meglio una fgets di una scanf..

12-02-2009 16:01
Click Here to See the Profile for iuz-lab Click here to Send iuz-lab a Private Message Find more posts by iuz-lab Add iuz-lab to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nas
.amico.

User info:
Registered: Oct 2004
Posts: 35 (0.00 al dì)
Location: milano
Corso: Informatica
Anno: 1
Time Online: 23:33:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ragazza ma è sufficiente che il progetto compilato con
gcc -o faccialibro faccialibro.c
non dia nessun errorre o warning o bisogna compilarlo con le opzioni -ansi e -pedantic e quindi
gcc -o -ansi -pedantic faccialibro faccialibro.c

???????

13-02-2009 08:27
Click Here to See the Profile for nas Click here to Send nas a Private Message Find more posts by nas Add nas to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nas
.amico.

User info:
Registered: Oct 2004
Posts: 35 (0.00 al dì)
Location: milano
Corso: Informatica
Anno: 1
Time Online: 23:33:27 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by nas
ragazza ma è sufficiente che il progetto compilato con
gcc -o faccialibro faccialibro.c
non dia nessun errorre o warning o bisogna compilarlo con le opzioni -ansi e -pedantic e quindi
gcc -o -ansi -pedantic faccialibro faccialibro.c

???????

uhm... volevo dire ragazzi!

13-02-2009 08:28
Click Here to See the Profile for nas Click here to Send nas a Private Message Find more posts by nas Add nas to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 02:29.    Post New Thread    Post A Reply
Pages (28): « First ... « 6 7 8 9 [10] 11 12 13 14 » ... Last »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.074 seconds (71.59% PHP - 28.41% MySQL) con 24 query.