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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Дана строка. Указать те слова, которые содержат хотя бы одну букву k http://www.cyberforum.ru/cpp-beginners/thread78583.html
Решите кто может завтра уже здавать. Я просто представления неимею как их делать, я по С++ не шарю нифига.=(((( 1. Дана строка. Указать те слова, которые содержат хотябы одну букву k. 2. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три ьуквы. 3. Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *. 4. Дана...
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 pointer to function that returns type "int&". 5. This declaration won't compile. http://www.cyberforum.ru/cpp-beginners/thread78574.html
C++ Рекурсия...Очень нужно решить...
Решить задачу вычисления выражения y(x,n) с помощью циклов, затем реализовать рекурсивную ф-цию: http://www.imageup.ru/img89/liv234352.jpg.html Написать нужно на С. Буду очень благодарен за помощь...
C++ Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа.
Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа.
C++ В произвольно заданном одномерном массиве определить три элемента с наибольшими значениями http://www.cyberforum.ru/cpp-beginners/thread78533.html
В произвольно заданном одномерном массиве определить три элемента с наибольшими значениями. Могут ли быть найденные значения сторонами треугольника? Люди помогите решить!!!!
C++ Выбрать 3 разные точки заданного на плоскости множества точек,составляющие треугольник наибольшего периметра Подкиньте идею... подробнее

Показать сообщение отдельно
Inimitable WinD
Сообщений: n/a
23.12.2009, 15:31     Использование подпрограмм
Здравствуйте! Писал прогу и при тестировании наткнулся на то, что неправильно работает т.е я думаю, что неисправность в 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);
                }
            }
     }
  }
 }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru