Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 11
1

вычислить сумму

21.01.2013, 17:02. Показов 1940. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят помогите новичку
вычислить сумму: |sin(x)| + |sin(x^x)| + |sin(x^x^x)|+...+|sin(x^n), пока сумма не превысит заданного числа K
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2013, 17:02
Ответы с готовыми решениями:

Вычислить сумму положительных и сумму отрицательных элементов вещественного массива C#
Здравствуйте, не могу разобраться с задачей "Вычислить сумму положительных и сумму отрицательных...

Вычислить среднее арифметическое отрицательных чисел. Вычислить сумму элементов каждой строки
Помогите с реализацией задачи: Задать целочисленный двумерный массив NxM (значения N, M вводятся с...

Вычислить сумму
Помогите пожалуйста вычислить сумму : от k=1 до n и само уравнение : k(k+1)...k^2 Как сделать...

Вычислить сумму (-2)^1/1! + (-2)^2/2! + (-2)^3/3! + (-2)^4/4
Ребят, помогите с задачей. Недавно начала изучать С#, но что-то эту задачу я не понимаю =(...

20
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
21.01.2013, 18:02 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Program
    {
        static void Main(string[] args)
        {
            double numberX = 10;
            double numberK = 5;
            Console.WriteLine(SummSin(numberX, numberK));
            Console.ReadLine();
        }
 
        public static double SummSin(double numberX, double numberK)
        {
            double curientNumberX = numberX;
            double amount = 0;
            while (amount <= numberK)
            {
                amount += Math.Abs(Math.Sin(curientNumberX));
                curientNumberX *= numberX;
            }
            return amount;
        }
    }
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
21.01.2013, 19:07 3
dedun4ik, лучше так:
C#
1
2
3
4
5
6
7
        public static double SummSin(double x, int count)
        {   
            double result = 0;         
            for(int i = 0; i < count; i++)
               result += Math.Abs(Math.Sin(x));
            return result;
        }
0
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
22.01.2013, 01:37 4
Psilon, ваш метод подходит для вычисления выражения типа |sin(x)|+ |sin(x)| + ... + |sin(x)| , что что слегка отличается от
Цитата Сообщение от Павел2205 Посмотреть сообщение
вычислить сумму: |sin(x)| + |sin(x^x)| + |sin(x^x^x)|+...+|sin(x^n), пока сумма не превысит заданного числа K
а вот более похожий на правду вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void Main()
        {
            double numberX = 10;
            double numberK = 3;
            Console.WriteLine(SummSin(ref numberX, ref numberK));
            Console.ReadLine();
        }
 
        public static double SummSin(ref double numberX, ref double numberK)
        {
            int pow = 1;
            double amount = 0;
            while (amount <= numberK)
            {
                amount += Math.Abs(Math.Sin(Math.Pow(numberX, pow)));
                pow++;
            }
            return amount;
        }
0
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
22.01.2013, 02:08 5
dedun4ik,измененный вариант Псилона. Я думаю он просто не заметил.И его вариант всяко лучше, т.к у вас лишняя переменная.
C#
1
2
3
4
5
6
7
public static double SummSin(double x, int count)
        {   
            double result = 0;         
            for(int i = 0; i < count; i++)
               result += Math.Abs(Math.Sin(Math.Pow(x,(i+1)));
            return result;
        }
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 02:13 6
ITL, вы правы, я действительно не заметил, но доп. переменная лучше, чем pow;
C#
1
2
3
4
5
6
7
        public static double SummSin(double x, int count)
        {   
            double result = 0, summand  = x;                   
            for(int i = 0; i < count; i++, summand  *= x)
               result += Math.Abs(Math.Sin(summand));
            return result;
        }
Добавлено через 1 минуту
dedun4ik, и интересует смысл ref в методе. Поделитесь?
1
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
22.01.2013, 02:15 7
Цитата Сообщение от Psilon Посмотреть сообщение
но доп. переменная лучше, чем pow;
Почему?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 02:25 8
ITL, потому что pow работает, вычисляя сумму ряда, а это дорогостоящая операция. Пример: пусть нужно 100 миллионов раз возвести x во вторую степень.
http://ideone.com/ceimXM#view_edit_box

результат: Успешно время: 0.15s память: 33936 kB возвращаемое значение: 0
ввод: нет
вывод:

100
То же самое с помощью Math.Pow

http://ideone.com/daCn84#view_edit_box

результат: Успешно время: 12.29s память: 33904 kB возвращаемое значение: 0
ввод: нет
вывод:

100
0.15 секунды против 12.29... Зато 32 байта сэкономили

Добавлено через 1 минуту
Pow нужен только в случаях, когда нельзя расписать степень как x*x*x, например, если нужно возвести число x в степень пи. Тогда без него не обойтись. А во всех остальных случаях...
1
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
22.01.2013, 02:30 9
Psilon, оу...вот так случай. Давно хотел найти этот сайт и тут Вы. Схлопотал жесткое Де-Жа-Вю)
Спасибо за ссылочку!
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 02:31 10
ITL, да не за что

Не по теме:

а вообще щас модеры утром понабегут и врежут вам варн, что "у нас есть кнопочка спасибо внизу каждого поста" :D

0
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
22.01.2013, 09:49 11
Psilon,
Цитата Сообщение от Psilon Посмотреть сообщение
dedun4ik, и интересует смысл ref в методе. Поделитесь?
при передаче параметра по ссылке не создается локальная копия значения передаваемого параметра, что чутка экономит ресурсы
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.01.2013, 10:03 12
Цитата Сообщение от Павел2205 Посмотреть сообщение
sin(x^x^x)
Мне одному здесь видится https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{{x}^{x}}?

Цитата Сообщение от dedun4ik Посмотреть сообщение
чутка экономит ресурсы
Целых 16 байт в стэке.
Это вам не хухры-мухры
0
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
22.01.2013, 10:09 13
Цитата Сообщение от kolorotur Посмотреть сообщение
Мне одному здесь видится ?
а как тогда быть с
Цитата Сообщение от Павел2205 Посмотреть сообщение
|sin(x^n)|
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.01.2013, 10:10 14
Цитата Сообщение от dedun4ik Посмотреть сообщение
а как тогда быть с |sin(x^n)|
А что с ним не так?
0
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
22.01.2013, 10:18 15
Цитата Сообщение от kolorotur Посмотреть сообщение
А что с ним не так?
нет логичной связи между (X в степени N) и (X в степени X в степени X)
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.01.2013, 10:36 16
Цитата Сообщение от dedun4ik Посмотреть сообщение
нет логичной связи между (X в степени N) и (X в степени X в степени X)
Почему нет?
https://www.cyberforum.ru/cgi-bin/latex.cgi?f\left(x \right)=\sin x+\sin {x}^{x}+\sin {x}^{{x}^{x}}+\sum_{n=4}^{k}\sin {x}^{n}

Я, конечно, понимаю, что автор скорее всего ошибся, но ТЗ надо бы уточнить, а то потом вон Булаву с n-го раза только запускаем.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 13:01 17
kolorotur, xx != xn
Ну а то, что автор ошибся, я учитывал
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.01.2013, 14:58 18
Цитата Сообщение от Psilon Посмотреть сообщение
xx != xn
А я разве где-то утверждал обратное? О_о
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 16:31 19
kolorotur, ну у вас sin(xxx) является членом ряда https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{}^{}{sin x}^{n}
отсюда и получаем это выражение
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
22.01.2013, 16:42 20
Ну где же он является членом ряда, если ряд идет последним слагаемым и до него n нигде не упоминается?
0
22.01.2013, 16:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2013, 16:42
Помогаю со студенческими работами здесь

Вычислить сумму
Вычислить сумму

Вычислить сумму
Привет всем! Вообщем задание нужно вычислить сумму по заданному n, то есть от числа k до числа n ...

Вычислить сумму: 2! + 4! + 6! + . +n!
Вычислить сумму: 2! + 4! + 6! + ... +n!, где n ≤ 16 – четное число. (Тип значения функции LongInt.)

Вычислить сумму
Вычислить сумму s(n) = \sum_{k=1}^{n} k^k


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru