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

Калькулятор на Си. Как реализовать триногометрические ф-ции и функцию логарифм? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как считать матрицу 3*3 из файла если он там задан неправильно http://www.cyberforum.ru/cpp-beginners/thread697881.html
как считать матрицу 3*3 из файла если он там задан неправильно например в файле 4 5 6 7 8 1 2 3 4 9 8 7 а должно считать 4 5 6 1 2 3 9 8 7
C++ 2 задачи по строкам 1)Дан текст.Первое по порядку самое короткое слово текста заменить первым по порядку самым длинным словом, если их длинны не совпадают. 2)Дан текст.Удалить все слова, которые начинаются на одну и ту... http://www.cyberforum.ru/cpp-beginners/thread697877.html
C++ Массивы. Статические и динамические
Объясните, пожалуйста, что такое статические массивы и что такое динамические? Чем отличаются? Как их создавать? Какой лучше?
C++ Что означает %k в данном случае?
#include <iostream> #include <conio.h> using namespace std; void main() { int i,j,k; cout<<"razmer massiva:"<<endl; cin>>k; int *mas=new int; int *mas1=new int;
C++ При компиляции программы в dev C++ выдает ошибки http://www.cyberforum.ru/cpp-beginners/thread697870.html
http://files.mail.ru/0JL3TJ
C++ Английские слова: перевод из единственного числа во множественное В программе в комментарии, то что не могу сделать. Описание: В файле in.txt находятся слова на английском языке в единственном числе (через запятую, табуляции и переносы строк игнорируются).... подробнее

Показать сообщение отдельно
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169

Калькулятор на Си. Как реализовать триногометрические ф-ции и функцию логарифм? - C++

15.11.2012, 00:33. Просмотров 676. Ответов 5
Метки (Все метки)

Написал код в котором надо вводить каждый елемент(первое число, знак операции, второе число, знак операции, 3... знак "=") по отдельности. + - * / работают, а вот sin... не работают. Во первых как сделать чтоб в програма могла проверить есть ли знаком операции не только символ но и строку? во вторых, если я введу sin то функция бралась от следущей введеной строки?
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main ()
{
    float g, res=0;
    bool EXIT = false;
    char str[100],op='\0',history[255];
    history[0]='\0';
    while (EXIT == false)
    {
        cout << "Input string: ";
        cin >> str;
        strcat(history,str);
        if (str[0] == '=') EXIT = true;
        g = atoi(str);
        if (g==0) op = str[0];
        else
        {  
            if  (op!='\0')
            {
                if (op == '+') res+=g;
                if (op == '-') res-=g;
                if (op == '*') res*=g;
                if (op == '/') res/=g;
                if (op == "sin") res=sin(g);
                if (op == "cos") res=cos(g);
                if (op == "tan") res=tan(g);
                if (op == "cot") res=cot(g);
                if (op == "log") res=log(g);
                op = '\0';
            }
            else res = g;
        }
    }
    cout << history << res; 
    getch();
    return 0;
}
Добавлено через 16 минут
и как правильно вызвать функцию котангенса?

Добавлено через 10 минут
сделал проверку операции через strcmp, но что дальше делать не знаю.
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define c cos; 
using namespace std;
int main ()
{
    float g, res=0;
    bool EXIT = false;
    char str[100],op='\0',history[255];
    history[0]='\0';
    while (EXIT == false)
    {
        cout << "Input string: ";
        cin >> str;
        strcat(history,str);
        if (str[0] == '=') EXIT = true;
        g = atoi(str);
        if (g==0) op = str[0];
        else
        {  
            if  (op!='\0')
            {
                if (op == '+') res+=g;
                if (op == '-') res-=g;
                if (op == '*') res*=g;
                if (op == '/') res/=g;
                if (strcmp(&op, "sin")==0) res=sin(g);
                if (strcmp(&op, "cos")==0) res=cos(g);
                if (strcmp(&op, "tg")==0) res=tan(g);
                if (strcmp(&op, "log")==0) res=log(g);
                op = '\0';
            }
            else res = g;
        }
    }
    cout << history << res; 
    getch();
    return 0;
}

Добавлено через 50 минут
ну, кто нибуть, кто знает как ето сделать??

Добавлено через 1 час 50 минут
АААУУУ, та помогите кто нибуть с етим калькулятором, пожалуста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru