Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Задачи за програмиране с окръжност

Задачи за програмиране с окръжност

Мнениеот Гост » 07 Юни 2019, 15:46

Здравейте,
Имам два задачи с окръжности, които не мога да реша по никакъв начин и моля някой да ми помогне като ми даде някакви насоки и упътвания. Ще съм много благодарна!
Това са условията на задачите:
1. Зададена е окръжност (абсциса и ордината на центъра и радиус) и m точки в равнината (абсциса и ордината). Да се състави алгоритъм и напише програма за намиране най-отдалечената точка от центъра на окръжността.

По тази имам леко начало, което съм почти сигурна че е грешно, но все пак ще го споделя....
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>


int main()
{

using namespace std;
system("chcp 1251");
int k, x, y, r, m, x1, y1;
cout << "Въведете стойностите на окръжността: ";
cout << "x= "; cin >> k;------ за тук не съм сигурна дали и трите стойности ще се
cout << "y= "; cin >> k;----- запаметят в k или само последната въведена
cout << "r= "; cin >> k;-----т.е дали не и сменям само стойностите...
cout << "Въведете броя на точките: "; cin >> m;
cout << "Въведете стойностите на точките: ";
За стойностите съм отделила x1 и y1, но те ще се повторят m пъти....m пъти трябва да се въведат и от там вече да се направи може би с условен оператор или нз...да се провери коя е най-далечната...
return 0;
}
Извинявам се, ако в това няма нищо вярно или поне нещо в правилна посока!!!


2. Зададени са k окръжности(абсциса и ордината на центъра и радиус) и m точки (абсциса и ордината). Да се състави алгоритъм и напише програма за извеждане номерата на точките, които лежат в първата окръжност, номерата на точките, които лежат във втората окръжност и т.н. до последната окръжност.

Благодаря отново предварително на всеки, който ще отдели малко време за мен!!!
Гост
 

Re: Задачи за програмиране с окръжност

Мнениеот Добромир Глухаров » 07 Юни 2019, 16:38

1. Задача

Код: Избери целия код
//#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<math.h>

int main()
{
    using namespace std;

    system("chcp 1251");

    int m, c;
    float x, y, r, x1, y1, d, dmax = 0.0f, xmax, ymax;

    cout << "Въведете стойностите на окръжността:" << endl;
    cout << "x= "; cin >> x;
    cout << "y= "; cin >> y;
    cout << "r= "; cin >> r;

    cout << "Въведете броя на точките: "; cin >> m;
    cout << "Въведете стойностите на точките:" << endl;

    for(c = 0; c < m; c++)
    {
        cout << "Точка № " << 1 + c << endl;
        cout << "x= "; cin >> x1;
        cout << "y= "; cin >> y1;
        d = sqrtf((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y));
        if(d > dmax)
        {
            xmax = x1; ymax = y1; dmax = d;
        }
    }

    cout << "Най-далечна точка:" << endl;
    cout << "x= " << xmax << endl;
    cout << "y= " << ymax << endl;
    cout << "Разстояние d= " << dmax << endl;

    return 0;
}
Аватар
Добромир Глухаров
Математик
 
Мнения: 2080
Регистриран на: 11 Яну 2010, 13:23
Рейтинг: 2178

Re: Задачи за програмиране с окръжност

Мнениеот Добромир Глухаров » 07 Юни 2019, 17:09

2. Задача

Код: Избери целия код
//#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<math.h>

int main()
{
    using namespace std;

    system("chcp 1251");

    int k, m, c, ic;
    float x[12], y[12], r[12], xp[12], yp[12], d;

    do
    {
        cout << "Въведете броя на окръжностите (1..12): ";
        cin >> k;
    }
    while(k < 1 || k > 12);

    for(c = 0; c < k; c++)
    {
        cout << "Въведете стойностите на окръжност № " << 1 + c << endl;
        cout << "x= "; cin >> x[c];
        cout << "y= "; cin >> y[c];
        cout << "r= "; cin >> r[c];
    }

    do
    {
        cout << "Въведете броя на точките (1..12): ";
        cin >> m;
    }
    while(m < 1 || m > 12);

    cout << "Въведете стойностите на точките:" << endl;

    for(c = 0; c < m; c++)
    {
        cout << "Точка № " << 1 + c << endl;
        cout << "x= "; cin >> xp[c];
        cout << "y= "; cin >> yp[c];
    }

    for(c = 0; c < k; c++)
    {
        cout << "Точки в окръжност № " << 1 + c << ": ";
        for(ic = 0; ic < m; ic++)
        {
            d = sqrtf((x[c] - xp[ic]) * (x[c] - xp[ic]) + (y[c] - yp[ic]) * (y[c] - yp[ic]));
            if(d < r[c])
                cout << 1 + ic << " ";
        }
        cout << endl;
    }

    return 0;
}
Аватар
Добромир Глухаров
Математик
 
Мнения: 2080
Регистриран на: 11 Яну 2010, 13:23
Рейтинг: 2178


Назад към C, C++



Кой е на линия

Регистрирани потребители: Davids, Google [Bot]

Форум за математика(архив)