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

Вычислить выражение

24.08.2014, 04:28. Показов 1839. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем.Подскажите,как реализовать вычисление данного выражения на С++.С помощью простейших операторов и цикла For.
Составить программу вычисления выражения (((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.08.2014, 04:28
Ответы с готовыми решениями:

Вычислить выражение
Сформировать программу,вычисляющую следующее выражение: S=sinx+cos2x-sin3x+cos4x-...-sinnx(или ...+cosnx))

Вычислить выражение
5+a/b*2

Вычислить выражение
X-ввести

11
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
24.08.2014, 04:56
с for в голову сразу ничего не приходит, а вот рекурсия - другое дело.
0
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
24.08.2014, 04:59  [ТС]
надо c for в этом вся загвоздка)

Добавлено через 1 минуту
это просто задача из учебника,из главы где ученик ещё пока не знает что такое рекурсия...
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
24.08.2014, 05:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
 using namespace std;
 long long Pow(long long num, int stepen)
 {
     long long result = num;
    for(int i=1;i<stepen;i++)
    {
        result *= num;
    }
    return result;
 }
int main()
{
    // (((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2
    cout << Pow(2,3) << endl;
    
    return 0;
}
Далее поймёте // Pow(( pow(2,3) - pow(1,3) ) ,2)
1
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
24.08.2014, 05:14
Цитата Сообщение от Georgg Посмотреть сообщение
это просто задача из учебника,из главы где ученик ещё пока не знает что такое рекурсия...
Что за учебник то? Да и чем плохо забегать вперед?

Пока только так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    INT64 sum = 0;
    for (int i = 5; i > 0; i--)
    {
        if (i == 5)
            sum = 25;
        else
        {
            sum -= i*i;
            sum = sum*sum;
        }
    }
    cout << sum;
    _getch();
    return 0;
}
Добавлено через 2 минуты
или так
C++
1
2
3
    INT64 sum = 30;
    for (int i = 5; i > 0; i--)
        sum = (sum - i*i)*(sum - i*i);
1
24.08.2014, 05:20

Не по теме:

господи, да там же последовательность.... . xD Не, ненадо об этом говорить ТС )

0
 Аватар для Alexandr_1982
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 473
Записей в блоге: 4
24.08.2014, 10:59
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
#include <stdio.h>
#include <stdlib.h>
 
int pow1(int a, int b){ if(b ==1) return a; return a*pow1(a, --b);}
int main(){
 
char* x="(((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2/0";
int i; int state; int op1, op2;
for(i=0, state = 0; x[i]!='/0'; i++)
{
switch(x[i])
{
case '(': switch(state){ case 0: state =1; break; case 1: state=2; break; case 2: state=3; break; default: break;} break;
case ')': switch(state){ case 6: op2-=op1; printf("op2:%d\n", op2); state=7; break; case 9: state= 2; break; default: break;} break;
case '^': switch(state){ case 4: state=5; break; case 7: op1= op2; state= 9; break; case 8: state= 9; break; default: break;} break;
case '-': switch(state){ case 6: op2=op1; state=7; break; default:break;} break;
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
switch(state){ case 1: case 2: case 3: op1 = x[i]-'0'; state=4; break;
case 9: case 5: op1= pow1(op1, x[i]-'0'); printf("%d\n", op1); state =6;
case 7: op1 = x[i]-'0'; state=8; break; default: break;}
break;
default: break;}
}
return 0;
}
Подобные задачи делаются рекурсией, как правильно заметили выше.
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
24.08.2014, 11:20
Вариант с выводом на экран всех промежуточных подсчётов:
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
# include <iostream>
 
unsigned long toSquare(unsigned long x)
{
    return x*x;
}
 
int main()
{
    const int aConst = 5;
    int a = aConst;
    int b = a - 1;
    for (; b>0; --b)
    {
 
        int aSquared = toSquare(a);
        std::cout << "There is value of aSquared: "
                  << aSquared << std::endl;
        int bSquared = toSquare(b);
        std::cout << "There is value of bSquared: "
                  << bSquared << std::endl;
        a = aSquared - bSquared;
        std::cout << "There is value of variable a: "
                  << a << std::endl;
 
    }
    std::cout << "There is result of calculating: "
              << a << std::endl;
}
Вариант с выводом на экран только конечного результата:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# include <iostream>
 
unsigned long toSquare(unsigned long x)
{
    return x*x;
}
 
int main()
{
    const int aConst = 5;
    int a = aConst;
    int b = a - 1;
    for (; b>0; --b)
    {
        int aSquared = toSquare(a);
        int bSquared = toSquare(b);
        a = aSquared - bSquared;
    }
    std::cout << "There is result of calculating: "
              << a << std::endl;
}
Добавлено через 5 минут
Самый простой вариант:
C++
1
2
3
4
5
6
7
8
9
# include <iostream>
 
int main()
{
    int a = 5;
    for (int b=a-1; b>0; --b)
        a = a * a - b * b;
    std::cout << "There is result of calculating: " << a << std::endl;
}
1
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
24.08.2014, 16:23  [ТС]
спасибо друзья всем))

Добавлено через 1 минуту
а учебник этот
http://my-shop.ru/shop/books/180616.html
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
24.08.2014, 16:44
Лучший ответ Сообщение было отмечено Georgg как решение

Решение

Цитата Сообщение от Georgg Посмотреть сообщение
(((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2
Это похоже на схему Горнера.
C++
1
2
3
4
5
6
7
8
9
10
long n = 5;
long x = n*n;
for( --n ; n>=1; --n )
{
// вычтем n*n 
x -= n*n;
 
// возведём в квадрат
x *= x;
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
24.08.2014, 16:53
Georgg, блин, забыл в своих примерах в конце return 0; поставить:
C++
1
2
3
4
5
6
7
8
9
10
# include <iostream>
 
int main()
{
    int a = 5;
    for (int b=a-1; b>0; --b)
        a = a * a - b * b;
    std::cout << "There is result of calculating: " << a << std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 50
24.08.2014, 21:40
получилось

Добавлено через 10 секунд
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2014, 21:40
Помогаю со студенческими работами здесь

Вычислить выражение
Помогите, нужно составить программу для вычисления выражения. Спасибо. s = \begin{cases} &amp; \text{ 2{x}^{3}+3{y}^{2}, } \; \; x...

Вычислить выражение
cos^n-1

Вычислить выражение
Вычислить выражение Х=1•2 + 2•3•4•5•6 + .... + n•(n+1)•(n+2).....2n

Вычислить выражение
Здравствуйте! Как в C++ записать вот такое выражение:

Вычислить выражение
Помогите!!! Как написать математичесой выраз!!!! 3+e в степине y-1 разделить на 1+x в квадрате по модулю y-tgx


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru