- Nyomtató topik
- Kompakt vízhűtés
- TCL LCD és LED TV-k
- Leégett az első Radeon a hírhedt 12V-2x6 tápkonnektorral
- Fejhallgató erősítő és DAC topik
- Nem indul és mi a baja a gépemnek topik
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Milyen TV-t vegyek?
- AMD vs. INTEL vs. NVIDIA
- Házimozi belépő szinten
Ú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;
} -
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. -
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
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy S22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Legion Slim 5 16AHP9 15.6" QHD+ IPS Ryzen 7 8845HS RTX 4060 16GB 512GB NVMe magyar vbill gar
- MSI Katana // i7-12700H // 32GB RAM // 1TB SSD // RTX 3070
- Bomba ár! Fujitsu LifeBook U904 - i5-4G I 10GB I 256SSD I 14" QHD+ I HDMI I Cam I W10 I Garancia!
- Bomba ár! Fujitsu LifeBook E744 - i7-4GEN I 16GB I 512SSD I 14" HD+ I DP I Cam I W10 I Garancia!
- LG UltraWide 25UM58-P LED Monitor
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
- BESZÁMÍTÁS! ASRock B450M R5 3500X 16GB DDR4 512GB SSD RX 5700 XT 8GB Zalman N4 ADATA 600W
- Lenovo ThinkPad X13 Gen 1 i5-10310U 16GB 256GB 1 év garancia
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: FOTC
Város: Budapest