Загрузка...

Помогите с написанием кода

Тема в разделе C/C++ создана пользователем ve4no_6yxo 16 янв 2022. (поднята 16 янв 2022) 266 просмотров

  1. ve4no_6yxo
    ve4no_6yxo Автор темы 16 янв 2022 60 30 дек 2019
    Всем привет,я клоун студент.Препод дал задание написать программу ,которая генерит точки прямоугольника,прямоугольника и круга,это я сделал.Не могу найти их точки пересечения,даже не знаю,как это написать,как-то отрезками сказал препод,но я даже не знаю с чего начать.Надеюсь на вашу помощь,заранее спасибо.Ниже прикладываю код(С++)

    Код
    #include <stdlib.h>
    #include <ctime>
    // нужен для вызова функции time()
    #include <time.h>
    using namespace std;

    //задаем структуру точек
    struct Point
    {
    int x;
    int y;
    };

    //структурируем точки треугольника
    struct Triangle
    {
    Point p1;
    Point p2;
    Point p3;
    };

    //структурируем точки прямоугольника
    struct Rectangle
    {
    Point p1;
    Point p2;
    Point p3;
    Point p4;
    };

    //структурируем центр и радиус окружности
    struct Circle
    {
    Point p;
    int radius;
    };

    //функция генерации рандомного числа
    int GetRandomint(int min,int max)
    {
    return (min + rand() % (max-min+1));
    };

    // задаем случайную генерацию ординаты и абсциссы точки
    Point GetRandomPoint(int min,int max) {
    Point p;
    p.x = GetRandomint(min,max);
    p.y = GetRandomint(min,max);
    return p;
    }

    //задаем функцию генерации трех точек треугольника
    Triangle GetRandomTriangle(int min,int max)
    {
    Triangle trian;
    trian.p1 = GetRandomPoint( min,max);
    trian.p2 = GetRandomPoint( min, max);
    trian.p3.x = trian.p2.x;
    trian.p3.y = trian.p1.y;
    return trian;
    }

    //печать координаты точки
    void Print_point(Point p)
    {
    cout << "p(" << p.x << ";" << p.y << ")/n";
    }

    // печать координат треугольника
    void Print_triangle(Triangle trian)
    {
    Print_point(trian.p1);
    Print_point(trian.p2);
    Print_point(trian.p3);
    cout << "\n\n";
    }

    //выводим точки прямоугольника на экран( обращаем внимание,что третья точка строится по такому принципу: ордината третьей точки равна ординате 2-ой точки
    //а ее абсцисса = абсциссе 1-ой точки) - таким образом создастся перпендикуляр и прямой угол нашему треугольнику
    void Print_trian(Triangle trian)
    {
    cout << trian.p1.x << " " << trian.p1.y << "\n";
    cout << trian.p2.x << " " << trian.p2.y << "\n";
    cout << trian.p3.x << " " << trian.p3.y << "\n\n";
    }


    //рандом точки прямоугольника (2-ух точек - они образуют диагональ)
    Rectangle GetRandomRectangle(int min,int max)
    {
    Rectangle rect;
    rect.p1 = GetRandomPoint(min,max);
    rect.p2 = GetRandomPoint(min,max);
    rect.p3.x = rect.p2.x;
    rect.p3.y = rect.p1.y;
    rect.p4.y = rect.p2.y;
    rect.p4.x = rect.p1.x;
    return rect;
    }

    // печать координат прямоугольника
    void Print_rectangle(Rectangle rect)
    {
    Print_point(rect.p1);
    Print_point(rect.p2);
    Print_point(rect.p3);
    Print_point(rect.p4);
    cout << "\n\n";
    }

    //выводим точки на экран на двук осях координат (в данном случае принцип идентичен приципу с прямоуг.треугольником)
    void Print_rectan(Rectangle rect)
    {
    cout << rect.p1.x << " " << rect.p1.y << "\n";
    cout << rect.p2.x << " " << rect.p2.y << "\n";
    cout << rect.p3.x << " " << rect.p3.y << "\n";
    cout << rect.p4.x << " " << rect.p4.y << "\n\n";
    }

    //Задаем рандомный центр и радиус (для центра - точку,для радиуса - целочисленное значение)
    Circle GetRandomCircle(int min,int max)
    {
    Circle circle;
    circle.p = GetRandomPoint(min,max);
    circle.radius = GetRandomint(min,max);
    return circle;
    }

    //Печать центра и радиуса
    void Print_cir(Circle circle)
    {
    Print_point(circle.p);
    cout << "radius = " << circle.radius << "\n";
    }

    //Выводим центр и радиус на экран
    void Print_circle(Circle circle)
    {
    cout << circle.p.x << " " << circle.p.y << "\n";
    cout << circle.radius << " " << "\n\n";
    }

    int main()
    {
    //подключаем русский язык и выводим конечный результат получения точек вершин наших фишур
    setlocale(LC_CTYPE, "rus");
    srand(time(NULL));
    Triangle trian = GetRandomTriangle(0,6);
    Rectangle rect = GetRandomRectangle(-10,10);
    Circle circle = GetRandomCircle(1,8);
    cout << "Координаты треугольника:\n";
    Print_trian(trian);
    cout << "Координаты прямоугольника:\n";
    Print_rectan(rect);
    cout << "Координаты центра окружности и его радиус:\n";
    Print_circle(circle);
    return 0;

    }
     
    16 янв 2022 Изменено
  2. Андеграунд_неактив3578089
    Андеграунд_неактив3578089 16 янв 2022 Заблокирован(а) 337 5 окт 2020
    Отформатируй нормально.
     
    1. ve4no_6yxo Автор темы
    2. evmorty
      ve4no_6yxo, в плане то что код ввести в спец код
Top
Загрузка...