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

Формула, по которой можно вычислить время наступления Рагнарека - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При выводе минимального элемента последовательности программа выводит слишком большое число http://www.cyberforum.ru/cpp-beginners/thread1232190.html
При выводе минимального элемента программа выводит слишком большое число. #include <iostream> using namespace std; int main() { setlocale(0,""); int maximum; float numbers, amount, average, maximal_element; float minimal_element; average = 0;
C++ Sentence. Записать число прописью Once upon a time in a land far far away, inhabited only by math students, Iva and Vedran were discussing self-explanatory sentences. A part of these sentences is exactly one number and it is equal to the total number of letters in the sentence. Some examples are: “This sentence has thirtyone letters.”, “Blah blah seventeen”. Little Jurica overheard his friends' conversation and decided to... http://www.cyberforum.ru/cpp-beginners/thread1232183.html
Определить является ли десятичная запись числа симметричной C++
Задание: код: #include<iostream> using namespace std; int main() { int n; cin>>n; cout<<((n/1000==n%10)&&(n/100/10==n%100%10))?1:37<<endl;; return 0;
Как правильно написать функцию push (положить в стек) C++
Здравствуйте, господа. Не могу сообразить, как правильно написать функцию push (положить в стек). Ткните меня носом пожалуйста. Всё остальное без ошибок. #include <conio.h> #include <iostream.h> struct Node { int left; Node *next; }; Node *beg = 0;
C++ Как происходит сортировка в данном блоке? http://www.cyberforum.ru/cpp-beginners/thread1232112.html
void Sort(char *text, int len, TCHAR* ptr, bool newFile) { char *info; int i=0,b=0; char loly; int lol; int j=0; char info1; info=(char*)malloc(len*sizeof(char)); strcpy(info,"");
C++ Перегрузка операций умножения и деления Создать класс "Строка текста с числами". Переопределить операции умножения и деления, так чтобы числа первой строки умножались и/или делились на числа второй строки, а текст между числами заменялся при умножении на более длинный, а при делении на более короткий. Например: "Сумма 484 из 112" / "Итог 11 для 4" = "Итог 44 из 28" "Сумма 484 из 112" * "Сумма 11 для 4" = "Сумма 5324 для 448" подробнее

Показать сообщение отдельно
gru74ik
Модератор
Эксперт CЭксперт С++
3925 / 1683 / 189
Регистрация: 20.02.2013
Сообщений: 4,744
Записей в блоге: 21
22.07.2014, 22:04     Формула, по которой можно вычислить время наступления Рагнарека
Чё-то у меня скобки как-то в конце не так расставляются:
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
110
111
112
113
114
115
116
117
118
/// [url]http://www.cyberforum.ru/cpp-beginners/thread1232196.html[/url]
/*
Рагнарек должен наступить с минуты на минуту. Но Один не знает,
когда именно он наступит. Локи, как самый умный, сказал Одину
формулу, по которой можно вычислить время наступления Рагнарека.
К сожалению, Одину с одним глазом сложно уследить за всеми
скобками в выражении, поэтому он решил заменить скобки первого
уровня на фигурные, а второго уровня – на квадратные, остальные
же оставить круглыми. То есть выражение x * (y + (z * (5 + 3)))
изменится на x * {y + [z * (5 + 3)]}. Но Один не умеет
программировать, Один умеет драться, поэтому программу придется
написать вам. Не гневите Одина.
В первой и единственной строке входного файла указана формула,
состоящая из букв латинского алфавита, знаков арифметических
действий, пробелов, цифр и скобок. Гарантируется, что скобки
образуют правильную скобочную последовательность. Длина формулы
не превышает 105. Выведите эту строку в формате удобном для
чтения Одину.
 
Пример ввода 1:
x * (y + (z * (5 + 3)))
 
Пример вывода 1:
x * {y + [z * (5 + 3)]}
 
*/
 
#include <iostream>     // для ввода-вывода
#include <windows.h>    // для отображения русского языка
#include <string>       // для строк класса string
#include <fstream>      // для чтения из файла
#include <ostream>      // для вывода в файл
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string formula;
    cout << "\nВведите формулу. Введённые Вами данные будут "
            "сохранены в файл ragnarok.txt.\n";
    getline(cin, formula);
    ofstream fout;
    fout.open("ragnarok.txt");
    fout << formula << endl;
    fout.close ();
    cout << "\nФормула сохранена в файл ragnarok.txt.\n" << endl;
    cout << "\nИдёт преобразование формулы.\n" << endl;
    for (int i=0; i<20; i++)
    {
        Sleep(300);
        cout << "*";
    }
    cout << endl;
 
    ifstream fin;
    fin.open("ragnarok.txt");
    getline(fin, formula);
 
    int i=0;
    int size = formula.length();
    while (i<size)
    {
        if(formula[i]=='(')
        {
            formula[i]='{';
            break;
        }
        ++i;
 
    }
    while (i<size)
    {
        if(formula[i]=='(')
        {
            formula[i]='[';
            break;
        }
        ++i;
 
    }
    while (i<size)
    {
        if(formula[i]==')')
        {
            formula[i]=')';
            break;
        }
        ++i;
 
    }
    while (i<size)
    {
        if(formula[i]==')')
        {
            formula[i]=']';
            break;
        }
        ++i;
 
    }
    while (i<size)
    {
        if(formula[i]==')')
        {
            formula[i]='}';
            break;
        }
        ++i;
    }
    cout << "Теперь Один может прочитать формулу:" << endl;
    for (int i=0; i<size; i++)
    {
        cout << formula[i];
    }
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru