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
Pascal - file di testo e array
Forum - Pascal - file di testo e array

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
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

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 0:16
Mercoledì, 08/04/2009
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:
Codice sorgente - presumibilmente Delphi

  1. for i=1 to n-1 do
  2.   vettoreappoggio[i-1]=vettorepartenza[i];
  3. vettoreappoggio[n-1]=vettorepartenza[0];
  4. for i=0 to n-1 do
  5.  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 il 08/04/2009 alle 0:23
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:02
Mercoledì, 08/04/2009
con due variabili temporenee in che senso

PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 13:29
Mercoledì, 08/04/2009
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....

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:21
Mercoledì, 08/04/2009
ti ringrazzio mi serviva senza aray di appogio ma non fa niente.
non riesco a farlo senza array di appogio.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:05
Venerdì, 10/04/2009
:d:d:d:d:d:d:d:d

non riesco a farlo con due variabili AIUTOOOOOOOOOOOOOOOOOOOOO

Ultima modifica effettuata da il 10/04/2009 alle 10:08
PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1059
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 11:40
Venerdì, 10/04/2009
Codice sorgente - presumibilmente Delphi

  1. program prova;
  2. uses crt;
  3. const n=9;
  4. var i,temp1,temp2:integer;
  5.     vettore:array [0..n] of integer;
  6.     bool:boolean;
  7. begin
  8.  clrscr;
  9.  
  10.  writeln('Inserisci tutti i ',n+1,' elementi dell''array:');
  11.  for i:=0 to n do
  12.  readln(vettore[i]);
  13.  
  14.  bool:=true;
  15.  temp1:=vettore[0];
  16.  
  17.  for i:=0 to n-1 do
  18.   begin
  19.    if bool=true then
  20.     begin
  21.      temp2:=vettore[i+1];
  22.      vettore[i+1]:=temp1;
  23.      bool:=false;
  24.     end
  25.    else
  26.     begin
  27.      temp1:=vettore[i+1];
  28.      vettore[i+1]:=temp2;
  29.      bool:=true;
  30.     end;
  31.   end;
  32.  if bool=true then
  33.   vettore[0]:=temp1
  34.  else
  35.   vettore[0]:=temp2;
  36.  
  37.  writeln('Ecco l''array come e'' diventato:');
  38.  
  39.  for i:=0 to n do
  40.   writeln(vettore[i],' ');
  41.  readln;
  42. end.


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:54
Sabato, 11/04/2009
ti ringrazio

PM Quote