Есть две системы координат
От: olimp_20  
Дата: 02.08.15 11:04
Оценка:
Условие задачи
По моему мнению, формулы преобразования координат следующие:

из 1-ой системы во 2-ую
x2 = (x1-A)/4
y2 = y1-B

из 2-ой в 1-ую
x1 = 4*x2+A
y1 = y2+B

Проблема: 1ый тест -правильно, остальные, №№2-8, — ошибка. В чем может быть проблема? Формулы неправильные или типы данных неправильно выводит программа:
  Код
#include <stdio.h>

struct Point{
    double x, y;
};

Point coord1To2(Point);
Point coord2To1(Point);

double A, B, C, D;

//-------------------------------------------------
int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    Point p1, p2;
    scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &A, &B, &C, &D, &p1.x, &p1.y, &p2.x, &p2.y);
    
    Point res;

    res = coord1To2(p1);
    printf("%lE %lE ", res.x, res.y);    

    res = coord2To1(p2);
    printf("%lE %lE\n", res.x, res.y);

    return 0;
}
//-------------------------------------------------

Point coord1To2(Point p){
    Point ans;
    ans.x = (p.x-A)/4.0;
    ans.y = p.y-B;
    return ans;
}

Point coord2To1(Point p){
    Point ans;
    ans.x = 4.0*p.x+A;
    ans.y = p.y+B;
    return ans;
}
Re: Есть две системы координат
От: andy1618 Россия  
Дата: 02.08.15 15:16
Оценка: 2 (1)
Здравствуйте, olimp_20, Вы писали:

_>Условие задачи


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


_> По моему мнению, формулы преобразования координат следующие:


_>из 1-ой системы во 2-ую

_>x2 = (x1-A)/4
_>y2 = y1-B

_>из 2-ой в 1-ую

_>x1 = 4*x2+A
_>y1 = y2+B


Если я правильно понял, там вторая система координат — просто сдвиг и масштабирование по X и Y.
Соответственно, в формулах преобразований должны участвовать все 4 переменные A,B,C,D.
Re[2]: Есть две системы координат
От: olimp_20  
Дата: 02.08.15 17:11
Оценка:
Здравствуйте, andy1618, Вы писали:

_>>из 1-ой системы во 2-ую

_>>x2 = (x1-A)/4
_>>y2 = y1-B

_>>из 2-ой в 1-ую

_>>x1 = 4*x2+A
_>>y1 = y2+B


A>Если я правильно понял, там вторая система координат — просто сдвиг и масштабирование по X и Y.

A>Соответственно, в формулах преобразований должны участвовать все 4 переменные A,B,C,D.


Действительно, не "4" а "(С-А)"; аналогично для у-координаты.
Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.