- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
#include "pch.h"
#include <iostream>
using namespace std;
struct _Point {
double x, y, z;
};
void setPoint(_Point &, double = 0, double = 0, double = 0);
void outPoint(const _Point &, char);
int main()
{
_Point A, B, C, D;
setPoint(A, 1, 5, 6.78);
setPoint(B);
setPoint(C, 8);
setPoint(D, 3, 4);
outPoint(A,'a');
outPoint(B,'b');
outPoint(C,'c');
outPoint(D,'d');
}
void setPoint(_Point &name, double a, double b, double c) {
name.x = a;
name.y = b;
name.z = c;
}
void outPoint(const _Point &name,char ch) {
cout <<ch<< "(" << name.x << ", " << name.y << ", " << name.z << ")\n";
}
https://ideone.com/ZdVk3b
https://ideone.com/rR4vqP
Тут же очевидно, что на каждой итерации абсолютное значение аргумента должно уменьшаться вдвое, пока не попадёт в интервал, в котором sin(x) ≈ x или cos(x) ≈ 1.
Нарваться на неожиданность можно, если взять слишком низкий порог и получить underflow (денормализованный плавающий питух). Тут вроде 2.45E-5 не такая уж маленькая константа.
Недостаток: мы не можем гарантировать точность. В стандартной библиотеке у нас вместо косинуса и синуса многочлен с идеально подобранными коэффициентами (усечённый ряд Тейлора), вычисляющийся по оптимальной схеме (схема Горнера или типа того). Тут же, если развернуть алгоритм, получим тот же самый многочлен, однако, мы не знаем, насколько оптимален порядок вычислений. Мы можем ловить всякую фигню типа вычитания близких чисел.
Хотя 5 знаков после запятой получились верными. Уже неплохой результат.
P.S. Взял оба порога 1E-8. Считает точно, но медленно.
Так что бери труп страуса за рога и учись сам, малец!
Ах да, там же в оригинале вообще
Туда бы еще подошло что-то типа
Не сри где живёшь кодишь!
Лучше б просто сишку преподавали.
> Так что бери труп страуса за рога и учись сам, малец!
Нет, пусть лучше берет K&R. А плюсы нахуй и впизду пусть отправляются
https://ideone.com/JSUGuY
https://ideone.com/Ar3mx7
https://stackoverflow.com/questions/92802/what-is-the-linux-equivalent-to-dos-pause
Засорилась раковина — впадлу прочищать, можно заняться переустановкой виндуос.
Отклеились обои — впадлу переклеивать, можно заняться переустановкой виндуос.
Переустановка виндуос — ваша универсальная отмазка!
З.Ы. Сейчас этот стабильный канал вроде убрали, видимо никто не хотел быть подопытным хомячком.
uint32 даст ещё 68 лет на раскачку.
В некоторых ЯП нет беззнаковых целых питухов, поэтому нас и пугают 2039-м годом.
А в новых я за «std::string_view».