Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.018
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Ich hab mir es mal mit dem AutoMapper angeschaut. Das Problem ist wohl, dass die Properties Key und Value im KeyValuePair nicht gesetzt werden können. Sprich, sie besitzen nur einen Getter und keinen Setter. AutoMapper kann daher die Properties wohl nicht setzen. Außerdem würdest du mit deiner Idee kein Dictionary<Guid, PriceValue> bekommen, sondern List<KeyValuePair<Guid, PriceValue>> Das ist was anderes.
  2. Wieso verwendest du AutoMapper dafür? Du kannst auch ganz einfach die ToDictionary()-Methode von LINQ verwenden. var dict = priceValues.ToDictionary( keySelector: x => x.CurrencyId, elementSelector: x => x ); Oder habe ich da was falsch verstanden?
  3. Es gibt nun mal nicht für alles einen vorgefertigten Lösungsweg. Die sind aber essentiell für die Lösung. z.B. ist überhaupt nicht klar, ob die Paletten gedreht oder sogar gestapelt werden können oder ob auch die Last im LKW verteilt werden muss, also z.B. ob schwere Paletten unten liegen und dann leichtere Paletten oben drauf? Davon war bis jetzt nie die Rede und erfordert mehr als hier bekannt war, denn es muss nicht nur ausgerechnet werden, welche Paletten nun dazu führen, dass die Ladung optimal verteilt werden, sondern es müssen ja noch die Positionen der einzelnen Paletten bestimmt werden, wo sie sich dann im LKW befinden. Ich denke auch nicht, dass es hier einen einfachen Rechenweg gibt, sondern hier muss man wohl mit Kombinatorik ran. Sprich, man muss alle Kombinationen durchspielen und überprüfen, was die beste Kombination ist. Ich würde also die Liste der Paletten nehmen und mir die erste Palette schnappen und über ein Interationsverfahren alle Kombinationen mit allen anderen Paletten raussuchen, die die Fläche des LKWs bzw. das Volumen des LKWs, sofern Paletten stapelbar sind, nicht überschreiten, denn das sind die Kandidaten, die in den LKW reinpassen könnten. Nun muss man mit der Liste der Kombinationen rumspielen und schauen, welche der Kombinationen tatsächlich in den LKW passen. Dafür muss dann die Länge, Breite und sofern Stapelbar die Höhe berücksichtigen. Hier steckt der meiste Gehirnschmalz drinnen. Wenn man dann mögliche LKW-Beladungen gefunden hat, wählt man die mit der größten Fläche bzw. mit dem größten Volumen und streicht diese Paletten aus der Gesamtliste und fängt von Vorne an.
  4. Wer googlen muss, ist kein echter ITler.
  5. Der Code ist nicht kompilierfähig, da die Variable cruisefuelgtog nicht deklariert wurde.
  6. Ganz ehrlich? Ich würde das Thema WPF und besonders MVVM weglassen, denn ich denke, dass es wenig Sinn macht, damit zu arbeiten, wie es gedacht war, da die Grundlagen der (objektorientierten) Programmierung eindeutig fehlen. Ich brauche mir da nur den Code der Konsolenanwendung sehen und sehe da sehr viele Probleme. Z.B. das eher nach struktureller Programmierung vorgegangen wurde, anstatt objektorientiert. Im MVVM zu erklären, müsste man wohl damit anfangen, was überhaupt Klassen sind. Wenn es nicht unbedingt eine grafische Oberfläche sein soll, würde ich sie auch lassen, da eben gewisse Kenntnisse Voraussetzungen sind, um überhaupt zu verstehen, was man da eigentlich macht. Wenn es aber eine grafische Oberfläche haben soll, würde ich mal die Benutzersteuerelementen in den raum werfen.
  7. Dann soll der Chef mit offenen Karten spielen, anstatt so einen Bullshit zu reden. Letzen Endes ist es immer noch die Entscheidung von @DieMstar, ob er/sie dort bleiben möchte, oder nicht. Ein Chef hat das zu akzeptieren und man hält keine Mitarbeiter, wenn man denen eine Waffe vor die Brust hält. Schließlich kann man auch ein ruhiges Gespräch führen und sagen, was Sache ist, wenn der Chef tatsächlich bedacht war, ein Ausbildungsvertrag anzubieten. Und du würdest sie dann anbrüllen, dass sie auf dem Stuhl sitzenbleiben soll? Dein Beispiel hinkt nämlich komplett. Wenn sie fragen würde, ob ich auch was vom Imbiss haben möchte, dann weiß sie nämlich nicht, dass ich was koche und ich kann sie darauf hinweisen und brülle sie nicht an, dass sie gefälligst auf dem Stuhl zu sitzen hat. Sehe ich genauso. Überstunden sind eine Ausnahme und nicht die Regel. In den meisten Arbeitsverträgen kann ein Chef zwar Überstunden verordnen aber auch nur wenn es wirklich nicht anders geht und es darf kein Dauerzustand sein. Wenn es ein Dauerzustand ist, dann wird hier eindeutig misswirtschaft betrieben, indem man die Mitarbeiter absichtlich verschleißt, weil die Mitarbeiter das Spiel ja mitspielen.
  8. Kann ich bestätigen. Noch schlimmer sieht es eigentlich nur noch in der Spielebranche aus, wo keine Azubis ausgebildet werden, sondern noch eine Stufe runtergeht und Praktikanten sucht, die ein Pflichtpraktikum absolvieren müssen. Die muss man erst gar nicht bezahlen.
  9. Da fragt man sich, wieso man für so einen Chef arbeitet?
  10. Davon gehe ich auch sehr stark aus. Wenn man nach vorhandenen Kenntnissen fragt, ist eine Sache, aber schon gezielt nach Programmiersprachen und Frameworks nachzufragen und einen potenziellen Kandidaten gleich zwei Tage antanzen zu lassen, klingt nicht gerade so, als wollen sie jemanden ausbilden, sondern einfach eine billige Arbeitskraft unter dem Deckmantel einer Ausbildung.
  11. Man muss das immer relativ betrachten. Programmcode kann man in der Regel verständlicher schreiben, als Stored Procedures, weil sie nun mal sehr viele Restriktionen haben. Die Frage ist: "Was ist wichtiger? Lesbarer Code oder bessere Performance?" Ist es wirklich wichtig, dass der Nutzer schnellstmöglich eine Antwort erhält? Oder kann er auch mal ein paar Sekunden warten? An der Software, an der ich arbeite, wurden ebenfalls sehr viele Kennzahlberechnungen als Stored Procedure abgelegt. Die Folge ist, dass sie sehr komplex sind und sie kaum einer noch versteht. Das Debugging ist extrem schwierig. Es wurden Tablefunctions verwendet, die wie gesagt, nicht mit dem Debugger debugged werden können. Da ist man wieder dabei, nach alter Väter Sitte, Ausgaben auf der Konsole zu machen, um zu sehen, was passiert. Ich bin der Meinung, man sollte erst mal mit einem lesbaren und verständlichen Code anfangen und erst dann, wenn die Performance zwickt, sollte man sich über die Performance unterhalten.
  12. Sehe ich persönlich nicht so. Stored Procedures haben zwar den Vorteil, dass sie von der Datenbank auf Fehler überprüft werden aber man verschiebt nur die Logik, die sonst im Programmcode steht, in die Datenbank und das kann je nach Szenario Probleme bereiten. Wenn man anfängt, für jeden Kleinkram eine Stored Procedure zu schreiben, müllt man die Datenbank damit zu. Zumal die Verwaltung von Stored Procedures eh sehr schlecht ist. Ein anderes Problem ist, wenn die Stored Procedure mehrere Werte oder sogar ganze Tabellen zurückliefern soll. Tabellen als Rückgabewert ist z.B. in MySQL sowieso nicht möglich. Bei Oracle gibt es die sog. Tablefunctions aber die haben einen sehr großen Programmier-Overhead und lassen sich auch nicht debuggen.
  13. Dann musst du eh fragen. Aus Erfahrung sind solche Frameworks eh nicht dokumentiert und du musst dich selbst dort einarbeiten.
  14. Da wirst du sowieso nicht drumherumkommen. Kann ja auch sein, dass sie einen O/R-Mapper verwenden, wie z.B. Entity Framework. Es ist für mich sowieso erstaunlich, wie viele Firmen heutzutage immer noch mit stumpfen SQL-Abfragen direkt auf die Datenbank gehen und daraus immer manuell selbst die Datenobjekte erzeugen, anstatt ein O/R-Mapper zu verwenden.
  15. Ich kenne mich mit Visual Basic auch nicht aus, da ich mit C# arbeite. (Keine Ahnung, wie man heutzutage eh auf die Idee kommt, mit Visual Basic zu arbeiten) aber offenbar handhabt Visual Basic die Events ein bisschen anders. Es steht wohl direkt in der Methoden-Signatur. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub
  16. Ja, wenn du diese Methode dem Klick-Event zugewiesen hast.
  17. Was ist aber, wenn du nicht weißt, was aufgerufen werden soll? Das Problem hast du ja bei den Events, wenn du eine grafische Oberfläche entwickelst. Für jedes Element einer grafischen Oberfläche gibt es ja zig Events. Beispiel wäre ein ja Klick auf ein Button. Woher soll der Button jetzt nun wissen, was passieren soll? Das programmierst du nun mit Hilfe eines Delegates und weist dem Delegate eine Methode zu. button1.Click += Button1_Click; // ... private void Button1_Click(object sender, EventArgs e) { // Code } Nun weiß der Button, dass er die Methode Button1_Click() aufrufen soll, wenn das Click-Event ausgelöst wurde. Ohne den Delegates müsstest du eine Ableitung vom Button schreiben und dort Methoden überschreiben. Das würde dazu führen, dass du für jedes Element auf der Oberfläche eine Ableitung benötigst.
  18. In strukturierten Programmiersprachen (z.B. C) nennt man sowas auch Funktionszeiger. Ein Delegate ist ein sog. Funktionstyp. Es gibt drei Arten von Typen. Wertetypen, wie z.B. Int, decimal, float beinhalten einen Wert. Ich schreibt hier C#-Code, da ich mit der Visual Basic-Syntax nicht ganz so vertraut bin: int wert = 23; Referenztypen besitzen eine Referenz zu einem Objekt: // Definition einer Klasse public class ClassA { // Code } // Erzeugung einer Instanz einer Klasse ClassA klasseA = new ClassA(); Die Variabel klasseA besitzt als Wert nun die Speicheradresse, wo das Objekt im Speicher gespeichert wurde. Darum kannst du auch nicht zwei Objekte mit dem Vergleichsoperator auf Gleichheit überprüfen. Also: ClassA klasseA1 = new ClassA(); ClassA klasseA2 = new ClassA(); Console.WriteLine(klasseA1 == klasseA2); // Es wird false zurückgewiesen, weil die Speicheradressen unterschiedlich sind Funktionstypen also die Delegates besitzen eine Referenz zu einer Methode. Beispiel: public class ClassA { // Defintion eines Delegates public delegate int Berechnung(int x, int y); // Funktionstyp als private Klassenvariable private Berechnung berechnung; // Über den Kontruktor wird das Delegate mitgegeben public ClassA(Berechnung berechnung) { this.berechnung = berechnung; } // Ausgabe des Ergebnisses des Delegates public void Ausgabe(int x, int y) { Console.WriteLine(this.berechnung(x, y)); } } Nun kann man bei der Erzeugung der Instanz von KlasseA ein Delegate mitliefern, der beschreibt, was die Berechnung tun soll: ClassA classA = new ClassA(Summiere); classA.Ausgabe(10, 10); private int Summiere(int x, int y) { return x + y; } Da das Delegate und die Methode Summiere() die selbe Methodensignatur (die selben Parameter) aufweisen, kann ich jetzt nun die Summiere()-Methode als Delegate mitliefern. Es ist also eine Referenz auf die Methode. Wenn man jetzt nun die Ausgabe()-Methode von klasseA ausführt, wird das Delegate ausgeführt und das Delegate zeigt auf die Summiere()-Methode und dann werden beide Zahlen addiert. Auf diese Weise kann man nun das Verhalten einer Klasse bestimmen. Ein anderes Beispiel wären die Events bei grafischen Oberflächen. Wenn du z.B. auf ein Button klickst, wird ja das OnClick()-Event aufgerufen und du kannst über das Event programmieren, was bei einem Mausklick passieren soll. Events sind auch Delegates.
  19. Zu diesem Thema hatte ich mal angefangen, ein Tutorial zu schreiben, wie man es richtig macht. Leider komme ich kaum dazu, es weiterzumachen. Teil 1 also einige Grundlagen, die man für ein Taschenrechner braucht, ist präsentierfähig, wenn aber auch nicht perfekt geschrieben und es fehlt wohl noch einiges zum besseren Verständnis. Mein "Lektor" kommt leider auch nicht dazu, es zu lesen.
  20. In den Aufgaben sollst du das komplette HTML-Dokument mit PHP generieren lassen und nicht nur die Ausgabe.
  21. Warum so kompliziert? Einfach einen lokalen Webserver aufsetzen und direkt im Webordner das Git-Repository aufsetzen. Dann kannnst du deine Änderungen direkt testen und wenn alles gut läuft, kannst du es bei dir einchecken und ein Pull-Request zum zentralen Repository machen.
  22. Programmiersprache: Egal Kenntnisse: Irgendein Sortieralgoritnmus Was genau möchtest du denn hören? Das hier ist kein Forum, man deine Hausaufgaben macht. Wie sehen denn deine Überlegungen aus?
  23. Stackoverflow ist im Grunde nichts weiter, als ein Forum, wie dieses hier. Das Forum ist aber weltweit bekannt und dort tümmeln sich auch sehr viele professionelle und sehr bekannte Entwickler. Wenn man also zu einem Problem eine Frage hat, ist Stackoverflow meist die erste Anlaufstelle, da man sich schon sehr sicher sein kann, dass die Frage schon mal gestellt wurde. Man kann sich dann die Antworten durchlesen und schauen, wie andere es gelöst haben und ob die Antworten auch für das eigene Problem passen. Dann kann man dementsprechend eine Lösung für sich ableiten.
  24. .NET ist ja nichts weiter als ein Framework in der Microsoft-Welt. Die gängigsten Klassen aus diesem Framework lernt man sehr schnell kennen. Es ist so, wie mit dem Java SDK. Es beinhaltet ja nicht nur den Compiler, sondern auch ein Grundgerüst mit Klassen für z.B. Listen, Bäume, Netzwerkverbindungen, SQL Server-Verbindungen und noch vielem weitern. VB.NET und Visual C# bauen ja auf das .NET-Framework auf und der Compiler kompiliert, ähnlich wie in Java, den Code in sog. Bytecode. In der .NET-Welt auch CIL-Code genannt (CIL = Common Intermediate Language). .NET-Sprachen sind auch aufgrund des Bytecodes kombinierbar. Du kannst also das, was du unter C# kennst, auch in VB.NET benutzen. Der Unterschied zwischen den beiden Sprachen ist dann die Syntax und vielleicht noch einige andere Einzelheiten. Beides sind aber objektorientierte Sprachen. Viele der englischen Bücher sind aber in einem sehr einfachen Englisch geschrieben. Ich hab mir nur gerade die Leseprobe angeschaut und finde das Buch schon schlecht. Es ist wieder eines dieser typischen Bücher, die gleich mit einer Anwendung mit grafischer Oberfläche anfangen. Um eine grafische Oberfläche zu verstehen, benötigt man aber schon einiges an Wissen, was hier nicht erklärt wird (z.B. Events und wie diese funktionieren). Ich hätte eher "Schrödinger programmiert C#" empfohlen. Das fängt klassisch mit einem Kommandozeilentool an und arbeitet dann Stück-für-Stück weiter.
  25. So sieht es aus. Schaut man sich weitere Programmieraufgaben der Abschlussarbeiten an, so wirken viele der Aufgaben sehr antiquarisch. Als ob die Autoren seit den 80ern nichts mehr mit Softwareentwicklung zu tun haben. In einer anderen Aufgabe wird die Indexierung eines Arrays als technische ID der Elemente verwendet. Ja, ich denke auch, dass die Prüfungsschüsse beides durchgehen lassen. Also entweder die Erstellung eines leeren Arrays oder die Erstellung eines Array mit x leeren Einträgen aber wie ich schon sagte, eigentlich ist die Erstellung eines leeren Arrays nicht richtig. Das ist der Knackpunkt: "Wo hört man denn da auf?" Die genannte Aufgabe war in diesem Forum schon mal ein Thema und z.B. mit Sprachfeatures einiger Sprachen wäre die Aufgabe ein Einzeiler. Beispiel C# public Flug[] ErstelleFluege(DateTime datum, int plaetze) return this.Linien_Fluege .Where(flug => flug.flugDatum == datum && flug.freiePlaetze == plaetze) .OrderBy(flug => flug.Preis) .ToArray(); Darum auch mein kleiner Einwand, denn die Erstellung eines leeren Arrays ist auch nur ein Sprachfeature. Die Frage ist also: "Wo werden die Grenzen gezogen?". Wenn man es nämlich Sprachunabhängig machen will, muss man entweder vorher die Anzahl der Flüge ermitteln oder das Array so groß machen, wie die Gesamtanzahl der Flüge, was im Zweifel enorm viel Speicher verbraucht oder man müsste eine Reallokierung des Arrays beschreiben. Genau das tut z.B. auch die Methode ToArray() in der LINQ-Erweiterung von C#. Zuerst wird ein Array für 4 Elemente erzeugt und dann gefüllt. Wenn es voll ist, dann ein Array für 8 Elemente. Das alte wird dort reinkopiert und die restlichen Plätze werden befüllt. Wenn es wieder voll ist, dann für 16 Elemente, dann für 32, 64, 128, ... Elemente. Zum Schluss wird die tatsächliche Menge ermittelt und dann ein Array für die exakte Anzahl der Elemente. Andere Sprachen, wie z.B. PHP nennen ihre Arrays zwar Arrays aber der erste Satz der Dokumentation verrät schon was anderes: Also ein leeres Array in PHP ist ein Sprachfeature, indem sie eine Map als Array verwenden. Arrays im herkömmlichen Sinne gibt es in PHP also gar nicht. Ich möchte auch nicht sagen, was richtig und was falsch ist, sondern einfach nur aufzeigen, welche Tücken diese Aufgaben eigentlich besitzen. Es ist meist von Arrays die Rede ist und die Azubis erzeugen selbstverständlich erst mal ein leeres Array, weil sie das evtl. so gewohnt sind oder es halt so aus den Aufgaben kennen aber bei genauer Betrachtung eigentlich so nicht richtig ist. Das selbe gilt auch hier für das Sort(). Es wird einfach angenommen, man kann eine Methode, namens Sort() verwenden aber darf man es überhaupt? Muss man nicht einen eigenen Sortieralgorithmus bauen? Wo fängt also die Verwendung von Sprachfeatures an und wo hört es auf?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...