Если кто знает, как сделать или знает где можно посмотреть пример решения, то напишите, пожалуйста. Спасибо.
В первой не могу найти произведение отриц., положительных элементов и сравнивать их.
В-третьей не могу сделать чтобы не сама строка разворачивалась, а каждое слово (к примеру: vbnet . ru -tenbv . ur)
Как делать вторую и 4 понятия не имею.
1 задача.
В последовательности действительных чисел а1, а2, ..., аn есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов Р2. Сравнить модуль Р2 с модулем Р1 и указать, какое из произведений по модулю больше.
1
Private Sub Комманда2_Click()
' в текстбоксе1 написан ряд: 5,-2,4,8,-7,6,-3 (элементы разделены запятыми без пробелов)
' можно так же обработать как строку
' наверное можно загнать всё в массив, но я не знаю как проще разделить на элементы
Dim POL, OTR
POL = 1
OTR = 1
Ns = 1
Do While lon < Len(Текст1.Text)
Ks = InStr(Ns, Текст1.Text, "," - 1
If Ks > 0 Then
Sl = Mid(Текст1.Text, Ns, Ks - Ns + 1)
Ns = Ks + 2
lon = Ks
End If
If Ks < 0 Then
Sl = Mid(Текст1.Text, Ns, Len(Текст2.Text) - Ns)
Ns = Ks + 2
lon = Len(Текст1.Text)
End If
If Sl > 0 Then
POL = POL * Sl
End If
If Sl < 0 Then
OTR = OTR * Sl * -1
End If
Debug.Print Sl
Loop
If POL > OTR Then
MsgBox " Проиизведение положительных элементов " & POL & " больше чем отрицательных " & OTR, vbOKOnly, " Сравнение произведений"
End If
If POL < OTR Then
MsgBox " Проиизведение положительных элементов " & POL & " меньше чем отрицательных " & OTR, vbOKOnly, " Сравнение произведений"
End If
End Sub
2. Матрицы я в школе про... курил
3
Private Sub Комманда1_Click()
Dim Ns, Ks, Sl, Slr, lon, STR, i
' работает если слова разделены пробелами, и не обрабатывает _
точку в конце. Доработай сам
' в Текст2: амаМ алым с молым игон.
Ns = 1
Do While lon < Len(Текст2.Text)
Ks = InStr(Ns, Текст2.Text, " " - 1
If Ks > 0 Then
Sl = Mid(Текст2.Text, Ns, Ks - Ns + 1)
Ns = Ks + 2
lon = Ks
End If
If Ks < 0 Then
Sl = Mid(Текст2.Text, Ns, Len(Текст2.Text) - Ns)
Ns = Ks + 2
lon = Len(Текст2.Text)
End If
For i = Len(Sl) To 1 Step -1 ' в VB NET вро де бы есть функция для реверса строки. А я вручную реверсирую
Slr = Slr & Mid(Sl, i, 1)
Next i
STR = STR & " " & Slr
Slr = ""
Loop
Метка3.Caption = STR
End Sub
4.
Private Sub Текст3_Change()
'при вводе любого символа в Текст3
Dim LAT, KIR, PROT, K
' при вводе в текст3 символов проверяет по кодовой таблице
For i = 1 To Len(Текст3.Text)
K = Asc(Mid(Текст3.Text, i, 1))
If (K > 64 And K < 91) Or (K > 96 And K < 123) Then ' латинские символы
LAT = LAT + 1
End If
If (K > 191 And K < 256) Or K = 168 Or K = 184 Then ' русские символы
KIR = KIR + 1
End If
PROT = Len(Текст3.Text) - KIR - LAT ' прочие символы
Next i
' вывод результатов после ввода любого символа
Метка4.Caption = LAT
Метка5.Caption = KIR
Метка6.Caption = PROT
Только цель ставил по другому, строку переворачивать наоборот!
Option Explicit
Dim strA As String
'Строка взятая из ТБ1
Dim strB As String
'Строка помещенна в ТБ2
Dim I As Integer
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Text1_Change()
strB = ""
strA = Text1.Text
For I = 1 To Len(strA)
'От 1 до длины строки
strB = Mid(strA, I, 1) & strB
Next I
Text2.Text = strB
End Sub
Private Sub cmdSumm_Click()
MsgBox Text1.Text + Text2.Text
End Sub
Private Sub cmdCls_Click()
Text2.Text = ""
strB = ""
End Sub