C Sharp – die neusten Beiträge

Wie kann man ein weitverzweigtes Geflecht aus if/else-Anweisungen in Python (oder in anderen Programmiersprachen) programmieren?

Wenn man als absoluter Laie in Programmierung im Internet zur if/else-Anweisung (egal, in welcher Programmiersprache) recherchiert, wird man schnell feststellen, dass die Infos, die man hier findet, nicht allzu reichhaltig sind.

Das höchste der Gefühle, was einem beigebracht wird, ist folgenden Dialog zu programmieren: "Welche Sprache sprechen Sie?" - "Französisch." - "Wollen Sie sich auf Französisch weiter unterhalten?" Ende.

Man lernt nicht, wie man mit dem Programm weitermachen kann, falls die Antwort des Benutzers "Ja" sein sollte. Man erfährt gar nichts. Was zu finden ist, ist, wie man EINE FRAGE STELLT und dann auf EINE ANTWORT zu dieser Frage reagieren kann. Das war's.

Ich wüsste gern, wie man das weiterspinnen kann. Wie man eine ganz lange Unterhaltung mit allen möglichen Antwortmöglichkeiten programmieren kann. So wie bei einem Windows-Installationassistenten, der dafür sorgt, dass Windows unter hundert verschiedenen Arten auf die Art installiert wird, wie der Benutzer es will.

Wenn die Benutzer dieser Seite keine Antwort auf die Frage haben, weil sie es selbst nicht wissen, ist das überhaupt kein Problem. Man trifft immer wieder einen It-Profi, der es vielleicht weiß.

Allerdings lässt sich extrem leicht feststellen, dass irgendwelche Teenies oder Leute, die auf dem geistigen Niveau von (nicht sehr gut erzogenen) Teenies stehengeblieben sind, es sich zum Hobby machen, auf dieser Seite unvorstellbar bösartig und beleidigend zu antworten. Es ist völlig egal, was man fragt, egal ob "Wie heißt das weiße Zeug, das früher auf den Donuts war?" oder "In welchen Läden kann man viele naturfreundliche Reinigungsmittel kaufen?" Es wird immer geantwortet von irgendwelchen Leuten, die zu wenig zu tun haben und sich ihre Zeit vertreiben, Leute im Internet mit Sprüchen wie "Boah, Alta, wie dumm BIIISSSSST Du eigentlich?" zu beleidigen.

Ich werde auf so einen Schwachsinn nicht antworten, auch nicht auf "gut gemeinte Rückfragen" und schon gar nicht auf "Also, mit SO EINER NEGATIVEN EINSTELLUNG MENSCHEN GEGENÜBER würde ich hier aber KEINE Frage stellen".

Die Frage ist klar formuliert, so klar wie sie klarer nicht formuliert werden kann. So wie "Was ist 2 + 2?" Wenn jemand die Antwort wüsste, würde mich das sehr freuen. Wenn nicht, dann nicht.

Danke, Ende.

Computer, IT, programmieren, Java, Anwendungsentwicklung, C Sharp, Programmiersprache, Python, Softwareentwicklung, Webentwicklung, Rust, Programmcode, Objektorientierte Programmierung

Bash Script um DNS umzustellen?

Habe einmal ein Bash Script und eine .Desktop Verknüpfungen auf meinem Arch KDE und wollte bei Doppelklick auf die Verknüpfungen zb Updaten oder DNS auf 8.8.8.8 oderr Automatisch Umstellen.

(Ich kann auch via KDE Connect das ganze Starten und ohne EIngabe abschließen mit sudo pacman -Syu --noconfirm && yay -Syu --noconfirm)

Aber bei toggle_dns funktioniert das leider nicht mit dem gelieferten Code von ChatGPT (siehe Unten) und ich kann garkein Bash, nur "normale" programmiersprachen wie JavaScript oder PHP. Mit Python würde ich es vielleicht hinkriegen aber das ist doch viel aufwendiger jetzt die IDE erneut zu installieren als mit Bash.

Wenn es das gibt wollte ich eine KDE eigene Benachrichtigung in welchen Modus es jetzt gewechselt ist zb : DNS auf Automatisch umgestellt oder DNS auf 8.8.8.8 Umgestellt statt ein Terminal was ich dann noch per hand schließen muss.
Kann mir jemand weiterhelfen den Code zu reparieren ?

toggle_dns.sh :

#!/bin/bash

# Datei und Schnittstelle für die DNS-Konfiguration
RESOLV_CONF="/etc/resolv.conf"
INTERFACE="Netzwerkschnittstelle_von_euch"

# Funktion zum Setzen des DNS-Servers auf 8.8.8.8
set_dns() {
  echo -e "nameserver 8.8.8.8\noptions edns0" | sudo tee $RESOLV_CONF > /dev/null
  sudo systemctl restart NetworkManager
  notify "DNS wurde auf 8.8.8.8 gesetzt."
}

# Funktion zum Zurücksetzen des DNS-Servers auf automatisch
reset_dns() {
  sudo rm -f $RESOLV_CONF
  sudo systemctl restart NetworkManager
  notify "DNS wurde auf automatisch gesetzt."
}

# Funktion zum Senden einer KDE-Benachrichtigung
notify() {
  message=$1
  kdialog --passivepopup "$message" 5
}

# Überprüfen, ob der DNS-Server bereits auf 8.8.8.8 gesetzt ist
if grep -q "8.8.8.8" $RESOLV_CONF; then
  echo "DNS ist derzeit auf 8.8.8.8 gesetzt. Umschalten auf automatisch."
  reset_dns
else
  echo "DNS ist derzeit automatisch konfiguriert. Umschalten auf 8.8.8.8."
  set_dns
fi

Bild zum Beitrag
PC, Server, Computer, Internet, Windows, WLAN, Technik, Linux, IT, programmieren, Java, JavaScript, Ubuntu, Cplusplus, Bash, C Sharp, DNS, Gnome, Informatik, KDE, Programmiersprache, Python, Script, Shell, Arch Linux, Rust, Debian, PowerShell, KDE Plasma, node

Code funktioniert nicht?

Der Code an sich ist etwas länger, aber diese Stelle scheint nicht zu funktionieren.
private List<string> SelectFiles(List<string> fileList)

{

  _logger.Log("Bitte geben Sie die Nummern der Handbücher ein, die Sie verarbeiten möchten (kommagetrennt, z.B. 1, 3-5), oder drücken Sie Enter, um alle zu verarbeiten:");

  string input = Console.ReadLine();

  List<string> selectedFiles = new List<string>();

  if (string.IsNullOrEmpty(input))

  {

    // Wenn keine Auswahl getroffen wurde, alle Dateien verarbeiten

    selectedFiles = fileList;

  }

  else

  {

    // Verarbeite die ausgewählten Nummern und Bereiche

    string[] inputParts = input.Split(',');

    HashSet<int> indices = new HashSet<int>();

    foreach (string part in inputParts)

    {

      if (part.Contains('-'))

      {

        string[] rangeParts = part.Split('-');

        if (rangeParts.Length == 2 &&

          int.TryParse(rangeParts[0].Trim(), out int start) &&

          int.TryParse(rangeParts[1].Trim(), out int end))

        {

          for (int i = start; i <= end; i++)

          {

            indices.Add(i);

          }

        }

      }

      else if (int.TryParse(part.Trim(), out int index))

      {

        indices.Add(index);

      }

    }

    foreach (int index in indices)

    {

      if (index > 0 && index <= fileList.Count)

      {

        selectedFiles.Add(fileList[index - 1]);

      }

    }

  }

  return selectedFiles;

}
Da fehlt sehr sehr viel beim Code, aber es geht um die Eingabe. Ich gebe ein:
1,2,4-6,3 Aber er macht nur was mit 1 2 3 udn 4 bis 6 lässt er weg, warum?

C Sharp, Code, Programmiersprache

Wie funktionieren Klassen in C#?

Hallo, ich habe große Verständniss Schwierigkeiten mit meinen momentanigen Thema in meinem IT Kurs. Wir machen aktuell C# und antscheind habe ich das Prinzip einer Klasse noch nicht ganz verstanden. Ich werde meinen Code unten rein packen, um Fragen geklärt zu bekommen.

Kontext zum Code

Ich soll im allgemeinen ein Programm schreiben, indem man 4 oder mehr Wiederstände miteinander verrechnet. Dazu soll eine Klasse Wiederstand erstellt werden. Eine Instanz der Klasse kann nur mit der Angabe des Widerstandswerts gebildet werden. Der Wert kann gelesen, aber nicht verändert werden. Instanzen der Klasse Widerstand können mit + addiert werden. Dann ergibt sich der Widerstand, als Gesamtwiderstand einer Reihenschaltung. Der Operator / berechnet den Gesamtwiderstand einer Parallelschaltung. Die Methode ToString() liefert den Widerstandswert als Text mit Einheit zurück. Dazu sollen wir zudem ein User Interface anlegen.

Meine Fragen in Bezug auf den Code:

  1. Wieso kann ich in Operatoren nur 2 Operatoren gleichzeitig überschreiben? Dazu soll ich ja mehrere Wiederstände beispielsweise in eine Reihenschaltung schalten. Den + operator überschreibe ich ja so, dass ich: R1 + R2 zusammen addieren kann. Das geht ja jedoch nur mit max: R1 + R2 + R3 und dann ist schluss. Die einziege Lösung, die mir da einfällt ist ein Array und eine Schleife zu benutzen.
  2. Als zusätzliche Lösung für mein 1 Problem, habe ich überlegt statt einen Operator zu überschreiben eine einfache Funktion anzulegen, die dies berechnet. Jedoch ist das nicht die Aufgabenstellung. Dazu meine Frage: Wieso keine Funktion benutzen sondern einen Operator überschreiben, wo liegt da der Sinn?
  3. Die Frage bezieht sich auf den Code hinter dem User Interface. Wie kann ich generell auf meine Klasse zugreifen und vom User eingebende Werte in meine Klassen Vabriable Wert schreiben? Muss ich dazu immer eine neue Klasse erstellen?
  4. Wie hängt der Operator mit der Vabriable Wert meiner Klasse zusammen? In den Operatoren habe ich ja Vabriablen wie R1 und R2. Wie werden also dort die verschiedenen Werte herrein geschrieben?

Hier mein Code: (ich kann den leider nur als Foto beilegen, da es sonst die Zeichengrenze überschreitet)

Vielen Dank an jeden, der sich die Geduld und Zeit nimmt mir zu helfen, da ich bald eine Klausur schreibe und schon ein bisschen Verzweifelt bin!

Bild zum Beitrag
C Sharp

Meistgelesene Beiträge zum Thema C Sharp