- Messaggi: 62
- Ringraziamenti ricevuti 0
LINUX AVANZATO 2007
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 2 Mesi fa #53740
da COM_EASYSOCIAL_GUEST_NAME
se mi dici di quale si tratta, visto che con le date non la trovo, guardo se l'ho fatta.
Al limite metti direttamente il testo.
ciao
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
soluzione alla prova di programmazione del 23/05/2007
se mi dici di quale si tratta, visto che con le date non la trovo, guardo se l'ho fatta.
Al limite metti direttamente il testo.
ciao
Si prega Accedi o Crea un account a partecipare alla conversazione.
- COM_EASYSOCIAL_GUEST_NAME
-
- Visitatori
-
18 Anni 2 Mesi fa #53741
da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Eccolo, lo ho trovato.
Questo codice presuppone l'esistenza del file con i nominativi degli studenti
il codice per la creazione è comunque all'interno di questo codice, ma commentato.
Questo codice presuppone l'esistenza del file con i nominativi degli studenti
il codice per la creazione è comunque all'interno di questo codice, ma commentato.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <error.h>
struct studente{
char cognome[21];
int eta;
float media;
}typedef studente;
struct st_lista{
studente std;
struct st_lista *next;
}typedef st_lista;
studente* MiglioriEnneStudenti(char *,int, int);
int main (int argc, char const* argv[]){
/* CREAZIONE DEL FILE
int fd ;
int i ;
int nwrite;
fd = open("studenti",O_CREAT|O_WRONLY,0666);
if(fd<0){
printf("errore nella creazione del file\n");
return -1;
}
studente st[8] =
{{"Rossi", 24, 24.56},
{"Bianchi", 24, 24.56},
{"Verdi", 30, 29.65},
{"Blu", 22, 28.30},
{"Rosa", 19, 27.30},
{"Gialli", 25, 27.30},
{"Neri", 24, 25.56},
{"Viola", 21, 30.00}};
for( i = 0; i < 8; i += 1 ){
nwrite = write(fd,&st[i],sizeof(studente));
if(nwrite < 0){
printf("errore nella scrittura su file\n");
return -1;
}
}
printf("scrittura completata\n");
*/
MiglioriEnneStudenti("studenti",4,25);
printf("\n");
return 0;
}
studente* MiglioriEnneStudenti(char *file, int numscelti, int maxeta){
int fd = open(file,O_RDONLY);
int fileLen = 0;
int numStruct =0;
studente *st;
st = (studente *)malloc(sizeof(studente));
studente *res;
float tmp_media = 0;
int nread ;
int i ;
if(fd < 0){
printf("errore nell'apertura del file\n");
return NULL;
}
//vediamo quando è grande il file
fileLen = lseek(fd,0,SEEK_END);
numStruct = fileLen / sizeof(studente);
//printf("Ci sono %d strutture\n", numStruct);
////riportiamo il puntatore all'inizio del file
lseek(fd,0,SEEK_SET);
/* nread = read( fd, st, sizeof(studente) );
if(nread < 0){
printf("errore nella read \n");
return NULL;
}*/
studente *tmp;
tmp = (studente *)malloc(sizeof(studente)*numStruct);
i=0;
while(read(fd,st,sizeof(studente)) > 0){
tmp[i]=*st;
//printf("%s\n", tmp[i].cognome);
i++;
}
res = (studente *)malloc(sizeof(studente)*numscelti);
int r = 0;
int tmp_i=0;
int tmp_q=0;
i=0;
while(r<numscelti){
//ad ogni giro
//cerco quello che ha l'eta adatta e il voto piu alto
for( i = 0; i < numStruct; i += 1 ){
if(tmp[i].eta < maxeta){
if(tmp[i].media > tmp_media){
tmp_media = tmp[i].media;
tmp_i = i;
}
}
}
res[tmp_q]=tmp[tmp_i];
//printf("%s\t%d\t%f\n", res[tmp_q].cognome ,res[tmp_q].eta, res[tmp_q].media );
tmp[tmp_i].media = 0;
tmp_media=0;
r++;tmp_q++;
}
for( r = 0; r < numscelti; r += 1 ){
printf("%s\t%d\t%f\n", res[r].cognome ,res[r].eta, res[r].media );
}
return res;
}Si prega Accedi o Crea un account a partecipare alla conversazione.
- chiara sabbatella
-
- Offline
- Senior Member
-
Riduci
Di più
18 Anni 2 Mesi fa #53773
da chiara sabbatella
Risposta da chiara sabbatella al topic LINUX AVANZATO 2007
Ciao Ragazzi...il prof mi ha collocato la prova il 26!!! Esiste qualcuno (mi rendo conto che è difficile ma c provo lo stesso a chiedere
) che ce l'ha il 28 o il 2 e che voglia scambiare il giorno con me!!!???
Grazie a tutti!!!
Grazie a tutti!!!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- nicola bocchini
-
- Offline
- New Member
-
Riduci
Di più
- Messaggi: 5
- Ringraziamenti ricevuti 0
18 Anni 2 Mesi fa #53850
da nicola bocchini
Risposta da nicola bocchini al topic LINUX AVANZATO 2007
Ciao raga, un informazione per l'orale:
Qualcuno sa se il prof. chiede tutta la tediosa parte della creazione di una distribuzione, insomma non posso saltare nulla??
E sulla inizializzazione del kernel?? sono una trentina se non di più funzioni da ricordare... a parte le prime funzioni di startup 32, la init e la prima fase della start_kernel le altre le posso saltare??
E tutti i piccoli file assembler (boot1.s, boot2.s... ) nella parte della creazione dei dischi di boot è necessario ricordarla.
Vorrei avere qualche neourone libero per ricordarmi meglio le cose più importanti tipo (slab allocator, o radix tree ecc. ecc.)
Speriamo bene, anch'io ce l'ho il 26.
Qualcuno sa se il prof. chiede tutta la tediosa parte della creazione di una distribuzione, insomma non posso saltare nulla??
E sulla inizializzazione del kernel?? sono una trentina se non di più funzioni da ricordare... a parte le prime funzioni di startup 32, la init e la prima fase della start_kernel le altre le posso saltare??
E tutti i piccoli file assembler (boot1.s, boot2.s... ) nella parte della creazione dei dischi di boot è necessario ricordarla.
Vorrei avere qualche neourone libero per ricordarmi meglio le cose più importanti tipo (slab allocator, o radix tree ecc. ecc.)
Speriamo bene, anch'io ce l'ho il 26.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- chiara sabbatella
-
- Offline
- Senior Member
-
Riduci
Di più
- Messaggi: 62
- Ringraziamenti ricevuti 0
18 Anni 2 Mesi fa #53857
da chiara sabbatella
Risposta da chiara sabbatella al topic LINUX AVANZATO 2007
Guarda nn credo....a rigor di logica lui ha sempre detto che nn vuole che la gente faccia esercizi di memoria ma che impari i concetti.....poi bhoooo tutto è possibile.
Credo cmq che qualcosa, tipo strutture e funzioni + importanti, vadano imparate a memoria ....cosa che per me, per esempio, è impossibile.....
Speriamo bene....in bocca al lupo!!!
Credo cmq che qualcosa, tipo strutture e funzioni + importanti, vadano imparate a memoria ....cosa che per me, per esempio, è impossibile.....
Speriamo bene....in bocca al lupo!!!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- lorenzo gullotta
-
- Offline
- New Member
-
Riduci
Di più
- Messaggi: 10
- Ringraziamenti ricevuti 0
18 Anni 2 Mesi fa #53868
da lorenzo gullotta
Risposta da lorenzo gullotta al topic LINUX AVANZATO 2007
Ciao volevo fare l'in bocca al lupo a tutti quelli che come me hanno la seconda prova oggi, qualcuno ha parlato con lui in questi giorni? sapete qualcosa su probabili argomenti per il programma?
Si prega Accedi o Crea un account a partecipare alla conversazione.