Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

c++ pętla w pętli ?


  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 -PainKiller-

    Wszechobecny

  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 22.09.2009 19:16

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    float a;
    float b;
    float wynik; 
    char znak;
    
    cout<<"podaj pierwsza liczbe: "; 
    cin>>a;
    cout<<"podaj druga liczbe: ";
    cin>>b; 
    cout<<"--------------------------"<<endl; 
    cout<<"podaj znak dzialania: "<<endl; 
    cout<<""<<endl; 
    cout<<"+ | dodawanie"<<endl; 
    cout<<"- | odejmowanie"<<endl; 
    cout<<"* | mnozenie"<<endl; 
    cout<<"/ | dzielenie"<<endl;
    cout<<""<<endl; 
    cout<<"twoj wybor: "; 
    cin>>znak;
    
    switch (znak) {
           
           //dodawanie 
                  case '+':
                       wynik=a+b;
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
           //odejmowanie            
                  case '-':
                       wynik=a-b;
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
           //mnozenie             
                  case '*':
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       wynik=a*b;
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
                       
           //dzielenie             
                  case '/':
                       if (b==0) {
                       cout<<"nie dzieli sie przez 0!"<<endl;
                       break; }
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       wynik=a/b;
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
                       }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

jak zrobić żeby po caseach czyli po załamaniu instrukcji wyboru przez "break" wywołać opcję "czy chcesz liczyć dalej?" która to przeniesie na górę i zacznie od wprowadzania na nowo danych a i b?

myślałem żeby obrać to w do () {}while.. ale wtedy musiałbym definiować zmienną do while na samym początku a to ma być po pierwszym przeprowadzonym liczeniu.. może ktoś ma pomysł ??

[ Dodano: 22-09-2009, 20:30 ]
generalnie mozna zrobić coś takiego, tylko jak wyskoczyć na górę

cout<<"liczyc dalej? (t- tak, n-nie) : "; 
  char odp;        
  cin>>odp;


#2 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 22.09.2009 19:34

bez while'a raczej nic nie zdziałasz.
  • +
  • -
  • 0

#3 -PainKiller-

    Wszechobecny

  • Autor tematu
  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 22.09.2009 19:52

ok działa ^^ jutro bedzie piąteczka :D obrałem to w pętle tylko przedtem zapomniałem ze odpowiedz jest podawana przez uzytkownika i nie brałem w 'x'

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    float a;
    float b;
    float wynik; 
    char znak;
    char odp;
    char start; 
    char powt; 
   
    cout<<"autor: xxxx"<<endl; 
    cout<<"rozpoczac liczenie?"<<endl;
    
    cout<<"t-tak n-nie: "; 
    cin>>start; 
do {
   switch (start) {
          case 'n': 
          system("PAUSE");
          return EXIT_SUCCESS;
          
          case 't': 
           
    
    
    
    
    
    cout<<"podaj pierwsza liczbe: "; 
    cin>>a;
    cout<<"podaj druga liczbe: ";
    cin>>b; 
    cout<<"--------------------------"<<endl; 
    cout<<"podaj znak dzialania: "<<endl; 
    cout<<""<<endl; 
    cout<<"+ | dodawanie"<<endl; 
    cout<<"- | odejmowanie"<<endl; 
    cout<<"* | mnozenie"<<endl; 
    cout<<"/ | dzielenie"<<endl;
    cout<<""<<endl; 
    cout<<"twoj wybor: "; 
    cin>>znak;


    switch (znak) {
           
           //dodawanie 
                  case '+':
                       wynik=a+b;
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
           //odejmowanie            
                  case '-':
                       wynik=a-b;
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
           //mnozenie             
                  case '*':
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       wynik=a*b;
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
                       
           //dzielenie             
                  case '/':
                       if (b==0) {
                       cout<<"nie dzieli sie przez 0!"<<endl;
                       break; }
                       
                       if (b<0) {
                       cout<<"twoj wynik: "<<a<<znak<<"("<<b<<")"<<"="<<wynik<<endl; 
                       break; }
                       
                       if (a<0) {
                       cout<<"twoj wynik: "<<"("<<a<<")"<<znak<<b<<"="<<wynik<<endl; 
                       break; }
                       
                       wynik=a/b;
                       cout<<"twoj wynik: "<<a<<znak<<b<<"="<<wynik<<endl; 
                       break;
                       }
       
}
cout<<"liczyc dalej?(t-tak, n-nie): ";
cin>>powt; 


}while (powt!='n');


    system("PAUSE");
    return EXIT_SUCCESS;
}

jak pozbyć się błędu z dzielenia tzn dla przypadku np: 4: -2 bo wychodzi jakiś kosmiczny wynik...

#4 Gość__*

  • Gość

Reputacja: 0

Offline

Napisano 23.09.2009 17:05

jutro bedzie piąteczka

Hmm? Ja bym Ci nie dał 5 :) Prze-kompilowałem i program wariuje ;]

#5 -PainKiller-

    Wszechobecny

  • Autor tematu
  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 23.09.2009 17:15

a co dokładniej?

#6 Gość__*

  • Gość

Reputacja: 0

Offline

Napisano 23.09.2009 17:26

Jak wpisze t, wszystko ok - jak wpisze tak program wyświetla w nie skończoność tekst.

#7 -PainKiller-

    Wszechobecny

  • Autor tematu
  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 23.09.2009 17:28

tak, wlasnie nad tym pracuje

#8 Gość__*

  • Gość

Reputacja: 0

Offline

Napisano 23.09.2009 17:41

W czym piszesz?

#9 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 23.09.2009 18:41

zamiast
cin >> zmienna
uzyj
zmienna = getch()
z biblioteki conio.h
  • +
  • -
  • 0

#10 -PainKiller-

    Wszechobecny

  • Autor tematu
  • Zbanowany

Reputacja: 66
Pomocny

  • Postów:498
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Kraków
Offline

Napisano 23.09.2009 20:02

kur3k, jak chodzi o kompilator to w bloodshed dev-c++




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych