Форум программистов, компьютерный форум CyberForum.ru

Изменения с шагом - C++

Восстановить пароль Регистрация
 
Dez Moines
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 11
25.01.2012, 16:58     Изменения с шагом #1
Необходимо вычислить значения функции при изменении х от xmin до xmax с шагом Δх.
Как это сделать в этом коде?
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
#include <stdio.h>
#include <math.h>
 
#define b 3
int main()
{
    float x, d, xmin, xmax, dx;
    char variant;
    puts ("enter xmin, xmax, dx");
    scanf ("%f%f%f", &xmin, &xmax, &dx);
    puts ("enter variant A or B or C");
    fflush (stdin);
    scanf ("%c", &variant);
    switch (variant)
    {
        case 'A': if (sin(x)+exp(x))
        {
            d=b/(sin(x)+exp(x));
            printf ("variant=%c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("for variant %c division into 0\n", variant);
        break;
        case 'B': if ((b-x)>0)
        {
            d=log(b-x);
            printf ("variant %c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("variant %c. can not be calculated at x=%f\n", variant, x);
        break;
        case 'C': if (x>=0)
        {
            d=b*pow(x, 1./3.);
            printf ("variant %c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("variant %c. can not be calculated at x=%f\n", variant, x);
        break;
        default: printf ("inadmissible variant %c\n",variant);
        break;
    }
    puts ("end!");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2012, 16:58     Изменения с шагом
Посмотрите здесь:

Цикл For с шагом 0.1, 0.01 и т.д. C++
На заданном отрезке изменения X {a, b} с шагом h C++
Напечатать таблицу изменения концентрации хлора для интервала времени от 0 до 5 часов с шагом 0.5 часа C++
Рандом с шагом C++
Составить схему программы и программу для заполнения таблицы значений функции y = f(x) на отрезке с указанным шагом изменения аргумента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
25.01.2012, 17:01     Изменения с шагом #2
C++
1
2
3
4
for (i = xmin; i <= xmax; i+=deltaX)
{
   //Функция
}
Dez Moines
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 11
25.01.2012, 17:04  [ТС]     Изменения с шагом #3
Это я знаю и хотел так сделать, вот просто где именно писать for(x=xmin; x<=xmax; x+=dx) не пойму.
Ткните начинающему
-=ЮрА=-
Заблокирован
Автор FAQ
25.01.2012, 17:26     Изменения с шагом #4
Dez Moines, посмотри эти топики
Вычислить и вывести на экран в виде таблицы значения функции
Программирование циклов с неизвестным заранее числом повторений
Dez Moines
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 11
25.01.2012, 20:11  [ТС]     Изменения с шагом #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
#include <stdio.h>
#include <math.h>
 
#define b 3
int main()
{
    float x, d, xmin, xmax, dx;
    char variant;
    puts ("enter xmin, xmax, dx");
    scanf ("%f%f%f", &xmin, &xmax, &dx);
    puts ("enter variant A or B or C");
    fflush (stdin);
    scanf ("%c", &variant);
    switch (variant)
    {
        case '1':
        case 'a':
        case 'A':
        for (x=xmin; x<=xmax; x+=dx)
        {
        if (sin(x)+exp(x))
        {
            d=b/(sin(x)+exp(x));
            printf ("variant=%c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("for variant %c division into 0\n", variant);
        }
        break;
        case '2':
        case 'b':
        case 'B':
        for (x=xmin; x<=xmax; x+=dx)
        {
        if ((b-x)>0)
        {
            d=log(b-x);
            printf ("variant %c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("variant %c. can not be calculated at x=%f\n", variant, x);
        }
        break;
        case '3':
        case 'c':
        case 'C':
        for (x=xmin; x<=xmax; x+=dx)
        {
        if (x>=0)
        {
            d=b*pow(x, 1./3.);
            printf ("variant %c x=%f d=%f\n", variant, x, d);
        }
        else
        printf ("variant %c. can not be calculated at x=%f\n", variant, x);
        }
        break;
        default: printf ("inadmissible variant %c\n",variant);
        break;
    }
    puts ("end!");
}
-=ЮрА=-
Заблокирован
Автор FAQ
26.01.2012, 12:09     Изменения с шагом #6
Dez Moines, можешь напечатать задание. Вот подправил твой код
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
#include <stdio.h>
#include <math.h>
 
#define b 3
int main()
{
    double x, d, xmin, xmax, dx;
    char variant;
    puts ("enter xmin, xmax, dx");
    scanf ("%lf %lf %lf", &xmin, &xmax, &dx);
    getchar();//Âîò ГЁ ГіГЎГ°Г*ëè \n îò ââîäГ*
    puts ("enter variant A or B or C");
    scanf ("%c", &variant);
    getchar();//Âîò ГЁ ГіГЎГ°Г*ëè \n îò ââîäГ*
    for (x=xmin; x<=xmax; x+=dx)//Г‡Г*Г·ГҐГ¬ ГЇГЁГ±Г*ГІГј 3 öèêëГ* Гў case 
    {
        //äåëГ*Г© switch Гў öèêëå
        
        switch (variant)
        {
        case '1':
        case 'a':
        case 'A':
            if (sin(x)+exp(x))
            {
                d=b/(sin(x)+exp(x));
                printf ("variant=%c x=%lf d=%lf\n", variant, x, d);
            }
            else
                printf ("for variant %c division into 0\n", variant);
            break;
        case '2':
        case 'b':
        case 'B':
            if (0 < (b-x))
            {
                d=log(b-x);
                printf ("variant %c x=%f d=%f\n", variant, x, d);
            }
            else
                printf ("variant %c. can not be calculated at x=%f\n", variant, x);
            break;
        case '3':
        case 'c':
        case 'C':
            if (0 <= x)
            {
                d=b*pow(x, 1./3.);
                printf ("variant %c x=%f d=%f\n", variant, x, d);
            }
            else
                printf ("variant %c. can not be calculated at x=%f\n", variant, x);
            break;
        default: 
                printf ("inadmissible variant %c\n",variant);
            break;
        }
    }
    puts ("end!");
    getchar();//Ñòîï òî÷êó Г*ГҐ õî÷åøü ГўГўГҐГ±ГІГЁ???
    return 0;
}
Миниатюры
Изменения с шагом  
Yandex
Объявления
26.01.2012, 12:09     Изменения с шагом
Ответ Создать тему
Опции темы

Текущее время: 19:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru