Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 22:58   #1
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
problema di ordinamento di un vettore c

salve ragazzi, ho dei problemi con questo esercizio, in pratica la funzione riceve in ingresso un array V di interi e deve creare un array W ordinato con all interno gli elementi di V. ho creato questo sorgente ma non funziona...cosa mi consigliate?

Codice:
#include <iostream.h>
#include <stdlib.h>
#define N 5

int vect[N];

void ordina(int vettore[N]){
     int a,k,i;
     int flag[N];
     int w[N];
     for(int g=0;g<N;g++){
          flag[g]=0;
          w[g]=0;
}
          
    for(i=0;i<N;i++){
             w[i]=vettore[i];
             for(k=0;k<N;k++){
                  if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag
                          
                   w[i]=vettore[k];       
             
             //w[i]=a;
             flag[k]=1;
     }
     for(int f=0;f<N;f++){
             cout<<"flag  --> " <<flag[k]<<endl;
             cout<<endl;
             cout<<"w     --> " <<w[f]<<endl;
             }
}



main(){
       for(int i=0;i<N;i++){
            cout<<"digita numero"<<endl;
            cin>>vect[i];
            }
       ordina(vect);
       system("PAUSE");
}

Ultima modifica di cionci : 21-03-2007 alle 07:38.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 07:44   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Esistono dei ben precisi algoritmi per effettuare l'ordinamento dei vettori, il più semplice: http://it.wikipedia.org/wiki/Bubble_sort
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:38   #3
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
li conosco alcuni, e solo ke vorrei riuscire a creare questa funzione.. se potete aiutarmi a capire, ve ne sarei grato
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:40   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma allora perché non applichi un algoritmo di ordinamento noto ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:59   #5
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
perke il problema assegnatomi, non lo rikiede.. in pratica si tratta di un esercizio e lo devo svolgere cosi..
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:19   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E qual'è il testo del problema ?
Se il testo è quello scritto sopra puoi applicare banalmente un algoritmo di ordinamento copiando prima gli elementi di vettore in w e poi applicando l'algoritmo di ordinamento su w.
Ad occhio quello che stai tentando di fare è trovare il minimo fra gli elementi del vettore non flaggati, per carità dovrebbe funzionare anche così, ma mi sembra ben più complesso.

Comunque l'errore mi sembra qui:
Codice:
    for(i=0;i<N;i++){
             w[i]=vettore[i];
             for(k=0;k<N;k++){
                  if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag
                          
                   w[i]=vettore[k];       
             
             flag[k]=1;
     }
k è sempre uguale a N dopo il for.
Devi crearti una variabili minIndex:
Codice:
           if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag                        
           { 
                   w[i]=vettore[k];  
                   minIndex = k;
           }
           flag[minIndex] = 1;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:31   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Inoltre vedo una certa confusione...stavi parlando di C e usi iostream del C++ e non solo: iostream.h e stdlib.h sono deprecate. Ora devi includere iostream e cstdlib.

#include <iostream>
#include <cstdlib>

using namespace std; //per includere tutto il namespace std
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:39   #8
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
grazie!!! qualcosa sta migliorando solo ke ci sono ancora dei problemi...
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:44   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Questa parentesi non ci vuole:

for(k=0;k<N;k++){

o se ce la metti ne metti anche una chiusa dopo l'if...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:47   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cout<<"flag --> " <<flag[k]<<endl;
Ci devi mettere f al posto di k...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:53   #11
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
allora.. alcune cose le avevo corrette cmq grazie per il resto, ho detto c e non c++ per evitare di spiegare ke non posso usare le classi, i puntatori e altre cose..cmq.. non riesco a capire perke la funzione funziona solo in parte, cioe ordina solo alcuni numeri...
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:10   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il problema ce l'hai perchè inizializzi w[i] con w[i]=vettore[i];
vettore[i] può essere già flaggato oppure anche l'elemento minimo fra quelli non flaggati, in questo caso lasci un elemento minimo non flaggato che verrà assegnato a tutti i passi successivi come elemento minimo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:25   #13
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
questo e il codice modificato, ho aggiunto "temp" per ovviare al problema ma lo stesso ho problemi..


void ordina(int vettore[N]){
int minIndex,temp=0;
int a,k,i;
int flag[N];
int w[N];
for(int g=0;g<N;g++){
flag[g]=0;
w[g]=0;
}

for(i=0;i<N;i++){
//w[i]=vettore[i];
temp=vettore[i];
for(k=0;k<N;k++)
if((temp>=vettore[k])&&(flag[k]!=1)){ //trova il minimo e i flag

w[i]=vettore[k];
minIndex = k;

}
flag[minIndex]=1;
}


for(int f=0;f<N;f++){
cout<<" flag --> " <<flag[f]<<endl;
cout<<endl;
cout<<"w --> " <<w[f]<<endl;
}
}


main(){
for(int i=0;i<N;i++){
cout<<"digita numero"<<endl;
cin>>vect[i];
}
ordina(vect);
//cout<<trov_min(vect);
system("PAUSE");
}
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:36   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo perchè temp potrebbe essere già flaggata e quindi sarebbe minore di tutti gli elementi rimasti... Inizializza temp a INT_MAX.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:51   #15
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
non ci sto capendo niente!!! ..aiutatemi...

Ultima modifica di papas_b : 21-03-2007 alle 11:26.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 11:53   #16
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da papas_b Guarda i messaggi
non ci sto capendo niente!!! ..aiutatemi...

togli l'ordinamento per il flag e fai un normale ordinamento al minimo...
se tutto ok allora usa il flag...
okay è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:11   #17
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
Quote:
Originariamente inviato da okay Guarda i messaggi
togli l'ordinamento per il flag e fai un normale ordinamento al minimo...
se tutto ok allora usa il flag...
in pratica mi stai dicendo di rifare tutto?

non ci sto.. lo devo risolvere!!!
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:13   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai provato ad inizializzare temp a INT_MAX ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:23   #19
alberto.frz
Member
 
L'Avatar di alberto.frz
 
Iscritto dal: Dec 2004
Città: Venezia
Messaggi: 192
...prova a guardare il bubble sort e traine spunto...cosi vedi come procedere...
__________________
alberto.frz è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:55   #20
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
gazie.. ma devo sistemare questo codice.. si tratta di qualke disattenzione (spero!!)
papas_b è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
LG presenta in Italia le gamme TV Micro ...
Sette anni dopo l'annuncio, The Wolf Amo...
'Non avrete aumenti': la decisione shock...
TIM lancia il Pass Mondiali DAZN: 104 pa...
Tesla Roadster, promessa o miraggio? La ...
Mark Hamilton, la tavola periodica del m...
Hanger 13 annuncia Uomo d'Onore: espansi...
La battaglia delle HBM4 entra nel vivo: ...
Dopo 12 anni torna Alien: Isolation. Ecc...
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: 21:44.


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