Wie du schon weißt, erbt jede eigene Klasse von der Klasse Object. Nun enthält die Klasse object zum Beispiel eine equals Methode, die man überschreiben kann:

public boolean equals(Object obj)

Du kannst im Prinzip jedes Objekt jeder Klasse übergeben.

Stell dir vor du hast eine Klasse Lehrer mit den Attributen vorname und nachname.

Dann kannst du innerhalb der Lehrer Klasse die equals Methode überschreiben und ein beliebiges Objekt einer beliebigen Klasse mit dem Lehrer Objekt zu vergleichen:

public class Lehrer() {
	public String name;
	public String nachname;
	
	public Lehrer(name, nachname) {
		this.name = name;
		this.nachname = nachname;
	}




	public boolean equals(Object obj){
		// Wenn obj auch ein Objekt der Klasse Lehrer ist
		if (obj instanceof Lehrer) {
			//obj nach Lehrer casten, da die Klasse Objekt nicht die Attribute name, nachname hat
			Lehrer obj_L = (Lehrer) obj
			// Vergleiche Vor- und Nachname und gebe das Ergebnis zurueck
			return (this.name.equals(obj_L.name) && this.nachname.equals(obj_L.nachname));
        }
		// Wenn obj ein Objekt einer anderen Klasse ist, kann es nicht gleich sein.
        return false;
      }
    }
...zur Antwort

Du könntest in der Methode die Liste einmal durchlaufen und immer die Zeiten vergleichen.

Wenn die Zeit des gerade in der Schleife betrachteten Elements größer (oder gleich?) als die Zeit des einzufügenden Elements ist, fügst du das Element davor ein und brichst die Schleife ab bzw. beendest die Funktion/Methode mit einem return.

Sollte es kein Element geben, welches eine größere Zeit hat als das einzufügende Element (Also du Schleife ist einmal durchgelaufen), dann fügst du es am Ende ein.

Pseudocode:

abl_time = abl.time
for (index, element in liste)
  if (element.time >= abl_time)
    liste.insert(abl, index) // in Java wäre es liste.add(index, abl)
    return;
liste.append(abl)
...zur Antwort

Ein Ladezyklus ist ein Ladevorgang von 0% auf 100%, der also im Prinzip eine ganze Akkukapazität beinhaltet. Lädst du von 30% auf 80% auf lädst du quasi nur 50%, was ungefähr einem halben Ladezyklus entspricht. Das ganze ist eigentlich nicht linear, aber man kann es so annähern.

Wenn du jetzt dein Handy zweimal von 30 auf 80 lädst, dann wäre das ein Ladezyklus, was genau so viel wäre, wie den Akku einmal von 0 auf 100 zu laden.

Sprich, du lädst zwar öfter, aber nicht wirklich "mehr". Und da die Akkus in den extremen Ladezuständen mehr leiden also irgendwo in der Mitte, lebt der Akku im Schnitt länger bzw. hält seine Kapazität langer, wenn man ihn nicht in die Extreme kommen lässt.

Dem Akku schadet es also nicht , wenn du ihn zwar öfter auflädst, aber außerhalb der Extreme bleibst.

...zur Antwort

Ich nehme mal an mit viel Bits und wenig Bits sind Redundanzbits gemeint, also zusätzliche Bits anhand derer man erkennen kann, ob (und ggf. wo ungefähr) sich bei der Datenübertragung Fehler eingeschlichen haben.

Wenig Bits:

Ein Vorteil ist die Übertragungsgeschwindigkeit, die - unter sonst gleichen Bedingungen - schneller sein sollte als bei einer Übertragung mit vielen (Redundanz-)Bits
Ein Nachteil wäre - je nachdem welches Verfahren man nutzt - dass die Fehlererkennung schwächer sein kann, also Fehler zum Beispiel gar nicht entdeckt werden. Hier als Stichwort zum Beispiel Paritätsbit.

Viele Bits:

Vorteil wäre, dass Fehler bei der Übertragung besser erkannt werden können. Man könnte zum Beispiel Redundanzbits für die Redundanzbits nutzen, was die Fehlererkennung verbessern könnte.

Nachteil ist, dass logischerweise mehr Daten gesendet werden und die Übertragung länger dauert.
Außerdem können ja auch die Redundanzbits Fehler nach der Übertragung enthalten und dann kann ein Fehler erkannt werden, obwohl die Originaldaten womöglich sogar richtig angekommen sind, oder es wird kein Fehler erkannt, obwohl es einen Fehler gab, weil zufällig die gleichen Bits in Original und Redundanz gedreht wurden.

...zur Antwort

Das ist im Prinzip egal, denn es geht letztendlich um das Verhältnis der Werte und diese bleiben immer gleich, egal wie groß oder klein das Dreieck ist bzw. an welcher Position entlang der Gerade es sich befindet. Du könntest es also auch bei x=2, y=8 einzeichnen.

Das Dreieck gibt einem ja das Verhältnis

(y2-y1) / (x2-x1) = Steigung der Geraden

Du kannst für die Punkte (x1, y1) und (x2, y2) also beliebige (zu der Geraden gehörenden!) Werte einsetzen.

Zum Beispiel

x2=5, y2=20 und x1=4, y1=16

(20-16) / (5-4) = 4

Oder

x2=5, y2=20 und x1=2, y1=8

(20-8) / (5-2) = 12/3 = 4

...zur Antwort

Bei manchen neueren Spielen gibt es in dem Grafikoptionen eine Einstellung - DRS oder Dynamic Resolution Scaling - oder zu deutsch Dynamische Auflösungsskalierung.

Damit wird bei in berechnungsaufwendigen Bereichen/Szenen die Auflösung verringert, damit man keinen (starken) Leistungseinbruch hat und eine stabilere Framerate hat.

Ich besitze FH5 nicht, aber ich kann mir gut vorstellen, dass dort so eine Einstellung existiert und bei dir aktiviert ist.

...zur Antwort

Befinden sich auf den anderen selbst gebrannten CDs auch Lieder im mp3 Format, oder haben diese ein anderes Format?

Mein Autoradio damals konnte zum Beispiel nicht mit mp3 umgehen und ich musste die CD nicht als MP3-CD (Dateiformat .mp3), sondern als Audio-CD brennen (Dateiformat .cda)
Das nervige daran ist, dass auf die CD dann nur im Schnitt 15-20 Lieder draufpassen, statt mehrere hundert wie bei mp3.

...zur Antwort

Wenn es in den Shaderoptionen nichts in der Richtung einzustellen gibt und du dich nicht zufällig mit der Programmierung von (GLSL-) Shadern auskennst, wirds problematisch.

...zur Antwort
Nein bin zufrieden mit meinem Windows / MacOS.

Never Change a running System

Ne aber im Ernst, ich habe es immer mal wieder versucht aber am Ende war ich mit Windows als Hauptsystem dann doch zufriedener.

Bei mir gab's zum Beispiel immer wieder Probleme mit meiner Soundkarte, dass plötzlich kein Ton mehr da ist, oder der Ton übersteuert oder klingt verzerrt....unter Windows nie Probleme gehabt.

MS Office ist für mich auch etwas, das Laufen muss - wobei das ja nicht an Linux selber liegt - trotzdem ist das auch ein Punkt, der mich von Linux abhält.

Und ich habe bisher auch immer das Gefühl gehabt, dass die Linux- bzw. Ubuntu Benutzeroberfläche irgendwie...ruckelt. Als wären meine Bildschirme auf 30Hz statt 144Hz eingestellt.

Wobei ich aber sagen muss, dass ich trotzdem auch ein System besitze auf dem ich Linux installiert habe. Allerdings ist das mein 'Hobby-PC' auf dem ich, wenn ich denn mal Zeit finde, Programmiere, Machine Learning betreibe oder ein bisschen 'wissenschaftlich' forsche.

In solchen Angelegenheiten muss ich sagen, dass mir Linux da am besten gefällt, da es bei mir immer quasi 'Plug and Play' war. Bei Windows muss man immer noch dies und das von irgendwelchen Seiten runterladen und installieren, wo man bei Linux zur Not einfach fix 'ne Zeile ins Terminal eingibt und ready ist.

...zur Antwort

Eine 75Mbit/s Leitung ist eine 75.000Kbit/s Leitung.

Wenn du einen Download von 27Mb/s hast, dann enspräche das einer 216Mbit Leitung (da 27*8=216)

216 ist für Internetleitungen eine wirklich sehr ungewöhnliche Zahl, daher würde ich auf eine 250Mbit Leitung tippen, womit man im besten Fall 31Mb/s im Download hat.

...zur Antwort

Wenn du mit 5mbps 5 MBit/s meinst, ist es wirklich sehr langsam -> damit wirst du vermutlich nicht mal ein 1080p Video auf Youtube ruckelfrei sehen können und ein 18 GB Download würde ungefähr 8h dauern.

Meinst du aber 5MByte/s, dann entspräche das einer 40MBit/s Leitung, was schon eher in die Richtung des heutigen Standards geht. Damit sollten Netflix & Youtube auf 4K kein Problem sein und ein 18 GB Download würde ungefähr eine Stunde dauern (Wobei man ja nicht immer zu jeder Zeit genau 40MBit/s hat).

...zur Antwort

Die genaue Regel kenne ich nicht, aber ich spiele es mit meiner Familie immer so, dass man auch die Steine aus der Mitte manipulieren darf.

Wir spielen es auch so, dass man eine Reihe theoretisch komplett zerpflücken/verschwinden lassen kann, wenn man die Steine anderswo anlegen kann.

...zur Antwort

In der Email stand, dass Telefonica zum Konto hinzugefügt wurde. Dementsprechend wird das Geld wohl von deiner SIM-Karte abgebucht.

Du solltest auf jeden Fall im Play Store nachschauen, ob das eine einmalige Zahlung, oder ein Abonnement war und im Falle eines Abonnements dann stornieren.

Vielleicht solltest du auch gucken, ob du Telefonica als Zahlungsmethode entfernen kannst, oder zumindest in den Einstellungen ein Passwort für Käufe im Play Store festlegen, damit sowas nicht noch einmal passiert.

...zur Antwort
Ja, ich würde mich freuen, weil....

Es kommt ein bisschen darauf an, denke ich. Ich persönlich würde mich sehr darüber freuen, da ich weniger Wert auf materielle Geschenke, sondern eher auf persönliche, gemeinsame Geschenke setze. Wenn mir meine Freundin die Wahl zwischen einer PS5 und einem gemeinsamen Abend lassen würde, entscheide ich mich für den gemeinsamen Abend - das Geld für die PS5 kann man besser für einen gemeinsamen Ausflug nutzen.

Aber dies ist meine Meinung und es kann natürlich sein, dass dein Partner anders darüber denkt.

Dennoch denke ich, dass er sich freuen würde, schließlich liebt ihr einander und das ist auch nochmal ein gefestigter Liebesbeweis, quasi schwarz auf weiß und wirkt (würde es zumindest bei mir) nochmal ganz anders, als ein "routinemäßig dahergesagtes" Ich liebe dich. Und wenn du dir Mühe gibst und es von Herzen kommt, wird er das zu wertschätzen wissen.

...zur Antwort

Du solltest die Themengebiete im Allgemeinen verstanden haben, sodass du weißt welche vorliegenden Methoden oder Gleichungen du aus den Büchern, Skripten oder Übungsblättern anwenden musst.

Nimm dir Aufgaben aus Altklausuren oder Übungsblättern vor und versuche diese zu lösen. Mache dir klar, wo du noch deine Defizite hast, schaffe dir einen Überblick darüber, was du gut und was du noch nicht so gut kannst.

Ordne dein Hilfsmaterial, sodass du während der Klausur im Zweifel schnell und effizient Informationen über das jeweilige Thema erlangen bzw. dich wieder schnell an Informationen und Verfahren erinnern kannst.

Hänge dich nicht an einzelnen Aufgaben auf, die du nicht in angemessener Zeit lösen kannst. Markiere diese als Defizit und vertiefe dein Wissen auf diesem Themengebiet. Oft hilft es auch ähnliche Aufgaben zu lösen, um das ganze aus einem anderen Winkel zu betrachten und neue Ideen zur Lösung zu bekommen.

Mache dir bewusst was du alles an Hilfsmittel in die Klausur mitnehmen willst/solltest. Meiner Erfahrung nach wirst du nicht genug Zeit haben ein Buch oder einen Ordner nach einem Thema zu durchblättern, wenn es nicht gut organisiert und geordnet ist.

Open Book bedeutet zwar, dass Bücher etc. genutzt werden dürfen, jedoch solltest du dich nicht darauf stützen, dass diese dir (rechtzeitig) in der Klausur helfen werden.

...zur Antwort

Du möchtest einen physischen Schalter, der auf Knopfdruck eine Aktion auslöst?

Dazu musst du wissen, an welchem Pin des Arduinos der Schalter angeschlossen ist.

Dann kannst du in der loop() eine if Abfrage machen, ob der Pin high ist und darin dann den Befehl oder Code, der ausgeführt werden soll.

Beachte aber, dass der Befehl/Code sooft durchgeführt wird, wie der Schalter aktiv ist. Damit der Code nur einmal beim aktivieren ausgeführt wird, kannst du zum Beispiel in einer Variablen den Zustand des Schalters vorher speichern. Und dann sobald der Zustand vorher nicht dem jetzigen Zustand entspricht und der Schalter high ist, kann der Code ausgeführt werden. Innerhalb der if abfrage muss dann aber auch die Variable die alten Zustand beschreibt den aktuellen Zustand zugewiesen bekommen.

...zur Antwort
Java - Komponenten aus einem Graph berechnen / Algorithmus?

Hallo, ich arbeite gerade an einem Graphenprogramm und der nächste Schritt ist es ,mir die Zusammenhangskomponenten des Graphes auslesen zu lassen.

Eine dafür notwendige Wegmatrix habe ich schon programmiert:

public void berechneKomponenten()
    {
        
        for (int i = 0; i < Matrix.length; i++)
        {
            for(int j = 0; j < Matrix[i].length; j++)
            {
                if(WegMatrix[i][j] == 1)
                {
                    int buchstabe_int = i+65;
                    char buchstabe_char = (char) buchstabe_int;
                    
                    System.out.print(buchstabe_char + ",");
                }                        
            }        
        }
    }

Die Ausgabe sieht so aus:

A, A, A, B, B, C, C, C, D, D, D, E, E

--------------------------------------------------------

Und das ist im Prinzip auch richtig, denn:

Die Buchstaben (A-E) habe ich zum Verständnis hinzugefügt.
-------------------------------------------------------------------------------------

Meine Wegmatrix hat:

  • 3 A's
  • 2 B's
  • 3 C's
  • 3 D's
  • 2 E's

Verglichen mit meiner Ausgabe:

A, A, A => 3 A's
B, B => 2 B's
C, C, C => 3 C's
D, D, D = > 3 D's
E, E => 2 E's

-----------------------------------

Doch die Ausgabe sollte so aussehen: (Siehe K1 und K2)

bzw so:

Wie schaffe ich das?

Danke!

...zur Frage

Hab leider noch nie mit Wegematrizen gearbeitet, aber für mich sieht es so aus, als müsste man für die Menge der beteiligten Knoten einer Komponente einfach die Spalten für jede Zeile durchgehen und schauen wo eine 1 steht. Diese Knoten fügt man dann einer Menge hinzu. Und dann muss man halt noch darauf achten, dass es nicht mehrere gleiche Komponenten geben kann, also pro Zeile schauen, ob es diese Komponente schon gibt.

Ich bin mir aber nicht sicher, ob man aus der Wegematrix ablesen kann, dass (in deinem Beispiel jetzt) nur Kanten zwischen (1,3) und (1,4) existieren.

Soweit ich es verstanden hab, gibt die Wegmatrix an, ob man von einem Knoten irgendwie, also nicht nur auf direktem Weg zum anderen Knoten kommen kann.

Ich denke die Adjazenzmatrix könnte da helfen die direkten Kanten zwischen den Knoten bzw. die Knoten mit einer direkten Kante innerhalb einer Komponente zu bestimmen.

...zur Antwort