Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Dann musst du dir einfach nur zwei bisher gefundene längste Nummern merken, eine für A und eine für J. Du schaust dir jede Nummer an. Fängt der Name mit A an, vergleichst du sie mit deiner längsten bisher gefundenen A-Nummer, und ersetzt sie gegebenenfalls. Fängt der Name mit J an, vergleichst du sie mit deiner längsten bisher gefundenen J-Nummer, und ersetzt diese gegebenenfalls. Fängt der Name weder mit A noch mit J an, gehst du zur nächsten Nummer. Das kannst du 1:1 auf dein Dateiproblem übertragen.
  2. Du brauchst keine Arrays, wenn es dir nur darum geht, ein Minimum oder Maximum zu finden. Dazu musst du dir nur den kleinsten/größten bisher gefundenen Eintrag merken. Beispiel: Wenn du die längste Nummer in einem Telefonbuch wissen willst, schreibst du dann das komplette Telefonbuch ab, sortierst es nach Nummernlänge und schaust dir den letzten Eintrag an? Oder schaust du dir jede Nummer an, und wenn sie länger ist als die längste, die du bisher gefunden hast, vergisst du die alte und merkst dir die neue? Was ist einfacher?
  3. Um die Meta-Diskussion abzukürzen: Der Begriff "If-Schleife" ist Unsinn, weil die if-Anweisung eine Verzweigung einleitet, keine Schleife. Schleife bedeutet Wiederholung. Bei if wird nichts wiederholt. Das heißt nicht, dass du kein if benutzen sollst.
  4. Hier gilt dasselbe wie in dem anderen Thread, wo es offenbar um dieselbe Aufgabe geht. Ein Array von 20 char (wieso überhaupt 20, wenn du bis zu 30 Strings einlesen musst?) fasst 20 einzelne Zeichen, nicht 20 Zeichenketten. Die Header sind allesamt nicht standardkonform. <string.h> würde in C der Header heißen, der die Stringfunktionen von C enthält. In C++ heißt dieser Header <cstring>. Es ist aber Unsinn, sich in C++ mit char-Arrays abzuquälen. Benutz besser die Klasse std::string aus <string>. <iostream.h> gibt's nicht, außer vielleicht bei sehr alten Compilern. <iostream> (ohne .h) heißt der Header für cin & cout. Siehe oben. Da drin bringst du keine 30 Zeichenketten unter. Außerdem sind globale Variablen stilistisch fragwürdig. In C++ deklariert man Variablen üblicherweise erst dann, wenn man sie braucht. i bleibt hier uninitialisiert, weil du ausdrücklich nur k und l etwas zugewiesen hast. Welchen Startwert i hat, ist also mehr oder weniger zufällig. Die Schleifenbedingung ist auch Quatsch. 30 ist immer wahr, weil 30 != 0 ist. Du musst das schon in Beziehung zu i setzen. cout und endl (wie fast alle anderen Elemente der C++-Standardbibliothek) finden sich im namespace std. Also musst du entweder std::cout und std::endl schreiben, oder einmal nach den Includedirektiven using namespace std; Der Ungleich-Operator in C++ ist !=, nicht <>. Mit char-Arrays würde das aber sowieso nicht funktionieren. Der erste Parameter von strcpy ist das Ziel. Diese Funktion solltest du aber sowieso nicht benutzen, die brauchst du nur für char-Arrays. std::strings kannst du einfach zuweisen. Arrays haben keine length-Eigenschaft, das ist nicht Java Der Rest der Sortierung sieht soweit gut aus.
  5. Hallo und Willkommen auf dem Board. Wolltest du uns das nur mitteilen, oder hast du eine Frage? Falls ja, solltest du sie stellen Wofür? :confused:
  6. 0.4 lässt sich nicht genau als Gleitkommawert darstellen. Gleitkommawerte sind prinzipiell ungenau. Die meisten Zahlen, die im Dezimalsystem abbrechende Dezimalbrüche sind, sind als "Dualbruch" periodisch. Nur ganz bestimmte Werte lassen sich exakt darstellen. Genauer gesagt sind das die, bei denen in Bruchschreibweise der Nenner eine Potenz von 2 ist. Wenn sich ein Wert nicht exakt darstellen lässt, speichert der Computer den Wert, der am nächsten dran ist. Für 0.4 ist das eben der Wert, den du da siehst. Darum darf man Gleitkommawerte auch nie auf Gleichheit prüfen.
  7. Die Syntax ist dieselbe. Das ist das Schöne am Streamkonzept in C++.
  8. Du arbeitest da mit Arrays von char, das sind jeweils nur einzelne Zeichen. Du liest nur einzelne Zeichen ein, du weist nur einzelne Zeichen zu, du kannst auch nur jeweils 50 einzelne Zeichen speichern. Für Zeichenketten gibt's die Klasse std::string. Den notwendigen Header dafür hast du bereits eingebunden
  9. Du hast diese Methode aber in der Klassendefinition von Window definiert. Irgendein anderer Teil des Programms braucht sie vermutlich. Ich glaube, ein C++-Grundlagentutorial wäre hier angebracht, bevor du dich in grafische Oberflächen und Datenbankzugriffe stürzt.
  10. Sieht so aus, als hättest du innerhalb der Methode Window::jahrresverwaltungabruf eine Funktion jahrresverwaltungabruf definiert. Lokale Funktionsdefinitionen sind in C++ nicht erlaubt.
  11. Das Backup soll ja auch erst erstellt werden, nachdem die Installation aktiviert wurde. Einmal kann man sich diesen Aufwand doch antun?
  12. Wie wäre es mit einem Backup vom aktivierten Client, das du dann gegebenenfalls zurückspielst?
  13. Ich bin sicher, es gibt auch Bücher zur aktuellen Delphi-Version. Willst du wirklich wegen eines Buches für eine 7 Jahre alte Version einer Entwicklungsumgebung, die inzwischen schon 5 Nachfolger hatte, mehrere hundert Euro ausgeben?
  14. Die Delphi-Entwicklungsumgebungen werden jetzt von CodeGear, einer ehemaligen Borland-Tochterunternehmung (jetzt Embarcadero), angeboten. Delphi - RAD Native Windows Database Application Development IDE Es gibt da einen Download-Link für eine 14-Tage-Trial von "Delphi 7 Personal", aber der scheint nicht zu funktionieren. Ich würde einfach mal Embarcadero Deutschland anrufen: Products - Embarcadero Technologies Wenn es aber sowieso nur "just4fun" sein soll, reicht unter Umständen auch das hier.
  15. Dann solltest du dir mal die MySQL-API-Dokumentation zu Gemüte führen: MySQL :: MySQL 6.0 Reference Manual :: 20.9 MySQL C API Du brauchst vermutlich mysql_fetch_row und mysql_fetch_fields.
  16. Das Problem ist, dass du die Datenbank eigentlich gar nicht abfragst. Du schickst zwar die Abfrage hin. Die Ergebnisse dieser Abfrage holst du aber nicht ab.
  17. Der Grund dieser Fehlermeldung ist, dass du den Wert einer Variablen abfragst, ohne ihn jemals gesetzt zu haben. C++ ist nicht Prolog. Du musst Gesamt berechnen, nachdem du die Werte für die anderen Variablen eingelesen hast. Denn da du sie alle nicht initialisiert hast, sind die Werte vorher undefiniert.
  18. Base64 ist weder eine Verschlüsselung noch ein Hash. Aber der Text stellt in der Tat gültige Base64-codierte Daten dar, genauer gesagt, 22 Bytes mit folgendem Inhalt: 30 14 01 00 00 0f ac 04 01 00 00 0f ac 04 01 00 00 0f ac 02 00 00 Bist du denn sicher, dass das ein lesbarer Text sein soll?
  19. Danke für die Blumen Jedenfalls ist sie flexibler, z.B. wenn man kein Laplace-Experiment hat, also die Elementarereignisse nicht alle gleich wahrscheinlich sind. Außerdem ist das Laufzeitverhalten besser berechenbar. Das wiederholte Ziehen mit Zurücklegen mit anschließender Prüfung, ob man die Zahl schon mal hatte, terminiert zwar sicher irgendwann, kann aber beliebig lange dauern.
  20. #include <iostream> #include <algorithm> using namespace std; int main() { int array[20] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; random_shuffle( array, array + 20 ); for(int i=0; i<10; ++i) { cout << array[i] << "\n"; } }[/code]
  21. Du solltest lieber weniger Vertrauen in Dev-C++ haben. Diese IDE wird schon lange nicht mehr weiterentwickelt. Eine weitere Alternative wäre Code::Blocks.
  22. Das kommt auf die Länge der Daten an. Bei Base64 werden 3 Bytes in genau 4 Zeichen codiert. Jedes Zeichen trägt 6 Bit Information. Wenn die Anzahl der Bytes nicht durch drei teilbar ist, wird mit Nullbits aufgefüllt. Zeichen, die nur diese Füllbits repräsentieren, werden als = dargestellt, um sie von Daten-Nullbits unterscheiden zu können. Ein Base64-String kann auf 0, 1 oder 2 Gleichheitszeichen enden.
  23. Warum willst du das als Text haben? Ein Bytearray ist kein Text. Es gibt gewissen Vorschriften, wie man Bytefolgen als Text interpretieren kann, das sind dann Zeichencodierungen. Welcher Text dabei herauskommt, kommt auf die gewählte Codierung an. Was bei Unicode herauskommt, hast du ja gesehen. Andere Codierungen, wie z.B. UTF8, sind möglicherweise für dein Bytearray gar nicht gültig, weil die Bytefolge gewisse Regeln erfüllen muss. Wenn du sichergehen willst, dass dabei nur druckbare ASCII-Zeichen herauskommen, könntest du Base64 benutzen.
  24. http://www.compuware.com/media.asp?cid=70170000000HIXh Dieser Profiler hat mir schon ein paar Mal geholfen. Du kannst ihn 45 Tage kostenlos testen. Ob es Literatur dazu gibt, weiß ich aber nicht.
  25. Stell es dir einfach so vor, dass du ein Array mit zwei aufeinanderfolgenden, in sich sortierten Sequenzen hast, wie in dem Beispiel im ersten Beitrag. Dieses Array willst du nun "in-place", also ohne ein zweites Array, sortieren. Das geht natürlich mit jedem Sortieralgorithmus, der nur konstanten Speicherbedarf hat, aber die Information über die Struktur der Daten würde eigentlich eine Sortierung in linear Zeit erlauben, indem man einfach den letzten Schritt des Mergesort durchführt. Es gibt auch eine "in-place"-Variante von Mergesort, allerdings ist die dann nicht mehr stabil.

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