.dsy:it. Pages (25): « First ... « 5 6 7 8 [9] 10 11 12 13 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- [Algoritmi] Progetto "CONTROLLO REMOTO" (http://www.dsy.it/forum/showthread.php?threadid=16306)


Posted by Teju on 13-01-2005 13:02:

Originally posted by andrea
Credo proprio che le stringhe vadano gestite con la getchar.

Ok, lì ci siamo: dunque van salvate in una lista di char i vari caratteri del nome... oppure no?

__________________
Teju.it - Una vita da raccontare


Posted by andrea on 13-01-2005 13:18:

Sì, credo proprio che l'unica strada sia questa. Anche se diventa veramente tutto molto macchinoso.


Posted by p2p on 13-01-2005 13:18:

Originally posted by Teju
Ok, lì ci siamo: dunque van salvate in una lista di char i vari caratteri del nome... oppure no?
scsate se mi ripeto, ma sopra avevo detto che lo stesso Fiorentini mi ha detto di leggere carattere per carattere e che una volta finito sappiamo la dimensione per memorizzare il nome....
quindi secondo me come l esempio che avevo riportato prima, cioe' alloco tot spazio e continuo a leggere se vedo che non mi basta uso un realloc(), alla fine sapro' quanto spazio mi serve per aggiungere sto automa allastruttura che uso...
almeno credo, adesso vado a lezione,stasera lo provo e vi faccio sapere
ciao


Posted by mitnik on 13-01-2005 13:23:

io provo così: leggo l'input e il nome dell'automa lo metto in un array tipo:

char nome[N]; con N che indica la massima lunghezza che può avere il nome; lo so che non è definita però è finita quindi N lo si può porre anche molto grande.

poi uso strlen e strcpy per sapere la lunghezza del nome e allocare quindi lo spaxio necessario ad un array di char che contiene il nome dell'automa.


Posted by Teju on 13-01-2005 13:33:

Originally posted by p2p
realloc()

Cioè mi vuoi dire che se dichiaro un array di dimensione N definito, posso, tramite la realloc, aumentare lo spazio disponibile??
Come si usa questa funzione?

__________________
Teju.it - Una vita da raccontare


Posted by andrea on 13-01-2005 13:59:

mitnik, credo che non possa fare come tu dici, perchè N può essere grande finchè vuoi, ma è pur sempre limitato


Posted by Freddy3 on 13-01-2005 14:06:

Originally posted by p2p
leggi la lezione 9 di Aguzzoli le ultime pagine, cè un programma di esempio che parte pa pag.26 dove "L’elenco delle parole viene memorizzato in un array di stringhe
allocato dinamicamente."
potrebbe andare no?



quale lezione dici? quella del 16 dicembre?


Posted by mitnik on 13-01-2005 14:34:

ma scusa il testo dice: ogni automa è identificato da un nome che è una stringa finita sull'alfabeto (0,1)....
...La sorgente remota può emettere segnali rappresentati da stringhe finite del tio a,B..

allora pongo per esempio N=65536; tale valore dovrebbe essere abbastanza grande. Certo la stringa potra essere più lunga ma non infinitamente lunga. che dici?


Posted by andrea on 13-01-2005 15:00:

Anche io avevo interpretato così, ho chiesto a fiorentini che mi ha risposto che non va bene. La stringa è finita, ma non c'è limite superiore. Leggi la sua mail di risposta che ho postato qualche messaggio fa.


Posted by Freddy3 on 13-01-2005 15:22:

ideina:-D :
se facciamo leggere la stringa e la memorizziamo in un puntatore a char (come diceva dante) e poi dichiariamo un array di dimensione di quello che è puntato da questo puntatore e ce lo copiamo dentro?

potrebbe funzionare!!! :?


Posted by andrea on 13-01-2005 16:12:

Non credo, perchè con un puntatore a char puoi leggere solo un char. Come fai a capire dove finisce la stringa che hai letto?


Posted by mitnik on 13-01-2005 16:39:

sia utilizzando i puntatori a char sia utilizzando altri metodi come per esempio la lettura con getchar è necessario allocare dello spazio in memoria per contenere il tutto. Per fare cio è necessario dare una dimensione finita (considerato anche che la memoria lo è). Quindi io penso di proseguire con la mia idea di allocare uno spazio in memoria di supporto per contenere la stringa; poi in base alle dimensioni di questa alloco spazio definitivo per contenere il bone dell'automa, liberando quello utilizzato come supporto. Non sarà sicuramente il metoso più corretto ma sinceramente non trovo altre soluzioni per poter esaminare una stringa di lunghezza arbitraria. Se continup a sbattere la testa su questo problema il 30 gennaio sarò qui ancora a pensare a come e dove memorizzare una cazzo di stringa.


Posted by thetheus on 13-01-2005 16:42:

ciao a tutti provate a consultare questo esempio utilizza realloc()
http://programmazione.html.it/c/c_32.htm


Posted by andrea on 13-01-2005 16:46:

Scusa, mitnik, ma non è più semplice se allochi lo spazio in memoria elemento per elemento della lista invece che allocare all'inizio lo spazio di una lista intera? Mi spiego: se fai un ciclo sulla getchar, ti arriva il carattere, a questo punto allochi il nodo e lo inserisci nella lista. Poi vai a leggere il carattere successivo, allochi il nodo e lo inserisci. Continui così fino a quando il carattere non è un new line.


Posted by Skilotto83 on 13-01-2005 16:57:

Originally posted by andrea
Scusa, mitnik, ma non è più semplice se allochi lo spazio in memoria elemento per elemento della lista invece che allocare all'inizio lo spazio di una lista intera? Mi spiego: se fai un ciclo sulla getchar, ti arriva il carattere, a questo punto allochi il nodo e lo inserisci nella lista. Poi vai a leggere il carattere successivo, allochi il nodo e lo inserisci. Continui così fino a quando il carattere non è un new line.

infatti sekondo me questo è il metodo corretto..
essendo in un while è potenzialmente infinita la stringa...

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


All times are GMT. The time now is 11:01. Pages (25): « First ... « 5 6 7 8 [9] 10 11 12 13 » ... Last »
Show all 366 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.