[ Foro de Pascal ]
¡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.
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
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.
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.)