Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2014, 02:00   #1
Jarebeck
Новичок
Джуниор
 
Регистрация: 18.09.2014
Сообщений: 2
Лампочка Работа с Pascal, помощь школьнику - задача на определение принадлежности точки и вычисления системы уравнений

Перешел в новую школу, а там уклон на икт, не все догоняю...
С первой частью разобрался, а вот что делать с U и как его считать я без понятия.
_______________
Даны три целых числа A, B, C (1,2,3). Определить значения переменных X, Y, Z. Вывести их на экран дисплея. Пусть D1 и D2 - заштрихованные части плоскости (см. рисунок ниже), и пусть U определяется как функция X и Y.
Вывести U на экран дисплея.


______________________________
Пока встал на этом:


Заранее благодарю Вас за любую помощь.
Jarebeck вне форума Ответить с цитированием
Старый 18.09.2014, 07:28   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Процедуры и функции проходили? Тут лучше бы разбивать программу на функции.
Работа с U осуществляется аналогично - через If. В данном случае тебе нужно будет проверять находится ли точка с координатами (то есть две координаты - в условии будет что-то вроде if (x>...) and (y>...) then ...) в указанной области координатной плоскости, ну и соответственно выполнять свои синусы и косинусы. Условия сложно представлять сразу и потому наверно будут ошибки. Поэтому я предлагаю каждое из трех условий для U сделать ввиде функции. Причем последняя функция будет опираться на две предыдущие (с областями D1 и D2)
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 18.09.2014 в 07:30.
Utkin вне форума Ответить с цитированием
Старый 18.09.2014, 07:31   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Привет
Смотри, всё очень просто..
Код:
else begin x := a; y := b; z := c;
       if (x*x+y*y <= 1) and not ((x<0) and (y < 0)) then u := cos(x*y)
       else if (x < 0) and (y < 0) and (y <= -x-2) then u := sin(x*y)
       else u := z+5
end;
Внимание! Я не проверял
Poma][a вне форума Ответить с цитированием
Старый 18.09.2014, 07:36   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
if (x*x+y*y <= 1) and not ((x<0) and (y < 0)) then u := cos(x*y)
Сомнительно. Круг очертили, но вот условие x>0 и y>0, наверно не та четверть... Мне кажется -0,5 и -0,5 для второй части условия не подойдет. Но на плоскости удовлетворяет условию.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.09.2014, 07:57   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

D1 это единичная окружность с центром в точке (0, 0). Уравнение окружности с центром в 0 радиуса r задается уранением x*x + y*y= r*r
Существуют следующие случаи:
x>0, y>0 -> строим окружность по точкам с заданным шагом eps / dx
x>0, y<0 -> окружность не строится и четверть окружности не учитывается
x<0, y<0 -> строится окружность по точкам
x<0, y>0 -> строится окружность по точкам
Для вычисления квадратного корня используется модуль math и функция sqrt.

Для вывода графики в Pascal используется модуль graph.
Инициализация графики на моем компьютере в среде free Pascal производится следующим образом
Код:
program c;
uses crt, graph;
var gd, gm: integer; pth: string;
begin
gd:= detect; gm:=0; pth:='C:\fpc\2.6.2\bin\i386-win32';
InitGraph(gd, gm, pth);
end.
Точку на экран выводит процедура PutPixel(x, y, color);

D2 ограничивается прямой, проходящей через 2 точки (-2, 0), (0, -2).
Уравнение прямой задается в виде y = kx+b. Чтобы найти k и b , составляется система из двух уравнений с двумя неизвестными
0=k*(-2) + b
-2=k*0 + b
Отсюда следует, что b = -2, k = -1 то есть уравнение прямой с угловым коэффициентом y= -x-2. По этому уравнению с заданной точностью eps, dx строится прямая на отрезке от (-2, 0) до (0,-2).
Расстояние в декартовой системе координат между точками (x1,y1) и (x2, y2) вычисляется по формуле r= sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
Вычисление расстояния необходимо, чтобы определить принадлежит ли точка заданной части окружности или нет.

Вычисление синуса и косинуса производится функцими sin и cos
U это множество из трех точек
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"

Последний раз редактировалось challengerr; 18.09.2014 в 08:05.
challengerr вне форума Ответить с цитированием
Старый 18.09.2014, 14:47   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сомнительно
Угу.. Знак спутал..
Вот так кажется будет прально
if (x*x+y*y <= 1) and not ((x > 0) and (y < 0)) then u := cos(x*y)
Poma][a вне форума Ответить с цитированием
Старый 18.09.2014, 19:28   #7
Jarebeck
Новичок
Джуниор
 
Регистрация: 18.09.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Привет
Смотри, всё очень просто..
Код:
else begin x := a; y := b; z := c;
       if (x*x+y*y <= 1) and not ((x<0) and (y < 0)) then u := cos(x*y)
       else if (x < 0) and (y < 0) and (y <= -x-2) then u := sin(x*y)
       else u := z+5
end;
Внимание! Я не проверял
Да, да, да! Точно, спасибо! Идеально заработала, за исключением
Код:
...and not ((x<0) and (y < 0)) then...
, там нужно было
Код:
(x>0) and (y < 0)
т.к. 4я четверть
Jarebeck вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на определение принадлежности точки области. Zugree Помощь студентам 3 27.12.2013 09:01
Определение принадлежности точки druger Помощь студентам 1 18.09.2011 16:45
Решение системы нелинейных уравнений методом итераций на Pascal Кушников Помощь студентам 0 25.02.2011 12:41
Определение принадлежности точки и система в паскале neomax38 Помощь студентам 1 17.09.2010 15:01
Определение принадлежности точки к сектору. Vistar Паскаль, Turbo Pascal, PascalABC.NET 12 09.05.2009 20:46