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

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

Войти
Регистрация
Восстановить пароль
 
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
#1

Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек - C++

16.06.2013, 17:06. Просмотров 426. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста исправить ошибки

условие

Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек.. Написать функцию square, которая вычисляет площадь треугольника, заданного координатами вершин. Написать функцию squaren c переменным числом параметров, которая определяет площадь выпуклого многоугольника, заданного координатами своих вершин.

код

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
void Dlina (double x1, double x2, double y1, double y2)
{
    double L=sqrt((x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 - y1)); 
    cout << "Enter x1, y1, x2, y2: ";
    double x1, y1, x2, y2;
    cin >> x1>>y1>>x2>>y2;
    Dlina (x1, y1, x2, y2);
double Square(double a,double b, double c)
{
 double p = (a + b + c) / 2;
 return sqrt(p * (a - p) * (b - p) * (c - p));
 }
double Squaren(double s, res = 0, area = 0)
{
    int i, n;
     cout << "Kolishestvo storon mnogougolnika:" << endl;
    cin >> n;
    int *x = new int[n];
    int *y = new int[n];
    cout << "Enter coordinates:" << endl;
    for (i = 0; i < n; i++) {
        cin >> x[i]  
            >> y[i]; 
    }
    for (i = 0; i < n; i++) {
        if (i == 0) {
            s = x[i]*(y[n-1] - y[i+1]); 
            res += s;
        }
        else
            if (i == n-1) {
                s = x[i]*(y[i-1] - y[0]); 
                res += s;
            }
            else {
                s = x[i]*(y[i-1] - y[i+1]);
                res += s;
            }
    }
    Square = abs(res/2);
    cout << "Square: " << square << endl;
    delete[] x;
    delete[] y;
}
 
int main()
{
    cout << "Enter a, b, c: ";
    double a, b, c;
    cin >> a >> b >> c;
    Square(a, b, c);
    system("pause");
    return 0;
}}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 17:06     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек
Посмотрите здесь:

Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). C++
Написать программу, которая по координатам камушков на поле находит вариант размещения их на двух несовпадающих окружностях C++
C++ Написать рекурсивную функцию, которая находит размер самой большой фигуры
Напишите функцию Otrezok (x1, y1, x2, y2), которая находит длину отрезка AB по заданным координатам C++
Написать функцию, которая находит площадь N угольника по его сторонам C++
C++ Описать процедуру или функцию, которая находит max элемент не пустого списка L
C++ Написать функцию, которая находит самую длинную ветку в дереве
Написать функцию, которая находит площадь любой фигуры C++
C++ Вывести длину наибольшей или наименьшей стороны треугольника в зависимости от его площади
C++ Написать функцию, которая находит элемент c минимальной массой класса Dog
Написать функцию, которая находит минимальный элемент одномерного массива C++
Найти периметр треугольника, определив функцию, рассчитывающую длину отрезка по координатам его вершин C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
admir
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 11
16.06.2013, 17:39     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек #2
вот ваш "рабочий" код. исправил семантику, ошибки связанные с синтаксисом. но программа не доделана в любом случае.
исправил:
1) синтаксис
2) Функция Dlina была в бесконечной рекурсии - исправил.
3) ну и так по мелочи.

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
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
void Dlina(double x1, double x2, double y1, double y2)
{
    double L = sqrt((x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 - y1)); 
    cout << "Dlina storoni: " << L;
}
 
double Square(double a, double b, double c)
{
    double p = (a + b + c) / 2;
    return sqrt(p * (a - p) * (b - p) * (c - p));
}
 
double Squaren(double s, double res = 0, double area = 0)
{
    int i, n;
    cout << "Kolishestvo storon mnogougolnika:" << endl;
    cin >> n;
    int *x = new int[n];
    int *y = new int[n];
    cout << "Enter coordinates:" << endl;
    for (i = 0; i < n; i++)
        cin >> x[i] >> y[i];
 
    for (i = 0; i < n; i++)
    {
        if (i == 0)
        {
            s = x[i]*(y[n-1] - y[i+1]); 
            res += s;
        }
        else
            if (i == n-1)
            {
                s = x[i]*(y[i-1] - y[0]); 
                res += s;
            }
            else
            {
                s = x[i]*(y[i-1] - y[i+1]);
                res += s;
            }
    }
    cout << "Square: " << abs(res/2) << endl;
    delete[] x;
    delete[] y;
    return 0;
}
 
int main()
{
    cout << "Enter a, b, c: ";
    double a, b, c;
    cin >> a >> b >> c;
    Square(a, b, c);
    system("pause");
    return 0;
}
но программы, которая удовлетворяла бы условию я не увидел.
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
16.06.2013, 18:13  [ТС]     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек #3
а можете помочь дописать её.
admir
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 11
16.06.2013, 18:35     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек #4
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
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
void Dlina(double x1, double x2, double y1, double y2)
{
    double L = sqrt((x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 - y1)); 
    cout << "Dlina storoni: " << L;
}
 
void Square(double a, double b, double c)
{
    double p = (a + b + c) / 2;
    cout << "Ploshad' treugolnika: " << sqrt(p * (p - a) * (p - b) * (p - c));
}
 
void Squaren()
{
    int i, n;
    double s, res = 0, area = 0;
    cout << "Kolishestvo storon mnogougolnika:" << endl;
    cin >> n;
    int *x = new int[n];
    int *y = new int[n];
    cout << "Enter coordinates:" << endl;
    for (i = 0; i < n; i++)
        cin >> x[i] >> y[i];
 
    for (i = 0; i < n; i++)
    {
        if (i == 0)
        {
            s = x[i]*(y[n-1] - y[i+1]); 
            res += s;
        }
        else
            if (i == n-1)
            {
                s = x[i]*(y[i-1] - y[0]); 
                res += s;
            }
            else
            {
                s = x[i]*(y[i-1] - y[i+1]);
                res += s;
            }
    }
    cout << "Square: " << abs(res/2) << endl;
    delete[] x;
    delete[] y;
}
 
int main()
{
    int menu;
    cout << "\nMenu:\n1. Length of the side\n2. Area of triangle\n3. Area of convex polygon\nYour choise: ";
    cin >> menu;
    switch(menu)
    {
    case 1:
        {
            cout << "Enter pls coordinates x1, x2, y1, y2: ";
            double x1, x2, y1, y2;
            cin >> x1 >> x2 >> y1 >> y2;
            Dlina(x1, x2, y1, y2);
            break;
        }
    case 2:
        {
            cout << "Enter pls a, b ,c: ";
            double a, b, c;
            cin >> a >> b >> c;
            Square(a, b, c);
            break;
        }
    case 3:
        {
            Squaren();
            break;
        }
    }
    cout << endl;
    system("pause");
    return 0;
}
за работоспособность третей части программы не отвечаю. использовался ваш код.
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
16.06.2013, 18:43  [ТС]     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек #5
Спасибо
Yandex
Объявления
16.06.2013, 18:43     Написать функцию (или макроопределение), которая находит длину стороны по координатам его точек
Ответ Создать тему
Опции темы

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