Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
1

Найти ошибку в вычислении функции

20.04.2013, 22:38. Показов 908. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер)) будьте добры помочь мне если вам не сложно пожалуйста..)

Дана задача:

Функция:
Изображение ниже..

Условие:
x < 1,2
x = 1,2
x > 1,2

Исходные данные:
a = 2,8
b = - 0,3
c = 4

Диапазон и шаг изменения аргумента:
xE[1;2]
▲x = 0,05

Заранее огромное спасибо)
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2013, 22:38
Ответы с готовыми решениями:

Найти ошибку в вычислении по формуле
{Программа вычисления} Var z,x,y:real; {Выполняемая часть прграммы} Begin writeln('Введите...

Найти ошибку в вычислении выражения
помогите найти ошибку посчитать : 1.1*1.2*1.3*1.4*..*N, N тип double #include &lt;iostream&gt; ...

Найти ошибку в вычислении цикла
Вычислить сумму 1-(2/3)*x+(3/4)x^2...(11/12)*x^10 при x=2 Добавлено через 13 часов 51 минуту...

Найти ошибку в вычислении выражения
Sub Сергей() Dim x, y, z, f, max, min As Single x = Val(InputBox(2)) y = (InputBox(6)) z =...

9
42 / 42 / 27
Регистрация: 29.01.2013
Сообщений: 277
20.04.2013, 22:41 2
В чём возникают трудности?
1
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
20.04.2013, 22:55  [ТС] 3
Как сказать, честно говоря я не знаю)) как функцию перевести в код)) можете помочь??
0
42 / 42 / 27
Регистрация: 29.01.2013
Сообщений: 277
20.04.2013, 23:08 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот:
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double funk(double val)
{
    double a = 2.8, b = -0.3, c = 4, mid = 1.2;
    
 
    if(val < mid)
        return (a * val * val) + (b * val) + c;
    else if(val == mid)
        return (a / val) + sqrt(val * val + 1);
    else
        return (a + b * val) / sqrt(val * val + 1);
}
 
void main()
{
    double step = 0.05;
    double min = 1.0, max = 2.0;
 
    while(min <= max){
        printf("%.2lf\n", funk(min));
        min += step;
    }
}
1
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
20.04.2013, 23:12  [ТС] 5
Спасибо))
0
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
24.04.2013, 12:46  [ТС] 6
Добрый день... Спасибо за решения проблем некоторых программ..
Есть маленький вопросик) проблема с кодом..

Дана задача:

Функция:
Изображение ниже..

Условие:
x < 1,2
x = 1,2
x > 1,2

Исходные данные:
a = 2,8
b = - 0,3
c = 4

Диапазон и шаг изменения аргумента:
xE[1;2]
▲x = 0,05

Код программы:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 #include <stdio.h>
 #include <math.h>
 main ()
 {double a,b,c,y1,y2,y3,x;
 a=2.8, b=-0.3, c=4, x=1;
 do {
 printf ("int=%f",x);
 if (x<1.2)
{y1=a*(x*x)+b*x+c;
 printf ("y1=%f", y1);}
 else
 if (x==1.2)
 {y2=a*(x*x*x)+sqrt(x*x+1);
 printf ("y2=%f",y2);}
 else
 if (x>1.2)
 {y3=(a+b*x)/sqrt(x*x+1);
 printf ("y3=%f",y3);}
 }
 x=x+0.05;
 }
Суть проблемы в том что на предпоследней строке программа ругается при компиляции, помогите пожалуйста в чем может быть проблема?? Да и правильно ли вообще я составил код??
Изображения
 
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
24.04.2013, 13:45 7
VJIadimir, do { требует } while(...);
1
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
24.04.2013, 13:50  [ТС] 8
а можно по подробнее пожалуйста, можете скинуть эту часть кода??
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
24.04.2013, 13:59 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Оформление кода чудовищное!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <math.h>
 main ()
 {double a,b,c,y1,y2,y3,x;
 a=2.8, b=-0.3, c=4, x=1;
 do {
 printf ("int=%f", x);
 if (x<1.2) printf (" y1=%f", a*x*x +b*x + c);
 else if (x==1.2)  printf (" y2=%f", a/x+sqrt(x*x+1));
 else  printf (" y3=%f\n",(a+b*x)/sqrt(x*x+1));}
  x=x+0.05;
 } while (x <= 2.0);
}
Оформление вывода - еще чудовищнее!
1
1 / 0 / 1
Регистрация: 17.05.2012
Сообщений: 145
24.04.2013, 14:05  [ТС] 10
Спасибо)) просто я только недавно начал изучать этот язык программирования..)
0
24.04.2013, 14:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2013, 14:05
Помогаю со студенческими работами здесь

Найти ошибку в вычислении выражения
program lab2v; var yn,yk,dy,y,F,x,c:real; i,n:integer; begin write('Введите yn=');...

Найти ошибку при вычислении выражения
вот прога не могу найти ошибку Program Fak; var x: word; procedure POK(i:word); begin...

Не могу найти ошибку в вычислении формулы
Подскажите , где ошибка? \frac{{y}^{x+1}}{\sqrt{\left|y-2 \right|}+3}+\frac{x+y/2}{2\left|x+y...

Найти ошибку при вычислении выражения
Var x,y,t,i: integer; b: array of integer; a: array of array of integer; Begin For i:=1 to...


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

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