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

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

Восстановить пароль Регистрация
 
Nassi
 Аватар для Nassi
14 / 14 / 2
Регистрация: 24.06.2010
Сообщений: 29
01.07.2010, 13:38     Поиск вершин квадрата с записью в файл #1
Даны координаты двух вершин (x1,y1) и (x2,y2) некоторого квадрата. Необходимо найти возможные координаты других его вершин.
-Ввод из файла(построчно):
1) x1,y1
2) x2,y2
-Вывод: точки в порядке возростания x, каждая точка - в отдельной строке. Если x равны, то - смотреть по y.

Помогите пожалуйста, а то у меня ничего не выходит....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2010, 13:38     Поиск вершин квадрата с записью в файл
Посмотрите здесь:

C++ Поиск вершин квадрата
Сортировка номеров машин с записью в файл C++
C++ Определения координах вершин квадрата
C++ Поиск квадрата
Площадь квадрата равна S. Вычислить сторону квадрата а, диагональ d и площадь S1 описанного около этого квадрата круга C++
Ошибка с записью в файл C++
Определить координаты двух вершин квадрата по еще двум известным C++
Алгоритм Хаффмана с записью в файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
01.07.2010, 20:11     Поиск вершин квадрата с записью в файл #2
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;
}
Yandex
Объявления
01.07.2010, 20:11     Поиск вершин квадрата с записью в файл
Ответ Создать тему
Опции темы

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