Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-05-2010, 16: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, 17: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, 18: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, 21: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, 21: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, 23: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, 10: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, 10: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


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
AOC propone un QD-OLED al prezzo di un I...
AGCOM segnalerà la AI Mode di Goo...
L'Estonia porta ChatGPT in classe: firma...
2 nm giapponesi contro TSMC: il piano di...
Questa scopa elettrica Tineco iFLOOR 5 è...
FRITZ!Box 6825 4G sbarca in Italia a 129...
Red Hat presenta Digital Sovereignty Rea...
AMD Zen 6 'Olympic Ridge': sette configu...
Amazon batte Walmart dopo 30 anni: il so...
Digos nel mirino dell'intelligence cines...
Sony non vuole aumentare il prezzo della...
Energia geotermica: la (costosa) rispost...
MG ha già venduto 1 milione di au...
"Something Big Is Happening" —...
Renault chiude il 2025 con una perdita r...
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: 20:06.


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