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
30_Informatik3/02_UML/02_UML_Klassendiagramm
3. Vererbung mit Java
Bild 0-2: UML-Klassendiagramm zur Verdeutlichung der Vererbungsstruktur bei den Klassen Vektor und VektorB.