Главная страница
    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
Время: 4.305 c
2-1191087359
olevacho_
2007-09-29 21:35
2007.10.21
размеры формы


15-1190638144
Empleado
2007-09-24 16:49
2007.10.21
И почему я - не таракан?!


15-1190213316
sdubaruhnul
2007-09-19 18:48
2007.10.21
А какой там сайт был...


2-1190805253
smartleds
2007-09-26 15:14
2007.10.21
Господа еще один вопрос , сделал я на форме массив компонентов


5-1161949927
DevilDevil
2006-10-27 15:52
2007.10.21
Панели не сохраняются в DFM





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