Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.020
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Reputationsaktivitäten

  1. Like
    Whiz-zarD hat eine Reaktion von maestro impostor erhalten in C# Tastendruck löst Aktion aus   
    WinForms wird mit .NET Core 3.0 unterstützt. WinForms ist vielleicht nicht mehr das neueste Framework aber bei kleineren Programmen, die nicht eine fancy Oberfläche benötigen und auch nicht web-fähig sein müssen, finde ich WinForms geeigneter als WPF. 
    Wenn die Operanden und Operatoren eh per Button eingetragen werden sollen, wie bei einem Taschenrechner, dann musst du die Textbox auch so einstellen, dass dort nichts reingeschrieben werden darf. Also die Eigenschaft "ReadOnly" auf True setzen. Oder habe ich dich falsch verstanden?
  2. Like
    Whiz-zarD hat eine Reaktion von Maniska erhalten in Frage Ausbildung zum Fachinformatiker in Anwendungsentwicklung   
    Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss?
    Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.
  3. Like
    Whiz-zarD hat eine Reaktion von Grimlet erhalten in Frage Ausbildung zum Fachinformatiker in Anwendungsentwicklung   
    Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss?
    Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.
  4. Like
    Whiz-zarD hat eine Reaktion von astero erhalten in Frage Ausbildung zum Fachinformatiker in Anwendungsentwicklung   
    Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss?
    Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.
  5. Like
    Whiz-zarD hat eine Reaktion von neinal erhalten in Frage Ausbildung zum Fachinformatiker in Anwendungsentwicklung   
    Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss?
    Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.
  6. Like
    Whiz-zarD hat eine Reaktion von JimTheLion erhalten in Frage Ausbildung zum Fachinformatiker in Anwendungsentwicklung   
    Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss?
    Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.
  7. Like
    Whiz-zarD hat eine Reaktion von Rabber erhalten in beschriebene Datei leer nach Exception   
    Probiere es doch aus.
    Schmeiß doch selber einfach eine Exception.
    Ich würde das Programm an deiner Stelle auch umschreiben, denn es ist zu fehleranfällig. Separiere die Aufgaben und mache nicht alles auf einmal. Die foreach-Schleife sammelt doch die Daten, also packe die Daten in eine geeignete Datenstruktur und wenn er damit durch ist, schreibe dann die werte in die Datei. Das macht den Code verständlicher und leserlicher und du wirst den Fehler schneller lokalisieren können. Auch solche Konstrukte, wie
     
    public void Foo(Bar bar) { if(bar != null) { // Tu etwas } } Würde ich vermeiden, weil es eine unnötige Verschachtelung ist. Besser wäre
    public void Foo(Bar bar) { if(bar == null) return; // Tu etwas } So liegt die if-Abfrage und die eigentliche Aufgabe auf der selben Verschachtelungsebene und der Code wird übersichtlicher. Mir wird aber auch nicht so ganz klar, was genau das Programm eigentlich tun soll, weil einfach zu viel auf einmal passiert. Es fehlt offenbar auch Code, um überhaupt zu erkennen, was du da gebaut hast. Wofür genau ist der StreamWriter da? Was soll er denn schreiben? Wieso werden die Dateien noch verschoben? Exceptions sollen auch nur Ausnahmen bzw. Fehler behandeln. Das befreit dich aber nicht davon, dass du dein Programm nicht gegen Fehlerfälle absichern musst. Anstatt also auf die Exception zu reagieren, ob die Datei vorhanden ist, solltest du im Vorwege dies selbst überprüfen und darauf reagieren. Dann brauchst du auch kein Try-Catch-Block. 
    Den StreamReader brauchst du eigentlich auch nicht, da man über XDocument.Load() schon die XML-Datei einlesen kann.
  8. Danke
    Whiz-zarD hat eine Reaktion von MonEdition erhalten in Zu schlechte Vorraussetzungen zur Ausbildung zum Fi ? Anwendungsentwicklung   
    22 ist noch kein Alter. Du bist sogar noch sehr jung. Daran liegt es nicht, dass du nicht zu Bewerbungsgesprächen eingeladen wirst, falls du dich überhaupt bewirbst. Wissen muss auch nicht vorhanden sein, denn dazu gibt es die Ausbildung. Ich vermute Mal, dass dein Anschreiben evtl. nicht gut ist. Du kannst ja mal hier anonymisiert ein Anschreiben zeigen. Dann könnte man dir evtl. ein paar Tipps geben.
  9. Like
    Whiz-zarD hat eine Reaktion von äymm erhalten in beschriebene Datei leer nach Exception   
    Probiere es doch aus.
    Schmeiß doch selber einfach eine Exception.
    Ich würde das Programm an deiner Stelle auch umschreiben, denn es ist zu fehleranfällig. Separiere die Aufgaben und mache nicht alles auf einmal. Die foreach-Schleife sammelt doch die Daten, also packe die Daten in eine geeignete Datenstruktur und wenn er damit durch ist, schreibe dann die werte in die Datei. Das macht den Code verständlicher und leserlicher und du wirst den Fehler schneller lokalisieren können. Auch solche Konstrukte, wie
     
    public void Foo(Bar bar) { if(bar != null) { // Tu etwas } } Würde ich vermeiden, weil es eine unnötige Verschachtelung ist. Besser wäre
    public void Foo(Bar bar) { if(bar == null) return; // Tu etwas } So liegt die if-Abfrage und die eigentliche Aufgabe auf der selben Verschachtelungsebene und der Code wird übersichtlicher. Mir wird aber auch nicht so ganz klar, was genau das Programm eigentlich tun soll, weil einfach zu viel auf einmal passiert. Es fehlt offenbar auch Code, um überhaupt zu erkennen, was du da gebaut hast. Wofür genau ist der StreamWriter da? Was soll er denn schreiben? Wieso werden die Dateien noch verschoben? Exceptions sollen auch nur Ausnahmen bzw. Fehler behandeln. Das befreit dich aber nicht davon, dass du dein Programm nicht gegen Fehlerfälle absichern musst. Anstatt also auf die Exception zu reagieren, ob die Datei vorhanden ist, solltest du im Vorwege dies selbst überprüfen und darauf reagieren. Dann brauchst du auch kein Try-Catch-Block. 
    Den StreamReader brauchst du eigentlich auch nicht, da man über XDocument.Load() schon die XML-Datei einlesen kann.
  10. Like
    Whiz-zarD hat eine Reaktion von JimTheLion erhalten in c# - datentyp var   
    Nee, da wird der Datentyp gleich ganz weggelassen, weil man ja ganz Toll Strings mit Zahlen addieren kann.
    Ab Java 9 besitzt Java auch Type Inference, also var.
    https://www.journaldev.com/12849/javase9-var-for-local-variables
    Und glaub mir, man kommt auch ohne explizite Typendefinition gut aus. In meiner Firma gab es auch ältere Entwickler, die das sehr zweifelhaft finden aber inzwischen haben sie sich auch daran gewöhnt und denen fehlt auch nichts.
  11. Haha
    Whiz-zarD hat eine Reaktion von KeeperOfCoffee erhalten in c# - datentyp var   
    Und das zu Recht! dynamic umgeht ja den Luxus der Typüberprüfung zur Kompilierzeit. D.h. im schlimmsten Fall kommt erst der Fehler beim Kunden vor.
    Es geht beides, da die Create()-Methode ja einen Rückgabewert hat und whatever ist dann von diesem Typ. Wenn Create() ein object zurückliefert, dann ist whatever ebenfalls ein object.
  12. Like
    Whiz-zarD hat eine Reaktion von Rabber erhalten in c# - datentyp var   
    var ist kein Datentyp. var ist eine implizite Typendeklaration um obligatorischen Code zu sparen. Anstatt
    TolleKlasse klasse = new TolleKlasse(); kannst du auch einfach
    var klasse = new TolleKlasse(); schreiben. Der Datentyp ist zur Entwicklungszeit bekannt, also muss man auch den Datentyp explizit nicht angeben.
    Dass var kein Datentyp ist, kannst du auch sehen, dass du var nicht als Methodenparameter verwenden kannst. Beispiel
    public void TolleMethode(var parameter) { // ... } Dies schmeißt ein Kompilierfehler, weil eben nicht zur Entwicklungszeit der konkrete Datentyp ermittelt werden kann.
    Aus meiner Sicht kann var schon den Code sauberer halten aber das ist wohl Geschmackssache.
  13. Like
    Whiz-zarD hat eine Reaktion von Albi erhalten in Lernt man das während der Ausbildung (FiAe)?   
    Wenn ich mir aber so durchlese, was hier im Forum über Berufsschulen geschrieben wird und auch so bedenke, was ich schon so für Stories in Berufsschulen gehört habe, bezweifle ich, dass man in den Berufsschulen überhaupt programmieren lernt. Dafür fehlt einfach zu viel.
  14. Danke
    Whiz-zarD hat eine Reaktion von Tweed erhalten in von Schaltung zur Wahrheitstabelle   
    Ehrlich gesagt, finde ich es aufwendiger, wenn man erst mal alles aufschreiben muss. Da halte ich die Lösung von @ErB777 einfacher. Es ist halt nur ein bisschen Fleißarbeit. Man fängt halt mit den UND-Gattern an:
    A ∧ B 
    -B ∧ C
    Nun kann man diese Logiken in die ODER-Gatter einfügen. Beispiel für das links-obere ODER-Gatter:
    (A ∧ B ) ∨  B ∨ (-B ∧ C)
    usw. Wenn man bei x angekommen ist, hat man die gesamte Formel. Dann kann man die Wahrheitstabelle aufbauen, Werte einsetzen und auswerten.
  15. Like
    Whiz-zarD hat eine Reaktion von OkiDoki erhalten in Keinen Ausbilder   
    Und was bringt dir die "Dame aus der Personalabteilung"? Im Endeffekt muss der Azubi sich auch in diesem Fall selbst ausbilden. Die Ausbilderin kann fachlich nichts beitragen.
    Vielfach sind die Probleme hausgemacht, weil man nicht gewillt ist, einen Azubi vernünftig auszubilden, weil man nur die Kosten sieht aber nicht den Nutzen. Es geht ja schon damit los, dass man den Ausbilder kaum Freiraum lässt, um wirklich den Azubi zu betreuen. Denke schon, dass man einen Azubi auch in einen 5-Mann-Betrieb gut ausbilden könnte, wenn man will aber wie du schon sagst: Vielfach werden sie nur als billige Arbeitskräfte abgestempelt, die nur die Drecksarbeit machen sollen.
  16. Like
    Whiz-zarD hat eine Reaktion von Albi erhalten in Lernt man das während der Ausbildung (FiAe)?   
    Vorher können muss man gar nichts, denn dazu ist die Ausbildung ja da.
    Allerdings finde ich es persönlich nicht schlecht, wenn man eine gewisse Affinität mitbringt und vielleicht schon mal in das eine oder andere reingeschnuppert hat, um ein Gefühl dafür zu bekommen, ob das einen wirklich interessiert.
    Ob du jetzt Node.js, Vue.js, etc. lernst, hängt von dem jeweiligen Berieb an, wo du die Ausbildung machst. Ein Betrieb nimmt auch nicht jeden Hype mit und entwickelt auch nicht für jede Plattform. Ein Android-Entwickler wird z.B. kaum bis gar nichts mit Node.js oder Vue.js zu tun haben. Er wird hauptsächlich mit Java arbeiten.
    Ich selber arbeite hauptberuflich mit C# und PL/SQL. Mit JavaScript habe beruflich ich (noch) keine Berührungspunkte aber das wird sich wohl in einigen Jahren ändern. 
    Zu deiner zweiten Frage: Es kommt drauf an, wonach du suchst bzw. die Betriebe suchen. Deutsche Betriebe suchen schon gezielt nach Spezialisten in bestimmten Bereichen. So ist es also üblich, dass z.B. C#- oder Java-Entwickler gesucht werden. Die müssen dann nicht PHP können.
  17. Like
    Whiz-zarD hat eine Reaktion von Rabber erhalten in Keinen Ausbilder   
    Und was bringt dir die "Dame aus der Personalabteilung"? Im Endeffekt muss der Azubi sich auch in diesem Fall selbst ausbilden. Die Ausbilderin kann fachlich nichts beitragen.
    Vielfach sind die Probleme hausgemacht, weil man nicht gewillt ist, einen Azubi vernünftig auszubilden, weil man nur die Kosten sieht aber nicht den Nutzen. Es geht ja schon damit los, dass man den Ausbilder kaum Freiraum lässt, um wirklich den Azubi zu betreuen. Denke schon, dass man einen Azubi auch in einen 5-Mann-Betrieb gut ausbilden könnte, wenn man will aber wie du schon sagst: Vielfach werden sie nur als billige Arbeitskräfte abgestempelt, die nur die Drecksarbeit machen sollen.
  18. Like
    Whiz-zarD reagierte auf OkiDoki in Keinen Ausbilder   
    Das widerspricht doch den von @Whiz-zarD zitierten Paragraphen im BBiG. Dort steht klar drin, dass die Ausbilder persönlich UND fachlich geeignet sein müssen. Das würde meiner Interpretation nach bedeuten, dass irgendwer mit dem AdA Schein nicht ausreicht auch wenn es jemanden gibt der fachlich geeignet ist. Kurzgesagt: Die Personaltante mit dem AdA Schein und ein ITler ohne AdA Schein sind nicht ausreichend.
    Ich habe aber den Eindruck, dass es der IHK schlichtweg egal ist oder nicht sehr stark darauf geachtet wird. 
  19. Like
    Whiz-zarD reagierte auf Rienne in Keinen Ausbilder   
    Du vergisst aber, dass die Mitgliedschaft bei der IHK eine Pflichtmitgliedschaft ist. Da hat man als Betrieb gar keine Wahl, Beiträge zu zahlen oder nicht. Und die IHK ist auch verpflichtet die Interessen der Auszubildenden zu vertreten nicht nur der Arbeitgeber/des Ausbildungsbetriebs.
  20. Like
    Whiz-zarD hat eine Reaktion von OkiDoki erhalten in Keinen Ausbilder   
    Steht alles im BBiG:
    Demnach darf ein Betrieb nicht die jeweiligen Berufe ausbilden, wenn kein Ausbilder mit fachlicher Eignung vorhanden ist. Die Situation, die @Zaroc beschrieb, ist somit eigentlich nicht zulässig. Der Ausbilder darf aber Ausbildungsbeauftragte ernennen, die ihm bei der Ausbildung unterstützen. Diese Beauftragten benötigen dann keinen Ausbilderschein. z.B. könnte eine Reinigungskraft etwas über das Thema Recycling lehren.
  21. Like
    Whiz-zarD hat eine Reaktion von thereisnospace erhalten in HIlfe bei Klassen   
    Lies dir mal die Aufgabe genauer durch. Im Grunde ist das nur ein Abarbeiten der Punkte von Oben nach Unten. Du könntest auch hinter jedem Punkt ein Häkchen setzen, wenn du fertig bist. Beispiel:
    Dies ist die Beschreibung des Konstruktors und jetzt schaue dir mal deinen an. Siehst du den Unterschied zwischen der Beschreibung und deinem Konstruktor?
    Der Lagerbestand und die Kurzbeschreibung darf nicht direkt gesetzt werden. Die Kurzbeschreibung wird über eine Methode innerhalb der Klasse generiert und der Lagerbestand soll über eine Methode addiert oder subtrahiert werden.
    Schaue dir dazu mal das Prinzip der Getter- und Setter-Methoden an.
  22. Haha
    Whiz-zarD hat eine Reaktion von Yv_nne erhalten in Ins Thema WLAN einlesen   
    Jo, warum ein Buch suchen, wenn gefährliches Halbwissen aus Youtube und diverse Foren auch reicht? 
     
  23. Like
    Whiz-zarD hat eine Reaktion von GoVivi erhalten in Bezahlbare Weiterbildungen während der Ausbildung?   
    Jo. Ich hab mit 27 die Ausbildung zum Informatikassistenten angefangen. Davor habe ich als Mechatroniker gearbeitet und habe jetzt (34) mein Ausbilderschein gemacht.
    23 ist auch noch sehr jung. Mit den Worten von Harald Lesch: "Die Menschen werden immer älter aber wieso muss die Ausbildung immer weiter beschleunigt werden?" Du hast noch genug Zeit vor dir und brauchst dich nicht um Weiterbildungsmaßnahmen während deiner Ausbildung kümmern. Ich würde dir auch erst mal raten, die Ausbildung erfolgreich zu beenden und dann weiterschauen. Bei Bezahlung der Weiterbildung würde ich auch erst mal mit deinem Chef reden, denn nicht nur du profitierst davon, sondern auch die Firma und gute Firmen bezahlen die Weiterbildungen. 
    Bezüglich Operate Professional: Das ist quasi der Meister in den Informatikberufen und kann sowieso erst gemacht werden, wenn man schon mehrere Jahre Berufserfahrung gesammelt hat (AFAIR 3 oder 5 Jahre).
     
  24. Danke
    Whiz-zarD hat eine Reaktion von wisdomsoz erhalten in Doppelt verketteter Ring - Zeigersetzung beim Hinzufügen von Elementen   
    Woher stammt der Code? Stammt er von dir? Funktioniert er oder wo liegen konkret deine Fragen?
    Meine C-Kenntnisse sind auch schon sehr stark angerostet, aber der Code ist auch recht schwierig zu lesen, weil s1 und w ständig getauscht werden. Schauen wir uns aber mal den Code an:
    1 //Next-Verkettung ######################################### 2 (*w)->next = *s1; 3 *s1=(*w); 4 (*w)=(*s1)->next; 5 (*w)=(*w)->prev; 6 (*w)->next=(*s1); //Zeitpunkt 3 7 //Prev-Verkettung############################################# 8 (*w)=(*s1); 9 (*w)=(*w)->next;//auf 2.Block 10 (*s1)->prev=(*w)->prev; 11 (*w)->prev = (*s1); Wir haben folgende Ausgangssituation:
    e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ Wir haben also ein Ring. Bestehend aus e0, e1 und e2. Der Code fügt nun zwischen e0 und e1 ein neues Element (e3) hinzu. *w zeigt auf e3 und *s1 auf e1. e3 hat erstmal keine Verbindung in den Ring.
    e3 *w = e3 *s1 = e1 e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In der zweiten Zeile wird *w->next auf s1 gesetzt:
    e3────┐ *w = e3 │ *s1 = e1 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In Zeile 3 wird *s1 mit *w ersetzt und in zeile 4 *w wird ersetzt mit *s1->next. Damit werden beide getauscht und der Ring hat einen neuen "Anfang":
    e3────┐ *w = e1 │ *s1 = e3 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In zeile 5 wird wiederum *w mit *w->prev getauscht und zeigt somit auf e0.
    e3────┐ *w = e0 │ *s1 = e3 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ Nun wird *w->next auf *s1 gesetzt und somit ist e3 schon mal in eine Richtung in den Ring integriert:
    e3────┐ *w = e0 ↑ │ *s1 = e3 │ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Allerdings zeigt der prev-Zeiger von e1 noch auf e0 und e3 hat noch kein Prev-Zeiger auf e0. Dies geschieht nun im Prev-Block. *w wird in Zeile 8 und 9 auf e1 gesetzt:
    e3────┐ *w = e1 ↑ │ *s1 = e3 │ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Nun wird *s1->prev auf *w-prev gesetzt:
    e3────┐ *w = e1 ↑ │ *s1 = e3 ↓ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Und zum Schluss *w->prev auf *s1:
    e3←───┐ *w = e1 ↑ │ *s1 = e3 ↓ ↓ e0 e1 ←→ e2 ↑ ↑ └───────────┘ Und der Ring ist fertig.
    Allerdings halte ich den Code für zu viel, denn im Grunde ist das ja nur ein Umbiegen der Zeiger. Wir kennen doch den "Anfang" des Ringes (*s1) und das Element (*w), was hinzugefügt werden soll. Dann kann man doch im ersten Schritt
    *w->next auf *s1 und
    *w->prev auf *s1->prev
    setzen.
    w─────┐ │ │ ↓ ↓ s0 ←→ s1 ←→ s2 ↑ ↑ └───────────┘ Und im zweiten Schritt 
    *w->prev->next auf *w und
    *w->next->prev auf *w
    w←────┐ ↑ │ ↓ ↓ s0 s1 ←→ s2 ↑ ↑ └───────────┘ Das wären dann 4 Zeilen Code.
  25. Like
    Whiz-zarD hat eine Reaktion von JimTheLion erhalten in Doppelt verketteter Ring - Zeigersetzung beim Hinzufügen von Elementen   
    Woher stammt der Code? Stammt er von dir? Funktioniert er oder wo liegen konkret deine Fragen?
    Meine C-Kenntnisse sind auch schon sehr stark angerostet, aber der Code ist auch recht schwierig zu lesen, weil s1 und w ständig getauscht werden. Schauen wir uns aber mal den Code an:
    1 //Next-Verkettung ######################################### 2 (*w)->next = *s1; 3 *s1=(*w); 4 (*w)=(*s1)->next; 5 (*w)=(*w)->prev; 6 (*w)->next=(*s1); //Zeitpunkt 3 7 //Prev-Verkettung############################################# 8 (*w)=(*s1); 9 (*w)=(*w)->next;//auf 2.Block 10 (*s1)->prev=(*w)->prev; 11 (*w)->prev = (*s1); Wir haben folgende Ausgangssituation:
    e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ Wir haben also ein Ring. Bestehend aus e0, e1 und e2. Der Code fügt nun zwischen e0 und e1 ein neues Element (e3) hinzu. *w zeigt auf e3 und *s1 auf e1. e3 hat erstmal keine Verbindung in den Ring.
    e3 *w = e3 *s1 = e1 e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In der zweiten Zeile wird *w->next auf s1 gesetzt:
    e3────┐ *w = e3 │ *s1 = e1 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In Zeile 3 wird *s1 mit *w ersetzt und in zeile 4 *w wird ersetzt mit *s1->next. Damit werden beide getauscht und der Ring hat einen neuen "Anfang":
    e3────┐ *w = e1 │ *s1 = e3 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ In zeile 5 wird wiederum *w mit *w->prev getauscht und zeigt somit auf e0.
    e3────┐ *w = e0 │ *s1 = e3 ↓ e0 ←→ e1 ←→ e2 ↑ ↑ └───────────┘ Nun wird *w->next auf *s1 gesetzt und somit ist e3 schon mal in eine Richtung in den Ring integriert:
    e3────┐ *w = e0 ↑ │ *s1 = e3 │ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Allerdings zeigt der prev-Zeiger von e1 noch auf e0 und e3 hat noch kein Prev-Zeiger auf e0. Dies geschieht nun im Prev-Block. *w wird in Zeile 8 und 9 auf e1 gesetzt:
    e3────┐ *w = e1 ↑ │ *s1 = e3 │ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Nun wird *s1->prev auf *w-prev gesetzt:
    e3────┐ *w = e1 ↑ │ *s1 = e3 ↓ ↓ e0 ←- e1 ←→ e2 ↑ ↑ └───────────┘ Und zum Schluss *w->prev auf *s1:
    e3←───┐ *w = e1 ↑ │ *s1 = e3 ↓ ↓ e0 e1 ←→ e2 ↑ ↑ └───────────┘ Und der Ring ist fertig.
    Allerdings halte ich den Code für zu viel, denn im Grunde ist das ja nur ein Umbiegen der Zeiger. Wir kennen doch den "Anfang" des Ringes (*s1) und das Element (*w), was hinzugefügt werden soll. Dann kann man doch im ersten Schritt
    *w->next auf *s1 und
    *w->prev auf *s1->prev
    setzen.
    w─────┐ │ │ ↓ ↓ s0 ←→ s1 ←→ s2 ↑ ↑ └───────────┘ Und im zweiten Schritt 
    *w->prev->next auf *w und
    *w->next->prev auf *w
    w←────┐ ↑ │ ↓ ↓ s0 s1 ←→ s2 ↑ ↑ └───────────┘ Das wären dann 4 Zeilen Code.

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...