Bonjour , je me remets au pascal (que j'avais étudié en classe l'an passé) et j'ai un petit souci.

Voici comment je procède

j'ai un programme principal logique.pas
j'ai deux unités : debug.pas et portes.pas

J'ai des types et constantes globales :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Déclaration des constantes
const max = 10;
 
//Déclaration des types
type tab_int = array [1..max] of integer ;
type tab_string = array [1..max] of string ;
 
//type porte
type door = record
     id : integer;
     entree1 : char;
     entree2 : char;
     entree3 : char;
     sortie : char;
     etage : integer;
     colonne : integer;
     nb_entrees : integer;
     operateur : integer
end;
 
type tab_portes = Array [0..max] of door;
Dois je les déclarer dans chaque unité? (je le fais actuellement)

Ensuite j'ai des procédure dans ces unités dont

procedure ajout_porte(var les_portes : tab_portes ; var porte_numero,etage,colonne : integer ; var portes_sur_etage:tab_int);

que j'appele dans le prog principal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
repeat
      //ajout_porte(porte_numero,etage,colonne,portes_sur_etage,entrees,infos,operateurs,sorties);
       ajout_porte(les_portes,porte_numero,etage,colonne,portes_sur_etage);
until...
j'ai bien défini ma variable les_portes (qui est globale) dans mon prg principal
//Déclaration des variables globales
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
var les_portes : tab_portes;
et pourtant à la compilation
j'ai une erreur

73 / 20 logique.pas
Error: Incompatible type for arg no. 1: Got TAB_PORTES, expected TAB_PORTES

Ce sont les memes types!!!


Qu'est ce qui ne vas pas?