[ Foro de Pascal ]

porque error de ;

04-Feb-2014 16:14
Invitado (Carlos Jurado)
6 Respuestas

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.


04-Feb-2014 16:17
Nacho Cabanes (+30)

Has escrito de forma diferente "NumPersonas": al declarar la constante aparece "NunPersonas".


04-Feb-2014 16:24
Invitado (Carlos Jurado)

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


04-Feb-2014 16:44
Nacho Cabanes (+30)

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
 



04-Feb-2014 17:19
Luis Torres (+12)

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.


04-Feb-2014 17:38
Invitado (Carlos Jurado)

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


04-Feb-2014 18:44
Nacho Cabanes (+30)

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