Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
programmist2
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 12
1

Написать функцию, вывести результаты вычислений

28.09.2012, 06:49. Просмотров 600. Ответов 9
Метки нет (Все метки)

помогите (сделайте за меня)

 Комментарий модератора 
За отсутствием русской раскладки пользуйтесь трансляторами.
0
Миниатюры
Написать функцию, вывести результаты вычислений  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 06:49
Ответы с готовыми решениями:

Написать функцию удаления данных из файла, и вывести Сотрудников со стажем больше 10 лет
Ошибка проявляется в том, что int(s.stage) и float(s.salary) не принимает,...

Вычисление и результаты расчетов вывести на экран
Ввести с клавиатуры целые i, j, k и действительные x, y величины. Вычислить....

Объединить 2 структуры и вывести результаты не в файл, а на экран
даны две структуры. Цель и пусковая установка :) (лаба такая) во общем надо...

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

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

9
UriahHeep
222 / 217 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
28.09.2012, 14:38 2
Факториал брал только от последней скобки.
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int factorial(int op);
double fraction(int x, int n);
 
 
int main(int argc, char **argv) {
 
    int x;
    int inter_a, inter_b;
    int step;
    int precision;
    double result;
    char format[10];
 
    result = 0;
 
    fprintf(stdout, "Введите значение x: ");
    fscanf(stdin, "%d", &x);
    fprintf(stdout, "Введите начало интервала [AB]: ");
    fscanf(stdin, "%d", &inter_a);
    fprintf(stdout, "Введите конец интервала [AB]: ");
    fscanf(stdin, "%d", &inter_b);
    fprintf(stdout, "Введите значение шага r: ");
    fscanf(stdin, "%d", &step);
    fprintf(stdout, "Введите значение точности: ");
    fscanf(stdin, "%d", &precision);
 
    for (int i = inter_a; i <= inter_b; i += step) {
        result += fraction(x, i);
    }
 
    sprintf(format, "%%.%df\n", precision);
    fprintf(stdout, format, result);
 
    return EXIT_SUCCESS;
}
 
 
int factorial(int op) {
 
    int result = 1;
 
    if (op == 0) {
        return result;
    }
 
    while (op > 0) {
        result *= op;
        --op;
    }
    return result;
}
 
 
double fraction(int x, int n) {
 
    double n1 = (n * pow(x, n - 1));
    double n2 = (2 * n - 1) * factorial(2 * n + 1);
 
    return pow(-1, n - 1) * (n1 / n2);
}
0
programmist2
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 12
01.10.2012, 13:30  [ТС] 3
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    float L, R, d, eps;
    double x,y;
    printf("zadaite znachenie levoi granicy. \n");
    scanf("%f", &L);
    do {
    printf("zadaite znachenie pravoi granicy. \n");
    scanf("%f", &R);
           }
           while(R<=L);
           do {
           printf("zadaite shag tabulirovaniya. \n");
           scanf("%f", &d);
           }
while (d>=(R-L));
do
{
    printf("zadaite jelaemuu tochnost. \n");
    scanf("%f", &eps);
 
}
while ((eps>1)||(eps<0));
printf("+-----------+-----------+ \n");
printf("|     x     |     y     | \n");
printf("+-----------+-----------+ \n");
 
x = L;
    do
    {
        //y = fnct (x, eps);
        printf("|   %3.4f  |\n", x);
        x = x + d;
 
    }
    while (x <= R);
    return 0;
}
[/CSHARP]
[CSHARP]double fnct(double x, double eps)
{
double y;
y=x;
return y;
 
}
таблицу вроде написал, а вот с задачкой проблемы
0
Миниатюры
Написать функцию, вывести результаты вычислений  
UriahHeep
222 / 217 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
01.10.2012, 13:43 4
Ведь писал уже.
1
programmist2
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 12
01.10.2012, 14:18  [ТС] 5
Цитата Сообщение от newsrc Посмотреть сообщение
Ведь писал уже.
Спасибо за ответ!
Вылазит в строке ошибка.
А скомпелировать с вышеуказанной таблицой получится?
0
Миниатюры
Написать функцию, вывести результаты вычислений  
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.10.2012, 14:43 6
programmist2, объявите переменную i вместе с остальными, что выйдет?
после int main()
C
1
int i;
а цикл так:
C
1
for (i = inter_a; i <= inter_b; i += step) {
1
programmist2
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 12
01.10.2012, 14:52  [ТС] 7
напиши пожалуйста)

Добавлено через 6 минут
Цитата Сообщение от BumerangSP Посмотреть сообщение
programmist2, объявите переменную i вместе с остальными, что выйдет?
после int main()
C
1
int i;
а цикл так:
C
1
for (i = inter_a; i <= inter_b; i += step) {
спасибо! осталось вывести это ввиде таблицы
0
UriahHeep
222 / 217 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
01.10.2012, 15:11 8
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
int factorial(int op);
double fraction(int x, int n);
 
 
int main(int argc, char **argv) {
 
    int i;
    int x;
    int inter_a, inter_b;
    int step;
    int precision;
    double result;
    char format[10];
 
    result = 0;
 
    fprintf(stdout, "Введите значение x: ");
    fscanf(stdin, "%d", &x);
    fprintf(stdout, "Введите начало интервала [AB]: ");
    fscanf(stdin, "%d", &inter_a);
    fprintf(stdout, "Введите конец интервала [AB]: ");
    fscanf(stdin, "%d", &inter_b);
    fprintf(stdout, "Введите значение шага r: ");
    fscanf(stdin, "%d", &step);
    fprintf(stdout, "Введите значение точности: ");
    fscanf(stdin, "%d", &precision);
 
    for (i = inter_a; i <= inter_b; i += step) {
        result += fraction(x, i);
    }
 
    sprintf(format, "%%.%df\n", precision);
    fprintf(stdout, format, result);
 
    return EXIT_SUCCESS;
}
 
 
int factorial(int op) {
 
    int result = 1;
 
    if (op == 0) {
        return result;
    }
 
    while (op > 0) {
        result *= op;
        --op;
    }
    return result;
}
 
 
double fraction(int x, int n) {
 
    double n1 = (n * pow(x, n - 1));
    double n2 = (2 * n - 1) * factorial(2 * n + 1);
 
    return pow(-1, n - 1) * (n1 / n2);
}
0
programmist2
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 12
01.10.2012, 15:15  [ТС] 9
а как теперь это ввиде таблицы сделать?
0
UriahHeep
222 / 217 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
02.10.2012, 11:52 10
Цитата Сообщение от programmist2 Посмотреть сообщение
а как теперь это ввиде таблицы сделать?
В виде таблицы с одним значением x и одним y, смысл?

В каком диапазоне меняется x?

Добавлено через 20 часов 28 минут
Смущает пара моментов.
Задание точности (обратите внимание, в вашем коде этот момент я поправил). Я расценил точность, как количество знаков после запятой.

И второе, я понял так: n, которая стоит в числителе, изменяется от n=1 до бесконечности, но тестируем мы этот ряд на интервале [AB], т.е. n меняется на этом интервале, а вот x задаётся для каждого вычисления индивидуально, на то она и функция от x. Задание в виде картинки и ваш код противоречат в этом.

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double fnct(double x, double eps);
int factorial(int op);
double fraction(int x, int n);
 
 
int main() {
 
    float L, R, d, x;
    double n, y;
    int eps;
 
    printf("zadaite znachenie X. \n");
    scanf("%f", &x);
 
    printf("zadaite znachenie levoi granicy. \n");
    scanf("%f", &L);
 
    do {
        printf("zadaite znachenie pravoi granicy. \n");
        scanf("%f", &R);
    }
    while(R<=L);
 
    do {
        printf("zadaite shag tabulirovaniya. \n");
        scanf("%f", &d);
    }
    while (d>=(R-L));
 
    do
    {
        printf("zadaite jelaemuu tochnost. \n");
        scanf("%d", &eps);
 
    }
    while (eps <= 0);
 
    printf("+-----------+-----------+ \n");
    printf("|     n     |     y     | \n");
    printf("+-----------+-----------+ \n");
 
    n = L;
 
    do
    {
        y = fraction(x, n);
        printf("|   %3.4f  |   %.*f  |\n", n, eps, y);
        n = n + d;
 
    }
    while (n <= R);
 
    return 0;
}
 
 
double fnct(double x, double eps)
{
    double y;
    y=x;
    return y;
 
}
 
 
int factorial(int op) {
 
    int result = 1;
 
    if (op == 0) {
        return result;
    }
 
    while (op > 0) {
        result *= op;
        --op;
    }
    return result;
}
 
 
double fraction(int x, int n) {
 
    double n1 = (n * pow(x, n - 1));
    double n2 = (2 * n - 1) * factorial(2 * n + 1);
 
    return pow(-1, n - 1) * (n1 / n2);
}
0
02.10.2012, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 11:52

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

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

Протабулировать функцию у = 4cos (х2-2) на промежутке [-1; 1] с шагом h = 0,02. Результаты вычислений вывести
Протабулировать функцию у = 4cos (х2-2) на промежутке с шагом h = 0,02....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru