Liste Dinamiche (con ANIMAZIONI) | PROGRAMMAZIONE C

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 37

  • @viperellaa
    @viperellaa Рік тому +4

    grande!! è il video più chiaro che ho trovato sull'argomento :)

  • @Energyagario10
    @Energyagario10 3 роки тому +14

    Complimenti miglior video in assoluto che ho trovato finora sul argomento, video curato in maniera incredibile le grafiche che hai realizzato aiutano tantissimo a capire i concetti!

  • @just_matth_5190
    @just_matth_5190 2 роки тому +2

    molto d'aiuto, vedro' sicuramente gli altri video sulle liste

  • @giuliasantanocito2204
    @giuliasantanocito2204 2 роки тому +3

    Complimenti! Spiegazione fatta molto molto bene

  • @rullocompressore1550
    @rullocompressore1550 7 місяців тому +1

    Video utilissimo grazie! Ma che programma stai usando? Visual Studio?

    • @bigonn
      @bigonn 5 місяців тому +1

      si

  • @youngpix5372
    @youngpix5372 2 роки тому +1

    complimenti!🙂

  • @alessandrofioretto7466
    @alessandrofioretto7466 2 роки тому +1

    Grazie, video molto utile, neanche il mio prof lo spiega cosi bene

  • @thelphino165
    @thelphino165 2 роки тому +2

    hey scusa che compilatore hai usato in questo video? Grazie comunque, mi sei stato utile, da novizio dell'informatica mi risulta molto comodo vedere in atto questi meccanismi

    • @SebastianoMora
      @SebastianoMora  2 роки тому

      Ciao, ti ringrazio molto! Io solitamente uso XCode e mi trovo molto bene, negli ultimi mesi con l'uni ho usato anche Clion e te lo consiglio

    • @thelphino165
      @thelphino165 2 роки тому

      @@SebastianoMora grazie

  • @claudiosilvestri8485
    @claudiosilvestri8485 2 роки тому

    Ciao, ascolta mi sapresti dire quale sia la differenza tra il C vecchio stile e il C11 ? Se dovessi programmare in C11 utilizzando un libro sulla vecchia versione del C per esempio il C89 o C99 potrei farlo?

    • @christiansoru2734
      @christiansoru2734 2 роки тому

      Claudio sei grandicello per l'informatica ormai. datti all'ippica

    • @EdoardoSciutti
      @EdoardoSciutti 2 роки тому +1

      Si, tutte le versioni del c sono retrocompatibili con le vecchie versioni

    • @claudiosilvestri8485
      @claudiosilvestri8485 2 роки тому

      @@EdoardoSciutti quindi se io dovessi programmare in C11 usando le funzioni del C99 andrebbe ugualmente bene ? Posso compilare il tutto e mandarlo in esecuzione senza problemi ?

    • @domenicolangella5896
      @domenicolangella5896 Рік тому

      @@christiansoru2734 E tu datti alla zappa invece di provare ad emulare gli youtuber facendo video cringe sul tuo canale.

  • @stefanoblandino3795
    @stefanoblandino3795 2 роки тому +1

    Ciao scusa ma nella prima esecuzione del while cosa stampa la funzione se io ho il puntatore che sarebbe la testa della lista quindi che non contiene alcun dato?

    • @SebastianoMora
      @SebastianoMora  2 роки тому

      Ciao, il puntatore “testa” contiene l’informazione del primo nodo della lista, stamperà quello

  • @ildottoredeinabbi5427
    @ildottoredeinabbi5427 2 роки тому +1

    A me da un errore nel for (nella tua linea 25) con visual studio community. Mi da impossibile assegnare un valore di tipo void * ad un entità di tipo nodo*

    • @SebastianoMora
      @SebastianoMora  2 роки тому

      Ciao! Che strano, se non riesci a venirne a capo prova a mandarmi il codice su Instagram che gli do un occhio

    • @amunve2
      @amunve2 2 роки тому +3

      Si, in visual studio da questo errore che in realtà puoi risolvere semplicemente facendo un casting prima di richiamare la funzione malloc. In questo caso ti suggerisco di scrivere:
      nuovoElemento=(nodo*)malloc(sizeof(nodo)); Così facendo l'errore dovrebbe sparire. Spero di esserti stato d'aiuto.

  • @melan7051
    @melan7051 Рік тому

    al posto di malloc posso usare anche l'operatore new ?

    • @SebastianoMora
      @SebastianoMora  Рік тому

      Ciao, new è un comando di Java, in C "l'equivalente" è usare malloc

  • @albertobonu1976
    @albertobonu1976 2 роки тому +1

    👏👏👏👏👏

  • @jackzzzr7016
    @jackzzzr7016 2 роки тому +2

    Se ti pago mi fai un compito di informatica?

  • @salvatorem.4685
    @salvatorem.4685 2 роки тому +1

    Ciao, ho scritto un codice un pò diverso dal tuo poiché permetto all'utente di scegliere quando e quanti elementi inserire nella lista e anche di effettuare ricerche tramite una chiave. Provo a inserire 2 elementi ma faccio una ricerca del 2 elemento, non funziona e non mi stampa i suoi dati poiché non entra nell'if in riga 96 ma va in quello in riga 84. Spero tu possa aiutarmi.
    #include
    #include
    struct persona {
    int eta;
    char nome[50];
    char cognome[15];
    int matricola;
    struct persona *next;
    };
    void inserire(struct persona * *inizio);
    void inserire(struct persona * *inizio)
    {
    struct persona *nuovapersona;
    nuovapersona=malloc(sizeof(struct persona));

    if(nuovapersona==NULL)
    {
    printf("Allocazione memoria non riuscita
    ");
    }

    else
    {

    if(*inizio==NULL)
    {
    *inizio=nuovapersona;
    nuovapersona->next=NULL;

    printf("Inserisci nel seguente ordine nome, cognome, eta' e matricola
    ");
    scanf("%s", nuovapersona->nome);
    scanf("%s", nuovapersona->cognome);
    scanf("%d", &(nuovapersona->eta));
    scanf("%d", &(nuovapersona->matricola));
    }


    else
    {
    struct persona *q;
    q=*inizio;

    while(q!=NULL)
    {
    q=(q->next);
    }

    q=nuovapersona;
    q->next=NULL;
    printf("Inserisci nel seguente ordine nome, cognome, eta' e matricola
    ");
    scanf("%s", q->nome);
    scanf("%s", q->cognome);
    scanf("%d", &(q->eta));
    scanf("%d", &(q->matricola));

    }

    }


    }
    void ricerca(struct persona * *inizio, int matricola);
    void ricerca(struct persona * *inizio, int matricola)
    {
    struct persona *q;
    q=*inizio;



    while( q!=NULL && (matricola)!=(q->matricola) )
    {
    q=(q->next);
    }




    if(q==NULL && (*inizio)!=NULL)
    {
    printf("Elemento non trovato
    ");
    }


    if(q==NULL && *inizio==NULL)
    {
    printf("La lista e' vuota
    ");
    }


    if(q!=NULL)
    {
    printf("%s %s %d %d
    ", q->nome, q->cognome, q->eta, q->matricola);
    }

    }
    int main()
    {
    struct persona *inizio;
    inizio=NULL;

    char s;
    printf("Scegli una tra le seguenti opzioni o digita f per terminare:
    a. Aggiungi persona
    b. Rimuovi persona
    c. Ricerca persona tramite matricola
    ");
    scanf("%s", &s);

    while(s!='f')
    {


    if(s=='a')
    {
    inserire(&inizio);
    }


    if(s=='c')
    {
    printf("Inserisci matricola
    ");
    int matricola;
    scanf("%d", &matricola);

    ricerca(&inizio, matricola);
    }


    printf("Scegli una tra le seguenti opzioni o digita f per terminare:
    a. Aggiungi persona
    b. Rimuovi persona
    c. Ricerca persona tramite matricola
    ");
    scanf("%s", &s);

    }

    }

    • @SebastianoMora
      @SebastianoMora  2 роки тому

      Ciao!
      Ho sistemato il codice, ora dovrebbe andare! Se hai dei dubbi sono qua
      #include
      #include
      struct persona {
      int eta;
      char nome[50];
      char cognome[15];
      int matricola;
      struct persona *next;
      };
      void inserire(struct persona **inizio){
      struct persona *nuovapersona;
      nuovapersona=malloc(sizeof(struct persona));
      printf("Inserisci nel seguente ordine nome, cognome, eta' e matricola
      ");
      scanf("%s", nuovapersona->nome);
      getchar();
      scanf("%s", nuovapersona->cognome);
      getchar();
      scanf("%d", &(nuovapersona->eta));
      getchar();
      scanf("%d", &(nuovapersona->matricola));
      getchar();
      nuovapersona->next = *inizio;
      *inizio = nuovapersona;
      }
      void ricerca(struct persona *inizio, int matricola){
      struct persona *q = inizio;
      if (q == NULL){
      printf("La lista e' vuota
      ");
      }else{
      while(q != NULL && matricola != q->matricola){
      q = q->next;
      }
      if(q == NULL){
      printf("Elemento non trovato
      ");
      }else{
      printf("%s %s %d %d
      ", q->nome, q->cognome, q->eta, q->matricola);
      }
      }
      }
      int main(){
      struct persona *inizio = NULL;
      char s;
      printf("Scegli una tra le seguenti opzioni o digita f per terminare:
      a. Aggiungi persona
      b. Rimuovi persona
      c. Ricerca persona tramite matricola
      ");
      scanf("%c", &s);
      getchar();
      while(s!='f'){
      if(s=='a'){
      inserire(&inizio);
      }else if (s=='c'){
      printf("Inserisci matricola
      ");
      int matricola;
      scanf("%d", &matricola);
      ricerca(inizio, matricola);
      }
      printf("Scegli una tra le seguenti opzioni o digita f per terminare:
      a. Aggiungi persona
      b. Rimuovi persona
      c. Ricerca persona tramite matricola
      ");
      scanf("%c", &s);
      getchar();
      }
      }

  • @mr.l3oX
    @mr.l3oX 2 роки тому +2

    ciao ho scritto il codice ma ottengo un output un po' strano...
    - questo è il sorgente:
    #include
    #include
    typedef struct elem{
    int value;
    struct elem* next;
    }nodo;
    void stampa(nodo* p);
    int main(){
    int i = 0;
    nodo* head = NULL;
    nodo* nelem = NULL;
    for(i = 0; i value = i;
    nelem->next = head;
    head = nelem;
    stampa(head);
    }
    }
    void stampa(nodo* p){
    while(p != NULL){
    printf("
    %d", p->value);
    p = p->next;
    }
    }
    l'output è il seguente:
    0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0
    sei molto esaustivo, bel video complimenti

    • @SebastianoMora
      @SebastianoMora  2 роки тому

      Ciao, grazie mille! Ottieni quell'output perchè chiamato la funzione "stampa()" all'interno del ciclo, in questo modo ad ogni elemento che aggiungi stamperà tutta la lista fino a quel punto

    • @mr.l3oX
      @mr.l3oX 2 роки тому +2

      nulla è verissimo quando dicono che sviluppando un programma la tua mente lo considera perfetto, soltanto che poi non si comporta come ci si aspetta. Eh la bisogna avere due teste e 4 occhi hahah
      grazie mille dell'aiuto ​😆​​😆​