Zum Inhalt springen

Dionysos211

Mitglieder
  • Gesamte Inhalte

    52
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Dionysos211

  1. also noch einmal, wie man sich die Dateien vorstellen kann: Datei 1 (1 Datensatz je Zeile unsortiert) Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... ..(.. soll nur heißen usw.) .. .. Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Datei 2 (Wie Datei 1 nur keine Datensätze aus Datei 1) Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... .. (.. soll nur heißen usw.) .. .. Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....
  2. bin an C gebunden die Dateien beinhalten halt beide so etwas wie: Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;.... Ich kann die aber selber aufbauen... also wenn jemand ne idee hat wie ich das besser anstellen kann, immer her damit...
  3. Generell gilt beide Dateien enthalten komplette Datensätze... man stelle sich ein Adressbuch vor das von A - G und H - Z auf zwei Dateien aufgeteilt wurde... nur dabei ging was schief und man erhielt A C G B E D usw... in Datei 1 und genau son "gewusel" in Datei 2... Die Beispieldaten schreib ich auch selber, dazu soll ich auch noch ein Generator schreiben....
  4. oh, peinlich ich dachte irgendwie immer C = C# und das C# nur die übliche Schreibweise fürs Netz wäre damit Suchmaschinen damit besser umgehn könnten ^^ aber jetzt bin ich schlauer C, C#(MS .NET), C++... also ich soll das ganze in C schreiben... Schande über mein Haupt -.-
  5. Jub I know Ich hab auch schon etliches dazu geschrieben.. Pflichtenheft quasi was soll das programm grob können welche funktionen es abarbeiten muss (ohne tschnische ausführung halt) alles schön mit Diagrammen usw... aber dennoch kommt als Punkt 4 (den hab ich oben nun nicht gepostet) die umsetzung dessen in #c und da ich in meinem Bericht quasi "immer nur um den heißen brei" geredet habe.... muss aus dem was es tut ein wie tut es werden... und da scheiter ich grob an dem punkt das ich so etwas (in meinen augen) komplexes noch nicht umgesetzt habe... und erhoffe mir nun quasi wegweisende hilfe wie ich das am besten umsetze... worauf ich son bischen achten muss... struct als array oder listen oder doch ganz anders.. qsort bubble sort heap oder nur etwas schreiben was dem nahe kommt.. und wie stell ich das mit den interessen an..
  6. Nabend, ich bräuchte da etwas Hilfe :/ Nicht konkret für den #C Code, sondern vielmehr für das richitge Konzept. Aufgabenstellung in etwa: ---------- 2 Kundendateien sind entsprechend folgender Struktur unsortiert aufgebaut: Name, Adresse, Geburtsdatum, Interessen (1-N), Kurzbeschreibung der Interessen (Ein Kunde kann mehrere Interessen haben) Die Dateien sollen alternativ nach Name oder Interesse sortiert, zu einer geordneten Folge gemischt und in einer dritten Datei ausgegeben werden. Alternativ sollen Bubble und Quicksort-Verfahren verwendet und die Zeiten verglichen werden. Hierfür sind über einen geeigneten Generator hinreichend große Mengengerüste (10.000 Elemente) zu erzeugen. --------- Dies soll ich nun bearbeiten: --------- 1. Das Programm muss ausführlich spezifiziert werden: - Festlegung des Programmverhaltens (ohne technische Festlegung) - Festlegung der Dialogführung - Reaktion auf Bedienfehler - Testplan 2. Der zur Lösung notwendige Algorithmus muss beschrieben werden 3. Der zur Lösung gewählte Systementwurf (Struktur, Schnittstellen) und logische Programmablauf muss durch geeignete Diagramme dargestellt werden. ---------- Meine Fragen dazu: Wie sollte ich das am besten umsetzen ? Ich dachte da so an struct und das dann als array... oder ist das eher schlecht ? dann dachte ich dabei an einer struct in struct bei adresse so und natürlich die interessen am besten auch als struct in struct... da ich diese generieren will (irgendwie, wie auch alle anderen kundendaten irgendwie .. - kein plan bis jetzt wie genau) und da hab ich n dickes problem... sortieren nach name glaub ich bekomm ich hin aber sortieren nach Interesse.. bei einer structur die da dann in etwa so aussehe .............Name: bla; usw. bis Interesse1 : Fußball; Beschreibung1: im Verein ..........................................Interesse2 : Tennis; Beschreibung1: privat ..........................................Interesse3 : Golf; Beschreibung1: Damals mal im Urlaub gespielt ..........................................Interesse4 :.... Joa wie würde ich das projekt am besten angehen... und welchen sortier algo nimmt man da am besten ? eignet sich für diese art noch quicksort... p.s. ich hab noch nie wirklich mit strct und struct als array gearbeitet.. aber bin dabei mich ein zu lesen .. also das würde irgendwann schon dann auch gehn nur ob überhaupt sinnvoll ist... und ist das wirklich so easy den kram aus der datei auszulesen ? also mit fopen... und dann ein kompletter datensatz pro zeile mit ";" getrennt-... oda so in der art.. :/ vielen vielen dank für eure hilfe...
  7. naja verboten war es ja nun auch nicht aber wenn ich das selbst ausrechnen hätte sollen.. wie hätte ich denn da die schaltjahre berücksichtigen sollen... öhm und zu dem time_t sagt mir das liebe internet das hier: time_t stellt einen long int Datentyp dar richtig ? joa und nun ?
  8. dann lasse ich das mal so.. würdest du sagen Aufgabe gelöst oder nur gut gemacht weil er mir da halt die warnung ausgibt .. ^^ ich wüsste jetzt nicht wie ich das umbasteln könnte damit die warnung verschwindet :/
  9. also hab ich das richtig verstanden das ich die warnung ignorieren kann ? denn ändern in int kann ich das ja nicht dann würde er beim zeiger aufmucken .. oder ?
  10. oh ich glaub that's it hab das eben mal gegen getestet mit int main (void) { time_t zeitInSekunden; zeitInSekunden = 1225267606; struct tm *zeitVergangen; zeitVergangen = localtime(&zeitInSekunden); int zeitInMinuten = zeitInSekunden/60; int zeitInStunden = zeitInMinuten/60; int zeitInTagen = zeitInStunden/24; int zeitInWochen = zeitInTagen/7; int zeitInJahren = zeitInTagen/365; printf("Seit dem 01.01.1970 sind %d Sekunden vergangen.\n\n", zeitInSekunden); printf("Das sind %d Minuten\n", zeitInMinuten); printf("oder %d Stunden\n", zeitInStunden); printf("oder %d Tage\n", zeitInTagen); printf("oder %d Wochen\n", zeitInWochen); printf("oder %d Jahre\n\n", zeitInJahren); printf ("Seit dem 01.01.1970 sind vergangen:\n%d Jahre,\n%d Tage,\n%d Stunden,\n%d Minuten\nund %d Sekunden\n\n", zeitVergangen->tm_year-70, zeitVergangen->tm_yday, zeitVergangen->tm_hour, zeitVergangen->tm_min, zeitVergangen->tm_sec); return 0; } da kommt dann Seit dem 01.01.1970 sind vergangen: 38 Jahre, 302 Tage, 9 Stunden, 6 Minuten scheint eigentlich auch logisch.. bei meinem von eben mit time(&zeitInSekunden) kommt übrigens raus Seit dem 01.01.1970 sind vergangen: 40 Jahre, 308 Tage, 14 Stunden, 49 Minuten und 57 Sekunden und 46 Sekunden was ja auch denk ich mal richtig ist... nur er meckert immer noch wegen dem time_t und dem %d -.-
  11. ne das meinte ich nicht... ist mir klar das wenn ich mit der funktion time arbeite er immer die aktuelle systemzeit nimmt... deshalb hatte ich die auch raus genommen und für den "gegenversuch halt einfach geschrieben zeitInSekunden = 1225267606 also hätte ich da sogar auch die time.h rausschmeißen könn.. weil es ja stumpfes rechnen ist... er musste ja nix auslesen.. also keine systemzeit... und ich bin auf 311 tage gekommen.. :/ habs jetzt mal so gemacht... int main (void) { time_t zeitInSekunden; time(&zeitInSekunden); struct tm *zeitVergangen; zeitVergangen = localtime(&zeitInSekunden); int zeitInMinuten = zeitInSekunden/60; int zeitInStunden = zeitInMinuten/60; int zeitInTagen = zeitInStunden/24; int zeitInWochen = zeitInTagen/7; int zeitInJahren = zeitInTagen/365; printf("Seit dem 01.01.1970 sind %d Sekunden vergangen.\n\n", zeitInSekunden); printf("Das sind %d Minuten\n", zeitInMinuten); printf("oder %d Stunden\n", zeitInStunden); printf("oder %d Tage\n", zeitInTagen); printf("oder %d Wochen\n", zeitInWochen); printf("oder %d Jahre\n\n", zeitInJahren); printf ("Seit dem 01.01.1970 sind vergangen:\n%d Jahre,\n%d Tage,\n%d Stunden,\n%d Minuten\nund %d Sekunden\n\n", zeitVergangen->tm_year-70, zeitVergangen->tm_yday, zeitVergangen->tm_hour, zeitVergangen->tm_min, zeitVergangen->tm_sec); return 0; } und dazu gleich die frage: der haut mir da jetzt ne warnung raus.. von wegen ich hab das ja als time_t deklariert.. und würde da jetzt %d nutzen was falsch wäre denn das ist für int... funktioniert trotzdem... und vorher hatte er beim dem was ich da mit der zeitansage geschreiben hab auf seite 1 dieses Threads hier ja auch nicht rumgemeckert...
  12. und irgendwie haut das auch nicht hin wenn ich zeitInSekunden mal auf den Wert der Beispielausgabe der Aufgabe setze.. also auf 1225267606 Sekunden... das wären dann 38 Jahre und 311 vergangene Tage anstatt 38 Jahre und 6 vergangene Tage.. -.-
  13. hab das ganze jetzt mal so gebastelt :/ aber ich glaub das ist halt nicht richitg weil ich keine rüsicht auf schaltjahre genommen habe... -.- wie könnte man das jetzt noch weiter verbessern ? #include <stdio.h> #include <stdlib.h> #include <time.h> int main (void) { int zeitInSekunden = time(0); int zeitInMinuten = zeitInSekunden/60; int zeitInStunden = zeitInMinuten/60; int zeitInTagen = zeitInStunden/24; int zeitInWochen = zeitInTagen/7; int zeitInJahren = zeitInTagen/365; printf("\nSeit dem 01.01.1970 sind %d Sekunden vergangen.\n\n", zeitInSekunden); printf("Das sind %d Minuten\n", zeitInMinuten); printf("oder\t %d Stunden\n", zeitInStunden); printf("oder\t %d Tage\n", zeitInTagen); printf("oder\t %d Wochen\n", zeitInWochen); printf("oder\t %d Jahre\n\n", zeitInJahren); int vergangeneJahre = zeitInJahren; int vergangeneTage = zeitInTagen%365; int vergangeneStunden = zeitInStunden%24; int vergangeneMinuten = zeitInMinuten%60; int vergangeneSekunden = zeitInSekunden%60; printf ("Seit dem 01.01.1970 sind vergangen:\n%d Jahre,\n%d Tage,\n%d Stunden,\n%d Minuten\nund %d Sekunden\n\n", vergangeneJahre, vergangeneTage, vergangeneStunden, vergangeneMinuten, vergangeneSekunden); return 0; }
  14. Genau das hatte ich mir gestern mal in Excel gebastelt um zu überprüfen ob in der "So soll es mal aussehen" Ausgabe der Aufgabe die Schaltsekunden/Schaltjahre berücksichtigt wurden. also hab das so ausgerechnet als hätte mir time(0) den wert: 1225267606 Sekunden ausgespuckt... und hab dann genau das gemacht wie du es beschrieben hast... bis auf Jahre runtergebrochen... die zahl vor dem Komma dann wieder in Sekunden und das vom time(0) wert abgezogen... den rest dann wieder bis auf Wochen hoch.. und das vorm Komma wieder in Sekunden... usw.. nur als ich dann bei tagen angekommen bin, stand vorm Komma eine 3 und keine 6 wie laut Beispielaufgabe aber hätte der Fall sein müssen.. :/
  15. und natürlich bei 5. dabei schaltjahre berücksichtigen.. irgendwie.. :/ *mir dröhnt der kopf*
  16. Ok :/ Dann bin ich aber irgendwie wieder mit meinem Latein am Ende.. In meinem kopf schwirrt jetzt ne idee aber ich weiß nicht wie ich die genau umsetzen soll.. 1. eine variable mit time_t deklarieren 2. dieser variable den wert von Time(0) zuweisen 3. den Wert (sekunden seit 1.1.1970) der variable dann an eine struktur geben 4. die Sruktur soll dann zb variablem für sekunden an sich und dann minuten stunden usw haben... - Sprich ich pack die sekunden in die Struktur (und zwar an jede stelle der struktur also jeweils den kompletten sekunden wert)und in der Struktur werden die Sekunden dann jeweils in den wert umgerechnet, anzahlSekunden=anzahlMonate- 5. den wert der variablen die den wert time(0) hat so aufdröseln das diese den summenwert an sekunden in Jahre Monate Tage wieder gibt.. also das sind so viele jahre .. rest = so viele monate rest gleich so viele tage.. das am besten auch über ne eine andere struktur abgreifen.. so das ich mir einmal eine ausgabe basteln kann die mir sagt das die der Wert der Sekunden in etwa diesen wert an monaten hat... (da kommt ja ne kommazahl raus) und halt auch für zb jahre: anzahlSekunden=anzahlJahre halt so wie 1000g = 1Kg und für den zweiten teil der ausgabe halt erst den gößten wert und dann das was übrig bleibt immer in den kleineren... so wie 1043,5g sind 1Kg und 43g und 5 mg Mein programmieren know-how ist leider so was von am Anfang das ich es mir zwar schön vorstellen kann aber an der Umsetzung scheiter..
  17. genau wegen den Schaltjahren und den Schaltsekunden dachte ich mir das mein Ansatz falsch ist... ich denke schon das dies relevant ist... und das bekomm ich ja nur über die Funktionen in time.h geregelt oder ?
  18. Also du meinst das ich mir eine eigene struktur schreibe und nicht die tm aus time.h verwende ?
  19. moment ich glaub ich sehe grad wirklich den Wald vor lauter Bäumen nicht.. ^^ ich bastel mal n bischen... ich seh schonmal das bei jahren sowas hier stehen muss.. da er da ja nicht mit 1970 arbeitet sondern mit 1900 als: zeitAnsage->tm_year-70 für die Differenz zu 1970.. oda so. ^^ noch ne andere frage .. dem hier: struct tm *zeitAnsage; muss ich dem immer mit localtime kommen oda kann ich auch da die sekunden "reinladen".. ok ich glaub das klingt jetzt stümpferhaft... ok anders ich erklär mir das jetzt so das localtime halt meine sekunden aus time() so umbastelt das die tm struktur passend damit gefüttert werden kann.. also muss ich das immer mit localtime angehn ja ?
  20. Naja der zweite teil der Ausgabe soll ja so sein: Seit dem 01.01.1970 sind vergangen: 38 Jahre, 6 Tage, 8 Stunden, 6 Minuten und 46 Sekunden und nicht welcher Tag heute ist :/ oda seh ich da grad den Wald vor lauter Bäumen nicht ?
  21. P.S Hab da noch was über ctime gefunden, diese Funktion gibt es ja irgendwie auch in der time.h und wandelt die Sekunden aus time(&zeitInSekunden) in einen lesbaren String um welchen man dann direkt ausgeben kann und da spukt er dann das komplette Datum aus.. mit wochentag usw..
  22. So hab da eben mal n bischen mit rumgespielt Aber erstmal dickes Dankeschön das du dir die Mühe machst mir das zu erklären! zb kann ich mir dann so die aktuelle Uhrzeit ausgeben ^^ #include<stdio.h> #include <stdlib.h> #include<time.h> int main() { time_t zeitInSekunden; //Variable zeitInSekunden deffinieren (time_t = long) time(&zeitInSekunden); //Abspeichern des Rückgabewertes von time (Sekunden Zeit 1.1.1970) in die Variable zeitInSekunden struct tm *zeitAnsage; //Erstellen/Benennen meiner Variablen Struktur durch den Zeiger *zeitAnsage (deffinition in time.h) zeitAnsage = localtime(&zeitInSekunden); //Abspeicher des Rückgabewertes von localtime (umwandlung der Sekunden aus &zeitInSekunden in das heutige Dateum + Zeit) in die Struktur (zeitAnsage) printf("%02d:%02d:%02d Uhr\n", zeitAnsage->tm_hour, zeitAnsage->tm_min, zeitAnsage->tm_sec); system("pause"); return 0; } Soweit richtig ? Dann würd ich sagen hab ich das schonmal verstanden Aber dann kann ich die Ausgabe aus dem 1. Post von wegen Sekunden .... das sind Minuten oder Stunden usw... nur so machen wie ich das oben auch getan habe... richitg ? denn localtime wandelt mir das ja jetzt für die struktur in einen "verständlichen" Wert/String um und speichert mir diesen anhand der tm struktur der time.h ab.. also danach kann ich ja nicht mehr sagen das so die vergangenen Sekunden so und soviel Minuten sind... oder stunden usw.. und für den Zweiten teil der Ausgabe muss ja jetzt irgendwie dahin kommen das ich die sekunden die da vergangen sind... (was ja dem heutigen Datum entspricht... was ich ja auch wiedergeben kann wenn ich meine so eben gebastelte Funktion erweitere) so ausgeben das ich nicht sage heute IST sondern bis heute SIND vergangen so und so viele Jahre so und so viele Monate usw.. wie stell ich denn das an ? Im Voraus vielen dank für deine Geduld
  23. In den Vorlesungen behandeln wir das Thema Pointer bzw Zeiger erst später.. dazu gehört dann wohl auch das arbeiten mit Strukturen... ^^ Deshalb hab ich wohl auch Verständnisprobleme Nichts desto trotz hab ich mich da schonmal etwas eingelesen... somit weiß ich jetzt das ich Zeiger in Funktionen verwenden kann ohne die Variable an sich zu benutzen... In den kleinen Fummel Aufgaben wohl eher nicht relevant weil wir ja keine großen Datenmengen haben... später sicherlich sinnvoll und vor allem nicht schlecht damit bereits jetzt umgehen zu können.. Notiz: Zeiger deuten also auf eine Variable, sie Adressieren sie so zu sagen.. richitg ? Und Strukturen sind dazu da um mehrere Variablen zu ordnen, dies können auch variablen unterschiedlicher Datentypen sein.. zb. struct adresse { char name[50]; char strasse[100]; short hausnummer; long plz; char stadt[50]; }; Wenn ich jetzt eine Variable dieser Struktur habe, auf einen wert IN der variable zugreifen (ich hab eine Variablen struktur für adresseThomas erstellt): printf("Name: %s\n", adresseThomas.name); Dann müsste er mir den Namen bei s% ausspucken richtig ? Aber wie ich das nun bei time_t anwenden soll ich mir irgendwie schleierhaft...

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