Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - PROBLEMA CODICE INSERTION SORT
Forum - C/C++ - PROBLEMA CODICE INSERTION SORT - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Iprogrammer (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/04/2020

Segnala al moderatore
Postato alle 22:08
Martedì, 28/04/2020
Ho provato a modificare il codice seguendo i vostri consigli ma non riesco a raggiungere la soluzione.
Il codice non è stato scritto da me e devo sistemarlo cercando di mantenere la struttura così com'è ora.

Qualcuno riuscirebbe a riscriverlo correttamente e postarlo?

So che potrebbe essere visto come uno sfruttamento ma è da giorni che ci provo senza ottenere risultati mi piacerebbe vedere una soluzione.

Ultima modifica effettuata da Iprogrammer il 28/04/2020 alle 22:18
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 22:17
Martedì, 28/04/2020
Il doppio asterisco invece a che serve? (nessuno dice doppio puntatore) mi sfugge il significato.

Qui una spiegazione:

https://forum.html.it/forum/showthread/t-695786.html




If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 22:50
Martedì, 28/04/2020
Testo quotato

Postato originariamente da Iprogrammer:

Ho provato a modificare il codice seguendo i vostri consigli ma non riesco a raggiungere la soluzione.
Il codice non è stato scritto da me e devo sistemarlo cercando di mantenere la struttura così com'è ora.

Qualcuno riuscirebbe a riscriverlo correttamente e postarlo?

So che potrebbe essere visto come uno sfruttamento ma è da giorni che ci provo senza ottenere risultati mi piacerebbe vedere una soluzione.



Ti abbiamo trovato degli errori, prova a correggerli.



If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:18
Mercoledì, 29/04/2020
Nessuno riscrive il programma per te. Correggi gli errori indicati e posta nuovamente il codice corretto indicando cosa non va.

Ultima modifica effettuata da nessuno il 29/04/2020 alle 9:19


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 10:51
Mercoledì, 29/04/2020
Testo quotato

Postato originariamente da nessuno:

Nessuno riscrive il programma per te. Correggi gli errori indicati e posta nuovamente il codice corretto indicando cosa non va.



Diciamo che oltre un ottimo informatico, in passato saresti stato anche il discepolo preferito della Sibilla. :D:D:D

G.


Ibis redibis non morieris in bello
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 13:02
Mercoledì, 29/04/2020
Ho dato un'altra occhiata, gli errori sembrano voluti, come se un professore avesse cambiato delle cose ad arte, e alcuni sono palesi, ecco l'elenco.

riga 21, per fare spazio bisogna contare all'indietro e il -1 su lung non ci va, altrimenti il for non viene eseguito:
sbagliata: for (int j = lung - 1; j > posizione; ++j)
corretta: for (int j = lung ; j > posizione; --j)

riga 27, il simbolo = serve per assegnazione, per il confronto ci vuole ==
sbagliata:  if (num_dati_ord = 0)
corretta: if (num_dati_ord == 0)

riga 43, come detto da nessuno bisogna passare anche il numero degli elementi
incompleta: void ordina_dati(const int *dati_non_ordinati, int *dati_ordinati)
corretta: void ordina_dati(const int *dati_non_ordinati, int *dati_ordinati, int num_dati)

riga 45, non serve, va eliminata

riga 68, va aggiunto il numero degli elementi
incompleta: ordina_dati(dati_input, dati_ordinati);
corretta: ordina_dati(dati_input, dati_ordinati, num_dati);

Con queste modifiche il codice ordina correttamente le sequenze che hanno in prima posizione il numero maggiore della sequenza.
es. 12 1 9 7 2 4 (ordinata correttamente) risultato 1 2 4 7 9 12
es. 5 1 9 7 2 4 (la sequenza non viene ordinata dopo il valore 5) risultato 1 2 4 5 0 0

EDIT:

nel post delle 9:39 di Giovedì, 30/04/2020, codice completo funzionante

Ultima modifica effettuata da Carlo il 30/04/2020 alle 10:33


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 14:03
Mercoledì, 29/04/2020
Risolto anche l'ultimo bug, ora il codice funziona perfettamente, non lo posto, sentiamo Iprogrammer :k:

Ultima modifica effettuata da Carlo il 29/04/2020 alle 17:21


in programmazione tutto è permesso
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 700
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 14:45
Mercoledì, 29/04/2020
Se non hai mai sentito parlare di rosettacode.org, questa potrebbe essere una buona occasione per farci una visitina:

https://rosettacode.org/wiki/Sorting_algorithms/Insertion_sort

Anche questo può essere un bello spunto:

https://www.tutorialspoint.com/cplusplus-program-to-impleme ...

Ultima modifica effettuata da AldoBaldo il 29/04/2020 alle 14:47


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo