﻿/*
Adattípusok C++-ban

Értelmezés: "adattípus"
    - megadja, hogy egy adatdarab hány bájton
    tárolódik a memóriában
    - milyen értékei lehetnek (érttéktartomány)
    - milyen műveleteket lehet vele végezni

Gyakran használt típusok C++-ban:

    Név                 Méret(B)       Min.        Max

    bool                1 B            false (0)   true (1)

    short / short int   2 B            -2^15       2^15 - 1
    int                 4 B            -2^31       2^31 - 1
    long long           8 B            -2^63       2^63 - 1

    char                1 B            0 / -128    255 / 127


    float               4 B            valós számok
    double              8 B            valós számok (nagyobb
                                                   pontosság)

    Példák, kezdőértékek, konstansok:
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int nev1 = 15;
    int nev2;
    cout << nev1 << endl; // 15

    bool nev3 = true;
    bool nev4 = false;
    bool nev5 = (nev1 > 10);
    cout << nev5 << endl; // 1

    // Megjegyzés: az összehasonlítások eredménye
    // egy igazságérték (bool típusú).

    // if (/* bool típusú érték *//*) {}
   /* if (nev5) {
        cout << "igaz volt" << endl;
    }
    else {
        cout << "hamis volt" << endl;
    }

    double valos = 0.5;
    double masik_valos = 2;

    cout << valos / masik_valos << endl; // 0.25


    cout << 6 / 4 << endl;   // int / int -> int (1)
    cout << 6.0 / 4 << endl; // double / int -> double (1.5)
    cout << 6 / 4.0 << endl; // int / double -> double (1.5)
    cout << 6.0 / 4.0 << endl; // double / double -> double (1.5)

    /* Megjegyzés: a műveletek a két operandus típusa közül
    a nagyobbikon fognak elvégződni. (Pl. ha az osztandó int,
    az osztó double, akkor az eredmény is double lesz, vagyis
    megkapjuk a tizedes részt is! Ha mindkettő int, akkor az
    eredmény is egész szám, tehát csak az egész hányadost
    kapjuk meg!)
    */

    /*
    Megjegyzés2: egy érték típusát erőltetve is át lehet alakítani:
        (új típus) érték.

        Pl.
            6 / 4  ==  1  (int / int)
            (double) 6 / 4 == 1.5  (double / int)
    */
/*
    return 0;
}
*/

/*
    Sajátos műveletek valós számokkal

    A <cmath> fejállományban találhatók a következők:
        pow - hatvány
        sqrt - négyzetgyök
        round - kerekít
        floor - egész rész
        ceil - felfelé kerekít
        abs - abszolút érték
        sin, cos ... stb.
*/
/*
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    cout << sqrt(20) << endl; // 4.47...

    // pow(alap, kitevő)
    cout << pow(2, 5) << endl; // 32
    cout << pow(4.5, 0.5) << endl; // 2.13....

    cout << pow(8, 1/3) << endl; // 1, mert pow(8,0)
    cout << pow(8, 1.0/3) << endl; // 2

    cout << "-----------------" << endl;

    cout << round(6.2) << endl;  // 6
    cout << round(6.5) << endl;  // 7

    cout << floor(6.8) << endl; // 6
    cout << ceil(6.1) << endl; // 7
    cout << ceil(6) << endl; // 6

    return 0;
}
*/

/* Feladat:

Adottak két síkbeli pont koordinátái (x1 y1 x2 y2
sorrendben). Határozzuk meg a két pont távolságát.
*/
/*
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;

    double d = sqrt(pow(x2-x1, 2) + pow(y2-y1, 2));

    cout << d << endl;
    return 0;
}
*/

/* Feladat:

Adott három valós szám, melyek szakaszok hosszai.
Lehet-e három ilyen hosszúságú szakaszból
háromszöget szerkeszteni?
*/
/*
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double a, b, c;
    cin >> a >> b >> c;

    if (a+b>c && a+c>b && b+c>a) {
        cout << "lehet" << endl;
    }
    else {
        cout << "nem lehet" << endl;
    }


    return 0;
}
*/

/*
    Feladat: másodfokú egyenlet megoldása.
    Adottak az a, b, c együtthatói az
        a * x*x  + b*x + c = 0
    egyenletnek (a != 0).
    Írjuk ki a valós megoldásokat!
*/
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double a, b, c;
    cin >> a >> b >> c;

    double delta=b*b-4*a*c;
    if(delta<0)
        cout<<"nincs valos gyok"<<endl;
     else if(delta==0)
        cout<<-b/(2*a);
        else
        cout<<(-b+sqrt(delta))/(2*a)<<" "<<(-b-sqrt(delta))/(2*a);




    return 0;
}


/* HF: Adottak egy háromszög csúcsainak a koordi-
nátái. Szám. ki a kerületét és területét.
*/
