Obliczanie obwodu i pola trapezu równoramiennego

0

Siema pomozecie z napisaniem i przerobieniem na program podany w tytule?

#include <iostream>
using namespace std;
int main ()
{
    int a,b,h;
    cout<<"OBLICZANIE POLA I OBWODU TRAPEZU ROWNORAMIENNEGO."<<endl<<endl;
    cout<<"PODAJ DLUGOSC BOKU PIERWSZEGO: ";
    cin>>a;
    cout<<"PODAJ DLUGOSC BOKU DRUGIEGO: ";
    cin>>b;
     cout<<"PODAJ WYSOKOSC: ";
    cin>>h;

    if (((a>0)&& (b>0) && (h>0)))
    {
        cout << " POLE WYNOSI: "<<a+b*h/2<<endl;
        cout << " OBWOD WYNOSI: "<<2*(a+b)<<endl;

    }

    else
        cout<< "DLUGOSC BOKU NIE MOZE BYC MNIEJSZA I ROWNA ZERO"<<endl;

    cout<<" "<<endl<<endl;
        return 0;
3

Po co dwa razy pobierasz długość boku, skoro w trapezie równoramiennym są one takie same? :D
Pewnie chciałeś pobierać długości podstaw? Jeśli do a i b pobierzesz właśnie te wartości, to obliczanie pola już masz. Musisz tylko odpowiednio nawiasy powstawiać.
Potem długość boku możesz obliczyć używając Pitagorasa przyprostokatna = (a - b) / 2; bok = sqrt( ( przyprostokatna * przyprostokatna + h * h). Wtedy do obliczenia pola wystarczy zsumować a + b + 2 * bok.

2

Jest coś takiego jak priorytet operatorów, który zignorowałeś (brakuje nawiasów).
Wzór na obwód wygląda inaczej.

Jeśli zadanie jest wysyłane do automatycznego sędziego, to na 100% twój kod drukuje śmieci (zachęty dla użytkownika), które automat uznaje, za błędną odpowiedź.

0

Co myślicie o tym ?

#include <iostream>
using namespace std;
int main ()
{
    int a,b,c,h;
    cout<<"OBLICZANIE POLA I OBWODU TRAPEZU ROWNORAMIENNEGO."<<endl<<endl;
    cout<<"PODAJ DLUGOSC BOKU PIERWSZEGO: ";
    cin>>a;
    cout<<"PODAJ DLUGOSC BOKU DRUGIEGO: ";
    cin>>b;
    cout<<"PODAJ DLUGOSC RAMIENIA: ";
    cin>>c;
     cout<<"PODAJ WYSOKOSC: ";
    cin>>h;

    if (((a>0)&& (b>0) && (h>0)))
    {
        cout << " POLE WYNOSI: "<<(a+b)*h/2<<endl;
        cout << " OBWOD WYNOSI: "<<a+b+2*c<<endl;

    }

    else
        cout<< "DLUGOSC BOKU NIE MOZE BYC MNIEJSZA I ROWNA ZERO"<<endl;

    cout<<" "<<endl<<endl;
        return 0;
3

To jest bezsensu, bo użytkownik może podać dane, które geometrycznie są niemożliwe.
Z a, b, h jednoznacznie da się wyliczyć c.

A gdybyś chciał porzucić równoramienność, to żeby dane miały senes muszą być spełnione warunki:
\ |a - b| &lt; 2 \cdot c<br> \ h \le c

1 użytkowników online, w tym zalogowanych: 0, gości: 1