Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задание VBA, 1й курс / 22 сообщений из 22, страница 1 из 1
26.12.2010, 21:00
    #37036206
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Помогите пожалуйста решить на vba в Excel 2 программы..
Программы:
№1. Найти минимальный элемент и присвоить его значение элементу с номером (N - 3), а вместо минимального элемента записать число 101.
№2. Сформировать массив из элементов исходных массивов, непревышающих сумму первых элементов исходных массивов.

Буду очень и очень благодарен..
...
Рейтинг: 0 / 0
26.12.2010, 21:07
    #37036214
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGeПомогите пожалуйста......или сделайте за меня?
...
Рейтинг: 0 / 0
26.12.2010, 21:52
    #37036243
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Разница не большая, но всё же помогите пожалуйста, если б на програмера учился, тогда ладно, а то так же..
...
Рейтинг: 0 / 0
26.12.2010, 22:04
    #37036251
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGeРазница не большая, но всё же помогите пожалуйста тогда показывайте, что уже получилось, что не получается и задавайте конкретные вопросы.

ЗЫ: Может математику тоже не надо изучать, не на математика же учитесь? И сигналы светофора тоже не надо знать, если машину не водите?
...
Рейтинг: 0 / 0
26.12.2010, 22:52
    #37036287
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Получилось вот что, но я так понимаю что это не правильно, не могли бы вы исправить..
Sub Cours1()
Dim a(3, 10) As Integer
Randomize
s = "Исходные массивы: " & Chr(10)
For j = 1 To 3
a(j, 0) = 1
For i = 1 To 10
a(j, i) = Rnd() * 999 + 1
If a(j, i) < a(j, a(j, 0)) Then a(j, 0) = i
s = s & Format(a(j, i), "00#") & " "
Next
s = s & Chr(10)
Next
s = s & Chr(10) & "Минимальные элементы в 3-й позиции, вместо их 101:" & Chr(10)
For j = 1 To 3
a(j, 3) = a(j, a(j, 0))
a(j, a(j, 0)) = 101
For i = 1 To 10
s = s & Format(a(j, i), "00#") & " "
Next
s = s & Chr(10)
Next
End Sub



Sub Cours1()
Dim a(3, 10) As Integer
Randomize
s = "Исходные массивы: " & Chr(10)
For j = 1 To 3
a(j, 0) = 1
For i = 1 To 10
a(j, i) = Rnd() * 999 + 1
If a(j, i) < a(j, a(j, 0)) Then a(j, 0) = i
s = s & Format(a(j, i), "00#") & " "
s = s & Chr(10) & "Массив из элементов, которые больше суммы минимальных = " _
& a(1, 3) & " + " & a(2, 3) & " + " & a(3, 3) & " = " & a(1, 3) + a(2, 3) + a(3, 3) & Chr(10)
For j = 1 To 3
For i = 1 To 10
If a(j, i) > a(1, 3) + a(2, 3) + a(3, 3) Then s = s & Format(a(j, i), "00#") & " "
Next
Next
MsgBox s
End Sub
...
Рейтинг: 0 / 0
26.12.2010, 23:13
    #37036304
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Для начала читаем правила форума и учимся оформлять код в посте:
Код: 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.
Sub Cours1()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  3 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      If a(j, i) < a(j, a(j,  0 )) Then a(j,  0 ) = i
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  s = s & Chr( 10 ) & "Минимальные элементы в 3-й позиции, вместо их 101:" & Chr( 10 )
  For j =  1  To  3 
    a(j,  3 ) = a(j, a(j,  0 ))
    a(j, a(j,  0 )) =  101 
    For i =  1  To  10 
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
End Sub



Sub Cours1()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  3 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      If a(j, i) < a(j, a(j,  0 )) Then a(j,  0 ) = i
      s = s & Format(a(j, i), "00#") & " "
s = s & Chr( 10 ) & "Массив из элементов, которые больше суммы минимальных = " _
  & a( 1 ,  3 ) & " + " & a( 2 ,  3 ) & " + " & a( 3 ,  3 ) & " = " & a( 1 ,  3 ) + a( 2 ,  3 ) + a( 3 ,  3 ) & Chr( 10 )
  For j =  1  To  3 
    For i =  1  To  10 
      If a(j, i) > a( 1 ,  3 ) + a( 2 ,  3 ) + a( 3 ,  3 ) Then s = s & Format(a(j, i), "00#") & " "
    Next
  Next
  MsgBox s
End Sub
...
Рейтинг: 0 / 0
26.12.2010, 23:16
    #37036308
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGe№1. Найти минимальный элемент и присвоить его значение элементу с номером (N - 3), а вместо минимального элемента записать число 101.
Сколько измерений должно быть в этом массиве?
Сколько измерений в массиве из первого фрагмента кода?

Вы просто наобум взяли какой-то код из учебника?
...
Рейтинг: 0 / 0
26.12.2010, 23:26
    #37036317
bac
bac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGe,

По первому заданию - почему же массив двумерный. В задании определен одномерный массив
...
Рейтинг: 0 / 0
26.12.2010, 23:28
    #37036319
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Я без понятия, как сделать, почему и обратился..

Дали следующие задания без уточнений и все

№1. Найти минимальный элемент и присвоить его значение элементу с номером (N - 3), а вместо минимального элемента записать число 101.
№2. Сформировать массив из элементов исходных массивов, непревышающих сумму первых элементов исходных массивов.

Позарез нужно, что бы допустили и не отчислили..
...
Рейтинг: 0 / 0
26.12.2010, 23:40
    #37036323
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Код: 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.
Sub Cours1_1()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  3 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      If a(j, i) < a(j, a(j,  0 )) Then a(j,  0 ) = i
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  s = s & Chr( 10 ) & "Минимальные элементы в 3-й позиции, вместо их 101:" & Chr( 10 )
  For j =  1  To  3 
    a(j,  3 ) = a(j, a(j,  0 ))
    a(j, a(j,  0 )) =  101 
    For i =  1  To  10 
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  MsgBox s
End Sub

Sub Cours1_2()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  3 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  s = s & Chr( 10 ) & "Массив из элементов, которые меньше суммы первых элементов = " _
  & a( 1 ,  1 ) & " + " & a( 2 ,  1 ) & " + " & a( 3 ,  1 ) & " = " & a( 1 ,  1 ) + a( 2 ,  1 ) + a( 3 ,  1 ) & Chr( 10 )
  For j =  1  To  3 
    For i =  1  To  10 
      If a(j, i) < a( 1 ,  1 ) + a( 2 ,  1 ) + a( 3 ,  1 ) Then s = s & Format(a(j, i), "00#") & " "
    Next
  Next
  MsgBox s
End Sub

Так правильно смотря на условия?
...
Рейтинг: 0 / 0
27.12.2010, 00:02
    #37036339
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGeПозарез нужно, что бы допустили и не отчислили..ну то есть гоняем балду семестр, а в последний момент прибегаем, кто бы помог. Или в "Работу" и за деньги, или ждем доброго самаритянина, кому не чужды проблемы студентов, которым лень учиться, порой за собственные же деньги.
...
Рейтинг: 0 / 0
27.12.2010, 08:21
    #37036481
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Всё же правильный код или нет?
...
Рейтинг: 0 / 0
27.12.2010, 08:29
    #37036487
Задание VBA, 1й курс
FridGe,
код не правильный. Лажа с гарницами массивов.

Практика - критерий истины.(с)
...
Рейтинг: 0 / 0
27.12.2010, 09:49
    #37036554
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Мальчики... девочки.... Правильный... неправильный... он к заданию отношения не имеет.
...
Рейтинг: 0 / 0
27.12.2010, 11:40
    #37036767
Быдло__кодер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
авторБуду очень и очень благодарен..
200 WMR - сделаю на завтра. Мыло в профиле
...
Рейтинг: 0 / 0
27.12.2010, 12:28
    #37036867
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Быдло__кодер,

За 200wmr ничего не лопнет?
...
Рейтинг: 0 / 0
27.12.2010, 12:31
    #37036874
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGeЗа 200wmr ничего не лопнет?
а ты в своем вузе стипендию получаешь или сам за учебу платишь?
...
Рейтинг: 0 / 0
27.12.2010, 16:44
    #37037394
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Я так понимаю, что мне здесь никто не поможет..
...
Рейтинг: 0 / 0
27.12.2010, 16:52
    #37037415
FridGe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
Да и в принципе 1ая задача решена точно правильно...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Cours1_1()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  1 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      If a(j, i) < a(j, a(j,  0 )) Then a(j,  0 ) = i
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  s = s & Chr( 10 ) & "Минимальные элементы в 3-й позиции, вместо их 101:" & Chr( 10 )
  For j =  1  To  1 
    a(j,  3 ) = a(j, a(j,  0 ))
    a(j, a(j,  0 )) =  101 
    For i =  1  To  10 
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  MsgBox s
End Sub

