• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wzór herona program c++

Object Storage Arubacloud
–1 głos
2,038 wizyt
pytanie zadane 22 października 2018 w C i C++ przez Kacper Cichosz Nowicjusz (140 p.)
edycja 22 października 2018 przez criss

Witam! Jestem troche zielony w  programowaniu w c++ i probuje napisac progeram. ktory obliczy pole trojkata za pomoca wzoru herona. Na poczatku ma sprawdzac czy podane wartosci sa liczbami i jesli tak to wtedy ma sprawdzic czy podane boki tworza trojkat. Jednak nie  wiem jak sprawdzic czy podane wartosci sa liczbami.

Prosilbym o porady.

#include <iostream>
#include <conio.h>
#include <cmath>
#include <cctype>

using namespace std;

int main()
{
    char a,b,c;

    cout << "\t\tOliczanie pola trojkata." << endl;
    cout<< "Podaj długosci bokow trojkata"<< endl;
    cout<< "Podaj bok  a:\t"  ;
    cin>>a;
    cout<< "Podaj bok  b:\t" ;
    cin>>b;
    cout<<"Podaj bok  c:\t";
    cin>>c;

 

    if(isdigit (a)&& (b) && (c))
        {
        cout<<"Wprowadzone dane to liczby"<<endl;
        }
    else
        {
        cout<<"Nie wszystkie wprowadzone dane to liczby"<<endl;
        cout<< "Koniec"<<endl;
        getch();
        return 0;
        }

    if (b-c < a && a < b + c)
        {
        cout<<"Boki tworza trojkat"<<endl;
        }
    else
       {
        cout<<"Boki nie tworza trojkata"<<endl;
       }

    getch();
    return 0;
}
komentarz 22 października 2018 przez Arkadiusz Waluk Ekspert (287,950 p.)
Pamiętaj na przyszłość, że kod na forum wstawiamy w przeznaczony do tego bloczek: https://forum.pasja-informatyki.pl/faq#jak-wstawic-kod-zrodlowy
komentarz 22 października 2018 przez Kacper Cichosz Nowicjusz (140 p.)
Okej, dzieki

1 odpowiedź

0 głosów
odpowiedź 22 października 2018 przez mhdv Obywatel (1,580 p.)

Proponuje stworzenie a,b,c jako typ int lub float (albo dowolny inny typ liczbowy), w końcu nie oczekujesz tutaj żadnych innych wejść oprócz liczb.

Tak mógłbyś napisać funkcję do sprawdzania czy dany strumień wejściowy jest liczbą:

float inputNr(){ // float lub int lub jakikolwiek inny typ liczbowy jaki sobie zażyczysz używać
    float x = 0;
    cin >> x;
    while (cin.fail())
    {
        cin.clear();
        cin.ignore(100, '\n');
        cout << "Możesz wpisywać tylko liczby.\n";
        cout << "Podaj liczbę.\n";
        cin >> x;
    }
    return x;
}

Wtedy Twój main troszkę się zmieni (pozwoliłem sobie od razu ustawić a,b,c na typ float :)):

int main()
{
    float a,b,c;

    cout << "\t\tOliczanie pola trojkata." << endl;
    cout<< "Podaj długosci bokow trojkata"<< endl;
    cout<< "Podaj bok  a:\t"  ;
    a = inputNr();
    cout<< "Podaj bok  b:\t" ;
    b = inputNr();
    cout<<"Podaj bok  c:\t";
    c = inputNr();

    if (b-c < a && a < b + c)
        {
        cout<<"Boki tworza trojkat"<<endl;
        }
    else
       {
        cout<<"Boki nie tworza trojkata"<<endl;
       }

    getch();
    return 0;
}

 

komentarz 22 października 2018 przez Kacper Cichosz Nowicjusz (140 p.)
Dzieki za porade, ale troche tego nie rozumiem, uzylem tego kodu, ktory napisales na sprawdzanie czy dany strumien wejsciowy jest liczbą, ale pewnie robie coś źle i nie działa;/
komentarz 22 października 2018 przez mhdv Obywatel (1,580 p.)

Zamień main() na ten który Ci zasugerowałem, a nad nim wklej funkcję inputNr(). To w zasadzie nie ma prawa nie działać :))

Sklejone w całość:

// Example program
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

float inputNr(){ // float lub int lub jakikolwiek inny typ liczbowy jaki sobie zażyczysz używać
    float x = 0;
    cin >> x;
    while (cin.fail())
    {
        cin.clear();
        cin.ignore(100, '\n');
        cout << "Możesz wpisywać tylko liczby.\n";
        cout << "Podaj liczbę.\n";
        cin >> x;
    }
    return x;
}
int main()
{
    float a,b,c;
 
    cout << "\t\tOliczanie pola trojkata." << endl;
    cout<< "Podaj długosci bokow trojkata"<< endl;
    cout<< "Podaj bok  a:\t"  ;
    a = inputNr();
    cout<< "Podaj bok  b:\t" ;
    b = inputNr();
    cout<<"Podaj bok  c:\t";
    c = inputNr();
 
    if (b-c < a && a < b + c)
        {
        cout<<"Boki tworza trojkat"<<endl;
        }
    else
       {
        cout<<"Boki nie tworza trojkata"<<endl;
       }
 
    getchar();
    return 0;
}

Przykładowe uruchomienie programu:

Podobne pytania

+1 głos
1 odpowiedź 1,249 wizyt
pytanie zadane 10 lutego 2018 w C i C++ przez pierwszyrazcplusplus Nowicjusz (210 p.)
0 głosów
2 odpowiedzi 3,102 wizyt
pytanie zadane 27 lutego 2018 w JavaScript przez Adamo2499 Bywalec (2,090 p.)
0 głosów
2 odpowiedzi 1,300 wizyt
pytanie zadane 13 maja 2020 w C i C++ przez Foliopak I Nowicjusz (120 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...