You are not logged in.

  • Login

ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

1

Thursday, April 29th 2004, 6:34pm

Help, Informatik (Nassi - Shneidermann Diagram)

Also ich hab folgende Präsentation als Aufgabe bekommen (Nur zur Information, bin BWL Student)

Quoted

Ihr Personal Chef interessiert sich für
- die beiden fleissigsten Mitarbeiter (meisste ProjektStunden)
- die beiden faulsten Mitarbeiter
- sowie den Median der Stundenleistung der Mitarbeiter

Entwerfen Sie Alghorithmen in Nassi Schneiderman Diagram Notation, welche ihnen diese Auswertung auf Basis des Datenbankschemas aus Übungsblatt berechnet.

Median :
Gegeben ist die sortierte Folge a[0], a[1], ... a[n]. Der Median befindet sich an der Position a [a/n].

Selbst wenn ein Mitarbeiter noch keine Stunden hat, soll sein Name ausgegeben werden. Das Einstellungsdatum wird "fairerweise" nicht berücksichtigt. Konzentrieren sie sich beim Entwurf auf mögliche Fehlerquellen.



So, soweit die Angabe vom Arbeitsblatt

Dann noch das Datenbankschema (Fett sind Primär, Kursiv Fremdschlüssel)

Quoted

Mitarbeiter ( MNr , Vorname,Nachname,Geburtsdatum,Einstellungsdatum,Gehalt)
OrganisationsEinheit ( OENr , Bezeichnung, OELeiter )
Projekt ( PNr , Bezeichnung, Beginn, Ende, PLeiter )
Arbeitsleistung ( MNr, PNr , Tag , ProjektStunden)


[URL=http://www-itec.uni-klu.ac.at/~kpeter/InfoII/5/Gr11/Info%20II%20%9ab%205,%20Aufg.%20d).doc]BEISPIEL[/URL]
So soll das dann Formmäßig am ende aussehen...
Hier wäre ich für eventuelle Hilfe sehr dankbar ;)

This post has been edited 6 times, last edit by "ZXK_Nimo" (Apr 29th 2004, 7:59pm)


2

Thursday, April 29th 2004, 7:16pm

Median is doch easy, alle Stundenleistungen nach grösse sortieren und den Wert nehmen, der in der Mitte steht, ich hab jetzt keine Ahnung, was das für Sprachen sind, die ihr benutzt, aber das ist mit das einfachste, was es gibt ;)

3

Thursday, April 29th 2004, 7:21pm

kenn mich da auch nicht gut aus, aber bei ner Datenbank müsstest du doch für jeden die Projektstunden zusammenzählen lassen können, dann sortieren und dann die obersten und untersten zwei nehmen.

und noch zum Median, bei ner geraden Anzahl an Werten nimmt man den Mittelwert der beiden mittleren Zahlen

ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

4

Thursday, April 29th 2004, 7:39pm

Wir benutzen VB,
Und einfach is immer son relativer Begriff ;)

Und es geht ja net um primär die Datenbank (das war von 4 Wochen das thema ), es geht wie beschrieben um das Nassi - Shneidermann diagram.
Also keine SQL abfragen im Access oder so. Ich brauch halt irgendeinen Befehl für VB der es mir ermöglich die zwei größten Werte aus ner Reihe von Variablen anzuzeigen anzuzeigen

Versteh sowieso net warum wir als BWL Studenten in der Theorie können müssen (praxis machen wir ja keine mit VB).... Und sowas nennen die Informatik für Betriebswirte....

This post has been edited 1 times, last edit by "ZXK_Nimo" (Apr 29th 2004, 7:42pm)


5

Thursday, April 29th 2004, 7:50pm

Quoted

Original von ZXK_Nimo
Also keine SQL abfragen im Access oder so. Ich brauch halt irgendeinen Befehl für VB der es mir ermöglich die zwei größten Werte aus ner Reihe von Variablen anzuzeigen anzuzeigen


Such das Maximum, gib es aus, lösch den Eintrag (gegebenenfalls in einer Kopie), such wieder das Maximum, gib es aus. Damit hast du die zwei grössten Werte.

Quoted

Und sowas nennen die Informatik für Betriebswirte....


Weil sie sich nie trauen würden, so etwas Informatikern anzudrehen. :D

ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

6

Thursday, April 29th 2004, 7:57pm

Quoted

Such das Maximum, gib es aus, lösch den Eintrag (gegebenenfalls in einer Kopie), such wieder das Maximum, gib es aus. Damit hast du die zwei grössten Werte.


Also, es geht hier nicht darum ob am Ende Herr Hinz und Kunz rauskommt ;)

Ich soll hier nicht das theoretische Ergebnis darstellen was dann tatsächlich rauskommen würde. Ich soll mit Hilfe eines Nasi Schneider Diagrams darstellenm, wie ich das mit Visual Basic lösen kann.

[URL=http://www-itec.uni-klu.ac.at/~kpeter/InfoII/5/Gr11/Info%20II%20%9ab%205,%20Aufg.%20d).doc]BEISPIEL[/URL]
So in dieser Form soll ich das machen.

This post has been edited 5 times, last edit by "ZXK_Nimo" (Apr 29th 2004, 8:36pm)


7

Thursday, April 29th 2004, 8:15pm

Quoted

Original von ZXK_Nimo
Ich soll mit Hilfe eines Nasi Schneider Diagrams darstellenm, wie ich das mit Visual Basic lösen kann.


Habe mal gegoogelt, wir hatten Nassi Schneidermans Diagramme unter dem Begriff Struktogramme.



Man liest das ganze grundsätzlich von oben nach unten.

Der while-Block ist eine Wiederholung der untergeordneten Anweisungen, solange die Bedingung "a > 0 und b > 0" gilt und umfasst die drei ersten der fünf Zeilen. Erst wenn die Bedingung nicht erfüllt wird, geht es darunter weiter (allerdings kann die Anzahl der Durchläufe auch 0 sein, wenn die Bedingung gleich am Anfang nicht erfüllt war).

Dort hineingeschachtelt ist eine Bedingung "a >b ?", die entweder erfüllt ist oder nicht. Wenn sie erfüllt wird, wird alles unter dem "ja" ausgeführt, wenn nicht, alles unter dem "nein", in unserem Fall jeweils die dritte Zeile.

Zeile vier und fünf sind dann nichts neues.

EDIT: Die Datei unter deinem Link enthält bei mir nur eine Textzeile, ist aber 22k gross - das Bild ist wohl verlorengegangen.

This post has been edited 4 times, last edit by "Sheep" (Apr 29th 2004, 8:35pm)


ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

8

Thursday, April 29th 2004, 8:37pm

Bei mir geht der Link?

Naja is ja auch egal, dort is im prinzip genau das was du auch abgebildet hast. Was das Nassi Shneider Diagram theoretisch is weiss ich ja, aber nicht wie ichs in dem konkreten Beispiel anwende

9

Thursday, April 29th 2004, 9:04pm

Quoted

Original von ZXK_NimoWas das Nassi Shneider Diagram theoretisch is weiss ich ja, aber nicht wie ichs in dem konkreten Beispiel anwende


Fleissigste Mitarbeiter...


Maximum := 0

Grosse Schleife, Mitarbeiternummer 1 bis sowieso

darin einen Vergleich "derzeitiges Maximum < Arbeitsstunden des aktuellen Mitarbeiters?"

ja => Maximum ändern, Namensvariable ändern
nein => nichts tun


Maximum := 0

Grosse Schleife, Mitarbeiternummer 1 bis sowieso

darin einen Vergleich "derzeitiges Maximum < Arbeitsstunden des aktuellen Mitarbeiters UND Mitarbeiter ist nicht Mr. Fleiss vom ersten Vergleich"

ja => Maximum ändern, Namensvariable 2 ändern
nein => nichts tun


beide Namen ausgeben


faulste Mitarbeiter: völlig analog, Minimum statt Maximum, ">" statt "<"


Die Beschreibung des Medians sagt mir nichts, ich weiss auch nicht mehr aus dem Kopf, ob das ein einfaches Mittel, ein gewichtetes Mittel, die x-Position der Flächenhalbierenden oder etwas ähnliches war.


EDIT: Die zwei Schleifen kann man auch ineinander packen, indem man die Abfrage hinter dem "UND" in einer Unter-Bedingung im "ja"-Zweig packt, dann wird die einzelne neue Schleife etwas grösser, aber das Programm insgesamt kleiner und effektiver.

This post has been edited 1 times, last edit by "Sheep" (Apr 29th 2004, 9:06pm)


GAF_lusche

Professional

Posts: 843

Occupation: AUT

  • Send private message

10

Thursday, April 29th 2004, 9:24pm

wtf issn das für sinnloses zeugs :P

median wird auf 2 verschiedene arten berechnet, je nachdem ob man eine menge ungerader objekte/zahlen betrachtet oder eine menge mit einer gerader zahl an elementen ...

1) wenn n(=anzahl der elemente) ungerade is, dann is der median genau der wert in der mitte

2) wenn n gerade is, dann is der median der wert an stelle n/2 + dem wert an der stelle n/2+1 und das ergebnis halbiert ;)

vorausgesetzt die objekte/zahlen liegen schon der grösse nach geordnet vor ....

bsp. zu 1)

vorliegende menge = 1 5 7 13 89 120 524 (n=7, also ungerade ^^)
dann is der median genau der wert in der mitte, also 13

bsp zu 2)

vorliegende menge = 1 5 7 13 89 120 (n=6, also gerade :P )
dann is der median der wert an stelle n/2(stelle 3) also 7 + dem wert an stelle n/2+1(stelle 4) also 13.
dann das ergebnis 7+13=20 halbieren und wir kriegen als median 10  8)

Revolt

Professional

Posts: 1,411

Occupation: AUT

  • Send private message

11

Thursday, April 29th 2004, 9:44pm

Gibt viele Möglichkeiten das mit min und max zu lösen. k.a. was jetzt schöner, schneller aufgezeichnet is, ob man min/max gleichzeitig in einer schleife berechnet und dann die beiden maxima und minima in eine eigene variable speichert und auf ungleichheit prüft.

Würd eher nach abschluss einer schleife den 1.maximumwert in a[0] tauschen, dann erst ab a[1] abfangen zu überprüfen, dann brauchst das nimmer auf ungleichheit mitm 1.max überprüfen.


Median ist das element in der mitte: also bei n elementen das element an stelle n/2 (gazzahldivision).

Auf lusches beispiele bezogen:
beim array startest ja bei a[0], das heißt in lusches beispiel wären das von a[0] bis a[6] also 6/2 = 3, das heißt a[3] = median.
Bei lusches 2.beisp: wäre das dann 5/2 = 2, also a[2] = median.


EDIT:
Denk aber doch eher, dass laut dieser Angabe der Mittelwert gemeint is und nicht median. Hat meiner meinung nach nur dann einen sinn. Mittelwert der Stundenleistungen aller mitarbeiter.

Berechnung: von a[0]-a[n] zusammenaddieren und durch 2 dividieren. also ganznormale avg-berechnung.


Bis wann brauchst das denn?
Hab heut ka zeit,weil ich morgen 2 Klausuren hab, aber bin eigentlich eh täglich auf da uni, fallst fragen hast und das beisp nicht grad bis morgen brauchst ;).

This post has been edited 2 times, last edit by "Revolt" (Apr 29th 2004, 9:48pm)


12

Thursday, April 29th 2004, 9:56pm

wieso sollte nicht der Median gemeint sein?
Der wird bei uns auch viel lieber verwendet ;)

13

Thursday, April 29th 2004, 10:28pm

Was nützt mir der Median der Leistungen meiner Mitarbeiter, wenn zum Beispiel 70% fast gleichmässig faulenzen und die restlichen 30% schwer schuften - dann bekomme ich einen Median, der die 30% überhaupt nicht berücksichtigt... ?(

Also 12 12 14 15 15 39 40

=> Median 15, Mittelwert 21

Vom Mittelwert habe ich mehr, den könnte ich mit -10% als neues Soll festlegen, aber was bringt mir der Median?

GAF_lusche

Professional

Posts: 843

Occupation: AUT

  • Send private message

14

Thursday, April 29th 2004, 10:45pm

der median is resistent gegenüber statistischen ausreissern :P
wenn die häufigkeitsverteilung symmetrisch is, dann is der mittelwert = median ;)

15

Thursday, April 29th 2004, 11:54pm

Quoted

Original von GAF_lusche
der median is resistent gegenüber statistischen ausreissern :P


Jetzt wo du es sagst, das hatten wir ja auch mal, irgendwann mal. *sichdunkelerinner* :baaa:

ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

16

Friday, April 30th 2004, 1:41am

@ Sheep und alle anderen
Thx, mal gucken ob ichs jetzt schaffe :)

Kleine Frage hab ich aber noch
Wie geb ich das formel an dass er bei der zweiten Schleife den Heini mit den max. Stunden weglassen soll?

Name1 is equal to Mitarbeiter [i] = False

kann man das so angeben? (Name 1 is der gespeicherte Name vom Typen mit dem Maximum)


Muss zum Glück ja erst morgen fertig sein hehe

Zum Median:
Wer behauptet denn dass das auf der Uni gelernte Zeug sinnvoll sein muss... ;) 90% davon kannste eh später eh nie wieder anwenden.

This post has been edited 2 times, last edit by "ZXK_Nimo" (Apr 30th 2004, 9:26am)


17

Friday, April 30th 2004, 4:23pm

Quoted

Original von ZXK_Nimo
Wie geb ich das formel an dass er bei der zweiten Schleife den Heini mit den max. Stunden weglassen soll?

Name1 is equal to Mitarbeiter [i] = False ...

Zum Median:
Wer behauptet denn dass das auf der Uni gelernte Zeug sinnvoll sein muss... ;) 90% davon kannste eh später eh nie wieder anwenden.


Dass es falsch ist, dass zwei Dinge gleich sind, kann man auch so ausdrücken, dass es richtig ist, dass beide unterschiedlich sind.

Also wäre die Bedingung kürzer geschrieben Name1 =! Mitarbeiter, wobei das =! für das von oben nach unten gestrichene = steht.

Vorsicht wegen den Mitarbeitern, sie haben ja sowohl einen Namen als auch eine Stundenzahl. Ich würde garkein Array Mitarbeiter anlegen, sondern zwei Arrays: Mitarbeitername[i] als Strings (Zeichenketten) und Mitarbeiterstunden[i] als Integers (Zahlen). Beim Zuweisen und Vergleichen immer darauf achten, Integer mit Strings zu mixen kommt beim Programmieren nicht so gut.

Schon richtig, dass du einen Grossteil nie brauchen wirst - nur gehst du in erster Linie an die Uni, um zu lernen, wie man methodisch und präzise arbeitet - das Wissen allein veraltet teilweise recht flott.

ZXK_Nimo

Intermediate

  • "ZXK_Nimo" started this thread

Posts: 422

Location: Klagenfurt

Occupation: AUT

  • Send private message

18

Friday, April 30th 2004, 5:21pm

Hab ich eh so gemacht

Ein Array Mitarbeiter [5] (ausgehend von 5 Mitarbeitern, ein Sting

Und ein Matrix-Array Stunden [5,3] Ausgehend von 5 Mitarbeiter und 3 Projekten, das Teil hab ich als Double definiert

Und ich hab ja nix gegen Uni, ich geh gerne hin und lern unnützes Zeug, aber mal ehrlich :
Ich bin angehender Betriebswirt : Wozu brauche ich das theoretische Wissen eines Nassi Shneidermann diagrams? Da ist weder Methodik noch präzision dahinter.
Wenn ich sowas machen will studier ich Informatik oder wähle in zweiten Studienabschnitt Informatik ...

This post has been edited 2 times, last edit by "ZXK_Nimo" (Apr 30th 2004, 5:39pm)


19

Friday, April 30th 2004, 6:44pm

Quoted

Original von ZXK_Nimo
Ich bin angehender Betriebswirt : Wozu brauche ich das theoretische Wissen eines Nassi Shneidermann diagrams?


Du hast später wahrscheinlich in irgendeiner Form mit Informatikern zu tun, da macht sich ein grundlegendes Informatikwissen und ein Einblick in ihre Denkweise nicht schlecht. Wenn du wenigstens ein paar Grundbegriffe und die Denkweise in Ansätzen kennst, kannst du einem Informatiker bessere Anweisungen geben, seine Arbeit besser einschätzen und wirst von ihm auch nicht so schnell vera****.

Wenn es dich tröstet, als Informatiker muss man bei uns auch 4 Semesterwochenstunden Wirtschaft / Recht machen. ;)