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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 15:17   #1
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию PascalABC.NET - Программа, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика.

Помогите написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R задается как константа. Условный оператор if.

Спасибо.
Изображения
Тип файла: jpg График к задаче №3.JPG (7.6 Кб, 230 просмотров)

Последний раз редактировалось serge-first; 28.02.2013 в 10:14.
serge-first вне форума Ответить с цитированием
Старый 27.02.2013, 20:45   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

контакты в профиле! welcome!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.02.2013, 22:09   #3
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Привет! А у Вас нет обычной почты, скайпом и аськой я не пользуюсь.

Подскажите, может были уже подобные задачи?
serge-first вне форума Ответить с цитированием
Старый 27.02.2013, 22:28   #4
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Есть как минимум два пути решения задачи.. Один тупо в лоб, типа
Код:
if (x< -9) then ...
if (x > -9) and (x < -6) then ...
Лично мне нравится другой вариант: вывести уравнение этой кривой. Например, для правой части, которая больше нуля, там получится что-то типа y = (3 - x + 3*abs(x-3))/4. Ну это я так прикинул, потому что быстро.. чтобы для всей кривой вывести придется минут 10 посидеть с ручкой и бумагой.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 27.02.2013, 22:33   #5
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Будьте любезны, если будет время, помогите, пожалуйста!) Запустил, всё работа, некогда, надо было раньше начать решать, а в пн уже сессия и эта последняя задача. Осталось добить, но не выходит. В общем всё равно спасибо, буду пробовать!
serge-first вне форума Ответить с цитированием
Старый 27.02.2013, 23:08   #6
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Ну, времени у Вас еще много. Подумайте, какой функцией определяется эта кривая.
Решение "в лоб" пишется вообще за 1 минуту, его оставьте про запас.
Вот, например, первую от начала координат четверть окружности можно записать как sqrt( ( 9*(1-sgn(x)) - x^2 + x*abs(x) ) / 2)

Upd.
В общем, если Вам неинтересно, то не заморачивайтесь и пишите с кучей if'ов.. а если математику на уровне школы помните, то через функцию как-то покрасивее будет.
Μολὼν λαβέ

Последний раз редактировалось alexander13; 27.02.2013 в 23:13.
alexander13 вне форума Ответить с цитированием
Старый 28.02.2013, 10:14   #7
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

В условии задачи: условный оператор if
serge-first вне форума Ответить с цитированием
Старый 28.02.2013, 13:26   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы лично не стал выводить единую формулу
(во-первых, это сложнее, во-вторых, менее надёжно - шанс ошибиться очень высок, в-третьих, не универсально и не наглядно. )

да и думаю, что ожидается ответ такового вида (рабиваем график на отдельные участки, для каждого строим свою формулу):
Код:
if (x<-9) or (x>9) then WriteLn('Значение функции не определено!')
else begin
  if (x>=-9) and (x<=-6) then y := - sqrt( sqr(R) - sqr(x+6) );
  if (x>-6) and (x<=-3) then y := x + 3;
  if (x>-3) and (x<=0) then y := sqrt( sqr(R) - sqr(x) );
  if (x>0) and (x<=3) then y := 3 - x;
  if (x>3) and (x<=9) then y := 0.5 * (x - 3);
  WriteLn('y = ', y:0:4);  {выведем вещественный результат с 4-мя зн.после запятой}
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2013, 13:42   #9
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы лично не стал выводить единую формулу
(во-первых, это сложнее, во-вторых, менее надёжно - шанс ошибиться очень высок, в-третьих, не универсально и не наглядно. )
Сложнее, но зато интересно) И полезно, для общего развития.
А так-то да, через условный оператор и проще, и наглядней, и так ожидается, тут я согласен.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 28.02.2013, 14:15   #10
serge-first
Пользователь
 
Регистрация: 27.02.2013
Сообщений: 66
По умолчанию

Огромное СПАСИБО! Вы меня очень выручили! )))
serge-first вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить с заданной точностью значение функции, представленной в виде бесконечного ряда _ROBERT_ Помощь студентам 7 30.10.2012 21:57
Написать программу, которая вычисляет приближенное значение числа e с заданной точностью quade1992 Паскаль, Turbo Pascal, PascalABC.NET 3 08.11.2011 15:10
программа, которая по заданному значению соответствующего элемента вычисляла бы значение всех остальных элементов. Axsel145 Помощь студентам 0 24.09.2011 23:28
вычисление функции по значению аргумента specialist Паскаль, Turbo Pascal, PascalABC.NET 0 13.05.2011 23:08