Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
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 elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-02-2008, 16:50   #1
nixonik
Junior Member
 
Iscritto dal: May 2006
Messaggi: 19
[C] Esercizio su liste

salve, visto che domani ho un esame, qualcuno sarebbe così gentile da dirmi come si fa in C questo esercizio?
E' un esercizio vecchio, vorrei solo capire come vanno modificati i puntatori perchè non capisco.

Scrivere una funzione C:
lista alternaListaPlace (lista L, lista M)
che restituisce una lista in cui i nodi di L sono alternati con quelli di M. Eseguire l'operazione
senza allocare nuova memoria, ma semplicemente spostando i puntatori. Se una delle due liste è più
corta dell'altra, la coda della più lunga viene semplicemente attaccata in fondo. Restituire come
risultato un puntatore alla testa della lista alternata.

Ultima modifica di nixonik : 05-02-2008 alle 17:33.
nixonik è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:17   #2
stdecden
Member
 
L'Avatar di stdecden
 
Iscritto dal: Apr 2007
Messaggi: 263
Cosa intendi per lista alternata

lista1 = [1 3 5 7 9]
lista2 = [2 4 6 8]
listaAlt = [1 2 3 4 5 6 7 8 9]
stdecden è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:27   #3
nixonik
Junior Member
 
Iscritto dal: May 2006
Messaggi: 19
esatto....come dice senza allocare nuova memoria, ma soltanto modificando i puntatori..
nixonik è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:28   #4
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Tra le regole del forum ce n'è una che dice : "Non si risolvono esercizi completi di scuola o università" .

Posta una tua soluzione (probabilmente sbagliata) e poi noi la correggiamo

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:29   #5
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ah, cambia il titolo del thread in "[C] Esercizio su liste" il prima possibile , altrimenti appena arriva cionci te lo chiude :/
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:37   #6
nixonik
Junior Member
 
Iscritto dal: May 2006
Messaggi: 19
lo so, ma io non ho idea di come si faccia...avevo fatto qualcosa del genere

Codice:
slistptr alternalista (slistptr L, slistptr M)
{
         slistptr alternata;
         int c=1;
         
         while ((L!=NULL)||(M!=NULL))
          {
            if (c%2==0){
              alternata->str=M->str;
              M=M->next;}
            else{
              alternata->str=L->str;
              L=L->next;}
            c++;
            alternata=alternata->next;
          }
         while (alternata!=NULL)
     {
      printf("%d -> ",alternata->str);
      alternata=alternata->next;
     }}
ma è completamente sbagliata...uno perchè credo che facendo così c'è bisogno di allocare memoria...e io devo modificare solo i puntatori...
ILLUMINATEMI
non devo consegnare l'esercizio, è solo che domani ho l'esame e vorrei capirci meglio
nixonik è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 18:58   #7
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Prova questa versione.

Non ti assicuro che funzioni perchè non ho potuto provarla (su sto PC non ho un compilatore C purtroppo) . E' una versione ricorsiva. Distrugge entrambe le liste (E' l'unico modo di fare se non ne vuoi allocare un altra) e ne crea un altra che è la concatenazione delle due nel modo richiesto (in teoria )

Codice:
slistptr alternaListe(slistptr L, slistptr M) {
  if (L == NULL)
    return M;
  if (M == NULL)
    return L;
  L->next = alternaListe(M, L->next);

  return L;
}
Fammi sapere se funziona

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 19:11   #8
nixonik
Junior Member
 
Iscritto dal: May 2006
Messaggi: 19

Funziona
non passerò mai questo esame
Grazie cmq

Mi spiegheresti com'è che fa a funzionare però? O.o

diciamo che se la L è vuota ritorna M e se M è vuota ritorna L..fin qui ok....
poi non capisco l'assegnazione..nel secondo elemento di L mette...?? come funziona? :S

Ultima modifica di nixonik : 05-02-2008 alle 19:27.
nixonik è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 20:09   #9
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Eh, le funzioni ricorsive possono essere un po' criptiche

La funzione spezzetta il problema in parti sempre più semplici (ad ogni chiamata di funzione) fino a raggiungere il momento in cui il problema è talmente semplice da essere risolvibile con una (o poco più) istruzione.

Il metodo di "spezzettamento" è richiamare la funzione "alternaListe()" invertendo i suoi parametri (cioè facendo diventare nella successiva chiamata quella che correntemente è M la L e quella che adesso è L->next la M della nuova chiamata).

Questo procedimento di inversione inquadra perfettamente il problema originale che è "alternare" gli elementi all'interno delle liste, infatti, se noti , la lista che nella prima chiamata è L nella seconda diventa M per poi tornare L nella terza chiamata. In pratica si alternano, esattamente come deve succedere per gli elementi della lista finale. Inoltre con il L->next piano piano si avanza nella lista elemento per elemento arrivando infine a NULL (quando una delle due liste sarà stata completamente iterata).


A questo punto il lavoro della funzione è terminate e ritorna l'altra lista che non è NULL come ultimo elemento della nuova lista (o se le liste hanno la stessa lunghezza ritorna comunque NULL).


Putroppo spiegare il funzionamento di una funzione ricorsiva senza un appoggio grafico è tosta. Ti consiglio di farti uno schizzetto su carta segnandoti i valori delle variabili tra le varie chiamate di funzioni per due liste relativamente corte (2 o 3 elementi)

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 20:28   #10
nixonik
Junior Member
 
Iscritto dal: May 2006
Messaggi: 19
ci proverò...
grazie mille per il tuo tempo
nixonik è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
AMD felicissima per le prestazioni della...
Hisense 43'' 4K e Haier 50'' 4K a 199€: ...
WORX WG743E a 199€: il tosaerba a batter...
Chiede aiuto per un crash su Steam, si r...
Altro che alternativa low cost: le memor...
Debutta Facebook Verified: un badge grat...
iPhone 17 Pro a 1.229€ su Amazon: il mod...
Polymarket oscurato in Italia, cosa ha s...
Aumenti illegittimi da Netflix, parte la...
Stop alle offerte 'edizione limitata' di...
Tesla è riuscita a ottenere memor...
Meta si svincola dall'uso delle rinnovab...
SpaceX Starship: dopo il successo di Fli...
Gli incendi in Spagna minacciano la staz...
Intel punta sul vetro: partnership con L...
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: 08:36.


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