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

По заданной в виде строки функции рассчитать ее значение

26.12.2014, 19:31. Показов 782. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1 курс, Курсовая работа

Сама задача:
По заданной в виде строки функции в указанной пользователем пределах и с заданным шагом рассчитываются значения функции.

Разъяснение:
Пользователь вводит функцию в виде строки, откуда программа должна все считывать, включая синус, косинус и т.д. (мне подсказали проще сделать через switch). После пользователь задает предел и шаг, с которым будут расчитываться значения функции. После все ответы выводятся на экран в виде таблицы: x и y.

Пожалуйста помогите, первый раз делаю такую программу! Для меня еще сложно!

Не представляю как сделать ввод функции вообще. С остальным вроде бы решаемо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2014, 19:31
Ответы с готовыми решениями:

Рассчитать значение функции y=f(x) при некотором значении «х» с использованием представления функции в виде ряда
Помогите с программами нужны готовые програмные коды. Темы циклы: 2) Рассчитать значение...

Рассчитать значение заданной функции
в отрезке AB рассчитать значение заданой функции y=e^(-ht)*sin(at+b),отрезок разделен на n ...

Рассчитать значение заданной функции
Привет всем! Подскажите что надо поправить в моей функции :scratch: для следующего задания:...

Рассчитать значение заданной функции
Помогите пожалуйста! Подруга дала вот такую задачку, а я не особо шарю в формулах(...

5
11 / 11 / 9
Регистрация: 24.12.2014
Сообщений: 39
26.12.2014, 19:35 2
считываете строку, если есть вхождение заданной строки то делаете действия дальше.
Можете сделать через switch или через if как вам удобно. Просто через switch код лучше и красивее получиться
1
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 5
26.12.2014, 19:43  [ТС] 3
SaumanBao, не пользовался свитчем не разу. Не уверен как это делать, можно какой-нибудь подходящий пример?
0
11 / 11 / 9
Регистрация: 24.12.2014
Сообщений: 39
27.12.2014, 01:06 4
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
switch ( <переменная> ) {
case значение1:
  Выполнить если <переменная> == значение1
  break;
case значение2:
  Выполнить если <переменная> == значение2
  break;
...
default:
  выполнить, если ни один вариант не подошел
  break;
}
Пример:
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
#include <iostream>
 
using namespace std;
 
void playgame()
{
    cout << "Play game called";
}
void loadgame()
{
    cout << "Load game called";
}
void playmultiplayer()
{
    cout << "Play multiplayer game called";
}
 
int main()
{
  int input;
 
  cout<<"1. Play game\n";
  cout<<"2. Load game\n";
  cout<<"3. Play multiplayer\n";
  cout<<"4. Exit\n";
  cout<<"Selection: ";
  cin>> input;
  switch ( input ) {
  case 1:
    playgame();
    break;
  case 2:
    loadgame();
    break;
  case 3:
    playmultiplayer();
    break;
  case 4:
    cout<<"Thank you for playing!\n";
    break;
  default:
    cout<<"Error, bad input, quitting\n";
    break;
  }
  cin.get();
}
0
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 5
28.12.2014, 16:32  [ТС] 5
Сделал задачу таким образом:
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int num;
    double n1, n2, q;
    double a, b, c, f, x, y;
 
    printf("Программа табулирования функции:\n");
    printf("Выберете вид функции:\n");
    printf("1. a*x^2+b*x+c\n2. a*cos(f*x+b)\n3. a*sin(f*x + b)\n");
    printf("Введите ваше число:\n");
    scanf("%d", &num);
 
    switch (num)
    {
    case 1:
        printf("Введите a, b и c:\n");
        scanf("%lf %lf %lf", &a, &b, &c);
 
        printf("Задаете предел n1 n2: \n");
        scanf("%lf%lf", &n1, &n2);
 
        printf("Задайте шаг q:\n");
        scanf("%lf", &q);
 
        printf("\tТаблица значений:\n");
        printf("       x\t       y\n");
        printf("_________________________________\n");
        for (x = n1; x < n2; x += q)
        {
            y = a*pow(x, 2) + b*x + c;
            printf("|     ");
            printf("%.2lf", x);
            printf("\t|     ");
            printf("%.2lf", y);
            printf("\t|\n");
        }
        break;
 
    case 2:
        printf("Введите a, f и b:\n");
        scanf("%lf %lf %lf", &a, &f, &b);
 
        printf("Задаете предел n1 n2: \n");
        scanf("%lf%lf", &n1, &n2);
 
        printf("Задайте шаг q:\n");
        scanf("%lf", &q);
 
        printf("\tТаблица значений:\n");
        printf("       x\t       y\n");
        printf("_________________________________\n");
        for (x = n1; x < n2; x += q)
        {
            y = a*cos(f*x + b);
            printf("|     ");
            printf("%.2lf", x);
            printf("\t|     ");
            printf("%.2lf", y);
            printf("\t|\n");
        }
        break;
 
    case 3:
        printf("Введите a, f и b:\n");
        scanf("%lf %lf %lf", &a, &f, &b);
 
        printf("Задаете предел n1 n2: \n");
        scanf("%lf%lf", &n1, &n2);
 
        printf("Задайте шаг q:\n");
        scanf("%lf", &q);
 
        printf("\tТаблица значений:\n");
        printf("       x\t       y\n");
        printf("_________________________________\n");
        for (x = n1; x < n2; x += q)
        {
            y = a*sin(f*x + b);
            printf("|     ");
            printf("%.2lf", x);
            printf("\t|     ");
            printf("%.2lf", y);
            printf("\t|\n");
        }
        break;
 
    default:
        printf("Введено неверное число!\n");
        printf("Для выхода из программы нажмите любую клавишу.\n");
        getch();
        exit(1);
    }
 
    printf("\n\tСпасибо за работу с программой! Выполнил В.Скоробогатов, 2311б\n\n");
    system("pause");
    return 0;
}
Преподаватель указал мне несколько ошибок:
По программе
1) не понятно что за f в строке printf("1. a*x^2+b*x+c\n2. a*cos(f*x+b)\n3. a*sin(f*x + b)\n");
Обычно в задачах на аппроксимацию берут функции вида: a*exp(b*x)+c, a*ln(b+x)+c , a*x^b+c, a*sin(b+x)+c, eще 1 - понятно полином 2-й степени, а вид других откуда взяли?
2) Имеет смысл разбить задачу на функции 1 - для ввода данных (они ведь для всех функций одинаковы, 2- для расчета каждой функции в отдельности, 3 - печати таблицы и в main - оставить только выбор вида функции
3) опять не поняли задачу - функция задается строкой, например 2,3*exp(0,003*x)-100,1, а программа должна эту строку разделять - выбирая значения a, b, c и определять к какому виду введенная пользователем функция относится. Предупреждая Ваш следующий вопрос, если не удалось идентифицировать выдавать сообщение о рекомендуемом шаблоне ввода.

1 и 2 разберусь, 3ий так не особо пойму как сделать. Не знаю даже с чего начать.
0
11 / 11 / 9
Регистрация: 24.12.2014
Сообщений: 39
28.12.2014, 23:00 6
я не понял эту строку "выбирая значения a, b, c и определять к какому виду введенная пользователем функция относится"
0
28.12.2014, 23:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2014, 23:00
Помогаю со студенческими работами здесь

Рассчитать значение функции в заданной точке
Есть готовый код программы #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cmath&gt; void main()...

Рассчитать значение функции и вывести результаты в виде таблицы
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε ....

Рассчитать значение функции в заданной с консоли точке
Цель работы: изучить различные способы обработки исключений; 2) получить практические навыки...

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


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

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

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