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

Работа с циклами для вычисления выражения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В массиве целых положительных чисел определить положение наиболее длинной группы http://www.cyberforum.ru/cpp-beginners/thread1115395.html
В массиве целых положительных чисел, упорядоченных по возрастанию, определить положение наиболее длинной группы, является отрезком натурального ряда чисел.
C++ Составить программу для подсчета суммы и количества четных элементов линейной таблицы Y http://www.cyberforum.ru/cpp-beginners/thread1115385.html
C++ Инициализация массива. Длина строки
Ребят, добрый день. Ломаю голову и не могу сообразить, как в массив занести не констант. строчку? Ну т.е не константой, например: mas = "Это сообщение", и потом вычислять размер, а что бы строку массива вводить отдельно, и соответственно потом вычислить длину этого массива(строки). и можно ли без захвата дин.памяти это сделать?
Динамическое расположение файла C++
Добрый день, Возникла такая необходимость: Есть задача на считывание файла и работы с данными, но местоположение файла и имя неизвестны. Есть ли возможность сделать так, чтоб пользователь сам вначале вводил путь к файлу на локальной машине, а затем и имя файла и только после этого работать с ним? Для обычного подключения использую: ifstream log; log.open("D:\\Mine\\Work\\file.txt",...
C++ Задача на теорию чисел http://www.cyberforum.ru/cpp-beginners/thread1115368.html
Торт от Толи Толя на день рождения собирается угостить друзей тортом. Известно, что на дне рождения может быть либо N, либо M человек, включая самого именинника. На какое минимальное количество частей ему нужно разрезать торт (не обязательно всех равных), чтобы при любом из указанных количестве собравшихся, все съели торт поровну? Технические условия Входные данные В единственной...
C++ Указатель на двумерный массив символов Доброго времени суток. Особо не сталкивался со строками, но сейчас возникла необходимость, так же возникли и проблемы. Пытаюсь реализовать ввод строки(scanf) и ее вывод(printf). Проблема в том, что при компиляции(MinGW), консоль начинает вести себя "неадекватно", выскакивает окошко(завершение программы). Реализацию через string не предлагать, прошу объяснить, что не так в данном коде. ... подробнее

Показать сообщение отдельно
Maxvik_Grunge
1 / 1 / 0
Регистрация: 10.03.2014
Сообщений: 30
10.03.2014, 18:10  [ТС]     Работа с циклами для вычисления выражения
Tulosba, Такой вопрос,у меня вот такой код :
Заголовок :
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
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
char menu()  //объявление функции menu() (заголовок функции)
{   //тело функции--------------------------------------
    char choice;
    cout<<"1.Constants\n";
    cout<<"2.Variables\n";
    cout<<"3.Conditions\n";
    cout<<"4.Cycles\n";
    cout<<"5.Exit\n";
    cout<<"Your choice ->";
    cin>>choice;
    cout<< endl;
    return choice;
}
//функция вычисления факториала
double fact( int i )
{
    double ret = 1;
    while( i )
    {
        ret *= i--;
    }
    return ret;
}
//Библиотечная функция double cos(double x)
double mycos( double x )
{
    const double eps = 1e-5;
    double res = 0;
    int i = 0;
    double term = 0;
    return res;
}
Реализация:
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
#include "work__2.h"
 
int main()
{
    char number; //  вызов функции menu()
    do
    {
        number = menu();
        switch ( number ) // анализ значения nubmer
        {
        case '1': {
        // объявление констант----------
            const short SHORT(-20);
            const unsigned short UNshort(60000);
            const int INT(589);
            const unsigned int UNint(985);
            const long LONG(-123456789);
            const unsigned long UNlong(1789541312);
            const float FLOAT(1.156983F);
            const double DOUBLE(0.1597536450);
            const char CHAR('2');
            const unsigned char UNchar('3');
            const bool BOOL(true);
        // вывод констант-----------------
            cout<<SHORT<<endl;
            cout<<UNshort<<endl;
            cout<<INT<<endl;
            cout<<UNint<<endl;
            cout<<LONG<<endl;
            cout<<UNlong<<endl;
            cout<<FLOAT<<endl;
            cout<<DOUBLE<<endl;
            cout<<CHAR<<endl;
            cout<<UNchar<<endl;
            cout<<BOOL<<endl;
            cout<< endl;
            break;
                  } //Конец case '1'
        case '2':
            {
            //объявление переменных------------
                unsigned int UNint;
                bool BOOL;
                float FLOAT;
            //ввод переменных------------------
                cout<<"Enter UNint data type-> ";
                cin>>UNint;
                cout<<"Enter BOOL data type-> ";
                cin>>BOOL;
                cout<<"Enter FLOAT data type-> ";
                cin>>FLOAT;
                cout<< endl;
            //вывод переменных---------------------
                cout<<"UNint= ";cout<<UNint<<endl;
                cout<<"BOOL= ";cout<<BOOL<<endl;
                cout<<"FLOAT= ";cout<<FLOAT<<endl;
                cout<< endl;
                break;
            }//конец case'2'
        case '3':
            {
                double DOUBLE_1,DOUBLE_2,DOUBLE_3; //объявление переменных типа double(с плавающей точкой,двойной точности)
             //ввод переменных------------
                cout<<"DOUBLE_1= ";
                cin>>DOUBLE_1;
                cout<<"DOUBLE_2= ";
                cin>>DOUBLE_2;
                cout<<"DOUBLE_3= ";
                cin>>DOUBLE_3;
                if (DOUBLE_1 < DOUBLE_2 && DOUBLE_1 < DOUBLE_3)//Если 1 переменная меньше 2 и 3 то
                {
                cout<<"MIN= ";cout<<DOUBLE_1<<endl;//Вывести вывести 1 переменную
                }
                else if (DOUBLE_2 < DOUBLE_1 && DOUBLE_2 < DOUBLE_3)//Иначе если 2 переменная меньше 1 и 3 то
                {
                cout<<"MIN= ";cout<<DOUBLE_2<<endl;//вывести 2 переменную
                }
                else if (DOUBLE_3 < DOUBLE_1 && DOUBLE_3 < DOUBLE_2)//иначе если 3 меньше 2 и 1 то
                {
                cout<<"MIN= ";cout<<DOUBLE_3<<endl;//вывести 3 переменную
                }
                break;
            }//Конец case '3'
        case '4':
            {//цикл с while
               double x;
               const double eps = 1e-5;
               double res = 0;
               int i = 0;
               double term = 0;
               cout<<"x= ";
               cin>>x;
               while ( abs(term) > eps )
                    {
                        term = pow( x, i*2 ) / fact( 2*i );
                        term = i & 1 ? -term : term;
                        res += term;
                        i++;
                    }
                    cout << "mycos( " << x << " ) = " << mycos(x) <<endl;
                    cout << "cos( " << x << " ) = " <<cos(x) <<endl;
                    break;
                    
            }
 
        }
    }while (number !='5');//Конец цикла при вводе символа 5.
}

У меня вроде как работает,но результат вычисления не проверяется через библиотечную функцию,как у вас было,
cout << "mycos( " << x << " ) = " << mycos(x) <<endl; он выводит 0,я конечно понимаю что я торможу,просто голова кругом уже,но охота доделать со всеми циклами и разобраться.В чем я ошибся ?
 
Текущее время: 12:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru