IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

Erreur 26 : Type mismatch


Sujet :

Langage Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut Erreur 26 : Type mismatch
    Bonjour !

    Je m'arrache les cheveux sur un programme que l'on m'a demandé de faire, en allemand (hé oui désolé... mais bon le langage pascal est universel ! ^^)

    Je le met complètement car je ne sais pas ce dont vous avez besoin pour m'aider...

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    program modell;
    uses graph,crt;
    const BGI_Pfad = 'c:\tp7\bgi';	         {Pfad far BGI-Dateien z.B. c:\bp\bgi}
    	x0 :integer =0;			 {Koordinaten-Ursprung}
    	y0 :integer =0;			 {Voreinstellung fur }
    	x_text:string = 't/s';    	 {x, y-Achsen-Beschriftung}
    	y_text:string = 's/m';
    type string10 = string [10];
    var Grafiktreiber,Grafikmodus,Fehlercode:integer;
    	xp0_abs,yp0_abs,xp_max,yp_max,x_max,y_max:integer;
    	x_LE,y_LE:real;
    
    procedure Eingabe_Achsen (var x_text,y_text:string10;var x_LE,y_LE:real);
    {Beschriftung und Langeneinheiten der Koordinatenachsen}
    begin
    	ClrScr;writeln('Beschriftung der');
    	write('x-Achse (z.B. t/ 4s) = ');gotoxy(25,2);readln(x_text);
    	write('y-Achse (z.B. s/ 8m) = ');gotoxy(25,3);readln(y_text);
    	writeln('Langeneinheiten der');
    	write('x-Achse (z.B. 4)     = ');gotoxy(25,5);readln(x_LE);
    	write('y-Achse (z.B. 8)	    = ');gotoxy(25,6);readln(y_LE);
    end;
    
    function x_xp(x:real):integer;
    {Anwenderkoordinaten werden in Pixelwerte umgerechnet. Der absolute Nullpunkt des
    Anwenders liegt bei (xO_abs=40,yO_abs=GetMaxY-40). Damit liegt der Ursprung (0,0) links
    unten auf dem Bildschirm}
    var x_pos:real;
    begin x_pos:=x+x0;x_xp:=round(x_pos/x_max*xp_max+xp0_abs); end;
    
    function y_yp(y:real):integer;                   {Anwenderkoordinaten in Pixelwerte vgl. x_xp}
    var y_pos:real;
    begin y_pos:=y+y0;y_yp:=round(yp0_abs-y_pos/y_max*yp_max); end;
    
    procedure Gerade(xp_0,yp_0,xp_1,yp_1:integer);
    { zeichnet eine Gerade von (xp_0,yp_0) nach (xp_1,yp_l) }
    begin MoveTo(xp_0,yp_0);LineTo(xp_1,yp_1); end;
    
    procedure Koordinaten_Achsen(x_text,y_text:string10; x0,y0:integer);
    {zeichnet ein Koordinatensystem, die Achsen werden mit x_text bzw. y_text beschriftet.
    Der Koordinatenursprung liegt bei xO,yO}
    var i:integer;
    	x_txt,y_txt:string[5];
    begin
    	Gerade(x_xp(-x0),y_yp(0),x_xp(x_max-x0),y_yp(0));
    	Gerade(x_xp(x_max-x0)-5,y_yp(0)-2,x_xp(x_max-x0),y_yp(0));
    	Gerade(x_xp(x_max-x0)-5,y_yp(0)+2,x_xp(x_max-x0),y_yp(0));
    	Gerade(x_xp(0),y_yp(-y0),x_xp(0),y_yp(y_max-y0));
    	Gerade(x_xp(0)+2,y_yp(y_max-y0)+5,x_xp(0),y_yp(y_max-y0));
    	Gerade(x_xp(0)-2,y_yp(y_max-y0)+5,x_xp(0),y_yp(y_max-y0));
    	outtextxy(x_xp(0)+5,y_yp(y_max-y0),y_text); {Textausgabe im Grafik-Schirm}
    	outtextxy(x_xp(x_max-x0)-
    	textwidth(x_text),y_yp(0)+textheight('0123456789'),x_text);
    	for i:=1-x0 to x_max-1-x0 do       {x_Achse skalieren}
    	begin
    		str(i,x_txt);gerade(x_xp(i),y_yp(0)+5,x_xp(i),y_yp(0));
    		outtextxy(x_xp(i)-textwidth(x_txt),y_yp(0)+textheight('0123456789'),x_txt);
    	end;
    	for i:=1-y0 to y_max-1-y0 do       {y_Achse ska1ieren}
    	begin
    		str(i,y_txt);gerade(x_xp(0)-5,y_yp(i),x_xp(0),y_yp(i));
    		outtextxy(x_xp(0)-5-textwidth(y_txt),y_yp(i),y_txt);
    	end;
    end;
    
    procedure Tabelle;	                {mit t,s-Variablen "Der Aufzug", S. 10}
    var t,dt,s,v,x,y: real;
    	weiter:boolean;
    	i:integer;
    begin
    	dt:=0.01;	                {Schrittweite}
    	t:=0; s:=0; v:=5;               {Startwerte}
    	weiter:=true;	                {Tabelle ausgeben, solange welter = true ist}
    	while weiter do
    	begin
    		ClrScr;gotoXY(10,1);write(x_text);gotoXY(30,1);write(y_text);
    		for i:=3 to 20 do
    		begin
    			t:=t+dt;		{Zeit in Sekunden}
    			if t>10 then v:=0;	{nach 10 s Geschwindigkeit y = O m/s}
    			if t>15 then v:=-2.5;	{nach 15 s Geschwindigkeit y = —2,5 m/s}
    			s:=s+v*dt;              {zuruckgelegter Weg s in Meter}
    			if s<0 then s:=0;
    			gotoXY(5,i);write(t);gotoXY(25,i);write(s); {Tabellenwerte ausgeben}
    		end;
    		gotoXY(10,24);write('Fortsetzung (j/n)');weiter:=(UpCase(ReadKey)='J');
    	end;
    end;
    
    procedure GrafikEinstellungen;
    begin
    	Grafiktreiber:=Detect;InitGraph(Grafiktreiber,Grafikmodus,BGI_Pfad);
    	Fehlercode:=GraphResult;
    	if FehlerCode <> grOK
    	then begin writeln('Grafik-Fehler: ',GraphErrorMsg(FehlerCode));
    	readln;halt;end;{Startwerte fur die Koordinaten xp.. yp..= Pixelkoordinaten}
    	x_max:=15; y_max:=Round(x_max/GetMaxX*GetMaxy);
    	xp0_abs:=40; yp0_abs:=GetMaxY-40; {absoluter Ursprung}
    	xp_max:=GetMaxX-xp0_abs-20; yp_max:=yp0_abs-20; {max. x-y-Achse}
    	Koordinaten_Achsen(x_text,y_text,x0,y0);
    end;
    
    procedure Schaubild;	                        { mit t,s-Variablen "Der Aufzug", S. 10}
    var t,dt,s,v,x,y: real;
    begin
    Eingabe_Achsen(x_text,y_text,x_LE,y_LE); <<<=== C'est ici que cela bloque !
    GrafikEinstellungen;
    	dt:=0. 01;	                        {Schrittweite}
    	t:=0; s:=0; v:=5;                       {Startwerte }
    	X:=t/x_LE;
    	while (x<x_max) and (s>=0) do
    	begin
    		x:=t/x_LE; y:=s/y_LE;           {Langeneinheiten berechnen }
    		PutPixel(x_xp(x),y_yp(y),15);   {Punkt zeichnen}
    		t:=t+dt; 		        {Zeit in Sekunden}
    		if t>10 then v:=0;	        {nach 10 s Geschwindigkelt v = O m/s}
    		if t>15 then v:=-2.5;	        {nach 15 s Geschwindigkeit v = -2,5 m/s}
    		s:=s+v*dt;		        {zuruckgelegter Weg s in Meter}
    	end;
    	readln;				        {warten auf RETURN}
    	CloseGraph;
    end;
    begin					        {Hauptprogramm}
    	ClrScr;				        {Bildschirm loschen}
    	gotoXY(10,15);write('T=Wertetabelle S=Schaubild');
    	if UpCase(ReadKey)='T' then Tabelle else Schaubild;
    end.
    Si vous pouviez m'aider...

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Citation Envoyé par alexdsa
    Je le met complètement car je ne sais pas ce dont vous avez besoin pour m'aider...
    Un traducteur Allemand/Français ?

    Sinon qu'est-ce qui ne marche pas concrètement ? Ton programme doit faire quoi ? Y'a-t-il des erreurs à la compilation ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut
    Non ce n'est pas un traducteur, c'est un programme pour un professeur de physique allemand ^^

    Ce programme doit permettre de tracer des courbes relatives au mouvements/accélération... etc.

    En effet, j'ai une erreur à la compilation, c'est cette fameuse erreur 26 : Type mismatch sur la ligne suivante :

    Eingabe_Achsen(x_text,y_text,x_LE,y_LE);
    (vers la fin du code)

    J'espère t'avoir renseigné.

    Merci

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Je ne vois qu'une seule erreur de syntaxe : un espace en trop (0. 01 au lieu de 0.01) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GrafikEinstellungen;
    	dt:=0. 01;	                        {Schrittweite}
    Lorsque c'est corrigé, ça compile sans problème chez moi.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut
    Bien vu pour la faute de syntaxe !

    Merci.

    Le truc c'est ça ne marche toujours pas sur Turbo Pascal 7.0, ni sur Borland Pascal Windows 7.0 (il n'y a pas de graph.tpw sur BPW ? ...)
    Par contre ça marche bien sur Free Pascal que je viens de télécharger à l'instant.

    Y aurait-il une explication ?

    Merci en tout cas !

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par alexdsa
    Le truc c'est ça ne marche toujours pas sur Turbo Pascal 7.0, ni sur Borland Pascal Windows 7.0 (il n'y a pas de graph.tpw sur BPW ? ...)
    Aaah mais alors c'est que, tout simplement, dans l'EDI de BPW 7.0, tu n'as pas sélectionné la bonne plate-forme de destination : dans le menu Compile --> Target, tu dois sélectionner Real (le mode réel). Après, ça compile parfaitement.

    Pour Turbo Pascal, voici ce qui n'allait pas : les constantes x_test et y_text sont déclarées de type String et non de type String10.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut
    Hello !

    Bon alors je me suis mis en mode real, mais maintenant BPW me fait une autre erreur : Erreur 69 : Unit name mismatch...

    Pourtant j'ai bien un fichier graph.tpu dans units.

    Pour ce qui est de Turbo Pascal, quand je déclare x_text et y_text en String10 ça ne marche pas non plus, toujours la même erreur 26 ...

    C'est à en devenir fou

    Merci

    PS: Je suis désolé, je suis encore débutant ^^

  8. #8
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par alexdsa
    Bon alors je me suis mis en mode real, mais maintenant BPW me fait une autre erreur : Erreur 69 : Unit name mismatch...

    Pourtant j'ai bien un fichier graph.tpu dans units.
    Etrange, cette erreur signifie que le nom interne de l'unité est incorrect.
    A tout hasard, tu peux télécharger mon fichier GRAPH.TPU de BPW ici :
    http://alcatiz.developpez.com/moderation/GRAPH.TPU

    Citation Envoyé par alexdsa
    Pour ce qui est de Turbo Pascal, quand je déclare x_text et y_text en String10 ça ne marche pas non plus, toujours la même erreur 26 ...

    C'est à en devenir fou
    Pourtant ça compile sans problème chez moi. Est-ce bien dans l'en-tête que tu as changé le type ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    program modell;
    uses graph,crt;
    type string10 = string [10];
    const BGI_Pfad = 'c:\tp7\bgi';	         {Pfad far BGI-Dateien z.B. c:\bp\bgi}
    	x0 :integer =0;			 {Koordinaten-Ursprung}
    	y0 :integer =0;			 {Voreinstellung fur }
    	x_text:string10 = 't/s';    	 {x, y-Achsen-Beschriftung}
    	y_text:string10 = 's/m';
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] [Débutant] Tableau : erreur 26 "type mismatch"
    Par khmamed dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2011, 15h23
  2. [VBA-E] erreur de type mismatch
    Par jedebuteenvb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/01/2007, 20h05
  3. Erreur type Mismatch
    Par bov13 dans le forum Access
    Réponses: 7
    Dernier message: 25/09/2006, 10h22
  4. Erreur : Type Mismatch
    Par ekinoxe dans le forum ASP
    Réponses: 1
    Dernier message: 17/02/2006, 09h51
  5. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo