Главная страница
    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.038 c
15-1190694401
DelphiN!
2007-09-25 08:26
2007.10.21
Резрешить под пользователем SYSTEM запуск от имени ...


3-1182149600
ambhtr
2007-06-18 10:53
2007.10.21
Как скопировать информацию из таблицы на сайте?


2-1190862389
Mery
2007-09-27 07:06
2007.10.21
IBExpert


2-1191147505
Nikfel
2007-09-30 14:18
2007.10.21
Как получить список дисков с обозначениями.


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский