Pascal/Turbo Pascal - Ayuda con ARRAYS urgente

   
Vista:

Ayuda con ARRAYS urgente

Publicado por sonny (10 intervenciones) el 03/04/2008 19:54:13
hola a todos....mi pregunta es la siguiente...

quisiera hacer un arreglo en pascal donde el usuario pueda determinar el numero de elementos que quiera, pero al compilar el programa me sale error.
este es mi codigo haber que tengo mal y me puedan ayudar GRACIAS de antemano.....

program vet;
uses crt;
var
i,n:integer;
a:array[1..n] of real
begin
clrscr;
write('DIGITE EL NUMERO DE ELEMENTOS DEL VECTOR: ')
read(n);
for i:=1 to n do
begin
write('DIGITE ELEMENTO No ',i,' : ');
read(a[i]);
end;
readkey;
end.
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:Ayuda con ARRAYS urgente

Publicado por micropais (209 intervenciones) el 03/04/2008 22:39:43
hola sonny , creo que en pascal no se puede hacer eso que tu pides , Bueno no directamente , lo que si puedes hacer es crear un array de 50 o 100 elementos (o 1.000.000 si usas free-pascal ) y el tope real que lo ponga el usuario, pero que no supere el tamaño maximo definido del propio array , para ello debes calcular cual seria el maximo apropiado que el usuario podria necesitar, el problema es que realmente gastas esa memoria ,el maximo del array , si no quieres eso , te debes enfrentar a los punteros , es la unica manera de asignar y gastar o usar y recuperar la memoria a medida que la vayas necesitando.

Si no te quedo claro , o me explique mal postea de nuevo.

SALUDOS .
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

RE:Ayuda con ARRAYS urgente

Publicado por sonny (10 intervenciones) el 03/04/2008 23:02:28
explicate un poco mas claro por favor....estare atento a tu respuesta y gracias
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

RE:Ayuda con ARRAYS urgente

Publicado por micropais (209 intervenciones) el 04/04/2008 21:27:58
hola sonny.

haber si con tu mismo programa modificado ....
copialo y pegalo a un fichero de texto y luego renombralo a nombre.pas asi evitas tener que teclearlo , pues el que tu enviaste le faltaban puntos y comas etc..

lo que he modificado esta entre lineas de comentario .
en este caso hemos puesto el tope en 500 elementos ,teniendo en cuenta que no vas a teclear mas de 500 datos , si no es así sube el TOPE, con este ejemplo
deberia valer.

NOTA: esto te vale para salir del paso , acuerdate de los punteros si quieres hacer las cosas Bien echas .
... Aunque para 50 elementos tampoco hace falta complicarse la vida.

___________________________________________________________

program vet;
uses crt;
// -------------------------------------------
const tope=500;
// -------------------------------------------
var
i,n:integer;
a:array[1..tope] of real;

begin
clrscr;
write('DIGITE EL NUMERO DE ELEMENTOS DEL VECTOR: ');
read(n);
// ----------------------------------------------
if (n>tope) then
begin
writeln('Error: array demasiado GARNDE');
readln;
halt;
end;
// ----------------------------------------------

for i:=1 to n do
begin
write('DIGITE ELEMENTO No ',i,' : ');
read(a[i]);
end;
// ----------------------------------------------
// readkey;
readln; // una mania mia
// ----------------------------------------------
end.
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