Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Nassi
14 / 14 / 5
Регистрация: 24.06.2010
Сообщений: 29
#1

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

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

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

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

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

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

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

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

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

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

1
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2010, 20:11
Привет! Вот еще темы с решениями:

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

Программа с записью массива в файл
Здравствуйте, помогите, пожалуйста. Разработать программу, которая формирует...

Алгоритм Хаффмана с записью в файл
Коды Хаффмана (сжатие информации). Реализовать процедуры кодирования и...

Сортировка номеров машин с записью в файл
Задание было такое: Составить программу, определяющую вид регистрационного...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru