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

Программа выводит таблицу значений синусов или косинусов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка LNK2019 при подключении библиотеки с несколькими исходными файлами (используется Qt 5.2.0) http://www.cyberforum.ru/cpp-beginners/thread1134991.html
Используется Qt 5.2.0, но думаю проблема более глобальная в плане своих корней. Есть класс CommonData, где объявлены несколько статических переменных CommonData.h struct Complex { double zed; ... };
C++ Создать класс автомашин Задание Создать класс автомашин. Свойства класса- цвет машины, марка, номер Методы- машина двигается, машина тормозит. Завести 3 объекта класса Седан, серый, номер КЗ56748УН, Шкода, красный, Н67854РО БМВ, желтый, ЛО5674В http://www.cyberforum.ru/cpp-beginners/thread1134988.html
C++ Фильтр для ввода даты в заданном формате
Смысл: осуществляется ввод даты в формате x/y/z (не по отдельности), где x-день, y-номер месяца итд, в структуру нужно занести всё x,y,z по отдельности. Почему то не могу допереть как осуществить отбор, чтобы пользователь вводил дату в вышеприведённом формате, а программа сама поняла что есть что. struct date { int d; //days int m; //months int y; //years };
Поиск второго минимума в массиве C++
можно ли сие как-нибудь реализовать одним циклом?
C++ Вычислить и вывести на экран в виде таблицы значения функции http://www.cyberforum.ru/cpp-beginners/thread1134967.html
#include <iostream> #include <conio.h> #include <math.h> #include <iomanip> #include <locale> #include <Windows.h> using namespace std; // int main() {//начало кода функции main
C++ Проверка числовой ли ввод Здравствуйте! Задача такая. Написать программу, читающую в массив double до 10 значений пожертвований. ПРограмма должна прекращать ввод при получении нечисловой величины. Она должна выдавать среднее значение полученных чисел. А так же количество значений в массиве превышающих среднее. Написал программу, вот что получилось: #include "stdafx.h" #include <cctype> #include <iostream> const int... подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,179
Завершенные тесты: 1
01.04.2014, 17:39     Программа выводит таблицу значений синусов или косинусов
Цитата Сообщение от andreyananas Посмотреть сообщение
Количество градусов начало дублироваться,
Про это я Вам и говорил. Вывод стоит внутри цикла суммирования.

Вот работающий код
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
106
107
108
109
#include <iostream>
#include <windows.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <iomanip> // для таблицы
 
using namespace std;
double mycos(double x,double eps)
{
    double s,an;
    int n;
    n=0;
    an=1;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n); 
    }
    return s;
}
double mysin(double x,double eps)
{
    double s,an;
    int n;
    n=1;
    an=x;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n-2.0); 
    }
    return s;
}
 
int main()
{
    SetConsoleOutputCP(1251);
    double sinus1(0), cosinus1(0), sinus2(0), cosinus2(0), r(0);
    double x1(0), x2(0), dx(0), eps(0);
    char con, choice;
    do
    {
        system("cls");
        cout << " Программа выводит таблицу значений синусов или косинусов.\n";
        cout << " Для вычисления cos() введите: 'c' \n для вычисления sin() введите: 's'... \n";
        cin >> choice;
        cout << " Введите границу диапазона - х1: " << endl;
        cin >> x1;
        cout << " Введите границу диапазона - х2: " << endl;
        cin >> x2;
        cout << " Введите шаг изменения аргумента (в градусах) - dx: " << endl;
        cin >> dx;
        cout << " Введите точность вычисления - eps: " << endl;
        cin >> eps;
        system("cls");
        cout << " *sin(x)/cos(x) - табличное значение; \n *sin(x)2/cos(x)2 - рассчитаны с помощью разложения функции в ряд Тейлора.\n";
        // синус
        if (choice=='s')
        {
            cout.fill('_');
            cout << setw(45) << "" << endl;
            cout.fill(' ');
            cout << "|" << setw(10) << "градусы" << "|" << setw(10) << "sin(x)" << "|" << setw(10) << "sin(x)2" << "|" << setw(12) << "разница|\n";
            cout.fill('_');
            cout << setw(45) << "" << endl;
            for(double x = x1; x < x2; x = x+dx)
            {
                sinus1=cos(x*M_PI/180);
                sinus2=mycos(x*M_PI/180,eps);
                r=fabs(sinus1-sinus2);
                cout.flags(ios::fixed);
                cout << "|" << setw(10) << setprecision(1) << x;
                cout << "|" << setw(10) << setprecision(2) << sinus1;
                cout << "|" << setw(10) << setprecision(2) << sinus1;
                cout << "|" << setw(10) << setprecision(10) <<r << "|" << endl;
            }
        }
        // косинус
        else if(choice=='c')
        {
            cout.fill('_');
            cout << setw(45) << "" << endl;
            cout.fill(' ');
            cout << "|" << setw(10) << "градусы" << "|" << setw(10) << "cos(x)" << "|" << setw(10) << "cos(x)2" << "|" << setw(12) << "разница|\n";
            cout.fill('_');
            cout << setw(45) << "" << endl;
            for(double x = x1; x < x2; x = x+dx)
            {
                cosinus1=cos(x*M_PI/180);
                cosinus2=mycos(x*M_PI/180,eps);
                r=fabs(cosinus1-cosinus2);
                cout.flags(ios::fixed);
                cout << "|" << setw(10) << setprecision(1) << x;
                cout << "|" << setw(10) << setprecision(2) << cosinus1;
                cout << "|" << setw(10) << setprecision(2) << cosinus2;
                cout << "|" << setw(10) << setprecision(10) << r << "|" << endl;
            }
        }
        cout << " Для продолжения программы введите - y: " << endl;
        cout << " для завершения программы введите любой символ... " << endl;
        cin >> con;
    }
    while(con == 'y');
    return 0;
}
 
Текущее время: 15:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru