Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-05-2010, 15:48   #1
ciusss89
Senior Member
 
L'Avatar di ciusss89
 
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
[C] Liste di liste.

Salve,

Ho un problema nella definizione della struttura dati. Vorrei fare una lista di liste.

Tale necessità è dattata dalla sistuzione seguente:
ho un file che contiene un numero indefinito di paziente, sul quale su ogni riga è riportato paziente è temperatura.

Esempio del file in ingresso.

1 36.3 ROSSI
1 36.6 BIANCHI
2 37.1 ROSSI
3 36.1 BIANCHI
4 39.2 ROSSI
5 34.1 ROSSI

HO pensato la struttura dati cosi:
Una lista principale che contiene soldanto i nomi dei pazienti (in questo caso solo 2), e una lista secondaria che dipenda dalla prima, la quale contiene per ogni pazienete la serie delle temperatura lette sullo stesso paziente.

per accedere alla seconda lista intendo seguire qualcosa tipo:
pntA->pntB->campo

Vorrei chiarimenti su come definere le strutture. grazie

Il mio sviluppato per il momento:
Codice:
#include    <stdio.h>
#include    <stdlib.h>
#include    <string.h>
#define     L_nome 20+1
#define     db 1
// Gestione acquisizione dati CAMPI di CC.DAT [Giorno rilevazione] [Temp paziente] [Nome]
// Lista secondaria contenente le "misurazioni sui pazienti" sui pazienti.
struct newT{
    int day;
    float temperature;
    struct newT *nextT;
    };
// Lista principale contenente la lista pazienti.
struct newP{
    int **T;
    char paziente[L_nome];
    struct newP *nextP;
    };

//*****************MAIN FUNCTIONS*****************
struct newP* scanDATA(struct newP *, FILE*);
struct newP* buildP();
struct newT* buildT();
struct newP* Move(struct newP *, char *);
struct newP* Wiev_list(struct newP *);
//*************AND OF MAIN FUNCTIONS**************

int main (){

//**********************VAR**********************
    FILE *fin1;

    struct newP *ptopP;

    ptopP=NULL;
//*******************END OF VAR******************

    if((fin1=fopen("cc.dat","r"))==NULL){
        fprintf(stderr,"\nERROR!: I can't open your file ");
        exit(EXIT_FAILURE);
      }
    ptopP=scanDATA(ptopP,fin1);


    return 0;
    }


//**************Details of Funcitions****************
struct newP* scanDATA(struct newP *ptopP, FILE* dati){
    //**debug
    if(db==1)
        printf("\n-----------FUNZIONE scanDATA-----------\n");

    int Day;
    float Temp;
    char Nome[L_nome];
    while (fscanf(dati,"%d %f %s",&Day,&Temp,Nome)!=EOF){
        //**debug
        if(db==1)
           printf("%d  %f  %s \n",Day,Temp,Nome);

        ptopP=Move(ptopP,Nome);


        }
        if(db==1)
            Wiev_list(ptopP);
    //**debug
    if(db==1)
        printf("\n-----------END OF scanDATA-------------");
    return (ptopP);
    }

struct newP* buildP(){
    struct newP *newPTR;
    newPTR=(struct newP*)malloc(sizeof (struct newP));
    if(newPTR==NULL){
        fprintf(stderr,"Memory denied");
        exit(EXIT_FAILURE);
        }
    return(newPTR);
    }

struct newT* buildT(){
    struct newT *newPTR;
    newPTR=(struct newT*)malloc(sizeof (struct newT));
    if(newPTR==NULL){
        fprintf(stderr,"Memory denied");
        exit(EXIT_FAILURE);
        }
    return(newPTR);
    }

struct newP* Move(struct newP *ptopP, char *PAZIENTE){
    int add=1;
    struct newP *ptmpSERCH;
    struct newP *ptmp;
    ptmpSERCH=ptopP;
    //CHECK!
    while(ptmpSERCH!=NULL){
        if(strcmp(PAZIENTE,ptmpSERCH->paziente)==0)
            add=0;
        ptmpSERCH=ptmpSERCH->nextP;
        }
    //NUOVO paziente
    if(add==1){
        ptmp=buildP();
        strcpy(ptmp->paziente,PAZIENTE);
        ptmp->nextP=ptopP;
        add=1;
        ptopP=ptmp;
        }
    //Dati per paziente?

    return (ptopP);
    }

struct newP* Wiev_list(struct newP *punt){
    printf("\nLista pazienti della lista:");
    while(punt!=NULL){
        printf("\n%s",punt->paziente);
        punt=punt->nextP;
        }
    }
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...
Vendo : ROUTER STATION PRO, SISTEMA EMEDDED.
ciusss89 è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2010, 16:57   #2
simXD
Junior Member
 
Iscritto dal: May 2010
Messaggi: 7
In sintesi, non ho capito bene , vorresti una struttura che ti contenga nome e temperatura x ogni paziente?
simXD è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2010, 17:17   #3
ciusss89
Senior Member
 
L'Avatar di ciusss89
 
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
Quote:
Originariamente inviato da simXD Guarda i messaggi
In sintesi, non ho capito bene , vorresti una struttura che ti contenga nome e temperatura x ogni paziente?
NO una lista che contiene solo i nomi e il puntatore ad una seconda lista che contine 2 campi.

Non si conosce a priori la dimensione ne della prima che della seconda...mi sono spiegato?
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...
Vendo : ROUTER STATION PRO, SISTEMA EMEDDED.
ciusss89 è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2010, 20:12   #4
ciusss89
Senior Member
 
L'Avatar di ciusss89
 
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
UP ragazzi???

Almeno consigliatemi...se dovreste gestire due campi, di cui non è possibile conoscere a priori le dimensioni di tali strutture cosa usereste? ricordati che una deve fare capo a quella principale.
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...
Vendo : ROUTER STATION PRO, SISTEMA EMEDDED.
ciusss89 è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2010, 20:39   #5
simXD
Junior Member
 
Iscritto dal: May 2010
Messaggi: 7
beh... forse io una piccola idea ce l'avrei... non ho capio bene cosa vuoi fare con le struct ma non è importante, proviamo così:
hai un numero indefinito di pazienti da inserire in un vettore quindi... potresti dichiarare un vettore di grandezza ad esempio 100 e in seguito potresti eseguire un controllo ogni volta che viene inserito un paziene, per esempio, tu dichiari il tuo vettore a 100, lo carichi con il primo paziente, alla fine con un do-while potresti chiedere se ci sono altri pazienti e continuare ad eseguirlo fino a quando la risposta non sarà un no, a quel punto esce dal ciclo e finisce il programma... ora spero di non aver scritto qualcosa di errato il mio è solo un consiglio, che A MIO PARERE dovrebbe funzionare
simXD è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2010, 22:19   #6
ciusss89
Senior Member
 
L'Avatar di ciusss89
 
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
Cerco di spiegarmi meglio:

Gli esercizi che ci propongono a questo livello, da come si prentano i file di imput ci rendiamo conto se usare strutture statiche o dinamiche.

I dati sono i seguenti:
DATA TEMP NOME

Si ha un numero indefinito di nomi, potrebbero esserci piu temp per lo stesso nome...

Quindi come procedo?...acquisisco i dati in modo da fare una liista PRIMARIA i cui campi sono soltanto i NOMI senza doppioni, e vorrei che il secondo campo fosse il puntatore ad una seconda struttura o sottostruttora figlia della prima contente la data e la temp.

Non posso utilizzare metedodi che prevedono di stabilire a priori le dimensioni.
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...
Vendo : ROUTER STATION PRO, SISTEMA EMEDDED.
ciusss89 è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2010, 09:30   #7
simXD
Junior Member
 
Iscritto dal: May 2010
Messaggi: 7
ah ho capito ora scusami ma non penso davvero di avere le conoscenze necessarie x aiutarti errore mio
simXD è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2010, 09:31   #8
ciusss89
Senior Member
 
L'Avatar di ciusss89
 
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
Quote:
Originariamente inviato da simXD Guarda i messaggi
ah ho capito ora scusami ma non penso davvero di avere le conoscenze necessarie x aiutarti errore mio
GRazie lo stesso..

RAGA NESSUNO??
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...
Vendo : ROUTER STATION PRO, SISTEMA EMEDDED.
ciusss89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Rocket Factory Augsburg ha riscontrato u...
Blue Origin sta ricostruendo e modifican...
BMW taglierà 8.000 posti di lavor...
7.600 annunci di nudify app su Meta, tut...
Visa ne lascia a casa 2600: intelligenza...
Batterie sostituibili? Per Logitech, gli...
IBM: l'IA riduce i costi delle violazion...
Logitech G Cloud bocciata dal pubblico, ...
NVIDIA RTX Spark, provato un prototipo c...
Sony e Fujifilm: evacuate le fabbriche d...
Starship: Ship 40 continua a galleggiare...
UMC investe su Singapore e Tainan per ri...
Steam Machine, novità sulle code:...
Anche Foxconn abbandona VMware e sceglie...
Windows 11 migliora l'accessibilit&agrav...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v