Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8

    Implementare Struttura Dati Lista

    ciao ragazzi ho bisogno del vs aiuto!
    ho questo esercizio sotto mano

    "Progettare una applicazione c che gestisca una matrice di interi M ed una lista di interi L . M è una matrice quadrata n x n con n scelto in maniera dinamica (ad es: inserito dall’utente in fase di esecuzione). Implementare le strutture dati e le seguenti fuzioni:
    Serializza: data la matrice M di dimensione nxn restituisce una lista contenente n2 elementi. Gli elementi nella lista sono gli elementi di M ordinati per righe a partire dalla prima riga fino all’ultima.
    Deserializza: Data una lista L contenente n2 interi, restituisce una matrice nxn che contiene gli elementi di L organizzati per file di lunghezza n. Nota: utilizzare sempre l’allocazione dinamica per le matrici.
    Main: nella funzione main l’utente specifica la dimensione n della matrice e riempie la matrice M di valori interi. L’applicazione serializza la matrice, stampa a video la lista serializzata, somma il valore 5 ad ogni elementro della lista, deserializza la lista e termina visualizzando la matrice che contiene gli elementi deserializzati della lista."

    io l horisolto non utilizzando una struttura dati di tipo lista, poichè ho serie difficoltà nel capire come si ragiona e si procede utilizzando una lista, potreste indicarmi come fare? mi basterebbe anche che mi spiegate il procedimento da eseguire. al resto "come sempre" ci penso sempre io :-)
    questo è il codice che ho battuto ma che non è corretto.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct nodo *lista;
    typedef struct nodo {
    int val;
    lista next;
    
     int deserializza (int n,int **mat,int L[]){
    
     int i, j;
     int x=0;
    
     for (i=0;i<n;i++)
     for (j=0;j<n;j++)
     {
    
     {  mat[i][j]=L[x];
    
     }x++;}}
    
    
    int serializza (int n,int**mat,int L[])
    {int i, j;
    int x=0;
    
    {for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
    L[x]=mat [i][j];
      x++;}  }}}
    
    main()
    {
        int n,**mat,i,j,x;
    
         printf(" dimensione di n della matrice ?  ");
        scanf("%d",&n);
        x=n*n;
        int L[x];
            mat = (int**) malloc (n *sizeof (int*)); /*allocamento*/
        for (i=0; i<n ; i++)
        {    mat[i]= (int*)malloc (n* sizeof (int));}
    printf("Lettura matrice %dX%d elemento ;\n", n, n);
      for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
    
          scanf("%d",& mat[i][j]);}
    }
          serializza (n,mat,L);
          for(i = 0; i < x; i++){
              L[i]+=5;
            printf("%d",L[i]);
            printf("\t");}
    
     deserializza (n,mat,L);
     printf("\n");
      printf("\n");
      for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
         printf("%3d", mat[i][j]);
      }printf("\n");}
    
    
    
      for (i=0; i< n ; i++)
           free (mat[i]);
        free (mat);
    
    
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,295

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io. Tienilo a mente per le discussioni future.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8
    scusami non l ho fatto apposta! è il secondo post che scrivo nel primo l ho inserito !!!
    per un attimo ho pensato che mi avessero subito risposto al problema !!
    incrocio le dita ...Con C cè da impazzzzzzzire !!!!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non è chiaro quanto e cosa tu non sappia fare ... potresti cominciare a leggere

    http://it.wikipedia.org/wiki/Lista_concatenata

    ma non so se ti sono chiare queste nozioni.

    Il codice, come hai detto tu, viene di conseguenza ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8
    Grazie Oregon per la risposta, cerco di spiegarmi meglio,
    premesso che ho molte lacune in C ,l ho studiato tempo fa poco e male e ricordo pochissimo,
    sto cercando di risolvere l esercizio sopra descritto.
    Provandolo a risolvere utilizzando funzioni e puntatori ci sono riuscito ma la soluzione che mi interessa è utlizzando una struttura dati di tipo lista.
    ho letto tutto ciò che riguarda una struttuar di dati e le liste concatenate,, e con l ultilizzo di essa avrei una serie di nodi per poter caricare
    facilmente gli elemnti del vettore e della matrice durante le operazioni descritte
    dalle funzioni "serializza" e "deserializza" , la mia difficoltà è capire come gestire
    una struct node, ricordo di essermi esercitato in passato su strutture semplici tipo studente/matricola ma non molto elaborate.
    Mi manca un metodo, un "apripista" per capire come ragionare in merito a questo esercizio.
    Sono nuovo del forum, non sto assolutamente chiedendo la soluziona bella e comoda! avrei solo bisogno di capire come ci si arriva!
    spero di essermi spiegato meglio stavolta.
    grazie a te a tutti coloro che interveranno in mio aiuto.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Avevo capito la difficoltà ma l'unico modo per proseguire in questo forum è che tu ci dia un tuo esempio di codice con la lista (ovviamente un primo tentativo) e ci dica dove ti fermi (magari con del codice che non fa quello che pensi).

    Solo così potremo approfondire i tuoi problemi ....
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Googlando ho trovato una semplice spiegazione di come si programmano le liste in C e, guarda caso, è una guida proprio in questo sito.

    Clicca qui

    Onestamente, un forum è ideale per risolvere problemi concreti e circoscritti, non aprire topic su argomenti arci-trattati in rete che potresti trovare impiegando 20 secondi usando i motori di ricerca.
    ...

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8
    Caiodark, di guide ce ne sono tante, ti ringrazio per avermi suggerito anche questa e grazie per avermi detto che ci mettevo 20 secondi con google per trovarla!
    non voglio essere molto polemico nei tuoi confronti , ma se una cosa non si riesce a capire leggendo guide, si cerca un aiuto, con un esempio pratico,!" ribadisco non volevo l esercizio bello e fatt!(lo dimostra che una soluzione l ho trovata e postata)
    e non era mia intenzione aprire un post "la lezione del giorno"...
    Onestamente avrei preferito che ti risparmiassi la polemica sugli argomenti arci*trattati e la velocita di trovare risposte.
    un forum è un luogo di aggregazione e di studio,dove gli argomenti si riaprono secondo esigenze diverse, e se tutti fossero bravi come te e con 20 secondi trovi tutte le soluzioni, nessuno scriverebbe più.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,295

    Moderazione

    Originariamente inviato da giovd1
    non voglio essere molto polemico nei tuoi confronti , ma se una cosa non si riesce a capire leggendo guide, si cerca un aiuto, con un esempio pratico,!" ribadisco non volevo l esercizio bello e fatt!(lo dimostra che una soluzione l ho trovata e postata)
    In tal caso, si interviene nella discussione dicendo cosa si è consultato sul Web e spiegando quali sono i punti non chiari della guida o della risorsa letta.

    In assenza di questo, chiaramente, l'unica cosa che si può intuire è che si attende la risoluzione del problema da parte di terzi.

    Se non si capisce e si cerca un aiuto, va detto chiaramente cosa non si è capito, e in quel caso non ci sono problemi a fornire un aiuto, altrimenti è naturale pensare che si voglia la "pappa pronta" (che sia codice o analisi).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    8
    MARCO, ripeto non volevo la pappa bella e pronta !! l ho scritto !! se qualcuno mi avesse postato un esempio anche di un esercizo esplicativo con array utilizzando una struttura di lista, cosa che non ho trovato su google e da nessuna parte !! poteva essermi d aiuto
    probabilmente non riesco a spegarmi bene o sono nel posto sbagliato!
    io di norma chiedo sempre tutto gentimente e con rispetto, e che mi girano...quando
    con superficialità mi si dice ,,bastava "leggere la guida e occorrono 20 secondi" ...lo avrei gia fatto se lo ritevevo opportuno! o siamo su un forum dove si vince qualcosa nel postare un aiuto? o si deve dimostare di saperne più degli altri? ?
    Non so come si fa ma a quest punto preferirei che si eliminasse il post, meglio evitare inutili discussioni e non vorrei accussare chi liberamente puo' scrivere quello che vuole! e urtare la sua suscettibilità.
    Grazie lo stesso per l aiuto.
    Ciao ragazzi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.