Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2008, 13:34   #1
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
Лампочка Нужна помощь в написании програмки на с++

Здравствуйте!!!!! Нужна помощь в написании програмки на с++!!! К ней есть процедурки написанные на Borland Studio 2005!! Помогите слепить это все в програмки для обычьного компилятора!!!!

Задача: Если все точки плоскости, заданные своими координатами, попадают в круг радиусом R и центром в начале координат, определить их среднюю абциссу и ординату, иначе распечатать номера точек, не попавших в заданый круг!!!
НУЖНО ЧТОБЫ ОНА БЫЛА В ПРОЦЕДУРАХ И ФУНКЦИЯХ!!!!
Помогите пожалуйста, завтра здавать!!!

Процедурки на Borland Studio 2005:

Код:
int num_rows(char* file_name)
{
char s[81];
FILE* file;
file=fopen(file_name, "r");
int i=0;
while( !feof(file))
{
fscanf(file, "%s", &s);
i++;
}
fclose(file);
return i/2;
}

void input_array(char* file_name, float **a, int N)
{
FILE* file;
file=fopen(file_name, "r");
int i=0;
while( !feof(file))
{
fscanf(file, "%f %f", &a[0][i], &a[1][i]);
i++;
}
fclose(file);
}

void kord(char*file_name,float bad_x, float bad_y,int n)
{
FILE *fap;
fap=fopen(file_name,"a");
fprintf(fap,"%d)%4.2f %4.2f\n", n, bad_x, bad_y);
fclose (fap);
}





int ischis(float r, float **A, int n)
{
float abc, ord;
int k=0;
abc=ord=0;
for (int i=0; i <n; i++) {
if( A[0][i]*A[0][i] + A[1][i]*A[1][i] <= r*r )
{
abc+=A[0][i];
ord+=A[1][i];
} else {
kord("badder.txt",A[0][i],A[1][i],i );
k++;
}
}
printf("Abc: %4.2f\n", abc/(n-k));
printf("Ord: %4.2f\n", ord/(n-k));
return k;
}
moderator: Используйте тег <CODE>

Последний раз редактировалось merax; 12.06.2008 в 16:57.
Jondeer вне форума Ответить с цитированием
Старый 10.06.2008, 14:19   #2
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию

Ты б паподробнее описал свои процедурки?
Например в input_array передаеться параметр N. Тогда зачем его передовать, если он нигде не используется.
Игорь007 вне форума Ответить с цитированием
Старый 10.06.2008, 14:40   #3
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
По умолчанию

Дело в том, что процедурки писал не я! Я вот щас пытаюсь сам написать да вот не знаю как среднюю абциссу и ординату найти!!!!
Jondeer вне форума Ответить с цитированием
Старый 10.06.2008, 14:57   #4
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию

А что значит плоскасть? Ведь она не ограничеваеться каардинатами, она бесконечна.
Быть может ты имееш ввиду просто огранниченную область. Если так, то эта область должна
иметь определенную форму, потому что описать произвольную область каардинатами будет проблемотично.
В твоем случае какая область? Прямоугольная?
Игорь007 вне форума Ответить с цитированием
Старый 10.06.2008, 15:25   #5
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
По умолчанию

Здесь окружность радиусом R! А описывается она так!!! ((X*X+Y*Y)<=(R*R))
Jondeer вне форума Ответить с цитированием
Старый 10.06.2008, 15:45   #6
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию

Это точки проверяються.
А каардинаты значит никакой принадлежности к плоскасти не имеют.
То есть просто вводишь несколько каардинат, и проверяеш их, находяться ли они в круге.

Тогда средние значения можно получить только как срееднее арифметическое. По другому я незнаю как.
Игорь007 вне форума Ответить с цитированием
Старый 10.06.2008, 15:52   #7
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
По умолчанию

Понятно!!!А как будет выглядеть выражение, что ордината равна сумме координат по оси ох делённой на количество точек???????
Jondeer вне форума Ответить с цитированием
Старый 10.06.2008, 16:13   #8
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию

Как-то сомнительно. Может нужно найти центр плоскости?
Игорь007 вне форума Ответить с цитированием
Старый 10.06.2008, 16:19   #9
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
По умолчанию

ЭЭЭ!!! Вобще препод сказал что задачка довольно простая!!!!
А ты знаешь как найти центр плоскости!!!! Да и зачем его находить???
Jondeer вне форума Ответить с цитированием
Старый 10.06.2008, 17:13   #10
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

Центра плоскости не существует,т.к. она бесконечна.
Если нужно найти сред. арифм. координат по оси Х, если мы знаем координаты точек - то просто в цикле ищем сумму всех координат по оси х и делим на кол-во точек.Нечто такое

Код:
for i := 1 to PointNum do
  Sum := Sum + Points[i].x;
Sum := Sum - PointNum;
Olympian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в написании кода Михаил Юрьевич Общие вопросы Delphi 2 27.12.2007 09:32
Нужна помощь в написании программы. GhosT3Ds Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2007 07:45