powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Интересная алгоритмическая задача
7 сообщений из 7, страница 1 из 1
Интересная алгоритмическая задача
    #36241827
KLUGEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!!
Может кто-нибудь сталкивался с такой задачкой:
Есть 2 числа A и Б , нужно вычислить A в Б-й степени, числа A и Б могут быть положительными либо отрицательными числами от -32 до 32. При этом нет необходимости использовать функции Бэйсика :).
Я уже додумался как сделать такую программку:

Dim a As Integer
Dim x As Integer, I As Integer, r As Double

a = 2 'osnovanie stepeni
x = -2 'stepen

r = a
For I = 1 To Abs(x) - 1
r = r * a
Next I
If x = 0 Then r = 1
If x < 0 Then r = 1 / r

И соответственно вопрос немного усложним :). Степень числа Б может быть double, т.е 1/3 ,4/3 итд.
Как в этом случае можно было бы написать программу?
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36242093
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используя математику, хочу предложить следующий вариант

Код: plaintext
X = EXP(Б*LOG(А))
где А-число, Б - степень числа


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36242128
KLUGEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данном случае это использовать функции. Что нежелательно в постановке задачи.
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36242147
KLUGEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я много искал в интернете, когда уже сам сделал в vb эту задачу, было много примеров на c++, но алгоритм был такой же. Для решения этой задачи необходимо использовать только: + , -, *, /
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36242297
KLUGEST,

алгоритмически задача прямая, как палка. А вот математически весьма интересна. См. Ряд Тейлора , в частности обратите внимание на ряды Маклорена.
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36242350
KLUGEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, это очень похоже на то что мне нужно.
...
Рейтинг: 0 / 0
Интересная алгоритмическая задача
    #36246833
KLUGEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге обошёлся без рядов Тэйлора, методом подбора, с определённой заданой точностью, и программа получилась просто жесть :

Dim a As Double
Dim f As Integer, a1 As Integer, a2 As Double, a3 As Double, a4 As Double, k As Integer, I As Integer
Dim a5 As Double, i1 As Integer, r As Long, k1 As Integer, k2 As Integer
'raschet chisla v lyuboy stepeni


n = 20 ' opredelitel tochnosti
a = 16 'osnovanie stepeni
k = 4 ' stepen znamenatel
k1 = 2 ' stepen chislitel

If a < 0 Then a = -a
If a = 0 Then a = 1
If k = 0 Then k = 1
a2 = a / 2
a5 = a2
a4 = 0

For f = 1 To n
a3 = a2
For I = 1 To k - 1
r = a3
For i1 = 1 To a2 - 1
r = r + a3
Next i1
a3 = r
Next I
If k = 1 Then f = n + 1: a5 = a: a3 = 0
If k = -1 Then f = n + 1: a5 = 1 / a: a3 = 0
If a3 > a Then a2 = a2 - a5 + a5 / 2: a5 = a5 / 2
If a3 = a Then a4 = a4 + a5: f = n + 1
If a > a3 Then a4 = a4 + a5: a5 = a2 / 2: a2 = a2 + a5
Next f
If k < 0 Then a4 = 1 / a4
'a4 rezultat

Dim x As Integer, r1 As Double
a = a4 'osnovanie stepeni
x = k1 'stepen znamenatel
a1 = a
r1 = a
For I = 1 To Abs(x) - 1
For i1 = 1 To a - 1
r1 = r1 + a1
Next i1
a1 = r1
Next I
If x = 0 Then r1 = 1
If x < 0 Then r1 = 1 / r1


MsgBox "Rezultat: " & vbCrLf & _
r1
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Интересная алгоритмическая задача
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]