Grundwissen Informatik JS Juli 2018

Ähnliche Dokumente
Grundwissen Informatik JS Oktober 2016

Grundwissen Informatik JS Dezember 2017

Grundwissen Informatik JS März 2018

Grundwissen Informatik JS September 2015

Objektorientierte Konzepte

Objektorientierte Konzepte

Beziehungen zwischen Objekten

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Beziehungen zwischen Objekten

Umsetzung einer Klassenkarte in einer Programmiersprache

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Objektorientierung. Marc Satkowski 20. November C# Kurs

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Vorkurs Informatik WiSe 16/17

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Tag 8 Repetitorium Informatik (Java)

Algorithmen implementieren. Implementieren von Algorithmen

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Repetitorium Informatik (Java)

Felder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Vorkurs Informatik WiSe 17/18

Intensivübung zu Algorithmen und Datenstrukturen

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Tag 7 Repetitorium Informatik (Java)

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Klassen als Datenstrukturen

Tag 2 Repetitorium Informatik (Java)

Java Ablaufsteuerung (Beispiele)

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

System.out.println("TEXT");

Praktische Informatik 1

Java Anweisungen und Ablaufsteuerung

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Zustandsmodelle. M. Jakob. 10. Dezember Gymnasium Pegnitz

Tag 4 Repetitorium Informatik (Java)

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

1 Klassen anlegen und Objekte erzeugen

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

1 Klassen anlegen und Objekte erzeugen

Javakurs für Anfänger

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Praktische Informatik 1

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Martin Unold INFORMATIK. Geoinformatik und Vermessung

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Erste Java-Programme (Scopes und Rekursion)

Einstieg in die Informatik mit Java

Java Kurzanleitung Kapitel 1 Kontrollstrukturen:

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

3. Bedingte Anweisungen

Welche Informatik-Kenntnisse bringen Sie mit?

if ( Logischer Operator ) { } else { Anweisungen false

JAVA-Datentypen und deren Wertebereich

Einstieg in die Informatik mit Java

Einfache Datentypen in JAVA

Einführung in die Programmierung 1

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

4.4 Imperative Algorithmen Prozeduren

Java: Eine kurze Einführung an Beispielen

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Begriffe 1 (Wiederholung)

Informatik I - Einstiegskurs

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

2 Programmieren in Java I noch ohne Nachbearbeitung

Fakultät IV Elektrotechnik/Informatik

Vorkurs Informatik WiSe 16/17

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Elementare Konzepte von

C++ - Objektorientierte Programmierung Vererbung

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Einstieg in die Informatik mit Java

Objektorientiertes Programmieren (Java)

Transkript:

Grundwissen Informatik JS 10 13. Juli 2018 Grundlagen der Objektorientierung 1. a) Wozu dienen Klassen- und Objektkarten? b) Beschreibe das Aussehen, den Inhalt und Schreibkonventionen bei Klassenkarten. c) Beschreibe das Aussehen, den Inhalt und Schreibkonventionen bei Objektkarten. a) Um Klassen und Objekte möglichst übersichtlich zu beschreiben nutzt man Klassen- und Objektkarten. b) Scharfe Ecken, Klassenname groß, Attribute klein geschrieben mit Datentyp (Doppelpunkt dazwischen); Methoden (klein geschrieben) stets mit runden Klammern. c) Runde Ecken, Objektname klein mit dazugehöriger Klasse (Doppelpunkt dazwischen), den Attributen werden durch = konkrete Attributwerte zugewiesen; keine Methoden. 2. Erkläre die Begriffe Klasse, Attribut, Attributwert, Objekt, Methode und Dienst. Beispiel! Allgemein Eine Klasse ist eine Bauanleitung (Oberbegriff) für gleichartige Objekte mit gleichen Attributen. Objekte haben einen eindeutigen Namen und haben ggf. verschiedene Attributswerte. Attributswerte werden mit Methoden (oder Diensten) verändert. Beispiel Klasse Konto mit den Attributen KontoNummer, Guthaben,... Das Konto konto07 mit KontoNummer=4711 und Guthaben=1000. Die Methode abheben() verändert den Wert des Attributs Guthaben. 3. a) Gib einige grundlegende Datentypen von Java und ihre Bedeutung an. b) Welche Syntaxregeln müssen bei Datentypen eingehalten werden? c) Warum sind Datentypen in Programmiersprachen nötig? a) Typ Beschreibung Literale int ganze Zahl Bereich ca. ±2 Mrd boolean boolescher Wert true, false double Gleitkommazahl ca. 10 308... 10 308 char Zeichen a, b, c, ) String Zeichenkette Hallo Welt... b) primitive Datentypen werden klein geschrieben, Objekttypen (z.b. String) groß. Attributwerte vom Datentyp char / String müssen in einfache / doppelte Hochkommata einschlossen werden. c) Abhängig vom Datentyp einer Variable muss entsprechend Platz im Datenspeicher reserviert werden.

4. a) Erkläre an einem Beispiel, wie der Aufbau einer Java-Klasse aussieht. Welche Notationskonventionen gibt es in Java? b) Was versteht man unter Datenkapselung, wozu ist sie gut? a) 1 p u b l i c c l a s s E i n t r i t t s k a r t e 2 { // e r s t A t t r i b u t e f e s t l e g e n 3 p r i v a t e S t r i n g opername ; 4... 5 //dann Methoden f e s t l e g e n Klassennamen werden groß geschrieben, Attributund Methodennamen klein. Nach jeder { wird der Programmcode weiter eingerückt, nach jeder } wieder ausgerückt. Kommentare nach // oder innerhalb von /** und */ erleichtert die Lesbarbeit des Codes. b) Um Daten vor unerlaubten Zugriffen zu schützen werden Attribute stets private deklariert, der Zugriff darauf erfolgt ausschließlich über Methoden. 5. a) Erkläre genauer was man unter einer Methode versteht. b) Erkläre an einem Beispiel, welchen formalen Aufbau eine Methodensignatur in Java hat. a) Eine Methode führt gewisse Dienste einer Klasse aus. Genauso wie eine mathematische Funktion kann sie aus bestimmten Eingabeparametern bestimmte Werte bestimmen oder Tätigkeiten ausführen. b) Beispiel public double Mittelwert(int a, int b) 6. a) Was versteht man unter einer Wertzuweisung? Beispiele! b) Worin besteht der Unterschied zwischen einer Wertzuweisung und einem mathematischen = -Zeichen? a) Bei einer Wertzuweisung der Form A = B wir der Variable mit der Bezeichnung A der Inhalt der Variable mit der Bezeichnung B zugeordnet. name = Sepp ; // name erhält den Wert Sepp x = 3 + 4; // x erhält den Wert 7 x = x + 1; // x wird um 1 erhöht b) Auf der linken Seite darf nur ein Attribut stehen, vertauscht man die beiden Seiten, erhält man ggf. ein anderes Ergebnis (oder eine Fehlermeldung) Gleichungsketten sind nicht zugelassen.

7. a) Was versteht man unter einem Konstruktor, welche Aufgaben hat er? b) Welchen Namen besitzt er, wie wir er aufgerufen, wie viele Konstruktoren darf eine Klasse besitzen, wo sind sie im Programmcode zu finden? a) Der Konstruktor einer Klasse ist eine Methode zur Erzeugung eines Objektes und wird mit dem Befehl new (...) aufgerufen. Dabei werden alle Attribute initialisiert bestimmte Anfangswerte zugewiesen. b) Jede Klasse kann beliebig viele (auch keine) Konstruktoren haben, sie tragen alle den Namen der Klasse müssen sich aber in der Parameterliste unterscheiden. Ist kein selbst geschriebener Konstruktor vorhanden, verwendet Java einen Standardkonstruktor, der alle Attribute auf null setzt. Die Konstruktoren werden nach der Attributdeklaration als erste Methoden der Klasse aufgeführt. 8. Erkläre an einem Beispiel, wie ein Konstruktor mit zwei Übergabeparametern implementiert werden kann. 1 p u b l i c c l a s s Konto{ 2 p r i v a t e i n t kontonummer ; 3 p r i v a t e double guthaben ; 4 p r i v a t e S t r i n g kunde ; 5 p r i v a t e boolean k r e d i t k a r t e ; 1 p u b l i c Konto ( S t r i n g neuerkunde, i n t neueknr ) { 2 kunde=neuerkunde ; 3 kontonummer=neueknr ; 4 guthaben =0; 5 k r e d i t k a r t e=f a l s e ; 9. a) Was versteht man unter lokalen Variablen, was unterscheidet sie von Attributen? b) Welchen Vorteil haben lokale Variablen gegenüber den global definierten Attributen? Lokale Variablen... a) werden in einzelnen Methoden ohne Modifizierer deklariert. b) Sie belegen nur während der Ausführungszeit einer Methode Speicherplatz und dürfen in verschiedenen Methoden den gleichen Namen tragen, erzeugen dadurch übersichtlicheren Programmcode. 1 p u b l i c c l a s s Kugel { 2 p r i v a t e double r a d i u s ; 3 p u b l i c double oberflaechegeben ( ) { 4 double o b e r f l a e c h e ; 5 o b e r f l a e c h e = 4/3 3.1414 r a d i u s r a d i u s r a d i u s ; 6 r e t u r n o b e r f l a e c h e ; 7 } 8 }

10. a) Wie lauten die Befehle zur Ausgabe von Text in einem Textfenster, worin unterschieden sie sich, warum sind sie so lang? b) Welche Datentypen dürfen den Befehlen übergeben werden? Nenne einige typische Beispiele für die Verwendung der Bildschirmausgabe. a) System.out.print(daten) ohne Zeilenumbruch bzw System.out.println(daten) mit Zeilenumbuch am Ende. Viele Java-Befehle sind in sogenannte Bibliotheken ausgelagert. print(ln) befindet sich in der Bibliothek System.out. Damit der Compiler weiß, in welcher Bibliothek er den Befehl findet, muss der Bibliotheksname mit angegeben werden. b) Es dürfen nur einfache Datentypen und Strings übergeben werden. Objektdatentypen nicht. System.out.println( Hallo + name) Hallo Peter System.out.println( Kontostand: + betrag + Euro ) Kontostand: 500 Euro

Grundwissen Informatik JS 10 Beziehungen zwischen Objekten 11. Erkläre an einem Beispiel, was man unter einer Aggregation und unter einem Referenzattribut versteht? Wie werden die Methoden eines Referenzatributes aufgerufen? 13. Juli 2018 Die Beziehung der Klassen STADT und LAND ist eine Aggregation, weil hauptstadt ein Attribut vom Datentyp STADT ist. Dabei werden aber nicht die Daten des Attributes hauptstadt in dem Zelle Inhalt... Speicherbereich des Landes abgelegt. Es wird nur eine Referenz- 10001 Deutschland 10000 name 10002 hauptstadt adresse angegeben, unter der die 10003 10100 10004 einwohnerzahl Daten zu finden sind. 10005 80000000 10006 staatsoberhaupt 10007 Merkel... 10100 name 10101 Berlin 10102 einwohnerzahl 10103 4000000 10104 buergermeister 10105 Wowereit Die Methoden eines Referenzattributes werden mit der Punktschreibweise aufgerufen, z.b. hauptstadt.datenanzeigen(). 12. Erkläre die Grundprinzipien der Vererbung? Die Subklassen besitzen (erben) alle Attribute und Methoden der Oberklasse. Die Methoden können aber in den Subklassen überschrieben (neu implementieren) und auf deren Bedürfnisse angepasst werden. Will man aus der Unterklasse den Konstruktor der Oberklasse aufrufen, geschieht das mit dem Befehl super(<p-liste>). Will man aus der Unterklasse eine anderen Methode (z.b. anzeigen()) der Oberklasse aufrufen, geschieht das mittels super.anzeigen(). 13. Erkläre an einem Beispiel, wie ein Klassendiagramm aufgebaut ist und wozu es nützlich ist. Gehe auch auf die Unterschiede zwischen Aggregation und Vererbung ein. Das Klassendiagramm stellt die Beziehungen (Aggregation, Vererbung) zwischen den Klassen dar. Die Aggregation modelliert dabei eine hat-beziehung (Eine Uhr hat einen Antrieb) und wird durch eine Raute samt Kardinalität dargestellt, die Vererbung modelliert eine ist-beziehung (Ein Wecker ist eine Uhr) und wird durch einen Dreieckspfeil dargestellt.

14. Erkläre an einem Beispiel, wie ein Sequenzdiagramm aufgebaut ist und wozu es nützlich ist. Im Sequenzdiagramm verlaufen vertikal die Lebenslinien der Objekte. Horizontal werden die ausgetauschten Anfangsbotschaften (Methodenaufrufe) und Antwortbotschaften (Rückgabewerte) dargestellt. Aktivitätsbalken auf den Lebenslinien zeigen, wenn eine Methode gerade ausgeführt wird.

Grundwissen Informatik JS 10 Algorithmik 15. Was versteht man unter einem Algorithmus? Beispiele! 13. Juli 2018 Ein Algorithmus ist eine Verarbeitungsvorschrift, die aus endlich vielen, eindeutig ausführbaren Anweisungen besteht. Beispiel: schriftlicher Multiplikations-Algorithmus Computerprogramme Kochrezepte und Gebrauchsanweisungen mit Einschränkungen, weil die Anweisungen oft nicht eindeutig sind. 16. Wie werden einfache Programmverzweigungen in Java implementiert? Welche Schreibkonventionen werden eingehalten? 1 i f ( Bedingung ) { 2 Programmcode f a l l s d i e Bedingung z u t r i f f t 3 } 4 e l s e { 5 Programmcode f a l l s d i e Bedingung n i c h t z u t r i f f t Der else-block kann weggelassen werden. Der Programmcode für den if- und den else - Teil wird jeweils eingerückt, bei verschachtelten Verzweigungen auch mehrfach. Das zu einem if gehörende else beginnt in der gleichen Spalte. 17. a) Was versteht man unter logischen Ausdrücken? Beispiele! b) Welche Vergleichsoperatoren gibt es bei logischen Ausdrücken für einfache Datentypen und Strings? c) Mit welchen logischen Grundoperationen könnne logische Ausdrücke zusammengesetzt werden? a) Logische Ausdrücke sind Ausdrücke und Methoden, deren Ergebnis vom Datentyp boolean ist, z.b. x==7; x<=6; true; wasservorhanden(). b) Name Gleichheit Ungleichheit größer/kleiner größer/kleiner gleich Term A==B A!=B A>B, A<B A>=B, A<=B c) Name Term wahr wenn Und L && M L und M wahr sind Oder L M L oder M oder beide wahr Nicht!L L falsch ist.

18. a) Wozu sind switch-case-anweisungen nützlich? b) Erkläre an einem aussagekräftigem Beispiel, wie eine switch-case-anweisung aufgebaut ist und erläutere ihre Bestandteile a) switch-case-anweisungen werden beim Fallunterscheidungen mit vielen unterschiedlichen Fällen verwendet. b) Beispiel: Noten in ein Prädikat umwandeln 1 switch ( note ) { 2 case 1 : ntext = " sehr gut " ; break ; 3... // andere F a e l l e h i e r a u s g e l a s s e n 4 case 6 : ntext = " ungenuegend " ; break ; 5 d e f a u l t : ntext = " Fehler " ; break ; Es sind beliebig viele case-klauseln erlaubt. break sorgt dafür, dass nicht(!) die nächste case- Klausel bearbeitet, sondern ans Ende der switch- Anweisung gesprungen wird. Die default-klausel ist optional und sammelt alle Fälle, die vorher nicht aufgeführt sind. 19. a) Wie lautet die allgemeine Syntax für eine Bedingte Wiederholung in Java? b) Gib ein aussagekräftiges Beispiel für eine Bedingte Wiederholung an. a) 1 while (< l o g i s c h e r Ausdruck >) { 2 Anweisungen 3 } b) 1 // Quadratzahlen ausgeben 2 i =1; 3 while ( i <11) { 4 System. out. p r i n t l n ( i +" hoch 2 = "+( i i ) ) ; 5 i=i +1; 20. Gib ein aussagekräftiges Beispiel für eine Wiederholung mittels for-schleife und erkläre die einzelnen Bestandteile. 1 // Quadratzahlen ausgeben 2 f o r ( i n t i =1; i <11; i=i +1) { 3 System. out. p r i n t l n ( i +" hoch 2 = "+( i i ) ) ; 4 } int i = 1: lokale Zählvariable wird deklariert und ihr Startwert festlegt. i<11: Bedingung, die Zutreffen muss, damit die Scheife betreten wird. i=i+1: Festlegung des Wertes für den nächsten Durchlauf.

Grundwissen Informatik JS 10 Arrays 21. Was versteht man unter Arrays, wie lauten die dazugehörigen Fachbegriffe? Gib ein typisches Beispiel für die Verwendung von Array an. 13. Juli 2018 Arrays benutzt man um Attribute zu einem Paket mit nummerierten Zellen zusammenzufassen. Die Anzahl der Zellen hießt Länge des Arrays. Die Nummer einer Zelle wird auch Index genannt. Die erste Zelle besitzt in Java den Index 0. Z.B. kann man die Schüler einer Klasse zu einem Array Schuelerliste zusammfassen, der die Namen enthält. 22. Gib mit Hilfe eines Beispiels an, wie Arrays in Java implementiert werden (zwei Möglichkeiten). Langform bei unbekannter oder wählbarer Länge 1 p r i v a t e double [ ] z e i t e n ; 2 z e i t e n = new double [ 8 ] ; 3 z e i t e n [ 0 ] = 1 3. 1 ; 4... Kurzform bei bekannten Daten und bekannter Länge 1 p r i v a t e double [ ] z e i t e n = { 1 0. 1, 1 1. 1, 1 2. 3, 1 2. 4, 1 2. 6, 1 3. 0, 1 3. 5, 1 5. 7 } ; 23. Gib mit Hilfe eines Beispiels an, wie Daten, die in einem Array gespeichert sind, ausgegeben werden können. 1 f o r ( i n t i =0 ; i <z e i t e n. l e n g t h ; i=i +1 ) { 2 System. out. p r i n t l n (" Platz "+ ( i +1) +": "+ z e i t e n [ i ] +"s ") ; 3 }