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

Вывести таблицу значений функции заданной в виде графика

14.06.2020, 17:53. Показов 1312. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для функции Y = f(X), график которой приведен в Вашем индивидуальном задании, вывести на экран значения Y для Х = 0, 0.25, 0.5, ... 19.75. Необязательное для выполнения дополнительное требование - получить на экране график функции средствами текстового режима.
Вывести таблицу значений функции заданной в виде графика


Помогите пожалуйста, очень срочно нужно!)
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2020, 17:53
Ответы с готовыми решениями:

Вывести таблицу значений функции заданной в виде графика
Здравствуйте, помогите пожалуйста разобраться Задание: Вычислить и вывести на экран в виде...

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

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

Напечатать таблицу значений функции заданной в виде графика. Ошибка
Задача: Напечатать таблицу значений функции заданной в виде графика(в приложении) при изменении...

10
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 1
14.06.2020, 18:08 2
Столкнувся с такой же проблемой! что то не могу понять.
0
317 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
14.06.2020, 21:34 3
Могу предложить несколько решений
1. Для фанатов ничего не делать pip install tensorflow(пэйтон)
2. Напишите ручками перцептрончик с методом обратного распространения ошибочки
3. Сами определите глазами, какие тут функции и просто занесите в программу готовые ответы

Добавлено через 1 минуту
Это я к тому, что от вас требуют самим определить какие тут графики и уже, основываясь на этом давать ответ
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
14.06.2020, 22:58 4
Цитата Сообщение от Chiller Посмотреть сообщение
получить на экране график функции средствами текстового режима.
может создать, а не получить?
Цитата Сообщение от Chiller Посмотреть сообщение
Для функции Y = f(X), график которой приведен в Вашем индивидуальном задании
формула дана или у нас только рисунок?

Добавлено через 27 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
 
int main()
{
    for (double x = 0.0; x < 20.0; x += 0.25)
    {
        double mod_x = std::fmod(x, 4.0); // 0 - 4.0 - кол-во уникальных графиков
 
        if (mod_x >= 0.0 && mod_x <= 1.0) { std::cout << "y: " << 2 << " x: " << x; } // линия y = const
        else if (mod_x >= 1.0 && mod_x <= 3.0) { std::cout << "y: " << std::sqrt(1 - (std::fmod(x, 2.0) - 2) * (std::fmod(x, 2.0) - 2)) << " x: " << x; } // половина круга
        else if (mod_x <= 4.0 && mod_x >= 3.0) { std::cout << "y: " << std::fmod(x, 1.0) << " x: " << x; } // линейное уравнение y = x % 1 
        std::cout << std::endl;
    }
}
вот моё решение, пожалуйста, вначале проверьте

Добавлено через 25 минут
ОТМЕНА
вот с нормальной второй формулой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
 
int main()
{
    for (double x = 0.0; x < 20.0; x += 0.25)
    {
        double mod_x = std::fmod(x, 4.0); // 0 - 4.0 - кол-во уникальных графиков
 
        if (mod_x >= 0.0 && mod_x <= 1.0) { std::cout << "y: " << 2 << " x: " << x; } // линия y = const
        else if (mod_x >= 1.0 && mod_x <= 3.0) { std::cout << "y: " << -std::sqrt(1 - (std::fmod(x - 1, 2.0) - 1) * (std::fmod(x - 1, 2.0) - 1)  ) << " x: " << x << std::fmod(x, 2.0); } // половина круга
        else if (mod_x <= 4.0 && mod_x >= 3.0) { std::cout << "y: " << std::fmod(x, 1.0) << " x: " << x; } // линейное уравнение y = x % 1 
        std::cout << std::endl;
    }
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.06.2020, 01:37 5
AndryS1, что это у Вас выводится ? почему в записи числа 2 точки ?

y: -0.661438 x: 1.251.25
y: -0.866025 x: 1.51.5
y: -0.968246 x: 1.751.75
y: -1 x: 20

сначала должен идти аргумент x, затем значение функции с этим аргументом y(x)

единственный нормальный аргумент x=20, но такого значения нет по условию

с моей точки зрения решение подобной задачи вообще невозможно, так как приведённый рисунок не является графиком функции - одному значению x соответствует более чем одно значение Y
0
1 / 1 / 0
Регистрация: 06.12.2018
Сообщений: 8
15.06.2020, 05:22  [ТС] 6
Цитата Сообщение от AndryS1 Посмотреть сообщение
может создать, а не получить?
Нужно чтобы рисунок вывелся на экран
Цитата Сообщение от AndryS1 Посмотреть сообщение
формула дана или у нас только рисунок?
Формулы никакой нет, но есть пример кода, но он на C и не тот рисунок
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
 
#include <math.h>
 
int main(void) {
 
short n; /* параметр зовнішнього циклу */
 
double x, y; /* абсциса й ордината графіка */
 
short h; /* позиція крапки на екрані */
 
/* зовнішній цикл - для 5 періодів */
 
for (n=0; n<5; n++) {
 
/* вивід заголовка таблиці */
 
printf("|   x     |      y       |\n");
 
printf("|-------|------------|\n");
 
/* внутрішній цикл для одного періоду */
 
for (x=0; x<4; x+=0.25) {
 
/* 1-й відрізок */
 
if (x<1) y=2*x-1;
 
/* 2-й відрізок */
 
else if (x<3) y=1-sqrt(1-(x-2)*(x-2));
 
/* 3-й відрізок */
 
else y=7-2*x;
 
/* вивід рядка таблиці */
 
printf("| %5.2lf | %10.7lf |",x+n*4,y);
 
/* визначення позиції крапки */
 
h=(y+1)*10;
 
if (y-1-h*10>0.5) h++;
 
/* вивід крапки графіка */
 
for (; h>0; h--) printf(" ");
 
printf("*\n");
 
}  /* кінець внутрішнього циклу */
 
/* пауза до команди оператора */
 
printf("Натисніть клавішу Enter...");
 
getchar();
 
}  /* кінець зовнішнього циклу */
 
return 0;
 
} /* кінець програми */
Добавлено через 3 минуты
Цитата Сообщение от Yetty Посмотреть сообщение
с моей точки зрения решение подобной задачи вообще невозможно, так как приведённый рисунок не является графиком функции - одному значению x соответствует более чем одно значение Y
Привёл сверху пример, может быть это поможет как-то
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
15.06.2020, 13:17 7
Цитата Сообщение от Yetty Посмотреть сообщение
в записи числа 2 точки ?
это отладочный вывод, забыл его убрать..

Добавлено через 36 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
 
int main()
{
    for (double x = 0.0; x < 20.0; x += 0.25)
    {
        double mod_x = std::fmod(x, 4.0); // 0 - 4.0 - кол-во уникальных графиков
 
        if (mod_x >= 0.0 && mod_x <= 1.0) { std::cout << "y: " << 2 << " x: " << x; } // линия y = const
        else if (mod_x >= 1.0 && mod_x <= 3.0) { std::cout << "y: " << std::sqrt(1 - (std::fmod(x, 2.0) - 2) * (std::fmod(x, 2.0) - 2));} // половина круга
        else if (mod_x <= 4.0 && mod_x >= 3.0) { std::cout << "y: " << std::fmod(x, 1.0) << " x: " << x; } // линейное уравнение y = x % 1 
        std::cout << std::endl;
    }
}
Добавлено через 2 минуты
Цитата Сообщение от Chiller Посмотреть сообщение
Нужно чтобы рисунок вывелся на экран
для этого нужно определится с масштабом
0
2523 / 1243 / 459
Регистрация: 08.11.2016
Сообщений: 3,415
15.06.2020, 13:17 8
C++
1
2
3
4
5
6
7
8
9
10
11
double func_from_x(double x)
{
    double whole, factor;
    factor = modf(x, &whole);
    if ((int)whole % 4 == 0)
        return 1.0;
    else if (((int)whole + 1) % 4 == 0)
        return factor;
    else
        return -(sqrt(1 - ((int)whole % 2 - factor) * ((int)whole % 2 - factor)));
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.06.2020, 13:36 9
AndryS1,
Цитата Сообщение от Yetty Посмотреть сообщение
сначала должен идти аргумент x, затем значение функции с этим аргументом y(x)
теперь вот так выводит (значения x выводятся не все, y почему-то -nan)

y: 2 x: 1
y: 0.661438
y: 0.866025
y: 0.968246
y: -nan
y: -nan
y: -nan
y: -nan
y: 0

уже говорил что решение невозможно (в условии говорится о функции, на рисунке не функция). например при x=1 можно вывести и y=2 и y=0 и другие значения
0
1 / 1 / 0
Регистрация: 06.12.2018
Сообщений: 8
15.06.2020, 15:06  [ТС] 10
Цитата Сообщение от AndryS1 Посмотреть сообщение
для этого нужно определится с масштабом
Ну примерно как на примере:
Вывести таблицу значений функции заданной в виде графика
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
15.06.2020, 16:09 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cmath>
#include <iostream>
 
double func_from_x(double x)
{
    double whole, factor;
    factor = modf(x, &whole);
    if ((int)whole % 4 == 0)
        return 1.0;
    else if (((int)whole + 1) % 4 == 0)
        return factor;
    else
        return -(sqrt(1 - ((int)whole % 2 - factor) * ((int)whole % 2 - factor)));
}
 
void draw_line(double y)
{
    y += 1.0; // для смещения
    size_t spaces = round(abs(y) / 0.125);
    for (size_t i = 0; i < spaces; i++)
    {
        std::cout << ' ';
    }
    std::cout << '*' << std::endl;
}
 
int main()
{
    std::cout << "\tx\t|\ty\t|\n";
    for (double x = 0.0; x < 20.0; x += 0.25)
    {
        std::cout.setf(std::ios::left);
        std::cout.width(10);
        std::cout.fill(' ');
        std::cout << x << "|";
        std::cout.setf(std::ios::left);
        std::cout.width(10);
        std::cout.fill(' ');
        std::cout << func_from_x(x) << "| ";
        draw_line(func_from_x(x));
    }
}
(значение функции взято из решения Annemesski)
0
15.06.2020, 16:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2020, 16:09
Помогаю со студенческими работами здесь

Вывести значения функции заданной в виде графика
Добрый день. Собственно задание: Для функции Y = f(X), график которой приведен ниже, вывести на...

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

Вывести таблицу значений заданной функции
Написать программу, которая выводит на экран значение функции y = e^(x+3)* sin (x) в диапазоне от 0...

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

Вывести таблицу значений интервально заданной функции
Привет, помогите решить такую задачу

Вывести таблицу значений функции, заданной графически
Вычислить и вывести на экран в виде таблицы значения функции, заданной графически, на интервале от...


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

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

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