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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Inimitable WinD
Сообщений: n/a
#1

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

23.12.2009, 15:31. Просмотров 321. Ответов 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);
                }
            }
     }
  }
 }
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2009, 15:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование подпрограмм (C++):

Использование функций(подпрограмм) - C++
Дано пятизначное целое число.Составить из его цифр максимальное число.(используя подпрограмму) Я понимаю,что скорее всего у меня задача...

Задача с массивами.Использование подпрограмм - C++
Дан массив из n элементов, n-1 упорядоченны по не убыванию. Добавить в массив значение p так,чтобы сохранить упорядоченность методом...

Запуск подпрограмм - C++
Только начал изучать, сильно не пинайте. Запускаю много разных исходников, приходиться каждый раз создавать новый проект, либо все...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Программа на С++ с использованием подпрограмм - C++
Здравствуйте, я тут новичек, мне нужно сделать лабораторную работу по С++.Вот мои старания, но моя программа полный провал, она...

Подпрограммы. Вычисления с использованием подпрограмм - C++
Помогите пожалуйста!)) Дважды вычислить значение выражения, первый раз используя процедуру, а второй - функцию. ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2009, 15:31
Привет! Вот еще темы с ответами:

Обработка массивов с использованием подпрограмм - C++
Прошу помощи! Ввести одномерные массивы X1n1, X2n2 и X3n3 и определить в каждом из них среднее арифметическое отрицательных элементов....

Обработка массивов с использованием подпрограмм - C++
Из каждого элемента матрицы А(3,3) вычесть произведение ее нечетных отрицательных эллементов

Разработка программ с выделением подпрограмм - C++
Добрый вечер. Очень нужна помощь с написанием программы или лечебным пинком. Обыскала всё, что только можно - похожих задач не нашла, не...

Разработка программы с выделением подпрограмм - C++
Если максимальный элемент квадратной матрицы А находится выше главной диагонали,транспортировать матрицу, сохранив ее в отдельном массиве...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru