AcquaPortal Forum Acquario Dolce e Acquario Marino

AcquaPortal Forum Acquario Dolce e Acquario Marino (http://www.acquariofilia.biz/forum.php)
-   In fondo al BAR... (http://www.acquariofilia.biz/forumdisplay.php?f=34)
-   -   Programma in C aiuto urgente... (http://www.acquariofilia.biz/showthread.php?t=124912)

Darkstar 10-04-2008 16:17

Programma in C aiuto urgente...
 
Ragazzi per chi sa qualche cosa ed arriva a darmiuna mano....

Si consideri un file che contiene una sequenza di cognomi di candidati seguiti da un intero K, tale che ogni elemento rappresenta k voti espressi a favore di quel candidato. Come esempio si consideri il seguente file

Rossi 6
Verdi 4
Bianchi 4
Rossi 4
Bianchi 1
Rossi 11
De_Rossi 21
Rossi 11
Verdi 12
Verdi 7

Si assuma che il numero di voti sia qualsiasi ma il numero di candidati votati sia al massimo 100.
Si scriva una funzione C che riceve come parametro un file siffatto e restituisca attraverso un ulteriore parametro il cognome del candidato che ha ricevuto più voti totali. La funzione deve in oltre restituire il numero di voti presi dal candidato suddetto.
Si assuma che tutti i candidati assumano un unmero diverso di voti e che quindi non si verifichino situazioni di parità.
Nell esempio, la funzione deve restituire ceme candidato Rossi e come valore 32.

Che arriva mi aiuti entro domani... GRAZIE :-))

lookdown80 10-04-2008 17:48

Ah, belli i tempi dell'università... mi dispiace, l'unico esame di ingegneria che ho dato è stato quello di chimica. ;-)

Comunque la sequenza logica è questa, ti crei una matrice con massimo 100 voci, poi per ogni nome ti chiedi: è già in lista?
1) sì, sommo al totale precedente
2) no, creo una nuova voce dell'array
e scorri la lista, poi basta che ordini per il campo voti... in bocca al lupo.

Marco

fa69 10-04-2008 18:06

Un file excel ?

Homerct 10-04-2008 18:26

Quote:

Originariamente inviata da lookdown80
Ah, belli i tempi dell'università... mi dispiace, l'unico esame di ingegneria che ho dato è stato quello di chimica. ;-)

Comunque la sequenza logica è questa, ti crei una matrice con massimo 100 voci, poi per ogni nome ti chiedi: è già in lista?
1) sì, sommo al totale precedente
2) no, creo una nuova voce dell'array
e scorri la lista, poi basta che ordini per il campo voti... in bocca al lupo.

Marco

Esatto!
Dando per scontato che sai aprire il file,usare i boleani e usare le formattazioni, procedi:
- definendo due vettori uno char e uno integer (ai quali a pari indice corrisponde rispettivamente cognome e totale voti);
- una variabile char Cognome e una integer Voto;
- con un ciclo di 100 iterazioni leggi i dati dal file riga per riga memorizzando il dato in Cognome e Voto;
- all'interno dello stesso ciclo ne crei un'altro che confronta i valori letti con quelli del vettore (cioè un'altro ciclo annidato di 100 iterazioni): se il cognome non esiste lo crea e associa il voto letto nel file, se il cognome è già presente nella lista, somma il voto letto al totale contenuto nel rispettivo vettore dei voti!);

-con un'ultimo cliclo di 100 iterazioni, sfogli il vettore dei voti alla ricerca del valore max, ottenendo l'indice "i" e fai restituire alla funzione l'elemento iesimo del vettore cognome e del vettore voti.

la spiegazione è un pò incasinata, ma non è molto difficile. #36#

Darkstar 11-04-2008 14:10

Ragazzi fatto l'orale abbiamo discusso del compito... #12

Ho sbagliato una cosa perchè ho fatto due cicli for ma non ho creato la stringa per i nomi, ma dovevo usare anche una funzione la stringcompare strcmp che vedeva se i nomi erano gia stati inseriti... :-( :-( -04 #07 #13 -28d# -20 #23

Homerct 11-04-2008 20:02

Quote:

Originariamente inviata da Homerct
- all'interno dello stesso ciclo ne crei un'altro che confronta i valori letti con quelli del vettore (cioè un'altro ciclo annidato di 100 iterazioni): se il cognome non esiste lo crea e associa il voto letto nel file, se il cognome è già presente nella lista, somma il voto letto al totale contenuto nel rispettivo vettore dei voti!);

Io l'ho scritto :-))

Ma non ho capito una cosa... lo scritto lo hai fatto a casa?

Darkstar 12-04-2008 11:21

Lo scritto lo fai in aula poi a casa ti prepari il prog funzionante da portare all'orale... ma all'orale non ha neanche guardato il prog -04 -04 e ci ho prso un pome a farlo con tanti cicli che controllano errori ecc... -04 #07


Tutti gli orari sono GMT +2. Attualmente sono le 11:54.

Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2025, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal
User Alert System provided by Advanced User Tagging v3.2.5 Patch Level 2 (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl

Page generated in 0,08781 seconds with 13 queries