Форум: "Прочее";
Текущий архив: 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