Type mismatch turbo pascal
zebraline
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
sarah -
sarah -
Bonjour,
j'ai écris une procédure (qui fait elle même appelle à une procedure et à une fonction) , procedure multi; quand je compile j'ai l'erreur type mismatch qui apparait et je ne sais pas comment la résoudre.
l'erreur apparait sur la virgule de element1, element2 (partie surligné en gras ci dessous)
J'espère que vous pourrez m'aider
Merci d'avance
const POSITION_MAX = 12;
type t_operateur= string ;
type t_element_pile = record
op:t_operateur;
nombre: integer;
end;
type t_pile = record
tab : array [1..POSITION_MAX] of t_element_pile;
position : integer;
end;
procedure empiler (var pile : t_pile; element : t_element_pile) ;
begin
pile.position := pile.position+1;
pile.tab[pile.position] := element;
end;
procedure depiler (var pile : t_pile; var element : t_element_pile);
begin
element := pile.tab[pile.position];
pile.position := pile.position-1;
end;
procedure multi(var pile : t_pile ; debut: integer ; fin : integer);
var element1 , element2, multip, ope, position : t_element_pile;
begin
for position.nombre :=debut to fin do
if pile.tab[position.nombre].op = '*'
then
begin
pile.position:= pile.position + 1;
depiler(pile, element1);
depiler(pile, ope);
depiler(pile, element2);
multip := multiplication( element1, element2 );
empiler (pile, multip);
for indice := pile.position + 1 to fin - 2 do
pile.tab[pile.indice] := pile.tab[pile.indice+2];
end;
end;
j'ai écris une procédure (qui fait elle même appelle à une procedure et à une fonction) , procedure multi; quand je compile j'ai l'erreur type mismatch qui apparait et je ne sais pas comment la résoudre.
l'erreur apparait sur la virgule de element1, element2 (partie surligné en gras ci dessous)
J'espère que vous pourrez m'aider
Merci d'avance
const POSITION_MAX = 12;
type t_operateur= string ;
type t_element_pile = record
op:t_operateur;
nombre: integer;
end;
type t_pile = record
tab : array [1..POSITION_MAX] of t_element_pile;
position : integer;
end;
procedure empiler (var pile : t_pile; element : t_element_pile) ;
begin
pile.position := pile.position+1;
pile.tab[pile.position] := element;
end;
procedure depiler (var pile : t_pile; var element : t_element_pile);
begin
element := pile.tab[pile.position];
pile.position := pile.position-1;
end;
procedure multi(var pile : t_pile ; debut: integer ; fin : integer);
var element1 , element2, multip, ope, position : t_element_pile;
begin
for position.nombre :=debut to fin do
if pile.tab[position.nombre].op = '*'
then
begin
pile.position:= pile.position + 1;
depiler(pile, element1);
depiler(pile, ope);
depiler(pile, element2);
multip := multiplication( element1, element2 );
empiler (pile, multip);
for indice := pile.position + 1 to fin - 2 do
pile.tab[pile.indice] := pile.tab[pile.indice+2];
end;
end;
A voir également:
- Type mismatch turbo pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Clear type - Guide
- Type de ram - Guide