Avatar
ondra.482
Člen
Avatar
ondra.482:
// 11.4.2013
// Výpočet kořenů pro kvadratickou rovnici
#include<iostream>
#include<cmath> // matematická knihovna


using namespace std;
void main()
{
        float a,b,c;
        float x1,x2,D;




        cout <<"Vypocet korenu kvadraticke rovnice ze vzorce ax + bx + c = 0\n";

        cout << "\n\Zadejte a ";
        cin >> a;








        while (a==0)
        {
                cout << " Neplatny udaj a zvol cislo znovu";
                cout << " \nZadej a ";
                cin >> a;
        }
        cout<<"\Zadejte b ";
        cin>> b;
        cout<<"\Zadejte c ";
        cin>> c;




        D=(b*b)-(4*a*c);
        cout <<"Diskriminant je " << D  << "\n";
                if (D==0)
                {
                        x1=(-(b))*(2*a);
                        cout << "Rovnice ma spolecne koreny";
                        cout << "\ x1,x2= " << x1 << "\n";
                }

                if (D>0)
                {
                        x1=((-b)+sqrt(D))/(2*a);

                        cout << "Rovnice ma 2 koreny\n";
                        cout << "x1= " << x1 << "\n";
                        x2=((-b)-sqrt(D))/(2*a);
                        cout << "x2= " << x2 << "\n";
                }
                if (D<0)
                {

                        x1=-(b/(2*a));

                        x2= sqrt(-D)/(2*a);



                        cout << "Rovnice nema zadny realny koren\n";
                        cout << "Rovnice ma dva imaginarni koreny\n";
                        cout << "x1= " << x1  << "+" << x2 <<"i";
                        //x2=((-b)-sqrt(D))/(2*a);
                        cout << "\nx2= " << x1  <<"-"<< x2 << "i\n";


                }

        system("pause");
}

Ahoj, za boha nevím jakou podmínku dát pro to,aby mi při napsání písmena,vrátilo zpět z opakováním na vložení čísla

 
Odpovědět 13.4.2013 16:21
Avatar
Зайчик
Člen
Avatar
Odpovídá na ondra.482
Зайчик:
if(scanf("%d", &a) == 1) // uzivatel zadal cislo
else return 0; // nezadal

v c++ s cout to bude podobně :)

-> stackoverflow.com

Maybe not a proper way... I use that in my school homework.

#include <iostream>
#include <stdio.h>
#include <conio.h>

int getInputNumber()
{
    int key;
    do
    {
        key = _getch();
    }while (key < '0' || key > '9');
    std::cout << key - '0';
    return key - '0';
}

int main()
{
    int n = getInputNumber() ;
    system("pause");
    return 0;
}
Editováno 13.4.2013 16:43
Nahoru Odpovědět 13.4.2013 16:41
Коммунизм для нашего будущего!
Avatar
idc
Člen
Avatar
idc:
while (!(cin >> a))
{
                while(cin.get() != '\n')
                        cin.clear();
                cout << "Opakuj" << endl;
                continue;
}
cout<<"\Zadejte b ";
cin>> b;
cout<<"\Zadejte c ";
cin>> c;
 
Nahoru Odpovědět 13.4.2013 17:17
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.