Bezdna.su

Лучшее из бездны
Текущее время: Чт мар 28, 2024 8:59 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Программирование.
СообщениеДобавлено: Сб янв 15, 2011 6:56 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Поставил язык small basic, Не рекомендую всем- он не понимает знак возведения в степень и скобки, и похоже формулы. В бумажной книжке к нему ничего про это сказано не было, а так простой, чуткий и сильный язык. Но как писать на нем серьезное не представляю.
Лучше сразу брать бэйсик из висуал студио.

Выложу, вдруг пригодится кому. Прога для умножения чисел в столбик. Я пытаюсь сделать Х в степени Х. (ещё не перевел на полноценный бэйсик)
c[n]- массив

TextWindow.Write("X= ")
x=textwindow.ReadNumber() -взять внесенное число.

while c[n] >= 10
For n=1 to (w-1)
y=x/(10^n)
c[n]=floor (y) 'celaia chast -целая часть исходного числа, постепенно уменьшающаяся при делении на 10, 100...
If c[n]<10 then n=w
endif
endfor
EndWhile
TextWindow.Write(w) -этим блоком можно заменить нижеследующее более фундаментально, чтоли

n=1
c[n]=floor(x/(10^n))
If c[n] >= 10 Then
n=n+1
c[n]=floor(x/(10^n))
Else n=w endif
считали целую часть для получения w -количества цифр в числе. (наверно можно короче, но...)
for n=1 to w

a[n]=Math.Remainder(x,10^n) ' vsa drobn chast растущая при делении на 10, 100...

b[n]=(a[n]-a[n-1])/(10^(n-1)) 'sama cifra -исходное число, переведенное в массив чисел.
endfor

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Последний раз редактировалось Induct Вс мар 13, 2011 3:15 pm, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Попытки программировать.
СообщениеДобавлено: Вс фев 13, 2011 9:54 am 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Написал в нормальном визуал студио, но только черновик- Х умножается на Х. Эррор лист чистый. Ошибки если и есть, то смысловые, не языковые. (ещё не отлаживал:)) Пока переделываю его в Х умножается на У(мало отличий от этого), и затем переделаю в Х в степени Х.
Вдруг кого позабавит.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Попытки программировать.
СообщениеДобавлено: Пн фев 14, 2011 12:20 pm 
Не в сети

Зарегистрирован: Ср янв 27, 2010 2:02 pm
Сообщения: 5
Лучше сразу брать калькулятор!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Попытки программировать.
СообщениеДобавлено: Пн фев 14, 2011 5:46 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
ну а мосх чуть-чуть развить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Попытки программировать.
СообщениеДобавлено: Пт мар 04, 2011 4:17 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Интерфейс.
Как вводить число в текстбокс, нажимать кнопку1 и получать результат в том же текст боксе (исходное число исчезает). Кнопка2 очищает текст-бокс.
Эта прога работает.

Код:
Public Class Form1
    Dim x As Integer  'или as double
    Dim y As Integer    'или as double

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        x = CInt(TextBox1.Text) 'или так: X = Val(InputBox(“Введите значение переменной Х”,”Ввод данных”))  -v proceduru knopki     или Cdbl(TextBox1.Text) -если переменные и значение типа double     
        y = x * x
        TextBox1.Text = CStr(y)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox1.Clear()
    End Sub
End Class



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование.
СообщениеДобавлено: Вс мар 13, 2011 3:26 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Уже лучше работает эта прога. Проблемы в интерфейсе, вводе нескольких переменных в одно окно одной кнопкой=Button2. работаю над этим.
Код:
Public Class Form1
    Dim n, i, j, l, l3, p4, q4 As Integer
    Dim w, w2 As Integer
    Dim a(), a2() As Integer
    Dim b(), b2(), p2(), p3(), q3(), q5() As Integer
    Dim c(), c2() As Integer
    Dim z(,), z2(,), m As Integer
    Dim l2(,) As Integer
    Dim x, y, v As Double

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Clear()
        Button2.Text = "Ввод исходных чисел"
        Button1.Text = "Вычислить"

    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
'______________________________________________________________________________________________________
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n, k, f As Integer
        Dim w As Integer
        Dim oExcel As Object
        Dim oBook As Object
        Dim oSheet As Object

        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 w2
            c2(n) = Math.Floor(y / (10 ^ n))
            If c2(n) < 10 Then
                n = w2
            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 w2

            a2(n) = y - ((10 ^ n) * c2(n))

            b2(n) = ((a2(n) - a2(n - 1)) / (10 ^ (n - 1)))
        Next
        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(w), True)
        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(w2), True)
        'oExcel = CreateObject("Excel.Application")
        'oBook = oExcel.Workbooks.Add
        'oSheet=

        For n = 1 To w2
            For k = 1 To w               'sozdanie matrici

                l = b(k) * b2(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, k - 1) + l3

                Else : l = z(n, k)
                End If

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

                My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(z(n, k)), True)
                'matrica pered sumirovaniem
            Next
            'oSheet.Range("A2").Resize(n, w).Value = z
        Next
        'z(1, n) = l2(1, n - 1) + l - 10 * l2(1, n)
        'oBook.SaveAs("C:\Documents and Settings\я\Мои документы\97476001754732.xls")
        'oExcel.Quit()

        For n = 1 To (w + 1) 'kolichestvo stolbcov=w+1, proekcia kolichestva strok=w2-1

            m = z(1, n)
            For f = 1 To (n - 1)
                m = m + z(f + 1, n - f) 'summiruem po \diagonali
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici
            q5(n) = q4 + q3(n - 1)

        Next

        For n = w + 2 To (w + w2)

            m = z(n - (w + 1) + 1, 1)
            For f = 1 To (n - 1)
                m = m + z(f + 1, n - f) 'summiruem  po \diagonali
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici
            q5(n) = q4 + q3(n - 1)

            If n = w + w2 Then
                q5(n) = m + q3(n - 1)  'pervaia cifria Rezultata ne razdeliaetsa
            End If
        Next
       
    End Sub

'_____________________________________________________________________________________________________

    Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


        On Error GoTo ErrorHandler
        If x > 1 Then
            y = CDbl(Me.TextBox1.Text)
            ' Else : x = CDbl(Me.TextBox1.Text) 'before exitsub- kod, mogushiy sozdat oshibku
        End If
        Exit Sub
ErrorHandler:
        x = CDbl(Me.TextBox1.Text) ' Insert code to handle the error here
        Resume Next  'perehod k sleduyoushey comande koda, vniz

        TextBox1.Clear()
        'x = CDbl(Me.TextBox1.Text)
        'y = CDbl(Me.TextBox1.Text)
    End Sub

End Class

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование.
СообщениеДобавлено: Вс апр 17, 2011 2:46 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Логический алгоритм почти отладил. Исходные числа из файла/текстбокса читает без ошибок, переводит их в числовой массив без ошибок. Сливает в эксель эти же числовые массивы исходных чисел- без ошибок. Создает из этих массивов матрицу, странновато создает- иногда внутри попадаются столбцы из нулей. Буду разбираться.

Благодарю пользователя Alex77755 http://www.cyberforum.ru/members/13705.html , благодаря Помощи Алекса я решил фундаментальные проблемы проги умножения в столбик, и его Калькулятор это просто класс, выдает отличные результаты, проверенные мною на точно верных, полученных другим путём.

Функцией Split можно данные и из Текстбокса обрабатывать: alltext =textbox1.text Все числа через пробелы каждое за один раз.

Код:
Public Class Form1
    Dim n, i, j, l, l3, p4, s As Integer
    Dim w, w2, b(), b2(), l2(,) As Integer

    Dim q3(), q4, q5() As Integer

    Dim z(,), z2(,), m, p2(), p3() As Integer

    Dim x, y, v, t, t2, more As Integer
    Dim TestArray(), c(), c2(), s2() As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Clear()
        Button2.Text = "Ввод через текстовое окно"
        Button1.Text = "Вычислить"

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n, k, f As Integer
        Dim w As Integer
        Dim oExcel As Object
        Dim oBook As Object
        Dim oSheet As Object


        Dim alltext As String
        alltext = My.Computer.FileSystem.ReadAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt")
        TestArray = Split(alltext, " ") 'критерий-пробел- после запятой. если без него-по умолчанию, то всё равно пробел. Обязательно " " , а не "" -иначе alltext не разделится.

   
        Dim LastNonEmpty As Integer = -1 'номер только непустых элементов
        For i As Integer = 0 To TestArray.Length - 1 ' номер последнего(верхняя граница) меньше на 1 чем длина массива
            If TestArray(i) <> "" Then
                LastNonEmpty = LastNonEmpty + 1

                TestArray(LastNonEmpty) = TestArray(i) '  LastNonEmpty будет всегда меньше i, i считает и пустые
            End If
        Next
        ReDim Preserve TestArray(LastNonEmpty) 'установление новой верхней границы, кол-ва эл-тов TestArray


               w = Len(TestArray(0))

        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(w), True)  'для проверки
       

        w2 = Len(TestArray(1)) '
        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(w2), True)

        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", TestArray(0), True)  'для проверки

        Dim c(w) As String 'ustanovlenie verhnih granic. Inache Basic nikak.
        Dim b(w) As Integer
        Dim c2(w2) As String
        Dim b2(w2) As Integer

        For n = 1 To w

            c(n) = Mid(TestArray(0), n, 1) '
            b(n) = CInt(c(n)) ' X ,perevedenny v massiv
        Next



        For n = 1 To w2
            c2(n) = Mid(TestArray(1), n, 1)
            b2(n) = CInt(c2(n))  'Y, perevedenny v massiv
        Next

        If w > w2 Or w = w2 Then   'эта кутерьма нужна, чтобы записать массивы Х и У одним двумерным в эксель(на всякий случай)
            more = w
        Else : more = w2
        End If

        Dim z2(2, more) As Integer    'но строки 3 и столбцов  more+1

        For k = 1 To w
            z2(1, k) = b(k)
        Next
        For k = 1 To w2
            z2(2, k) = b2(k)
        Next

       
        oExcel = CreateObject("Excel.Application")
        oBook = oExcel.Workbooks.Add
        oSheet = oBook.Worksheets(1)

        Dim l2(w2, w) As Integer
        Dim z(w2, w + 1) As Integer
        Dim p2(w) As Integer
        Dim p3(w) As Integer


        For n = w2 To 1
            For k = w To 1           'sozdanie matrici к- номера столбцов

                l = b(k) * b2(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, k + 1) + l3

                Else : l = z(n, k)
                End If

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

                End If
            Next
        Next
        oSheet.Range("A1").Value = "Пример заголовка"
        oSheet.Range("A3").Resize(3, more + 1).Value = z2   'в  ресайзе указываем фактическое число строк, столбцов
        oSheet.Range("A9").Resize(w2 + 1, w + 2).Value = z

        oBook.SaveAs("C:\Documents and Settings\я\Мои документы\97476001754732.xls")  'если файла нет- будет создан, если есть- ответить заменить на вопрос "заменить?"
        oExcel.Quit()

        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", "       ", True)

        Dim q3(w + w2) As Integer
        Dim q5(w + w2) As Integer

        For n = 1 To (w + 1) 'kolichestvo stolbcov=w+1

            m = z(1, n)
            For f = 1 To (n - 1)
                m = m + z(f + 1, n - f) 'summiruem po \diagonali
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici
            q5(n) = q4 + q3(n - 1)
            My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr((q5(n))), True)
        Next

        For n = w + 2 To (w + 1 + w2 - 1) '(1,w+1)-uglovoy element matrici vhodit in w and in w2

            m = z(n - (w + 1) + 1, w + 1)

            For f = 1 To (w2 - (n - (w + 1) + 1)) ' ostatok do konca w2-vertikalnoy dliny ot tekushego n
                m = m + z(f + n - (w + 1) + 1, w + 1 - f) ' summiruem  po \diagonali
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici     
            q5(n) = q4 + q3(n - 1)


            If n = w + w2 Then
                q5(n) = m + q3(n - 1)  'pervaia cifria Rezultata ne razdeliaetsa
                My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr((q5(n))), True)
            End If
        Next

    End Sub

    Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


        On Error GoTo ErrorHandler  ' ввод
        If x > 1 Then
            Me.TextBox1.Text = TestArray(1)
        Else : Me.TextBox1.Text = TestArray(0) 'before exitsub- kod, mogushiy sozdat oshibku
        End If
        'Exit Sub
ErrorHandler:
        Me.TextBox1.Text = TestArray(0) ' Insert code to handle the error here
        Resume Next  'perehod k sleduyoushey comande koda, vniz

        TextBox1.Clear()
       
    End Sub

End Class

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование.
СообщениеДобавлено: Чт апр 21, 2011 4:58 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Обновил движок матрицы. Прежде недодумал его- логику получения элементов z(n,k). Теперь ,имхо, додумал. Но в экселе почему-то вся матрица -нули, и q5() в тхт никаких нету.

Код:
 For n = w2 To 1
            For k = w To 1               'sozdanie matrici к- номера столбцов

                l = b(k) * b2(n)

                If k = w Then  ' наверно можно без этого иф. десятков предыдущего шага нет -исходя из предустановленых границ l2

                    l2(n, k) = Math.Floor((l) / 10)
                    l3 = l - 10 * l2(n, k) 'samiy praviy stolbec
                    z(n, k) = l3
                End If

                l2(n, k) = Math.Floor((l + l2(n, k + 1)) / 10)
                l3 = l - 10 * l2(n, k) 'samiy praviy stolbec
                z(n, k) = l3
             

                If k = 1 Then     'posledny stolbec
                    p2(k) = l + l2(n, k + 1) 'zdes- tekush rez+ des predyd rez
                    p3(k) = Math.Floor(p2(k) / 10)  'desiatki kraine levih chlenov
                    z(n, 1) = p2(k) - 10 * p3(k)  'edinici
                    z(n, 0) = p3(k) 'i zdes

                End If
  My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", "   ", True)
                My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr(z(n, k)), True)
            Next
  My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", "||", True)

        Next
        oSheet.Range("A1").Value = "Пример заголовка"
        oSheet.Range("A3").Resize(3, more + 1).Value = z2
        oSheet.Range("A9").Resize(w2 + 1, w + 1).Value = z

        oBook.SaveAs("C:\Documents and Settings\я\Мои документы\97476001754732.xls")
        oExcel.Quit()

        My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", "       ", True)

        Dim q3(w + w2) As Integer
        Dim q5(w + w2) As Integer

        For n = w To 0  'kolichestvo stolbcov=w+1, proekcia kolichestva strok=w2-1

            m = z(w2, n)
            For f = 1 To (w - n)
                m = m + z(w2 - f, n + f) 'summiruem po \diagonali
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici
            q5(n) = q4 + q3(n + 1)
            My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr((q5(n))), True)
        Next

        For n = w2 To 1 'ZAKONCH zdes(1,w+1)-uglovoy element matrici vhodit in w and in w2

            m = z(n, 0)

            For f = 1 To n - 1 ' ostatok do konca w2-vertikalnoy dliny ot tekushego n  (w2 - (n - (w + 1) + 1))

                m = m + z(n - f, f)
            Next
            q3(n) = Math.Floor(m / 10)  'desyatki ot chisel sumirovania
            q4 = m - 10 * q3(n) 'ih edinici     
            q5(n) = q4 + q3(n + 1)


            If n = 1 Then
                q5(n) = m + q3(n + 1)  'pervaia cifria Rezultata ne razdeliaetsa
                My.Computer.FileSystem.WriteAllText("C:\Documents and Settings\я\Мои документы\97476001754732.txt", CStr((q5(n))), True)
            End If
        Next

    End Sub

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование.
СообщениеДобавлено: Вс апр 24, 2011 8:19 am 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Установление границы массива -обязательно Непосредственно перед его заполнением, установлением значений его элементов.
Dim c(w) As String 'ustanovlenie verhnih granic. Inache Basic nikak.
Dim b(w) As Integer
Dim c2(w2) As String
Dim b2(w2) As Integer

For n = 1 To w
c(n) = Mid(TestArray(0), n, 1) ' Ind Vne granic m
b(n) = CInt(c(n)) ' X ,perevedenny v massiv
Next

For n = 1 To w2
c2(n) = Mid(TestArray(1), n, 1) '
b2(n) = CInt(c2(n)) 'Y, perevedenny v massiv
Next

Понял почему матрица была нулями. Надо вот так
For n = w2 To 1 Step -1
For k = w To 1 Step -1
-шаг должен быть отрицательным при убываниии каунтера.

В функциях Len, Mid, InStr старт-номер фактически первого элемента объекта =1, не 0. one-based параметр.

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программирование.
СообщениеДобавлено: Пн апр 25, 2011 4:18 pm 
Не в сети

Зарегистрирован: Сб фев 21, 2009 10:26 am
Сообщения: 58
Чтение из Excel

код:
Imports Microsoft.Office.Interop.Excel

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim objExcel As New Excel.Application

Dim objWrkBk As Excel.Workbook

Dim objSht As Excel.Worksheet

Dim testdata As String



objWrkBk = GetObject("c:\test.xls")

' or objWrkBk = objExcel.Workbooks.Open("C:\test.xls")

objSht = objWrkBk.Worksheets(1)



testdata = objSht.Cells(1, 1).Value.ToString()



' or testdata = objSht.Rows(1).Cells(1).Text.ToString()
' or testdata = objSht.Range("A1").Value.ToString 'или toInteger если testdata -Integer

или так:
'//Create an Array and then add these entries to an excel spreadsheet -reading
Dim a(10) As String 'если в экселе цифры- тип числовой
For iRow = 1 To 10
a(iRow) = oSheet.Cells(iRow, 1).Value
Next iRow


TextBox1.Text = testdata

End Sub

End Class

Источник: http://social.msdn.microsoft.com/forums ... dee7999ff/
http://vb-helper.com/howto_net_dao_data ... excel.html

Значение символа &:
With excel_worksheet.Range("A" & row_num, "Z" & _
row_num).Font
.Bold = True
End With
тоесть & означает соединение без пробела, как видно из его использования в механизме метода Range.

_________________
http://sirius-ru.net/dictations/iun_2012/2012.06.25.htm


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Rambler's Top100
Рowered by рhрBB © 2000, 2002, 2005, 2007 рhрBB Group
Русская поддержка phpBB