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

Вычислить значение выражения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверить, чередуются ли в массиве положительные и отрицательные числа. http://www.cyberforum.ru/cpp-beginners/thread535556.html
Прошу ПОМОГИТЕ! Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.
C++ Делимость || Комбинаторика : найти количество чисел от l до r включительно Делимость Имеется набор целых чисел a1, a2, ..., an. Найти количество чисел от l до r включительно, которые делятся хотя бы на одно число из этого набора. Технические условия Входные данные Состоит из нескольких тестов. Первая строка каждого теста содержит два целых числа l (1 ≤ l ≤ 109) и r (1 ≤ r ≤ 109). Следующая строка содержит количество элементов n (1 ≤ n ≤ 18) в наборе и... http://www.cyberforum.ru/cpp-beginners/thread535550.html
Класс строк с различными функциями C++
Добрый вечер! Облазила весь форум, но нужной информации так и не нашла для себя) В общем, вот в чем вся соль: Нужно написать класс строк с различными функциями (а именно,: ввод, вывод, конкатенация (+), наибольшая общая подпоследовательность (*), дистанция (-), выделение подстроки, копирование, сравнение, поиск подстроки). Я пока только начала (ну как только, около недели уже парюсь), удалось...
Как сделать константными значения "m" и "n" C++
не знаю как сделать константными значения "m" и "n" так как я создал динамический массив и ввожу эти значения с клавиатуры. подскажите как решить эту задачу #include <iostream> using namespace std; void main() { int n; int m; cout<<"VVedite koli4estvo strok i stolbcov 4erez ENTER: "; cin>>n>>m;
C++ Реакция на нажатие клавиш (вверх, вниз, влево, вправо) http://www.cyberforum.ru/cpp-beginners/thread535532.html
Как сделать, что бы программа откликалась на кнопки вверх, вниз, влево, вправо. // Движок для игры AA - All Action // Вложения #include <iostream.h> // Классы class machine // Автомобиль и его координаты { public: float X;
C++ Если макрос на VBA переписать на С++, то макрос станет работать быстрее? Всем привет!) У меня есть макрос написанный в Екселе на VBA, если его переписать на С++ , то макрос станет работать быстрее? Добавлено через 15 часов 39 минут Ответьте пожалуйста подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
31.03.2012, 23:34     Вычислить значение выражения
Вай-вай. А что такое сумма ты не знаешь, и что такое циклы тоже? Или вот ты написал "Итерация", а немного погуглить на эту тему ты пробовал?

А ещё ты не пробовал разбить задачу на отдельные подзадачи, не пробовал, например, для начала вычислить один элемент этого ряда?
Разве сложно написать вот так?
C
1
2
n=0;
a=(1+cos(n))/(2+cos(n))
Ну вот хотя бы так для начала. Потом появиться на форуме с вопросом "Ой, а как возводить в степень в С???"
Так были б видны попытки работать. тебе б посоветовали использовать функцию pow
Ты бы вернулся к решению и самостоятельно сообразил бы, что выражение следует возвести в степень 2*n-log(n). Посмотрел бы в гугле пример использования функции pow и по аналогии написал бы
a=pow(a, 2*n-log(n))
Затем поискал бы пример программы "сумма ряда", или самостоятельно подумал, а зачем ты столько лекций посетил по программированию, на которых давались примеры циклов и как циклы используются на практике. И нельзя ли просуммировать твой ряд в цикле.
Взял бы для примера цикл while и написал бы
C
1
2
3
4
5
n=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
}
Что тебе нужно чтобы найти сумму в цикле? Наверное каждый раз надо запоминать просуммированное ранее в некоторой переменной и каждый раз прибавлять к ней новое a!

C
1
2
3
4
5
6
7
n=0;
summa=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
}
Ну! Думаешь ты, вот сумма ряда и найдена! Только почему то у нас всегда n=0
А греческий значок "сигма" в формуле (я надеюсь, что ты к математике не относишься так как к программированию, а поэтому) ты знаешь, что обозначает сумму ряда при изменении n=0, 1, 2, 3, т.е. n должен с каждым шагом увеличиваться.
добавим это в программу
C
1
2
3
4
5
6
7
8
n=0;
summa=0;
while(условие){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
n=n+1;// вот здесь с новым шагом цикла n увеличивается
}
Осталась последняя неясность в нашей программе. Что за "условие" стоит в цикле while?
Т.е. сколько элементов ряда нужно суммировать? А нам не сказано сколько! Давай! Смотри в условие! Там сказано (1+cos(n))/(2+cos(..., короче это наше слагаемое а должно быть меньше эпсилон
Ну! Так прямо так и запишем! Видишь? для того что бы выполнить аналогичное задание надо только понять условие и записать все действия, которые там требуются на языке программирования.
Пишем:
C
1
2
3
4
5
6
7
8
9
10
n=0;
summa=0;
epsilon=1e-4;
a=1;
while(a>=epsilon){
a=(1+cos(n))/(2+cos(n));
a=pow(a, 2*n-log(n));
summa=summa+a;
n=n+1;// вот здесь с новым шагом цикла n увеличивается
}
видишь? а в цикле постоянно уменьшается, и когда оно будет меньше epsilon цикл завершится.
Разве это какая-то высшая математика?
Короче, объяснил подробно. Надеюсь ты понял. Как вывести summa на экран думаю догадаешься.
Или ты даже Hello World написать не можешь?
 
Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru