Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2006, 18:40   #1
blindwrite
Senior Member
 
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
[C] ordinamento elementi matrice

Devo fare il seguente esercizio: Trasformata di Burrows-Wheeler.

La trasformata di Burrows-Wheeler (BWT) è un algoritmo molto usato per la
compressione dei dati. Implementare la tecnica di codifica.
Bisogna richiedere all'utente una stringa di testo avente una lunghezza massima
MAX_STR (l'utente può inserire anche meno di MAX_STR caratteri) e bisogna generare
tutte le possibili rotazioni della stringa.
Le varie rotazioni così generate, vanno ordinate considerate come stringhe da
ordinare alfabeticamente in una matrice, di cui si stampa a schermo l'ultima
colonna che è la trasformata BWT della stringa iniziale.

In pratica il programma deve:
* Chiedere di inserire una stringa;
* Generare tutte le rotazioni della stringa in una matrice;
* Ordinare alfabeticamente le RIGHE della matrice contenenti le rotazioni;
* Stampare a schermo l'ultima COLONNA della matrice.

Es.:

Inserisci una stringa:
BANANA

Le rotazioni sono:
BANANA
ANANAB
NANABA
ANABAN
NABANA
ABANAN

Matrice stringhe ordinate:
ABANAN
ANABAN
ANANAB
BANANA
NABANA
NANABA

sono arrivato a fare le rotazioni ma adesso non riesco a ordinare la matrice
posto il programma che ho scritto, con l'ordinamento sbagliato.

grazie in anticipo a tutti coloro che mi aiuteranno!!!
Allegati
File Type: txt ruota.txt (2.4 KB, 9 visite)
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit
blindwrite è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 20:07   #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
Fare l'ordinamento è abbastanza semplice:

Puoi usare l'aloritmo di ordinamento che vuoi...
La cosa più importante è il confronto:

strcmp(matrice[i], matrice[j])

ritorna un valore > di zero se la stringa i è maggiore della stringa j, un valore minore di zero se la stringa i è minore della stringa j...

Quindi a seconda del valore ritornato da strcmp compi o meno lo scambio degli elementi...

Lo scambio fra stringhe puoi farlo così:

char tempString[N];
strcpy(tempString, matrice[i]);
strcpy(matrice[i], matrice[j]);
strcpy(matrice[j], tempString);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 22:08   #3
blindwrite
Senior Member
 
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
grazie per la risposta, non pensavo che la strcmp confrontasse elementi di una matrice.

ho corretto in questo modo e funziona!


void ordina(char ruotato[][MAX_STR],int a)
{
int i,max,j;
char tempString[MAX_STR];
for(i=0;i<a-1;i++){
for(j=i+1;j<a;j++){
max=strcmp(ruotato[i],ruotato[j]);


if(max==1){
strcpy(tempString, ruotato[i]);
strcpy(ruotato[i], ruotato[j]);
strcpy(ruotato[j], tempString);
}
}
}

stampa(ruotato,a); //richiama funzione per stampare




}
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit
blindwrite è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 23:47   #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
Infatti non stai ordinando una matrice, ma di fatto un vettore di stringhe...
matrice[i] è una stringa...

Sostituisci max==1 con max > 0...le specifiche dicono che il valore può essere anche magiore di 1...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2006, 20:08   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
A me non funziona, mi da problemi quando passo la matrice alla funzione, è come se gli passasse qualcos'altro, infatti poi mi stampa "(null)" un po' di volte quando lo eseguo..
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2006, 23:02   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Ho trovato il problema: io all'inizio avevo messo come dimensione massima della stringa 20 invece di 100 e dopo mi stampava cose senza senso, invece mettendo 100 va tutto bene. Chissà perchè...
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Project Panama: ecco come Anthropic ha d...
MrBeast entra nel fintech: Beast Industr...
Arrivano i nuovi server Bare Metal 2026 ...
Stop alla distribuzione dei driver di st...
Serie TV God of War: scelto anche l'atto...
Riot Games dimezza il team di 2XKO dopo ...
FRITZ! in super offerta su Amazon: ripet...
L'AI doveva farci lavorare meno: e se st...
DREAME X50 Ultra Complete a 899€ su Amaz...
Rimodulazione TIM: aumenti fino a 2,99 e...
Amazon sblocca i prezzi con coupon e sco...
Action cam Insta360 in super offerta su ...
Fallout 76 Sorgenti Brucianti: tanta car...
Scope elettriche super potenti a confron...
Tutti i Google Pixel 10 sono scontati su...
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: 13:41.


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