Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Allgemeine Fragen zu Delphi (https://www.delphipraxis.net/103603-allgemeine-fragen-zu-delphi.html)

andiak 18. Nov 2007 13:12


Allgemeine Fragen zu Delphi
 
Die Folgenden fragen sind die aus einer probe klausur ich werde sie so wie ich denke beantworten für fehler bitte korigieren!!
1.Beschreibe Funktion und Zweck des Objektinspektors von Delphi in 4–8 Sätzen?
er Objektinspektor weißt eine Übersicht aller Objekte die in dem momentanen Projekt verwendet werden.
Außerdem kann man mit dem Objektinspector allen wichtigen Eigenschaften einen Startwert zuweißen
Außerdem findet man eine Liste mit allen Ereignissen wie z.b. Onclick (ist das richtig?)

2. Markiere für jede der folgenden Aussagen über Objekt- und Ereignisorientierung, ob sie richtig oder falsch ist.
2.1Objekteigenschaften können ihren Wert während des Programmablaufs nicht mehr verändern.
2.2Verschiedene Ereignisse lassen sich durchaus mit derselben Methode behandeln.
2.3Die Ausführung mancher Methoden ist an das Eintreten bestimmter Ereignisse geknüpft.
2.4Eine Objekteigenschaft kann selbst ein Objekt sein.

2.1 Falsch :ein Bild kann den Wert Sichtbar/True zu anfang haben wobei Sichtbar die Eigenschaft und True der Wert ist und dieser kann sich ändern.
2.2 Wahr :Mit dem ";" lassen sich verschiedene Methoden hintereinander ausführen z.b. bei dem Ergeignis Onclick
2.3 Wahr: Z.b. bei einer if Anweisung, falls a angeklickt wird passiert c und so weiter.... (da bin ich mir nicht sichter)
2.4 Da bin ich mir garnicht sicher keine ahnung.

3.Erkläre die Begriffe Objekt, Eigenschaft, Methode, Wert, Ereignis in eigenen Worten. Grenze sie gegen einander ab. Nenne treffende Beispiele aus Delphi, Office-Anwendungen oder der realen Welt.
-Kann mir das zufällig jemand gut erläutern das kann ich nämlcih irgendwie nicht o_O



Das waren erstmal die ersten 3 Aufgaben falls mich da jemand berichtigen /helfen könnte wär voll nett
Die restlichen 4 werde ich eventuel danach posten falls mir geholfen wurde

Der_Unwissende 18. Nov 2007 14:31

Re: Allgemeine Fragen zu Delphi
 
Hi,
zu den Fragen von 2.x solltest Du Dir noch mal genau die Fragen und Deine Antworten anschauen.

2.2 Verschiedene Ereignisse lassen sich durchaus mit derselben Methode behandeln.
2.3 Die Ausführung mancher Methoden ist an das Eintreten bestimmter Ereignisse geknüpft.
2.4 Eine Objekteigenschaft kann selbst ein Objekt sein.

Mit Frage 2.2 ist (so würde ich es verstehen) wirklich gemeint, ob eine Methode sowohl für die Behandlung von Ereignis A als auch für Ereignis B verwendet werden kann. Die Ereignis-Behandlung ist dabei etwas wie eine OnClick-Methode, die eben immer dann aufgerufen wird, wenn ein Mouse-Button gedrückt und wieder losgelassen wurde. Gibt aber natürlich noch andere Ereignisse. Hier ist z.B. die Frage, ob Du dem Button1 und Button2 die gleiche Methode für das jeweilige OnClick-Ereignis zuweisen könntest oder eben nicht? Dass das Semikolon das Ende eines Befehls markiert hat (imho) nichts mit der Frage zu tun.

Dann zu 2.3, eigentlich schließt die Frage ziemlich stark an 2.2 an. Die Frage (würde ich sagen) bezieht sich eher darauf, ob eine Methode immer genau dann und nur dann aufgerufen wird, wenn ein bestimmtes Ereignis eingetreten ist. Also genaugenommen wird gefragt, ob es die generelle Möglichkeit überhaupt gibt. Da würde ich einfach sagen, schaust Du Dir die Ereignisse an und überlegst dann.

Zu 2.4, teste es einfach mal. Du weißt ja was Eigenschaften sind. Also leg einfach eine neue Klasse an und versuche dort eine Eigenschaft zu setzen, die selbst ein Objekt ist. Alternativ kannst Du auch schauen, ob Du eine bekannte Klasse findest bei der eine der Eigenschaften eine Klasse ist. Da weiß ich jetzt nicht welche Komponenten ihr verwendet habt, aber da solltest Du schon bei fast allen visuellen Komponenten die Antwort finden.

Zu 3., Du solltest wenigstens Deine Vermutung äußern. Auch wenn das eine Probeklausur ist, wird wohl recht ungerne eine fertige Lösung rausgegeben. Das bringt Dir auch nicht viel. Deshalb solltest Du mal einfach sagen, was Du Dir bisher unter den Begriffen vorstellst, muss ja nicht perfekt sein! Ansonsten hast Du im Moment noch eine Menge Hilfsmittel wie Google, die Dir sicherlich einen guten Überblick über diese Begriffe geben. Wenn Du da dann etwas nicht verstehst, dann frag einfach konkret nach, wird Dir sicherlich geholfen.

Also dann viel Glück!

Gruß Der Unwissende

mashutu 18. Nov 2007 14:32

Re: Allgemeine Fragen zu Delphi
 
Mal nur kurz:
Zitat:

Zitat von andiak
[...]
1.Beschreibe Funktion und Zweck des Objektinspektors von Delphi in 4–8 Sätzen?

Der Objektinspektor weißt eine Übersicht aller Objekte die in dem momentanen Projekt verwendet werden.

Eigentlich nicht. Man kann ja auch Objekte instantiieren, die icht im OI erscheinen. Also ist das Wort 'alle' falsch.
Richtig waere:
Der OI weist eine Uebersicht zu den Methoden/Ereignissen und Eigenschaften/Properties eines Objektes auf.
Zitat:

Zitat von andiak
Außerdem kann man mit dem Objektinspector allen wichtigen Eigenschaften einen Startwert zuweißen

Okay. "Zuweisen" (nur ein 's')

Zitat:

Zitat von andiak
Außerdem findet man eine Liste mit allen Ereignissen wie z.b. Onclick

Exakt.
Noch was:
Von den Standardeinstellungen abweichende (manuell geaenderte) Werte der Properties werden "fett" dargestellt.
Zitat:

Zitat von andiak
2. Markiere für jede der folgenden Aussagen über Objekt- und Ereignisorientierung, ob sie richtig oder falsch ist.
2.1Objekteigenschaften können ihren Wert während des Programmablaufs nicht mehr verändern.
2.2Verschiedene Ereignisse lassen sich durchaus mit derselben Methode behandeln.
2.3Die Ausführung mancher Methoden ist an das Eintreten bestimmter Ereignisse geknüpft.
2.4Eine Objekteigenschaft kann selbst ein Objekt sein.

2.1 Falsch :ein Bild kann den Wert Sichtbar/True zu anfang haben wobei Sichtbar die Eigenschaft und True der Wert ist und dieser kann sich ändern.

ok
Zitat:

Zitat von andiak
2.2 Wahr :Mit dem ";" lassen sich verschiedene Methoden hintereinander ausführen z.b. bei dem Ergeignis Onclick

die Aussage ist wahr. Das hat aber nichts mit dem Semikolon zu tun.

Man kann auf jeden Fall zwei unterschiedlichen Edit-Feldern die gleiche OnChange-Methode hinterlegen, um bspw. eine Plausibilitaetspruefung vorzunehmen...

Zitat:

Zitat von andiak
2.3 Wahr: Z.b. bei einer if Anweisung, falls a angeklickt wird passiert c und so weiter.... (da bin ich mir nicht sichter)

Quatsch. "Wahr" ist richtig, aber es geht um Ereignisse, die Methoden aufrufen. Also OnClick, OnShow, OnChange...

Zitat:

Zitat von andiak
2.4 Da bin ich mir garnicht sicher keine ahnung.

Natuerlich kann eine Objekteigenschaft ein Object sein.
Zum Beispiel "ActiveControl" in einem Form bezieht sich auf das Aktive TWinControl also ein Objekt.
Zitat:

Zitat von andiak
3.Erkläre die Begriffe Objekt, Eigenschaft, Methode, Wert, Ereignis in eigenen Worten. Grenze sie gegen einander ab. Nenne treffende Beispiele aus Delphi, Office-Anwendungen oder der realen Welt.

Mal ganz einfach (kann das jetzt aus zeitgruenden nicht ausfuehrlicher machen):

Objekt: Struktur mit Eigenschaften und Methoden. Eigenschaften/Properties werden vom Zugriff durch property-Methoden gekapselt, so dass Veraenderungen der Eigenschaften nur kontrolliert durchgefuehrt werden koennen. Die Kontrolle darueber behaelt das Objekt selbst.

Methode: Eine Routine (=Prozedur oder Funktion) des Objekts.
Wert ist der Inhalt einer Eigenschaft. Also visible = true (true = Wert!)
Ereignis: Das Objekt erhaelt eine Nachricht darueber, dass ein bestimmtes Ereignis eingetreten ist. Sofern erforderlich kann eine Methode erstellt werden, damit das Objekt auf das Ereignis reagieren kann.
Abgrenzung: ein Objekt besteht aus Eigenschaften und Methoden. Eigenschaften des Objektes sind aehnlich wie "Record-Felder" von einem bestimmten Datentyp und verfuegen in der Regel ueber Zugriffsmethoden, wie get- und set-Methoden, um dem Programm den Zugriff auf die Daten des Objektes zu ermoeglichen.
Ein Ereignis tritt meist durch Interaktion des Useres mit dem Programm ein. Spezielle Methoden des Objektes erlauben dem Objekt auf diese Ereignisse zu reagieren - bspw. OnKeyDown.

Zitat:

Zitat von andiak
-Kann mir das zufällig jemand gut erläutern das kann ich nämlcih irgendwie nicht o_O

Gut erlaeutert isses nicht, sollte aber richtig sein.
Ob es Deinem Prof reicht weiss ich nicht, aber Du solltest Dir unbedingt mal ein Buch zur OOP zulegen (denke es gibt hier im Forum genug Buchtips, wenn Du danach suchst - ich bin da nicht auf der Hoehe der Zeit, was die Buecher angeht).

Viel Erfolg

andiak 18. Nov 2007 15:10

Re: Allgemeine Fragen zu Delphi
 
Cool danke das hilft mir schon sehr und dadurch erkenn ich wo bei mir fehler im denkprozess waren xD
Hier sind noch ein paar Aufgaben!

4. Wir nehmen an, dass vor Programmstart per Objektinspektor Edit1.Text:='0' gesetzt wurde, und betrachten den nachstehenden Delphi-Code.

Delphi-Quellcode:
prozedur TForm1.Button1Click(Sender: TObject);
var i:=integer;
  i := IntToStr(Edit1:Text)
  i = i + 1;
  if i = 10 then
    Panel1.Caption('Zehnmal auf den Button geklickt!');
    i = 0;
  else
    Panel1.Caption := '';
  Edit1.Text := IntToStr(i);
end.
(a) Schreibe diese Methodendefinition ohne Fehler neu auf, so dass sie vom Compiler übersetzt werden kann und das tut, was hier offensichtlich beabsichtigt ist.
(b) Beschreibe in eigenen Worten, wie sich das Programm verhalten wird.
(c) Finde in deinem korrigierten Code je ein Beispiel für ein Objekt, eine Eigenschaft, einen zugewiesenen Wert, ein Ereignis, eine Behandlungsmethode, eine Zuweisung.
(d) Welche Typen von Ausdrücken treten auf? Sortiere alle vorkommenden Ausdrücke tabellarisch nach Typ.
(e) Welche Arten von Anweisungen treten in deinem Code auf? Kreise sie ein und benenne sie.
Antowrten:
a: ich glaube nach then fehlt ein bgin weiß ich aber nicht außerdem Pantel1.Caption := 'Zehnmal auf den Button geklickt!' ;
sonst seh ich nichts
b: erinnert mich der code an ein ratespiel wo man 10 mal raten darf danach ist schluss
c: Objekt: Panel1
Eigenschaft : Caption
Zugewiesenen wert: 'Zehnmal auf den Button geklickt!'
Ereignis :Button1.Click
Behandlungsmethode: ????
Zuweiung : ????
d: das verstehe ich auch nicht ganz
e: eine if anweisung kommt drin vor mehr weiß ich leider nicht


5. Gib je ein Beispiel für eine Verbundanweisung, eine Zuweisung, eine if-Anweisung, einen Methodenaufruf an.

ich glaub ich versteh dich anderen begriffe einfach nicht aber so pauschal könnte ich nur if anweisung geben

DeddyH 18. Nov 2007 15:18

Re: Allgemeine Fragen zu Delphi
 
Also, ich sehe eine ganze Menge Fehler:
Delphi-Quellcode:
prozedur TForm1.Button1Click(Sender: TObject);
var i:=integer; //falsche Variablendeklaration
//hier fehlt was
  i := IntToStr(Edit1:Text) //und was fehlt hier? Außerdem Tippfehler
  i = i + 1; //Zuweisung oder Vergleich?
  if i = 10 then
  //auch hier fehlt etwas, wenn beide unten stehenden Befehle ausgeführt werden sollen
    Panel1.Caption('Zehnmal auf den Button geklickt!'); //Zuweisung oder Methode?
    i = 0; //Zuweisung oder Vergleich? Außerdem darf etwas ganz Bestimmtes nicht vor einem else stehen
  //siehe 3 Zeilen weiter oben
  else
    Panel1.Caption := '';
  Edit1.Text := IntToStr(i);
end. //und noch ein finaler Fehler

Der_Unwissende 18. Nov 2007 15:23

Re: Allgemeine Fragen zu Delphi
 
Na einer fehlt noch, "prozedur" sieht mir auch etwas wenig nach Delphi aus.

DeddyH 18. Nov 2007 15:25

Re: Allgemeine Fragen zu Delphi
 
:oops: Nicht auf's Sytnax-Highlighting geachtet.

Christian Seehase 18. Nov 2007 15:29

Re: Allgemeine Fragen zu Delphi
 
Moin andiak,

teilweise ist es schwer zu beurteilen, ob die Antworten richtig bzw. vollständig sind, weil das auch davon abhängt, wie weit ihr in die Materie eingestiegen seid.

Ad 1.
Der Objektinspektor bietet schnellen Zugriff auf die published-Eigenschaften und Ereignisse, der (visuellen und nicht-visuellen)-Komponenten an, die sich auf dem jeweils aktiven Formular befinden, sowie die des Formulares selber.
Man kann dort den published-Eigenschaften initiale Werte zuweisen, sowie den Rumpf von Ereignismethoden erzeugen, bzw. den Eigenschaften Ereignismethoden zuweisen.

Würde der OI diese Auswahl über das gesamte Projekt bieten würde das schnell unübersichtlich werden.
Denk nur mal an Projekte mit vielleicht hunderten von Formularen, von den darauf befindlichen visuellen und nicht-visuellen Komponenten mal ganz zu schweigen.
Eigentlich ist die Bezeichnung "Object"-Inspektor nicht ganz korrekt, da man hiermit nur Komponenten auswählen kann (die allerdings auch Objekte sind).
Wichtig ist auch, dass nur der Zugriff auf published-Eigenschaften möglich ist (published markiert alle Eigenschaften, die im OI erscheinen sollen, eine Borland Spezialität). Ob es sich hier um wichtige Eigenschaften handelt oder nicht, sei jetzt mal dahingestellt, aber die Person die die Komponente entwickelt hat, fand es wohl wichtig diese schon zur Designzeit mit Werten versehen zu können ;-)
Dein Beispiel OnClick ist auch nur eine Eigenschaft, der aber eine Ereignisroutine zugeordnet werden kann. Wird das nicht gemacht, wird, soweit vorhanden, die Standardereignisbehandlungsroutine ausgeführt.

Ad 2.1
Stimmt, es kann durchaus sein, dass sich der Wert der Eigenschaft ändert, so dass die getroffene Aussage falsch ist.
Allerdings ist es auch möglich, dass man den Wert nicht direkt ändern kann, sondern dass diese Änderung innerhalb des Objektes stattfindet (z.B. Count von TStringList).

Ad 2.2
Deine Antwort ist zwar auch hier richtig, aber die Begründung falsch (zumindest so, wie ich die Aussage verstanden habe, die es zu beurteilen gilt).
Beispiel:
Du erzeugst, per Doppelclick auf OnClick im OI den Rumpf einer Ereignisbehandlungsroutine für das Anclicken des Controls.
OnClick ist vom Typ TNotifyEvent.
Diese Routine kannst Du jetzt allen OnXXXXX-Ereigniseigenschaften zuweisen, die auch vom Typ TNotifyEvent sind, und zwar für alle Controls, die sich auf dem Formular befinden. Das Feld neben dem Namen der Eigenschaft ist ja eine ComboBox, die einem alle gerade zur Verfügung stehenden Ereignisbehandlungsroutinen zur Auswahl stellt.
Wenn man mehrere Controls markiert hat (Shift-Click), würde auch allen markierten bei Doppelclick in das Feld die frisch erzeugte Ereignisbehandlungsroutine zugewiesen werden.

