Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
14 / 14 / 5
Регистрация: 24.06.2010
Сообщений: 29
1

Поиск вершин квадрата с записью в файл

01.07.2010, 13:38. Показов 1329. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны координаты двух вершин (x1,y1) и (x2,y2) некоторого квадрата. Необходимо найти возможные координаты других его вершин.
-Ввод из файла(построчно):
1) x1,y1
2) x2,y2
-Вывод: точки в порядке возростания x, каждая точка - в отдельной строке. Если x равны, то - смотреть по y.

Помогите пожалуйста, а то у меня ничего не выходит....
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2010, 13:38
Ответы с готовыми решениями:

Поиск вершин квадрата
мне надо найти остальные коорденаты вершин квадрата если известны 2 противоположных вершыны,...

Определения координах вершин квадрата
подскажите пожайлуста как найти координаты противоположных углов квадрата зная координаты других...

Определить координаты двух вершин квадрата по еще двум известным
)У квадрата АВСD на плоскости известны координаты двух противоположных вершин А и С. определить...

Площадь квадрата равна S. Вычислить сторону квадрата а, диагональ d и площадь S1 описанного около этого квадрата круга
Напишите код в C++ Пожалуйста :confusion:

1
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
01.07.2010, 20:11 2
Лучший ответ Сообщение было отмечено Nassi как решение

Решение

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
88
89
/////////////////////////////////////////////////////////////////////////////////
//  Даны координаты двух вершин (x1,y1) и (x2,y2) некоторого квадрата. 
//  Необходимо найти возможные координаты других его вершин.
//  -Ввод из файла(построчно):
//  1) x1,y1
//  2) x2,y2
//  -Вывод: точки в порядке возрaстания x, каждая точка - в отдельной строке. 
//  Если x равны, то - смотреть по y.
/////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <complex>
#include <vector>
#include <algorithm>
#include <fstream>
#include <string>
#include <sstream>
 
typedef double                   T_coord;
typedef std::complex<T_coord>    T_vershina;
typedef std::vector<T_vershina>  T_vershiny;
typedef std::string              T_str;
/////////////////////////////////////////////////////////////////////////////////
void check_file
    (
        const std::ios_base&  file,        
        const T_str&          file_name
    )
{
    if(!file) 
    {        
        std::cerr << "Невозможно открыть файл \"" 
                  << file_name 
                  << "\""
                  << std::endl;
        exit(EXIT_FAILURE);
    }
}
/////////////////////////////////////////////////////////////////////////////////
void  put_ostalnye_versh_kvadrata_in_file
    (
        T_vershina     z1,
        T_vershina     z2, 
        std::fstream&  file
    )
{    
    T_vershina  i(0, 1);
    T_vershiny  vershiny;
    vershiny.push_back(z1 + (z2 - z1) * i);
    vershiny.push_back(z1 + (z2 - z1) / i);
 
    vershiny.push_back(z2 + (z1 - z2) * i);
    vershiny.push_back(z2 + (z1 - z2) / i);
 
    struct T_uporyad_po_XY
    {
        bool operator() (T_vershina v1, T_vershina v2)
        {
            return v1.real() < v2.real() 
                   || v1.real() == v2.real()
                      && v1.imag() < v2.imag();
        }
    };
    std::sort(vershiny.begin(), vershiny.end(), T_uporyad_po_XY());
    std::copy(vershiny.begin(), vershiny.end(), 
              std::ostream_iterator<T_vershina>(file, "\n"));              
}
/////////////////////////////////////////////////////////////////////////////////
void  read_versh_from_file(T_vershina&  versh, std::fstream& file)
{
    T_str  cur_str;
    getline(file, cur_str);
    std::istringstream  in_potok("(" + cur_str + ")");         
    in_potok >> versh;  
}
/////////////////////////////////////////////////////////////////////////////////
int main()
{  
    T_str   filename = "D:\\files_for_cpp_pr\\versh_kvadrata.txt";    
    std::fstream  file(filename.c_str(), std::ios::in|std::ios::out|std::ios::app);
    check_file(file, filename);   
    T_vershina z1;
    read_versh_from_file(z1, file);
    T_vershina z2;
    read_versh_from_file(z2, file);
    file.clear();
    file.seekp(std::ios::end);
    put_ostalnye_versh_kvadrata_in_file(z1, z2, file);
    return 0;
}
1
01.07.2010, 20:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2010, 20:11
Помогаю со студенческими работами здесь

Поиск квадрата
Помогите пожалуйста люди добрые :) Даны координаты n точек (xi,yi) с целыми значениями, i=1,2,…,n...

Матрица с записью в файл С++
Написать программу на С++, работа с матрицей, по этой матрице создать цикл: int mas = { { 0, 1,...

Проблема с записью в файл
Не умею работать с выводом в файл в С++, как сделать чтобы записывало результат в txt, это...

Ошибка с записью в файл
Итак, мне в данной части кода не работает запись, т.е. когда я выбираю запись, то у меня сразу же...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru