|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
.
.
Ultima modifica di ivanao : 06-04-2010 alle 13:10. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
ma cosa vuoi sapere di preciso?
Apparentemente la soluzione è semplice, in "costo1" fai una scansione della tabella P e incrementi ogni volta un valore aggiungendo il valore "costo totale esami fatti", per quanto riguarda "costo2" leggi ogni singola riga della tabella F (magari in caso di riga nulla suppongo che la tabella sia finita, quindi è inutile leggere tutti i 1000 valori), ad ogni lettura vai ad incrementare la tua variabile "costo", in pratica leggi aF.codes, ti vai a leggere la tabella aE.prez alla riga aF.[aF[i].codes]prez (se gli esami sono in ordine, altrimenti ti devi leggere ogni singola riga finchè aE[].codes==aF[].codes) e incrementi la tua variabile che contiene la somma (chiamiamola "costo"). Per calcolare il costo totale nell'archivio aP (suppongo per tutti i pazienti, non solo per uno) ti devi leggere ogni riga della tabella aF e fare la seguente procedura: { int i=0; while(aF[i].codes)//se è nullo presumo che la tabella sia finita { aP[aF[i].codpaz].costotes+=aE[aF[i].codes].prez; i++; //corrisponde a scrivere i=i+1; } ti ricordo che la notazione += serve ad incrementare, ad esempio x+=Y; è come scrivere x=x+y; spero che tu abbia capito qualcosa. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
ci ragiono su e ti faccio sapere. Mi serviva una direzione di ragionamento...
Grazie |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
.
Ultima modifica di ivanao : 06-04-2010 alle 13:10. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
Quote:
per quanto riguarda l'ordine casuale nella funzione fatti, penso che il testo dica semplicemente che la tabella aF può essere letta senza un ordine particolare, quindi non devi leggerla ordinando il risultato per codice esame o per costo esame ad esempio. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
Quote:
void esame(); { int codice, i, pos=0, neg=0; printf("codice esame"); scanf("%d", &codes); for(i=0, i<max, i++) { if(!aF[i].codes) break; //se la tabella F è finita è inutile leggerla tutta, tanto i codici degli esami vanno da 1 a 200, quindi considero 0 come se la riga fosse vuota, cmq se non lo sai "!aF[i].codes" = "aF[i].codes==0" if(aF[i].codes==codice) { if(aF[i].esito) //posso evitare di mettere ==1, tanto se non è 1 è 0 e quindi è come se fosse FALSE pos++; else neg++ } } //alla fine del ciclo for stampa a video le variabili pos e neg } Ultima modifica di Killian : 24-02-2004 alle 19:23. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
-
Ultima modifica di ivanao : 06-04-2010 alle 13:10. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
Quote:
Comunque se ti riferivi alla funzione "esame" in che senso viene una cagata? Non funziona o da risultati errati (o altro)? |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2002
Messaggi: 2315
|
-
Ultima modifica di ivanao : 06-04-2010 alle 13:11. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:06.



















