warten



  • Hallo an alle,

    wie kann ich unter C ein Code schreiben, damit ich dem Benutzer wie folgt zeigen kann.

    Bitte Warten...Der Prozess wird ausgeführt...
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    Ergebnis : Sie haben nichts zu zahlen.
    

    Der Zähler soll von 10 bis 0 zählen.Währenddessen soll der Benutzer die Zahlen sehen.

    Danke

    Viele Grüße

    Azad



  • Das kannst du mit printf machen! 👍



  • _matze schrieb:

    Das kannst du mit printf machen! 👍

    aber beachte dabei, daß heutige Computer das blitzschnell (< 1 ms)
    herunterzählen und anzeigen können. 😮 ( 🕶 )



  • ich denke ich konnte nicht richtig erklären was ich wollte selbe Schuld 🙂

    ich meinte die Zahlen sollen nicht so gezeigt werden wie ich geschrieben habe sondern sie sollen sich bewegen

    ersmal 10
    dann 10 ist weg
    9 dann 9 weg
    8 dann 8 weg
    ...
    bis 0.

    Oder ein Symbol, das sich während dem Warten bewegt ungefähr so was + plus dreht sich und der Benutzer weiß dass der Prozess gemacht wird und er warten muss.

    Danke

    Azad



  • Javaner schrieb:

    _matze schrieb:

    Das kannst du mit printf machen! 👍

    aber beachte dabei, daß heutige Computer das blitzschnell (< 1 ms)
    herunterzählen und anzeigen können. 😮 ( 🕶 )

    Hmpf, schon klar. Das war auch eher ironisch gemeint, da die "Aufgabenstellung" schwammig formuliert und kein eigener Ansatz vorhanden war... 🙄



  • Hier das Programm dazu:

    int main() {
      int i;
      printf("Bitte Warten...Der Prozess wird ausgeführt...\n");
      for (i=10; i >= 1; --i)
        printf("%d\n", i);
      printf("Ergebnis : Sie haben nichts zu zahlen.\n");
    }
    


  • Hallo nochmal,

    Es ist wirklich schwer zu beschreiben,was man denkt.

    Dank dir habe ich ein neues Wort gelernt. 🙂 schwammig ich werde mir mehr Mühe geben.

    Danke

    Azad



  • Javaner schrieb:

    Hier das Programm dazu:

    int main() {
      int i;
      printf("Bitte Warten...Der Prozess wird ausgeführt...\n");
      for (i=10; i >= 1; --i)
        printf("%d\n", i);
      printf("Ergebnis : Sie haben nichts zu zahlen.\n");
    }
    

    Ja, aber da fehlt ja noch das Warten, das erhaben wollte.

    Wenn du unter Windows entwickelst, dann binde windows.h ein und nimm die Funktion Sleep (Parameter ist Wartezeit in ms). Unter Unix ist das glaube ich sleep.



  • Azad schrieb:

    ersmal 10
    dann 10 ist weg
    ...

    Dann so:

    int main() { 
      int i; 
      int j;
      printf("Bitte Warten...Der Prozess wird ausgeführt...\n"); 
      for (i=10; i >= 1; --i) {
        for (j=0; j < 100; j++)
          printf("\n"); 
        printf("%d\n", i); 
      }
      printf("Ergebnis : Sie haben nichts zu zahlen.\n"); 
    }
    

    Die 100 ausgegebenen Leerzeilen dürften bei den
    meisten, heute verwendeten, Konsolen ausreichend sein,
    damit die Zahlen jeweils weg sind!

    Ansonsten einfach eine Zahl > 100 wählen. 🕶

    Andere Möglichkeiten gibt es, bei Beschränkunf auf Ansi-C nicht. 😞



  • _matze schrieb:

    Ja, aber da fehlt ja noch das Warten, das er haben wollte.

    Und woraus schließt du, daß er das Warten haben wollte?



  • Javaner schrieb:

    _matze schrieb:

    Ja, aber da fehlt ja noch das Warten, das er haben wollte.

    Und woraus schließt du, daß er das Warten haben wollte?

    Thread-Titel?

    EDIT: Ok, jetzt hab ich auch gerafft, was du mit "10 ist weg" meintest! 😉



  • Azad schrieb:

    Oder ein Symbol, das sich während dem Warten bewegt ungefähr so was + plus dreht sich und der Benutzer weiß dass der Prozess gemacht wird und er warten muss.

    (korrekt: ...während des Wartens bewegt...)

    Auch hier ist nicht ersichtlich, daß der Benutzer warten soll.

    Und wenn dann die Frage: Wie lange soll der Benutzer zwischen den
    Ausgaben der einzelnen Zahlen warten?

    - eine Millisekunde?
    - eine Sekunde?
    - eine Woche?
    - der Zeitraum der Dauer einer menschlichen Schwangerschaft?
    ...



  • Javaner schrieb:

    Auch hier ist nicht ersichtlich, daß der Benutzer warten soll.

    Hör mal, willst du dich jetzt darüber mit mir streiten?? Er hat den Thread "Warten" genannt und hat das Warten in seiner Beschreibung ebenfalls erwähnt. Und das wohl wichtigste Argument: Dein Code läuft selbstverständlich dermaßen schnell ab, dass man die einzelnen Zahlen kaum sieht! Was hast du erwartet? Hast du gehofft, er hat zuhause noch einen schicken 286er stehen? Da muss eine Verzögerung 'rein, sonst bringt ihm das nicht den gewünschten Effekt. So einfach ist das.



  • Also,

    nehmen wir an:

    Prozess A : 2 Minuten

    Prozess B : 1 Minute

    Damit der Benutzer nichts eintippt, während A läuft, muss der Benutzer Bescheid wissen.

    entweder runterzahlen lassen und dabei die zahlen anzeigen lassen wie eine Digitaluhr

    oder

    plus Zeichen drehen lassen bis A abgearbeitet worden ist.

    Danke

    Azad



  • _matze schrieb:

    Da muss eine Verzögerung 'rein, sonst bringt ihm das nicht den gewünschten Effekt. So einfach ist das.

    Warten muß er auf jeden Fall ==> Der gewünschte Effekt tritt schon ein.

    Eine Verzögerung müßte dann eingebaut werden, wenn er
    länger warten möchte; und genau daß (wie lange warten)
    hat er eben nicht beschrieben.

    Aber ich denke auch, daß sich ein Streit deswegen
    nicht lohnen würde! 👍



  • Hallo Leute,

    ich dachte. Hier kann man alles fragen. So wie es aussieht, habe ich eine kleine Unruhe ausgelöst. Dafür entschuldige ich mich bei euch. Ich bin ganz neu in C und wollte nur üben.Mehr nicht.

    Aber ist hier auch keiner gezwungen zu antworten. Wenn jemand die Frage blöd findet, kann man ja keine antwort drauf geben. Da werde ich nicht traurig.

    Danke trotzdem.

    Viele Grüße

    Azad



  • Die Wartezeiten stehen doch oben 🙂



  • Ok, und wo genau kommst du nicht weiter? Wie sieht dein bisheriger Versuch aus? Es wäre gut, wenn du mal ein wenig Code zeigst.



  • Azad schrieb:

    Also,
    nehmen wir an:...

    Das ist doch schon was ganz anderes:

    Werden deine Prozesse vom selben Programm ausgeführt
    das auch die Ausgaben machen soll? Dann mußt du die
    Ausgaben in einen selbständigen Thread auslagern und
    diesem mit dem Teile, das die Prozesse steuert, synchronosieren.

    Werden deine Prozesse "extern" ausgeführt?
    Dann müssen deine Prozesse (Ausgabeprozess und eigentlicher Prozess)
    miteinander kommunizieren.

    Aber egal: Beide Varianten sind innerhalb des Ansi-C Bereichs
    nicht zu lösen 😞



  • ich habe die oben genannte Beispiele ausführen lassen.

    Die funktionieren zwar aber was ich wollte ist das nicht.

    Nehmen wir an wieder:

    + Zeichen soll sich 2 Minuten drehen.

    das wollte ich nur wissen.

    Danke


Anmelden zum Antworten