Brauche Hilfe

Tutorials.at
Verfügbare Informationen zu "Brauche Hilfe"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Belphegor - Dirty Oerty - exbs
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 15
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Brauche Hilfe
  • Letzte Antwort: vor 17 Jahren, 1 Monat, 20 Tagen, 21 Stunden, 48 Minuten
  • Alle Beiträge und Antworten zu "Brauche Hilfe"

    Re: Brauche Hilfe

    Belphegor - 05.03.2007, 22:01

    Brauche Hilfe
    Hallo erstmal,

    da ich ein Anfänger in Programmieren bin wollte ich hier mal um Hilfe fragen. Ich lerne gerade C und programmier mit Dev-C++. Also ich bin gerade am Programmieren einer Binäruhr, mit zwei Funktionen.
    Die erste Funktion hab ich schon fast fertig, aber ein bisschen was fehlt noch.
    Hier der Source:

    #include<time.h>
    #include<stdio.h>

    int zeit_einlesen (void);

    int main () {




    int hh,mm,ss,max;
    printf("Dieses Programm liest eine Uhrzeit ein und wandelt Sie in Binaerform um.");

    printf("\nGeben Sie nun eine Uhrzeit in der Form HH:MM:SS ein: ");


    while (1) {
    mm+=(ss/60);
    ss%=60;
    hh+=(mm/60);
    mm%=60;
    system("cls");


    hh%=12;
    printf("%02d:%02d:%02d\n",hh,mm,ss);

    printf("%c %c %c %c", (hh/8) % 2?1:2, (hh/4) % 2?1:2,
    (hh/2) % 2?1:2, hh % 2?1:2);

    printf("\n%c %c %c %c %c %c", (mm/32) % 2?1:2,(mm/16) % 2?1:2, (mm/8) % 2?1:2, (mm/4) % 2?1:2,
    (mm/2) % 2?1:2, mm % 2?1:2);

    printf("\n%c %c %c %c %c %c", (ss/32) % 2?1:2, (ss/16) % 2?1:2, (ss/8) % 2?1:2, (ss/4) % 2?1:2,
    (ss/2) % 2?1:2, ss % 2?1:2);

    sleep(1000);

    ss++;
    }
    getch();
    return 0;
    }

    zeit_einlesen (void) {

    int hh,mm,ss,sekundenwert;

    scanf("%2d:%2d:%2d", &hh, &mm, &ss);

    hh%12;

    sekundenwert=hh*60*60+mm*60+ss;

    return sekundenwert;
    }

    Die 2 Funktionen:
    /* zeit_einlesen: liest vom Benutzer eine Zeit ein, überprüft sie, wandelt sie ins 12-Stunden-Format und dann in Sekunden um und liefert diesen Sekundenwert zurück*/
    int zeit_einlesen (void);

    /* bin_ausgabe: gibt den angegebenen wert im Binärformat aus. Mittels hoechst_bit gibt man an, welchen Wert das höchste auszugebende Bit hat (für Stunden 8, für Minuten und Sekunden 32)*/
    void bin_ausgabe (int hoechst_bit, int wert);

    Die erste habe ich, wie schon gesagt, fast fertig. Ich komm aber net drauf was mir noch fehlt.
    Danke schonmal im Vorraus

    mfg



    Re: Brauche Hilfe

    Dirty Oerty - 05.03.2007, 23:17


    das was da steht wird aber nicht funktionieren, außer ich hab mich verlesen.

    die funktion "zeit_einlesen" wird nirgends aufgerufen, also wird auch keine eingabe anweisung ausgeführt, also kommt, da ja die werte auf 0 bleiben immer 0 raus, hab ich recht?



    Re: Brauche Hilfe

    exbs - 06.03.2007, 00:05


    Zitat: hh%=12;
    printf("%02d:%02d:%02d\n",hh,mm,ss);

    printf("%c %c %c %c", (hh/Cool % 2?1:2, (hh/4) % 2?1:2,
    (hh/2) % 2?1:2, hh % 2?1:2);

    printf("\n%c %c %c %c %c %c", (mm/32) % 2?1:2,(mm/16) % 2?1:2, (mm/Cool % 2?1:2, (mm/4) % 2?1:2,
    (mm/2) % 2?1:2, mm % 2?1:2);

    printf("\n%c %c %c %c %c %c", (ss/32) % 2?1:2, (ss/16) % 2?1:2, (ss/Cool % 2?1:2, (ss/4) % 2?1:2,
    (ss/2) % 2?1:2, ss % 2?1:2); nicht "%c", sondern "%d" -> oben deklariest du ja auch als integer.

    ich arbeite grade ganu an diesem prob, aba ich nehm imma inna schleife die aktuelle systemzeit. das ganze allerdings in eine entlosschelife ohne abbruchbedingung zu packen ist extremst explosiev ;) ... arbeite mal daran und formatiere / kommentiere bitte deinen code ... das macht es leichter ihn zu lesen und zu bearbeiten :-/ ....



    Re: Brauche Hilfe

    Belphegor - 06.03.2007, 08:15

    Re: Brauche Hilfe
    printf("%c %c %c %c", (hh/8) % 2?1:2, (hh/4) % 2?1:2,
    (hh/2) % 2?1:2, hh % 2?1:2);

    printf("\n%c %c %c %c %c %c", (mm/32) % 2?1:2,(mm/16) % 2?1:2, (mm/8) % 2?1:2, (mm/4) % 2?1:2,
    (mm/2) % 2?1:2, mm % 2?1:2);

    printf("\n%c %c %c %c %c %c", (ss/32) % 2?1:2, (ss/16) % 2?1:2, (ss/8) % 2?1:2, (ss/4) % 2?1:2,
    (ss/2) % 2?1:2, ss % 2?1:2);

    Ein Beispiel:
    Für 10:36:25 z.B. soll folgendes ausgegeben werden:

    % ' % '
    % ' ' % ' '
    ' % % ' ' %

    - also die Binärdarstellung der Stunden (1010), Minuten (100100) und Sekunden (011001).

    Deswegen brauch ich die %c, ich brauch das nämlich so :)



    Re: Brauche Hilfe

    Belphegor - 06.03.2007, 08:17


    Dirty Oerty hat folgendes geschrieben: das was da steht wird aber nicht funktionieren, außer ich hab mich verlesen.

    die funktion "zeit_einlesen" wird nirgends aufgerufen, also wird auch keine eingabe anweisung ausgeführt, also kommt, da ja die werte auf 0 bleiben immer 0 raus, hab ich recht?

    Doch
    .
    .
    .
    }
    getch();
    return 0;
    }

    zeit_einlesen (void) {

    int hh,mm,ss,sekundenwert;

    scanf("%2d:%2d:%2d", &hh, &mm, &ss);

    hh%12;

    sekundenwert=hh*60*60+mm*60+ss;

    return sekundenwert;
    }

    Mir fehlt halt nur noch der Teil mitten drin irgendwie, sonst funktioniert alles.



    Re: Brauche Hilfe

    Dirty Oerty - 06.03.2007, 16:05


    na wo wird denn "zeit_einlesen" aufgerufen :? :?:

    die funktion wird doch nirgends verwendet.

    vor allem:

    was willst du nu eigntl machen?
    soll das eine uhr werden oder soll das nen "konverter" für uhrzeiten werden?



    Re: Brauche Hilfe

    exbs - 06.03.2007, 17:12


    Zitat: was willst du nu eigntl machen? er will eine binäruhr schreiben !


    du musst die funktion schon in deiner main aufrufen. sonnst wird das nix ;)...



    Re: Brauche Hilfe

    Belphegor - 06.03.2007, 18:44


    Und wie mach ich das?



    Re: Brauche Hilfe

    Belphegor - 06.03.2007, 21:16


    EDIT:

    Ok habs heute fertig gmacht ;) Skriptum sei Dank ^^
    Trotzdem Danke für die versuchte Hilfe.



    Re: Brauche Hilfe

    exbs - 06.03.2007, 22:59


    kannst ja mal herzeigen ;) ...



    Re: Brauche Hilfe

    Belphegor - 07.03.2007, 13:18


    #include<time.h>
    #include<stdio.h>

    int zeit_einlesen (void);

    void bin_ausgabe (int hoechst_bit, int wert);

    int main () {

    int hh,mm,ss;

    printf("\nGeben Sie nun eine Uhrzeit in der Form HH:MM:SS ein: ");

    int sekundenwert;
    sekundenwert = zeit_einlesen ();
    ss = sekundenwert%60;
    mm = (sekundenwert/60)%60;
    hh = (sekundenwert/60/60)%60;

    while (1) {
    mm+=(ss/60);
    ss%=60;
    hh+=(mm/60);
    mm%=60;
    system("cls");


    hh%=12;
    printf("%02d:%02d:%02d\n",hh,mm,ss);



    bin_ausgabe(8,hh);
    bin_ausgabe(32,hh);
    bin_ausgabe(32,ss);

    sleep(1000);

    ss++;
    }
    getch();
    return 0;
    }

    zeit_einlesen (void) {

    int hh,mm,ss,sekundenwert,max;

    max = scanf("%2d:%2d:%2d", &hh, &mm, &ss);

    hh%12;

    sekundenwert=hh*60*60+mm*60+ss;

    return sekundenwert;
    }

    void bin_ausgabe (int hoechst_bit, int wert) {

    do {
    printf("%c ",(wert/hoechst_bit) % 2?1:2);
    hoechst_bit=hoechst_bit/2;
    } while(hoechst_bit!=0);
    printf("\n");
    }



    Re: Brauche Hilfe

    exbs - 07.03.2007, 15:17


    Code: #include<time.h>
    #include<stdio.h>

    int zeit_einlesen (void);

    void bin_ausgabe (int hoechst_bit, int wert);

    /* getSystemTime ... Returns a pointer on the timestring. */
       char* getSystemTime(void)
       {
             time_t systemzeit;
             struct tm *tmzgr;
       
             systemzeit = time(NULL);
             tmzgr = localtime(&systemzeit);
             
             return tmzgr;
        }

    int main () {

    int hh,mm,ss;

    printf("\nGeben Sie nun eine Uhrzeit in der Form HH:MM:SS ein: ");

    int sekundenwert;
    sekundenwert = zeit_einlesen ();
    ss = sekundenwert%60;
    mm = (sekundenwert/60)%60;
    hh = (sekundenwert/60/60)%60;

    while (1) {
    mm+=(ss/60);
    ss%=60;
    hh+=(mm/60);
    mm%=60;
    system("cls");


    hh%=12;
    printf("%02d:%02d:%02d\n",hh,mm,ss);



    bin_ausgabe(8,hh);
    bin_ausgabe(32,hh);
    bin_ausgabe(32,ss);

    sleep(1000);

    ss++;
    }
    getch();
    return 0;
    }

    zeit_einlesen (void) {

    char zeit[30];
    int hh,mm,ss,sekundenwert,max;

    strftime(zeit, 30, "%X", getSystemTime());
    max = sscanf(zeit, "%2d:%2d:%2d", &hh, &mm, &ss);

    hh%12;

    sekundenwert=hh*60*60+mm*60+ss;

    return sekundenwert;
    }

    void bin_ausgabe (int hoechst_bit, int wert) {

    do {
    printf("%c ",(wert/hoechst_bit) % 2?1:2);
    hoechst_bit=hoechst_bit/2;
    } while(hoechst_bit!=0);
    printf("\n");
    }

    ich war jetzt einfach mal so frei ... gug es dir mal an, evlt gefällt es dir ;) ...

    du könntest aba erstens nen bisschen an der formatierung des codes arbeiten!!

    dann solltest du das ganze mit deiner abbruchbedingung nochmal überdenken ... like....

    Code: #include <conio.h>

    do
    {
         ...code...;
    } while (!kbhit); und net "while(1)" ... denn so wird bei tasten druck die schleife verlassen ... was anderes halt ...

    und dann bitte erläutere mir mal deine ausgabe ... kann ja sein, dass ich da was net erkenn, aba ich hab hier ne binäruhr und die geht nen bisschen anders ... ?! is ja sicher eine alternative darstellung.

    also ich hab jetzt nochmal gegugt ... da is irgendwo nen fehler in der berechung ! ... aba ich gug nochmal ... vlt reicht es ja auch wenn du sagst, wie du dir das gedacht hast ...



    Re: Brauche Hilfe

    Dirty Oerty - 07.03.2007, 22:17


    mal ne dumme frage zwischen durch:

    was is ne binäruhr :lol: :lol: :oops: :?:

    is damit nur gemeint, das die "zahlen auf der normalen uhr in binärzahlen umgewandelt werden", oder steckt mehr dahinter?

    (jaja, google... :roll: ...bin aber doch faul... :D )



    Re: Brauche Hilfe

    exbs - 07.03.2007, 23:41


    ja diese uhr stellt die zeit binär dar ...



    um herrauszufinden wie das ganze dann umzurechnen ist (was echt leicht is) ... streng deine faulen graun zelln an ;) ...



    Re: Brauche Hilfe

    Dirty Oerty - 08.03.2007, 16:10


    achso, also rechnet bloß die einzelnen zahlen der uhrzeit ins binärsystem.
    okok



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Was spielt ihr so? - gepostet von ggspp am Montag 30.04.2007
    Comlimieren - gepostet von gs93 am Dienstag 31.10.2006
    Malloc Verständnisproblem - gepostet von Zuul am Donnerstag 04.01.2007
    Error - gepostet von xxx am Freitag 01.12.2006
    Tipps? - gepostet von CRASH am Samstag 21.10.2006
    Html tutorial - gepostet von Pole am Donnerstag 28.12.2006



    Ähnliche Beiträge wie "Brauche Hilfe"

    Rogue Char Punkte verteilung Hilfe! - Th3_PuNiSh3r (Dienstag 01.11.2005)
    Hilfe zu euren Signaturen, Avataren usw. - Aurora DeGardo (Donnerstag 09.08.2007)
    DF 4 Hauptrahmen gebrochen Hilfe!!!!!!!!! - offre (Dienstag 05.09.2006)
    Hilfe, ich werd Angegriffen... - kleinergrizzly (Donnerstag 28.12.2006)
    Kriege den DF 5 nicht eingestellt,... HILFE - Adamski (Sonntag 30.09.2007)
    Hilfe ich brauche dringend Getreide - susan (Donnerstag 19.07.2007)
    Happy Birthday liebe Sandra - Nicole (Sonntag 07.12.2008)
    Heckrotor zuckt nach Wechsel. Brauche technischen Rat! - mbusker (Samstag 11.03.2006)
    Hilfe -.- - Bianca (Dienstag 12.12.2006)
    Hilfe, ich bin DaWanda süchtig... - IM307 (Freitag 31.08.2007)