IT Skills

Klausurvorbereitung

Klausurvorbereitung


Set of flashcards Details

Flashcards 90
Students 19
Language Deutsch
Category Computer Science
Level Primary School
Created / Updated 07.07.2012 / 26.06.2025
Weblink
https://card2brain.ch/box/it_skills
Embed
<iframe src="https://card2brain.ch/box/it_skills/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Nennen Sie die vier Basisoperationen eines Computers!

Eingabe (Input)

• Verarbeitung (Processing)

• Ausgabe (Output)

• Speichern (Storage)

Erläutern Sie den wesentlichen Unterscheid zwischen internen und externen Speicher

eines Computers!

Nennen Sie jeweils ein Beispiel!

• Interner Speicher: Hauptspeicher, RAM (Random Access Memory), im Computer

selbst,

-Flüchtig (wenn der Strom ausfällt)

• Externer Speicher: Flashspeicher (USB-Stick), Festplatte

-Persistent: Inhalt bleibt erhalten

Erläutern Sie den Unterschied zwischen Maschinen- und höheren

Programmiersprachen.

Nennen Sie zwei Höhere Programmiersprachen

Maschinensprachen: Befehle aus dem Sprachschatz des Prozessors

• Befehle sind für den Prozessor „verständlich“ und damit ausführbar

• Für den Nutzer schwer zu lesen

(Höhere) Programmiersprachen: Befehle aus der englischen Sprache oder

dem Anwendungsgebiet entnommen

• Verständlicher als der Maschinencode

• WHILE, UNTIL, DO, Preis = Menge * Einzelpreis

• Können nicht direkt vom Prozessor verarbeitet werden

• VBA, C++, C#, COBOL, Java

Was ist die Syntax einer Programmiersprache?

Was sind syntaktische Fehler?

Syntax

• Formale Grammatik (Muster und Regeln), die erlaubte Konstruktionen festlegt und

unerlaubte ausschließt

Syntaktische Fehler

• Verstöße gegen das Regelwerk

• Werden durch den Compiler bzw. Interpreter entdeckt

• Lassen sich dann auch beseitigen

Was sind logische (semantische) Fehler? Wie können logische Fehler gefunden

werden?

Logische Fehler (Denkfehler beim Programmieren)

Semantische Fehler

• Logische Fehler werden auch als semantische Fehler bezeichnet

• Verwendung eines syntaktisch korrekten Befehls, aber dieser Befehl macht an dieser

Stelle im Programm keinen Sinn

- Gib 1 Liter Benzin hinzu

Konsequenz

• Logische Fehler müssen gefunden werden

• Nutzung von Teststrategien

• Organisiere das Programmieren so, dass die Wahrscheinlichkeit für logische Fehler

möglichst gering ist

Laufzeitfehler

• Spezielle Form von logischen Fehlern

• Werden vom Laufzeitsystem des

Nennen Sie die Phasen der Softwareentwicklung!

•Analyse und Verständnis des Problems

•Planung der Logik

•Kodierung und Übersetzung

•Test des Programms

•Dokumentation

•Überführung in die Nutzung

Welche Werkzeuge zur Planung einer Programmlogik werden häufig verwendet?

• Flussdiagramme (Flowcharts)

- Bildhafte Repräsentation der Logik

- Tool: Microsoft Office Visio

• Pseudocode

- Mischung aus natürlicher (Englischer) Sprache

und einer höheren Programmiersprache

(Pascal oder C)

- Ist exakter als eine Beschreibung in

natürlicher Sprache,

- Aber noch nicht so detailliert wie eine

Implementation als Computerprogramm.

- Schrittweise Verfeinerung

- Tool: Jana

Was ist eine Variable

Variable

• Speicherplatz im Hauptspeicher, der durch einen Namen beschrieben wird

• Es wird nicht die physikalische Adresse des Speicherplatzes (zum Programmieren)

benötigt

• Speicherplatz kann immer wieder überschrieben werden

Was ist eine Konstante?

Konstanten

• Konstanten bezeichnen auch einen Speicherplatz im Hauptspeicher

• ABER: Der Inhalt kann nicht überschrieben werden

- PI = 3.142

- Umsatzsteuer = 0.19

Welche einfachen Datentypen werden in Programmen verwendet?

Einfache Datentypen

• Numerische

- Integer (ganzzahlig)

- Real (reell)

• Zeichenketten (strings)

Was muss bei einer Variablendeklaration angegeben werden?

Variablendeklaration

• Datentyp und Name der Variablen

• Entsprechend des Datentyps wird Speicherplatz allokiert

• Adresse wird dem Variablennamen zugeordnet

§ Verwendung der folgenden Datentypen

• numeric: ganzzahlige und reelle Daten

• character: Einzelnes Zeichen

• string: Zeichenkette

§ Beispiel

numeric taxRate

character middleInitial

string inventoryItem

Was ist Spagetti-Code?

Reale Programme

Viele, sehr viele Anweisungen

Mit Entscheidungen und Wiederholungen

Gefahr

Es wird eine komplizierte Unordnung (mess) programmiert

Dieses mögliche Gewirr wird auch als Spaghetti-Code bezeichnet

Ziel:

Vermeidung von Spaghetti-Code

Nennen Sie die drei Basisstrukturelemente in der Programmierung!

• Sequenz (Sequence)

• Auswahl (Selektion)

• Wiederholung (Loop)

Sequenz

- Sequentielle Abarbeitung von Anweisungen

- Step by Step

- Kein Verzweigen

- Kein Überspringen

Auswahl, Entscheidung (selection, decision)

- In Abhängigkeit von der Antwort auf eine binäre Frage (nur zwei Antworten) wird zu

einer von zwei möglichen Anweisungen verzweigt

- Es wird mit dieser ausgewählten Anweisung fortgesetzt

- Wird auch als if-then-else Struktur bezeichnet

if someCondition is true then

do oneProcess

else

do anotherProcess

Auch mit nur einem Ausgang

if someCondition is true then

do oneProces

Schleife

- Treffen einer Entscheidung

- Wenn eine Aktion durchzuführen ist, dann diese Aktion durchführen

- Die Entscheidungsfrage wird erneut gestellt

- Durchführung dieser Schleife solange, bis die Entscheidung keine Aktion mehr

erfordert

Auch while loop; while-do loop;

Warum sind die Basisstrukturen von grundlegender Bedeutung bei der

Programmierung?

Alle logischen Probleme können auf der Basis dieser drei Basisstrukturen

gelöst werden

Wie viele Ein- und Austrittspunkte hat ein Strukturelement?

Wie erfolgt die Verbindung zwischen den Strukturen?

Jede Struktur hat einen Eintritts- und einen Austrittspunkt

- Eine Verbindung zwischen Strukturen kann nur über diese Punkte

Erfolgen

Nennen Sie mindestens drei Gründe für das strukturierte

Programmieren!

Diskutieren Sie einen Grund!

Klarheit (Clarity)

• Bessere Lesbarkeit (bei großen Programmen)

? Professionalität (Professionalism)

• Jeder Programmierer (andere Mitglieder im Team) erwartet strukturierte

Programme

? Effizienz (Efficiency)

• Aktuelle Programmiersprachen (C#, C++, Java, VBA) unterstützen strukturiertes

Programmieren

• Effizientes Umsetzen in die Programmiersprache (Kodierung)

? Wartung (Maintenance)

• Leichtere Wartbarkeit und Erweiterbarkeit (für die Zukunft)

• Schnelleres „Hineinfinden“ nach einer Pause, auch für Fremde

? Modularität (Modularity)

• Einfaches Zerlegen in Routinen oder Module

• Routinen und Module sind mehrfach verwendbar

? Zusammenarbeit von mehreren Programmierern

• Zerlegung in unabhängige Module

- Textverarbeitungsprogramm Word (entwickelt von vielen Programmierern)

Erläutern Sie die Arbeitsweise einer Case-Struktur!

case-Struktur

• Entscheidungen mit mehr als zwei Alternativen

• Es wird eine Variable gegen eine Serie von Werten getestet

- Zum Testen mehrerer Variablen verwende Serie von if-then-else Blöcken

• In Abhängigkeit vom Testergebnis, werden Aktionen ausgelöst

• Kann durch verschachtelte if-then-else Konstrukte abgebildet werden

? Case-Strukturen sind übersichtlicher

? Compiler löst „case“ in einzelne if-then-else auf

? „default“ – keiner der anderen Fälle ist wahr

? Syntax für case ist unterschiedlich in den Programmiersprachen

Was ist der Unterschied zwischen einer klassischen while-Schleife und

einer do-while-Schleife?

In der klassischen while-Schleife:

• Zuerst die Frage, dann die Aktionen

- „pretest-Schleife“

Bei do-while / do-until- Schleife

• Zuerst die Aktionen, dann die Frage

• Die Aktion wird mindestens ein mal ausgeführt

- „posttest-Schleife“

(Das Wort do erinnert daran, dass erst die

Aktion und dann der Test durchgeführt wird)

Nennen Sie die beiden Hauptkategorien einer Programmdokumentation!

Warum ist eine Unterscheidung notwendig?

Für Programmierer: Programmdokumentation

• Interne Programmdokumentation

- Kommentare innerhalb des Quelltextes

- Nicht ausführbare Anweisungen

• Externe Programmdokumentation

- Dokumente, zur Beschreibung von Programmfunktionen, zur Haupt-Logik, …

- Nicht in einer Programmiersprache

- Wird vor der eigentlichen Programmierung erstellt

Erläutern Sie warum vielfach bei der externen Programmdokumentation mit der Beschreibung der Ausgabeformate begonnen wird

Zuerst das Ziel festlegen, danach den Weg

Festlegung der Ausgabe zusammen mit dem Auftraggeber (Nutzer)

• Der Nutzer übergibt dem Programmierer ein Beispiel oder eine Vorlage

• Gemeinsame Besprechung, Einbringen von Veränderungen /Verbesserungen

• Je präziser diese Spezifikation erfolgt, desto weniger Änderungsaufwand

Was ist ein Programmmodule?

Programme werden NICHT als eine lange Serie von Strukturen geschrieben

• Es wird in vernünftige Teile (units) zerlegt, die allgemein als Module (modules)

bezeichnet werden

- VBA: procedures, subprocedures

- C, C++: functions

- C#, Java, OOP: methods

- COBOL, RPG (ältere Sprachen): subroutines

Nennen Sie die Vorteile bei der Modularisierung!

Erläutern Sie einen Vorteil im Detail!

Modularisierung

• Prozess des Einteilens eines Programms in Module

? Modularisierung sorgt

• für Abstraktion

? Modularisierung erlaubt

• das gleichzeitige Arbeiten von mehreren Programmierern an einem Problem

? Modularisierung unterstützt

• die Wiederverwendung

? Abstraktion

• Prozess zum Lenken der Aufmerksamkeit auf wichtige Eigenschaften, wobei nicht wichtige Details ignoriert werden

• Selektives Ignorieren

• Vermeidet „low-level“ Details

• Komplexe Aufgaben erscheinen übersichtlicher

Erläutern Sie den Begriff lokale Variable!

Variablen und Konstanten sind nur gültig, sichtbar (in scope, visible) in

der Methode, in der sie auch deklariert wurden!

• Variablen und Konstanten sind nur lokal zu der Methode gültig, in der sie auch

deklariert wurden

Warum sollte auf die Nutzung von globalen Variablen verzichtet werden?

Verwendung von globalen Variablen und Konstanten

• Variablen und Konstanten, die außerhalb von Methoden deklariert sind:

- Deklaration auf Programm-Ebene

- Außerhalb von main()

• Im Allgemeinen: Nicht empfehlenswert

• Prinzip der Kapselung wird verletzt; unvorhersehbare Seiteneffekte

• Grund für Ausnahmen:

- Konstanten, die in vielen Methoden benötigt werden (Pi, Umsatzsteuersatz)

Erläutern Sie die Hauptlogik (Hauptschritte) in prozeduralen Anwendungsprogrammen!

Die Hauptlogik für prozedurale Programme besteht vielfach aus den

folgenden Teilen:

• Vorbereitende Aufgaben (Housekeeping Tasks)

- Ausführen von vorbereitenden Arbeiten

• Hauptaufgaben (Main loop Tasks)

- Werden meist zyklisch durchlaufen

• Abschlussarbeiten (End-of-job Tasks)

- Arbeiten zum Abschließen der Aufgabe

? Vorbereitende Aufgaben

• Deklaration von Variablen und Konstanten

• Öffnen von Dateien (Files)

• Initialisierungsanweisungen

• Einmalige Anweisungen

- Überschriften für Listen

- Ausgabe des Datums, ..

? Hauptaufgaben

• Lesen und Verarbeitung eines Datensatzes aus einer Datei

• Schleife bis zum End-of-File (EOF)

? Abschlussarbeiten

• Aufgaben zum Beenden eines Programms

• Berechnung von Summen

• Drucken von Schlusszeilen

Was sind Hierarchie-Diagramme und wofür werden diese verwendet?

Beschreibung der logischen Reihenfolge der Module im Flussdiagramm

bzw. Pseudocode

? Beschreibung der Beziehungen (Relationen) zwischen den Modulen

mittels Hierarchie Diagrammen

• Welche Module existieren?

• Welche Routine ruft welche Routine auf?

Analogie zu den Organigrammen für Organisationen

• Grafische Darstellung einer Aufbauorganisation

? Wird ein Modul mehrfach verwendet, so wird dieses Modul besonders

gekennzeichnet (Ecke oben rechts)

• Auswirkungen von Veränderungen dieses Moduls auf andere Module können besser gesehn werden

Was ist bei der Vergabe von Namen zu beachten?

Verwende beziehungsreiche, bedeutungsvolle Namen

• someData

- Nach einiger Zeit wird die Bedeutung vergessen

- Kann ein „Fremder“ die Bedeutung erfassen?

• „Gute“ Namen werden auch als selbstdokumentierend bezeichnet

? Verwende aussprechbare Namen

• pfz

- Nicht aussprechbar und ohne Bedeutung

? Sei kritisch bei der Nutzung von Abkürzungen

• Häufig um einige Tastendrücke beim Eintippen des Quelltextes zu sparen

• getStat

- Abfrage nach dem Statuts eines Objektes

- Abfrage nach einer Statistik

- Abfrage nach einem Staat (state)

? Vermeide Ziffern im Namen

• Eine 0 (Null) kann leicht mit einem O (großes o) verwechselt werden

• Eine 1 (Eins) kann auch leicht als l gelesen werden

? Separiere die einzelnen Worte im Namen

• Gut: initialize_data(), initializeData()

• Schlecht : initializedata()

? Konstanten werden in Großbuchstaben geschrieben

• ADRESS_LINE1

?

Was sind logische Ausdrücke?

Erläutern Sie ihre Verwendung an einem selbst gewähltem Beispiel

Ein logischer Ausdruck hat nur die zwei Werte WAHR (TRUE) oder FALSCH

(FALSE)

? Eigentlich würde für die Speicherung einer booleschen Variablen nur 1 Bit

benötigt

• Da die kleinste Speichereinheit ein Byte ist, wird 1 Byte verwendet

? Jede Entscheidung im Programm ist eine Ja-Nein (wahr-falsch)

Entscheidung

Welche Vergleichsoperatoren sind zwingend notwendig?

Können Vergleichsoperatoren auf unterschiedliche Datentypen verwendet werden?

Jede Programmentscheidung kann auf eine der folgenden Fragen

zurückgeführt werden:

• Zwei Werte sind gleich

• Der erste Wert ist größer als der zweite

• Der erste Wert ist kleiner als der zweite

? Diese Fragen sind die logischen Basisoperatoren in einem logischen

Ausdruck

? Bedingung für einen Vergleich:

• Beide Operanden sind vom gleichen Datentyp

- Nur num mit num; string mit string;

Erläutern Sie den UND (AND) Operator!

Der UND-Operator verknüpft zwei Boolesche Ausdrücke (Konjunktion).

? Das Ergebnis dieser Verknüpfung ist nur WAHR, wenn alle einzelnen

Booleschen Ausdrücke WAHR sind.

? Sobald eine Entscheidung FALSCH ist, so ist der gesamte Ausdruck

FALSCH

Erläutern Sie den ODER (OR) Operator!

Wenn bei mehreren geschachtelten Entscheidungen nur eine WAHR sein

muss, damit der gesamte Ausdruck WAHR ist

? Mindestens EINE Entscheidung muss WAHR sein

Wie können Bereiche ausgewählt werden?

Erläutern Sie das Vorgehen an einem selbst gewählten Beispiel!

Oft müssen Entscheidungen in Abhängigkeit eines Wertebereichs

getroffen werden.

? Beispiel

• Terminierung von Meetings mit unterschiedlichen Abteilungen (Departments)

• Für jedes Department soll eine Einladung versendet werden

Vergleiche die Variable mit einem Bereich

•Bereich wird durch untere bzw. obere Grenze abgebildet

•Im Beispiel wird die obere Grenze verwendet

Was ist bei der gleichzeitigen Benutzung von UND- und ODEROperatoren

in einem Ausdruck zu beachten?

UND-Operator hat eine höhere Priorität als der ODER-Operator

Wir wissen: Punktrechnung vor Strichrechnung

Bei logischen Operatoren UND vor ODER

WAHR: 1 ; FALSCH: 0

Ein UND wird als Multiplikation aufgelöst

aTrueExpression AND aTrueExpression = 1*1 = TRUE

aTrueExpression AND aFalseExpression = 1*0 = FALSE

aFalseExpression AND aFalseExpression = 0*0 = FALSE

Ein ODER wird als Addition aufgelöst

aTrueExpression AND aFalseExpression = 1+0 = TRUE

Was ist eine Case-Struktur?

Die schon bekannte Case-Struktur gehört auch in die Kategorie

„Beschreibung von Entscheidungen“

? Anwendung der Case-Struktur:

• Basierend auf dem Wert einer Variablen werden unterschiedliche

Entscheidungen getroffen

Was sind Entscheidungstabellen?

Wofür werden diese verwendet?

? In manchen Anwendungen sind komplexe Entscheidungen (Abhängig von

mehreren Variablen) zu treffen

? Das Beschreiben aller möglichen Kombinationen kann sehr

unübersichtlich werden

? Eine weitgenutzte Technik sind Entscheidungstabellen (decision tables)

Aus welchen logischen Bestandteilen besteht eine Entscheidungstabelle?

Logische Bestandteile einer Entscheidungstabelle

• Liste aller Bedingungen und ihre Werte

• Mögliche Kombinationen von logischen Werten für diese Bedingungen

• Mögliche Aktionen

• Zuordnung einer Aktion zu einer Kombination von Bedingungen

Wann wird eine Steuerschleife zu einer Endlos-Schleife?

Die Anzahl der Schleifendurchläufe muss kontrolliert (gesteuert) werden

- Zähler

- Definierten Abbruchwert

Wird die Schleife nicht kontrolliert, dann besteht die Gefahr von unendlichen Schleifen (infinite loop)

Welche beiden Formen lassen sich bei Steuerschleifen unterscheiden?

Erläutern Sie eine Form an einem selbst gewählten Beispiel!

Zwei Formen von Steuerschleifen

• Bekannte Anzahl von Zyklen

• Unbekannte Anzahl von Zyklen

Bedingungen für eine Schleife mit bekannter Anzahl von Zyklen

(Zählschleifen)

• Die Steuervariable, Zähler (loop control variable) muss initialisiert sein.

• Die Steuervariable wird getestet und wenn WAHR wird der Schleifenkörper

ausgeführt.

• Im Schleifenkörper müssen Aktionen möglich sein, die den Wert der

Steuervariablen verändern.

- Erhöhen: Incrementing

- Verringern: Decrementing

Unbekannte Anzahl von Zyklen

? Schleifen mit unbekannter Schleifenanzahl

• Die Anzahl der Schleifendurchläufe ist vor der Ausführung der Schleife nicht

bekannt

• Die Steuervariable wird dann nicht durch einen arithmetischen Ausdruck

verändert

• Sondern durch eine andere Aktion, wie beispielsweise

- Nutzeraktion

- Ende einer einzulesenden Datei (EOF)

• Die Anzahl der Durchläufe kann bei jeder Anwendung variieren

Was sind geschaltete Schleifen?

Wann werden diese verwendet?

? Geschachtelte Schleifen (nested loops)

• Schleifen innerhalb einer Schleife

? Äußere Schleife (outer loop)

• Schleife enthält andere Schleife

? Innere Schleife (inner loop)

Geschachtelte Schleifen werden verwendet, wenn für

Erläutern Sie an einem selbst gewählten Beispiel einen typischen Fehler

bei der Anwendung von Schleifen!

Vergessen den Wert der Steuervariable zu verändern

? Beispiel

• Keine get name Anweisung

• Keine Anweisung labelCounter = labelCounter + 1