[ Foro de Pascal ]

Rellenar matriz

30-May-2013 01:13
Fulanito de Tal
3 Respuestas

¡Hola! Me gustaría saber si se pueden introducir los datos en un arreglo sin necesidad de hacerlo elemento a elemento, sino de golpe. Algo parecido a esto:

 
var
	matriz: array[1..3] of string;
 
begin
	matriz := ('tal', 'para', 'cual');
end.
 


El compilador me dice que así no se puede, pero ignoro si existe alguna palabra reservada en Free Pascal que pueda hacerlo.
Por ejemplo en Basic sí que existe y se hace así:

matriz = array ("tal", "para", "cual").

Gracias.


30-May-2013 23:14
Nacho Cabanes (+31)

Sí puedes, pero sólo en el momento de declararla, no más tarde. Debes usar la palabra "const" e indicar los valores entre paréntesis, separados por comas.

 
const matriz: array[1..3] of string =
  ('tal', 'para', 'cual'); 
 


Aquí tienes un ejemplo más complejo, con un array bidimensional:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=473


31-May-2013 22:51
Fulanito de Tal

Gracias.

También se puede inicializar la matriz en la sección de variables. A mí me gusta más así porque las constantes me gusta que siempre tengan el mismo valor, y si se inicializan con un tipo determinado luego se pueden cambiar como una variable.

 
var
     matriz: array[1..3] of string = ('tal', 'para', 'cual');
 


De todas formas esta manera no resuelve todos los casos porque si ya en el programa quiero asignarle a la matriz otros valores, tendré que hacerlo elemento a elemento.


01-Jun-2013 01:21
Nacho Cabanes (+31)

Esa forma de dar valores iniciales (sin usar "const") no existe en Turbo Pascal, es una extensión de Free Pascal.

Y, efectivamente, para dar otros valores después de inicializar, hay que hacerlo elemento a elemento.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)