Ad 2.3
Auch hier stimmt die eigentlich Antwort, nur hat die Begründung auch wieder nichts damit zu tun ;-)
Für mich bezieht sich diese Aussage nur auf Ereignisbehandlungsroutinen (das sind ja auch Methoden), die dann halt aufgerufen werden, wenn das jeweilige Ereignis eintritt (z.B. eben Anclicken).
Es gibt aber auch Methoden, die nichts mit Ereignissen zu tun haben (z.B. wieder mal bei TStringList die Methode Add)

Ad 2.4
So wie die Aussage da steht, ist sie falsch. Eine Objekteigenschaft kann kein Objekt sein, allerdings kann sie ein Objekt enthalten. Beispiel: Oft findet man die Eigenschaft PopupMenu, der man dann ein Objekt vom Typ TPopupMenu zuweisen kann.

Ad 3
Hier möchte ich nur mal kurze Erläuterungen geben, um den Einstieg für Einzelheiten zu erleichtern, ein bisschen was sollst Du ja auch zu tun haben ;-)

Objekt:
Delphi: Der Button den man auf ein Formular legt, wäre eine Instanz der Klasse TButton
Office: Eine in ein Dokument eingebundene Graphik wäre ein Objekt
Reale Welt: Such' Dir irgendetwas aus, denn eigentlich kann man alles was man in der Realität findet als Objekt ansehen.

