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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 16:20   #1
inna1995
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 1
По умолчанию Задача С++. Занесение результатов вычисления в разные таблицы

Необходимо решить задачу:
R = 4A - радиус круга с центром в начале координат (0,0),
А - некоторое положительное значение число.
1). Результат тестирования попадания точек в область (мишень) представить в виде 2-х таблиц для точек попавших и не попавших в область , указав для каждой точки ее номер, координаты (X, Y) и радиус от начала координат . (у меня в решении они собраны вместе в одной таблице)
2). Для каждой из таблиц подсчитать процент точек таблицы от их общего количества, отношение площади мишени (области) к площади круга, а также найти точки максимально и минимально удаленные от начала координат.

Вот мое решение :
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
//-------------------------------
class Area {
float x, y, A;
public:
void Input(float);
void Input();
int Print(int);
int In_Area();
float Rast();
float Krug();
void Action();
Area (float P){A=P; x=0; y=0;}
};
//--------------------------------
void Area::Input(float Rad){
int P=100;
x=Rad*(rand()%P)/(P-1);
if((rand()%10)%2)x=-x;
y=sqrt(pow(Rad,2)-pow(x,2));
y=y*(rand()%P)/(P-1);
if((rand()%10)%2)y=-y;
}
//---------------------------------
void Area::Input(){
cout<<"\n Vvedite X : "; cin>>x;
cout<<"\n Vvedite Y : "; cin>>y;
}
//-----------------------------------
int Area::In_Area(){
int c;
c=(x-A)*(x-A)+y*y<=A*A;
return c;
}
//----------------------------------
int Area::Print(int v){
int c=In_Area();
if(v){
cout<<"\n-----------------------------------";
cout<<"\n X Y Result Radius ";
cout<<"\n-----------------------------------";
}
printf("\n %6.2f %6.2f", x, y);
switch (c){
case 0: printf("%8s", "Brak"); break;
case 1: printf("%8s", "Norma");
}
printf("\t%6.2f ", Rast());
return c;
}
//-----------------------------------
float Area::Rast(){
return sqrt(pow(y,2)+pow(x,2));
}
//--------------------------------
float Area::Krug(){
float Pi=4*atan(1);
float S1=Pi*16*A*A;
float S2=Pi*A*A;
float H=S2/S1;
return H;
}
//-------------------------------
void Area::Action(){
int n, k, f=0;
cout<<"\n Vvod kol-va tochek: "; cin>>n;
cout<<"\n Vvod (x, y) -> (Random/Consol <-> 1/0): "; cin>>k;
for (int i=0; i<n; i++){
if(k) Input(4*A); else Input();
if (Print(!i)) f++;
}
printf("\n------------------------------------");
getch();
float pr=(float)f/(float)n*100;
printf("\n Procent popadaniya = %.2f%%\n", pr);
cout<<"\n Otnoshenie S2 k S1: H= "<<Krug();
}
//---------------------------
void main() {clrscr(); srand(1);
float A;
cout<<"\n Vvod chisla: "; cin>>A;
Area B(A);
B.Action();
cout<<"\n Press any key ..."; getch();
}
Заранее благодарю!
inna1995 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки при выводе результатов в виде таблицы изо Паскаль, Turbo Pascal, PascalABC.NET 1 04.04.2011 14:16
ВЫВОД РЕЗУЛЬТАТОВ В ВИДЕ ТАБЛИЦЫ изо Паскаль, Turbo Pascal, PascalABC.NET 0 26.03.2011 17:39
Выполнить разные вычисления в зависимости от значения переменной. (Pascal) p0weR Помощь студентам 3 12.03.2011 11:40
Из DBEdit в 2 разные таблицы maxkov БД в Delphi 5 17.10.2010 14:47
Дробление таблицы на разные листы MaxxVer Microsoft Office Excel 9 22.03.2010 08:05