Oppure

Loading
07/04/09 17:47
la struttura del file e cosi
lungezza dei valori da leggere nel array
valori da leggere
numero di rotazioni

per rotazioni si intende le rotazioni dell'array
es
array
1 2 3 4 5 6
rotazione di 1
6 1 2 3 4 5
rotazione di 2
5 6 1 2 3 4

non riesco a fare la rotazione

p.s la rotazione deve essere a scelta dell'utente
es 1)per ruotare verso destra
2)per ruotare verso sinistra
07/04/09 22:16
Anonymous
o utilizzi due variabili temporanee che ti prendono il contenuto dei caratteri successivi prima che vengano sostituiti dai precedenti, oppure utilizzi, più semplicemente, un altro array di appoggio in questo modo:

n è la lunghezza degli array:
for i=1 to n-1 do
  vettoreappoggio[i-1]=vettorepartenza[i];
vettoreappoggio[n-1]=vettorepartenza[0];
for i=0 to n-1 do
 vettorepartenza[i]=vettoreappoggio[i]; 


questo codice ti fa la rotazione verso sinistra, ma capito come funziona il meccanismo puoi fare da solo anche per le rotazioni verso destra...
Ultima modifica effettuata da Anonymous 07/04/09 22:23
aaa
08/04/09 11:02
con due variabili temporenee in che senso
08/04/09 11:29
Anonymous
Con due variabili temporanee è un pò più complesso perché in pratica dovresti far cosi:

supponioamo che l'array sia composto da questi elementi: 1 2 3 4 5

il primo passo da fare dovrebbe essere quello di copiare il primo elemento nel secondo elemento però senza perderne il contenuto, altrimenti non si potrebbe rifare l'operazione copiando il secondo nel terzo e cosi via... quindi prima di copiare il primo nel secondo, devi mettere in una variabile temporanea il valore del secondo elemento cosi dopo puoi tranquillamente far la copia del primo nel secondo...

ora il secondo passo sarebbe quello di copiare nel terzo elemento il valore che c'è dentro la variabile temporanea... ma cosi facendo andresti poi a perdere il contentuo che prima c'era nel terzo elemento e non potresti più effettuare la manovra per copiare dal terzo al quarto, quindi prima di copiare il secondo elemento nel terzo, memorizzi in una seconda variabile temporanea il contentuo che sta nella terza cella.. cosi dopo puoi copiare quello che sta in temp1 nella terza cella dell'array di partenza....

al secondo passo rifai la stessa cosa riutilizzando la prima variabile temporanea perché tanto il valore che c'è dentro non ti serve più...

per il passo successivo ancora riutilizzi la seconda variabile temporanea perché ormai quel valore è scaduto.. e cosi via...

quindi in pratica l'utilizzo di temp1 e temp2 si alterna....

cmq è molto ma molto meglio la soluazione che ti ho dato prima....
aaa
08/04/09 12:21
ti ringrazzio mi serviva senza aray di appogio ma non fa niente.
non riesco a farlo senza array di appogio.
10/04/09 8:05
:d:d:d:d:d:d:d:d

non riesco a farlo con due variabili AIUTOOOOOOOOOOOOOOOOOOOOO
Ultima modifica effettuata da 10/04/09 8:08
10/04/09 9:40
Anonymous
program prova;
uses crt;
const n=9;
var i,temp1,temp2:integer;
    vettore:array [0..n] of integer;
    bool:boolean;
begin
 clrscr;

 writeln('Inserisci tutti i ',n+1,' elementi dell''array:');
 for i:=0 to n do
 readln(vettore[i]);

 bool:=true;
 temp1:=vettore[0];

 for i:=0 to n-1 do
  begin
   if bool=true then
    begin
     temp2:=vettore[i+1];
     vettore[i+1]:=temp1;
     bool:=false;
    end
   else
    begin
     temp1:=vettore[i+1];
     vettore[i+1]:=temp2;
     bool:=true;
    end;
  end;
 if bool=true then
  vettore[0]:=temp1
 else
  vettore[0]:=temp2;

 writeln('Ecco l''array come e'' diventato:');

 for i:=0 to n do
  writeln(vettore[i],' ');
 readln;
end.
aaa
11/04/09 13:54
ti ringrazio