Mehr brandheiße Inhalte
zur Gruppe
Nerds und Gamer
1095 Mitglieder
Das Thema ist für dich interessant? Jetzt JOYclub entdecken

Schräge Kommandos, Fehlschläge und skurile Screenschot

********er58 Mann
1.140 Beiträge
Themenersteller 
Achtung Hardcore Nerd Challenge:

unsigned int hexCharToInt(char input)
{
if ('0' <= input && input <= '9')
return input - '0';
else if ('a' <= input && input <= 'z')
return 10 + (input - 'a');
else
return 10 + (input - 'A');
}

Aufgabe
• Finde mindestens zwei Fehler
• Schreibe eine Testcase der die Fehler asserted.
• Schreibe ein verbesserte Version dieses codes.

(Leider nicht aus der Einführungsvorlesung in C) *augenzu*
Die Funktion `hexCharToInt` weist mehrere Fehler auf, die dazu führen können, dass sie nicht korrekt arbeitet. Hier sind die Fehler:

1. Im zweiten `else if`-Block wird geprüft, ob der `input`-Wert zwischen `'a'` und `'z'` liegt. Dies ist falsch, da der gültige Bereich nur bis `'f'` reicht.
2. Im `else`-Block wird nicht überprüft, ob der `input`-Wert im Bereich `'A'` bis `'F'` liegt. Dadurch werden auch andere Zeichen wie `'G'` bis `'Z'` akzeptiert, was ebenfalls falsch ist.

Hier ist ein Testfall, der die Fehler aufzeigt:

cpp
#include <assert.h>

int main() {
// Test für gültige Hexadezimalzeichen
assert(hexCharToInt('0') == 0);
assert(hexCharToInt('9') == 9);
assert(hexCharToInt('a') == 10);
assert(hexCharToInt('f') == 15);
assert(hexCharToInt('A') == 10);
assert(hexCharToInt('F') == 15);

// Test für ungültige Hexadezimalzeichen
assert(hexCharToInt('g') == -1); // Dies sollte einen Fehler aufzeigen
assert(hexCharToInt('G') == -1); // Dies sollte ebenfalls einen Fehler aufzeigen

return 0;
}


Eine verbesserte Version des Codes, die die genannten Fehler behebt, sieht folgendermaßen aus:

cpp
unsigned int hexCharToInt(char input) {
if ('0' <= input && input <= '9')
return input - '0';
else if ('a' <= input && input <= 'f')
return 10 + (input - 'a');
else if ('A' <= input && input <= 'F')
return 10 + (input - 'A');
else
return -1; // Rückgabe eines ungültigen Wertes für nicht-hexadezimale Zeichen
}

int main() {
// Test für gültige Hexadezimalzeichen
assert(hexCharToInt('0') == 0);
assert(hexCharToInt('9') == 9);
assert(hexCharToInt('a') == 10);
assert(hexCharToInt('f') == 15);
assert(hexCharToInt('A') == 10);
assert(hexCharToInt('F') == 15);

// Test für ungültige Hexadezimalzeichen
assert(hexCharToInt('g') == -1);
assert(hexCharToInt('G') == -1);

return 0;
}


Diese verbesserte Version prüft den `input`-Wert korrekt und gibt `-1` zurück, wenn das Zeichen kein gültiges Hexadezimalzeichen ist.
********er58 Mann
1.140 Beiträge
Themenersteller 
Zitat von ******ver:
Die Funktion `hexCharToInt` weist mehrere Fehler auf, die dazu führen können...

ChatGPT 3.5 ?

Leider ist das aber C++ nicht reines C *freundchen*
(Ich weis C++ kann das besser ...)

Das ist der Nachteil von den LLM. Sie halten Dich von selber denken ab.
Zitat von ********er58:
Das ist der Nachteil von den LLM. Sie halten Dich von selber denken ab.

ChatGPT bietet in der Softwareentwicklung zahlreiche Vorteile hinsichtlich Effizienz und Leistungsfähigkeit.

