Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 23: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 08:38.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08: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, 09: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, 09: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, 09: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, 10: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, 10: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, 10: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, 10: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, 10: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, 10: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, 11: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, 11: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, 11: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, 11: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 12:26.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12: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, 13: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, 13: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, 13: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, 13: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


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Google DeepMind presenta Genie 4, il mod...
Beats Studio Pro a 179€ in 3 colori, sup...
Oracle affida agli agenti di IA l'implem...
CO2 atmosferica a livello record nel 202...
Un portatile per i militari, ma con un o...
Discord, i messaggi di oltre 63.000 serv...
Nascosto nei meandri di Amazon, questo p...
Motorola Moto Buds 2 a 39,90€: prezzo di...
Due schede Raspberry Pi mai annunciate n...
Microfono gaming Yeti GX a 72,19€: -44% ...
PagoPA, false multe da 198 euro arrivano...
107,99€ su Amazon da stamattina: prezzo...
Cowboy Space Corp. presenta il suo razzo...
Per NetSuite il vantaggio nell'IA sta ne...
Scoperta la zona d'origine del segnale W...
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: 09:18.


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