Pascal/Turbo Pascal - Error: Illegal unit name (expecting PROGRAM)

 
Vista:
sin imagen de perfil

Error: Illegal unit name (expecting PROGRAM)

Publicado por Jesus (3 intervenciones) el 24/09/2021 22:02:38
Soy un aficionado que se encuentra aprendiendo pascal. Por el momento he memorizado y asimilado la mitad del curso en el que me encuento

En fin vine para preguntar que es lo que estoy haciendo mal o si es posible saber una solucion

Por el momento he estado tratando de montar una unidad tal y como lo explica el curso pero aunque me detenga a pensar no encuentro la causa. Asi es como lo he escrito:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
unit saludo;
 
interface
procedure hola;
 
implementation
procedure hola;
begin
  write('Hola Mundo');
end;
end.
 
 
program miUnit;
 
uses saludo;
begin
  hola;
end.

Ese es solo un simple ejemplo del curso, se supone que en el curso el programa se ejecuta correctamente. Pero cuando yo lo intento me aparece aparecen estos mensajes del compilador:

-unidad.pas(1, 12) Error: Illegal unit name: saludo (expecting PROGRAM)
-unidad.pas(6, 1) Fatal: There were 1 errors compiling module, stopping
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error: Illegal unit name (expecting PROGRAM)

Publicado por David (224 intervenciones) el 29/09/2021 20:39:05
Ese error se produce porque el fichero ..pas debe tener el mismo nombre que la unidad. Es decir, si la unit se llama saludo, el fichero debe guardarse coomo saludo.pas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error: Illegal unit name (expecting PROGRAM)

Publicado por Jesus (3 intervenciones) el 29/09/2021 22:55:08
Eso ya lo intente segun otras otras paginas indicaban pero no funcionaban. Cuando le cambio y le pongo el mismo nombre de la unidad, me aparece:

-Can't run a unit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error: Illegal unit name (expecting PROGRAM)

Publicado por David (224 intervenciones) el 30/09/2021 21:12:55
Pero eso es normal, las units no se pueden ejecutar. Sólo se pueden compilar y llamar a las funciones y procedimietnso desde un programa externo.

la unit debería quedar así:

unit saludo;



interface

procedure hola;



implementation

procedure hola;

begin

write('Hola Mundo');

end;




Begin
end.


Y esta parte debería ir en un programa aparte.

program miUnit;



uses saludo;

begin

hola;

end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error: Illegal unit name (expecting PROGRAM)

Publicado por Jesus (3 intervenciones) el 02/10/2021 16:07:33
Wow no sabia que se necesitaba crear desde otro projecto, la verdad aun hay cosas que no entiendo del todo. Igual gracias

Pero tengo una pregunta: ¿entonces si quisiera crear 3 unidades tendria que crear 3 programas diferentes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error: Illegal unit name (expecting PROGRAM)

Publicado por David (224 intervenciones) el 02/10/2021 18:38:43
Correcto. Si son funciones o procedimientos no relacionados entre sí, lo correcto sería crear unidades diferentes, aunque también podrías meter todas las funciones y procedimientos en una sola.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar