С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22

Написать текст программы для вычисления выражения

08.12.2013, 16:24. Показов 1382. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для расчета повторяющихся математических операций использовать функцию пользователя.


https://www.cyberforum.ru/cgi-bin/latex.cgi?R=a\cdot \prod_{i=2}^{8} ({b}_{i}+x{)}^{2}+{c}^{2}\cdot\prod_{i=5}^{8}({b}_{i}+x{)}^{2}

где https://www.cyberforum.ru/cgi-bin/latex.cgi?{b}_{i} - элементы одномерного массива B(8)

x = 0,25; a = 1,07; c = 0,2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2013, 16:24
Ответы с готовыми решениями:

Написать подпрограмму для вычисления для n=1.46 значений выражения,записать на лист текст.документа
Написать подпрограмму на VBA для вычисления для n=1...46 значений выражения \sum_{k=1}^{n}k^3 ,записать на лист текст.документа MS...

Написать программу для вычисления выражения. Для вычисления повторяющихся математических операций
Написать программу для вычисления выражения. Для вычисления повторяющихся математических операций вычисления суммы и произведения. Операции...

Написать псевдокод программы вычисления простого выражения
Нужно написать псевдокод программу, которая выполняет следующее действие A=(Z*D+E)-(F-S): в стека (FILO) архитектуре; в аккумуляторной...

17
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
08.12.2013, 17:41
Если я правильно понял это выражение, то вот. Тестируйте, я давно уже с математикой не сталкивался.
VB.NET
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
Public Class Form1
    Private Function OutData(ByVal Data() As Integer, ByVal Index1 As Integer,
                             ByVal Index2 As Integer) As Double
        'Константы
        Const x As Double = 0.25
        Const a As Double = 1.07
        Const c As Double = 0.2
        'Переменные
        Dim Out1 As Double = 0
        Dim Out2 As Double = 0
        'Цикл произведения_1
        For i As Integer = Index1 To Data.Length - 1
            Out1 = a * (Data(i) + x) ^ 2
            'Цикл произведения_2
            For j As Integer = Index2 To Data.Length - 1
                If i > Index1 Then
                    Exit For
                End If
                Out2 = c ^ 2 * (Data(j) + x) ^ 2
            Next
        Next
        'Результат
        Return Out1 + Out2
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim N As Double = 0
        Dim B() As Integer = New Integer(8) {1, 2, 3, 4, 5, 6, 7, 8, 9}
        N = OutData(B, 2, 5)
        MsgBox("Результат: " & N)
    End Sub
End Class
0
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
09.12.2013, 18:25  [ТС]
какойто сложный код, необычный
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.12.2013, 18:34
Цитата Сообщение от supmti Посмотреть сообщение
какойто сложный код, необычный
Что-же там сложного-то? Русским языком комменты написаны. Все стандартно, 2 цикла, вычисляются 2 произведения. Нижняя часть - это для проверки, можешь убрать, главное-сама функция по вычислению.
0
 Аватар для 646kapeh064
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
10.12.2013, 01:52
Я возможно ошибаюсь, но по моему, там вторая производная не должна быть внутри цикла, иначе бы её взяли в квадратные скобки например.
0
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
10.12.2013, 04:15  [ТС]
у меня не получается запустить, может в этом проблема?
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
10.12.2013, 04:28
insite2012, твой код вычислит значения только для последних элементов массива, т.к. при вычислении Out1 и Out2 они каждый раз переписываются наново. Так будет правильнее:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
    Function Func1(ByVal b() As Double, ByVal a As Double, ByVal x As Double, ByVal c As Double) As Double
        Dim result1 As Double = 1.0
        For i As Integer = 2 To b.GetUpperBound(0)
            result1 *= Math.Pow(b(i) + x, 2)
        Next
        result1 *= a
        Dim result2 As Double = 1.0
        For i As Integer = 5 To b.GetUpperBound(0)
            result2 *= Math.Pow(b(i) + x, 2)
        Next
        result2 *= Math.Pow(c, 2)
        Return result1 + result2
    End Function
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.12.2013, 07:42
Цитата Сообщение от ViterAlex Посмотреть сообщение
insite2012, твой код вычислит значения только для последних элементов массива...
Да, точно, вместо *= там стоит просто =.... Пропусти знак.

Добавлено через 29 минут
Вот еще вариант. Оставил всего 1 параметр у функции, раз все остальное неизменно...
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Private Function NoMame(ByVal b() As Double) As Double
        Const a = 1.07
        Const c = 0.2
        Const x = 0.25
        Dim Res1 As Double = 1.0
        Dim Res2 As Double = 1.0
        For i As Integer = 2 To b.Length - 1
            Res1 *= (b(i) + x) ^ 2
        Next
        Res1 *= a
        For j As Integer = 5 To b.Length - 1
            Res2 *= (b(j) + x) ^ 2
        Next
        Res2 *= c ^ 2
        Return Res1 + Res2
    End Function
0
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
25.12.2013, 18:39  [ТС]
у меня ругается на первую строку "Private Function" - Ошибка Оператор не может присутствовать в теле метода. Предполагается конец метода.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.12.2013, 19:09
Значит у Вас функция в теле другой функции или процедуры.
0
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
25.12.2013, 19:15  [ТС]
и как решить эту проблему?

Добавлено через 1 минуту
может бэсик не подходит? у меня 2010 года
0
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
25.12.2013, 19:30
Цитата Сообщение от supmti Посмотреть сообщение
может бэсик не подходит? у меня 2010 года
Нет. Скопируйте весь код из вашего проекта.
0
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
25.12.2013, 19:31  [ТС]
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Module Module1
 
    Sub Main()
    Private Function NoMame(ByVal b() As Double) As Double
        Const a = 1.07
        Const c = 0.2
        Const x = 0.25
        Dim Res1 As Double = 1.0
        Dim Res2 As Double = 1.0
        For i As Integer = 2 To b.Length - 1
            Res1 *= (b(i) + x) ^ 2
        Next
        Res1 *= a
        For j As Integer = 5 To b.Length - 1
            Res2 *= (b(j) + x) ^ 2
        Next
        Res2 *= c ^ 2
        Return Res1 + Res2
    End Function
    End Sub
 
End Module

может разница в том что я использую просто visual basic, а вы VB.NET ???
0
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
25.12.2013, 19:38
supmti, ну так у вас консольное приложение и вы функцию вставляете в другую процедуру, а нужно отдельно.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Module Module1
    Sub Main()
 
    End Sub
    Private Function NoMame(ByVal b() As Double) As Double
        Const a = 1.07
        Const c = 0.2
        Const x = 0.25
        Dim Res1 As Double = 1.0
        Dim Res2 As Double = 1.0
        For i As Integer = 2 To b.Length - 1
            Res1 *= (b(i) + x) ^ 2
        Next
        Res1 *= a
        For j As Integer = 5 To b.Length - 1
            Res2 *= (b(j) + x) ^ 2
        Next
        Res2 *= c ^ 2
        Return Res1 + Res2
    End Function
End Module
1
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
25.12.2013, 19:43  [ТС]
а как сделать чтоб ответ вывелся на экран?
0
1652 / 715 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
25.12.2013, 19:47
supmti,
VB.NET
1
2
3
4
Sub Main()
Console.WriteLine(NoMame({1, 2, 3, 4, 5, 6, 7, 8}))
Console.Read()
End Sub
Только я не уверен, что массив нужными числами заполнил. Исправь, как нужно.
1
-13 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 22
26.12.2013, 16:46  [ТС]
с использованием SUB

https://www.cyberforum.ru/cgi-bin/latex.cgi?R=a\cdot%20\prod_{i=2}^{8}%20({b}_{i}+x{)}^{2}+{c}^{2}\cdot\prod_{i=5}^{8}({b}_{i}+x{)}^{2}

где https://www.cyberforum.ru/cgi-bin/latex.cgi?{b}_{i} - элементы одномерного массива B(8)

x = 0,25; a = 1,07; c = 0,2

очень важно, помогите братья))
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
26.12.2013, 17:36
VB.NET
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
Module Module1
 
    Sub Main()
        Const x As Single = 0.25
        Const a As Single = 1.07
        Const c As Single = 0.2
 
        Dim Res_1 As Single = 0
        Dim Res_2 As Single = 0
        Dim b() As Single = {0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5} 'Заменить на Ваш массив
 
        For i As Integer = 2 To b.GetUpperBound(0)
            Res_1 = Math.Pow(b(i) + x, 2)
        Next
        Res_1 *= a
 
        For j As Integer = 5 To b.GetUpperBound(0)
            Res_2 = Math.Pow(b(j) + x, 2)
        Next
        Res_2 *= Math.Pow(c, 2)
 
        Console.WriteLine("Результат: " & (Res_1 + Res_2).ToString)
        Console.Read()
    End Sub
 
End Module
Добавлено через 16 минут

Не по теме:

Ув. supmti, Вы определитесь, что Вам требуется? Консоль или отдельная Sub/Function?
Чем точнее сформулирована задача, тем проще ее решить.

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

Создание программы с процедурами,для вычисления выражения
Даны матрицы А(4х4),В(7х6) и С(3х8).Вычислить значение выражения: (SA+SB)*SC, где SA,SB,SC - произведения положительных элементов А,В,С...

Составить программу для вычисления выражения: для a и b, задаваемых при выполнении программы
Помогите составить программу для вычисления выражения: для a и b, задаваемых при выполнении программы. ...

Написать программу для вычисления выражения
помогите написать программу для вычесления

Написать функцию для вычисления выражения
Написать функцию для вычисления выражения (см.вложения) , a.

Написать программу для вычисления выражения
Написать программу для вычисления выражения. Спасибо заранее! Выражение|n|x y=1+2\sum_{k=1}^{n}\left(\frac{x}{x+5} \right)^k\cos...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru