Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
#1

Кольцо - C++

18.01.2011, 22:06. Просмотров 1443. Ответов 22
Метки нет (Все метки)

В заданном множестве точек плоскости найти количество точек, находящихся внутри кольца, ограниченного окружностями с общим центром, радиусы которых r и R (r < R).

Вот...когда проверяешь что-то врет...не могу понять чего..может кто видит?

C++
1
2
3
4
5
6
7
8
9
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <vcl.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
 
 void FunTochki (int n , float X[ ] , float Y[ ] )
 {
  cout<<"Vvedite koordinaty tochek X :\n";
 for(int i=0;i<n;i++)
 { cout<<" X["<<i<<"]= ";
   cin>>X[i]; }
  cout<<"Vvedite koordinaty tochek Y :\n";
  for(int i=0;i<n;i++)
  { cout<<" Y["<<i<<"]= ";
   cin>>Y[i]; }
  }
 
 
 
 
 int main()
 {  const m=6;
 float X[m];
float Y[m] ;
float R , r , d;
int k=0;
 
 
 FunTochki ( m ,  X , Y ) ;
 cout<<"Vvedite R= ";
 cin>>R;
 cout<<"Vvedite r= ";
 cin>>r;
for(int i=0; i<m ; i++ )
   { d=X[i]*X[i]+Y[i]*Y[i];
     if(d>r && d<R)
       {k++ ;}
       }
cout<<"Kol-vo tochek: "<<k;
cin>>k ;
   getch();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 22:06     Кольцо
Посмотрите здесь:

C++ Кольцо
C++ однонаправленое кольцо
Определить кольцо с центром в начале координат, которое содержит все точки C++
C++ Массив целых чисел «свернуть в кольцо» и повернуть вправо на К позиций
C++ Определить кольцо с центром в начале координат, которое содержит все точки.
Определить, сколько точек попадает в кольцо с внутренним радиусом R1 и внешним R2 C++
Определить кольцо с центром в начале координат, которое содержит все точки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:10     Кольцо #2
Трассировка! Никуда без нее. Говорю, как новичок)
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 22:22  [ТС]     Кольцо #3
Chelioss, а я не знаю как ее делать(
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:26     Кольцо #4
Какой средой программирования пользуетесь? http://ru.wikipedia.org/wiki/Трассировка
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 22:27  [ТС]     Кольцо #5
да вроде все верно...но при проверке не так((..хмм(

Добавлено через 31 секунду
Chelioss, в викепедии я давно прочла)билдер 6
dmitry205
2 / 2 / 0
Регистрация: 14.05.2010
Сообщений: 21
18.01.2011, 22:31     Кольцо #6
const m=6;

а чё не определил m?? ошибка же будет =)
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:31     Кольцо #7
Я так и не понимаю. Вы трассировкой пользовались или нет?
Надо смотреть на значения. Доходите до того места, где значение становится не тем, что предполагалось, а потом исправляете.
Вы в функции заглядывали?
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 22:33  [ТС]     Кольцо #8
так всё то)он считает.но если самому проверять на листике то у него не верно.откуда я знаю где он не верно считает.

Добавлено через 50 секунд
программа ошибок не выдает...она выполняется.только неправильно
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
18.01.2011, 22:34     Кольцо #9
Цитата Сообщение от barlog Посмотреть сообщение
d=X[i]*X[i]+Y[i]*Y[i];
if(d>r && d<R)
странное у вас условие стоит... не выполнится же...
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:35     Кольцо #10
Еще раз, трассировка - это пошаговое выполнение программы. После каждого шага сверяете значения на листочке.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 22:37  [ТС]     Кольцо #11
Алексaндр, это почему???
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
18.01.2011, 22:38     Кольцо #12
Цитата Сообщение от barlog Посмотреть сообщение
Chelioss, а я не знаю как ее делать(
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<math.h>
using namespace std;
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused


void FunTochki (int n , float X[ ] , float Y[ ] )
{
cout<<"Vvedite koordinaty tochek X :\n";
for(int i=0;i<n;i++)
{ cout<<" X["<<i<<"]= ";
cin>>X[i]; }
cout<<"Vvedite koordinaty tochek Y :\n";
for(int i=0;i<n;i++)
{ cout<<" Y["<<i<<"]= ";
cin>>Y[i]; }
}




int main()
{ int m=6;
float X[m];
float Y[m] ;
float R , r , d;
int k=0;


FunTochki ( m , X , Y ) ;
cout<<"Vvedite R= ";
cin>>R;
cout<<"Vvedite r= ";
cin>>r;
for(int i=0; i<m ; i++ )
{ d=X[i]*X[i]+Y[i]*Y[i];
if(d>r && d<R)
{k++ ;}
}
cout<<"Kol-vo tochek: "<<k;
cin>>k ;
getch();
return 0;
}
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
18.01.2011, 22:40     Кольцо #13
стоп... а центр круга находится в то4ке (0;0) ??
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:42     Кольцо #14
Походу учится никто не хочет.
dmitry205
2 / 2 / 0
Регистрация: 14.05.2010
Сообщений: 21
18.01.2011, 22:42     Кольцо #15
M@ker, а не одно и тоже ты написал???
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
18.01.2011, 22:46     Кольцо #16
Таааак... Народ, по ходу заметил ошибку ))) Уравнение круга немного неправильно было записано )

C++
1
2
3
4
5
6
7
8
9
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
38
39
40
41
42
43
44
45
46
47
48
49
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
 
 void FunTochki (int n , float X[ ] , float Y[ ] )
 {
  cout<<"Vvedite koordinaty tochek X :\n";
 for(int i=0;i<n;i++)
 { cout<<" X["<<i<<"]= ";
   cin>>X[i]; }
  cout<<"Vvedite koordinaty tochek Y :\n";
  for(int i=0;i<n;i++)
  { cout<<" Y["<<i<<"]= ";
   cin>>Y[i]; }
  }
 
 
 
 
 int main()
 {  const int m=6;
 float X[m];
float Y[m] ;
float R , r , d;
int k=0;
 
 
 FunTochki ( m ,  X , Y ) ;
 cout<<"Vvedite R= ";
 cin>>R;
 cout<<"Vvedite r= ";
 cin>>r;
for(int i=0; i<m ; i++ )
   { d=X[i]*X[i]+Y[i]*Y[i];
     if(d>r*r && d<R*R) // во-во-во )))
       {k++ ;}
       }
cout<<"Kol-vo tochek: "<<k;
getch();
return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
18.01.2011, 22:48  [ТС]     Кольцо #17
да центр в 0.0.
Что значит учиться не хочет?!я на листке уже 100 раз проверела...не могу найти ошибку!вот и прошу помощи...

Добавлено через 16 секунд
Алексaндр, СПАСИБО)))))

Добавлено через 1 минуту
Да-да..точно там же меньше чем радиус в квадрате!!точно!спасиб)))
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
18.01.2011, 22:50     Кольцо #18
Цитата Сообщение от dmitry205 Посмотреть сообщение
M@ker, а не одно и тоже ты написал???
исправил ошибки, внимательно смотреть нужно)
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
18.01.2011, 22:53     Кольцо #19
barlog
Все просто. Если бы вы использовали трассировку, то на шаге условия if(d>r*r && d<R*R) вы бы заметили, что тут не правильно выполняется условие, т.е., в зависимости от значений, по условию задачи ли выполнялось if(d>r*r && d<R*R).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 22:55     Кольцо
Еще ссылки по теме:

Имеется кольцо с известными радиусами внутреннего и внешнего кругов. Определить окружностей обоих кругов,атакже площадь кольца. C++
C++ Реализовать с использованием массива двунаправленное кольцо
C++ Нужно написать программу, которая выдает на экран движущееся цветное кольцо
Перевод с Паскаля в С++. Структура "Кольцо" C++
Реализовать однонаправленное кольцо с использованием массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
18.01.2011, 22:55     Кольцо #20
M@ker, ну да... #include <vcl.h> убрал и int m=6; исправил... крут )))))))))))))))))

кстати, мб никто не заметил ещё одной ненужной строки, которую я убрал.....
cin>>k ; в конце кода... я вообще не понял за4ем его туда влепили)))) вотъ и убрал...
Yandex
Объявления
18.01.2011, 22:55     Кольцо
Ответ Создать тему
Опции темы

Текущее время: 07:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru