Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111

почему когда вводишь пунк 2 не появляется решение

12.06.2013, 18:52. Показов 2005. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
double calc(int n, double sum, int a, int b, double p, double f)
{
    if(n == 0)
        return sum;
    else
    {
        sum += p / (f * (1.0 + (1.0 * a) * a + (1.0 * b) * b));
 
        p *= 2;
        f *= n + 1;
 
        int a_ = a, b_ = b;
        a = 3 * b_ + 2 * a_;
        b = 2 * a_ + b_;
 
        sum = calc(n - 1, sum, a, b, p, f);
        return sum;
    }
}
 
int cikl()
{
    const int SIZE=10;
    int a[SIZE+1]={0,1}, b[SIZE+1]={0,1};
    unsigned int factorial[SIZE+1]={0,1};
    unsigned int n, i;
    double sum=0;
    for (i=2; i<=SIZE; i++)
    {
        a[i] = 3*b[i-1] + 2*a[i-1];
        b[i] = 2*a[i-1] + b[i-1];
        factorial[i] = i*factorial[i-1];
    }
    std::wcout << L"введите n : ";
    std::wcin >> n;
    for (i=1; i<=n; i++)
        sum = sum + double(pow(2.0, (double)i)) / ((1 + pow(a[i], 2.0)+pow(b[i],(double)2)) * factorial[i]);
    std::wcout << sum << std::endl;
    system("pause");
    return 0;
}
int vvod()
{
    int n;
    cout << "Введите n : ";
    cin >> n;
    return n;
}
void zapis(int n, double sum, int a, int b, double p, double f)
{
    //записываем в файл
    ofstream out("result.txt");
    out << calc(n, sum, a, b, p, f);
    out.close();
}
double file(int n, double sum, int a, int b, double p, double f)
{ 
    //читаем из файла
    ifstream in("result.txt");
    double result;
    in >> result;
    in.close();
    cout << result;
cout << calc(n, sum, a, b, p, f) << endl << endl;;
return(0);
}
int About()
{
printf("\n ");
printf("\n ");
printf("\n ");
printf(" \n================================================================================\n"
 "\t  Зачётная работа\n"
 "\tВариант 10\n"
"\tВыполнил студент группы ИНБc-11 Огибалов дмитрий\n");
printf(" \n================================================================================\n");
return(0);
}
int help()
{
    printf("\nЗадание №10\n\n");
    printf("Даны числа a1=b1=1 и натуральное n.\n"); 
    printf("В последовательности ak=3*bk-1+2*ak-1; bk=2*ak-1+bk-1,k=2,3…\n"); 
    printf("Найти:  сумму 2^k/(1+ak^2+bk^2)*k!\n"); 
    return 1;
}
int main()
{
    setlocale(LC_ALL,"Russian");
    int ch;
    int n;
    int a = 1;
    int b = 1;
    int z=0;
    double p = 2.0, f = 1.0;
    double sum = 0;
    bool flag=0,flag1=0;
        bool flug=0;
           do
        {
system("cls");
printf("\t*********************МЕНЮ**************************\n");
printf("1. Ввод\n");
printf("2. Решение\n");
printf("3. Цикл\n");
printf("4. About \n");
printf("5. Help\n");
printf("6. Выход\n");
printf("\n");
printf("Нажмите клавишу для вызова пункта меню\n");
ch=caas();
switch(ch)
{
case 1://если 1
setlocale(LC_ALL,"Russian");
    system("cls");
    printf("Нажмите 1 для ввода данных с клавиатуры.\n");
    printf("Нажмите 2 для ввода данных их файла.\n");
    ch=caas();
    switch(ch){
case 1:
     system("cls");
        n=vvod();
        flag=1;
        break;
case 2:
     system("cls");
        file(n, sum, a, b, p, f);
        flag1=1;
        break;
    }
break;
case 2:
system("cls");
if (flag==1||flag1==1) //если введен данные пункт 1
{
n = calc(n,sum,a,b,p,f);
 
printf("\n Решение выполняется");
flug=1;
    }
else 
    printf("\n Ввод данных не произведен\n");
    printf("\n Нажмите 1 для записи данных в файл\n");
    ch=caas();                
switch(ch){
case 1: zapis(n,sum,a,b,p,f);
printf("\nНажмите клавишу для возвращения в меню");
break;
    }
 _getch();
break;
case 3: 
                    
if ((flag==1)||(flug==1||flag1==1))//если введен данные пункт 1
{
 cikl();
 }
else    
printf("\n Ввод данных не произведен или решение не выполнено\n");
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
case 4:
About();
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
case 5:
help();
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
default:
break;
 }
    }
 while(ch!=6);
   printf("\nPress any key to continue\n");
_getch();
 return 0;  
}
помогите исправить

Добавлено через 19 секунд
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2013, 18:52
Ответы с готовыми решениями:

Почему когда подключаю монитор к материнке, то на мониторе ничего не появляется?
А когда подключаю к видеокарте то всё отоброжается

Почему, когда я разворачиваю игру появляется чёрный экран на две минуты?
Здравствуйте форумчане! Играю в Red Orchestra Geroes of Stalingrad. Почему-то, когда сворачиваю, а потом разворачиваю игру появляется на...

Почему появляется ошибка Fatal error: Cannot redeclare exc_post() когда if ($_SESSION['filter1'] == '' )?
Я пишу плагин фильтраций тегов для wordpress но почему то у меня появляется ошибка Fatal error: Cannot redeclare exc_post() (previously...

27
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 19:10
Не вникая в то, что должно делаться:
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <conio.h>
 
double calc(int n, double sum, int a, int b, double p, double f)
{
    if(n == 0)
        return sum;
    else
    {
        sum += p / (f * (1.0 + (1.0 * a) * a + (1.0 * b) * b));
 
        p *= 2;
        f *= n + 1;
 
        int a_ = a, b_ = b;
        a = 3 * b_ + 2 * a_;
        b = 2 * a_ + b_;
 
        sum = calc(n - 1, sum, a, b, p, f);
        return sum;
    }
}
 
int cikl()
{
    const int SIZE=10;
    int a[SIZE+1]={0,1}, b[SIZE+1]={0,1};
    unsigned int factorial[SIZE+1]={0,1};
    unsigned int n, i;
    double sum=0;
    for (i=2; i<=SIZE; i++)
    {
        a[i] = 3*b[i-1] + 2*a[i-1];
        b[i] = 2*a[i-1] + b[i-1];
        factorial[i] = i*factorial[i-1];
    }
    std::cout << "введите n : ";
    std::cin >> n;
    for (i=1; i<=n; i++)
        sum = sum + double(pow(2.0, (double)i)) / ((1 + pow(a[i], 2.0)+pow(b[i],(double)2)) * factorial[i]);
    std::wcout << sum << std::endl;
    system("pause");
    return 0;
}
int vvod()
{
    int n;
    std::cout << "Введите n : ";
    std::cin >> n;
    return n;
}
void zapis(int n, double sum, int a, int b, double p, double f)
{
    //записываем в файл
    std::ofstream out("result.txt");
    out << calc(n, sum, a, b, p, f);
    out.close();
}
double file(int n, double sum, int a, int b, double p, double f)
{
    //читаем из файла
    std::ifstream in("result.txt");
    double result;
    in >> result;
    in.close();
    std::cout << result;
std::cout << calc(n, sum, a, b, p, f) << std::endl << std::endl;;
return(0);
}
int About()
{
printf("\n ");
printf("\n ");
printf("\n ");
printf(" \n================================================================================\n"
 "\t  Зачётная работа\n"
 "\tВариант 10\n"
"\tВыполнил студент группы ИНБc-11 Огибалов дмитрий\n");
printf(" \n================================================================================\n");
return(0);
}
int help()
{
    printf("\nЗадание №10\n\n");
    printf("Даны числа a1=b1=1 и натуральное n.\n");
    printf("В последовательности ak=3*bk-1+2*ak-1; bk=2*ak-1+bk-1,k=2,3…\n");
    printf("Найти:  сумму 2^k/(1+ak^2+bk^2)*k!\n");
    return 1;
}
int main()
{
    setlocale(LC_ALL,"");
    char ch;
    int n;
    int a = 1;
    int b = 1;
    int z=0;
    double p = 2.0, f = 1.0;
    double sum = 0;
    bool flag=0,flag1=0;
        bool flug=0;
           do
        {
system("cls");
printf("\t*********************МЕНЮ**************************\n");
printf("1. Ввод\n");
printf("2. Решение\n");
printf("3. Цикл\n");
printf("4. About \n");
printf("5. Help\n");
printf("6. Выход\n");
printf("\n");
printf("Нажмите клавишу для вызова пункта меню\n");
ch=_getch();
switch(ch - '0')
{
case 1://если 1
setlocale(LC_ALL,"Russian");
    system("cls");
    printf("Нажмите 1 для ввода данных с клавиатуры.\n");
    printf("Нажмите 2 для ввода данных их файла.\n");
    ch=_getch();
    switch(ch-'0'){
case 1:
     system("cls");
        n=vvod();
        flag=1;
        break;
case 2:
     system("cls");
        file(n, sum, a, b, p, f);
        flag1=1;
        break;
    }
break;
case 2:
system("cls");
if (flag==1||flag1==1) //если введен данные пункт 1
{
n = calc(n,sum,a,b,p,f);
 
printf("\n Решение выполняется");
flug=1;
    }
else
    printf("\n Ввод данных не произведен\n");
    printf("\n Нажмите 1 для записи данных в файл\n");
    ch=_getch();
switch(ch-'0'){
case 1: zapis(n,sum,a,b,p,f);
printf("\nНажмите клавишу для возвращения в меню");
break;
    }
 _getch();
break;
case 3:
 
if ((flag==1)||(flug==1||flag1==1))//если введен данные пункт 1
{
 cikl();
 }
else
printf("\n Ввод данных не произведен или решение не выполнено\n");
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
case 4:
About();
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
case 5:
help();
printf("\nНажмите клавишу для возвращения в меню");
_getch();
system("cls");
break;
default:
break;
 }
    }
 while(ch!='6');
   printf("\nPress any key to continue\n");
_getch();
 return 0;
}
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 19:15  [ТС]
он все равно не показывает на экран результат

Добавлено через 52 секунды
C++
1
2
3
4
5
6
7
8
9
10
case 2:
system("cls");
if (flag==1||flag1==1) //если введен данные пункт 1
{
n = calc(n,sum,a,b,p,f);
 
printf("\n Решение выполняется");
flug=1;
    }
else
где то тут ошибка

Добавлено через 1 минуту
мне так кажется потому что когда нажимаешь пункт два то он просто выводит принтеф и все а результата нет
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 19:15
easyfrag, а вы учитываете, что n тут изначально не инициализирована при вызове функции?
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 19:18  [ТС]
тоесть ее приравнять к 0

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

Добавлено через 22 секунды
просто я понять не могу
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 19:19
easyfrag, если честно, мне не хочется вникать в суть вашей программы т.к. написана она криво косо и логику может понять лишь сам автор.

Посмотрите сами, какое оно должно быть. Если хотите, чтобы при первом проходе вернуло сумму, то да, если нет - любое другое число.
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 19:22  [ТС]
мне надо чтобы когда я ввел данные с клавиатуры в первом пункте потом когда я выбираю второй пункт он мне выводит сумму должен а он мне это не делает
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 19:30
C++
1
n = calc(1,sum,a,b,p,f);
пробуйте

Добавлено через 20 секунд
137 строка
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 20:47  [ТС]
нето написал как вы написали у меня когда я записываю в фаил то в фаиле сумма есть

Добавлено через 4 минуты
если я щас написал 1 как вы сказали то в файле результат не записался

Добавлено через 1 час 9 минут
блин уже всяко пробовал пожалуйста помогите
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 20:52
C++
1
ch = caas();
caas() - это что?
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 20:57  [ТС]
защита от некорретного ввода вводил
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 21:03
С case, switch и скобками разберитесь. Зачем вам в одном switch два case 1?
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 21:08  [ТС]
чтобы вывести принтеф потом ввести n а следующий касе чтобы записать из файла вывести результат это первый пункт а второй пункт чтобы уже показать решение и вот у емня как раз во втором пункте ошибка какая то
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 21:12
После case 1 сразу case 3. Как понимать?

Добавлено через 1 минуту
Цитата Сообщение от easyfrag Посмотреть сообщение
чтобы вывести принтеф потом ввести n а следующий касе чтобы записать из файла вывести результат это первый пункт а второй пункт чтобы уже показать решение и вот у емня как раз во втором пункте ошибка какая то
Напишите нормально свои switch, у вас там непоятно что, а разбираться с этим желания нет.
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 21:23  [ТС]
дак он мне записывает в файл результат а дальше выводит в меню чтобы выбрать пункт

Добавлено через 9 минут
тут не в касе дело
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 21:35
Проблема в чём? Что на экран результат не выводит?
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 21:37  [ТС]
да когда выбираешь пункт 2 то не выводит сумму

Добавлено через 24 секунды
остальное все работает
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 21:39
Цитата Сообщение от easyfrag Посмотреть сообщение
да когда выбираешь пункт 2 то не выводит сумму
Если вы вывод не написали, то как?
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 111
12.06.2013, 21:44  [ТС]
тоесть что написать надо там

Добавлено через 2 минуты
у меня же в функий calk там же сумма посчитана и я когда выбираю 2 пункт он мне должен же посчитать эту сумму но при этом же в 1 пункте ввожу данные
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.06.2013, 21:46
Цитата Сообщение от easyfrag Посмотреть сообщение
тоесть что написать надо там
Что нужно вывести, вывод того и напишите.

Добавлено через 1 минуту
Здесь нужен вывод?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
...
case 2:
    system("cls");
    if (flag == 1 || flag1 == 1) //если введен данные пункт 1
    {
        n = calc(n,sum,a,b,p,f);
 
        printf("\n Решение выполняется");
        flug = 1;
    }
    else printf("\n Ввод данных не произведен\n");
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2013, 21:46
Помогаю со студенческими работами здесь

Когда вводишь не числовое значение — программа зацикливается на нуле
Есть у меня считалка налогов. Проблема в том, что когда вводишь не числовое значение - программа зацикливается на нуле, какое условие мне...

Почему, когда я в свойстве DataSet объекта DataSource ввожу имя своей таблицы - Table1 - у меня появляется
сообщение &quot;Invalid property value&quot;?

Почему когда включаю комьютер появляется заставка рабочего стола и больше ничего и сразу комп виснет? что не так?
почему когда включаю комьютер появляется заставка рабочего стола и больше ничего и сразу комп виснет? что не так?

Вводишь число от 1 до 7 и выводит день недели.Вводишь 0 выход.
Требуется помощь в простенькой программе на С++. Вводишь число от 1 до 7 и выводит день недели.Вводишь 0 выход. Помогите...

Как сделать так, чтобы когда в TextBox вводишь слово, то вместо него повился звездочка?
В Windows Form c# у TextBox в свойствах был PasswordChar а в ASP такого нет ) Может кто подскажет как сделать звездочки вместо слов...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru