Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Vb- процедуры и функции / 4 сообщений из 4, страница 1 из 1
23.12.2007, 13:56
    #35028399
mavian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vb- процедуры и функции
Приветствую вас, прошу помочь мне написать 2 проги на VB. на сессию хочу попасть)
В задачках используются процедуры и функции (в 1 задаче желательно с помощью функции, во 2-й и ф-ии и проц)

Текст задачи намбер ван:
"Дан целочисленный двумерный массив размером n*n. Если все элементы главной диагонали имеют четные значения, то найти среднее арифметическое положительных элементов каждой строки массива"

Номер 2:
"Даны два двумерных квадратных массива A и B. Если под главной диагональю массива А отрицательных элементов более 3, то найти максимальный элемент в первой строке массива А и в третьей строке массива B"


воть ткие задаченки
Для помоши приведу пример задачи на эту тему:
задание:
"Составьте процедуру, определяющую среднее арифметическое значение тех элементов матрицы, значения которых меньше заданной величины Порог. Если среднее арифметическое значение элементов матрицы a, которые меньше Порог, меньше среднего арифметического значения аналогичных элементов матрицы b, то измените обе матрицы, уменьшив их каждый элемент на среднее матрицы a. В противном случае измените обе матрицы, уменьшив их каждый элемент на среднее матрицы b. Если же хотя бы в одной из матриц a или b не окажется элемента, значение которого меньше Порог, то выведите сообщение: «Превышение нормы»."

Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
Option Explicit
Private Sub Command1_Click()
 1 :  Dim ma As Integer, na As Integer
     Dim mb As Integer, nb As Integer
     Dim a() As Single, b() As Single
     Dim Порог As Single
 5 :  Dim sa As Single, sb As Single
     Dim СигА As Boolean, СигВ As Boolean
     Cls
     ma = InputBox _
     ("Задайте количество строк матрицы а")
     na = InputBox _
     ("Задайте количество столбцов матрицы а")
 10 :  mb = InputBox _
     ("Задайте количество строк матрицы b")
     nb = InputBox _
     ("Задайте количество столбцов матрицы b")
     Порог = InputBox("Задайте Порог")
     Print "ma = "; ma, "na = "; na
     Print "mb = "; mb, "nb = "; nb
 15 :  Print "Порог = "; Порог
     ReDim a( 1  To ma,  1  To na)
     ReDim b( 1  To mb,  1  To nb)
     Print "Матрица a"
     Ввод_матрицы a
 20 :  Print "Матрица b"
     Ввод_матрицы b
     Sredn ma, na, a, Порог, sa, СигА
     Sredn mb, nb, b, Порог, sb, СигВ
     If СигА And СигВ Then
 25 :    If sa < sb Then
         Вычитание ma, na, a, sa
         Вычитание mb, nb, b, sa
       Else
         Вычитание ma, na, a, sb
 30 :      Вычитание mb, nb, b, sb
       End If
       Print "sa = "; sa, "sb = "; sb
       Print "Измененная матрица a"
       Вывод_матрицы a
 35 :    Print "Измененная матрица b"
       Вывод_матрицы b
     Else
       Print "Превышение нормы"
     End If
End Sub
Private Sub Command2_Click()
  End
End Sub
Private Sub Sredn(m As Integer, n As Integer, _
x() As Single, h As Single, _
Среднее As Single, Сигнал As Boolean)
 1 :   Dim i As Integer, j As Integer
  Dim Сумма As Single, Количество As Integer
  Сумма =  0 
  Количество =  0 
 5 :   For i =  1  To m
    For j =  1  To n
      If x(i, j) < h Then
        Сумма = Сумма + x(i, j)
        Количество = Количество +  1 
 10 :      End If
    Next
  Next
  If Количество >  0  Then
    Среднее = Сумма / Количество
 15 :    Сигнал = True
  Else
    Сигнал = False
  End If
End Sub
Private Sub Вычитание(m As Integer, _
n As Integer, x() As Single, v As Single)
  Dim i As Integer, j As Integer
  For i =  1  To m
    For j =  1  To n
      x(i, j) = x(i, j) - v
    Next
  Next
End Sub
Private Sub Ввод_матрицы(x() As Single)
 1 :   Dim i As Integer
     Dim i_min As Integer
     Dim i_max As Integer
     i_min = LBound(x,  1 )
 5 :   i_max = UBound(x,  1 )
     Dim j As Integer
     Dim j_min As Integer
     Dim j_max As Integer
     j_min = LBound(x,  2 )
 10 :  j_max = UBound(x,  2 )
     For i = i_min To i_max
       For j = j_min To j_max
         x(i, j) = InputBox _
         ("Элемент матрицы (" & i _
         & ", " & j & ") = ?", _
         "Ввод матрицы")
         Print x(i, j),
 15 :    Next
       Print
     Next
End Sub
Private Sub Вывод_матрицы(x() As Single)
 1 :   Dim i As Integer
     Dim i_min As Integer
     Dim i_max As Integer
     i_min = LBound(x,  1 )
 5 :   i_max = UBound(x,  1 )
     Dim j As Integer
     Dim j_min As Integer
     Dim j_max As Integer
     j_min = LBound(x,  2 )
 10 :  j_max = UBound(x,  2 )
     For i = i_min To i_max
       For j = j_min To j_max
         Print x(i, j),
       Next
 15 :    Print
     Next
End Sub

Заранее благодарен
...
Рейтинг: 0 / 0
24.12.2007, 12:09
    #35029656
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vb- процедуры и функции
я знаю, где тебе могут помочь
...
Рейтинг: 0 / 0
24.12.2007, 12:38
    #35029746
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vb- процедуры и функции
А я могу сказать почему там.
...
Рейтинг: 0 / 0
24.12.2007, 13:50
    #35029962
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vb- процедуры и функции
AntonariyА я могу сказать почему там.
Я могу даже немного уточнить
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Vb- процедуры и функции / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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