Pascal/Turbo Pascal - rotar vector

 
Vista:

rotar vector

Publicado por manu (4 intervenciones) el 11/12/2006 21:52:58
hola tengo una duda,y ya q la otra vez me fuisteis de gran ayuda...si pudierais echarme una mano otra vez,lo agradezco,no se como hacer un programa que rote los valores de un vector hacia la izquierda de manera que si el vector dado es 1,2,3,4 debe devolver 2,3,4,1 .el problema esta en resolverlo con funciones que realmente no se si es posible,o solo se podria con procedimientos pero no con funciones,si alguien sabe resolverlo con funciones por favor q me redacte el programa ,porque tengo mañana por la tarde el examen.gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:rotar vector

Publicado por Diego Romero (996 intervenciones) el 12/12/2006 00:29:39
Suponiendo que el array es de un tipo tal que:

const
N=10;
type
TArray=Array[1..N] of integer; { o of byte, o of char, o lo que sea }

var
A=TArray;
i,j: integer;
begin
j:=N;
for i:=1 to (N div 2) do
begin
aux:=A[i];
A[i]:=A[j];
A[j]:=aux;
dec(j);
end;
end.

O sea, el índice del for va desde uno hasta la mitad entera del array, y el otro índice (j) va desde el final del array hasta la mitad, por cada ciclo intercambias valores y ya está. No importa si el array tiene dimensión par o impar, a lo sumo en un array impar o bien intercambias posición donde i=j (un intercambio inútil) o bien cuando i=j no se hace cambio, lo cual está bien también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar