Точки принадлежащие замкнутому кругу

  • Автор темы Dosya
  • Дата начала
  • Просмотров 18732 Просмотров

Dosya

Новорег
7
2
19 Июн 2018
Задание:
Дан одномерный массив А[N] .Составить программу

Определить, сколько точек М1 (A(1),A(N)), М2 (A(2),A(N-1)), …, Мn (A(N),A(1)) таких,
которые принадлежат замкнутому кругу радиуса R c центром в начале координат.
Решение:
Код:
    #include "stdafx.h" 
    #include <iostream> 
    #include <stdio.h> 
    using namespace std; 

    double a[100]; 
    int main() {

    setlocale(0, "");

    long long n, cnt = 0, j;

    double r;

    cout << "Введите R:"<<endl;

    cin >> r;

    cout << "Количество точек"<<endl;

    cin >> n;

    j = n - 1;

    cout << "Введите точки"<<endl;

    for (int i = 0; i < n; i++) {

        cin >> a[i];

    }



    if (n % 2 == 0) n = n / 2 - 1;

    else n = n / 2;



    for (int i = 0; i <= n; i++) {

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] != a[j]) cnt += 2;

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] == a[j]) cnt++;

        j--;

    }

    cout <<  " Кол-во точек в кругу " << cnt << endl;

    system("pause");

    return 0;

}
 

carlcox

Местный
245
126
27 Ноя 2017
Задание:
Дан одномерный массив А[N] .Составить программу

Определить, сколько точек М1 (A(1),A(N)), М2 (A(2),A(N-1)), …, Мn (A(N),A(1)) таких,
которые принадлежат замкнутому кругу радиуса R c центром в начале координат.
Решение:
Код:
    #include "stdafx.h"
    #include <iostream>
    #include <stdio.h>
    using namespace std;

    double a[100];
    int main() {

    setlocale(0, "");

    long long n, cnt = 0, j;

    double r;

    cout << "Введите R:"<<endl;

    cin >> r;

    cout << "Количество точек"<<endl;

    cin >> n;

    j = n - 1;

    cout << "Введите точки"<<endl;

    for (int i = 0; i < n; i++) {

        cin >> a[i];

    }



    if (n % 2 == 0) n = n / 2 - 1;

    else n = n / 2;



    for (int i = 0; i <= n; i++) {

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] != a[j]) cnt += 2;

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] == a[j]) cnt++;

        j--;

    }

    cout <<  " Кол-во точек в кругу " << cnt << endl;

    system("pause");

    return 0;

}
Кто пояснит?
 

carlcox

Местный
245
126
27 Ноя 2017
ye
Задание:
Дан одномерный массив А[N] .Составить программу

Определить, сколько точек М1 (A(1),A(N)), М2 (A(2),A(N-1)), …, Мn (A(N),A(1)) таких,
которые принадлежат замкнутому кругу радиуса R c центром в начале координат.
Решение:
Код:
    #include "stdafx.h"
    #include <iostream>
    #include <stdio.h>
    using namespace std;

    double a[100];
    int main() {

    setlocale(0, "");

    long long n, cnt = 0, j;

    double r;

    cout << "Введите R:"<<endl;

    cin >> r;

    cout << "Количество точек"<<endl;

    cin >> n;

    j = n - 1;

    cout << "Введите точки"<<endl;

    for (int i = 0; i < n; i++) {

        cin >> a[i];

    }



    if (n % 2 == 0) n = n / 2 - 1;

    else n = n / 2;



    for (int i = 0; i <= n; i++) {

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] != a[j]) cnt += 2;

        if (a[i] * a[i] + a[j] * a[j] <= r * r && a[i] == a[j]) cnt++;

        j--;

    }

    cout <<  " Кол-во точек в кругу " << cnt << endl;

    system("pause");

    return 0;

}
Нужна ОПЕН ГЛ ? или какая там среда (виртуальная ) ???
Значения стоят?
Это точки в кругу?
if (a * a + a[j] * a[j] <= r * r && a != a[j]) cnt += 2;

if (a * a + a[j] * a[j] <= r * r && a == a[j]) cnt++;