Oppure

Loading
27/09/10 16:34
djleo
Ciao come posso fare per far ruotare il contenuto di una matrice.
es

a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
z 1 2 3 4
5 6 7 8 9

Devo spostare tutto il contenuto verso sinistra di n elementi.
es
3
d e f g h
i j k l m
n o p q r
s t u v w
x y z 1 2
3 4 5 6 7
8 9 a b c

Datemi un indizio, ci sto lavorando da più di 3 giorni.























<a href=1-parts.autosites.com.ua/ >иномарки</a>
Ultima modifica effettuata da djleo 27/09/10 18:52
aaa
27/09/10 16:55
Bonny
In geometria questo è possiblie
it.wikipedia.org/wiki/…

ma tu vuoi tipo scambiare le righe con le colonne??
esempio

a b --> a c
c d b d

solo per matrici quadrate.

Ultima modifica effettuata da Bonny 27/09/10 16:58
aaa
27/09/10 17:06
djleo
No non devo scambiare le colonne con le righe ma fare come da esempio

es

a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
z 1 2 3 4
5 6 7 8 9

Devo spostare tutto il contenuto verso sinistra di n elementi.
es
3
d e f g h
i j k l m
n o p q r
s t u v w
x y z 1 2
3 4 5 6 7
8 9 a b c


Ultima modifica effettuata da djleo 27/09/10 17:11
aaa
27/09/10 18:54
djleo
Risolto in un modo molto bruto ma risolto. Spiego ho caricato il contenuto della matrice in un vettore poi ho fatto la rotazione in fine ho riportato il tutto nella matrice.


















aaa
27/09/10 20:53
gigisoft
Salve,
se ho capito bene devi slittare tutti i caratteri di 3 posizioni, eventualmente portandoli sulla riga precedente; prova cosi':


Var Temp: array[1..3] of char;
    I, J, Ki, Kj: Integer;
[...]
For I:=1 to NColonne do
Begin
  For J:=1 to NRighe do
  Begin
    Ki := I - 3;

    If (Ki < 0) Then
       Begin
         Ki := Ki + NColonne;
         Kj := Kj - 1;
       End
     Else
       Kj := J;

    If (Kj < 0) Then
       Temp[I] := Matrice[I, J]
     Else
       Matrice[Ki, Kj] := Matrice[I, J]

  End;

  For I := 1 to 3 do
    Matrice[NColonne + I - 3, NRighe] := Temp[I]
End;


Ciao :k:

Luigi
Ultima modifica effettuata da gigisoft 27/09/10 21:49
aaa
27/09/10 22:14
crack001
da come ho capito è un lavoro di indici, utilizzi 2 cicli per una matrice, 1 per le righe e 1 per le colonne...devi rallentare l'indice delle righe...
aaa