eMatematikas Prisijunk Forumas VBE užduotys ONLINE testai

Programavimas C++ ir trikampio ploto skaičiavimas


sveiki, reikia parašyti programą, kuri apskaičiuotų trikampio plotą kai duotos viršiūnių koordinatės. Štai mano parašyta programa, tačiau gaunu neteisinga atsakymą, gal žinote kur yra klaida?

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main ()
{
  int x1, y1, x2, y2, x3, y3;
  cout<<"Iveskite trikampio virsunes koordinates "<<endl;
  cin>>x1>>y2>>x2>>y2>>x3>>y3;
  double a, b, c, S;
  a=((x2-x1)*1.0)+((y3-y1)*1.0);
  b=((x3-x1)*1.0)*((y2-y1)*1.0);
  c=(a+b)/2;
  S=abs(c);
  cout<<"Trikampio plotas lygus "<<setprecision (1)<<fixed<<S;
  return 0;
}

pakeista prieš 6 m

Kai suvedi koordinates, y2 kartojasi du kartus. Klaidingai skaičiuojama reikšmė "a" kintamajame, kažkodėl sudedi o ne daugini. Manau naudoji daug nereikalingų kintamujų, kurie užkimša atmintį ir nežinau ar kažkuom tau padeda, nes užvadinti belenkaip "a", "b", pavadinimai kurie nieko nepasako kas čia yra daroma. Kintamujų tipai tūri būti float. Kintamuosius reikia apsibrėžti viršuje, o ne vidury funkcijos. Mano variantas būtų toks:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main ()
{
  float x1, y1, x2, y2, x3, y3;
  double area;
  cout<<"Iveskite trikampio virsunes koordinates "<<endl;
  cin>>x1>>y1>>x2>>y2>>x3>>y3;
  area = abs(((x2-x1)*(y3-y1) - (x3-x1)*(y2-y1))/2.0);
  cout<<"Trikampio plotas lygus "<<setprecision (1)<<fixed<<area;
  return 0;
}

pakeista prieš 6 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »