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

Определить, сколько может быть построено квадратов с вершинами в заданых точках - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как добавить в код промежуточный результат? http://www.cyberforum.ru/cpp-beginners/thread730849.html
Нужно сделать так, чтобы программа выдавала промежуточный результат - к примеру, если число 100 (8х8 + 6х6) - чтобы это было выведено на экран (чтобы юзеру не пришлось считать в уме и проверять) + исправить - в ряде чисел, которые выдает программа, не должно быть 1 (не является суммой квадратов двух нат. чисел) //Дан интервал натуральных чисел . Напечатать на экране в все те // числа,...
C++ Переписать с языка с# на с++ Добрый день. Прошу помочь переписать программу с языка с# язык с++ Ниже мой исходник на с# using System; using System.Collections.Generic; using System.Windows.Forms; using System.Drawing; using System.Threading; public delegate void Del(bool z); public class First : Form http://www.cyberforum.ru/cpp-beginners/thread730831.html
C++ Вирус способный клонировать себя в Windows
Требуется создать класс объектов типа «файлы, которые способны клонировать себя (размножаться) в файловой системе Windows, меняя при этом своё имя» Возможно у кого-то есть готовые варианты или хотябы что-то может посоветовать?
C++ Как записать массив в файл в виде матрицы?
Объявить квадратные матрицы A,B,C,D размерностью 3х3 элемента, заполнить их случайными значениями в диапазоне -100..100. Вычислить матрицу E=A*B+C*D (сумму и произведение матриц определять сложением и произведением соответствующих элементов матриц). В программе определить функции сложения и произведения матриц. Полученную в результате матрицу записать в файл. #include <stdio.h> #include...
C++ Преобразовать все строки массива к нижнему регистру http://www.cyberforum.ru/cpp-beginners/thread730810.html
Преобразовать все строки массива к нижнему регистру
C++ частоты встречаемости английских символов в файле Напишите программу, которая определяет частоты встречаемости английских символов в файле подробнее

Показать сообщение отдельно
zerO2hacK
1 / 1 / 0
Регистрация: 06.03.2012
Сообщений: 72
14.12.2012, 05:16  [ТС]     Определить, сколько может быть построено квадратов с вершинами в заданых точках
про структуры понял. я и так собирался с ними возиться. не понял следующего:

Цитата Сообщение от Wolkodav Посмотреть сообщение
структуру вектор( в ней хронятся пары паралельных векторов, в таком примерно формате(точка начала, точка конца)
а если всего 3 точки? откуда взять пару параллельных векторов?

и да! я ж верно понял, что вектора ты имеешь ввиду математическую величину, а не контейнеры?

Добавлено через 2 минуты
пока что вот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    struct point{//структура для координат точек
        int x;
        int y;
    } iPoint[10];
    struct vector{//ст-ра векторов - расстояние м\у точками ???
        int b_point;//начало вектора
        int e_point;//конец
    };
    struct squares{
        //??
    };
    printf("Введите кол-во точек(до 10): ");
    int points;
    scanf("%i",&points);
    for (int i=0; i<points; i++){
        printf("\nВведите через пробел координаты %iй точки (x y): ",i+1);
        scanf("%i %i",&iPoint[i].x,&iPoint[i].y);
    }
Добавлено через 1 час 9 минут
Wolkodav,
надеюсь иду правильным путем:

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
    struct point{//структура для координат точек
        int x;
        int y;
    } iPoint[10];
    struct vector{//ст-ра векторов - расстояние м\у точками ???
        int begin;//начало вектора
        int end;//конец
        int length;//длинна вектора(из большего - меньшее)
        int amount;//сколько всего таких векторов
        char axis[1];//вдлоль какой оси
    } iVector[10],iamount;
    struct squares{
        //??
    };
    printf("Введите кол-во точек(до 10): ");
    int points;
    scanf("%i",&points);
    for (int i=0; i<points; i++){
        printf("\nВведите через пробел координаты %iй точки (x y): ",i+1);
        scanf("%i %i",&iPoint[i].x,&iPoint[i].y);
    }
    for (int j=0/*для вектора*/, i=0; i<points-1;  i++){
        for (int k=i+1; k<points-1; k++){
            if(iPoint[i].x == iPoint[k].x){
                iVector[j].length=(iPoint[i].y>iPoint[k].y)?(iPoint[i].y-iPoint[k].y):(iPoint[k].y-iPoint[i].y);//вычисляем длинну вектора
                iVector[j].begin=(iPoint[i].y>iPoint[k].y)?iPoint[i].y:iPoint[k].y;//присваиваем начало вектора
                iVector[j].end=(iPoint[i].y<iPoint[k].y)?iPoint[i].y:iPoint[k].y;//конец
                strcpy(iVector[j].axis,"Y");//указываем параллельно какой оси расположен вектор
                j++;
            }
            if(iPoint[i].y == iPoint[k].y){
                iVector[j].length=(iPoint[i].x>iPoint[k].x)?(iPoint[i].x-iPoint[k].x):(iPoint[k].x-iPoint[i].x);
                iVector[j].begin=(iPoint[i].x>iPoint[k].x)?iPoint[i].x:iPoint[k].x;
                iVector[j].end=(iPoint[i].x<iPoint[k].x)?iPoint[i].x:iPoint[k].x;
                strcpy(iVector[j].axis,"X");
                j++;
            }
            iamount.amount=j;
        }
    }
    for (int i=0; i<points; i++){
        printf("%iя точка, координаты - X:%i Y:%i\n",i+1,iPoint[i].x,iPoint[i].y);
    }
    for (int i=0; i<iamount.amount; i++){
        printf("Длинна %iго вектора - %i - его координаты - %c1:%i %c2:%i\n",i+1,iVector[i].length,iVector[i].axis,iVector[i].begin,iVector[i].axis,iVector[i].end);
    }
Добавлено через 7 минут
ввожу четыре точки, где по-сути должно быть 3 вектора. но изза
C++
1
for (int k=i+1; k<points-1; k++)
points-1...один вар-т не рассматривается....как быть?

и еще
C++
1
printf("Длинна %iго вектора - %i - его координаты - %c1:%i %c2:%i\n",i+1,iVector[i].length,iVector[i].axis,iVector[i].begin,iVector[i].axis,iVector[i].end);
я вроде прально вывожу char...а в итоге бред какой то в местах %c...см. скрин
[IMG]см. скрин[/IMG]

Добавлено через 7 минут
предпологаемаая структура квадратов:

C++
1
2
3
4
5
6
7
8
9
struct squares{
        int amount;//кол-во квадратов
        char numbers[4];//номера точек, образ. этот квадрат
        //координаты
        int x1;
        int x2;
        int y1;
        int y2;
    } iSquare[10];
Добавлено через 1 час 54 минуты
и я так понял....сколько будет таких векторов, столько и квадратов. осталось, вроде как, тока точки "достроить"(высчитать их координаты). вот так =)
 
Текущее время: 04:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru