HI
Ich muss bzw. soll in Pascal ein Programm programmieren, welches einen mathematischen Term in sogenannte Token teilt.
D.h. folgender Term wird dann so zerhackt:
12*x^3+-45*x^2+5*x+123
Token:
12
*
x
^
3
+
-45
*
x
^
2
+
5
*
x
+
123
Nur hat mein Programm ein paar Probleme bei den letzten Stellen
D.h. bei diesem Term z.B.: 12*x+-1234 heißt das letzte Token
nicht -1234 sondern 4 !
Was kann ich da machen ?
Der Quellcode sieht so aus:
[tt] PROGRAM token;
USES CRT;
VAR zk, zahl,operator : STRING;
anzop, i, y : INTEGER;
stelle: array[0..1000] OF INTEGER;
fertig:boolean;
FUNCTION min (zk

TRING) : INTEGER;
VAR a : INTEGER;
BEGIN
a:=1;
For i:= 2 to length(zk) DO
BEGIN
IF zk
IN ['+','-','*','/','^'] THEN
BEGIN
stelle[a]:=i;
a:=a+1;
END;
END;
min:=stelle[1];
END;
BEGIN
clrscr;
write('Bitte geben Sie den Term ein:');
readln(zk);
anzop:= 0 ;
FOR i:= 2 TO length(zk) DO
BEGIN
IF zk[i] IN ['+','-','*','/','^'] THEN anzop:= anzop+1;
END;
fertig:=false;
FOR y:= 1 TO anzop+1 DO
BEGIN;
if(fertig=false) then
begin
zahl:=copy(zk,1,min(zk)-1);
operator:=zk[min(zk)];
zk:=copy(zk,min(zk)+1,length(zk));
writeln('Token =',zahl);
writeln('Token =',operator);
if ( length(zk)<=2) THEN
BEGIN writeln('Token =',zk);
writeln('FERTIG');
fertig:=true;
END;
end;
END;
readln;
END.[/tt]
Ich hoffe es kennt sich jemand damit aus .