problem z pętlą

0

Cześć
Jestem dość początkowym młodym programistą i mam pewien problem ponieważ, gdy wykonuje program do nauki to nie mam pojęcia gdzie wstawić pętle. Pętle wstawiłem już w program.
Petla ma powtarzać powtarzać wybór opcji, aby po prostu się nie wyłączał po błędnej odpowiedzi
Oto kod:

#include <iostream>
#include <windows.h>
using namespace std;
int a,b,h,opcja;
int main()
{
    cout << "W" ;
    Sleep(50);
    cout << "i" ;
    Sleep(50);
    cout << "t" ;
    Sleep(50);
    cout << "a" ;
    Sleep(50);
    cout << "j" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "w" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "k" ;
    Sleep(50);
    cout << "a" ;
    Sleep(50);
    cout << "l" ;
    Sleep(50);
    cout << "k" ;
    Sleep(50);
    cout << "u" ;
    Sleep(50);
    cout << "l" ;
    Sleep(50);
    cout << "a" ;
    Sleep(50);
    cout << "t" ;
    Sleep(50);
    cout << "o" ;
    Sleep(50);
    cout << "r" ;
    Sleep(50);
    cout << "z" ;
    Sleep(50);
    cout << "e" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "g" ;
    Sleep(50);
    cout << "e" ;
    Sleep(50);
    cout << "o" ;
    Sleep(50);
    cout << "m" ;
    Sleep(50);
    cout << "e" ;
    Sleep(50);
    cout << "t" ;
    Sleep(50);
    cout << "r" ;
    Sleep(50);
    cout << "y" ;
    Sleep(50);
    cout << "c" ;
    Sleep(50);
    cout << "z" ;
    Sleep(50);
    cout << "n" ;
    Sleep(50);
    cout << "y" ;
    Sleep(50);
    cout << "m"<<endl ;
    Sleep(50);

    cout << "W" ;
    Sleep(50);
    cout << "y" ;
    Sleep(50);
    cout << "b" ;
    Sleep(50);
    cout << "i" ;
    Sleep(50);
    cout << "e" ;
    Sleep(50);
    cout << "r" ;
    Sleep(50);
    cout << "z" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "j" ;
    Sleep(50);
    cout << "e" ;
    Sleep(50);
    cout << "d" ;
    Sleep(50);
    cout << "n" ;
    Sleep(50);
    cout << "a" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "z" ;
    Sleep(50);
    cout << " " ;
    Sleep(50);
    cout << "o" ;
    Sleep(50);
    cout << "p" ;
    Sleep(50);
    cout << "c" ;
    Sleep(50);
    cout << "j" ;
    Sleep(50);
    cout << "i"<< endl;
    Sleep(50);
    cout<<"================"<<endl;
    cout <<"1.kwadrat"<<endl;
    cout <<"2.prostokat"<<endl;
    cout <<"3.kolo"<<endl;
    cout <<"4.romb"<<endl;
    cout <<"5.trapez"<<endl;
    cout <<"6.rownoleglobok"<<endl;
    cout <<"7.trojkat"<<endl;
    cout<<"================"<<endl<<endl;
    cout<<"Aby wybrac jedna z opcji wpisz numerek albo nazwe"<<endl;
    cout<<"wpisz opcje:";
    cin>>opcja;

  {

while(opcja==default)
 {

  {
  cout<<"wpisz opcje:";
  cin>>opcja;

  }
    switch(opcja)
{
    case 1:
    {
        cout<<"Podaj dlugosc boku:";
        cin>>a;
        cout<<a*a;
    break;
    }
    {case 2:
        cout<<"podaj dlugosc pierwszego boku:"<<endl;
        cin>>a;
        cout<<"podaj dlugosc drugiego boku:"<<endl;
        cin>>b;
    break;}
    {case 3:
        cout<<"podaj promien kola:";
        cin>>a;
        cout<<a<<"TT";

    break;}
    {case 4:
        cout<<"podaj dlugosc podstawy rombu:";
        cin>>a;
        cout<<"podaj wysokosc rombu:";
        cin>>b;
        cout<<a*b;

int h;
    break;}
    {case 5:
    cout<<"podaj podstawe trapeza:";
    cin>>a;
    cout<<"podaj druga podstawe trapeza:";
    cin>>b;
    cout<<"podaj wysokosc trapeza:";
    cin>>h;
    cout<<(a+b)*h/2;
    break;}
    {case 6:
    cout<<"podaj podstawe rownolegloboku:";
    cin>>a;
    cout<<"podaj wysokosc rownolegloboku";
    cin>>b;
    cout<<a*b;


    break;}
    {case 7:
    cout<<"Podaj podstawe trojkata";
    cin>>a;
    cout<<"Podaj wysokosc trojkata";
    cin>>b;
    cout<<a*b;
    break;}


    default:cout<<"blad";

}
  }
  }



    return 0;
}
2

nie mam pojęcia gdzie wstawić pętle. Pętle wstawiłem już w program.

Acha, czyli wstawiłeś losowo :) Sformatuj to i zawęź jakos ten problem do czegoś co da sie czytac i analizować.

3

Na początek zrób to powitanie w taki sposób

  std::string hello = ("Witaj swiece to juestem");
  for(int i = 0; i < hello.length() ; i++){
    std::cout << hello[i];
   Sleep(50);
  } 
  std::cout << std::endl;

Jak chcesz się czegoś nauczyć to rozpisz sobie schemat blokowy krok po kroku, co musisz zrobić i według tego zaimplementuj kod. Jak podamy ci rozwiązanie to niczego się nie nauczysz. Twój problem jest trywialny więc, przy bardziej skomplikowanych zadaniach rozbiłbyś się o ścianę swojej niewiedzy.

0

hzmzp dzięki za skróconą wersje napisu bo nawet nie miałem pojęcia że da się to w taki "prosty" sposób rozpisać to

1

@pixell tak jak napisał @lion137 poprawnie sformatuj kod i napisz dokładnie o co ci chodzi. Dużo osób na tym forum pomoże ci ale musisz włożyć trochę wysiłku w opisanie swojego problemu, nikt nie będzie zgadywał co tam się u ciebie odjaniepawla...

0

Oto zmieniony kod i tu mi chodzi o to że chcĘ dać pętle while na opcje switch, aby po wpisaniu np. zamiast 1 czy 7 wpisze np,12 i po tym wiadomo program się kończy i nie tyle nie wiem gdzie tą petle wstawić tylko nie mam pojęcia jak ją zapisać odpowiednio

#include <windows.h>
using namespace std;
int a,b,h,opcja;
int main()
{
    std::string hello = ("Witaj w kalkulatorze geometrycznym \nWybierz jedną z opcji\n");
  for(int i = 0; i < hello.length() ; i++){
    std::cout << hello[i];
   Sleep(50);}
   {
    std::string hello = ("================ \n 1.kwadrat \n 2.prostokat \n 3.kolo \n 4.romb \n 5.trapez \n 6.rownoleglobok \n 7.trojkat \n================'n");
  for(int i = 0; i < hello.length() ; i++){
    std::cout << hello[i];
   Sleep(1);}


  cout<<"wpisz opcje:";
  cin>>opcja;

  }
    switch(opcja)
{
    case 1:
    {
        cout<<"Podaj dlugosc boku:";
        cin>>a;
        cout<<a*a;
    break;
    }
    {case 2:
        cout<<"podaj dlugosc pierwszego boku:"<<endl;
        cin>>a;
        cout<<"podaj dlugosc drugiego boku:"<<endl;
        cin>>b;
    break;}
    {case 3:
        cout<<"podaj promien kola:";
        cin>>a;
        cout<<a<<"TT";

    break;}
    {case 4:
        cout<<"podaj dlugosc podstawy rombu:";
        cin>>a;
        cout<<"podaj wysokosc rombu:";
        cin>>b;
        cout<<a*b;
    break;}
    {case 5:
    cout<<"podaj podstawe trapeza:";
    cin>>a;
    cout<<"podaj druga podstawe trapeza:";
    cin>>b;
    cout<<"podaj wysokosc trapeza:";
    cin>>h;
    cout<<(a+b)*h/2;
    break;}
    {case 6:
    cout<<"podaj podstawe rownolegloboku:";
    cin>>a;
    cout<<"podaj wysokosc rownolegloboku";
    cin>>b;
    cout<<a*b;
    break;}
    {case 7:
    cout<<"Podaj podstawe trojkata";
    cin>>a;
    cout<<"Podaj wysokosc trojkata";
    cin>>b;
    cout<<a*b;
    break;}
    default:cout<<"blad";

}
return 0;
}


1
std::string menu= ("================\n\t1.kwadrat\n\t2.prostokat\n\t3.kolo\n\t4.romb\n\t5.trapez\n\t6.rownoleglobok\n\t7.trojkat\n\t0.koniec\n================'n");
for(;;cout<<endl<<endl)
{
	for(int i=0;i<menu.length();cout<<menu[i++]) Sleep(1);
	cout<<"wpisz opcje:";
	cin.clear();
	cin.ignore(INT_MAX);
	cin>>opcja;
	switch(opcja)
	{
		case 0: return 0;
		case 1:
		{
			cout<<"Podaj dlugosc boku: ";
			cin>>a;
			cout<<a*a;
			break;
		}
		case 2:
		{
			cout<<"podaj dlugosc pierwszego boku:"<<endl;
			cin>>a;
			cout<<"podaj dlugosc drugiego boku:"<<endl;
			cin>>b;
			cout<<a*b;
			break;
		}
		case 3:
		{
			cout<<"podaj promien kola:";
			cin>>a;
			cout<<M_PI*a*a;
			break;
		}
		case 4:
		{
			cout<<"podaj dlugosc podstawy rombu:";
			cin>>a;
			cout<<"podaj wysokosc rombu:";
			cin>>b;
			cout<<a*b;
			break;
		}
		case 5:
		{
			cout<<"podaj podstawe trapeza:";
			cin>>a;
			cout<<"podaj druga podstawe trapeza:";
			cin>>b;
			cout<<"podaj wysokosc trapeza:";
			cin>>h;
			cout<<(a+b)*h/2;
			break;
		}
		case 6:
		{
			cout<<"podaj podstawe rownolegloboku:";
			cin>>a;
			cout<<"podaj wysokosc rownolegloboku";
			cin>>b;
			cout<<a*b;
			break;
		}
		case 7:
		{
			cout<<"Podaj podstawe trojkata";
			cin>>a;
			cout<<"Podaj wysokosc trojkata";
			cin>>b;
			cout<<a*b;
			break;
		}
		default:	cout<<"blad";
	}
}
3
void slow_print(const std::string& s, std::chrono::system_clock::duratin delay = std::chrono::milliseconds{50})
{
    while (auto ch : s) {
         std::this_thread::sleep_for(delay );
         std::cout << ch << std::flush;
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.