Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Point n Grafik   Найти похожие ветки 

 
ElectriC ©   (2007-09-21 17:50) [0]

Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной (серой) плоскости. Рисунок графика: http://gaprog.narod.ru/1.jpg
Вопрос: По какой формуле определяется, принадлежность точки участку графика от -1 до 1?
P.S. Участок что > 1 или < -1 это понятно как проверить, принадлежит ли ему точка.


 
Zeqfreed ©   (2007-09-21 18:04) [1]

Тангенс найти?


 
Zeqfreed ©   (2007-09-21 18:19) [2]

#include <stdio.h>
#include <stdlib.h>

#define ABS(x) ((x < 0)? -x : x)

int main()
{
       char buf[80][20] = {};
       int i, j, x, y;
       float tg;

       for (i = 0; i < 80; i++) {
               for (j = 0; j < 20; j++) {
                       x = i - 40;
                       y = 20 - j;
                       tg = ABS(x) / y;

                       if (tg < 1)
                               buf[i][j] = "1";
                       else
                               buf[i][j] = " ";        
               }
       }

       for (j = 0; j < 20; j++) {
               for (i = 0; i < 80; i++) {
                       putchar(buf[i][j]);
               }
               putchar("\n");
       }

       return 0;
}


Во. Даже с примером наглядным %)


 
Denis_ ©   (2007-09-21 18:34) [3]


> Zeqfreed ©   (21.09.07 18:19) [2]

Delphimaster...


 
Zeqfreed ©   (2007-09-21 18:43) [4]

> Denis_ ©   (21.09.07 18:34) [3]

А. Извиняюсь.

program tangent;
(* {$APPTYPE CONSOLE} *)

var
       buf : array[-40..39, 1..19] of Byte;
       i, j : Integer;
       tg : Single;

begin
       for i := Low(buf) to High(buf) do
               for j := Low(buf[0]) to High(buf[0]) do begin
                       tg := (abs(i) / j);
                       if (tg < 1) then
                               buf[i, j] := Ord("1")
                       else
                               buf[i, j] := Ord(" ");
               end;
       
       for j := High(buf[0]) downto Low(buf[0]) do begin
               for i := Low(buf) to High(buf) do begin
                       Write(Chr(buf[i, j]));
               end;
               WriteLn();
       end;
end.


 
oldman ©   (2007-09-21 18:59) [5]


> ElectriC ©   (21.09.07 17:50)  
> Даны действительные числа x, y. Определить, принадлежит
> ли точка с координатами x, y заштрихованной (серой) плоскости.


У заштрихованной плоскости функция есть?
Если есть, проверить лень, подставив х и y в формулу?


 
ElectriC ©   (2007-09-21 19:40) [6]


> oldman ©

У заштрихованной плоскости нет функции.

> Zeqfreed ©

Мне как раз на TС++ и надо было:))
Я так понял, когда tg < 1, тогда точка находится в плоскости от -1 до 1, да?


 
Zeqfreed ©   (2007-09-21 19:54) [7]

> ElectriC ©   (21.09.07 19:40) [6]

Когда tg < 1, то угол лежит в нужном диапазоне.


 
ElectriC ©   (2007-09-21 21:48) [8]

Если я правильно понял, то у меня получилось следующее:

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

#define INP "Координаты точки:"
#define YES "Принадлежит"
#define NOT "Не принадлежит"
#define ABS(x) ( ( x < 0 ) ? -x : x )

void main ( )
{
 float x, y, tg;

 clrscr( );

 cout << INP << endl;
 cout << "x="; cin >> x;
 cout << "y="; cin >> y;

 cout << endl;

 tg = ABS( x ) / y;

 if ( ( ( x <= -1 ) || ( x >= 1 ) ) && ( y >= 1 ) )
   cout << YES;
 else
 if ( ( tg < 1 ) && ( y >= 0 ) )
   cout << YES;
 else
   cout << NOT;

 fflush ( stdin );
 getchar( );
}
P.S.Хотя работает не совсем корректно. Что я неправильно делаю?


 
Zeqfreed ©   (2007-09-21 22:43) [9]

Не совсем корректно это как? Можно самому уж головой подумать, отладить и задать конкретные вопросы.


 
Ping   (2007-09-21 22:56) [10]

У заштрихованной плоскости нет функции.

Функция есть у линии, ограничивающей область снизу.


      1, при x от - бесконечности до -1
y = |x|, при x от -1 до 1
      1, при x от 1 до плюс бесконечности


 
ElectriC ©   (2007-09-22 02:04) [11]


> #define ABS(x) ( ( x < 0 ) ? -x : x )

Кстати, я не совсем понял это выражение т.б. что такое "?", ":".
Можете мне разъяснить?


 
Zeqfreed ©   (2007-09-22 08:00) [12]

> ElectriC ©   (22.09.07 02:04) [11]

Это макроопределение, заменяющее вхождения ф-ции ABS соответствующим тернарным оператором.


 
ElectriC ©   (2007-09-22 13:23) [13]

Всё. Спасибо. Ветку можно закрыть.



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
15-1190281655
Flikik
2007-09-20 13:47
2007.10.21
Delphi


2-1190532007
San1712
2007-09-23 11:20
2007.10.21
Как записать в реестр параметр типа REG_DWORD ?


15-1190384723
мастерПакость
2007-09-21 18:25
2007.10.21
вопрос по HTML


1-1186312251
fd979
2007-08-05 15:10
2007.10.21
ТЕlSideBar


2-1191156516
Kostya2x
2007-09-30 16:48
2007.10.21
Разбор текста с "тегами" и вывод его на RichEdit