Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 Piccolo aiutino nel compilatore...
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 27/05/2003 : 17:53:43  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Sembra che linguaggi lo debba dare solo io.. Sto cazz di compilatore è ostico...

Allora:

unsigned hash(char *s) {
			unsigned hashval;

			for (hashval=0; *s !='\0'; s++)
				  hashval= *s + 31 *hashval;

			return hashval % HASHSIZE;
			}


In questa funzione la "s" sarebbe la stringa estratta dal file? Ovvero il token? Quindi solo il name.token giusto?

char *strdup(char*s) {                  
		char *p;                          
		p=(char*)malloc(strlen(s)+1);     
		if (p != NULL) strcpy(p,s);       
			 return p;
			 };


Questa funzione a che diavolo serve? Non sono riuscito a capirlo visto che la documentazione è assente sulle dispense...

Una volta prelevato il token l'andiamo ad inserire nella symbol table grazie alla (fantastica) funzione presente sulle dispense. L'unica cosa che ci resta da fare è se le istruzioni sono scritte in modo corretto (tramite il parser) quindi analizzare il primo token con il successivo e utilizzare le varie case... Il problema è che bisogna anche dire dov'è l'errore, e SOPRATUTTO mettere nella symbol table tutte le linee dove sono usate le variabili...

Ma la peggior cosa è il fatto che non ce l'ha mai spiegato o se l'ha fatto non si sarà fermato 2 secondi sopra..

Qualcuno di voi è a buon punto?? Magari si riesce a fare qualcosa in comitiva e avere ognuno il compilatore per accipicchia propri. Come diavolo faremo? boh...

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/

pbolo
PDott

pfn


Regione: Puglia
Prov.: LECCE
Città: Novoli


Inserito il - 27/05/2003 : 22:49:51  Mostra Profilo  Visita l'Homepage di pbolo  Clicca per vedere l'indirizzo MSN di pbolo Invia a pbolo un Messaggio Privato  Rispondi Quotando
io domani mattina alle 10.00 devo andare da ferilli a chiedere un po' di cose.... poi vi faccio sapere che mi risponde.. le sue dispense fanno proprio pena...

cmq la prima funzione serve per calcolare il valore hash di una stringa.. spesso è la domanda che esce alla parte dello scritto che riguarda il C.

pbolo


Torna all'inizio della Pagina

Chilavert
admin

vacca


Regione: Puglia
Prov.: BA
Città: Bari


Inserito il - 28/05/2003 : 17:18:58  Mostra Profilo  Visita l'Homepage di Chilavert Invia a Chilavert un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da pbolo
le sue dispense fanno proprio pena...



...però lui oggi ti ha dato fior di spiegazioni... no?

E' un bene per il Prof. Xxxxxxx che sappia con chi ha a che fare.
Pensa a studiare e non agli esempi, o ad altre strade per così dire,
che questa volta mi sa che non attacca. [cit.]

Tutti professori dall'esterno, e poi parlano persone che per prendere un voto decente
ripetono l'esame 30 volte e poi fanno i sapientoni con chi segue la prima volta vedi chilavert [cit.]
Torna all'inizio della Pagina

pbolo
PDott

pfn


Regione: Puglia
Prov.: LECCE
Città: Novoli


Inserito il - 28/05/2003 : 19:36:23  Mostra Profilo  Visita l'Homepage di pbolo  Clicca per vedere l'indirizzo MSN di pbolo Invia a pbolo un Messaggio Privato  Rispondi Quotando
devo spezzare una freccia a favore di ferilli...

oggi mi ha dedicato quasi un ora del suo tempo per delle spiegazioni..

mi ha dato delle delucidazioni riguardo la gestione degli errori.. (mi ha spiegato i lucidi)

ha parlato della documentazione... vuole una spiegazione discrosiva di cosa prevede il programma e l'automa (si, proprio il disegno) del riconoscitore....

da anche la possibilità di unirsi in gruppo (max 3) per fare il programma.. ma vuole qualcosina in più...


pbolo


Torna all'inizio della Pagina

danandr
Utente medio


Regione: Puglia
Prov.: BARI
Città: MONOPOLI


Inserito il - 29/05/2003 : 09:27:28  Mostra Profilo  Visita l'Homepage di danandr  Clicca per vedere l'indirizzo MSN di danandr Invia a danandr un Messaggio Privato  Rispondi Quotando
Salve ragazzi,ciao Tano.
Sono anch'io nelle tue stesse condizioni,quindi farò il possibile per collaborare,quando qualcosa mi sarà + kiaro.

Dubbio: Come dobbiamo allocare la tabella HASH in memoria,dobbiamo utilizzare la funzione malloc? Ovvero una cosa del genere:

TABLE_EL *ptr;

ptr = (TABLE_EL *)malloc( sizeof( TABLE_EL )*HASH_TABLE_SIZE );

Ciao!


danandr
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 29/05/2003 : 10:57:47  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
La malloc deve essere usata per l'allocazione dinamica. Io mi attengo alle dispense di Ferilli e agisco in tal modo!

pbolo ma te eri il tipo che si era fissato sulla

BE
GIN

?

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

danandr
Utente medio


Regione: Puglia
Prov.: BARI
Città: MONOPOLI


Inserito il - 29/05/2003 : 17:43:59  Mostra Profilo  Visita l'Homepage di danandr  Clicca per vedere l'indirizzo MSN di danandr Invia a danandr un Messaggio Privato  Rispondi Quotando
scusa tano,ma perchè ti chiedi a cosa serve la funzione

char *strdup(char*s) {
char *p;
p=(char*)malloc(strlen(s)+1);
if (p != NULL) strcpy(p,s);
return p;
};

se nn bisogna usare la allocazione dinamica?


danandr
Torna all'inizio della Pagina

pbolo
PDott

pfn


Regione: Puglia
Prov.: LECCE
Città: Novoli


Inserito il - 29/05/2003 : 22:23:49  Mostra Profilo  Visita l'Homepage di pbolo  Clicca per vedere l'indirizzo MSN di pbolo Invia a pbolo un Messaggio Privato  Rispondi Quotando
infatti.. ferilli questanno non vuole ne liste ne allocazione dinamica...

no tano.... non ho capito.. quindi probabilmente non ero io..

anche perché se ti riferisci a una lezione di laboratorio di linguaggi è impossibile.. io non sono mai venuto quest'anno..

pbolo


Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 30/05/2003 : 00:37:39  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Non vuole l'allocazione dinamica? Quindi niente malloc? Purtroppo io sto studiando sulle dispense dell'anno scorso e queste utilizzano i puntantori e le malloc a tutto spiano...

Qualcuno di voi può inviarmi tramite posta le dispense di quest'anno? in biblioteca scarseggiano..

tano0@inwind.it

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

pbolo
PDott

pfn


Regione: Puglia
Prov.: LECCE
Città: Novoli


Inserito il - 30/05/2003 : 01:02:24  Mostra Profilo  Visita l'Homepage di pbolo  Clicca per vedere l'indirizzo MSN di pbolo Invia a pbolo un Messaggio Privato  Rispondi Quotando
non solo in biblioteca scarseggiano ma in rete non le ha messe.. domani mattina dovrei andare a chiedergli una cosa.. porto un dischetto per copiarle.. speriamo di trovarlo...

pbolo


Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 30/05/2003 : 10:54:32  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Scusate la mia immensa ignoranza, ma l'allocazione statica non necessita ne di malloc ne dei puntatori? Cosa cambia essenzialmente dall'allocazione dinamica? Utilizzeremo sempre la tecnica HASH giusto?

Non fucilatemi ma questa mi era sfuggita

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

n/a
deleted

Città: Bari


Inserito il - 31/05/2003 : 09:29:47  Mostra Profilo  Visita l'Homepage di n/a Invia a n/a un Messaggio Privato  Rispondi Quotando
Le dispense di quest'anno sono molto simili a quelle dell'anno scorso.
Devi fermarti alle structure nelle dispense del 2001 e poi devi passare direttamente ai file.
Ignora tutte le realizzazioni con liste perchè ha precisato che non le vuole. Quindi devi usare structure, array e file.

Delle dispense sullo scanner mancano solo i primi 2 lucidi che quest'anno ha fatto vedere (ma che non c'erano nelle dispense del 2001).

In più ci sono le ultime dispense sul parser che Ferilli ha organizzato in maniera diversa.

Ovviamente ci sono le dispense sulla tecnica hash (solo parte teorica) che trovi tra le lezioni di programmazione del sito di Ferilli.

Non dovrebbe esserci altro.
Anch'io avevo intenzione di dare linguaggi a giugno, ma analisi mi sta togliendo molto tempo e non ho ancora iniziato il compilatore.
Penso che rimanderò a luglio.
In bocca al lupo x l'appello.
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 31/05/2003 : 11:04:52  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Io ho tutte le dispense del 2001 e ci sono tutti i codici della scrittura in una tabella HASH. Ora però mi trovo in dubbio! Se con l'allocazione statica non dobbiamo utilizzare i puntantori dobbiamo creare il codice da 0 noi? Ma vanno sempre e cmq fatti i controlli per vedere se una stringa è stata già inserita ecc.

Inoltre, visto che mi trovo. Nelle funzioni di ferilli per separare un token utilizza la ISSPACE() ovvero fino a quando non c'è uno spazio butta tutto nel vettore di caratteri. ORa mi domando

A:=B;

Lo infila tutto nel token... In teoria dovremmo separarlo! Qualche consiglio??

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 31/05/2003 : 11:44:34  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
fatemi capire una cosa... i puntatori non vanno proprio usati quindi?

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

n/a
deleted

Città: Bari


Inserito il - 31/05/2003 : 12:32:51  Mostra Profilo  Visita l'Homepage di n/a Invia a n/a un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da Tano

fatemi capire una cosa... i puntatori non vanno proprio usati quindi?



No. A meno che non siano necessari per gestire record, array o file. Io so che vengono usati solo per le liste.
Comunque potrei pure sbagliarmi, perchè di c x ora ho fatto ben poco.
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 31/05/2003 : 15:11:15  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Sono quasi riuscito a finire di scrivere le funzioni che riempiono una tabella hash. Tutto senza puntatori, unico problema sta nel fatto che non posso usare la strcmp () senza puntatori..

Dovrò escogitare qualche metodo di confronto più semplice

stringapresente = stringadainserire

C dovrebbe permetterlo senza grossi problemi..

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

pbolo
PDott

pfn


Regione: Puglia
Prov.: LECCE
Città: Novoli


Inserito il - 31/05/2003 : 20:05:39  Mostra Profilo  Visita l'Homepage di pbolo  Clicca per vedere l'indirizzo MSN di pbolo Invia a pbolo un Messaggio Privato  Rispondi Quotando
i puntatori non devono essere usati.. ovvio che se in qualche porzione di codice servono ferilli non vi ammazzerà... (speriamo!!!)

pbolo


Torna all'inizio della Pagina

danandr
Utente medio


Regione: Puglia
Prov.: BARI
Città: MONOPOLI


Inserito il - 01/06/2003 : 10:04:40  Mostra Profilo  Visita l'Homepage di danandr  Clicca per vedere l'indirizzo MSN di danandr Invia a danandr un Messaggio Privato  Rispondi Quotando
secondo me i puntatori vanno usati,anche perchè ferilli li ha spiegati,fanno parte del programma.Io penso siano indispensabili per passare per riferimento i parametri alle funzioni
Domanda: Per scrivere le funzioni di RICERCA HASH e ORDINAMENTO HASH,avete praticamente scitto in linguaggio C gli algoritmi che stanno sulle dispende? O si possono semplificare?

Che vita da cani,si lavora anche di domenica,spero ci sia qualcun'altro a farmi compagnia! AIUTIAMOCI

danandr
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 01/06/2003 : 13:33:56  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Allora, questo è un piccolo esempio di immagazzinamento delle tabelle HASH. (è ancora in fase di costruzione quindi non funziona del tutto) DOVETE MODIFICARE LA FUNZIONE PER CALCOLARE L' HASHVAL PERCHE' NON ME LA RICORDO! SE POTETE POSTATELA!!

Quindi:

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>

#define HASHSIZE 101


struct nlist{
		 struct nlist *next;
		 char name[20];
		 char defn;
		 } nlist1;
static struct nlist hashtab[HASHSIZE];
int i=0;
unsigned hashval;
char risp;

main() {

do {
		 printf("Inserisci un identificatore ");
		 scanf("%s",nlist1.name);

		 printf("Carattere inserito %s : \n",nlist1.name);

		 for(i=0;i<=strlen(nlist1.name);i++)
			  hashval=((hashval+((nlist1.name[i])*(i+1))));

			  hashval=hashval%101;

		 printf("Il valore hash calcolato è: %i \n",hashval);
		 hashtab[hashval].name=nlist1.name;

		 printf("Vuoi continuare ad inserire identificatori?");
		 scanf("%c",risp);

	 }
while (risp!='s');

printf("I valori presenti nella HASHTABLE sono: ");
for (i=0;i<=HASHSIZE;i++) printf("%s",hashtab[i].name);



		 return 0;
		  }; //Fine Main

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,31 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000