Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Ähnliche Dokumente
3.3. Rekursive Datentypen

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

3. Übungsblatt zu Algorithmen I im SoSe 2017

Einführung in die Informatik

Rückgabewerte von Methoden

1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Verkettete Datenstrukturen: Listen

II.3.1 Rekursive Algorithmen - 1 -

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag

Informatik Praktikum 5

Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen

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

Geordnete Binärbäume

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Einfache Sortierverfahren in Java, 1. Version

5.3 Doppelt verkettete Listen

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java

Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018

Einführung in die Programmierung

Informatik Abitur Bayern 2017 / II - Lösung

M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: Ausdruck des vorab bekannt gemachten Quelltextes

Basispruefung Herbst 2016/ Einführung in die Programmierung

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 132

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Aufbau eines "B-Baums" der Ordnung 3, Teil 1

Klausur Programmieren 2 WS2016/17

Studentische Lösung zum Übungsblatt Nr. 7

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Lösung Arztpraxis. Die Klasse PATIENT: Anmerkungen: class PATIENT{ String name; String krankheit; PATIENT(String n){ name = n; }

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am

Von der Aufgabe zum Code. Mario Bodemann

1 of :17:14

Objektorientierte Programmierung

Übung 4: Die generische Klasse AvlBaum in Java 1

Softwareentwicklung II (IB) Blatt 3. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Einfache Sortierverfahren in Java, 2. Version

Tutoraufgabe 1 (2 3 4 Bäume):

Wenn, wenn und noch mal wenn

Institut für Informatik

Software Design Patterns Zusammensetzung. Daniel Gerber

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Einführung in die Programmierung für NF. Arrays

Programmiertechnik Übungen zu Klassen & -methoden

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Anwendungsbeispiel MinHeap

ALP II Dynamische Datenmengen

Lambda Expressions in Java 8

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Algorithmen und Datenstrukturen

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Beuth Hochschule Hash-Tabellen WS17/18, S. 1

13. Dynamische Datenstrukturen

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

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Klausur Programmieren 2 SS 2016

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

- EINSTIEG IN JAVA - (1/5) Datum:

Felder. M. Jakob. 28. April Gymnasium Pegnitz

M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG:

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Algorithmen und Programmierung III

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Ausnahmebehandlung in Java

16. Dynamische Datenstrukturen

Lo sungen Struktogramme

Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

Abiturprüfung Informatik, Grundkurs

II.4.1 Unterklassen und Vererbung - 1 -

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Beispielprüfung CuP WS 2015/2016

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

II.4.1 Unterklassen und Vererbung - 1 -

Probeklausur Informatik 2 Sommersemester 2013

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Algorithmen und Datenstrukturen

Objektorientierte Programmierung OOP Programmieren mit Java

Schnittstellen, Stack und Queue

Transkript:

Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss.

Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern erhält. UML-Diagramm Benutzerverwaltung - benutzerliste: List<Benutzer> + zeigeinhalte() + sucheperson(pgesuchtername: String) + hintenhinzufügen(pneuerbenutzer: Benutzer) + vornehinzufügen(pneuerbenutzer: Benutzer) + fuegevorpersonxein(...) + letzenbenutzerloeschen() + erstenbenutzerloeschen() + löscheperson(pgesuchtername: String) + aktualisierebenutzer(pneuername: String): void + pruefereihenfolge(): boolean Benutzer - name: String - vorname: String - wohntort: String Liste erzeugen, in denen Benutzer gespeichert werden können private List<Benutzer> benutzerliste = new List<Benutzer>() ; Liste komplett durchlaufen: public void zeigeinhalte() //geht an den Anfang der Liste while (benutzerliste.hasaccess()) // solange noch Elemente vorhanden sind Benutzer aktuellerbenutzer= ( benutzerliste.getcontent()) //hole den aktuellen Benutzer System.our.println(aktuellerBenutzer.getName(); // gibt den Namen des Benutzers aus // gehe zum nächsten Benutzer

Liste bis zu einer bestimmten Person durchlaufen (zwei Varianten) Hier: Liste bis zu der Person mit dem Nachnamen "Müller" durchlaufen und alle Daten der Person ausgeben public void sucheperson(string pgesuchtername) //geht an den Anfang der Liste while (benutzerliste.hasaccess() // solange noch Elemente vorhanden sind Benutzer aktuellerbenutzer= ( benutzerliste.getcontent()) //hole den aktuellen Benutzer if(aktuellerbenutzer.getname() == pgesuchtername) // hat der aktuelle Benutzer den gesuchten Namen? System.our.println(aktuellerBenutzer.getVorname()) //gibt den Vornamen des gesuchten Benutzers aus System.our.println(aktuellerBenutzer.getName(); //gibt den Namen des gesuchten Benutzers aus System.our.println(aktuellerBenutzer.getWohnort()) // gehe zum nächsten Benutzer oder etwas eleganter: public void sucheperson(string pgesuchtername) while (benutzerliste.hasaccess() && ( benutzerliste.getcontent().getname()!= pgesuchtername) if(benutzerliste.hasaccess()) Benutzer gefundenerbenutzer= ( benutzerliste.getcontent()) System.our.println(gefundenerBenutzer.getVorname()) System.our.println(gefundenerBenutzer.getName(); System.our.println(gefundenerBenutzer.getWohnort())

Hinzufügen Am Ende hinzufügen public void hintenhinzufügen(benutzer pneuerbenutzer) benutzerliste. ; //Hier passende Methode der Benutzerliste aufrufen Vorne hinzufügen public void vornehinzufügen(benutzer pneuerbenutzer) An eine bestimmte Stelle einfügen Z.B. Füge die neue Person vor die Person ein, die den Namen Hans hat. Falls es keine Person mit den Namen Hans gibt, so füge die neue Person ganz am Ende ein. public void fuegevorpersonxein(string pneueperson) while (benutzerliste.hasaccess() && (benutzerliste.getcontent().getname()!="hans") solange noch nicht am Ende angekommen if (benutzerliste.hasaccess()) //es gibt eine Person mit dem Namen Hans, vor die eingefügt werden kann benutzerliste.insert(pneueperson); //füge Person vor dem aktuellen Objekt (hier Hans) ein. else benutzerliste.append(pneueperson); //füge ganz am Ende ein und solange der aktuelle Benutzer nicht Hans heißt

Löschen Am Ende löschen public void letzenbenutzerloeschen(benutzer pneuerbenutzer) Vorne Löschen public void erstenbenutzerloeschen(benutzer pneuerbenutzer) Ein bestimmtes Objekt löschen Hier: Löschen des Benutzers mit dem Namen pgesuchtername public void löscheperson (String pgesuchtername) while (benutzerliste.hasaccess() Benutzer aktuellerbenutzer= ( benutzerliste.getcontent()) if(aktuellerbenutzer.getname() == pgesuchtername) //hat der aktuelle Benutzer den gesuchten Namen? benutzerliste.remove(); //löschen des Benutzers oder eleganter: public void löscheperson(string pgesuchtername) while (benutzerliste.hasaccess() && ( benutzerliste.getcontent()).getname()!= pgesuchtername) benutzerliste.remove(); solange noch nicht am Ende angekommen und solange der aktuelle Benutzer nicht den gesuchten Namen hat

Aktualisieren public void aktualisierebenutzer(string paltername, String pneuername) //zum gesuchten Benutzer laufen while(benutzerliste.hasaccess() && benutzerliste.getcontent().getname()!=paltername) if(benutzerliste.hasaccess()) // gibt es den gesuchten Benutzer? benutzerliste.getcontent().setname(pneuername); Benutzer gespeicherterbenutzer = benutzerliste.getcontent(); benutzerliste.remove(); //Person wieder passend in die Liste einfügen while(benutzerliste.hasaccess() && benutzerliste.getcontent().getname()<gespeicherterbenutzer.getname()) if (benutzerliste.hasaccess()) benutzerliste.insert(gespeicherterbenutzer else benutzerliste.append(pneueperson); //if Abfrage beenden //Methode beenden

Reihenfolge prüfen public boolean pruefereihenfolge() Benutzer vorherigerbenutzer=benutzerliste.getcontent(); while(benutzerliste.hasaccess()) if(vorherigerbenutzer.getname()<benutzerliste.getcontent().getname()) //stimmt Reihenfolge? //Reihenfolge stimmt vorherigerbenutzer= benutzerliste.getcontent(); else return false; return true;