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

Найти периметр многоугольника, заданного уравнениями сторон - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Склеивание двух массивов http://www.cyberforum.ru/cpp-beginners/thread1304357.html
#include <stdafx.h> #include <iostream> #include <stdio.h> #include <ctime> #include <windows.h> #include <iomanip> #include <cstdlib> //setlocale(0, "rus"); using namespace std;
C++ Как склеить двумерные массивы? #include <iostream.h> #include <vcl> #include <conio> #include <math> #include <iomanip.h> using namespace std; const int Size=4; int main() { int ReshKardano; http://www.cyberforum.ru/cpp-beginners/thread1304353.html
Найти суммы элементов тех строк матрицы, максимальные элементы которых не превышают среднего значения C++
Решить задачу, используя функцию. Дана матрица А(n,m). Определить суммы элементов тех строк матрицы, максимальные элементы которых не превышают среднего значения элементов матрицы или вывести сообщение, что таких строк не существует. Функция должны вычислять или значение суммы элементов одномерного массива или значение максимального элемента одномерного элемента или среднее значение элементов...
Работа с STL list + пропись List.h C++
Здравствуйте! Помогите, пожалуйста, разобраться с STL list. Нужно сделать программу в которой будет содержаться класс Student, прописать добавление, изменение, удаление и поиск. List прописать самим. как прописывать лист вообще понятия не имею, пытаюсь сделать добавление, но успехи практически никакие(( С числами все получается (list <int> L;), если не прописывать лист, а вот с классом ничего...
C++ Заполнить массив случайными символами http://www.cyberforum.ru/cpp-beginners/thread1304322.html
Как заполнить двумерный массив случайными символами?
C++ Шифрование методом "Диск Альберти" Написать приложение для преобразования файлов с открытым сообщением в файлы с зашифрованным сообщением методом "Диск Альберти". У меня программа считывает текст из консоли, преобразует этот текст в зашифрованный и записывает в файл. А нужно, чтобы считывала не из консоли, а из файла, преобразовывала и записывала в новый файл. #include <stdio.h> #include <stdlib.h> #include <string.h> ... подробнее

Показать сообщение отдельно
Vika92
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 3
18.11.2014, 20:27     Найти периметр многоугольника, заданного уравнениями сторон
Помогите пожалуйста с решением задачи! Я кое-что уже написала, но ничего не работает. Самой разобраться в коде не получается. Подскажите где ошибки и какой алгоритм лучше реализовать для решения задачи...

Текст задачи: "Многоугольник определён на плоскости уравнениями его сторон. Составить программу вычисления периметра многоугольника, в которой использовать подпрограмму вычисления координат точки пересечения двух прямых, заданных своими уравнениями, и подпрограмму вычисления расстояния между двумя точками, заданными своими координатами".

Моя попытка:
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
#include <iostream>
#include <math.h>
using namespace std;
 
int i, numl;
double x,y,d,P;
 
void slau(double values[2][3], double x, double y) //решение слау методом Крамера
{
    double delta = values[0][0] * values[1][1] - values[1][0] * values[0][1];
    double delta_x1 = values[0][1] * values[1][2] - values[1][1] * values[0][2];
    double delta_x2 = values[0][0] * values[1][2] - values[1][0] * values[0][2];
    x = delta_x1 / delta;
    y = delta_x2 / delta;
}
 
void lenghtandP(double tchk[100][2], double d, double P) //расстояние между точками
{
    for (i = 0; i < numl; i++)
        d = sqrt(pow((tchk[i + 1][1] - tchk[i][1]), 2) - pow((tchk[i + 1][2] - tchk[i][2]), 2));
    P += d;
}
 
void main()
{
    double dot1[2];
    double dot2[2];
    cout << "input number of lines\n";
    cin >> numl;
    double numofa[100];
    double numofb[100];
    double numofc[100];
    double tchk[100][2];
    for (i = 0; i < numl; i++) //Ввод массивов x,y,c для прямых
    {
        cout << "input " << i+1 << " equation coefficients ax+by=c\ninput a\n";
        cin >> numofa[i];
        cout << "input b\n";
        cin >> numofb[i];
        cout << "input c\n";
        cin >> numofc[i];
    }
    for (i = 0; i < numl; i++) //ёбанный ад
    {
        if (i = numl-1)
        {
            double values[2][3] =
            {
                { numofa[i], numofb[i], numofc[i] },
                { numofa[1], numofb[1], numofc[1] }
            };
            slau(values,x,y);
            tchk[i][1] = x;
            tchk[i][2] = y;
        }
        else
        {
            double values[2][3] =
            {
                { numofa[i], numofb[i], numofc[i] },
                { numofa[i + 1], numofb[i + 1], numofc[i + 1] }
            };
            slau(values,x,y);
            tchk[i][1] = x;
            tchk[i][2] = y;
        }
    }
    lenghtandP(tchk,d,P);
    cout << "Perimeter = " << P << endl;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru