Klausur Flashcards

1
Q

Was ist ein Programmierparadigma?

A

Ein Programmierparadigma ist ein fundamentaler Programmierstil.
Ein Programmierparadigma ist eine grundlegende Herangehensweise oder Methode zur Lösung von Problemen durch die Gestaltung von Computeralgorithmen. Es umfasst bestimmte Regeln, Konzepte und Muster, die Programmierer beim Entwickeln von Software befolgen.

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

Beschreiben Sie die Unterschiede zwischen den imperativen, deklarativen, objektorientierten Programmierparadigmen

A

imperativ: C;
- Fokus auf WIE
- gibt Schritte und Anweisungen an
- zustandsorientiert: Änderung von Variablen und Datenstrukturen

deklarativ: SQL;
- Fokus auf WAS
- gibt an was erreicht werden soll, ohne Schritte dafür anzugeben
- Zustandsunabhängig: Der Fokus liegt auf Bescheibungen von Beziehungen und Regeln

objektorientiert: Java;
-Code wird um Objekte organisiert
-

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

Was ist der Unterschied zwischen einem compilerbasierten und einem interpreterbasierten
Ansatz zur Übersetzung von Programmen?

A

Compilerbasiert:

  • Übersetzt den gesamten Quellcode auf einmal.
  • Erzeugt eine eigenständige ausführbare Datei.
  • Analysiert und generiert effizienten Code im Voraus.
  • Beispiele: C, C++, Java.

Interpreterbasiert:

  • Übersetzt und führt den Code schrittweise aus.
  • Keine eigenständige ausführbare Datei.
  • Portabler, da nicht an eine Plattform gebunden.
  • Einfacheres Debugging während der Ausführung.
  • Beispiele: Python, JavaScript, Ruby.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Zu welchem der o.g. Ansätze gehört PHP?

A

interpreterbasiert, objektorientiert

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

Stellen Sie drei wichtige Merkmale von Skriptsprachen heraus?

A
  1. Interpretation statt Kompilierung
  2. Dynamische Typisierung (Variablentypen werden während Laufzeit definiert)
  3. Hohe Abstraktionsebene (Entwickler kümmern sich weniger um Hardwarebene)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist der Unterschied zwischen einer clientseitigen und einer serverseitigen Skriptsprache?

A

Clientseitige Skriptsprachen:

Ort der Ausführung: Auf dem Computer oder Gerät des Benutzers (Client).
Verwendung: Interaktive Gestaltung der Benutzeroberfläche im Webbrowser.
Beispiel: JavaScript.

Serverseitige Skriptsprachen:

Ort der Ausführung: Auf dem Server, bevor die Seite an den Client gesendet wird.
Verwendung: Serverseitige Logik, Datenbankverarbeitung, Generierung dynamischer Inhalte.
Beispiele: PHP, Python (Django, Flask), Ruby (Ruby on Rails).

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

Worauf muss man bei der Definition einer Variablen in PHP achten?

A

1.Dollarzeichen ($): Beginnt mit $.
2.Gültige Namen: Buchstaben, Zahlen, Unterstrich; muss mit Buchstaben oder Unterstrich beginnen.
3.Case-Sensitivität: Beachtet Groß- und Kleinschreibung.
4.Datentypen: Dynamisch typisiert; kann explizit deklariert werden.
5.Bereich (Scope): Lokal oder global; definiert den Gültigkeitsbereich.
6. Initialisierung: Vor Verwendung initialisieren, um unerwartetes Verhalten zu vermeiden.
7. Reservierte Wörter: Vermeide PHP-reservierte Wörter als Variablennamen.

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

ungeordnete Liste html

A

<ul>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>

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

geordnete Liste html

A

<ol>
<li>Erstes Element</li>
<li>Zweites Element</li>
<li>Drittes Element</li>
</ol>

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

Link in html

A

<a>Besuchen Sie Example.com</a>

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

interne Verknüpfung html

A

<a>Gehe zur Seite</a>

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

Bild in html

A

<img></img>

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

Tabelle in html

A

<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>Daten 1</td>
<td>Daten 2</td>
</tr>
</table>

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

Wo können Sie PHP-Befehle in einem HTML-Dokument einfügen?

A

Innerhalb von HTML-Tags:

<p>Statischer Text. Weiterer statischer Text.</p>

In HTML-Attributen:

<img></img>

In PHP-Dateien:

<?php echo “Hallo, Welt!”; ?>

In eingebetteten PHP-Blöcken:

<?php echo “<p>Durch PHP generierter Text.</p>”; ?>

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

Muss man in PHP den Typ einer Variablen deklarieren?

A

nein

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

Wie können Sie den Inhalt und den Typ einer Variablen erfahren (bzw. ausgeben lassen)

A

var_dump()

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

Wie wird ein indexbasiertes Array definiert? Ist es erforderlich, den Typ der zulässigen
Array-Elemente und die Array-Größe zu definieren?

A

$meinArray = [1, 2, 3, 4, 5];
$meinArray = array(1, 2, 3, 4, 5);

Größe und typ müssen nicht definiert werden

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

Wie wird ein assoziatives Array definiert? Was ist der Vorteil eines assoziativen Arrays gegenüber einem indexbasierten Array?

A

Bei einem indexbasierten Array kann man auf die Werte durch die Position zugreifen. Bei assoziativen Arrays kann man selber Schlüssel definieren.

$assoziativesArray = array(
‘Name’ => ‘John’,
‘Alter’ => 25,
‘Stadt’ => ‘Berlin’
);

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

Wie werden Inhalte (Schlüssel und Werte) eines Arrays ausgegeben?

A

mit print_r
$array = array(‘Name’ => ‘John’, ‘Alter’ => 25, ‘Stadt’ => ‘Berlin’);
print_r($array);

17
Q

Worauf muss man achten, wenn man mit echo-Anweisung ein assoziatives Array ausgibt

A

Wenn Sie auf den Wert eines bestimmten Schlüssels in einem assoziativen Array zugreifen möchten, sollten Sie geschweifte Klammern verwenden, um den Array-Zugriff zu kennzeichnen.

$array = array(‘Name’ => ‘John’, ‘Alter’ => 25, ‘Stadt’ => ‘Berlin’);
echo $array[‘Name’]; // Richtig

18
Q

Wie wird eine Funktion (mit oder ohne Rückgabe) definiert?

A

ohne Rückgabewert:

function gruessen($name) {
echo “Hallo, $name!”;
}

// Aufruf der Funktion
gruessen(“Peter”);

mit Rückgabewert:

function multipliziere($zahl1, $zahl2) {
$ergebnis = $zahl1 * $zahl2;
return $ergebnis;
}

// Aufruf der Funktion
$produkt = multipliziere(5, 3);
echo “Das Produkt ist: $produkt”;

19
Q

Wie kann ein Parameter definiert und beim Aufruf übergeben werden, damit die Änderung des Parameters auch außerhalb der Funktion sichtbar wird?

A

mit dem & zeichen:

function addiereEins(&$zahl) {
$zahl += 1;
}

$meineZahl = 5;

addiereEins($meineZahl);

echo $meineZahl; // Ausgabe: 6

20
Q

Ist eine globale Variable innerhalb einer Funktion bekannt? Wie können Sie innerhalb einer Funktion auf globale Variablen zugreifen?

A

Ja es ist möglich, mit dem Schlüsselwort global:

$globaleVariable = 10;

function funktionMitZugriffAufGlobaleVariable() {
global $globaleVariable;
echo $globaleVariable;
}

funktionMitZugriffAufGlobaleVariable(); // Ausgabe: 10

21
Q

Kann man bei einem Funktionsaufruf variable Parameteranzahl nutzen? Was muss dafür bei der Definition einer Funktion beachtet werden?

A

Ja:

function addiere(…$zahlen) {
$summe = 0;
foreach ($zahlen as $zahl) {
$summe += $zahl;
}
return $summe;
}

echo addiere(1, 2, 3); // Ausgabe: 6
echo addiere(5, 10, 15, 20); // Ausgabe: 50

22
Q

Kann man Parameter einer Funktion auch »verpackt« übergeben und wie?

A

Ja indem man ein array als variable an die Funktion übergibt und dann in der Funktion auf die einzelnen werte zugreift:

function gruessen($person) {
echo “Hallo, “ . $person[‘Anrede’] . “ “ . $person[‘Name’] . “!”;
}

$meinePerson = array(
‘Anrede’ => ‘Herr’,
‘Name’ => ‘Mustermann’
);

gruessen($meinePerson); // Ausgabe: Hallo, Herr Mustermann!

23
Q

Können Sie den Einsatz einer anonymen Funktion anhand eines Beispiels erklären?

A

Ja die Funktion hat keinen namen und wird direkt in einer Variable gespeichert:

// Anonyme Funktion in einer Variable speichern
$multipliziere = function ($zahl1, $zahl2) {
return $zahl1 * $zahl2;
};

// Anonyme Funktion aufrufen
$ergebnis = $multipliziere(3, 4);

echo $ergebnis; // Ausgabe: 12

24
Q

Kennen Sie den Unterschied zwischen den Funktionen isset und empty? Was gibt die Funktion var_dump aus?

A

Die funktion isset gibt true zurück wenn eine Variable gesetzt und nicht null ist. Die funktion empty gibt true zurück wenn eine Variable null ist.

$variable = “Hallo”;

if (isset($variable)) {
echo “Die Variable ist gesetzt.”;
} else {
echo “Die Variable ist nicht gesetzt.”;
}

25
Q

Wie kann man ein Zeichen in einer Zeichenkette (String) finden und ersetzen?

A

mit str_replace:

$originalString = “Hello, World!”;
$ersetzteZeichenkette = str_replace(‘o’, ‘0’, $originalString);

echo $ersetzteZeichenkette;
// Ausgabe: Hell0, W0rld!

26
Q

Wie kann man in einer angegebenen Zeichenkette bestimmte Zeichenfolge durch andere
ersetzen?

A

Die strtr-Funktion ermöglicht das Ersetzen von Zeichen oder Zeichenketten durch andere Zeichen oder Zeichenketten. Sie können ein Array von Ersetzungen angeben. Hier ist ein Beispiel:

$originalString = “Hello, World!”;
$ersetzungen = array(‘o’ => ‘0’, ‘l’ => ‘1’);

$ersetzteZeichenkette = strtr($originalString, $ersetzungen);

echo $ersetzteZeichenkette;
// Ausgabe: He110, W1r1d!

27
Q

Welche Möglichkeiten besitzt PHP, um assoziative Arrays zu sortieren?

A

Nach Schlüsseln sortieren:

ksort: Sortiert ein assoziatives Array nach den Schlüsseln in aufsteigender Reihenfolge.
krsort: Sortiert ein assoziatives Array nach den Schlüsseln in absteigender Reihenfolge.
Nach Werten sortieren:

asort: Sortiert ein assoziatives Array nach den Werten in aufsteigender Reihenfolge.
arsort: Sortiert ein assoziatives Array nach den Werten in absteigender Reihenfolge.
Benutzerdefinierte Sortierung:

uksort: Sortiert ein assoziatives Array basierend auf einer benutzerdefinierten Funktion für die Schlüssel.
uasort: Sortiert ein assoziatives Array basierend auf einer benutzerdefinierten Funktion für die Werte.

28
Q

Wie definiert man eine Klasse, eine Methode und ein Datenfeld

A

<?php

// Klasse definieren
class BeispielKlasse {
// Datenfeld definieren
public $datenfeld;

// Methode definieren
public function beispielMethode() {
    echo "Dies ist eine Beispiel-Methode.";
} }

// Instanz der Klasse erstellen
$instanz = new BeispielKlasse();

// Auf das Datenfeld zugreifen und setzen
$instanz->datenfeld = “Wert für das Datenfeld”;

// Die Methode aufrufen
$instanz->beispielMethode();

?>

29
Q

Wie werden Objekte erzeugt?

A

<?php

// Klasse definieren
class BeispielKlasse {
public $datenfeld;

public function beispielMethode() {
    echo "Dies ist eine Beispiel-Methode.";
} }

// Objekt erstellen (Instanz der Klasse)
$meinObjekt = new BeispielKlasse();

// Auf das Datenfeld zugreifen und setzen
$meinObjekt->datenfeld = “Wert für das Datenfeld”;

// Die Methode aufrufen
$meinObjekt->beispielMethode();

?>

30
Q

Wie werden Konstruktoren angelegt?

A

In PHP werden Konstruktoren in einer Klasse definiert, um Code auszuführen, wenn ein Objekt dieser Klasse erstellt wird. Ein Konstruktor wird durch eine spezielle Methode mit dem Namen __construct dargestellt. Hier ist ein Beispiel:

php
Copy code
<?php

class BeispielKlasse {
public $datenfeld;

// Konstruktor definieren
public function \_\_construct($startwert) {
    echo "Konstruktor wird aufgerufen. Startwert: $startwert";
    $this->datenfeld = $startwert;
}

public function beispielMethode() {
    echo "Dies ist eine Beispiel-Methode.";
} }

// Objekt erstellen und Konstruktor aufrufen
$meinObjekt = new BeispielKlasse(“Initialwert”);

// Auf das Datenfeld zugreifen und ausgeben
echo $meinObjekt->datenfeld;

?>

31
Q

Kann man Konstruktoren oder Methoden in PHP überladen? Welche Möglichkeit hat man bei
der Definition von Konstruktoren oder Methoden, um alternative Aufrufmöglichkeiten von
Konstruktoren oder Methoden zu ermöglichen?

A

Nein man kann sie nicht überladen, aber man kann eine default Argument definieren.

32
Q

Woran erkennt man eine Klassenvariable und eine Klassenmethode?

A

sie werden mit static deklaliert

33
Q

Wie werden Objekte kopiert?

A

mit clone

$originalObjekt = new BeispielKlasse();
$kopierteObjekt = clone $originalObjekt; // Flache Kopie

34
Q

Wie werden Objekte verglichen?

A

Identitätsvergleich (===):

Überprüft, ob zwei Variablen auf dasselbe Objekt verweisen.

$objektA = new BeispielKlasse();
$objektB = $objektA;

if ($objektA === $objektB) {
echo “Die Objekte sind identisch.”;
} else {
echo “Die Objekte sind nicht identisch.”;
}
Methode ==:

Prüft, ob die Werte der beiden Objekte gleich sind, es sei denn, es wurde eine benutzerdefinierte __toString-Methode implementiert.

$objektA = new BeispielKlasse();
$objektB = new BeispielKlasse();

if ($objektA == $objektB) {
echo “Die Werte der Objekte sind gleich.”;
} else {
echo “Die Werte der Objekte sind nicht gleich.”;
}

35
Q

Wie wird eine Vererbung ermöglicht?

A

mit dem schlüsselwort extends

36
Q

Wie wird der Konstruktor der Elternklasse in der abgeleiteten Klasse aufgerufen?

A

durch parent::

/ Elternklasse
class Tier {
public $name;

// Konstruktor der Elternklasse
public function \_\_construct($name) {
    $this->name = $name;
    echo "Tier-Konstruktor aufgerufen. Name: $name";
} }