Да и вторая задача тоже в принципе решена правильно, только что без границ массива..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub Cours1_2()
  Dim a( 3 ,  10 ) As Integer
  Randomize
  s = "Исходные массивы: " & Chr( 10 )
  For j =  1  To  3 
    a(j,  0 ) =  1 
    For i =  1  To  10 
      a(j, i) = Rnd() *  999  +  1 
      s = s & Format(a(j, i), "00#") & " "
    Next
    s = s & Chr( 10 )
  Next
  s = s & Chr( 10 ) & "Массив из элементов, которые меньше суммы первых элементов = " _
  & a( 1 ,  1 ) & " + " & a( 2 ,  1 ) & " + " & a( 3 ,  1 ) & " = " & a( 1 ,  1 ) + a( 2 ,  1 ) + a( 3 ,  1 ) & Chr( 10 )
  For j =  1  To  3 
    For i =  1  To  10 
      If a(j, i) < a( 1 ,  1 ) + a( 2 ,  1 ) + a( 3 ,  1 ) Then s = s & Format(a(j, i), "00#") & " "
    Next
  Next
  MsgBox s
End Sub

Если нет, поправьте меня..
...
Рейтинг: 0 / 0
27.12.2010, 17:38
    #37037531
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задание VBA, 1й курс
FridGeДа и в принципе 1ая задача решена точно правильно...
Еще раз: в задании массив одномерный. В решении массив двумерный.
А видя такие конструкции:
Код: plaintext
For j =  1  To  1 
нет желания рассматривать его подробнее
...
Рейтинг: 0 / 0
27.12.2010, 22:55
    #37038007
Задание VBA, 1й курс
FridGeДа и в принципе 1ая задача решена точно правильно...
дело-то не в принципе, а в решении. Что мешало проверить Ваше "в принципе правильное решение" в Excel?...
Код: 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.
Option Base  1  ' нижняя граница массивов=1, если не задавать, то 0

Sub Cours1_1()
'  Dim a(3,10) As Integer 'долой излишества!
  Dim a( 10 ) As Integer  
  Dim s As String
  Dim a0 as Integer
  Dim i as Integer
  Randomize
'  s = "Исходные массивы: " & Chr(10)
  s = "Исходный массив: " & Chr( 10 )
'  For j = 1 To 1
'    a(0) = 1 ' результат плохо отсканированного текста?
    a0 =  1 	
    For i =  1  To  10 
'      a(j, i) = Rnd() * 999 + 1
      a(i) = Rnd() *  999  +  1 		
'      If a(j, i) < a(j, a(j, 0)) Then a(j, 0) = i
      If a(i) < a(a0) Then a0 = i
'      s = s & Format(a(j, i), "00#") & " "
      s = s & Format(a(i), "000 ")
    Next
    s = s & Chr( 10 )
'  Next
'  s = s & Chr(10) & "Минимальные элементы в 3-й позиции, вместо их 101:" & Chr(10)
  s = s & Chr( 10 ) & "Минимальный элемент в 3-й позиции, вместо него 101:" & Chr( 10 )
'  For j = 1 To 1
'    a(j, 3) = a(j, a(j, 0))
    a( 3 ) = a(a0)
'    a(j, a(j, 0)) = 101
    a(a0) =  101 
    For i =  1  To  10 
'      s = s & Format(a(j, i), "00#") & " "
      s = s & Format(a(i), "000 ")
    Next
    s = s & Chr( 10 )
'  Next
  MsgBox s
' ЗЫ: определять минимальное значение массива при формировании последнего - читерство.
' ЗЗЫ: а _метод_, в принципе, правильный
End Sub
...
Рейтинг: 0 / 0
27.12.2010, 23:12
    #37038019
Задание VBA, 1й курс
FridGeДа и вторая задача тоже в принципе решена правильно, только что без границ массива..
Без границ, так без границВ задании:
№2. Сформировать ..., непревышающих сумму первых элементов исходных массивов.

В Вашем(?) в решении :
s = s & Chr(10) & "Массив из элементов, которые меньше суммы первых элементов = "
...
If a(j, i) < a(1, 1) + a(2, 1) + a(3, 1) Then s = s & Format(a(j, i), "00#") & " "

ЗЫ: повторюсь. Что мешает Вам вставить Ваше решение в Excel и запустить?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задание VBA, 1й курс / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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