В тг кину конкретные скрины 8 задачек. Вот половина из них. Естественно заплачу денежку:) Также ищу людей которые шарят в C++ на постоянную основу для решения задачек Ниже коды которые разбирали на уроках: #include <iostream> #include <cmath> #include <set> using namespace std; struct Point2D{ double x,y;}; struct Line2D{ double A,B,C;}; Line2D makeLine (Point2D M, Point2D N); double distance (Line2D l, Point2D M); double distance (Point2D M, Point2D N); bool onOneSide (Line2D l, Point2D M, Point2D N); Line2D makeOrtoLine (Line2D l, Point2D M); bool isParalel (Line2D l1, Line2D l2); Point2D intersection (Line2D l1, Line2D l2); int main() { Point2D A,B; A.x = 0; A.y =0; B.x = 1; B.y = 2; Line2D l = makeLine(A,B); cout<<l.A<<' '<<l.B<<' '<<l.C<<endl; return 0; } bool isParalel (Line2D l1, Line2D l2) { return l1.A*l2.B == l1.B*l2.A; } Point2D intersection (Line2D l1, Line2D l2) { Point2D ans; double znam = l1.A*l2.B - l2.A*l1.B; ans.x = (l1.B*l2.C - l2.B*l1.C)/ znam; ans.y = (l2.A*l1.C - l1.A*l2.C)/ znam; return ans; } Line2D makeOrtoLine (Line2D l, Point2D M) { Line2D ans; ans.A = l.B; ans.B = -l.A; ans.C = l.A*M.y - l.B*M.x; return ans; } bool onOneSide (Line2D l, Point2D M, Point2D N) { return (l.A*M.x+l.B*M.y+l.C)*(l.A*N.x+l.B*N.y+l.C) > 0; } double distance (Point2D M, Point2D N) { return sqrt((M.x-N.x)*(M.x-N.x) + (M.y-N.y)*(M.y-N.y)); } Line2D makeLine (Point2D M, Point2D N) { Line2D ans; ans.A = N.y - M.y; ans.B = M.x - N.x; ans.C = M.y*(N.x-M.x) - M.x * (N.y - M.y); return ans; } double distance (Line2D l, Point2D M) { return fabs(l.A*M.x + l.B*M.y +l.C)/sqrt(l.A*l.A + l.B*l.B); } double angle (Line2D l1, Line2D l2) { return acos ((l1.A*l2.A + l1.B*l2.B)/ (sqrt(l1.A*l1.A + l1.B*l1.B)*sqrt(l2.A*l2.A + l2.B*l2.B)) ); } ******************************************************************************************** #include <iostream> #include <cmath> using namespace std; int sum (int l, int r, int * mas, int n, int *b, int m,int size); int main () { int n; cin>>n; int mas[n]; for (int i = 0; i < n; i ++) cin >> mas; int m = sqrt (n)+1; int r = (n+m-1)/(m); int b [m]; // Это работает на неточных квадратах for (int i =0; i < m ; i ++) b =0; int k = 0; for (int i =0 ; i < n; i++) { b[i/r] += mas; } for (int i = 0; i < n; i ++) cout<< mas << ' '; cout<<endl; for (int i = 0; i < m; i ++) cout<< b << ' '; cout<<endl<<endl; cout<< sum(0,n/2,mas,n,b,m,r)<<endl; cout<< sum(1,2,mas,n,b,m,r)<<endl; cout<< sum(1,7,mas,n,b,m,r)<<endl; } int sum (int l, int r, int * mas, int n, int * b, int m, int size) { int ans = 0; for (int i = l; i < r; ) { if (i%size == 0 && r - i >=size ) { ans += b[i/size]; i+=size; continue; } ans += mas[i]; i++; } return ans; } [/i]