// Abgeleitete Klasse erbt von der Elternklasse
class Hund extends Tier {
public $rasse;

// Konstruktor der abgeleiteten Klasse
public function \_\_construct($name, $rasse) {
    // Aufruf des Konstruktors der Elternklasse
    parent::\_\_construct($name);

    $this->rasse = $rasse;
    echo " Hund-Konstruktor aufgerufen. Rasse: $rasse";
37
Q

Wie wird eine Schnittstelle in PHP definiert? Wie wird eine Schnittstelle von einer Klasse implementiert?

A

Mit interface und implements

interface BeispielSchnittstelle {
public function methode1();
public function methode2($parameter);
}

class BeispielKlasse implements BeispielSchnittstelle {
public function methode1() {
echo “Implementierung von methode1”;
}

public function methode2($parameter) {
    echo "Implementierung von methode2 mit Parameter: $parameter";
} }
38
Q

Wozu braucht man Namensräume?

A

Zweck:

Vermeidung von Namenskonflikten.
Organisierung des Codes in logische Gruppen.
Verbesserung von Lesbarkeit und Wartbarkeit, besonders in großen Projekten.
Vorteile:

Isolation verschiedener Teile des Codes.
Bessere Strukturierung und Gruppierung von Klassen und Funktionen.
Klarere Definition von öffentlichen und privaten Bereichen.
Erleichtert die Zusammenarbeit in Team

39
Q

Wie kann man Fehler (oder Ausnahmen) mit der Try-Catch-Anweisung und der Exception-Klasse behandeln?

A

try {
// Code, bei dem eine Ausnahme auftreten könnte
// z.B., eine Funktion aufrufen, die eine Exception wirft
$ergebnis = teile(10, 0);
echo “Ergebnis: $ergebnis”; // Wird nicht ausgeführt, wenn eine Exception auftritt
} catch (Exception $e) {
// Code zur Behandlung der Ausnahme
echo “Fehler: “ . $e->getMessage();
} finally {
// Optionaler Block, der immer ausgeführt wird, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht
echo “Diese Anweisung wird immer ausgeführt.”;
}

39
Q

Wie kann man zeilenweise aus einer sequenziellen Datei lesen?

A

mit fread
<?php
// Dateipfad
$dateipfad = ‘deine_datei.txt’;

// Datei öffnen
$datei = fopen($dateipfad, ‘r’);

// Überprüfen, ob die Datei erfolgreich geöffnet wurde
if ($datei) {
// Zeilenweise aus der Datei lesen und ausgeben
while (($zeile = fgets($datei)) !== false) {
echo $zeile . ‘<br></br>’;
}

// Datei schließen
fclose($datei); } else {
// Fehler beim Öffnen der Datei
echo 'Die Datei konnte nicht geöffnet werden.'; } ?>
40
Q

Was ist der Unterschied zwischen readfile() und file()?

A
41
Q
  • Wie kann man Datensätze in eine sequenzielle Datei schreiben?
A

mit den funktionen fopen, fwrtie, fclose:

<?php
// Dateipfad
$dateipfad = ‘deine_datei.txt’;

// Datensätze
$datensatz1 = “Name: John, Alter: 25, Stadt: Berlin”;
$datensatz2 = “Name: Anna, Alter: 30, Stadt: München”;
$datensatz3 = “Name: Peter, Alter: 22, Stadt: Hamburg”;

// Datei zum Schreiben öffnen oder erstellen (wenn sie nicht existiert)
$datei = fopen($dateipfad, ‘w’);

// Überprüfen, ob die Datei erfolgreich geöffnet wurde
if ($datei) {
// Datensätze in die Datei schreiben
fwrite($datei, $datensatz1 . PHP_EOL);
fwrite($datei, $datensatz2 . PHP_EOL);
fwrite($datei, $datensatz3 . PHP_EOL);

// Datei schließen
fclose($datei);
echo 'Datensätze wurden erfolgreich in die Datei geschrieben.'; } else {
// Fehler beim Öffnen der Datei
echo 'Die Datei konnte nicht zum Schreiben geöffnet werden.'; } ?>
42
Q
A