Új hozzászólás Aktív témák
-
sko
csendes tag
KREE, a C++-ban (OOP-ban) való programozás egyik alaptulajdonsága, hogy nem jó a később majd megszépítjük módszer, már az alapokat is jól kell lerakni. A te feladatod központi problémája két pont távolságának kiszámítása. Először ezt kell C++-ban leprogramozni. Íme itt egy lehetséges implementáció. Remélem minden tiszta benne, ha nem kérdezz nyugodtan! Ha tiszta, akkor innen kell továbblépni a pontok konténerekbe tárolásával és távolságuk kiszámításával.
#include <iostream>
#include <cmath>
using namespace std;
class Point
//If you need to calculate the distances of points, always start with creating a point object type.
{
int x = 0;
int y = 0;
public:
Point(): x(0), y(0) {}
Point(int X, int Y): x(X), y(Y) {}
float operator - (const Point&);
//Overloaded minus operator to calculate the distance of two points.
//This will enormously simplify your work later.
};
float Point::operator - (const Point& other)
{
int X = x - other.x;
int Y = y - other.y;
//No abs() necessary, because we will square the coordinates anyway.
float distance = sqrt(X*X + Y*Y);
//Could be double, long double, whatever you like.
return distance;
//There is no real need for this variable, you could return the result of sqrt() directly. Whatever you like.
}
int main()
{
Point middlepoint(8,-6);
Point endpoint(-5,10);
float dist = middlepoint - endpoint;
//Calculate the distance of these points. It's just that simple.
cout << dist << endl;
return 0;
} -
sztanozs
veterán
pvt.peter: teljesen igazad van - szemantikailag
Mondjuk körök középpontját biztos nem önálló r1, r2, r3, ... , rvalami, rvalamipluszegy változókba raknám.
Inkább egyvector<pair<int,int>>
. Azon szépen végig lehet iterálni.Amúgy az
|x-rx| < d & |y-ry| < d
nem adja vissza, hogy az(x,y) pont
tényleg ad sudarú (rx, ry) központú körön
belül van-e. Ezzel azt ellenőrzöd, hogy a(px,py) központú 2d oldalhosszú négyzetben
van-e...Kicsit személetesen:
A piros pont a körben nincs benne, de a feltétel igaz. -
sztanozs
veterán
if (10>(x1-r1||x1-r3||x1-r5)>-10 && 10>(y1-r2||y1-r4||y1-r6)>-10)
Ez biztos nem C++ szintaktika.
Mit értesz az alatt, hogy x és r különbsége? A kódodban van x1 meg y1 meg r1, r2, r3, r4, r5, és r6...Talán így:
if ((min(min(abs(x1-r1), abs(x1-r3)), abs(x1-r5)) < 10) && (min(min(abs(y1-r2), abs(y1-r4)), abs(y1-r6)) < 10))
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Gigabyte B450M S2H + Ryzen 5 1400 kisebb-nagyobb hibával
- Nokia 105 4G (2023) charcoal, Nokia 110 4G (2023) midnight blue
- ASRock B550 PG Velocita + Ryzen 5 3600 + 32GB (4x8GB) DDR4 3600Mhz CL18
- Philips 58PUS8505 Smart LED Televízió,146 cm, 4K Ultra HD ,Android, Ambilight, HDR10+ KIJELZŐHIBÁSAN
- Canon EOS 250D kiegészítőkkel, táskával (CSAK 200 expoval !!! )
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i5 14600KF 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Gamer PC Számítógép! I5 12600KF / RTX 3070 / 32GB DDR4 / 512GB SSD
- AKCIÓ! Asus TUF F15 FX506HM Gamer notebook - i5 11400H 16GB DDR4 RAM 512GB SSD RTX 3060 6GB W10
- Eladó szép állapotban levő Apple iPhone 12 Pro Max 128GB / 12 hó jótállás
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest