[ Foro de Pascal ]
gracias por su atencion.
por queme sale el siguiente error:
program menu;
uses crt;
const NunPersonas = 5;
var opciones: array [1..NumPersonas] of string =
('Primer Nombre',
'Segunda Nombre',
'Primer Apellido',
'Segundo Apellido');
si pudieran ayudarme gracias.
Has escrito de forma diferente "NumPersonas": al declarar la constante aparece "NunPersonas".
disculpe profesor me sucedio solo al trascribir el mensaje en el programa que INTENTO hacer esta correcto y aun asi me sale el error, o es que en turbo pascal no se puede hacer ese tipo de asignaciones y como seria entonces si es posible la ayuda claro.gracias
En Turbo Pascal 7 y en Free Pascal sí se pueden inicializar arrays de esa forma, no en versiones anteriores de Turbo Pascal. Tu programa compila correctamente si corriges el nombre de esa variables y si pones el contador correcto (4 en vez de 5):
uses crt;
const NumPersonas = 4;
var opciones: array [1..NumPersonas] of string =
('Primer Nombre',
'Segunda Nombre',
'Primer Apellido',
'Segundo Apellido');
begin
end.
Pero ambas cosas te las dice el propio mensaje de error del compilador: si escribes "NunPersonas" obtendrás un error como
matriz.pas(5,36) Error: Identifier not found "NumPersonas"
Y si corriges eso, pero pones 5 como límite, el error será:
matriz.pas(9,20) Error: Expected another 1 array elements
Yo creo que en Turbo Pascal 7 no se pueden inicializar los vectores o matrices, aunque sí se puede inicializar en la sección de constantes, pero no en la sección de variables. En FreePascal sí se puede hacer.
gracias a los dos una vez mas, sin embargo me dejan en las mismas por que en primera instancia profesor respecto a:Tu programa compila correctamente si corriges el nombre de esa variables y si pones el contador correcto (4 en vez de 5) ya lo tengo correcto en mi programa y aun asi el error que me sale es el mismo planteado inicialmente, el de ; esperado , puede ser que este usando una version anterior no lo se la verdad, pero si es asi como podria hacer lo que intento en el fragmento de codigo que coloque? y en cuanto a loq ue me dices luis, como puedo en el area de constantes definir lo mismo que intento hacer? gracias a los dos
Tiene razón Luis: rellenar valores de un array en la zona "var" es una extensión de FreePascal. En Turbo Pascal 7 sólo se puede hacer en la zona de declaración de constantes, así:
uses crt;
const
NumPersonas = 4;
opciones: array [1..NumPersonas] of string =
('Primer Nombre',
'Segunda Nombre',
'Primer Apellido',
'Segundo Apellido');
begin
end.
(Y en versiones anteriores de Turbo Pascal, ni siquiera se puede hacer así; hay que asignar los valores uno por uno)
(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.)