AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein kurvendiskussion linearer Funktionen mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

kurvendiskussion linearer Funktionen mit Delphi

Ein Thema von user14 · begonnen am 2. Mär 2014 · letzter Beitrag vom 6. Mär 2014
Antwort Antwort
user14

Registriert seit: 2. Mär 2014
8 Beiträge
 
#1

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 4. Mär 2014, 19:29
so. Ich hab jetzt so die ersten Ansätze und wahrscheinlich hab ich mir das alles viel zu kompliziert vorgestellt.
Ich hätte da (bis jetzt) eine konkretere Frage.

Also erstmal kurz zur Aufklärung. In dem Programm muss man ein m (für den Anstieg der Funktion) und ein n (für die Verschiebung gegen y-Achse) eingeben. (allgemeine Form y=m*x+n)
Das Programm soll meiner Meinung nach einen showmessage ausgeben, wenn der User vergisst m einzugeben. Außerdem soll das Programm auch dann arbeiten, wenn für n kein Wert angegeben wurde.
Habt ihr eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 4. Mär 2014, 19:57
Ehrlich gesagt wundere ich mich schon, was man bei linearen Funktionen großartig an Kurvendiskussion machen kann ... im Grunde kann nur die Schnittpunkte mit den Achsen berechnen

Im Prinzip musst dein Programm das Folgende tun:
  1. die Eingabe in Gleitkommazahlen (double) umwandeln
  2. die Achsenschnittpunkte berechnen
  3. die errechneten Werte wieder in Strings umwandeln und ausgeben
Wobei benötigst du Hilfe?
  Mit Zitat antworten Zitat
user14

Registriert seit: 2. Mär 2014
8 Beiträge
 
#3

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 4. Mär 2014, 20:17
Ja, allzuviel gibt es da wahrscheinlich nicht zu tun.
Bis jetzt hab ich das auch alles soweit, also mit den Schnittpunkten, etc.
Allerdings hätte ich gern, dass Delphi auch die Schnittpunkte ausgibt, wenn ich kein n eingegeben habe. Bis jetzt ist es so, dass ich für beide Variablen einen Wert eingeben muss...
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 5. Mär 2014, 01:13
"Kein Wert für n" ist bei dir gleichbedeutend mit "n bekommt den Wert 0"? (Matehmatisch sind das zwei Paar Schuhe, das aber nur am Rande.) Wenn es bei leerer Eingabe 0 sein soll, prüfe vor dem Berechnen ob das Edit-Feld leer ist, und setze in diesem Fall n=0, sonst auf den Wert, der im Feld steht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 5. Mär 2014, 01:16
Hallo,

Zitat:
Allerdings hätte ich gern, dass Delphi auch die Schnittpunkte ausgibt, wenn ich kein n eingegeben habe. Bis jetzt ist es so, dass ich für beide Variablen einen Wert eingeben muss
Du kannst Delphi schon dazu "überreden" in einem solchen Fall (fehlende Ordinate) Schnittpunkte auszugeben - dazu musst Du nur Dein Programm entsprechend implementieren.

Eine fehlende Ordinate (Variable n = 0) in Deiner Polynomfunktion ersten Grades heißt doch letztlich nichts anderes als: Es gibt definitiv keine Verschiebung in Y-Richtung - oder: Die Gerade geht sicher durch den Ursprung.

Zitat:
[...] Ich weiß nicht, was bei dem Programm noch alles auf mich zukommen wird [...]
Naja, dass kann ich Dir jetzt auch nicht wirklich (vorher)sagen, aber: Wenn sich die Problemstellung nicht grundlegend ändern sollte - urplötzlich Polynome höheren Grades oder gar andere Funktionen (e^x, ln (x), sin (x), cos (x) etc.) "diskutiert" werden sollen -, dann wird wohl nicht viel mehr dazu kommen, und dann heißt das:

Zitat:
[...] Natürlich möchte ich möglichst viel selbst machen, sodass ich es letztlich vielleicht doch verstehe [...]
Da ist Dein Ansatz wirklich mehr als löblich ist(!) und es ließe sich letztlich alles recht einfach auflösen mit (Pseudocode, ich lass die Code-Tags mal bewusst weg [oh, Bob, was für ein gepfriemel]):

Steigung = LeseSteigung;
Ordinate = LeseOrdinate;
wenn Steigung nicht definiert oder Null und Ordinate nicht angeben oder Null dann
   ZeigeNachricht: "f (x) = 0! Das ist jetzt aber nicht wirklich Ihr Ernst oder?"
ansonsten
   wenn Steigung nicht definiert oder Null dann
      ZeigeNachricht: "Schnittpunkte: Keine Nullstelle, mit der Y-Achse bei Ordinate (0; Ordinate)"
   ansonsten
      wenn Ordinate nicht definiert oder Null dann
        ZeigeNachricht: "Schnittpunkte: Nullstelle bei (0; 0), keine mit der Y-Achse"
   ansonsten
        ZeigeNachricht: "Schnittpunkte: Nullstelle bei (-Berechne (Ordinate geteilt durch Steigung); 0) und mit der Y-Achse bei (0; Ordinate)")


Jetzt noch alles in ein Delphi-Äquivalent gegossen, fertig.

Sollten sich doch noch Fragen ergeben, dann helfen die Kollegen - auch ich - gerne weiter


Gruß
Volker Zeller

Geändert von Volker Z. ( 5. Mär 2014 um 01:29 Uhr)
  Mit Zitat antworten Zitat
user14

Registriert seit: 2. Mär 2014
8 Beiträge
 
#6

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 5. Mär 2014, 16:56
Erstmal vielen Dank für eure Antworten

Ich hab gerade nochmal verschiedene Befehlslisten durchgeschaut, bin aber nicht so richtig fündig geworden. Gibt es einen Befehl,in dem ich sagen kann: z.B. if y no value ?
oder muss ich das irgendwie umschreiben?
LG
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 5. Mär 2014, 23:15
Hallo,

Zitat:
Ich hab gerade nochmal verschiedene Befehlslisten durchgeschaut [...] Gibt es einen Befehl,in dem ich sagen kann: z.B. if y no value ? oder muss ich das irgendwie umschreiben?


Ich rate da jetzt mal fröhlich ins Blaue rein:
Delphi-Quellcode:
s := GetSlope; // GetSlope liefert die Steigung, was auch immer der User eingeben hat, oder 0, wenn die Eingabe nicht gültig ist
y := GetYAxis; // GetYAxis liefert die Verschiebung in Y-Richtung, was auch immer [...]
if (s = 0.0) and (y = 0.0) then
  ShowMessage ('f (x) = 0! Das ist jetzt aber nicht wirklich Ihr Ernst oder?');
else
  [...]
Geht das in Deine Richtung?

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 5. Mär 2014, 23:44
Was in einem Edit-Feld eingegeben wird ist Text. Text ist eine Aneinanderreihung von Buchstaben (bzw. Zeichen allgemein). Deswegen muss dieser auch mit Str[ing]ToInt[eger]() oder Str[ing]ToFloat[ingPoint]() in eine für den Computer als solche verständliche Zahl umgewandelt werden. (String = Zeichenkette aka Text; Integer = Ganzzahl; Floating Point = Zahl mit Nachkommaanteil)

Jetzt überlege dir mal, welche Zeichen in welcher Reihenfolge in einem Text stehen dürfen, um bei einer Umwandlung als "Zahl" zu gelten. Alles andere ist dein "no value". (Ja, Handarbeit.)

(Es gibt Funktionen, die helfen das kürzer hinzuschreiben. Aber dir ist erheblich mehr geholfen, wenn du das Konzept überhaupt erst mal verstanden hast.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
user14

Registriert seit: 2. Mär 2014
8 Beiträge
 
#9

AW: kurvendiskussion linearer Funktionen mit Delphi

  Alt 6. Mär 2014, 15:53
Ja, so in die Richtung geht es. Allerdings kennt Delphi bei mir den Befehl nicht an...
Ich hab das jetzt so versucht, dass ich sage
if m='' then...

Jetzt hab ich das Problem, dass ich zum einen m mit real definiert habe, es aber für das if... then boolean sein muss...
kann man das so definieren, dass es boolean und real sein kann?


Variante 2 die ich ausprobiert habe, läuft darauf hinaus, dass ich noch eine Variable dazugenommen habe (k) und sie als boolean definiert habe.
Der Quellcode soll ungefähr so aussehen, dass, wenn der User eine Eingabe macht k:=true. Wenn nicht dann k= false. und wenn k dann false ist m=1...

Jetzt weiß ich aber nicht, wie ich das schreiben kann...:/

LG
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz