[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: server2009, Сергей  
Форум » VB6 и всё с ним связанное » VB6 ДЛЯ НОВИЧКОВ » Мои попытки. (костяк написал, осталось его подразвить и интерфейс сделать.)
Мои попытки.
12345Дата: Воскресенье, 27.02.2011, 13:35 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Написал в нормальном визуал студио, но только черновик- Х умножается на Х. Эррор лист чистый. Ошибки если и есть, то смысловые, не языковые. (ещё не отлаживал:)) Пока переделываю его в Х умножается на У(мало отличий от этого), и затем переделаю в Х в степени Х.

Теперь хочу чтобы при запуске проги в текст бокс вводить число, жать на Баттон, или на энтер, и результат, в том же ,наверно, текстбоксе.
(делаю это ради числового ряда х^x, полезного.) кое-что уже сделал на калькуляторе виндос.

Public Class Form1
Dim n, i, j, l, l3, m, p4, q4 As Integer
Dim w As Integer
Dim a() As Integer
Dim b(), b2(), p2(), p3(), q3(), q5() As Integer
Dim c() As Integer
Dim z(,), z2(,) As Integer
Dim l2(,) As Integer
Dim x As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim n, k, m, f As Integer
Dim w As Integer
TextBox1.Clear()
x = Me.TextBox1.Text

For n = 1 To w
c(n) = Math.Floor(x / (10 ^ n))
If c(n) < 10 Then
n = w
End If
Next
For n = 1 To w

a(n) = x - ((10 ^ n) * c(n)) ' vsa drobn chast растущая при делении на

b(n) = ((a(n) - a(n - 1)) / (10 ^ (n - 1))) 'sama cifra -исходное число, переведенное в массив чисел.
Next
For n = 1 To w
For k = 1 To w

l = b(k) * b(n)
If l >= 10 Then
l2(n, k) = Math.Floor(l / 10) 'desyatki. из предыдущего шага берём
l3 = l - 10 * l2(n, k) 'edinici
z(n, k) = l2(n - 1, k - 1) + l3

Else : l = z(n, k)
End If
If n = w Then
p2(k) = l + l2(w - 1, k - 1)
p3(k) = Math.Floor(p2(k) / 10) 'desiatki kraine levih chlenov
z(n, k) = p2(k) - 10 * p3(k) 'edinici
p3(k) = z(n, w + 1)
End If
Next
Next

For n = 1 To (2 * w + 1)
m = z(1, n)
For f = n To 1
m = m + z(f - 1, f)
Next
q3(n) = Math.Floor(m / 10) 'desyatki ot chisel sumirovania stolbcov
q4 = m - 10 * q3(n) 'ih edinici
q5(n) = q4 + q3(n - 1)
If n = 2 * w + 1 Then
q5(n) = m + q3(n - 1) 'pervaia cifria Rezultata ne razdeliaetsa
End If
Next

End Sub
End Class

 
server2009Дата: Среда, 11.05.2011, 12:48 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 18
Репутация: 0
Статус: Offline
В данном случае, можно применить рекурсию с сохранением предыдущего шага в массив чисел!
 
ShadeДата: Среда, 19.09.2012, 13:50 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 1
Статус: Offline
Совет тем кто программирует на VB.
некогда не объявляйте так переменные, это очень грубая ошибка.
Dim n, i, j, l, l3, m, p4, q4 As Integer
При таком объявлении только q4 будет integer, а до него будет Variant
Можно сделать так:
Dim n As Long, i As Long, j As Long и т.д
 
Форум » VB6 и всё с ним связанное » VB6 ДЛЯ НОВИЧКОВ » Мои попытки. (костяк написал, осталось его подразвить и интерфейс сделать.)
  • Страница 1 из 1
  • 1
Поиск: