Задача по С++

Тема в разделе "Другие языки", создана пользователем santer_ua, 28 мар 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. santer_ua

    santer_ua Создатель

    Регистр.:
    4 мар 2009
    Сообщения:
    33
    Симпатии:
    19
    Помогите решить задачу по С++.Условие:
    Задан квадрат с координатами 2<=x<=4.2<=y<=4 если точка М (x,y) показывает в средину квадрата то запомнить координаты етой точки.
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    это что за такая система записи координат?
    и что за точка M?
    что-нибудь о ней, кроме того что она "указывает" в середину квадрата, известно?
    какое-то непонятное улсовие.
    объясните своими словами, пожалуйста
     
  3. santer_ua

    santer_ua Создатель

    Регистр.:
    4 мар 2009
    Сообщения:
    33
    Симпатии:
    19
    Я так понял что нужно найти все возможные координаты средины квадрата.
     
  4. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    ситуация немного проясняется, но не совсем.
    вы изменили немного условие.
    но понятнее от этого не стало.
    квадрат можно представить 4-мя координатами, т.е. 8 числами (минимально квадрат можно задать 5-ю числами)

    каким образом задается квадрат?
    я так понимаю то неравенство - диапазон значений координат(между прочим то неравенстов неверно.прокрьте еще раз)
    но координаты-то должны быть откуда-то!
    найти все возможные координаты центра невозможно дискретными методами
    потому что их бесконечное множество
     
  5. santer_ua

    santer_ua Создатель

    Регистр.:
    4 мар 2009
    Сообщения:
    33
    Симпатии:
    19
    Подправил условия задачи.Дано неравенство,с помощу неравенства нужно найти все возможные значения х,у
     
  6. tonsils

    tonsils Создатель

    Регистр.:
    2 янв 2008
    Сообщения:
    47
    Симпатии:
    20
    Я подозреваю что условие на самом деле выглядит так:
    2<=x<=4
    2<=y<=4
    Тогда становится ясно о каком квадрате идет речь. И очевидно, что середина его будет точкой (3;3).

    Остается загадкой, причем тут С++? :)
     
  7. santer_ua

    santer_ua Создатель

    Регистр.:
    4 мар 2009
    Сообщения:
    33
    Симпатии:
    19
    Условие такое как я записал.
    Нужно написать программу чтоб она сама решала такую задачу
     
  8. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    в середину квадрата или же лежит в квадрате, потомучто если в пересечение диогоналей то решить задачу без четко заданных координат х и у квадрата невозможно
     
  9. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    ешкин-кот.
    я точку между неравенствами воспринимал как десятичный разделитель.пишите яснее(после точки-конца предложения принято ставить пробел)

    условие в таком виде, как вы его записали все равно остается непонятным
    [telepatemode]
    предполагаю, что пользователем вводится 4 координыт квадрата, затем находится его середина, и проверяется на вхождение в указанные диапазоны.
    код тогда будет таков:
    Код:
    #include <iostream>
    
    #define min_xm 2
    #define max_xm 4
    
    #define min_ym 2
    #define max_ym 4
    
    
    using namespace std;
    int main(void)
    {
    float x1,x2,x3,x4,y1,y2,y3,y4;
    float min_x,max_x,min_y,max_y;
    float xm,ym;
    cout<<"Vavedite 4 kkordinaty"<<endl;
    cin>>x1>>y1;
    cin>>x2>>y2;
    cin>>x3>>y3;
    cin>>x4>>y4;
    
    
    min_x=x1;
    max_x=x1;
    min_y=y1;
    max_y=y1;
    //-------------------------------------
    if(x2<min_x)
    	min_x=x2;
    if(x2>max_x)
    	max_x=x2;
    if(y2<min_y)
    	min_y=y2;
    if(y2>max_y)
    	max_y=y2;
    //-------------------------------------
    if(x3<min_x)
    	min_x=x3;
    if(x3>max_x)
    	max_x=x3;
    if(y3<min_y)
    	min_y=y3;
    if(y3>max_y)
    	max_y=y3;
    //-------------------------------------
    if(x4<min_x)
    	min_x=x4;
    if(x4>max_x)
    	max_x=x4;
    if(y4<min_y)
    	min_y=y4;
    if(y4>max_y)
    	max_y=y4;
    
    cout<<min_x<<min_y<<max_x<<max_y<<endl;
    
    xm=(min_x+max_x)/2;
    ym=(min_y+max_y)/2;
    
    if( (xm>min_xm && xm<max_xm) && (ym>min_ym && ym<max_ym) )
    	cout<<"M: "<<xm<<" "<<ym<<endl;
    else
    	cout<<"M ne vhodit v diapazon"<<endl;
    
    cin.get();
    cin.get();
    return 0;
    }
    
    [/telepatemode]
     
    santer_ua нравится это.
  10. santer_ua

    santer_ua Создатель

    Регистр.:
    4 мар 2009
    Сообщения:
    33
    Симпатии:
    19
    Спасибо за предосталенный вариант.Я написал условие такое какое дал мне препод( Мне кажется что он сам не понял что мне дал).Всем спасиба за ответы.:tcl:
     
Статус темы:
Закрыта.