Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-06-2006, 15:08   #1
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
Array di interi...problemino

Salve, ragazzi. Ho un array di interi non necessariamente ordinato in ordine crescente. Devo ottenere questo risultato:
array iniziale:
int num[] = {0,0,1,1,1,3,3,4,4,4}
array che devo ottenere:
int num[] = {0,0,1,1,1,3,3}
Cioè devo eliminare il numero che si ripete più volte più grande. Potete aiutarmi??? GRAZIE!!!

Ultima modifica di Lo_Straniero2003i : 19-06-2006 alle 15:34.
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 15:24   #2
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
IMHo: parti dall'algoritmo del massimo di un vettore e, contestualmente, ci valorizzi una variabile-contatore che conta le ripetizioni di quel valore nell'array.
Inizia ad abbozzare qualcosa...
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 15:48   #3
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
Potresti scrivermi una porzione di codice per favore? Il linguaggio è indifferente. Grazie.
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 15:56   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Lo_Straniero2003i
Ho un array di interi non necessariamente ordinato in ordine crescente. Devo ottenere questo risultato:
array iniziale:
int num[] = {0,0,1,1,1,3,3,4,4,4}
array che devo ottenere:
int num[] = {0,0,1,1,1,3,3}
Cioè devo eliminare il numero che si ripete più volte più grande.
Se ho capito bene se c'è il caso particolare come sopra (1 e 4 che si ripetono 3 volte) devi eliminare solo il maggiore cioè 4. Giusto?
Inoltre per l'array di destinazione devi usare lo stesso array o un altro (anche allocato dinamicamente)??

Comunque credo che convenga:
1) Ordinare in modo crescente l'array.
2) Cercare il numero che si ripete più volte.
3) Copiare i dati in un altro array saltando il numero che compare più volte.

Poi magari posta qualcosa che vediamo.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 15:59   #5
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
Per calcolare il massimo assumiamo inizialmente che il massimo elemento è il primo e poi facciamo una scansione degli elementi del vettore.
Se troviamo un elemento che è maggiore del massimo, quello è il nuovo massimo.

Codice:
massimo=x[0];
for(i=0; i<=numeroelementi-1; i=i+1)
{
      if( x[i]>massimo ) 
      {
        massimo=x[i];
      }
    }
Vorrei capire comunque se l'array finale e quindi, stando al tuo esempio, quello in cui non compare il numero 4, deve essere sempre num oppure un altro.
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:04   #6
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
E tutto giusto...ma non ci riesco!!
Per favore, mi scriveresti il codice? sò che sarà na stupidagine...ma proprio non riesco ad arrivarci...
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:13   #7
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
La ricerca del massimo era chiara; ma da un vettore iniziale, devo avere lo stesso vettore senza il num che si ripete più volte più grande.
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:39   #8
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
Quote:
Originariamente inviato da Lo_Straniero2003i
La ricerca del massimo era chiara; ma da un vettore iniziale, devo avere lo stesso vettore senza il num che si ripete più volte più grande.
Seguendo quanto detto da andbin e supponendo il vettore di dimensione massima DIMAX
1-ordiniamo il vettore in maniera crescente
Codice:
 for (i=0;i<(dimax-1);i++)
 {
   for (j=i+1;j<dimax;j++)
   { 
     if (num[i]<=num[j])
     { 
        appoggio=num[i];
        num[i]=num[j];
        num[j]=appoggio[i];
    }
  }
 }
2-determiniamo l'elemento massimo e le sue occorrenze (quante volte esso è presente) che andremo a memorizzare in una variabile contatore "cont" inizializzata a 0:
Codice:
massimo=x[0];
cont=0;
for(i=0; i<=(dimax-1); i++)
{
      if( num[i]>=massimo ) 
      {
        massimo=num[i];
        cont++;
      }
    }
3-eliminiamo dal vettore ordinato gli ultimi cont elementi e pertanto il ciclo si arresta fino a quando i vale dimax-cont, cioè il totale degli elementi del vettore meno gli elementi duplicati:
Codice:
for (i=dimax;i=(dimax-cont);i--)
{
  num[i]='';
}
Non uso java da un bel po'. pertanto non sono sicuro che num[i]='' sia una assegnazione legittima avendo dichiarato precedentemente int num[]

Spero di esserti stato comunque utile.
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond

Ultima modifica di motogpdesmo16 : 19-06-2006 alle 16:50.
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:43   #9
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da motogpdesmo16
Codice:
 for (i=0;i<(dimax-1);i++)
 {
   for (j=i+1;j<dimax;j++)
   { 
     if (num[i]<=num[j])
     { 
        appoggio=num[i];
        num[i]=num[j];
        num[j]=num[i];
    }
  }
 }
ehm ... perche' assegni un valore ad appoggio se poi non lo usi ?
servira' a qualcosa no ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:47   #10
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da motogpdesmo16
2-determiniamo l'elemento massimo e le sue occorrenze (quante volte esso è presente) che andremo a memorizzare in una variabile contatore "cont" inizializzata a 0:
Codice:
massimo=x[0];
cont=0;
for(i=0; i<=(dimax-1); i++)
{
      if( num[i]>massimo ) 
      {
        massimo=num[i];
        cont++;
      }
    }
"cont" messo li conta solo quante volte trova un numero piu' grande, cioe' i cambi di valore
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:51   #11
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
Quote:
Originariamente inviato da trallallero
ehm ... perche' assegni un valore ad appoggio se poi non lo usi ?
servira' a qualcosa no ?
si per la fretta ho dimenticato di rivalorizzare num con appoggio.
inoltre nella ricerca del massimo, la clausola è ">=" e non solo uguale e pertanto il cont piazzato li conta quante volte avviene il cambio di valore o alternativamente quando viene trovato un valore massimo uguale a quello già memorizzato.
Dovrebbero essere risolti ora gli errori a cui facevi riferimento....
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 16:55   #12
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da motogpdesmo16
si per la fretta ho dimenticato di rivalorizzare num con appoggio.
inoltre nella ricerca del massimo, la clausola è ">=" e non solo uguale e pertanto il cont piazzato li conta quante volte avviene il cambio di valore o alternativamente quando viene trovato un valore massimo uguale a quello già memorizzato.
Dovrebbero essere risolti ora gli errori a cui facevi riferimento....
ok
ocio che la fretta é una brutta bestia
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 17:00   #13
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da motogpdesmo16
si per la fretta ho dimenticato di rivalorizzare num con appoggio.
inoltre nella ricerca del massimo, la clausola è ">=" e non solo uguale e pertanto il cont piazzato li conta quante volte avviene il cambio di valore o alternativamente quando viene trovato un valore massimo uguale a quello già memorizzato.
Dovrebbero essere risolti ora gli errori a cui facevi riferimento....
'azz ... t'ho letto di fretta
No, l'errore non e' il >
Qui hai 2 rami:
- il numero e' uguale a quello appena letto ?
si -> incrementa cont di 1
no -> resetta cont = 1 ed assegna a massimo il numero trovato

Questo ovviamente dato per scontato che l'array e' in ordine crescente
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 17:06   #14
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
Quote:
Originariamente inviato da trallallero
'azz ... t'ho letto di fretta
No, l'errore non e' il >
Qui hai 2 rami:
- il numero e' uguale a quello appena letto ?
si -> incrementa cont di 1
no -> resetta cont = 1 ed assegna a massimo il numero trovato

Questo ovviamente dato per scontato che l'array e' in ordine crescente
Mi sa che hai proprio ragione. Si vede che ho fatto di fretta...ma a grandi linee l'ho fatto.
Codice:
massimo=x[0];
cont=0;
for(i=0; i<=(dimax-1); i++)
{
      if( num[i]>massimo ) 
      {
         cont++;
      }
      else
     {
        massimo=num[i];
        cont=1;
     }

    }
Intendevi questo, vero?
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 18:43   #15
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
non ho capito bene il problema...
il numero incriminato è il più alto indipendentemente dal numero di volte che si ripete o è quello che si presenta il maggior numero di volte ed in caso di pareggio fra due numeri è il più alto?

per intenderci, nel seguente vettore rimarrebbe l'uno o gli zeri?

{0,0,0,1}
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 20:11   #16
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
Il vettore da te scritto resterebbe tale
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 21:14   #17
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
Scusa motogpdesmo16... mi serve capire questo:

hai scritto questo: for (i=dimax;i=(dimax-cont);i--)
{
num[i]='';
}

ma la condizione è che i==(dimax-cont) ???
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2006, 21:46   #18
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
Quote:
Originariamente inviato da Lo_Straniero2003i
Scusa motogpdesmo16... mi serve capire questo:

hai scritto questo: for (i=dimax;i=(dimax-cont);i--)
{
num[i]='';
}

ma la condizione è che i==(dimax-cont) ???
for (i=dimax;i<=(dimax-cont);i--)
{
num[i]='';
}

ennesimo errore di scrittura. Scusami ancora...ma oggi evidentemente era giornata di mente annebbiata.
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 08:17   #19
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da motogpdesmo16
ennesimo errore di scrittura. Scusami ancora...ma oggi evidentemente era giornata di mente annebbiata.
se pensi al mare mentre scrivi é normale

Codice:
if( num[i]>massimo ) 
      {
         cont++;
      }
      else
     {
        massimo=num[i];
        cont=1;
     }

Intendevi questo, vero?
niente, proprio stordito completamente
diciamo che cosi' funziona meglio:
Codice:
   if( num[i] > massimo ) 
   {
      massimo = num[i];
      cont = 1;
   }
   else
   {
      cont++;
   }
dai se ti puó consolare pensa che io fino a settembre non ho ferie
chissá le boiate che scriveró ad Agosto
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2006, 10:05   #20
Lo_Straniero2003i
Member
 
Iscritto dal: Nov 2005
Messaggi: 37
Scusatemi, ma in java come faccio a dare il valore a vuoto? Perchè se metto "" o '' mi dà errore...mi sta portando via troppo tempo sto esercizio...e la prox settimana ho l'esame!!!
Lo_Straniero2003i è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Le tute spaziali AxEMU di Axiom Space pe...
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
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: 07:50.


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