teilstrings kopieren,wurzel ziehen und arrays <- gelöst

Für Fragen von Einsteigern und Programmieranfängern...
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

also darauf wäre ich nie gekommen... woher weiß du das denn?
Ausprobiert *G*

Versuch mal folgendes

Code: Alles auswählen

writeln('"',Copy(name,1, Pos(' ',name)-1),'"');
writeln('"',Copy(name,Pos(' ', name)+1,Length(name)),'"');
Also deaktiviere dein aktuellen Code(Mit Kometarzeichen) und schreibe dann diese zwei Zeilen von Oben da hin. Die Fehler Meldung deutet jedoch auf was anders hin. Das irgendetwas mit deinem "2D Array" nicht stimmt.
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

also eigentlich wollte ich die koordinaten nicht ausgeben :oops:
sondern in einer Tabelle spiechern
da wollte ich nur gucken ob das mit den kopieren überhaupt geht :D

also bei nachrichten da staht auch immer wegen den arrays die ich da benutze das hier:
project.lpr(74,30) Warning: Variable "YKoordinate" does not seem to be initialized

aber ich weiß nicht was damit gemeint ist....

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

also eigentlich wollte ich die koordinaten nicht ausgeben
Das war nur zum Testen, ob das richtige drin steht, was du auch erwartest. Wenn das richtige drin steht kannst du schon mal eine Fehler-Quelle streichen, aus deiner Liste *G*
project.lpr(74,30) Warning: Variable "YKoordinate" does not seem to be initialized
Im Klartext bedeutet diese Warnung: Du hast die Variable "YKoordinate" nicht vorbelegt. Es gibt fälle, da ist es Notwendig oder Sinnvoll. In deinem Fall brauchst du das aber nicht.
Vor der ersten Anwendung, kannst du "YKoordinate:=0;" schreiben. Dann sollte die Warnung verschwinden.

Eine andere Frage ist jetzt noch: Wie greifst du auf dein 2D Array zu ? Gibt es vielleicht noch ein Problem ? Z.B. das die Länge der Spalten und die Anzahl der Zeilen nicht stimmt ? Ist es ein Dynamischer oder Statischer Array ?
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

also wenn ich das mache mit YKoordinate := 0;
dann zeigt er sowas hier an:
project.lpr(48,9) Error: Incompatible types: got "ShortInt" expected "Dynamic Array Of LongInt"
ich glaub das zeigt er an weil es ja eigentlich YKoordinate[1] := 0; heißen sollte oder?

also mein array ist ein Dynamischen und eigentlich hab ich keine Probleme damit...

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

project.lpr(48,9) Error: Incompatible types: got "ShortInt" expected "Dynamic Array Of LongInt"
ich glaub das zeigt er an weil es ja eigentlich YKoordinate[1] := 0; heißen sollte oder?
Ich bin davon ausgegangen, dass es ein Integer ist. Dann wäre die Zuweisung von mir Falsch. Deine wäre in diesen Fall richtig. Am besten wäre es auch, in einer Schleife beide zu Installisieren.
Du kansnt auch ein 2D Array nutzen: Dann hast du nicht zwei getrennte Variablen. Aber so geht das natürlich auch.
also mein array ist ein Dynamischen und eigentlich hab ich keine Probleme damit.
Dann sollte dein Problem gelöst sein. Wenn das Kopieren Klappt und die Zuweisung.
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

Da steht bei den Nachrichten immer noch das das nicht initialisiert ist... :(
also das ist jetzt mein Quellcode mit diesen arrays:

i:=0;
REPEAT
BEGIN
X:=0;
Y:=0;
inc(i);
END;
UNTIL i = Zeilenanzahl;

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

Dann musst du mit SetLenght den Array eine Länge geben.
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

ok danke
nur jetzt steht das hier dort:
An unhandled exception occurred at $00401B10 :
EInvalidOp : Invalid floating point operation
$00401B10 main, line 129 of project.lpr

also das ist Zeile 129
Ergebnis := sqrt(Wurzel);
also ich wüsste jetzt nicht was daran falsch sein sollte...
also die beiden Variablen Ergebnis und Wurzel sind als double definiert

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

EInvalidOp : Invalid floating point operation

Code: Alles auswählen

Ergebnis := sqrt(Wurzel);
Mit sowas kenne ich mich zwar nicht aus, aber schau mal nach was in Wurzel drin steht. Könnte sein dass dadurch die Fehler Meldung erklärt werden kann.
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

keine Ahnung was da dring steht ist immer unterschiedlich
auf jeden fall eine summe von 2 5-7 stelligen Zahlen...

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

auf jeden fall eine summe von 2 5-7 stelligen Zahlen...
Da sollte aber nur eine Zahl an der Funktion übergeben werden.... wie lang sie ist, spielt erst mal keine rolle, sie darf halt nicht zu lang sein....
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

wie jetzt
die variable wurzel wurde ja schon vorher definiert so:
wurzel:= Wert1 + Wert2;

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von pluto »

Ich nehme einfach mal an, ohne es genau zu wissen: Irgendetwas stimmt mit deinem Wert nicht.... Hier laufen auch Mathematik-Profis herum.... *G*
MFG
Michael Springwald

Stephanie H.
Beiträge: 91
Registriert: Sa 6. Feb 2010, 15:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: teilstring kopieren <- GELÖST !D <- DOCH NICHT :(

Beitrag von Stephanie H. »

was soll an den wert nicht stimmen?
also die Gesamtformel ist:

hier ist kein wurzelzeichen?!
also das alles jetzt in so ein wurzelzeichen:
(a-b)²+(c-d)2

Differenz1 := a - b;
Differenz2 := c - d;
Wert1 := sqr(Differenz1);
Wert2 := sqr(Differenz2);
Wurzel := Wert1 + Wert2;
Ergebnis := sqrt(Wurzel);

und das hab ich in solchen Zwischenschritten gemacht...

Jochen
Beiträge: 35
Registriert: So 30. Nov 2008, 23:35

Re: hallo ich brauch HILFE !!!! wurzel ziehen auf seite 3/4

Beitrag von Jochen »

Von welchem Datentyp (Integer, Float, ...) sind deine Variablen? Der normale Integer geht nur bis +-2^31, danach gehts wieder von vorne los.
Siehe http://www.freepascal.org/docs-html/ref ... 260003.1.1

Code: Alles auswählen

Sollte aus Wurzel := Wert1 + Wert2;
durch einen Überlauf was Negatives raus kommen wars das mit der (normalen) Wurzel;

Code: Alles auswählen

sqrt(Wurzel)
bringt dann eine Exception. Siehe auch http://lazarus-ccr.sourceforge.net/docs ... /sqrt.html

Jochen

Antworten