Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    3

    Inserendo lo scarto visualizzare la combinazione per ordinare un vettore.

    Faccio un esempio: ho un mazzo di 10 carte di un solo colore(cioè un vettore di 10 elementi) e le devo ordinare da 1 a 10 tenendo conto che tra una carta e la successiva,( es. tra il 2 e il 3 si possono trovare in mezzo 6, 4, 1, 7, ecc.) ci sono carte che vengono di volta in volta scartate sino a quando il mazzetto non esce ordinato da 1 a 10.

    FACCIO UN ESEMPIO PRATICO DI COSTRUZIONE MATEMATICA CON CARTA E PENNA:
    -CON SCARTO 1
    1 passaggio) : - 1 - 2 - 3 - 4 - 5
    2 passaggio) : - 1 6 2 - 3 7 4 - 5
    3 passaggio) : 8 1 6 2 - 3 7 4 9 5
    4 e ultimo(solo in questo caso) passaggio : 8 1 6 10 3 7 4 9 5 <--FACENDO LO SCARTO CON LE CARTE DI 1 USCIRA' IL VETTORE ORDINATO DA 1 A 10 (1 2 3 4 5 6 7 8 9 10)

    Quello che vorrei sapere è la codifica in visual basic console di questo problema usando la funzione MOD (che da il resto) per rendere il vettore circolare in modo da non uscire subito dal giro..Ma uscendo magari usando un IF o un ciclo WHILE o perchè no con LOOP UNTIL.
    Lo scarto da inserire in input deve essere (<= 10)

    In conclusione l'utente dovrebbe vedere questo: -Inserisci scarto (max10) : (output)
    3 (input, lo inseriamo noi da 0 10)



    e deve uscire --> 8 3 5 1 10 9 4 2 7 6

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Qui non si scrive alcuna "codifica": inizia a pensare alla soluzione e, in caso di problemi o dubbi specifici, spiega cosa non va, riporta il codice che hai scritto e la descrizione degli errori e dei problemi che riscontri, eventualmente assieme al codice, e saremo ben felici di aiutarti.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    3
    Mi scuso. Allora questa è la codifica del problema che ho fatto e funziona alla perfezioni vengono visualizzate esattamente tutte le combinazioni:

    Imports System.Console
    Module Module1
    Const k = 10
    Dim num_pos_vuote As Integer
    Dim pos_vettore As Integer
    Dim scarto As Integer
    Dim j, i As Integer
    Dim piazzam_avvenuto As Boolean
    Dim v(k) As Integer



    Sub Main()
    Do
    Write("inserisci lo scarto (max 10) : ")
    scarto = ReadLine()

    Loop Until scarto < k Or scarto = k
    WriteLine()
    num_pos_vuote = 0
    pos_vettore = 0
    piazzam_avvenuto = False
    For j = 1 To k
    For i = pos_vettore To k - 1
    If v(i) = 0 Then
    num_pos_vuote = num_pos_vuote + 1
    End If
    If (i = k - 1) And ((num_pos_vuote < scarto) Or (num_pos_vuote = scarto)) Then
    j = j - 1
    pos_vettore = 0
    piazzam_avvenuto = False
    End If
    If num_pos_vuote = scarto + 1 Then
    v(i) = j
    pos_vettore = i
    i = k + 1
    piazzam_avvenuto = True
    End If
    Next
    If piazzam_avvenuto = True Then
    num_pos_vuote = 0
    pos_vettore = pos_vettore + 1
    End If
    If pos_vettore = k Then
    pos_vettore = 0
    End If
    piazzam_avvenuto = False
    Next
    For i = 0 To k - 1
    WriteLine(v(i))
    Next
    ReadLine()


    End Sub

    End Module


    Quello che ho bisogno di sapere è: come arrivare alla stessa soluzione scrivendo poche righe di codifica rispetto a quella che ho appena digitato usando la funzione MOD (es 1 MOD 10, 2 MOD 10, ecc..) per rendere il vettore circolare. Il mio dubbio è su l'impostazione del MOD, non ho molte idee, l'unico ragionamento che ho fatto è quello riportato nel file allegato.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da jobino
    Allora questa è la codifica del problema che ho fatto
    In futuro usa il tag [CODE] per formattare il codice, così come indicato nel Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5

    ???

    Scusa ma non ho capito un K del tuo problema! potresti essere più chiaro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.