Das klingt jetzt nicht nach einem HW Problem (auch nicht Bildschirm). Du kannst als Gegenprobe einfach mal den Laptop an einen Bildschirm anschließen (ersatzweise TV) - da würde ich ein ähnliches Verhalten erwarten. Solche Sachen lassen sich auf die Ferne immer schwer analysieren, könnte ein Treiberproblem sein - oder ein Temperaturproblem (weiß auch nicht was du mit "GTA buggt" meinst...evtl mal ein Handyvideo aufnehmen).

Seit einigen Jahren hat eigentlich jeder vom Hersteller eingerichteter Laptop eine Systemwiederherstellungspartition, womit du dein Windows auf Anfang zurücksetzen kannst (Vorsicht: Du verlierst damit alle Daten und Logins etc) - das würde ich dir empfehlen.

Weniger ballistische Ansätze wären erstmal Treiberupdates (gibt es häufig auf der Webeite des Herstellers ein Tool zu), Systemupdates, unnütze Sachen deinstallieren - auch Virusbefall kann man nicht ausschließen. Vllt auch mal Tools wie Furmark unter Beobachtung (!) laufen lassen ob du Temperaturprobleme hast und eine Reinigung ansteht (Kompressor oder Luft aus der Dose vom Baumarkt).

Gibt auch noch Tools wie CCleaner, die versprechen Softwareseitige Probleme zu lösen. Ich halte davon ehrlich gesagt nichts (nicht weil ich schlechte Erfahrungen gemacht habe - ein PC ist aber kein Mac und es gibt so viele verschiedene Konfigurationen/Installationen etc - da fehlt mir das Vertrauen das er nicht was kaputt macht wenn er automatisiert in der tiefsten Systemconfig repariert). Früher gab es mal Hijackthis, was den Nutzer auf potentielle Probleme hingewiesen hat und er durfte sein System dann selber kaputt machen - das war mehr nach meinem Geschmack (das Projekt scheint aber mehr oder minder tot zu sein, das Tool gibt es aber immer noch - wenn du mir einen Log zukommen lässt, kann ich es mir gerne mal unverbindlich anschauen).

Ist halt eine Abwägung: Holzhammer (alles auf Null) ist am sichersten, aber eher unbequem. Eine Problemanalyse ist aufwendig, benötigt Erfahrung und Feinspitzengefühl - und kann am Ende trotzdem zu wenig Erfolg führen, weil die Erfahrung/das Wissen doch nicht ausreichend war.

...zur Antwort

Das \ wird für die Escape-Sequenz (kann man googlen, wenn man den Begriff kennt ;-)) benötigt um andere Sachen darzustellen (z.B. einen Zeilenvorschub). Um ein\ darzustellen, musst du es selber "escapen", also \\ schreiben.

...zur Antwort

In einem PC läuft alles immer sehr geordnet, ein echter Zufall ist nicht möglich, es ist eher eine Simulation. Vereinfacht dargestellt: Du hast einen Seed (Anfangswert) und der wird immer nach einem Algorithmus durchgemischt - wenn dieser Seed aber bekannt ist, lassen sich die Zufallswerte errechnen.

Das ist vor allem in der Kryptographie ein Problem, da es Angriffvektoren schafft, deswegen lohnt es sich mal nach Zufall+Kryptographie zu googlen.

Ein genereller Ansatz ist es, diesen Algorithmus mit Entropie anzureichern. Diese wird aus externen Quellen erzeugt, z.B. Mausbewegungen, Tastatureingaben, Temperaturen und sonstigen, was sich algorithmisch nicht vorhersehen lässt. Mit dem Wissen über dieses Vorgehen ist der Zufall trotzdem angreifbar (aber ungleich schwerer).

In der Quantenmechanik sollte es meines Wissens möglich sein echten Zufall zu erreichen - aber abgesehen davon, dass du wahrscheinlich keinen Quantenrechner im Wohnzimmer stehen hast, ist mein Wissen bei der Thematik eher auf Halb-Wissen beschränkt.

...zur Antwort

PNG basiert im wesentlichen auf RLE (RunLengthEncoding). D.h. zusammenhängende Blöcke mit der gleichen Farbe werden verlustfrei zusammengefasst.

JPEG komprimiert nicht verlustfrei komprimiert. Stark vereinfacht passiert das wie folgt:

  • zunächst wird der Farbbereich konvertiert in ein YCbCr-Modell
  • da der Mensch Helligkeiten sehr viel stärker wahrnimmt, wird dann die Y-Komponente schwach komprimiert
  • bei den Farb-Komponenten CB und Cr sind wir viel toleranter (das fällt weniger auf). Diese werden in kleinere Blöcke aufgeteilt, die durch eine Wellenfunktion beschrieben werden (die Blöcke kann man gut in Kompressionsartefakten sehen)

Durch die Beschreibung durch eine Welle haben JPEGs ein gewisses Rauschen, was sie für RLE (oder halt PNG) ungeeignet macht. Man kann bei einem Bild natürlich den Farbbereich einschränken um das Rauschen wieder zu entfernen, das macht aber nur begrenzt Sinn (bei Comics z.B.).

Grundsätzlich ist das vom Ausgangsmaterial abhängig, ein Disney-Comic würde ich PNG-komprimieren, bei einem Gradienten-behafteten Manga lohnt sich wahrscheinlich eher JPEG - bei Photos ist in der Regel JPEG überlegen.

...zur Antwort

Grundsätzlich machst du mit keinen der 3 Sprachen was falsch.

Ich bin kein großer Fan von Java (war es aber mal) und habe das Gefühl, dass es seinen Zenit überschritten hat (kann aber auch selektive Wahrnehmung sein, gibt ja auch z.B. Scala was auf Java basiert). Durch die syntaktische Nähe zu C# oder C++ lohnt sich ein Blick trotzdem.

JavaScript geht gerade ziemlich gut im Kontext HTML5 steil und man kann (insbesonders mit node.js) ziemlich fix beeindruckende Webseiten (bzw auch Standalone-Applikationen) erschaffen. Hat neben dem Namen übrigens nicht viel mit Java gemein. Bin hier aber selber relativ unerfahren, persönlich habe ich damit "nur" managementfreundliche Visualisierungen erstellt. Ist für mich persönlich aber nur eine "Hilfs-Sprache"

Mein persönlicher Favorit ist Python - und es freut mich gelesen zu haben, dass das auch dein Favorit ist ;-). Bis heute ist es für tägliche Aufgaben für mich unersetzlich (sowohl beruflich, als auch Privat). Für mich sind das idR eher "langweilige" Konsolenprogramme, das kann aber auch zu interessanten Projekten (auch Semi-Bot) führen (Cross-Postings nach Reddit würde ich hier vermeiden wollen mangels Wissens über irgendwelche Richtlinien, bei Interesse gerne nachfragen)
Es lässt sich nicht direkt auf andere Sprachen umsetzen wie Java/C++/C# - aber die Paradigmen lassen sich transferieren. Es lassen sich nicht so fix fancy Ergebnisse erreichen wie mit JS. Aber es ist schnell erlernt und zum experimentieren ideal. Es gibt auch viele Bibliotheken für alles mögliche (u.a. GUIs, Spiele, MachineLearning) - wobei ich das den anderen nicht absprechen will, habe da nur keine Erfahrung. Lässt sich übrigens wunderbar mit JS verbinden...die oben genannte Management-Visualisierungen erzeuge ich mit Python.

Buchempfehlungen finde ich schwierig. Heutzutage gibt es viele Ressourcen (eBooks, Youtube) die sich von etwas gedruckten in der Qualität kaum unterscheiden. Wenn es ein Buch sein soll, schau mal nach "Schrödinger programmiert Python". Kenne nur die C++ Version, die fand ich sehr erfrischend - etwas kindlich, dennoch fachlich und motivierend. Ich weiß nicht ob die Python Version taugt, aber neben den Online-Ressourcen, wäre das das einzige was sich (meines Wissens) von anderen Printmedien abhebt.

...zur Antwort

Es sollte `else if` heißen und nicht `if else`

Pro-Tipp: In GF.net kann man seinen Code wunderbar formatieren:

@echo off
color 0a 
:A
echo [1] test 1
echo [2] Test 2
set /p a=": "
if %a%==1 (
    echo Test 1
) else if %a%==2 (
    echo Test 2
)
pause >NUL 
goto :A
...zur Antwort

Beides (FossHub und GitHub) sind vertrauenswürdige Quellen. Die Spalte ist also egal.

Mit einem Installer kannst du das Tool installieren, d.h. es kommt ins Startmenü, evtl auch auf den Desktop, was sehr bequem ist. Du verlierst aber die Kontrolle, wo es auf deinem Rechner Daten speichert (das wird schon irgendwo dokumentiert sein, man muss sich aber kümmern).

Die portable zip ist einfach eine zip-Datei, da ist die exe drin, die du ausführen kannst. Du bekommst da idR keine Startmeüeinträge, und alle Einstellungen werden neben dieser exe gespeichert. Der Name portable kommt daher, dass du das auf einen USB Stick packen könntest und an jedem Rechner so nutzen kannst ohne es irgendwo installieren zu müssen.

Was dir von beidem besser zusagt, ist persönliche Entscheidung (manchmal auch Fallentscheidung). Ich persönlich präferiere portable (in den meisten Fällen) da ich das etwas mehr an Kontrolle mag. Ist es aber ein Tool was ich häufiger nutze, habe ich es gerne im Startmenü.

...zur Antwort

komische Frage, so wie die gefragt ist, kann man die nicht pauschal beantworten.

Grundsätzlich aber:

BMP: Unkomprimiertes Bild, jedes Pixel braucht Speicher entsprechend der Farbtiefe

GIF: verlustfrei komprimiert, limitiert auf 256 Farben (es gibt Ausnahmen)

PNG: Ebenfalls verlustfrei komprimiert, allerdings anderer Algorithmus als GIF, mehr Farben möglich. Das "bessere GIF" (wenn man sich auf Einzelbilder beschränkt)

JPG: Verlustbehaftet (es gibt Einschränkungen in der Bildqualität) komprimiert

SWF: Ein Vektorformat - es beschreibt keine Pixel, sondern Linien und Flächen. Also eher klein, abhängig vom Detailgrad. Verlustfrei skalierbar

CDR: CorelDraw nehme ich an (kurze Recherche) - hier würde ich mehrere Layer erwarten, tendenziell größer als BMP, möglicherweise aber auch noch komprimiert (verlusfrei) - kann ich aber nichts mit Sicherheit sagen.

Die tatsächliche Größe hängt aber stark vom Motiv und den Einstellungen (zweiteres insbesonders bei JPEG) ab. Ein roter Block lässt sich natürlich mit statistische Methoden (also den verlustfreien) viel besser komprimieren als eine Mona Lisa.

...zur Antwort

Da gibt es eine Latte an Möglichkeiten. Installierte Programme halte ich für unwahrscheinlich, du kannst aber im Taskmanager unter dem Reiter Autostart überprüfen ob irgendetwas einen größeren Einfluss hat, womit du nicht rechnest.

Wahrscheinlich sind aber eher fehlerhafte Treiber oder (mein Favorit) fehlerhafte BIOS/UEFI Einstellungen. Treiber neu installieren über die entsprechenden Seiten von den Herstellern von Grafikkarte etc (wobei hier Windows Update selber schon einen passablen Job macht).

Die UEFI Einstellungen kannst du über Einstellungen (Win-Taste dann Zahnrad) -> Update und Sicherheit -> Wiederherstellung -> Erweiterter Start. Dann startet der Recher neu und du bekommst ein neues Menü. Da sollte es sowas wie UEFI-Shell geben (habe es jetzt nicht selber probiert, weil ich den Rechner nicht neu starten will ;-)). Das führt dich zu den Einstellungen vom Mainboard. Das sieht je nach Hersteller unterschiedlich aus. Besonderes Augenmerk solltest du auf die Bootreihenfolge legen (die m.2 sollte das erste sein). Interessant wäre auch Fastboot, u.U. kann es sich auch mal lohnen diesen zu deaktivieren.

...zur Antwort

Scheint ein bekanntes Problem (#1, #2) zu sein. Lösung ist es, das Ubuntu Dock zu deaktivieren:

gnome-extensions disable ubuntu-dock@ubuntu.com
...zur Antwort

Ich habe die Seite jetzt nur mal kurz überflogen, kannte sie selber vorher noch nicht. Macht einen soliden Eindruck - Bonuspunkte gibt es für die Erwähnung des Turtle-Modules, hat mich etwas nostalgisch werden lassen (wusste gar nicht, dass es das gibt - macht aber Sinn).

Tu dir aber den Gefallen die Themen von oben nach unten durchzugehen, auch wenn es am Anfang etwas zäh wirkt (wobei die Seite das recht locker präsentiert) - die coolen grafischen Sachen machen erst Sinn, wenn die Grundlagen da sind. Du wirst es dir danken :-) Nebenbei: ungefähr 95% der Python Skripte die ich geschrieben habe, haben keine GUI, sondern nur Text. Python ist unglaublich mächtig um fix mal diverse Sachen zu automatisieren, da braucht es nicht immer ein fancy Fenster dazu. Kann aber auch gut verstehen, dass man mal was zum sehen haben möchte.

Das mit den Datenbanken würde ich aber weglassen - nur falls du es meinst zu brauchen mitnehmen. PyGame kannst du mitnehmen, wenn du Bock auf Spiele hast, ansonsten auch eher Spezialwissen (die Beispiele werden aber bestimmt auch Grundparadigmen vertiefen)

Wenn ich eine Sache an der Seite bemängeln müsste: Ich mag IDLE nicht. Es ist irgendwie eine Shell, die keine Shell ist und ein Editor, der kein Editor ist. Es wird ja aber dankenswerter noch Atom erwähnt - ist zwar nicht mein Editor der Wahl aber im Prinzip geht alles >Notepad. Ich persönlich nutze VS Code als Editor. Aber hauptsächlich nutze ich Jupyter Notebook um mal diverse Sachen auszuprobieren - schrittweise zu entwickeln - ist aber ein Webtool, für Grafiksachen also zumeist ungeeignet (was wie bereits erwähnt für mich eher irrelevant ist) - für die Grundlagen aber auf jeden Fall einen Blick wert.

...zur Antwort

Also grundsätzlich findest du ausreichend Ressourcen im Internet um ohne ein Buch auszukommen (der Nostalgiker in mir empfiehlt SELFHTML). Viele Quellen erfordern aber Geduld und/oder Vorwissen. Das reicht mir wenn ich mal an einem eher seltenem Webprojekt arbeite, kann aber auch überfordern wenn man noch am lernen ist.

Jetzt bin ich aber neulich auf eine Buchreihe gestoßen, die ich für genial hielt. Konkret durfte ich "Schrödinger programmiert C++" in den Händen halten. Ich habe es zwar nur durchgeblättert (da ich die Sprache bereits beherrsche), aber es wirkte kompetent und war zugleich extrem erfrischend - kein Blocktext oder Tabellen, einfach ganz anders...aufgelockert und motivierend mit spaßigen, praktischen Beispielen.

Kurzum auf deine Frage gegoogelt: Es gibt "Schrödinger lernt HTML5, CSS und JavaScript". Wenn das Buch so gut ist wie die C++ Version, würde ich es empfehlen. Aber: Noch nie gelesen. Meine Empfehlung sind also eher Vorschusslorbeeren und zugegebenermaßen ist es eher Preisintensiv. Aber es mal in den Raum zu werfen kostet mich nix und du kannst nach Recherche und Probelesen entscheiden, ob es was für dich wäre ;-)

...zur Antwort

Also erstmal: HTML ist keine Programmiersprache :-P

Aber zur Antwort: selfhtml ist dein Freund, das war früher eine sehr hilfreiche Quelle und scheint auch heute noch äußerst nützliche Ressource zu sein: https://wiki.selfhtml.org/wiki/HTML/Tutorials/Einstieg

...zur Antwort
C Programm Code (Arrays, Pointer)?

Ich arbeite gerade als Programmier-Anfänger an einem C Code und komme leider nicht weiter.

Meine Aufgabe ist es, ein Programm für einen Paketdienst zu schreiben, welches fünf Artikel kostengünstig versenden will. Der Dienst berechnet für Pakete bis zu einem Gewicht von (inklusive) 10 kg 3 € Versandkosten. Darüber hinaus sind für jedes zusätzliche Kilo 45 Cent zu bezahlen.

In der Funktion packePakete möchte ich den Artikel über die Artikelgewichte iterieren. Jeder Artikel mit mehr als 10 kg bekommt ein eigenes, neues Paket. Von den Artikeln, die nicht mehr als 10 kg wiegen, werden so viele wie möglich zusammengepackt, so dass dabei einzelne Pakete nicht mehr als 10 kg wiegen. Pakete können unbenutzt bleiben, indem ihr Gewicht auf 0 bleibt.

In berechnePaketKosten muss ich über die Paket (Gewichte) iterieren, und die Kosten nach obigem Schema summieren. Pakete mit dem Gewicht 0 werden missachtet.

Mein Ansatz steht ganz unten. Ich weiß, was zu machen ist und im Prinzip ist auch das Vorgehen vorgegeben, ich weiß aber nicht, wie ich den Code sinnvoll schreiben soll bzw kann.

Über alle Tipps und Hilfestellungen freue ich mich!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void packePakete( int paeckchenGewicht[], int artikelGewicht[] )
{
    if(artikelGewicht[5] <= 10) // Wenn kleiner gleich 10 kg
    {
        // So viele wie möglich zusammenpacken, bis maximal 10 kg
    }
    else if(artikelGewicht[5] > 10) // Wenn über 10 kg
    {
        // Kriegt extra ein neues, eigenes Paket
    }
    else artikelGewicht = 0;
}

double berechnePaketKosten( int paeckchenGewicht[] )
{
    float versandkosten = 0.0;
    if(paeckchenGewicht[5] <= 10) // Wenn Päckchen leichter als 10 kg
    {
        versandkosten = 3; // Versandkosten von 3€
    }
    if(paeckchenGewicht[5] > 10) // Wenn Päckchen schwerer als 10 kg
    {
        // Versandkosten von 3€ + für jedes extra Kilo 45 Cent.
    }
    else paeckchenGewicht = 0;
    return versandkosten;
}

int main () // nicht aendern!
{
   int artikelGewicht[5];
   artikelGewicht[0] = 60;
   artikelGewicht[1] = 57;
   artikelGewicht[2] = 6;
   artikelGewicht[3] = 9;
   artikelGewicht[4] = 4;
   printf("\nArtikelgewichte: %d, %d, %d, %d, %d.\n",
                     artikelGewicht[0],artikelGewicht[1],artikelGewicht[2],
                     artikelGewicht[3],artikelGewicht[4]);
   
   int paeckchenGewicht[5] = {0,0,0,0,0};
   packePakete( paeckchenGewicht, artikelGewicht );
   
   double endkosten = berechnePaketKosten( paeckchenGewicht );
   printf("\nDie Gesamtsumme ihrer Paeckchen betraegt: %.2f Euro.\n", endkosten);
}



...zum Beitrag

Hey, gut formulierte und formatierte Frage, sieht man immer seltener. Würde gerne helfen, es wäre aber sinnvoll, wenn du noch etwas zu den Randbedingungen schreibst. Welche von den Funktionen ist gegeben (bei main steht nicht ändern, ist die so gesetzt?), welche hast du dir selber überlegt? Gibt es Einschränkungen zu globalen Variablen? Dürfen struct verwendet werden? Müssen diese Funktionen so benutzt werden?

Ich frage so explizit, weil es verschiedene Lösungsansätze gibt, deiner hat auch schon gute Ansätze, scheitert aber schon alleine daran, dass er in der aktuellen Form nicht mal kompilierbar ist.

Diese Aufgabe ist zugegeben tatsächlich etwas knifflig - das kann man lösen und man kann es elegant lösen ;-) Will dir aber keine Lösung hinwerfen, die zwar funktioniert, du aber nicht verstehst.
Allerdings schreit die Aufgabenstellung nach Schleifen (for, while). Hast du das übersehen - oder muss es ohne gehen? Sind structs ein Begriff? Dein Wissensstand wäre noch interessant.

...zur Antwort

C++ ist eine sehr explizite Sprache. Das heißt: Du sagst dem Computer: Mach A - und der Computer macht genau A (und nicht mehr). C# ist da etwas abstrakter, wenn du da sagst: Mach B, dann macht das Programm natürlich B, aber es passieren da Sachen im Hintergund, die du nicht siehst.

Das ist in der Regel nicht schlimm, es gibt aber Szenarien, wo man diese Extra Kontrolle gerne hätte. Klassisches Beispiel ist Speichermanagement: Ich möchte auf genau diesen Speicher jetzt zugreifen und danach wieder freigeben - ist in C# bestenfalls rudimentär möglich. Es gibt in C++ fundamentale Paradigmen wie z.B. RAII - die werden irgendwie nachgebaut.

C# ziehlt mehr darauf schnell zu einem Ziel zu kommen - da ist auch absolut nichts verwerfliches dran (wobei ich hier mal Python als potentiell bessere Alternative einwerfen möchte)

C++ ist da etwas aufwändiger, bietet aber mehr Kontrolle

...zur Antwort

Die Frage ist doch sehr generisch. Was willst du hacken - so ganz allgemein? Waru...vergessen wir die Frage, nehmen wir Neugier an ;-)

Per Definition kann man sowas nicht lernen. Denn gäbe es ein Lehrbuch dafür, würden alle die sich davor schützen wollen genau dieses anwenden um Angriffe abzuwenden. Es braucht Kreativität.

Diverses Wissen und Erfahrung hilft aber natürlich, da gibt es diverse legale Quellen, nehmen wir als Beispiel https://github.com/wtsxDev/reverse-engineering (geht eher in eine andere Richtung, ist aber ein guter Start meine ich)

...zur Antwort

Ich vermute mal stark, dass irgendwelche Abhängigkeiten für den loginscreen kaputt sind. Mit STRG+ALT+F1 (oder F2, kommt manchmal vor das TTY1 noch blockiert ist) kannst du in eine Konsole (nur Text) wechseln. Dort kannst du mal schauen ob ein dmesg irgendeinen Aufschluss gibt. Ansonsten entsprechende logfiles in /var/log durchforsten (oder einfach probieren das alte Python wieder zu installieren)

...zur Antwort

2 Möglichkeiten, keine davon HTML oder CSS: Serverseitig per PHP (oder was auch immer dort läuft) oder Clientseitig mit JavaScript. Konkretere Antwort würde ich erst geben wollen/können, wenn ich weiß, wie die Seite genau zusammengebaut wird. Hast du einen Link oder kannst etwas Code posten?

...zur Antwort

Woran scheitert die Lösungsfindung? Verstehst du das Problem nicht oder weißt du nicht wie du es umsetzen kannst?

Zweiteres lernt man. Und umso mehr man lernt umso mehr Möglichkeiten findet man auch. Man entwickelt tatsächlich neue Wege an Probleme heranzugehen (ich konditioniere mich momentan darauf diese statt Probleme Herausforderungen zu nennen, klingt netter und spiegelt es eher wieder). Man denkt anders - das ist ein Erfahrungswert.

Auf die Idee des Primzahlensiebs zu kommen ist eine andere Geschichte. Ich weiß zufällig wie es funktioniert - und wenn man es sieht denkt man sich: Klar, hätte nie anders sein können. Aber darauf selbst zu kommen...ich weiß nicht ob ich das von mir behaupten kann.
Andererseits finde ich immer wieder Lösungen auf Herausforderungen, wo ich mir im nachhinein denke: "Und dafür hast du jetzt 5 Stunden gebraucht?"

Also nein: Eine solche Problemstellung nicht direkt zu verstehen/lösen zu können disqualifiziert dich nicht von einem Informatikstudium

...zur Antwort