Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.048 c
9-1161684252
Ekzot
2006-10-24 14:04
2007.10.21
Поворот четырёхугольника.


2-1191162447
Pacific
2007-09-30 18:27
2007.10.21
idftp


2-1190535758
Jimmy
2007-09-23 12:22
2007.10.21
Сохранение в emf


1-1186491223
Kolan
2007-08-07 16:53
2007.10.21
Как сделать TabEnabled у PageControl а?


2-1190627006
misha_gr
2007-09-24 13:43
2007.10.21
TClientDataSet.Locate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский