Главная страница
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.027 c
15-1190184119
pavel_guzhanov
2007-09-19 10:41
2007.10.21
Установка клиентской части оракла


2-1190880438
F@T@L_Err0r
2007-09-27 12:07
2007.10.21
messagedlg


3-1181547201
Krants
2007-06-11 11:33
2007.10.21
Разрешить изменения текста в TDBEdit


2-1190891450
Yogan
2007-09-27 15:10
2007.10.21
Многопоточность


15-1190294594
Константинов
2007-09-20 17:23
2007.10.21
Э-э-э посоветуйте програмку для учета трафика