Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Inne] Poprawa, mała optymalizacja, dodanie 4 funkcji c++


Rekomendowane odpowiedzi

Opublikowano

Witam tu jest kod moje kalkulatora :

#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;

int main()
{
    int menu, s, i, x,h,j;
    double a, b, c, D, wybor;
    {


    do
        {
            wybor==0;//przeciwdziałanie bugowi
            system("CLS");



                cout << "[1] Funkcja kwadratowa "<<endl;
                cout << "[2] Dodawanie"<<endl;
                cout<< "[3] Odejmowanie"<<endl;
                cout<< "[4] Dzielenie"<<endl;
                cout<< "[5] Mnozenie"<<endl;
                cout<< "[6] Silnia"<<endl;
                cout<< "[7] Pierwiastkowanie"<<endl;
                cout<< "[8] Potega n stopnia"<<endl;
                cout<< "[9] Modulo"<<endl;
                cout<< "[10] Zakoncz"<<endl;

                    cin >> menu;
if (menu>=1 && menu<=10)
                {

                    if(menu == 10)
                        {
                            cout << "Zrezygnowales z dzialnia progrmu.";
                                return 0;
                        }
                            {


                                do
                                    {
                                        if (menu == 2)
                                            {
                                                cout<<"Podaj pierwsza liczbe: ";
                                                    cin>> a;
                                                cout<<"Podaj druga liczbe: ";
                                                    cin>> b;
                                                cout << "Wynik dodawania pierwszej i drugiej liczby jest: "<< a+b <<endl;
                                                cout<<"Czy chcesz liczyc jeszcze raz ?  "<<endl;
                                                cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz liczyc jeszcze raz wpisz 0;  ";
                                                    cin >> wybor;

                                            }
                                    }
                                while (wybor==1);
                            }
{
    do
        {
            wybor=0; // Aby resetowac wartosc tej zmiennej w pentli

                if (menu == 1)

                    {
                        cout << "Podaj wspolczynnik a: ";
                            cin >> a;
                        cout << "Podaj wspolczynnik b: ";
                            cin >> b;
                        cout << "Podaj wspolczynnik c: ";
                            cin >> c;

                                D=(b*-(4*a*c);
                                    if (a == 0)

                        {


                            cout << "To nie jest funkcja kwadratowa " <<endl;
                            cout<<endl;
                            cout<<endl;
                            cout<<"wspolczynnik a nie moze byc rowny 0"<<endl;
                            cout <<endl;
                            cout<<"Czy chcesz liczyc funkcje jeszcze raz ?  "<<endl;
                            cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz liczyc jeszcze raz funkcji wpisz 0;  ";
                                cin >> wybor;

                        }
                            else
                                if (D<0)

                                    cout << "Ta funkcja nie ma punktu przeciecia z osia X. Jej wspolrzedne wierzcholka to: " << "(" <<-b/(2*a )<< "," << (4*a)<<")";

                            else
                                if (D>0)
                                    {
                                        cout << "Ta funkcja ma 2 rozne pierwiastki rzeczywiste: " <<"X1= "<<(-b-sqrt(D))/(2*a)<<" oraz X2= "<<(-b+sqrt(D))/(2*a)<<endl;
                                        cout<<endl;
                                        cout<<endl;
                                        cout << "Wspolrzedne wierzcholka to: " <<"("<<-b/(2*a)<<","<< (4*a)<<")";
                                    }
                            else
                                    cout << "Ta funkcja ma tylko 1 rozwiazanie: " << "("<<-b/(2*a)<<","<< (4*a)<<")";
                                    cout << endl;

                    }
    }
        while ( wybor==1);

}
{
    do
{



if (menu ==3)
   {
        cout<<"Podaj pierwsza liczbe: ";
        cin>> a;
        cout<<"Podaj druga liczbe: ";
        cin>> b;
        cout << "Wynik odejmowania drugiej od pierwszej liczby jest: "<< a-b <<endl;
        cout <<endl;
        cout<<"Czy chcesz liczyc jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz liczyc jeszcze raz wpisz 0;  ";
        cin >> wybor;

    }
    }
    while (wybor==1);
}

{
    do
{



if (menu ==4)


   {
        cout<<"Podaj dzielna: ";
        cin>> a;
        cout<<"Podaj dzielnik: ";
        cin>> b;

        if ( b ==0)
        {
        cout << "cholero nie dziel przez 0"<< endl;
        cout<<"Czy chcesz dzielic jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz dzielic jeszcze raz wpisz 0;  ";
        cin >> wybor;
        }
else
{


        cout << "Wynik dzielenia wynosi : "<< a/b <<endl;
        cout <<endl;
        cout<<"Czy chcesz dzielic jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz dzielic jeszcze raz wpisz 0;  ";
        cin >> wybor;
   }
    }
    }
    while (wybor==1);
}
{
    do
{



if (menu ==5)
   {
        cout<<"Podaj pierwsza liczbe: ";
        cin>> a;
        cout<<"Podaj druga liczbe: ";
        cin>> b;
        cout << "Wynik mnożenia wynosi: "<< a*b <<endl;
        cout <<endl;
        cout<<"Czy chcesz mnozyc jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz mnozyc jeszcze raz wpisz 0;  ";
        cin >> wybor;

    }
    }
    while (wybor==1);
}

{
    do
{



if (menu ==6)
   {
       x=1;
                cout<<"podaj a=";
                cin>>s;
                for(i=1;i<=s;i++)
                {
                x=x*i;
                }
                cout<<x<<endl;
                cout <<endl;
        cout<<"Czy chcesz mnozyc jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz mnozyc jeszcze raz wpisz 0;  ";
        cin >> wybor;
    }
    }
    while (wybor==1);
}


{
    do
{



if (menu ==7)
   {
        cout<<"Podaj liczbe pod pierwiastkiem : ";
        cin>> a;
            if (a<0)
            {

 cout<<"liczba pod pierwiastkiem nie moze bycmniejsza 0"<<endl;
 cout <<endl;
 cout<<"Czy chcesz liczyc pierwiastek jeszcze raz ?  "<<endl;
 cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz pierwiastkowac jeszcze raz wpisz 0;  ";
 cin >> wybor;

            }

                            else if (a>=0)
            {
                cout << "Wynik pierwiastkowania wynosi: "<< sqrt(a) <<endl;
        cout <<endl;
        cout<<"Czy chcesz liczyc pierwiastek jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz pierwiastkowac jeszcze raz wpisz 0;  ";
        cin >> wybor;

            }

    }
    }
    while (wybor==1);
}

{
    do
{



if (menu ==8)
   {
        cout<<"Podaj podstawe potegi: ";
        cin>> a;
        cout<<"Podaj wykladnik potegi: ";
        cin>> b;
        cout<< "Wynik potegowania wynosi: "<< pow (a,  <<endl;
        cout <<endl;
        cout<<"Czy chcesz potegowac jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz potegowac jeszcze raz wpisz 0;  ";
        cin >> wybor;

    }
    }
    while (wybor==1);

}
{
    do
{



if (menu ==9)
   {
        cout<<"Podaj liczbe a : ";
        cin>> h;
        cout<<"Podaj liczbe b : ";
        cin>> j;
        cout << "Wynik mnożenia wynosi: "<< h%j <<endl;
        cout <<endl;
        cout<<"Czy chcesz mnozyc jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz mnozyc jeszcze raz wpisz 0;  ";
        cin >> wybor;

    }
    }
    while (wybor==1);
}
}
else
    {
    cout << "Nie ma takiej opcji w menu mozesz wybrac tylko miedzy 1 a 10"<< endl;
    cout << endl;
    cout << endl;
    }
        cout<<"Czy chcesz sprobowac jeszcze raz ?  "<<endl;
        cout<<"Jezeli tak wpisz 1 natomiast jezeli nie chcesz probowac jeszcze raz wpisz 0;  ";
        cin >> wybor;



    }
    while (wybor==1);
}

return 0;
}
// proszę o dodanie 
// nww
// nwd
// czy liczba jest pierwsza
// czy liczba jest parzysta

proszę o dodanie
nww
nwd
sprawdzenie czy liczba jest pierwsza
sprawdzenie czy liczba jest parzysta
Oraz proszę o optymalizacje i zrobienie wygodniejszej pętli i działającej poprawnie wracającej do menu wyboru co liczyć
Pozdrawiam :)
@ edit

Do usunięcie 1 z 2 postów nie wiem czemu powstał duble post przepraszam za to, dziękuje i pozdrawiam :)
Opublikowano


#include <iostream>

using namespace std;

int main()

{

int a,b,pom;

 

cout<<"Podaj liczbe a i b : ";

cin>>a>>b;

 

pom=a*b;

 

while(a!=B) if(a>B) a-=b;

else b-=a;

 

cout<<"NWD = "<<a<<'\n';

cout<<"NWW = "<<(pom/a);

 

return 0;

}


#include <iostream>

using namespace std;

int main()

{

int a;

 

cout<<"Podaj liczbe a : ";

cin>>a;

 

if(a%2==0)cout<<"parzysta";

else cout<<"nieparzysta";

return 0;

}


#include <iostream>

using namespace std;

int main()

{

int i,a,dz=0;

 

do

{

cout<<"Podaj liczbe calkowita , wieksza od 1:";

cin>>a;

}while (a<2);

 

for(i=1;i<a+1;i++) if(a%i==0) dz++;

 

if(dz==2) cout<<"liczba pierwsza";

else cout<<"liczba zlozona";

 

return 0;

}

 

 

Opublikowano
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <math.h>

using namespace std;

void dodawanie ()
{
     double a, b;
     
     system ("cls");
     
     cout<<"\t\t.....:::::DODAWANIE:::::.....\n\n";
     
     cout<<"Podaj a...\na= ";
     cin>> a;
     
     cout<<"\n\nPodaj b...\nb= ";
     cin>> b;
     
     
     cout<<"Wynikiem dzialania : "<<a<<" + "<<b<<" jest :"<<a+b;
     
     getch();
}



void odejmowanie ()
{
     double a, b;
     
     system ("cls");
        
     cout<<"\t\t.....:::::ODEJMOWANIE:::::.....\n\n";

     cout<<"Podaj a...\na= ";
     cin>> a;
     
     cout<<"\n\nPodaj b...\nb= ";
     cin>> b;

     cout<<"Wynikiem dzialania : "<<a<<" - "<<b<<" jest :"<<a-b;
     
     getch();
}



void mnozenie ()
{
     double a, b;
     
     system ("cls");
     
     cout<<"\t\t.....:::::MNOZENIE:::::.....\n\n";
     
     cout<<"Podaj a...\na= ";
     cin>> a;
     
     cout<<"\n\nPodaj b...\nb= ";
     cin>> b;

     cout<<"Wynikiem dzialania : "<<a<<" * "<<b<<" jest :"<<a*b;
     
     getch();
}



void dzielenie ()
{
     double a, b;
     
     system ("cls");
     
     cout<<"\t\t.....:::::DZIELENIE:::::.....\n\n";

     cout<<"Podaj a...\na= ";
     cin>> a;
     
     cout<<"Podaj b...\nb= ";
     cin>> b;
     
     
     while ( b == 0)
     {
           system ("cls");
     
           cout<<"a="<<a<<"\n\n";
          
     if ( b == 0)
     {
          cout<<"\nWartosc b musi byc wieksza od 0...\nPodaj wartosc b...\t";
          cin>>b;
     }
     }
     system ("cls");
     cout<<"Wynikiem dzialania : "<<a<<" / "<<b<<" jest : "<<a/b;
     
     getch();
}



void potega ()
{
     double lic, wyk;
     
     system ("cls");
     
     cout<<"\t\t.....:::::POTEGOWANIE:::::.....\n\n";
     
     cout<<"Podaj a...\na= ";
     cin>> lic;
     
     cout<<"\n\nPodaj potege...\nb= ";
     cin>> wyk;

     cout<<"\nPo podniesieniu "<<lic<<" do "<<wyk<<" potegi otrzymamy : "<<pow(lic, wyk);
     
     getch();
}



void silnia ()
{
        double sil,lic;
      
        system ("cls");
        
        cout<<"\t\t.....:::::SILNIA:::::....."<<endl;
      
        cout <<"\nZ ilu mam wyliczyc silnie? ";
        cin>>lic;
        
        sil = 1;

        if( lic == 0 )
        {
             sil = 0;
        }
        else
        {
             for (double a = 1; a < (lic+1); a++)
             {
                 sil *= a;
             }
        }
        cout<< "\nSilnia z "<< lic <<" wynosi "<< sil;
        getch();
}



void liniowa ()
{    
    float a, b, c;
    
    system("cls");
    
    cout<<"\t\t.....:::::FUNKCJA LINIOWA:::::.....\n\n";
    
    cout<<"Podaj a..."<<endl;
    cin>>a;
        
    cout<<"\nPodaj b..."<<endl;
    cin>>b;
        
    cout<<"\nPodaj c..."<<endl;
    cin>>c;
        
    system("cls");
        
    if (a!=0)
    {
         system("cls");
         cout<<"Rozwiazaniem rownania " <<a<< "x + " <<b<< " = " <<c<< " jest "<<(c-b)/a;
    }   
    else
    {
        if ( (c- != 0 )             
        {
             system ("cls");
             cout<<"Brak rozwiazan...";
        }
        else
        {
            system("cls");
            cout<<"Tozsamosc";
        }
    getch();
    }
    getch();
}



void kwadratowa ()
{
     float a, b, c, del, x_0, x_1, x_2;

     system("cls");

     cout<<"\t\t.....:::::FUNKCJA KWADRATOWA:::::.....\n\n";
     
     do
     {
           cout<<"Podaj a..."<<endl;
           cin>>a;
                
           if ( a == 0)
           {
                system ("cls");
                cout<<"To nie jest rownanie kwadratowe. Podaj a wieksze od 0";
           }     
     }
     while (a == 0);
          
     cout<<"\nPodaj b..."<<endl;
     cin>>b;
          
     cout<<"Podaj c..."<<endl;
     cin>>c;
                
     del = (b*-4*a*c;
     x_0 = -b/(2*a);
     x_1 = (-b-sqrt(del))/(2*a);
     x_2 = (-b+sqrt(del))/(2*a);
                
     if (del<0)
     {
               cout<<"Brak pierwiastkow...";
               getch();
     }
     else
     {
     if(del==0)
     {
               cout<<"Wynikiem jest jeden pierwiastek : "<<-b/(2*a);
               getch();
     }
     else
     {
         cout<<"Wynikiem sa dwa pierwiastki. : "<<endl;
         cout<<x_1<<" "<<x_2;
     }
     }
                
         getch();
}

void pole_kwadratu ()
{
     double a;
    
     system ("cls");
     
     cout<<"Podaj a..."<<endl;
     cin>>a;
     
     system ("cls");
     
     cout<<"Pole kwadratu o boku rownym " <<a<< " wynosi : "<<pow(a,a);
     
     getch();
}



void pole_prostokata ()
{
     double a, b;
     
     system ("cls");
     
     cout<<"\t\t.....:::::POLE PROSTOKATA:::::.....\n\n";
     
     cout<<"Podaj dlugosc boku a...\na= ";
     cin>> a;
     
     cout<<"\n\nPodaj dlugosc boku b...\nb= ";
     cin>> b;

     cout<<"Pole prostokata o boku a rownym : "<<a<<" i boku b rownym "<<b<<" jest :"<<a*b;
     
     getch();
}



void pole_trojkata ()
{
     double a, h;
     
     system("cls");
     
     cout<<"\t\t.....:::::POLE TROJKATA:::::.....\n\n";
     
     cout<<"Podaj dlugosc podstawy...\n";
     cin>>a;
     
     cout<<"\n\nPodaj wysokosc...\n";
     cin>>h;
     
     cout<<"Pole trojkata o dlugosci podstawy rownej: "<<a<<" i wysokosci "<<h<<" wynosi "<<(a/2)*h;
     
     getch();
     
}



int main()
{
    int wyb;
    bool rep;
    
    system ("title LICZYDLO");
    system ("color 0A");
    
         do
         {
              system("cls");
             
              cout<<"\t\tLICZYDLO\n\n";
        
              cout<<"1.-----------| Dodawanie          |\n";
              cout<<"2.-----------| Odejmowanie        |\n";
              cout<<"3.-----------| Mnozenie           |\n";
              cout<<"4.-----------| Dzielenie          |\n";
              cout<<"5.-----------| Potega             |\n";
              cout<<"6.-----------| Silnia             |\n";
              cout<<"7.-----------| Funkcja liniowa    |\n";
              cout<<"8.-----------| Funkcja kwadratowa |\n";
              cout<<"9.-----------| Pole kwadratu      |\n";
              cout<<"10.----------| Pole prostokata    |\n";
              cout<<"11.----------| Pole trojkata      |\n";
              cout<<"12.----------| KONIEC             |\n\n";
         
         
              cout<<"Co obliczamy ??...\t";
              cin>>wyb;
              
         
         switch(wyb)
         {
              case 1:
              dodawanie();
              rep=true;
              break;
              
              case 2:
              odejmowanie();
              rep=true;
              break;
              
              case 3:
              mnozenie();
              rep=true;
              break;
              
              case 4:
              dzielenie();
              rep=true;
              break;
              
              
              case 5:
              potega();
              rep=true;
              break;
              
              case 6:
              silnia();
              rep=true;
              break;
              
              case 7:
              liniowa();
              rep=true;
              break;
              
              case 8:
              kwadratowa();
              rep=true;
              break;
              
              case 9:
              pole_kwadratu();
              rep=true;
              break;
                                    
              case 10:
              pole_prostokata();
              rep=true;
              break;
                                    
              case 11:
              pole_trojkata();
              rep=true;
              break;
              
              case 12:
              system ("exit");
              break;
         }
    }
    while (rep == true);
    
    return 0;
}
     

Tutaj masz kod na "liczydło" z podstawowymi działaniami. Masz je zrobione na switch'u. Przeanalizuj sobie kod i poczytaj na temat instrukcji warunkowej switch. Pozdrawiam

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...