- Messaggi: 9
- Ringraziamenti ricevuti 0
LINUX AVANZATO 2007
- Elia GattaElia Gatta
-
- Offline
- New Member
-
Riduci
Di più
18 Anni 6 Mesi fa #46991
da Elia GattaElia Gatta
Risposta da Elia GattaElia Gatta al topic LINUX AVANZATO 2007
ESATTO!!! Ogni volta serve una bella dose di esperienza di un argomento... quindi serve una bella dose di preparazione su TUTTO C... per un esame di Linux... MAH!!
Cmq io sono uno di quelli che ieri è passato... ma certo... se lui basa poi il voto dell'esame (o comunque varia la sua predisposizione) in base al tempo che ci metti a programmare... è assurdo... dato che per fare la prova che diceva "creare N cloni, aspettare che ne terminino K e poi uccidere gli altri" non mi pare paragonabile alle altre 3...
PS... a parte i due che non sono passati perchè ha fatto cambiare delle cose all'ultimo... il prof ha fatto cose ben piu assurde: quello di fronte a me, aveva messo una scanf per prendere gli 8 nomi della lista da tastiera, lui è venuto lì e ha detto "no no ma non è che ogni volta posso prendere i nomi da tastiera" e se n'è andato... -_-'
Cmq io sono uno di quelli che ieri è passato... ma certo... se lui basa poi il voto dell'esame (o comunque varia la sua predisposizione) in base al tempo che ci metti a programmare... è assurdo... dato che per fare la prova che diceva "creare N cloni, aspettare che ne terminino K e poi uccidere gli altri" non mi pare paragonabile alle altre 3...
PS... a parte i due che non sono passati perchè ha fatto cambiare delle cose all'ultimo... il prof ha fatto cose ben piu assurde: quello di fronte a me, aveva messo una scanf per prendere gli 8 nomi della lista da tastiera, lui è venuto lì e ha detto "no no ma non è che ogni volta posso prendere i nomi da tastiera" e se n'è andato... -_-'
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 6 Mesi fa #46995
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
secondo me non era affatto difficile, motivo per cui siamo passati in tanti
il compito piu' difficile forse l'ha dato il 23, per la questione dell'ordinamento...cmq tutto dipende giustamente da persona a persona, in base a quello che sai fare meglio (come avete gia' detto)
nella prova di ieri bastava sapere usare in maniera corretta (niente di eccezionale) i puntatori e le liste per finirlo senza troppi problemi.
il compito piu' difficile forse l'ha dato il 23, per la questione dell'ordinamento...cmq tutto dipende giustamente da persona a persona, in base a quello che sai fare meglio (come avete gia' detto)
nella prova di ieri bastava sapere usare in maniera corretta (niente di eccezionale) i puntatori e le liste per finirlo senza troppi problemi.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 6 Mesi fa #46998
da COM_EASYSOCIAL_GUEST_NAME
non penso che si segni chi finisce prima nè a quale prova ha partecipato, il voto dovrebbe dipendere solo dall'orale...
vediamo di prepararci bene...
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Cmq io sono uno di quelli che ieri è passato... ma certo... se lui basa poi il voto dell'esame (o comunque varia la sua predisposizione) in base al tempo che ci metti a programmare... è assurdo...
non penso che si segni chi finisce prima nè a quale prova ha partecipato, il voto dovrebbe dipendere solo dall'orale...
vediamo di prepararci bene...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 6 Mesi fa #47035
da COM_EASYSOCIAL_GUEST_NAME
Grazie, Rizzi
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Il calcolatore è tutto tuo e ci fai quello che ti pare.
Io ogni tanto compilavo per controllare la correttezza del programma, per evitare di dover correggere una valanga di errori alla fine.
Grazie, Rizzi
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 6 Mesi fa #47060
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Ho provato a rifare la mia prova di laboratorio nella maniera più compatta e pulita possibile. Spero sia utile a qualcuno.
Se ci sono errori avvisatemi.
Bye!!
Se ci sono errori avvisatemi.
#include <stdlib.h>
#include <stdio.h>
//funzione hash ausiliaria
int hash_func(char *stringa1, char *stringa2, int m) {
int i, val = 0;
for(i = 0; i < 30; i++) {
if(*(stringa1+i) == '\0')
break;
val = val ^ *(stringa1+i);
}
for(i = 0; i < 30; i++) {
if(*(stringa2+i) == '\0')
break;
val = val ^ *(stringa2+i);
}
val = val % m;
return val;
}
//struttura anagrafica
typedef struct rec {
char nome[30];
char cognome[30];
} record;
//elemento lista
typedef struct ns {
record rec;
struct ns *next;
}node;
//funzione per inserimento in testa alla lista
node *list_add(node **p, record new_rec) {
node *n = (node *)malloc(sizeof(node));
n->next = *p;
*p = n;
n->rec = new_rec;
return n;
}
int main(int argc, char **argv) {
if(argv[1] == NULL || argc != 2) {
printf("Numero parametri errato!!\n");
exit(0);
}
int m = atoi(argv[1]);
//allocazione dinamica voluta da bovet ma essenzialmente inutile
node **hash = (node **)malloc(sizeof(node)*m);
int i;
if(m >= 8 || m < 1) {
printf("Il numero inserito come parametro è errato!! Inserire un numero compreso fra 1 e 7\n");
exit(0);
}
record anagrafico[8] = { {"mario", "rossi"}, {"paolo", "verdi"}, {"stefano", "bianchi"}, {"fabio", "neri"}, {"daniele", "azzurri"}, {"francesco", "gialli"}, {"franco", "grigi"}, {"fabrizio", "marroni"} };
printf("\nStampa dell'array anagrafico\n\n");
for(i = 0; i < 8; i++) {
printf("%d: Nome: %s Cognome: %s\n", i + 1, anagrafico[i].nome, anagrafico[i].cognome);
}
//inserimento dell'anagrafe nelle varie liste
for(i = 0; i < 8; i++) {
int j = hash_func(anagrafico[i].nome, anagrafico[i].cognome, m);
list_add(&hash[j], anagrafico[i]);
}
printf("\n\nStampa delle %d liste di hash[]\n\n", m);
for(i = 0; i < m; i++) {
printf("Lista %d\n", i + 1);
if(hash[i] == NULL)
printf("Nessun elemento mappato in lista %d!\n", i + 1);
while(hash[i] != NULL) {
printf("Nome: %s Cognome: %s\n", (hash[i]->rec).nome, (hash[i]->rec).cognome);
hash[i] = hash[i]->next;
}
printf("\n");
}
free(hash);
return 0;
}Bye!!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
Autore della discussione
- Visitatori
-
18 Anni 6 Mesi fa #47081
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Grande Rizzi,mi rincuori,perchè quell'algoritmo (inteso come chiamate a funzioni e puntatori di puntatori) è lo stesso che avevo in mente io quando ho letto il programma...
Se solo avessi passato quel maledetto test di ingresso....GRRRRRRR
Se solo avessi passato quel maledetto test di ingresso....GRRRRRRR
Si prega Accedi o Crea un account a partecipare alla conversazione.