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

1) массивы 2)геометрия - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
antonio nait
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 22
18.12.2009, 15:36     1) массивы 2)геометрия #1
Здравствуйте!
Помогите пожалуйста решить задачи, очень надо!
1)Определить частоты вхождения в число N! (N<=100) цифр, из которых состоит N!
2)Имеется n прямых на плоскости, заданных коэффициентами. Определить, находятся ли данные прямые в общем положении, т.е. все они различны, никакие две из них не параллельны и никакие три не пересекаются в одной точке.

кто-нибудь может помочь решить?
на завтра очень надо первую
сделал только вычисление N! а дальше не знаю как...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include<clocale>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
        int n;
        int x=1;
        cout<<"Введите N!: ";
        cin>>n;
 
        for (int i=1; i<n+1; ++i)
                x*=i;
 
        cout<<n<<"!"<<" = "<<x<<endl;
 
}

ребят, помогите пожалуйста!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2009, 15:36     1) массивы 2)геометрия
Посмотрите здесь:

C++ геометрия
C++ Массивы. Геометрия. Об окружности минимального радиуса по трем точкам
Геометрия(треугольник) C++
Геометрия в С++. C++
Вычислительная геометрия на С C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antonio nait
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 22
20.12.2009, 15:22  [ТС]     1) массивы 2)геометрия #21
помогите пожалуйста со 2 задачей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
22.12.2009, 01:48     1) массивы 2)геометрия #22
вторая работа.
вот тлько очень странная ошибка при запуске, может ктонибудь поможет её исправить, я не могу!
а остольное правильно.
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <conio.h>
using namespace std;
 
typedef struct line{
       int a,b,c;//line: a*i+b*j+c vektor
       line(){a=0;b=0;c=0;}
       void set(int newa,int newb,int newc){a=newa;b=newb;c=newc;}
};
 
typedef struct point{
        int x,y;
        point(){x=0;y=0;}
        point(int newx,int newy){x=newx;y=newy;}
        point(point *p){x=(*p).x;y=(*p).y;}
};
 
int operator==(line &l1,line &l2)
{
    return (l1.a==l2.a)&&(l1.b==l2.b);
}
 
int operator==(point &p1,point &p2)
{
    return (p1.x==p2.x)&&(p1.y==p2.y);
}
 
bool diff(line M[],int n)//возвращает 1 если вме линни разные, 0 если есть хотя бы две одинаковые.
{
     for (int i=0;i<n;i++)
     {
         for (int j=0;j<n;j++)
         {
             if ((M[i]==M[j])&&(i!=j))return 0;
         }
     }
     return 1;
}
 
bool kolleniarni(line &l1,line &l2)//возвращает 1 если лини паралельны, 0 если они не пралельны
{
     return (l1.a*l2.b-l2.a*l1.b)==0;
}
 
bool NeKolleniarniVse(line M[],int n)//возвращает 1 если все попарно не параллельны.
{
     for (int i=0;i<n;i++)
     {
         for (int j=0;j<n;j++)
         {
             if ((i!=j)&&(kolleniarni(M[i],M[j])))return 0;
         }
     }
     return 1;
}
 
void cross(line &l1,line &l2,point &p)
{
      p.y=(-l1.c+l1.a*l2.c)/(l1.b-l1.a*l2.b/l2.a);
      p.x=-l2.c-l2.b*p.y/l2.a;
}     
 
bool nocroses(line M[],int n)
{
     for (int i=0;i<n;i++)
     {
         for (int j=0;j<n;j++)
         {
             for (int k=0;k<n;k++)
             {
                 //getch();
                 point p1(0,0); cross(M[i],M[j],p1); //здесь ошибка
                 point p2(0,0); cross(M[i],M[k],p2);
                 point p3(0,0); cross(M[k],M[j],p3);
 
                 bool p=(p1.x==p2.x)&&(p1.y==p2.y)&&(p3.x==p2.x)&&(p3.y==p2.y)&&(p1.x==p3.x)&&(p1.y==p3.y);
                 
                 if (/**/(i!=j)&&(j!=k)&&(i!=k)&&( p )/**/)return 0;
             }
         }
     }
     return 1;
 
}
 
int main()
{
    int n;
    //cout << "input number of lines\n"; 
    //cin >> n;
    n=3;
    line M[n];
    M[0].set(1,1,4);
    M[1].set(3,2,1);
    M[2].set(4,5,4);
    cout << diff(M,n)<<endl;
    cout << NeKolleniarniVse(M,n) <<endl;
    cout << nocroses(M,n)<<endl;
    getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2009, 01:52     1) массивы 2)геометрия
Еще ссылки по теме:

C++ Геометрия
C++ геометрия
Простая геометрия C++

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

Или воспользуйтесь поиском по форуму:
antonio nait
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 22
22.12.2009, 01:52  [ТС]     1) массивы 2)геометрия #23
спасибо большое!!!!
Yandex
Объявления
22.12.2009, 01:52     1) массивы 2)геометрия
Ответ Создать тему
Опции темы

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