Einer der zentralen Vorteile ist die Zeitersparnis. Entwickler können ChatGPT nutzen, um schnelle Antworten auf technische Fragen zu erhalten, was die Notwendigkeit reduziert, lange Dokumentationen zu durchsuchen. Darüber hinaus kann ChatGPT bei der Codegenerierung und -überprüfung helfen, indem es Muster erkennt und Verbesserungsvorschläge macht. Dies führt zu einer schnelleren Identifizierung von Fehlern und Optimierungspotenzialen im Code.

Ein weiterer Vorteil ist die Unterstützung bei der Automatisierung von Routineaufgaben. ChatGPT kann einfache Skripte und Automatisierungstools erstellen, die wiederkehrende Aufgaben übernehmen, wodurch Entwickler mehr Zeit für komplexe und kreative Tätigkeiten gewinnen.

Die Leistungsfähigkeit von ChatGPT zeigt sich auch in der Fähigkeit, komplexe Algorithmen zu erklären und Lösungsvorschläge für anspruchsvolle Probleme zu bieten, was die Lernkurve für neue Technologien und Methoden verkürzt.

Zusammenfassend trägt ChatGPT dazu bei, die Produktivität von Entwicklern zu steigern, indem es zeitaufwendige Aufgaben vereinfacht und beschleunigt, sowie durch die Bereitstellung intelligenter Unterstützung bei der Codeerstellung und -optimierung.

In der Software-Branche war das abzusehen, weil die Lohnkosten in Deutschland einfach nicht mehr bezahlbar sind. Das gleiche gilt für den IT- Support.
Zitat von ********er58:
Leider ist das aber C++ nicht reines C

Wenn du möchtest, stanze ich dir das noch in Lochkarten aus Papier. Wer nicht mit der Zeit geht, geht mit der Zeit *grins*
******nkt Mann
12 Beiträge
Zitat von ******ver:
Zitat von ********er58:
Leider ist das aber C++ nicht reines C

Wenn du möchtest, stanze ich dir das noch in Lochkarten aus Papier. Wer nicht mit der Zeit geht, geht mit der Zeit *grins*

Moin erstmal,

ich bin der "neue" hier *zwinker*

Ich habe in meiner Ausbildung viel alte Technik. mitbekommen aber Lochkarte als Speichermedium tatsächlich nicht.

Hätte mich bei ein paar unserer Kunden damals aber nicht gewundert, wenn die damit mal um die Ecke gekommen wären. Getreu dem Motto "Das ist doch erst 45Jahre als dass muss doch noch gut sein"
Zitat von ******nkt:
Ich habe in meiner Ausbildung viel alte Technik. mitbekommen aber Lochkarte als Speichermedium tatsächlich nicht.

Das war natürlich nur ein *zaunpfahl*

Ich wähle die Programmiersprache aber auch das Betriebssystem nach der Aufgabenstellung aus - Methodenkompetenz.
******ght Mann
749 Beiträge
Auf noch eine KI Diskussion hier im Forum lass ich mich nich ein *traenenlach*
******ght Mann
749 Beiträge
********er58 Mann
1.140 Beiträge
Themenersteller 
Der Kollege ist auch noch nicht ganz wach *zzz*
"Can you please lsmod and then modprove ...drv"
*grins* modprove -- sorry I cannot prove that this is a valid command
root@dut:~# modprobe ...drv
modprobe: ERROR: could not insert '...drv': Operation not permitted

DAS habe ich aber auch noch nicht gesehen ...

(Wer nicht weis worum es hier get bitte *meld*)
*****_00 Frau
1.138 Beiträge
Mein Bildschirm flackert immer wieder, und ich habe KI gefragt, aber die hat mir 6-7 verschiedene Ursachen dafür ausgespuckt. Kann mir jemand hier helfen, wie ich vorgehen muss?

Bildschirm ist auf 60 Hz eingestellt, und die Treiber sind auch alle aktuell.
*******_man Mann
5.419 Beiträge
Kabelverbindung geprüft?
Monitor flackert auch mit anderem Gerät? Gerät hat mit anderem Monitor flackerfreies Bild?
Mal mit anderem Kabel auf anderen Anschlüssen versucht (DVI statt HDMI statt USB statt Displayport)?
*****_00 Frau
1.138 Beiträge
Ich hab ein Laptop. Thinkpad. Es flackert, wenn ich Protonmail aufrufe, hab ich den Eindruck.
*******_man Mann
5.419 Beiträge
Oh, ein flackerndes Laptop... *panik*

Da bin ich raus, hege aber wüsteste Befürchtungen an die Kabelverbindung an der Klappstelle oder einen anderen mechanischen Schaden im Laptopdeckel.
*****_00 Frau
1.138 Beiträge
Zitat von *******_man:
Oh, ein flackerndes Laptop... *panik*

Da bin ich raus, hege aber wüsteste Befürchtungen an die Kabelverbindung an der Klappstelle oder einen anderen mechanischen Schaden im Laptopdeckel.

Ich hab das Teil doch erst ein halbes Jahr und hab das auch nicht über Gebühr auf- und zu geklappt. Das steht meist offen auf meinem Schreibtisch.
*******_man Mann
5.419 Beiträge
Dann Daten sichern und ab zum Freundlichen und reklamieren. 2 Jahre Gewährleistung!
*****_00 Frau
1.138 Beiträge
da waren Nacktbilder drauf ... wie krieg ich die zerhäckselt? Bevor ich das zurück gebe?
*******_man Mann
5.419 Beiträge
Es gibt so Erasing-Tools. Entweder damit löschen (also erst installieren und dann die Dateien damit löschen) oder zuerst die Dateien löschen und dann den freien Festplattenbereich damit unleserlich machen.
*****_00 Frau
1.138 Beiträge
Zitat von *******_man:
Es gibt so Erasing-Tools. Entweder damit löschen (also erst installieren und dann die Dateien damit löschen) oder zuerst die Dateien löschen und dann den freien Festplattenbereich damit unleserlich machen.

Danke für den Tipp.
Jetzt finde ich den Kassenbon nicht wieder. *schiefguck*
****d_E Paar
22 Beiträge
Falls du ne SSD hast, solltest du dessen secure erase Methode nutzen anstatt die Daten "herkömmlich" zu überschreiben.

Bei denen bringt das überschreiben nur wenig, zumindest wenn du nicht die gesamte Platte überschreibst. Und es wirkt sich auf die Haltbarkeit der SSD aus.

https://wiki.ubuntuusers.de/SSD/Secure-Erase/

Edit:
Für die Zukunft wäre full Disk encryption vlt sinnvoll. Ein Laptop kann ja auch mal verloren gehen oder gestohlen werden. Mit Verschlüsselung sieht dann zumindest keiner die Daten.
********er58 Mann
1.140 Beiträge
Themenersteller 
Fehlschlag: 2FA für Joy eingerichtet *top* Und dann Privathandy zuhaus liegen gelassen *flop*.

Merke: auch vom 2FA kann man ein Backup machen.

(Wie ihr habt noch keinen zweiten Faktor für euer login *gleichplatz* ?)
*******ias Mann
118 Beiträge
Führen das gerade flächendeckend ein in der Firma. Ich habe deshalb drei "zweite" Faktoren ...
Ich bin aber gespannt wie oft die Nutzer unseren Support dann bemühen weil sie die Hardware oder handy nicht dabei haben ...
*******_man Mann
5.419 Beiträge
Also für den JC halte ich das für entbehrlich. Oder kann dann jemand die Freundin abfischen?
******ght Mann
749 Beiträge
2FA nutz ich nur in (für mich) relevanten Bereichen wie Finanztransaktionen, google Konten, Vertragsabschlüssen usw. Bei allen anderen Sachen (wo ich an "Datenpreisgabe" eher sparsam bin muss ich das nich haben, wird dann mitunter auch nervig auf Dauer...
Yubikey FTW! 😁
Anmelden und mitreden
Du willst mitdiskutieren?
Werde kostenlos Mitglied, um mit anderen über heiße Themen zu diskutieren oder deine eigene Frage zu stellen.