Eigenschaft:
Delphi: Um mal beim Button zu bleiben. Er hat die Eigenschaft Caption, die den angezeigten Text enthält.
Office: Die genannte Graphik hat, z.B. eine gewisse Breite.
Real: Wenn wir mal als Objekt einen Bleistift annehmen, so könnte die Strichstärke eine Eigenschaft sein.

Methode:
Delphi: TButton kennt eine Methode Click, deren Aufruf den gleichen Effekt hat, als würde man den Button anklicken
Office und real: Da fällt mir so nichts vergleichbares ein.

Wert:
Delphi: Initial hat die Caption des ersten Button, den man auf ein Formular legt den Wert Button1
Office: Die Anzahl Pixel, die eine eingebundene Graphik Breit ist
Real: Die, z.B., Millimeter, die eine Bleistifmine dick ist.

Ereignis:
Delphi: Tritt ein, wenn man den Button anklickt.
Office und real: Dazu fällt mir auch nicht wirklich etwas ein.

andiak 18. Nov 2007 15:39

Re: Allgemeine Fragen zu Delphi
 
Vielen dank für die antworten!
Bisher sind wir noch nicht weit in die materie eingetdrungen von delphi ^^
Haben bisher auch nur mit 1-2 Formularen gearbeitet und das schwierigste was wir bisher hatten war ein ratespiel

Wir hatten auch noch nicht viele Informatik Stunden aber torzdem legt der lehrer die stange ziemlich hoch.. wir sitzen hier zu 3 vorm rechner und uns gehts allen gleich ^^
hier mal der korrigierte code von uns (bestimmt noch massenhast fehler vorhande)

Delphi-Quellcode:
prozedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
  i := IntToStr(Edit1.Text) ;
  i = i + 1 ;
  if i = 10 then
  begin
    Panel1.Caption('Zehnmal auf den Button geklickt!');
    i := 0;
    end
  else
    Panel1.Caption := '' ;
  Edit1.Text := IntToStr(i);
  end

DeddyH 18. Nov 2007 15:44

Re: Allgemeine Fragen zu Delphi
 
Noch 5 Fehler (davon einer, den ich im Original auch übersehen hatte):
Delphi-Quellcode:
prozedure TForm1.Button1Click(Sender: TObject); //Tippfehler?
var i :integer;
begin
  i := IntToStr(Edit1.Text) ; //Was soll in was gewandelt werden?
  i = i + 1 ; //Vergleich statt Zuweisung
  if i = 10 then
  begin
    Panel1.Caption('Zehnmal auf den Button geklickt!'); //Caption ist eine Eigenschaft, keine Methode
    i := 0;
    end
  else
    Panel1.Caption := '' ; //hier isses richtig
  Edit1.Text := IntToStr(i);
  end //ein abschließendes Zeichen fehlt noch

andiak 18. Nov 2007 15:50

Re: Allgemeine Fragen zu Delphi
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
  i := StrToInt(Edit1.Text) ; //da eine zeichenkette zu einer zahl oder?
  i := i + 1 ;
  if i = 10 then
  begin
    Panel1.Caption'Zehnmal auf den Button geklickt!';
    i := 0;
    end
  else
    Panel1.Caption := '' ;
  Edit1.Text := IntToStr(i);
  end.
soo?

mkinzler 18. Nov 2007 15:52

Re: Allgemeine Fragen zu Delphi
 
Eis reicht auch einmal zu Klicken, wenn man 9 ins Editfeld einträgt.

DeddyH 18. Nov 2007 15:53

Re: Allgemeine Fragen zu Delphi
 
Schon besser ;)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
  i := StrToInt(Edit1.Text) ;
  i := i + 1 ;
  if i = 10 then
  begin
    Panel1.Caption'Zehnmal auf den Button geklickt!'; //Zuweisung mit :=
    i := 0;
    end
  else
    Panel1.Caption := '' ;
  Edit1.Text := IntToStr(i);
  end. //Nicht Punkt, sondern ...?

andiak 18. Nov 2007 16:04

Re: Allgemeine Fragen zu Delphi
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
  i := StrToInt(Edit1.Text) ;
  i := i + 1 ;
  if i = 10 then
  begin
    Panel1.Caption := 'Zehnmal auf den Button geklickt!';
    i := 0;
    end
  else
    Panel1.Caption := '' ;
  Edit1.Text := IntToStr(i);
  end;
semikolon ok ^^

Jetzt bruach ich noch die aufgaben dazu ^^
(a) Schreibe diese Methodendefinition ohne Fehler neu auf, so dass sie vom Compiler übersetzt werden kann und das tut, was hier offensichtlich beabsichtigt ist.
(b) Beschreibe in eigenen Worten, wie sich das Programm verhalten wird.
(c) Finde in deinem korrigierten Code je ein Beispiel für ein Objekt, eine Eigenschaft, einen zugewiesenen Wert, ein Ereignis, eine Behandlungsmethode, eine Zuweisung.
(d) Welche Typen von Ausdrücken treten auf? Sortiere alle vorkommenden Ausdrücke tabellarisch nach Typ.
(e) Welche Arten von Anweisungen treten in deinem Code auf? Kreise sie ein und benenne sie.
Antowrten:
a: ich glaube nach then fehlt ein bgin weiß ich aber nicht außerdem Pantel1.Caption := 'Zehnmal auf den Button geklickt!' ;
sonst seh ich nichts
b: erinnert mich der code an ein ratespiel wo man 10 mal raten darf danach ist schluss
c: Objekt: Panel1
Eigenschaft : Caption
Zugewiesenen wert: 'Zehnmal auf den Button geklickt!'
Ereignis :Button1.Click
Behandlungsmethode: ????
Zuweiung : ????
d: das verstehe ich auch nicht ganz
e: eine if anweisung kommt drin vor mehr weiß ich leider nicht


5. Gib je ein Beispiel für eine Verbundanweisung, eine Zuweisung, eine if-Anweisung, einen Methodenaufruf an.

ich glaub ich versteh die anderen begriffe einfach nicht aber so pauschal könnte ich nur if anweisung geben

DeddyH 18. Nov 2007 16:09

Re: Allgemeine Fragen zu Delphi
 
Zur Zuweisung hab ich Dir ja bereits einen Tipp gegeben (übrigens noch nicht korrigiert). Dann lies Dir mal das Posting von Christian durch (#8), da sollte das Allermeiste erklärt sein. Sollten danach noch Fragen auftauchen, kannst Du Dich wieder melden, OK?

andiak 18. Nov 2007 16:15

Re: Allgemeine Fragen zu Delphi
 
Die zuweißung hab ich ja inzwischen geändert aber ich brauch direkt zu dem code noch diese antworten
(b) Beschreibe in eigenen Worten, wie sich das Programm verhalten wird.
(c) Finde in deinem korrigierten Code je ein Beispiel für ein Objekt, eine Eigenschaft, einen zugewiesenen Wert, ein Ereignis, eine Behandlungsmethode, eine Zuweisung.
(d) Welche Typen von Ausdrücken treten auf? Sortiere alle vorkommenden Ausdrücke tabellarisch nach Typ.
(e) Welche Arten von Anweisungen treten in deinem Code auf? Kreise sie ein und benenne sie.

Z.b. d Welche typen von Ausdrückeen treten auf??? Ich habe keine ahnung :/

DeddyH 18. Nov 2007 16:19

Re: Allgemeine Fragen zu Delphi
 
Ist zwar nicht besonders aussagefähig, aber schau mal zum Begriff Ausdruck bei wikipedia. Und was das Programm macht, bekommst Du am Besten durch einen sog. Schreibtischtest heraus, d.h. Papier und Bleistift nehmen und jeden Befehl einzeln verfolgen.

andiak 18. Nov 2007 16:25

Re: Allgemeine Fragen zu Delphi
 
ok probier ich das mal

ok a,b hab ich bei c fehlt mir nur Behandlungsmethode
c: Zuweisung ist doch z.b.
Delphi-Quellcode:
Panel1.Caption := 'Zehnmal auf den Button geklickt!';
oder?

d: Das werden demnach ja ausdrücke sein
Delphi-Quellcode:
  i := StrToInt(Edit1.Text) ;
  i := i + 1 ;
var i :integer;
    Panel1.Caption := '' ;
  Edit1.Text := IntToStr(i);
    i := 0;
oder nicht?

e: if anweisung

5. Gib je ein Beispiel für eine Verbundanweisung, eine Zuweisung, eine if-Anweisung, einen Methodenaufruf an.
Verbundanweisung:
Delphi-Quellcode:
IF Bedingung THEN Anweisung_1 ELSE Anweisung_2
Zuweisung: Panel1.Caption := 'Zehnmal auf den Button geklickt!';
if Anweisung: Wie bei Verbundanweisung
Methodenaufruf: TForm1.Button1Click


So korriert mal bitte ^^

DeddyH 18. Nov 2007 17:41

Re: Allgemeine Fragen zu Delphi
 
Also, Objekte seh ich z.B. 2: Panel1 und Edit1. Der Eigenschaft Caption des Panels und der Eigenschaft Text des Edits wird im Laufe der dem Ereignis Button1Click zugewiesenen Methode ein Wert zugewiesen. d) und e) sind mir zu theoretisch, da sag ich lieber nix, bevor ich was Falsches sage.

andiak 18. Nov 2007 18:55

Re: Allgemeine Fragen zu Delphi
 
hm ok danke ich glaub ich hab jetzt fast soweit alles außer die letze aufgabe

7. Ein Baumarkt liefert bei Entfernungen unter 5km für 10€, darüber für 5€ Festpreis plus 1€ je gefahrenem Kilometer, jedoch höchstens 30€ Gesamtkosten. Zustellungen weiter als 50km werden nicht vorgenommen.
Schreiben Sie Delphi-Code für die Methode BerechnePreis, die in der booleschen Variablen ok vermerken soll, ob die Lieferung erfolgen kann, und in diesem Falle in lieferpreis : integer den Preis ablegt.

procedure TForm1.BerechnePreis(entfernung : Integer);
begin


kann mir jemand dazu was konkretes sagen? was heißt z.b. Boolean?

mkinzler 18. Nov 2007 18:57

Re: Allgemeine Fragen zu Delphi
 
Boolean ist ein boolscher datentyp der wahr/falsch (true/False) speichert.

andiak 18. Nov 2007 19:00

Re: Allgemeine Fragen zu Delphi
 
hmm ok danke ich weiß mckinzler mag das nicht aber hat nich doch zu irgendwer lust mir folgende mthode zu schreiben?

"Ein Baumarkt liefert bei Entfernungen unter 5km für 10€, darüber für 5€ Festpreis plus 1€ je gefahrenem Kilometer, jedoch höchstens 30€ Gesamtkosten. Zustellungen weiter als 50km werden nicht vorgenommen.
Schreiben Sie Delphi-Code für die Methode BerechnePreis, die in der booleschen Variablen ok vermerken soll, ob die Lieferung erfolgen kann, und in diesem Falle in lieferpreis : integer den Preis ablegt.

procedure TForm1.BerechnePreis(entfernung : Integer);
begin
"

mkinzler 18. Nov 2007 19:02

Re: Allgemeine Fragen zu Delphi
 
Wie würdest du vorgehen, wenn du die Aufgabe ohne Programm lösen müsstest?

andiak 18. Nov 2007 19:21

Re: Allgemeine Fragen zu Delphi
 
Ich würde mich an meinen bmi berechnungsprogramm erinnern wie das aufgebaut war

Delphi-Quellcode:
procedure TForm1.BerechnePreis(entfernung : Integer);
var km : Integer;
    kosten: real;

begin
  km := StrToInt(Edistance.Text);
 
  if km < 50 then
   begin
     Panel1.Caption := 'Über 50km fahren wir nicht' ;
   end
 else
so würde ich glaub ich anfange aber irgendwie weiß ich nicht wirklich weiter

mkinzler 18. Nov 2007 19:25

Re: Allgemeine Fragen zu Delphi
 
Ja zuerst würde ich überprüfen, ob der Ort überhaupt beliefert wird.
Dann ob unter 5 Km -> 10€
>25km -> 30€
Sonst 5€ + km*1€

DeddyH 18. Nov 2007 19:28

Re: Allgemeine Fragen zu Delphi
 
Zitat:

Schreiben Sie Delphi-Code für die Methode BerechnePreis, die in der booleschen Variablen ok vermerken soll, ob die Lieferung erfolgen kann, und in diesem Falle in lieferpreis : integer den Preis ablegt.
Procedure ist also in diesem Falle schon einmal falsch weniger geeignet, eine Funktion bietet sich an. Diese könnte so aussehen:
Delphi-Quellcode:
function BerechnePreis(Entfernung: integer; var OK: Boolean): integer;
So, nun ist IMHO als Erstes zu prüfen, ob die Entfernung mehr als 50 km beträgt. Wenn ja, dann ist OK sowieso schon falsch und wir können uns den Rest sparen. Liegt die Entfernung unter 5 km, haben wir einen defnierten Festpreis, OK ist also wahr und wir müssen nur den Festpreis zurückgeben. Ansonsten Preis errechnen, schauen, ob wir über 30 € kommen und dementsprechend reagieren. Ist doch nicht so schwer, oder?

andiak 18. Nov 2007 19:35

Re: Allgemeine Fragen zu Delphi
 
klingt echt nicht so schwer :/ aber in der ausführung :(

mit funktion haben wir noch garnicht gearbeitet! das ist schon wieder ganz seltsam ich probier es nebenbei weiter :/

mkinzler 18. Nov 2007 19:41

Re: Allgemeine Fragen zu Delphi
 
Eine Funktion unterscheidet sich von einer Prozedur nur durch den Rückgabewert.

andiak 18. Nov 2007 19:45

Re: Allgemeine Fragen zu Delphi
 
aha ok naja da wir funktion noch nicht hatten bleib ich lieber bei procedure so weit bin ich jetzt

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var km : Integer;
    kosten: real;

begin
  kosten := ( km * 1 + 5 );
  km := StrToInt(Edit1.Text);

  if km < 50 then
   begin
     Panel1.Caption := 'Über 50km fahren wir nicht' ;
   end
else
 if km < 5 then
  begin
  if kosten <30 then
  Panel1.Caption := '30 € gesammt Betrag ist maximum'
  else


end.
Ist das soweit richtig? Jetzt muss doch nach else nur noch der betrag in Panel1 angezeigt werden oder?

mkinzler 18. Nov 2007 19:52

Re: Allgemeine Fragen zu Delphi
 
Delphi-Quellcode:
Function TForm1.BerechnePreis( km: integer; var lieferpreis: extended): Boolean;
begin
  BerechnePreis := true;
  if km > 50 then
   begin
     BerechnePreis := false;
   end
   elseif km < 5 then lieferpreis := 10
   ...

dominikkv 18. Nov 2007 19:53

Re: Allgemeine Fragen zu Delphi
 
Delphi-Quellcode:
  kosten := ( km * 1 + 5 );
  km := StrToInt(Edit1.Text);
fällt dir hier was auf?
Delphi-Quellcode:
  if km < 50 then
   begin
     Panel1.Caption := 'Über 50km fahren wir nicht' ;
   end
Delphi-Quellcode:
  if kosten <30 then
  Panel1.Caption := '30 &#8364; gesammt Betrag ist maximum'
< ist ein kleiner-Zeichen :zwinker:
und zum umwandeln von ganzzahlen in string gibt es die funktion IntToStr

edit:
@mkinzler: eine procedure mit rückgabewert?!? :pale:

andiak 18. Nov 2007 19:56

Re: Allgemeine Fragen zu Delphi
 
@ mckinzler

das versteh ich jetzt garnicht wenn ich deinen code nehme bekomm ich erstmal nur fehler
[Fehler] Unit1.pas(28): Prozedur kann keinen Ergebnistyp besitzen

dominikkv 18. Nov 2007 19:58

Re: Allgemeine Fragen zu Delphi
 
Zitat:

Zitat von andiak
@ mckinzler

das versteh ich jetzt garnicht wenn ich deinen code nehme bekomm ich erstmal nur fehler
[Fehler] Unit1.pas(28): Prozedur kann keinen Ergebnistyp besitzen

das sollte eigendlich eine function sein...
ersetze einfach das wort procedure mit function

andiak 18. Nov 2007 20:00

Re: Allgemeine Fragen zu Delphi
 
ich blicke jetzt grad aber garnicht mehr durch!
deswegen änder ich erstmal nicht les mir eure beiträge noch 5m al druch um zu schauen ob da für mich irgendwas sinn ergibt
" Schreiben Sie Delphi-Code für die Methode BerechnePreis, die in der booleschen Variablen ok vermerken soll, ob die Lieferung erfolgen kann, und in diesem Falle in lieferpreis : integer den Preis ablegt.

"
ist das zwangsläufig eine function?? oder warum schreibst du mir eine mckinzler wenn ich damit noch nichts gemacht habeß????

mkinzler 18. Nov 2007 20:02

Re: Allgemeine Fragen zu Delphi
 
Sorry hatte vergessen das procedure durch function zu ersetzten
BTW ich bin kein Schotte

ChriB 18. Nov 2007 20:04

Re: Allgemeine Fragen zu Delphi
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
  i := StrToInt(Edit1.Text) ;     //Warum wird denn i hier der Inhalt von Edit1 zugeteilt?
  i := i + 1 ;
  if i = 10 then
  begin
    Panel1.Caption := 'Zehnmal auf den Button geklickt!';
    i := 0;
  end
  else
    Panel1.Caption := '' ;        //Achtung! Sollen BEIDE folgenden Befehle ausgeführt werden? Wenn ja dann mit begin und end umschließen!
    Edit1.Text := IntToStr(i);
end;
(Einrückungen nach meiner Schreibweise korrigiert)
Anfangs dachte ich, dass Edit1 immer mitzählt wie oft man geklickt hat, aber mittlerweile bin ich verwirrt...
Was ist denn jetzt beabsichtigt???

andiak 18. Nov 2007 20:05

Re: Allgemeine Fragen zu Delphi
 
Hast du dir schon alles durchgelesen? Wir sind doch schon bei was ganz anderem :/

ChriB 18. Nov 2007 20:09

Re: Allgemeine Fragen zu Delphi
 
Zitat:

Zitat von andiak
Hast du dir schon alles durchgelesen? Wir sind doch schon bei was ganz anderem :/

Hab ich, ja... Aber ist das nicht doch erwähnenswert?...
Naja, wenn ich verwirre ignorieren :)

mkinzler 18. Nov 2007 20:12

Re: Allgemeine Fragen zu Delphi
 
Ich befürchte andiak geht es nicht ums Verständnis, sondern um die Beantwortung der Fragen

andiak 18. Nov 2007 20:14

Re: Allgemeine Fragen zu Delphi
 
nicht unbedingt aber ich war grad wieder wo ganz anders und ich versteh das einfach nicht wenn da und dann wieder hier der andere code oder ein ganz neuer auftaucht ohne richtiger erklärung :/ ist von meiner seite aus nicht böse gemeint oder so finds voll super das ihr probiert mir zu helfen aberwie gesagt das ist alles so kompliziert wenn man grad neu anfängt


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz