Algoritmo di riorganizzazione di stringhe in Visual Basic

2

Programmatore iniziale qui (principalmente ingegnere). Sto facendo trapezi a strati. Iniziamo con il piccolo strato di lunghezza e terminiamo con il più lungo strato di lunghezza.

Desidero che il mio utente inserisca la lunghezza massima desiderata, la lunghezza minima desiderata, il tipo di motivo (5 o 7 ciascuno) e il numero di livelli da utilizzare.

Quindi il programma sputa un output basato su questi input. Ecco un esempio con 5 strati:

Esempio di livello 5:

15 layers = MRMRM / MRMRM / MRMRM /

Per una lunghezza minima desiderata di 3 e lunghezze variabili variabili, la mia stringa di output desiderata sarebbe:

LUNGHEZZA MAX 3: 3 [MRMRM / MRMRM / MRMRM /]

LUNGHEZZA MAX 4: 3 [MRMRM / MRMR] 4 [M / MRMRM /]

LUNGHEZZA MAX 5: 3 [MRMR] 4 [M / MRMR] 5 [M / MRMRM /]

LUNGHEZZA MAX 6: 3 [MRMR] 4 [M / MRMR] 5 [M / MR] 6 [MRM /]

(Separando prima gli M / layer, ora dividendo MRMR in stringhe di 2 caratteri)

LUNGHEZZA MAX 7: 3 [MRMR] 4 [M / MR] 5 [MR] 6 [M / MR] 7 [MRM /]

MAX LENGTH 8: 3 [MRMR] 4 [M / MR] 5 [MR] 6 [M / MR] 7 [MR] 8 [M /]

LUNGHEZZA MAX 9: 3 [MR] 4 [MR] 5 [M / MR] 6 [MR] 7 [M / MR] 8 [MR] 9 [M /]

(Ora dividendo M / dalle stringhe MR per ultime):

LUNGHEZZA MAX 10: 3 [MR] 4 [MR] 5 [M / MR] 6 [MR] 7 [M /] 8 [MR] 9 [MR] 10 [M /]

LUNGHEZZA MAX 11: 3 [MR] 4 [MR] 5 [M /] 6 [MR] 7 [MR] 8 [M /] 9 [MR] 10 [MR] 11 [M /]

Da lì, si tratta semplicemente di prendere il punto centrale e di cambiare i numeri in modo uniforme tra la parte posteriore e davanti al punto medio, aggiungendo uniformemente i numeri.

Non riesco a pensare ad un semplice algoritmo per fare questo scissione. Poiché è leggermente meno materiale, se una divisione avviene su un numero dispari (come il salto da 3-4, o 5-6), abbiamo la divisione si verificano sul lato lontano del punto medio. Immagino di dover fare due algoritmi, uno per il caso 5 layer e uno per il caso 7 layer.

Pensieri?

    
posta Mark 18.06.2015 - 17:13
fonte

0 risposte

Leggi altre domande sui tag