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

Вывести sin x и cos x с шагом 0.1

08.10.2016, 13:44. Просмотров 1145. Ответов 12
Метки нет (Все метки)

Пожалуйста помогите мне решить данную задачу: Напечатать таблицу значений функций sin⁡x и cos⁡x на отрезке [0,1] с шагом 0.1.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2016, 13:44
Ответы с готовыми решениями:

Табулирование функции y = x*cos(x) + sin(x)
Y=X*COS(X)+SIN(X) (вывеси результат в виде таблицы)

Разложить sin и cos в ряд Тейлора
Помогите с задачей. Необходимо разложить sin и cos в ряд Тейлора. Программа работает только для...

Вычислить значение x по формуле z=sin(cos(x)
Вычислить значение x (xn<<=x<=xk) по формуле z=sin(cos(x)). Определить сумму значений z>x и...

Написать программу для sin и cos
Всем привет,меня зовут Николай.Пожалуйста помогите мне решить данную задачу,как бы я не бился,я не...

Вычислить значение z по формуле z=sin(cos(x)
Вычислить значение z, соответствующие каждому значению x (xn<=x<=xk, шаг изменения x равен dx) по...

12
StudAssistant
Эксперт
34811 / 27003 / 5019
Регистрация: 17.04.2006
Сообщений: 49,622
08.10.2016, 13:44
Закажите контрольную, курсовую, диплом или любую другую студенческую работу здесь.
12
Елизавета21
4 / 4 / 4
Регистрация: 22.12.2012
Сообщений: 70
08.10.2016, 16:24 2
C
1
2
3
4
5
6
7
8
9
10
for(i=0;i<9;i++)
{
b=0.1; a=0.1;
b=sin(b);
a=cos(a);
printf("cos=%f ", b);
printf("sin=%f\n", a)
b=b+0.1;
a=a+0.1;
}
1
LFC
731 / 536 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
08.10.2016, 18:02 3
Елизавета21, третью строку нужно было написать выше первой,а так у вас будут выводиться одни и те же значения
1
Елизавета21
4 / 4 / 4
Регистрация: 22.12.2012
Сообщений: 70
08.10.2016, 20:12 4
А, ну да, спасибо за поправку)
0
08.10.2016, 20:12
Николай Студент
0 / 0 / 0
Регистрация: 03.10.2016
Сообщений: 6
09.10.2016, 15:00  [ТС] 5
LFC, можете объяснить почему у меня не работает программа?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main()
b=0.1; a=0.1;
for (i=0;i<9;i++)
 
{
b=sin(b);
a=cos(a);
printf("cos=%f ", b);
printf("sin=%f\n", a)
b=b+0.1;
a=a+0.1;
}
0
Hikari
Хитрая блондиночка $)
1457 / 970 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
09.10.2016, 15:13 6
Цитата Сообщение от Николай Студент Посмотреть сообщение
почему у меня не работает программа?
Потом что у тебя нет тут ряда.
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <math.h>
int main()
{
    for(double x=0;x<=1;x+=0.1) 
      printf("%15.2f%15.2f%15.2f\n",x,sin(x),cos(x));
 
    return 0;
}
1
Николай Студент
0 / 0 / 0
Регистрация: 03.10.2016
Сообщений: 6
09.10.2016, 15:20  [ТС] 7
Hikari, программа не запускается,ошибка в строке №5
0
LFC
731 / 536 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
09.10.2016, 15:48 8
Цитата Сообщение от Николай Студент Посмотреть сообщение
программа не запускается,ошибка в строке №5
ну дык откуда компилятор знает что это за звери такие b=0.1; a=0.1;
они зашли и не представились,вот он и не хочет с ними дело иметь

Добавлено через 6 минут
Цитата Сообщение от Hikari Посмотреть сообщение
for(double x=0;x<=1;x+=0.1)
возможно,иногда,инкремент будет корректно работать
0
Николай Студент
0 / 0 / 0
Регистрация: 03.10.2016
Сообщений: 6
09.10.2016, 16:17  [ТС] 9
LFC, я не понимаю,что нужно сделать чтобы программа заработала,можете подсказать?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main()
int a, b, i;
for (i=0;i<9;i++)
 
{
b=sin(b);
a=cos(a);
printf("cos=%f ", b);
printf("sin=%f\n", a)
b=b+0.1;
a=a+0.1;
}
0
Елизавета21
4 / 4 / 4
Регистрация: 22.12.2012
Сообщений: 70
09.10.2016, 16:58 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
int main()
{
float a, b, c, d;
int i;
a=0.1;b=0.1;
for (i=0;i<9;i++) 
{
c=sin(b);
d=cos(a);
printf("cos=%f ", c);
printf("sin=%f\n", d);
b=b+0.1;
a=a+0.1;
}
system("pause");
return 0;
}
полностью работающая программа
p.s
int - целое число (float или double (или что-нибудь еще))
Чтобы программа не закрывала консоль нужно прописать -
system("pause");
return 0;
(если у тебя int main(если void, return не нужен))
после int main() идет блок ({})
для вычисление sin и cos нужно библиотека math.h
и у тебя еще ; отсутствовала после printf
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10529 / 6233 / 1565
Регистрация: 25.07.2009
Сообщений: 11,860
09.10.2016, 17:00 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Николай Студент Посмотреть сообщение
Hikari, программа не запускается,ошибка в строке №5
У тех, кто имеет привычку компилировать код С, как С++, или кто знает про ANSI C 99, и так отработает.
Пробуйте:
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <math.h>
 
int main(void) {
    double x, eps = 1.0e-6;
    
    for ( x = 0.0; x < 1.0 || fabs(1.0 - x) < eps; x += 0.1 )
        printf("%f\t%f\t%f\n", x, sin(x), cos(x));
    
    return 0;
}
У меня отработало
Вывести sin x и cos x с шагом 0.1
1
Елизавета21
4 / 4 / 4
Регистрация: 22.12.2012
Сообщений: 70
09.10.2016, 17:13 12
Цитата Сообщение от easybudda Посмотреть сообщение
fabs(1.0 - x) < eps
а что это такое, если не секрет?
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10529 / 6233 / 1565
Регистрация: 25.07.2009
Сообщений: 11,860
09.10.2016, 17:25 13
Елизавета21, для чисел с плавающей запятой нельзя гарантировать, что их представление типом float или double не будет содержать погрешности. То есть проверять на равенство два вещественных числа в принципе не правильно, результат может удивить. Два вещественных числа считаются равными, если их разность по абсолютной величине меньше заданной константы (10 в минус шестой степени должно бы быть достаточно).
1
09.10.2016, 17:25
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 17:25

Слишком много аргументов для sin & cos
#include &lt;stdio.h&gt; #include &lt;math.h&gt; double f1(double x){ double f1 ; f1=x-1/(3+sin(3,6)*x);...

Вывести «столбиком» значения sin 0,1, sin 0,2
Вывести «столбиком» значения sin 0,1, sin 0,2, ..., sin 1,1.

Вывести таблицу значений sin и cos в градусах от 0 до 360 с шагом 10 градусов
Распечатайте следующую таблицу, чтобы отобразить значение sin и значение cos в градусах от 0 до...


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

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

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