Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Usefur
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 74
1

Определить попадание точки в заштрихованную область

18.12.2010, 16:26. Просмотров 1159. Ответов 8
Метки нет (Все метки)

Вот сама задача:
Дано координаты точек х1, y1, x2, y2,..., x15, y15. Если точка попадает в плоскость, ограниченную кругом х^2 + y^2 = R^2, то вывести на печать координаты этой точки и сообщение "ТОЧКА В ПЛОСКОСТИ", если точка вне круга, то вывести на печать координаты точки и сообщение " ТОЧКА ЗА ПРЕДЕЛАМИ ". R = 15.
Одномерные массивы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
main()
{
int i, R2=225;
float x[15], y[15];
clrscr();
randomize();
for(i=0;i<15;i++)
{
                 x[i]=random(15);
                 y[i]=random(15);
if(pow(x[i],2)+pow(y[i],2)<R2)
printf("\nTochka x(%i)=%f, y(%i)=%f v koli", i, x[i], y[i]);
else
printf("\nTochka x(%i)=%f, y(%i)=%f ne v koli", i, x[i], y[i]);
}
free(x);
free(y);
}
Указатели:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
main()
{
int i, R2=225;
float *x=malloc(15), *y=malloc(15);
clrscr();
randomize();
for(i=0;i<15;i++)
{
                 *x=random(1001)/40.0;
                 *y=random(1001)/40.0;
                 if(pow(*x,2)+pow(*y,2)<R2)              
                 printf("\nTo4ka x[%i]=%f,y[%i]=%f v koli",i,*x,i,*y);
                 else
                 printf("\nTo4ka x[%i]=%f,y[%i}=%f ne v koli",i,*x,i,*y); 
}                
if(i<=14)x++; y++;
free(x);
free(y);
}
И там, и там программа не компилируется. Подскажите, где ошибка, и что не правильно, будьте добры.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2010, 16:26
Ответы с готовыми решениями:

Определить попадание произвольной точки в заштрихованную область
Добрый вечер! Помогите определить попадание произвольной точки в заштрихованную область.

Определить попадание произвольной точки в заштрихованную область
помогите пожалуйста написать программу &quot;определить попадание произвольной точки в заштрихованную...

Попадание точки в заштрихованную область
Написать программу, которая определяет попадает ли точка с заданными координатами в область,...

Попадание точки в заштрихованную область
Здравствуйте! Пыталась написать программу, но ничего не выходит, помогите с кодом. Очень нужно! ...

Попадание точки в заштрихованную область
Написать программу, которая определяет, попадает ли точка с заданными координатами в область,...

8
MILAN
889 / 783 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
18.12.2010, 16:30 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Usefur Посмотреть сообщение
Одномерные массивы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int i, R2=225;
float x[15], y[15];
clrscr();
for(i=0;i<15;i++)
{
                 x[i]=rand()%15;
                 y[i]=rand()%15;
if(pow(x[i],2)+pow(y[i],2)<R2)
printf("\nTochka x(%i)=%f, y(%i)=%f v koli", i, x[i], y[i]);
else
printf("\nTochka x(%i)=%f, y(%i)=%f ne v koli", i, x[i], y[i]);
}
return 0;
}
1
Usefur
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 74
18.12.2010, 16:41  [ТС] 3
Цитата Сообщение от MILAN Посмотреть сообщение
А почему y не рендомизируется, а только х?
0
MILAN
889 / 783 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
18.12.2010, 16:46 4
Цитата Сообщение от Usefur Посмотреть сообщение
А почему y не рендомизируется, а только х?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int i, R2=225;
float x[15], y[15];
//clrscr();
for(i=0;i<15;i++)
{
  x[i]=rand()%15;
  y[i]=rand()%15;
if(pow(x[i],2)+pow(y[i],2)<R2)
  printf("\nTochka x(%i)=%f, y(%i)=%f v koli",i, x[i], i,y[i]);
else
  printf("\nTochka x(%i)=%f, y(%i)=%f ne v koli", i, x[i], i, y[i]);
}
getch();
return 0;
}
1
Usefur
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 74
18.12.2010, 17:56  [ТС] 5
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int i, R2=225;
float *p, x[15]; 
p=x;
float *u, y[15];
u=y;
//clrscr();
for(i=0;i<15;i++)
{
  *p=rand()%15;
  *u=rand()%15;
if(pow(x[i],2)+pow(y[i],2)<R2)
  printf("\nTochka x[%i]=%.2f, y[%i]=%.2f v koli",i, *p, i,*u);
else
  printf("\nTochka x[%i]=%.2f, y[%i]=%.2f ne v koli", i, *p,i, *u);
}
getch();
return 0;
}
Указатели. MILAN спасибо.

Добавлено через 53 минуты
Еще одно, почему результаты отличаются при исполнении з массивами и указателями?

Добавлено через 5 минут
Массив:
Tochka x[0]=11.00, y[0]=2.00 v koli
Tochka x[1]=4.00, y[1]=10.00 v koli
Tochka x[2]=14.00, y[2]=4.00 v koli
Tochka x[3]=3.00, y[3]=3.00 v koli
Tochka x[4]=7.00, y[4]=14.00 ne v koli
Tochka x[5]=5.00, y[5]=5.00 v koli
Tochka x[6]=1.00, y[6]=12.00 v koli
Tochka x[7]=1.00, y[7]=11.00 v koli
Tochka x[8]=10.00, y[8]=2.00 v koli
Tochka x[9]=12.00, y[9]=6.00 v koli
Tochka x[10]=6.00, y[10]=9.00 v koli
Tochka x[11]=2.00, y[11]=3.00 v koli
Tochka x[12]=7.00, y[12]=7.00 v koli
Tochka x[13]=6.00, y[13]=11.00 v koli
Tochka x[14]=8.00, y[14]=5.00 v koli
Указатель:
Tochka x[0]=11.00, y[0]=2.00 v koli
Tochka x[1]=4.00, y[1]=10.00 ne v koli
Tochka x[2]=14.00, y[2]=4.00 ne v koli
Tochka x[3]=3.00, y[3]=3.00 ne v koli
Tochka x[4]=7.00, y[4]=14.00 ne v koli
Tochka x[5]=5.00, y[5]=5.00 v koli
Tochka x[6]=1.00, y[6]=12.00 v koli
Tochka x[7]=1.00, y[7]=11.00 v koli
Tochka x[8]=10.00, y[8]=2.00 ne v koli
Tochka x[9]=12.00, y[9]=6.00 ne v koli
Tochka x[10]=6.00, y[10]=9.00 ne v koli
Tochka x[11]=2.00, y[11]=3.00 ne v koli
Tochka x[12]=7.00, y[12]=7.00 ne v koli
Tochka x[13]=6.00, y[13]=11.00 ne v koli
Tochka x[14]=8.00, y[14]=5.00 ne v koli
0
MILAN
889 / 783 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
18.12.2010, 17:56 6
Usefur, зачем вам массивы x[15], y[15](в варианте с указателями)?
0
Usefur
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 74
18.12.2010, 17:57  [ТС] 7
Удалил...
так какова причина может быть?
0
MILAN
889 / 783 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
18.12.2010, 17:58 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Usefur,

C++
1
if(pow(*p,2)+pow(*u,2)<R2)
1
Usefur
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 74
18.12.2010, 18:00  [ТС] 9
Отлично.
0
18.12.2010, 18:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2010, 18:00

Определите попадание произвольной точки в заштрихованную область
определите попадание произвольной точки в заштрихованную область. Я написал, но когда...

Определить попадание точки в заданную область
Напишите программу, фиксирующую попадание в заданную область точки с вводимыми с клавиатуры...

Попадание точки в заданную область
Доброго времени суток! Попрошу помочь с написанием кода на языке Си Вот рисунок(область в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru