AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klausur-Fragen

Ein Thema von hotkey · begonnen am 2. Nov 2011 · letzter Beitrag vom 2. Nov 2011
Antwort Antwort
Seite 1 von 2  1 2      
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#1

Klausur-Fragen

  Alt 2. Nov 2011, 16:22
Hallo , ich schreibe morgen eine Informatik-LK-Klausur und habe nun ein paar Fragen:

Was sind Parameter , wo ist der Unterschied zwischen Parameter und Variable , haben Parameter einen Vorteil?

Warum ist es nicht gut , Variablen global zu deklarieren ?

Eine Funktion liefert einen Wert zurück , eine Prozedur nicht , mein Lehrer : eine Prozedur auch => verunsichert.

Record : Eine Zusammenfassung von verschiedenen Datentypen zu einem komplexen ? Richtig ?


Wäre echt nett , wenn die Fragen beantwortet werden , ist super wichtig !
Felix
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: Klausur-Fragen

  Alt 2. Nov 2011, 16:28
Unter diesem Link findest Du viele Antworten auf Deine Fragen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#3

AW: Klausur-Fragen

  Alt 2. Nov 2011, 16:33
Hallo,

Parameter übergibst du einer Prozedur/Funktion, eine Variable deklarierst du:

procedure <Name>(<Parameter>);
<Variablen- und Konstanten>
begin
<Anweisungen>
end;

function <Name>(<Parameter>): <Rückgabetyp>;
<Variablen- und Konstanten>
begin
<Anweisungen>
end;

Warum ist es nicht gut , Variablen global zu deklarieren ?

Keine Ahnung! Vllt der Übersicht halber, oder zum Schutz, dass sie nicht zufällig überschrieben wird, wenn eine andere Prozedur drauf zugreift?

Eine Funktion liefert einen Wert zurück , eine Prozedur nicht , mein Lehrer : eine Prozedur auch => verunsichert.

Noch nie davon gehört.


Record : Eine Zusammenfassung von verschiedenen Datentypen zu einem komplexen ? Richtig ?

Was sind Records?

Records ermöglichen es, mehrere Variablen zu gruppieren. Dies ist beispielsweise dann hilfreich, wenn oft die gleiche Menge an Variablen benötigt wird, oder eine Menge Variablen logisch zusammengefasst werden soll. Eine weitere Situation in der Records unverzichtbar sind ist, wenn im Programm mehrere Datensätze gespeichert und verwaltet werden sollen, beispielsweise in einem Adressbuch
(Quelle: http://de.wikibooks.org/wiki/Program...ascal:_Records) Besser kann man es nicht sagen.

MfG schlagzu
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Klausur-Fragen

  Alt 2. Nov 2011, 16:37
Parameter:
Delphi-Quellcode:
procedure Foo( IchBinEinParameter : string );
var
  IchBinEineVariable : string;
begin
  // irgendwas
end;
Globale Variable:
Da besteht die Gefahr, dass man sich eben diese gegenseitig überschreibt:
Delphi-Quellcode:
var
  IchBinGlobal : integer;

procedure Foo1;
begin
  WriteLn( IntToStr( IchBinGlobal ) );
end;

procedure Foo2:
begin
  for IchBinGlobal := 1 to 10 do
    Foo1;
end;

procedure Foo3;
begin
  for IchBinGlobal := 1 to 10 do
    Foo2;
end;
besser also so (ganz ohne Globale Variable)
Delphi-Quellcode:
procedure Foo1( Value : integer );
begin
  WriteLn( IntToStr( Value ) );
end;

procedure Foo2:
var
  IchBinLokal : integer;
begin
  for IchBinLokal := 1 to 10 do
    Foo1( IchBinLokal );
end;

procedure Foo3;
var
  IchBinLokal : integer;
begin
  for IchBinLokal := 1 to 10 do
    Foo2;
end;
Procedure/Function Wert zurückliefern
Delphi-Quellcode:
function FooFunc : integer;
begin
  Result := 10;
end;

procedure FooProc( var Value : integer );
begin
  Value := 10;
end;

var
  FooValue : integer;
begin
  FooValue := 0;
  FooValue := FooFunc;
  WriteLn( IntToStr( FooValue ) ); // Ausgabe: 10

  FooValue := 0;
  FooProc( FooValue );
  WriteLn( IntToStr( FooValue ) ); // Ausgabe 10
end.
Record: da hast du ja im Prinzip schon die richtige Definition gegeben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#5

AW: Klausur-Fragen

  Alt 2. Nov 2011, 16:59
Alles klar vielen Dank für die Antworten !
Felix
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Klausur-Fragen

  Alt 2. Nov 2011, 17:15
Globale Variable:
Da besteht die Gefahr, dass man sich eben diese gegenseitig überschreibt:
Delphi-Quellcode:
var
  IchBinGlobal : integer;

procedure Foo1;
begin
  WriteLn( IntToStr( IchBinGlobal ) );
end;

procedure Foo2:
begin
  for IchBinGlobal := 1 to 10 do
    Foo1;
end;

procedure Foo3;
begin
  for IchBinGlobal := 1 to 10 do
    Foo2;
end;
For-Schleifen mit globalen Variablen erlaubt der Compiler übrigens gar nicht erst (außer im Rumpf eines Konsolenprogramms).
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Klausur-Fragen

  Alt 2. Nov 2011, 17:17
Mein Compiler erlaubt das, gibt aber eine Warnung aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Romiox

Registriert seit: 14. Okt 2010
Ort: Ruhrpott
57 Beiträge
 
#8

AW: Klausur-Fragen

  Alt 2. Nov 2011, 17:25
Zitat von hotkey:
Eine Funktion liefert einen Wert zurück , eine Prozedur nicht , mein Lehrer : eine Prozedur auch => verunsichert.
Die Antwort von Sir Rufo war ja schon recht umfassend,
nur so viel noch dazu:

Funktionen haben einen Rückgabewert, ja.

Prozeduren haben keinen Rückgabewert, nein.
Prozeduren können aber übergebene Variablen verändern (Funktionen eigentlich auch *scratch* - nicht so wichtig),
sofern diese im Kopf als var-Parameter deklariert sind (procedure FooProc( var Value : integer ); ).
Wenn nicht würde diese Prozedur zwar abgearbeitet, die übergebene Variable aber nicht verändert.

Viel Erfolg
Janis F.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Klausur-Fragen

  Alt 2. Nov 2011, 17:25
Mein Compiler erlaubt das, gibt aber eine Warnung aus.
Hmm interessant, in diesem Fall scheint es tatsächlich zu funktionieren. Aber bei verschachtelten Funktionen geht es nicht:
Delphi-Quellcode:
procedure Test;
  var Bar: integer;
  procedure Foo;
  begin
    for Bar := 0 to 3 - 1 do
      showmessage(inttostr(Bar));
  end;
begin
  Foo;
end;
Zitat:
[Pascal Fehler] Unit1.pas(31): E1019 FOR-Schleifenvariable muss eine einfache lokale Variable sein
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Klausur-Fragen

  Alt 2. Nov 2011, 17:33
Eine Funktion liefert einen Wert zurück , eine Prozedur nicht , mein Lehrer : eine Prozedur auch => verunsichert.
Es gibt die Möglichkeit, daß eine Pocedure einen Wert zurück gibt, und zwar dann wenn ein oder mehrere Parameter als var übergeben werden.
z.B.
procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word); Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:39 Uhr.
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