Programmiergrundlagen in Pascal Flashcards

1
Q

Aus welchen Basis-Bausteinen besteht ein Pascal-Programm?

A

program heading [Programmkopf]

block -> declaration part [Deklarations-/Vereinbarungsteil]; statement part [Anweisungsteil]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie ist der Deklarationsteil gegliedert?

A

constant definition part
type definition part
variable declaration part
procedure and function declaration part

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie ist der Anwendungsteil aufgebaut?

A

“begin” am Anfang, “end;” am Ende. Dazwischen statements [Anweisungen], getrennt durch “;”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Spezialsymbole kennt Pascal?

A
\+   -   *   /
.   ,   :   ;
=  <>  <    >=
\:=  ..  ^  '
(  )  [  ]  {  }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie lautet die Erstazdarstellung für [ ] ?

A

(. .)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie lautet die Ersatzdarstellung für { } ?

A

(* *)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welches Symbol ersetzt ^ ?

A

Einen Pfeil nach oben. Kann auch @ geschrieben werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Schlüsselwörter kennt Pascal? Warum muss ich das wissen?

A
program  begin  end
const  type  var
array  of  record  function  procedure
and  not  or  div  mod
if  then  else for  to  downto
do  while  repeat  until
nil
(case  file  goto  label  packed  set  with)
Werden im handgeschriebenen Programm unterstrichen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Zeichengruppen unterscheidet Pascal?

A

Buchstaben (letters), Ziffern (digits), Spezialsymbole (special symbols), Schlüsselwörter (reserved words)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie ist ein zulässiger Bezeichner (identifier) aufgebaut? Wie sollte er gewählt werden.

A
  • beginnt mit einem Buchstaben; kann von weiteren Buchstaben oder Ziffern gefolgt werden
  • wenn möglich “sprechende” Bezeichner wählen
  • verschiedene Bezeichner sollten sich innerhalb der ersten 8 Zeichen unterscheiden
  • bei Bezeichnern unterscheidet Pascal nicht zwischen Groß- und Kleinbuchstaben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie sieht der Programmkopf im geschriebenen Program aus?

A

program identifier;
ODER
program identifier (identifier);
ODER
program identifier (identifier, identifier);

identifier in der Klammer i.d.R. input und/oder output (Standardein- und -ausgabe)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was gilt als Trennsmbol?

A
  • Leerzeichen (blank)
  • Zeilenende (eol)
  • Spezialsymbole
  • Kommentar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Standardbezeichner?

A

Ein in der Programmiersprache vordefinierter Bezeichner für Standardfunktionen, Standardtypen, etc.
Beispiele: writeln, output, char, integer,…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Zahlenarten kennt Pascal?

A
  • integer (ganze Zahl)
  • real (kann jeden integer-Wert, Werte außerhalb der Integergrenzen (maxint) sowie Zahlen mit Fraktionsanteil darstellen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie werden real-Zahlen dargestellt?

A
  • Festpunktdarstellung (0.0; 0.873; -74.1; 73.36789)

- nicht Normalisierte Gleitpunktdarstellung (0E0; 8.73E+02; 741E-1; 0.7336789E2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie werden Konstanten definiert und benannt?

A
const
IDENTIFIER = value (integer, real, 'char', 'string');
ODER
IDENTIFIER = (+-) [anderer constant identifier];

Bezeichner von Konstanten werden komplett groß geschrieben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie werden Variablen deklariert?

A

var
identifier : type;
ODER
identifier, identifier : type;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was wird im Vereinbarungsteil definiert? Was deklariert? Was ist der Unterschied?

A

Konstanten und Typen werden definiert, d.h. sie werden benannt.
Variablen und Prozeduren werden deklariert. Neben der Benennung wird ihnen z.B. bereits Speicherplatz reserviert etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Welche Standarddatentypen kennt Pascal?

A
  • integer- und
  • real-Zahlen,
  • char,
  • boolean;

string kann als vordefiniert angenommen werden, ist es aber eigentlich in Standardpascal nicht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Welche Standardoperationen und Standardfunktionen können auf integer angewendet werden?

A

Operationen:
+, -, *
div (ganzzahlige Division), mod (Restbildung)

Funktionen:
abs(x) (Absolutbetrag), sqr(x) (Quadrat)
succ(x) (=x+1), pred(x) (=x-1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Welche Standardoperationen und Standardfunktionen können auf real angewendet werden?

A

Operationen:
+, -, *, /

Funktionen:
abs(x) (Absolutbetrag), sqr(x) (Quadrat), sqrt(x) (Wurzel),
sin(x) (Sinus), cos(x) (Cosinus), arctan(x) (Arcustangens),
exp(x) (Exponentialfunktion e^x), ln(x) (nat. Logarithmus)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welche Standardfunktionen können auf char angewendet werden?

A

ord(c) (Ordinalzahl des Zeichens c)
chr(i) (Zeichen mit der Ordinalzahl i)
chr(ord(c)) = c; ord(chr(i)) = i;
pred(c) (Vorgänger), succ(c) (Nachfolger)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Welche Standardoperationen und Standardfunktionen welrden als boolean ausgewertet?

A

boolesche Operatoren:
and, or, not

Vergleichsoperatoren:
=, <>, , >=

Funktion:
odd(x) (true für x : integer ungerade)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Prioritäten von Operationen

A
Klasse 1:
not
Klasse 2 (Punktoperatoren):
*  /  div  mod  and
Klasse 3 (Strichoperatoren):
\+  -  or
Klasse 4 (Vergleichsoperatoren):
=  <>  <    >=
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Was ist ein string? Wie wird er definiert?

A

ein array von char

string[integer constant]
-> integer constant gibt maximale Länge des string an

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Datentyp?

A

definiert eine Menge von Werten mit auf diese Menge ausführbaren Operationen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Was ist eine typisierte Programmierspreche?

A
  • jede Konstante / Variable (Datenobjekt) wird eindeutig einem Datentyp zugeordnet
  • der Datentyp bestimmt die Werte, die ein Objekt annehmen und die Operationen, die auf es angewendet werden können
  • jede Operation fordert Operanden eines bestimmten Typs und erzeut Ergebnisse eines bestimmten Typs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Was ist der Unterschied zwischen einer Konstante und einer Variable?

A

Konstante: bekommt bei der Definition einen Wert zugewiesen, der sich in der Programmausführung nicht ändert

Variable: bekommt erst während der Programmausführung einen Wert zugewiesen, der sich im weiteren Programmverlauf ändern kann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Was sind einfache Anweisungen?

A
  • leere Anweisung
  • assignment statement [(Wert-)Zuweisung] (variable identifier := expression)
  • compound statement [zusammengesetzte Anweisung] (begin statement; statement; statement end)
  • special statement [spezielle Anweisung] (z.B. read, writeln, etc.)
30
Q

Was sind strukturierte Anweisungen?

A
  • bedingte Anweisung
    (if condition then statement (else statement))
  • Laufanweisung
    (for identifier := expression [to; downto] expression do statement)
  • while-Schleife
    (while expression do statement)
  • repeat-Schleife
    (repeat statement [; statement; …; statement] until expression)
31
Q

Sequenz

A

Aufeinanderfolge von Anweisungen, die jeweils durch ein Semikolon getrennt sind

32
Q

Welche Datentypen können mit read() eingelesen werden?

A

char, integer oder real

33
Q

Welche Datentypen können mit write() ausgegeben werden?

A

char, integer, real, boolean oder string

34
Q

In welcher Form können Daten mit write() ausgegeben werden?

A

x -> “normale” Ausgabe

x: b -> b legt die minimale Feldbreite fest; umfasst x weniger Zeichen, werden vorne Leerzeichen angefügt
x: b:k -> nur real; k gibt die maximale Anzahl an Nachkommastellen an, auf die ggf. gerundet wird

35
Q

Wie sollten bedingte Anweisungen i.d.R. geschachtelt werden? Warum?

A

Nur den else-Zweig schachteln, um Zuordnung verschiedener else-Zweife zu den then-Zweigen zu vereinfachen und dangling else zu vermeiden.

36
Q

Wie werden einfache Datentypen selbst definiert?

A

type
identifier = type

Bezeichner beginnt mit t (tBezeichner).

37
Q

Wie wird ein Aufzählungstyp (enumerated type) definiert?

A

type
identifier = (identifier, identifier, …)

Beispiel:
tFarbe = (rot, gelb, gruen, blau);

Aufzählungstypen dürfen nicht aus Werten anderer Datentypen bestehen.

38
Q

Wie wird ein Ausschnittstyp (subrange type) definiert?

A

type
identifier = constant..constant

Beispiel
tPositiveZahl = 1..maxint;
tEinstellig = 0..9;

39
Q

Wann werden die einzelnen Schleifenarten sinnvoll eingesetzt?

A

repeat-Schleife: Schleife soll unabhängig von den Eingangswerten einmal durchlaufen werden

while-Schleife: Schleife soll für bestimmte Werte nicht durchlaufen werden

for-Schleife: die Anzahl der Schleifendurchläufe steht vor Eintritt in die Schleife fest

40
Q

strukturierte Datentypen

A

Möglichkeit, bei Bedarf mehrere Werte (gleichen oder unterschiedlichen Typs) in einem Objekt zusammenzufassen

41
Q

Arten von strukturierten Datentypen

A
  • Feldtyp (array)

- Verbundtyp (record)

42
Q

Wie wird ein (eindimensionaler) Feldtyp definiert?

A

array[index type] of component type

Indextyp muss endlich und kann Aufzählungs-, Ausschnittstyp, char, boolean sein.
Komponententyp ist beliebig.

43
Q

Wie wird ein mehdimensionaler Feldtyp definiert?

A

array[index type, index type] of component type

Beispiel
tMatrix = array[tZeile, tSpalte] of integer;

44
Q

Wie wird ein Verbundtyp definiert?

A
record
  field identifier,
  field identifier : type;
  field identifier : type
end

Komponententypen sind beliebig.

45
Q

Wie wird auf eine Komponente eines Verbunds zugegriffen?

A

Beispiel:

Zeit = record
            Stunde : 0..23;
            Minute : 0..59;
            Sekunde : 0..59
          end;

write(‘Es ist ‘, Zeit.Stunde, ‘ Uhr, ‘, Zeit.Minute, ‘ Minuten und ‘, Zeit.Sekunde, ‘ Sekunden.’);

46
Q

Bereichsüberschreitung

A

Tritt bei dem Versuch, ein Feldelement mit einem Indexwert anzusprechen, der nicht existiert.

Beispiel:
Zwerg = array[1..7] of tZwerg

Zwerg[8].Name := ‘Riese’;
=> Bereichsüberschreitung

47
Q

indizierte Variable

A

einzelne Komponente eines Feldtyps

48
Q

selektierte Variable

A

aufgerufene Komponente eines Verbundtyps

49
Q

eof

A

Tastenkombination d (UNIX) bzw. z (MS-DOS)

Prüfung z.B.
if eof then
{ Eingabeende }

50
Q

Funktionskopf

A
function identifier : result type;
ODER
function identifier (identifier, identifier : type; identifier : type) : result type;
51
Q

Funktions- / Prozedurrumpf

A

Vereinbarungsteil
(lokale Konstanten-, Typen-, Variablen-, Funktionsvereinbarungen)

Anweisungsteil

52
Q

Prozedurkopf

A

procedure identifier;
ODER
procedure identifier (identifier : type; var identifier, identifier : type; var identifier : type);

53
Q

Funktionsaufruf

A

identifier(aktuelle Parameter)

Ein Funktionsaufruf ist Teil eines Ausdrucks.
(if identifier(aktuelle Parameter) then…
x := identifier(aktuelle Parameter);
etc.)

54
Q

aktueller Parameter

A

Wert, mit dem ein formaler Parameter beim Aufruf besetzt wird

55
Q

formaler Parameter

A

Im Funktions- / Prozedurkopf deklarierte / definierte Parameter

56
Q

Prozeduraufruf

A

identifier(aktuelle Parameter);

Ein Prozeduraufruf ist ein eigenständiger Befehl.

57
Q

in-Parameter

A

inIdentifier : type;

  • lokale Konstante
  • wird über Parameterliste übergeben und im Rahmen der Funktion / Prozedur nicht geändert
  • Parameter in Funktionen sind immer in-Parameter
58
Q

out-Parameter

A

var outIdentifier : type;

  • wird nicht zur Berechnung innerhalb der Prozedur benutzt
  • bekommt einen Wert zugewiesen, der nach Prozedurausführung nach außen “abgeliefert” wird
  • eigentlich gibt es in Pascal keine echten out-Parameter
59
Q

inout-Parameter

A

var ioIdentifier : type;

  • wird über Parameterliste eingelesen
  • wird während Prozedurausführung verändert
  • gibt nach Prozedurausführung den geänderten Wert zurück
60
Q

Wertübergabe (call-by-value)

A

in-Parameter

61
Q

Referenzübergabe (call-by-reference)

A

io-Parameter;
tatsächlich auch out-Parameter
Voranstellung von “var”
-> var-Parameter

62
Q

Wann ist eine Konstante / Variable lokal?

A

Ein Objekt ist lokal zu dem Block, in dem er vereinbart wird. Er kann von äußeren Blöcken nicht angesprochen werden.

63
Q

Wann ist eine Konstante / Variable global?

A

Ein Objekt ist global zu allen dem Block, in dem es vereinbart ist, lokalen Blöcken.

64
Q

Gültigkeitsbereich

A

Bereich, in dem ein Objekt angesprochen werden kann, also der Block, in dem es vereinbart ist, sowie in ihm geschachtelte Blöcke

65
Q

Schachtelung

A

Deklaration einer Prozedur in einer Prozedur

66
Q

Namenskonflikt

A
  • ein bereits vergebener Bezeichner wird in einem inneren Block neu belegt
  • sollte in jedem Fall vermieden werden

In diesem Fall gilt jeweils die in der Struktur am nächsten an einem inneren Block gelegene Vereinbarung.

67
Q

statische Blockstruktur

A

Die sich aus den verschiedenen Blöcken durch Aneinanderreihung und Schachtelung ergebende, am (statischen) Programmtext ablesbare, Struktur eines Programms.

68
Q

dynamische Blockstruktur

A

Ergibt sich auf den (dynamischen) Prozeduraufrufen während der Laufzeit.
Jede neu aufgerufene Prozedur erzeugt einen neuen Block in dem Block, aus dem sie aufgerufen wird.
Abhängig von Eingabedaten (da der Prozeduraufruf u.U. über Abfragen erfolgt).

69
Q

Existenz, Lebensdauer

A

Eine Variable existiert, solange der Block, zu dem sie lokal ist, ausgeführt wird.
Lebensdauer <> Gültigkeitsbereich

70
Q

Seiteneffekt

A

Schwierig zu kontrollierende und daher schnell zu Fehlern führende Effekte auf die Programmfunktion durch Prozeduren / Funktionen.
Zu vermeiden.
Entstehen durch:
- Modifikation globaler Variablen
- Änderungs- oder Ausgangsparameter in Funktionen