Hilfe bei 2mal for Schleifen mit einer if Anwendungen



  • Also ich möchte ein Program schreiben was von 1 bis 100 zählt, die Zahlen sollen neben einander und durch Kommas getrennt sein nur vor der ersten und hinter der letzten Zahl soll kein Komma stehen.Das Ganze möchte in in einer For Schleife machen.Soweit bin ich erst.

    Soweit bin ich :
    for(i=1; i <= 100; i++)
    Console::WriteLine("Die Variable hat jetzt den Wert {0}",i);
    aber leider habe ich kein Plan, wie ich das in einer Reihe schreibe. Ihr soch bestimmt oder???
    Danke Euch schon mal.



  • Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • int main()
    {
      for(int i=1; i<=100; i++) 
      {
        if (i <100)
          System::Console::Write("{0}, ", i); 
        else
          System::Console::Write("{0}", i); 
      }
      System::Console::WriteLine();
    }
    

    PS: Das ist kein C/C++ sondern C++/CLI...



  • Also es funktioniert so:

    #include <stdafx.h>
    #include <fstream>
    #include <iostream>
    
    using namespace std;
    int zahl = 0;
    
    int main()
    {
    	while(zahl != 100)
    	{
    	cout << zahl <<",";
    	zahl++;
    	}
    return 0;
    }
    

    und wenn sie zwischen jeder Zahl eine Pause haben wollen, also so eine Sekunde oder so, dann nehmen sie diesen code!

    #include <stdafx.h>
    #include <fstream>
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    int zahl = 0;
    
    void wait(double sec) //Warte Funktion
    {
        const DWORD dwWait = GetTickCount();
        while(GetTickCount()-dwWait < sec*1000);
    }
    
    int main()
    {
    	while(zahl != 100)
    	{
    	cout << zahl <<",";
    	zahl++;
    	wait(1); //Hier wartet das Programm eine Sekunde! Dann läuft es weiter!
    	}
    return 0;
    }
    

    Ich hoffe es hilft ihnen weiter!^^ Programmiere nur als Hobby!^^ Hab also nicht so viel Ahnung mit Console und so weiter!^^ Viel Spaß!

    MFG:DerLateinProfi



  • DerLateinProfi schrieb:

    Also es funktioniert so:

    [cpp]
    [cpp]
    void wait(double sec) //Warte Funktion
    {
    const DWORD dwWait = GetTickCount();
    while(GetTickCount()-dwWait < sec*1000);
    }

    Verwende
    [cpp]System::Threading::Thread::Sleep(1000);[/cpp]

    Mit der Whileschleife verbrauchst Du unnötig Resourcen der CPU - ein wartendes Programm soll nichts machen - und 100% Auslastung is da einfach zu viel 😉



  • @DerLateinProfi: Durchgefallen, das Programm macht nicht das was der OP will...



  • Hallo Danke für deine schnelle Hilfe und das du mein Anfrage in den richtigen Bereich gebracht hast.Nun n och meine Frage an dich, wie sie es aus ohne System sondern nur mit Console::WritLine();???? Weil lasse ich es dann ablaufen, schreibt er mir alles unter einander ich habe es jetzt so geändert:
    Int32 i;

    for(i=1; i<=100; i++)
    {
    if (i <100)
    Console::WriteLine("{0}, ", i);
    else
    Console::WriteLine("{0}", i);
    }
    Console::WriteLine();

    Kannst du mir ein Buch empfehlen wo man es gut erlernen kann???

    Jochen Kalmbach schrieb:

    int main()
    {
      for(int i=1; i<=100; i++) 
      {
        if (i <100)
          System::Console::Write("{0}, ", i); 
        else
          System::Console::Write("{0}", i); 
      }
      System::Console::WriteLine();
    }
    

    PS: Das ist kein C/C++ sondern C++/CLI...



  • Schau mal ins Thema Namensräume.

    Um das System wegzubekommen musst Du ein

    #using namespace System;
    

    an den Anfang des Codes stellen.



  • Das habe ich drin, schau her :
    #include "stdafx.h"

    using namespace System;

    int main(array<System::String ^> ^args)
    {
    Int32 i;

    for(i=1; i<=100; i++)
    {
    if (i <100)
    Console::WriteLine("{0}, ", i);
    else
    Console::WriteLine("{0}", i);
    }
    Console::WriteLine();

    return 0;
    }

    Knuddlbaer schrieb:

    Schau mal ins Thema Namensräume.

    Um das System wegzubekommen musst Du ein

    #using namespace System;
    

    an den Anfang des Codes stellen.



  • Hm, mal wieder nur überflogen.

    Das System kannst Du einfach weglassen.

    Ansonsten schreibt Write einfach hintereinander weg,
    WriteLine dagegen fügt einen Zeilenumbruch hinzu.

    http://msdn2.microsoft.com/en-us/library/system.console.writeline.aspx

    http://msdn2.microsoft.com/en-us/library/system.console.write.aspx



  • aber wenn ich System bei #using namesspace; weglasse, dann bekomme ich eine Fehlermedlung. Und in der Anweisung habe ich System ja schon weggelassen nur er schreibt es mir eben nicht in einer Linie/Reihe. Oder welches System meinst du ???
    (Vielleicht liegt es an meinem Programm ich schreibe mit Visual C++2005 Express Edition keine Ahnung ob das wichtig ist.)

    Und da komme ich immer noch nicht mit...Ich brauche einen Nachhilfelehrer 🤡

    Knuddlbaer schrieb:

    Hm, mal wieder nur überflogen.

    Das System kannst Du einfach weglassen.

    Ansonsten schreibt Write einfach hintereinander weg,
    WriteLine dagegen fügt einen Zeilenumbruch hinzu.

    http://msdn2.microsoft.com/en-us/library/system.console.writeline.aspx

    http://msdn2.microsoft.com/en-us/library/system.console.write.aspx



  • Write => Ohne Zeilenumbruch am Ende
    WriteLine => Mit Zeilenumbruch am Ende



  • lass die Raute (#) vor dem using weg,
    mit #using <...> bindet der Compiler Dlls ein

    wenn du using namespace System; an eine stelle des Programms schreibst, benutzt du ab da Funktionen aus dem namespace System



  • Ihr habt ja Recht, und das stell ich auch nicht in Frage, nur ist diese Antwort von mir auch aus deisem Forum, und zweitens funktioniert das bei mir immer! Ich hatte damit noch nie Probleme, und ich habe das Programm sogar gestern extra getestet! Und bei mir hat es geklappt, naja..... Was solls! Wenn ihr andere Lösungen bevorzugt, oder die bei euch am besten fnunktionieren, dann benutzt die! War ja nur nen Beispiel wie's bei mir funktioniert! Naja.... Ich bin aus diesem Beitrag Raus!!!!!!!

    MFG: DerLateinProfi

    PS: Viel Spaß!



  • Hast Du Dein Programm schon mal länger als 49 Tage laufen lassen? (Ja, es gibt solche Programme die so lange laufen)



  • Danke danke jetzt habe ich es verstanden und auch hinbekommen.Du bzw Ihr seit klasse danke für Eure Hilfe 🤡

    Jochen Kalmbach schrieb:

    Write => Ohne Zeilenumbruch am Ende
    WriteLine => Mit Zeilenumbruch am Ende


Anmelden zum Antworten