Informatik -- Lehrveranstaltung vom 15.05.2024
(EN google-translate)
(PL google-translate)
Themen
|
1. Besprechung der Übungen 6.2 und 6.4
#include <iostream> #include <math.h> using namespace std; int main(void) { int arr[] = {3,1,7,2,8,3,6,5,9,1}; int anzahl = sizeof(arr)/sizeof(int); int ziel[anzahl]; for(int i=0;i<anzahl;i++) { //Suche das kleinste nicht durchgestrichene Element //aus arr heraus: int y=-1; //Durchstreichen entspricht auf -1 setzen int index_arr=0; //wo wir das aktuell kleinste Element gefunden haben. //int index_ziel=0; //wo wir das Gefundene platzieren in ziel. => i for(int k=0;k<anzahl;k++) { //"Das Array-Element, auf das ich gerade schaue ist kleiner //als das zuletzt gefundene, oder es wurde noch keines gemerkt UND //das Array-Element, auf das ich gerade schaue ist nicht durchgestrichen." if( (arr[k]<y || y==-1) && arr[k]!=-1) { y = arr[k]; index_arr=k; } } //Nach Durchlauf der inneren Schleife steht in y das kleinste nicht durchgestrichene //Element. ziel[i] = arr[index_arr]; //merken arr[index_arr] = -1; //durchstreichen } for(int i=0;i<anzahl;i++) { cout<<ziel[i]<<","; } cout<<endl; return 0; }
Code 0-1: Musterlösung 6.2
#include <iostream> #include <math.h> using namespace std; void sortieren(int ziel[],int arr[], int anzahl) { for(int i=0;i<anzahl;i++) { int y=-1; int index_arr=0; for(int k=0;k<anzahl;k++) { if( (arr[k]<y || y==-1) && arr[k]!=-1) { y = arr[k]; index_arr=k; } } ziel[i] = arr[index_arr]; //merken arr[index_arr] = -1; //durchstreichen } } int main(void) { int arr[] = {3,1,7,2,8,3,6,5,9,1}; int anzahl = sizeof(arr)/sizeof(int); int ziel[anzahl]; sortieren(ziel,arr,anzahl); for(int i=0;i<anzahl;i++) { cout<<ziel[i]<<","; } cout<<endl; return 0; }
Code 0-2: Musterlösung 6.2 mit Funktion
Übung 6.4
public class Widerstand { int R; public Widerstand(int r) { R=r; } public void draw(float x, float y) { fill(127); rect(x,y,200,60); } } Widerstand R1,R2,R3; public void setup() { R1 = new Widerstand(10000); R2 = new Widerstand(470); R3 = new Widerstand(220); println("R1="+R1.R+" R2="+R2.R+" R3="+R3.R); size(640,480); } public void draw() { background(255); R1.draw(20,20); R2.draw(20,120); R3.draw(20,220); }
Code 0-3: Projektstand 1: Widerstände als graue Kästen sichtbar.
public class Widerstand { private int[][] code = { {0,0,0}, //0 schwarz {238,59,59}, //1 braun {255,0,0}, //2 rot {255,165,0}, //3 orange {255,255,0}, //4 gelb {0,255,0}, //5 grün {0,0,255}, //6 blau {255,0,255}, //7 lila {80,80,80}, //8 grau {180,180,180} //9 weiss }; int R; public Widerstand(int r) { R=r; } public void draw(float x, float y) { fill(127); rect(x,y,200,60); //Streifen zeichnen: int s1=0,s2=0,s3=0; int RR=R; while(RR>=100) { RR/=10; s3++; } s2=RR%10; s1=RR/10; fill(code[s1][0],code[s1][1],code[s1][2]); rect(x+50,y,20,60); fill(code[s2][0],code[s2][1],code[s2][2]); rect(x+100,y,20,60); fill(code[s3][0],code[s3][1],code[s3][2]); rect(x+150,y,20,60); } } Widerstand R1,R2,R3; public void setup() { R1 = new Widerstand(10000); R2 = new Widerstand(470); R3 = new Widerstand(220); println("R1="+R1.R+" R2="+R2.R+" R3="+R3.R); size(640,480); } public void draw() { background(255); R1.draw(20,20); R2.draw(20,120); R3.draw(20,220); }
Code 0-4: Musterlösung 6.4

Bild 0-1: Screenshot zu obigem Programm.
2. Das UML Klassendiagramm

3. Vererbung mit Java

Bild 0-2: UML-Klassendiagramm zur Verdeutlichung der Vererbungsstruktur bei den Klassen Vektor und VektorB.