0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 3
1

Написать программу и составить блок-схему для функции, заданной в виде графика

20.10.2014, 14:44. Показов 6104. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно мне разобраться с задачей. По возможности объясните или дайте ссылку на объяснение. А то, о том как это делать мне в универе не объяснили или объяснили непонятно.

Нужно написать программу и составить блок схему, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R вводится с клавиатуры.
Написать программу и составить блок-схему для функции, заданной в виде графика
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2014, 14:44
Ответы с готовыми решениями:

Для функции y=f(x) заданной графически построить аналитическую зависимость.Составить блок схему и программу вычисления величины y при заданном значен
Для функции y=f(x) заданной графически построить аналитическую зависимость.Составить блок схему и...

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

Написать программу и создать блок-схему вычисления функции в заданной точке
Составить программу для нахождения значение функции в точке а. Значение а вводится с клавиатуры ...

Составить блок-схему и программу вычисления значения функции + написать программу
Прошу решить в качестве проверки. Нужно сдать в понедельник. Буду очень благодарен! Заранее...

6
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 7
21.10.2014, 19:51 2
График состоит из четырёх кусков:
1. Прямая y = (-1/2)*x
2. Дуга окружности или просто парабола x^2+(y-2)^2=4
3. Дуга .... (x-2)^2+y^2=4
4. Прямая y=-x
Поэтому алгоритм таков.По введенному значению аргумента (т.е. x) определяешь, к какому сегменту, куску графика относится данная точка.
Фрагмент таков:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{...}
readln(x);
if x <0 then {первая прямая y=(-1/2)*x}
 begin
   y := (-1/2)*x
 end
else
 if (x>=0) and (x<=2) then {первая парабола}
  begin
    y := sqrt (sqr(R)-sqr(x))+2
  end
 else
   if (x>2) and (x<=4) then {вторая парабола}
    begin
      y := sqrt (sqr(R)-sqr(x-2))
    end 
   else {вторая прямая}
     begin
       y := -x
     end
0
Модератор
9853 / 5223 / 3304
Регистрация: 17.08.2012
Сообщений: 15,974
21.10.2014, 22:14 3
Цитата Сообщение от tovit Посмотреть сообщение
из четырёх кусков
Нет, tovit, я считаю, из шести. Функция при x<4 и x>2R+1 никак не обозначена (ни сплошной основной линией на оси абсцисс, ни штриховой линией, продолжающей крайние точки графика), следовательно, функция определена только на участке [4..2R+1]. 2R+1 потому, что последний участок функции, по логике вещей, должен смещаться: функция не может иметь более одного значения для одного аргумента, а R меняется.
Цитата Сообщение от tovit Посмотреть сообщение
парабола
Это не парабола, это часть окружности.
Цитата Сообщение от tovit Посмотреть сообщение
y := sqrt (sqr(R)-sqr(x-2))
Должно сдвигаться в зависимости от R. См. выше.

Не по теме:

Цитата Сообщение от Prayler Посмотреть сообщение
А то, о том как это делать мне в универе не объяснили или объяснили непонятно.
Исходя из этого утверждения, возникает вполне логичное умозаключение, что Вы - лентяй. В современном мире нет никаких проблем с доступом к не секретной информации, следовательно, Вы либо не желаете что-либо изучать, либо считаете, что на это не стоит тратить времени. Может быть, я не прав. Однако, сомневаюсь, что Вы можете привести достойные аргументы, чтобы рассеять мои подозрения. Всего доброго.

0
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 7
22.10.2014, 09:09 4
Cyborg Drone, согласен с замечаниями.
0
Модератор
9853 / 5223 / 3304
Регистрация: 17.08.2012
Сообщений: 15,974
22.10.2014, 10:25 5
Вы ещё ошиблись с формулами для первого сектора и второй прямой... И незачем одинокие операторы в begin..end заключать. И незачем проверять уже проверенное.
Вот, подправил программку... Переменная y не требуется. Примечания: сложение дешевле умножения; x * x пишется короче, чем sqr(x)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var x, r: real;
begin
  write('x = '); readln(x);
  repeat
    write('R = '); readln(r);
    if r <= 0 then writeln('Invalid radius, reenter.')
  until r > 0;
  if (x < -4) or (x > r + r + 1)
    then writeln('y is undefined') {за пределами графика}
    else begin
      write('y = ');
      if x < 0
        then writeln(-x / 2:0:8) {первая прямая}
        else if x < r
          then write(r - sqrt(r * r - x * x):0:8) {первый сектор}
          else if x < r + r
            then writeln(sqrt(r * r - sqr(x - r)):0:8) {второй сектор}
            else writeln(r + r - x:0:8) {вторая прямая}
    end;
  readln
end.
0
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 7
22.10.2014, 11:31 6
Я не ошибся с формулой для первого сектора. То же самое. Единственный недостаток, что я в приведенной мной формуле использовал (по запарке) 2, а не общий параметр R. Впрочем, раскройте скобки и поймете, что наши формулы идентичны.
Насчёт использования операторных скобок begin..end.
Разумеется, одиночные операторы не надо в них заключать. Что же вы меня совсем уж за плохого держите. Я просто как бы набрасывал общий шаблон, подразумевая, что, может, что еще там будет помещено.
Ну и, конечно, касаемо замены возведения в квадрат на умножение на себя. Конечно. Общеизвестно. Но, опять же, из соображений наглядности лучше в показательных программах использовать буквальные способы, т.е. в данном случае - возведение в степень.
0
Модератор
9853 / 5223 / 3304
Регистрация: 17.08.2012
Сообщений: 15,974
22.10.2014, 11:44 7
Цитата Сообщение от tovit Посмотреть сообщение
Я не ошибся с формулой для первого сектора
Нет, ошиблись. Окружность при y≤y0 описывается формулой

https://www.cyberforum.ru/cgi-bin/latex.cgi?y=y_0-\sqrt{R^2-(x - x_0)^2},

это при y≥y0 будет

https://www.cyberforum.ru/cgi-bin/latex.cgi?y=y_0+\sqrt{R^2-(x - x_0)^2}.

С остальным согласен. Это дело вкуса, и, может быть, требуется для наглядности.
0
22.10.2014, 11:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2014, 11:44
Помогаю со студенческими работами здесь

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

Составить блок-схему и программу для нахождения значений функции
Составить блок-схему и программу для нахождения значений функции: ...

Составить блок-схему алгоритма и программу для вычисления функции
Нужна помощь в решении Составить блок-схему алгоритма и программу для вычисления по формуле для...

Написать алгоритм, составить блок-схему и отладить программу для определения суммы
Помогите, пожалуйста решить задачу. Нужно написать алгоритм, составить блок-схему и отладить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru