Öffne das BlueJ-Projekt „Ampel Vorlage“ und öffne die ... · Informatik 10 –4. Modellieren...

of 19/19
Informatik 10 – 4. Modellieren und Diagrammarten Öffne das BlueJ-Projekt „Ampel_Vorlage“ und öffne die Klasse AMPEL . a) Erzeuge ein Objekt von AMPEL und mach dich mithilfe des Objektinspektors und dem Quelltext über die Funktionsweise kundig. b) Beschreibe in Worten, welche Objekte beim Ausführen der Methode ausschalten() beteiligt sind und wie sie miteinander kommunizieren. Das aktuelle Objekt der Klasse AMPEL gibt an die Objekte gruen, gelb und rot der Klasse LAMPE die Botschaft, die Methode aus() aufzurufen. 1 Übung 1 – Ampel
  • date post

    04-Nov-2019
  • Category

    Documents

  • view

    1
  • download

    0

Embed Size (px)

Transcript of Öffne das BlueJ-Projekt „Ampel Vorlage“ und öffne die ... · Informatik 10 –4. Modellieren...

  • Informatik10– 4.ModellierenundDiagrammarten

    ÖffnedasBlueJ-Projekt„Ampel_Vorlage“undöffnedieKlasseAMPEL.a)ErzeugeeinObjektvonAMPELundmachdichmithilfedesObjektinspektorsunddemQuelltextüberdieFunktionsweisekundig.b)BeschreibeinWorten,welcheObjektebeimAusführenderMethodeausschalten()beteiligtsindundwiesiemiteinanderkommunizieren.

    DasaktuelleObjektderKlasseAMPELgibtandieObjektegruen,gelbundrotderKlasseLAMPEdieBotschaft,dieMethodeaus()aufzurufen.

    1

    Übung1– Ampel

  • Informatik10– 4.ModellierenundDiagrammarten

    c)ImplementierediefehlendenMethoden,sodasseineeinfacheSimulationeinerAmpelschaltungentsteht.Überlege,wiedudieFunktionsweisederMethodenbeschreibenkönntestDieMethodengruenSetzen(),gelbSetzen(),rotSetzen()undrotGelbSetzen()arbeitenähnlichwiedieMethodeausschalten().ZurBeschreibungeignetsichjeweilseinSequenzdiagramm,damehrereObjektemiteinanderkommunizieren.

    BeiderMethodeweiterschalten()findetkeineKommunikationzwischenverschiedenenObjektenstatt.ZurBeschreibungeignetsicheinStruktogrammodereinZustandsdiagramm.

    2

    Übung1– Ampel

  • Informatik10– 4.ModellierenundDiagrammarten

    ErstelleeinSequenzdiagrammfürdieMethoderotSetzen().

    3

    Übung2– Ampel

  • Informatik10– 4.ModellierenundDiagrammarten

    SequenzdiagrammfürdieMethoderotSetzen().

    4

    Übung2– AmpelLösung

  • Informatik10– 4.ModellierenundDiagrammarten

    SequenzdiagrammfürdieMethoderotSetzen().

    erstelltmitwebsequencediagrams.com

    Quelltext:

    5

    Übung2– AmpelLösung

    title rotSetzen()user->+ampel1 : rotSetzen()ampel1->+gruen: aus()gruen-->-ampel1:ampel1->+gelb: aus()gelb-->-ampel1:ampel1->+rot: an()rot-->-ampel1:ampel1-->-user:

  • Informatik10– 4.ModellierenundDiagrammarten

    DieKlasseSpielautomaterzeugt(ähnlichwiedieKlasseAmpel)dreiLampen

    lampe1(links),lampe2(Mitte)undlampe3(rechts)derKlasseLAMPE.

    DiePositiondesSpielautomatenistfestgelegtdurchdiePositionvonlampe1.

    DiePositioneinereinzelnenLampeistfestgelegtdurchdieKoordinatenderlinken

    oberenEcke.InderZeichnungistalsodiePositiongleich(0,0).

    (x-Achsenachrechts,y-Achsenachunten)

    6

    Übung3– Spielautomat

    public class Spielautomat {int positionX, positionY;LAMPE lampe1, lampe2, lampe3;

    public Spielautomat(){ lampe1= new LAMPE();lampe2 = new LAMPE();lampe3 = new LAMPE();

    farbmusterSetzen("rot","blau","gelb");neuePosition(0,0);

    }

    public void farbmusterSetzen(String farbe1, String farbe2, String farbe3){

    lampe1.FarbeSetzen(farbe1);lampe2.FarbeSetzen(farbe2);lampe3.FarbeSetzen(farbe3);

    }

    public void neuePosition( int xNeu, int yNeu){positionX = xNeu;positionY = yNeu;lampe1.PositionSetzen(positionX,positionY);lampe2.PositionSetzen(positionX+1,positionY);lampe3.PositionSetzen(positionX+2,positionY);

    } }

  • Informatik10– 4.ModellierenundDiagrammarten 7

    Übung3– SpielautomatLösung

    a)ZeichneeinSequenzdiagrammvons1.neuePosition(2,1).(s1isteinObjektderKlasseSpielautomat)

  • Informatik10– 4.ModellierenundDiagrammarten 8

    Übung3– Spielautomat

    b)DieKlasseSpielhalleenthältzweiReferenzattributespA1undspA2derKlasseSpielautomat.ImKonstruktorderKlassewerdenzweiSpielautomaten(Farbmusterrot-blau-gelb)wieinderZeichnungerzeugt.IneinerMethodewerdendieLampenallerSpielautomatenaufdieFarbeschwarzgesetzt.SchreibedenQuelltextderKlasseSpielhalle.

  • Informatik10– 4.ModellierenundDiagrammarten 9

    Übung3– SpielautomatLösung

    b)public class Spielhalle {

    Spielautomat spA1, spA2;public Spielhalle(){spA1 = new Spielautomat();spA1.neuePosition(1,1);

    spA2 = new Spielautomat();spA2. neuePosition (-4,-2);

    }

    public void reset(){spA1.farbmusterSetzen("schwarz", "schwarz","schwarz");spA2.farbmusterSetzen("schwarz", "schwarz","schwarz");

    }}

  • Informatik10– 4.ModellierenundDiagrammarten

    DieMethodeausschalten()solldieAmpelnurausderAmpelphase„gelb“indenZustand„aus“überführen.NurausdemZustand„aus“solldieMethodeeinschalten()dieAmpelwiederindenZustand„ein“überführen.

    ErgänzedasZustandsdiagrammunddieImplementierung.

    10

    Übung4– AmpelZustandsdiagramm

  • Informatik10– 4.ModellierenundDiagrammarten 11

    Übung4– AmpelZustandsdiagrammLösung

  • Informatik10– 4.ModellierenundDiagrammarten 12

    Übung5 – Zustandsdiagramm,Stoppuhr

    ZumModelliereneinerStoppuhrverwendetmaneinZustandsdiagrammmitdenZuständen„Bereit“,„Zeitmessungläuft“und„Zeitangehalten“.DrücktmanimStartzustand„Bereit“dieTaste„StartStopp“,startetdieZeitmessungunddieAnzeigewirdaktualisiert.DrücktmanimZustand„Zeitmessungläuft“dieTaste„StartStopp“,wirddieZeitmessungangehaltenunddieAnzeigeaktualisiert.DrücktmandieTaste„StartStopp“erneut,läuftdieZeitmessungweiterunddieAnzeigewirdaktualisiert.DieTaste„Reset“löstaufderUhrdieAnzeige„reset“ausundsetztsieindenStartzustand.WährendderZeitmessungkannmanauchdieTaste„Zwischenzeit“betätigen.DiesaktualisiertdieAnzeige.

    ZeichnedasZustandsdiagramm.

  • Informatik10– 4.ModellierenundDiagrammarten 13

    Übung5 – Zustandsdiagramm,StoppuhrLösung

  • Informatik10– 4.ModellierenundDiagrammarten 14

    Übung6 – Zustandsdiagramm,SpülmaschineDieSpülmaschineistzuBeginnimZustand"StandBy".

    NachWähleneinesProgrammsistsieimZustand"Programmgewählt".

    DurchDrückenderTasteStartwechseltsienurdannindenZustand"InBetrieb",wenndie

    Türgeschlossenist.IndiesemFallwirdderWasserzulaufgeöffnetunddasProgramm

    gestartet.

    ÖffnetmanwährenddeslaufendenProgrammsdieTür,wirdderWasserzulaufgestoppt

    unddasProgrammangehalten.DieMaschineistdannimZustand"Pause" unddurch

    DrückenderTaste"Abbrechen"gelangtmanindenZustand"StandBy".

    DasAbbrechenistauchvomZustand"Programmgewählt"möglich.

    SchließtmanimZustand"Pause"wiederdieTür,wirddasProgrammfortgesetzt.

    ÖffnetmandieTürnachBeendendesProgramms,wechseltdieMaschineindenZustand

    "StandBy".

    ZeichneeinZustandsdiagramm.

  • Informatik10– 4.ModellierenundDiagrammarten 15

    Übung6– Zustandsdiagramm,SpülmaschineLösung

  • Informatik10– 4.ModellierenundDiagrammarten 16

    Übung7 – Zustandsdiagramm,Kühlschrank

    EineinfacherKühlschrankbesitzteinenEin-Aus-Schalter,derjederzeitbetaẗigtwerden

    kann.ImeingeschaltetenZustandkanneraufdieKühlstufen1,2oder3eingestellt

    werden.DafürgibtesdieTasten▲zumHochschaltenund▼zumHerunterschaltender

    Kühlstufe.NachdemEinschaltenbefindetsichderKühlschrankimmeraufKühlstufe2.

    a)ModellieredenbeschriebenenKühlschrankmithilfeeinesZustandsdiagramms.

    b)ErstelleeineZustandsübergangstabelle:

    Zustand\ auslösendeAktion einschalten hochschalten herunterschalten

    aus

    1

    2

    3

  • Informatik10– 4.ModellierenundDiagrammarten 17

    Übung7 – Zustandsdiagramm,KühlschrankLösung

    Jahrgangsstufe 10 125

    4.2.1.2 Lösungsvorschlag zu Aufgabe 1a)

    b)

    auslösendeAktion

    Zustand

    einausschalten hochschalten herunterschalten

    aus 2 aus aus

    1 aus 2 1

    2 aus 3 1

    3 aus 3 2

    c) public class Kuehlschrank { private int stufe; private boolean eingeschaltet;

    public Kuehlschrank() { eingeschaltet = false; }

    public void zustandAusgeben() { if (eingeschaltet) { System.out.println("Der Kühlschrank ist eingeschaltet, die eingestellte Kühlstufe ist " + stufe + "."); } else { System.out.println("Der Kühlschrank ist ausgeschaltet."); } }

    public void hochschalten() { if (stufe < 3) { stufe = stufe + 1; } }

    hoch-/herunterschalten

    herunterschalten

    hochschalten

    aus 2

    1

    einausschalten

    einausschalten

    herunterschalten

    hochschalteneina

    usschalten

    3

    einausschalten hochschalten

    herun

    terschalten

  • Informatik10– 4.ModellierenundDiagrammarten 18

    Übung7 – Zustandsdiagramm,KühlschrankLösung

    Zustand\ auslösendeAktion einschalten hochschalten herunterschalten

    aus 2 aus aus

    1 aus 2 1

    2 aus 3 1

    3 aus 3 2

    Jahrgangsstufe 10 125

    4.2.1.2 Lösungsvorschlag zu Aufgabe 1a)

    b)

    auslösendeAktion

    Zustand

    einausschalten hochschalten herunterschalten

    aus 2 aus aus

    1 aus 2 1

    2 aus 3 1

    3 aus 3 2

    c) public class Kuehlschrank { private int stufe; private boolean eingeschaltet;

    public Kuehlschrank() { eingeschaltet = false; }

    public void zustandAusgeben() { if (eingeschaltet) { System.out.println("Der Kühlschrank ist eingeschaltet, die eingestellte Kühlstufe ist " + stufe + "."); } else { System.out.println("Der Kühlschrank ist ausgeschaltet."); } }

    public void hochschalten() { if (stufe < 3) { stufe = stufe + 1; } }

    hoch-/herunterschalten

    herunterschalten

    hochschalten

    aus 2

    1

    einausschalten

    einausschalten

    herunterschalten

    hochschalteneina

    usschalten

    3

    einausschalten hochschalten

    herun

    terschalten

  • Informatik10– 4.ModellierenundDiagrammarten 19

    Übung7 – Zustandsdiagramm,Kühlschrank(*)

    c)

    ImplementieredenKühlschrankdurchDefinitioneinergeeignetenKlasse,wobeidie

    möglichenZustan̈dedesKühlschranksdurchdieAttributestufeundeingeschaltetunddie

    auslösendenAktionendurchdieMethodenhochschalten(),herunterschalten()und

    einausschalten()realisiertwerdensollen.

    TestedeineImplementierung,indemdudieZustandsübergan̈genachunterschiedlichen

    MethodenaufrufenmitdemZustandsdiagrammvergleichst.DefinieredazueineMethode

    zustandAusgeben(),diedenZustanddesKühlschranksaufdemBildschirmausgibt.

    Vgl.BlueJProjektkuehlschrank_1c