[ 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 (+74)

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 (+74)

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 (+17)

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 (+74)

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