Форум программистов, компьютерный форум, киберфорум
Наши страницы

Использование подпрограмм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка. Указать те слова, которые содержат хотя бы одну букву k http://www.cyberforum.ru/cpp-beginners/thread78583.html
Решите кто может завтра уже здавать. Я просто представления неимею как их делать, я по С++ не шарю нифига.=(((( 1. Дана строка. Указать те слова, которые содержат хотябы одну букву k. 2. Дана...
C++ int * & func(); int * & func(); What is func? 1. A function that returns pointer to type "int&". 2. A function that returns reference to type "int*". 3. A reference to function that returns type "int*". 4. A... http://www.cyberforum.ru/cpp-beginners/thread78574.html
C++ Как перейти от char[100] к *char?
Подскажите, как переделать 6 строчку? char str1; cin.getline(str1, 100); // Some text char *str2; // strcpy(*str2, str1);
C++ Рекурсия...Очень нужно решить...
Решить задачу вычисления выражения y(x,n) с помощью циклов, затем реализовать рекурсивную ф-цию: http://www.imageup.ru/img89/liv234352.jpg.html Написать нужно на С. Буду очень благодарен за...
C++ Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа. http://www.cyberforum.ru/cpp-beginners/thread78554.html
Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа.
C++ Ifstream и пару вопросов Пример: я считал файл ifstream in("file.txt")б while(in) { in >> k; cout << k; } после цикла указатель стоит в конце... как его поставить в начало, то есть чтобы при считывании... подробнее

Показать сообщение отдельно
Inimitable WinD
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 1

Использование подпрограмм - C++

23.12.2009, 15:31. Просмотров 327. Ответов 0
Метки (Все метки)

Здравствуйте! Писал прогу и при тестировании наткнулся на то, что неправильно работает т.е я думаю, что неисправность в main, там идет вызов функций и мне надо заставить прогу, чтобы она сразу на все проверяла - совпадение, параллельность, пересечение в одной точке, и выводила в общем положении прямые или нет, а она проверяет только на пересечение в точке и то только 3 прямые, когда я ввожу 20, тоже 3 прямые! Реализация подпрограмм точно правильная, просто в main напутал что-то, а понять не могу. Надеюсь на Вашу помощь.

Программа "Положение прямых" (условие): прямая на плоскости может быть задана уравнением ax+by+c=0, где a и b одновременно не равны нулю. Пусть имеется n прямых (n=>3) - я ограничил до 30 прямых. Прямые заданы целыми коэффициентами a1, b1, c1, a2, b2, c2, a3, b3, c3, ... an, bn, cn. Определить находятся ли данные прямые в общем положении, т.е. никакие две из них не совпадают и не параллельны, и никакие три не пересекаются в одной точке. Решение реализовать с помощью подпрограмм определения взаимного расположения прямых.

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
#include <stdio.h>
#include <math.h>
 
int func (int a1, int b1, int c1, int a2, int b2, int c2) //sovpadenie prambIx
{
    if (a1*b2==b1*a2 && b1*c2==b2*c1) 
        return 1;
     else
    return 0;
}
 
int func2 (int a1, int b1, int a2, int b2) //parallelnost prambIx
{
    if (a1*b2==b1*a2)
        return 1;
    else
       return 0;
}
 
int func3 (int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3) //peresechenie prambIx v odnoi tochke
{
{ float x, y, x1, y1;
    x=(b1*c2-b2*c1)/(a1*b2-a2*b1);
    y=(c1*a2-c2*a1)/(a1*b2-a2*b1);
    x1=(b2*c3-b3*c2)/(a2*b3-a3*b2);
    y1=(c2*a3-c3*a2)/(a2*b3-a3*b2);
    if (x==x1 && y==y1)
    return 1;
    else
    return 0;
    }
void main ()
{ int a, b, c, i, j, g, f, k, m2[29][2];
 
printf("\n Vvedite kolichestvo pramih: ");
scanf("%d", &k);
printf("\n Vvedite koefficienti pramih: ");
for (i=0; i<=k - 1; i++)
scanf("%d %d %d", &m2[i][0], &m2[i][1], &m2[i][2]);
 
 
  for (j=0; j <= k - 1; j++)
  {
 
      for (g=0; g <= k - 1; g++)
      {
      if (g != j)
      {
        for (f=0; f <= k - 1; f++)
        {
        if (f != g)
                {
 
            if ((func(m2[j][0], m2[j][1], m2[j][2], m2[g][0], m2[g][1], m2[g][2]) == 0) &&
            (func2(m2[j][0], m2[j][1], m2[g][0], m2[g][1]) == 0) &&
            (func3(m2[j][0], m2[j][1], m2[j][2], m2[g][0], m2[g][1], m2[g][2], m2[f][0], m2[f][1], m2[f][2]) == 0))
 
 
        printf("\n Pramie %d and %d naxodatsa v obchem polozhenii. Tretya pramaia %d", j+1, g+1, f+1);
        else
        printf("\n Pramie %d and %d ne naxodatsa v obchem polozhenii. Tretya pramaia %d", j+1, g+1,
f+1);
                }
            }
     }
  }
 }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.