powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача vba
107 сообщений из 107, показаны все 5 страниц
Задача vba
    #39879311
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Составить программу, которая будет считывать введённое пятизначное число. После чего, каждую цифру этого числа необходимо вывести в новой ячейке. Подскажите, что использовать для решения, функцию?
...
Рейтинг: 0 / 0
Задача vba
    #39879320
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для начала определиться, что значит "ячейка". Эксель? Ворд? Еще что-то?
...
Рейтинг: 0 / 0
Задача vba
    #39879321
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ексель. Shocker.Pro,
...
Рейтинг: 0 / 0
Задача vba
    #39879323
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично, теперь надо выяснить, фукнцию для решения чего именно надо подсказать. Потому что одной функции, которая решает всю эту задачу, нет. Потребуется несколько разных функций.
...
Рейтинг: 0 / 0
Задача vba
    #39879326
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите какие функци, попробую разобраться, что с ними делать.
...
Рейтинг: 0 / 0
Задача vba
    #39879337
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функции для чего, блин?
gembirdсчитывать введённое пятизначное числоОткуда считывать? Из формы, из инпутбокса, из ячейки, из текстбокса на листе, из файла, в конце концов
gembirdвывести в новой ячейкеКак добавить новые ячейки - со сдвигом остальных вправо, вниз, или может новую строку или столбец надо добавить, как располагать новые ячейки, по горизонтали, по вертикали.... мы всё это за тебя должны придумать, а ты будешь готовое решение ждать... или может сначала с заданием разберешься, вместо того, чтобы тупо копипастить от учителя?
...
Рейтинг: 0 / 0
Задача vba
    #39879353
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за помощь))), всю информацию, какой я обладаю, я выложил, теперь мне нужно направление куда идти и где смотреть. Может это не функция, может все гораздо проще. Ну а Вы мне прям очень помогли. Еще раз спасибо.
...
Рейтинг: 0 / 0
Задача vba
    #39879359
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdвсю информацию, какой я обладаюинформация, которой ты обладаешь и которой не обладаем мы - это что именно вы проходили, потому что учитель дает задание в контексте того материала, который он давал на уроке. А способов сделать ту или иную задачу гораздо больше, чем один, но вы их могли не проходить.
...
Рейтинг: 0 / 0
Задача vba
    #39879375
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, если не корректно задан вопрос, тема обсуждения была операторы и встроенные функции.
...
Рейтинг: 0 / 0
Задача vba
    #39879384
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вероятно, для начала нужна функция InputBox
...
Рейтинг: 0 / 0
Задача vba
    #39879395
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весьма благодарен.
...
Рейтинг: 0 / 0
Задача vba
    #39879444
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

Еще понадобится цикл For Next и пара функций Len и Mid.
...
Рейтинг: 0 / 0
Задача vba
    #39879467
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и без Len - на Like-e


Еще понадобится функция Cells как минимум
...
Рейтинг: 0 / 0
Задача vba
    #39879471
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeЕще понадобится цикл For Next
Я бы использовал WHILE. А ну как ошибка ввода...
...
Рейтинг: 0 / 0
Задача vba
    #39879474
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaА ну как ошибка ввода...ну тогда не обойтись без If и MsgBox
...
Рейтинг: 0 / 0
Задача vba
    #39879476
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕще понадобится функция CellsCells - это свойство (объектов Worksheet и Range, по умолчанию - ActiveSheet), а не функция...
...
Рейтинг: 0 / 0
Задача vba
    #39879492
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, приехали. Не сможет ТС решить задачу. У них там только операторы и функции.
...
Рейтинг: 0 / 0
Задача vba
    #39879612
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Zadacha1()
Dim a As Double, b As Double, c As Double, d As Double
a = Range("A1")
b = Left(a, 1)
c = Right(a, 1)
d = Mid(a, 3, 1)
Range("A2") = b
Range("A6") = c
Range("A4") = d
End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ
У меня только 1,3 ,5 цифру получилось достать из пятизначного числа
...
Рейтинг: 0 / 0
Задача vba
    #39879629
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdУ меня только 1,3 ,5 цифру получилось достать из пятизначного числапрекрасно! задача практически решена, осталось обратить внимание на функцию Mid, прочитать по ней справку
...
Рейтинг: 0 / 0
Задача vba
    #39879781
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое
...
Рейтинг: 0 / 0
Задача vba
    #39879864
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтоб получить значение разряда числа в 10 системе счисления, нужно просто разделить число 10^n без остатка и взять остаток от деления на 10.
для этого даже VBA не надо, достаточно примитивов формул Excel'я
=MOD(INT(A2 / 10 ^ B1), 10), где A2 - это исходное число, а B1 номер разряда
на VBA это примерно
(Value \ (10 ^ n)) MOD 10
номера разряда идут от младшего к старшему, 0 - самый младший, 4 - самый старший для 5-значных чисел
...
Рейтинг: 0 / 0
Задача vba
    #39879874
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub Chislo()
Dim a As Double, n1, n2, n3, n4, n5, n6

a = Range("A1")
n1 = Left(a, 1)
n2 = Right(a, 1)
n3 = Mid(a, 2, 3)
n4 = Left(n3, 1)
n5 = Right(n3, 1)
n6 = Mid(n3, 2, 1)
Range("A2") = n1
Range("A6") = n2
Range("A4") = n6
Range("A3") = n4
Range("A5") = n5


End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39879880
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

Ну ок, а почему просто не использовать Mid для всех пяти цифр числа, а не через такие странные конструкции? А если будет задача не 5 цифр, а 20? Сколько потребуется строк в твоем методе?
...
Рейтинг: 0 / 0
Задача vba
    #39879881
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proиспользовать Mid для всех пяти цифр числИ следующим шагом будет использование цикла от 1 до 5, как, собственно, и надо было решать эту задачу
...
Рейтинг: 0 / 0
Задача vba
    #39879901
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub NomerPloskosti()

Dim X As Integer, Y As Integer
X = Range("19")
Y = Range("20")
If (X < 0) And (Y > 0) Then
    Range("21") = "1"
 End If
 If (X > 0) And (Y > 0) Then
    Range("21") = "2"
 End If
  If (X < 0) And (Y < 0) Then
    Range("21") = "3"
 End If
    If (X > 0) And (Y < 0) Then
        Range("21") = "4"
 End If
 End Sub



Так можно записывать ? Ошибку дает
...
Рейтинг: 0 / 0
Задача vba
    #39879907
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub Chislo()
Dim a As Double, n1, n2, n3, n4, n5

a = Range("A1")
n1 = Mid(a, 1, 1)
n2 = Mid(a, 2, 1)
n3 = Mid(a, 3, 1)
n4 = Mid(a, 4, 1)
n5 = Mid(a, 5)
Range("A2") = n1
Range("A3") = n2
Range("A4") = n3
Range("A5") = n4
Range("A6") = n5


End Sub

Shocker.Pro,
...
Рейтинг: 0 / 0
Задача vba
    #39879931
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub Chislo()
    Dim srcValue As Double, n As Double
    srcValue = Range("A1")
    For n = 0 To 4
        Range("A2:A6")(n + 1) = (srcValue \ (10 ^ n)) Mod 10
    Next n
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39879932
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdТак можно записывать ? Ошибку даетнет
Код: vbnet
1.
Range("19")

что ты хотел этим сказать?
...
Рейтинг: 0 / 0
Задача vba
    #39879948
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub NomerPloskosti()

Dim X As Integer, Y As Integer
X = Range("B19")
Y = Range("B20")
If (X < 0) And (Y > 0) Then
   Range("B21") = "1"
 End If
 If (X > 0) And (Y > 0) Then
    Range("B21") = "2"
 End If
  If (X < 0) And (Y < 0) Then
    Range("B21") = "3"
 End If
    If (X > 0) And (Y < 0) Then
        Range("B21") = "4"
 End If
 End Sub


Да извините, не корректно указана ячейка.
...
Рейтинг: 0 / 0
Задача vba
    #39879954
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Roman Mejtes,
...
Рейтинг: 0 / 0
Задача vba
    #39879959
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub NomerPloskosti()

Dim X As Integer, Y As Integer
X = Range("B19")
Y = Range("B20")
If (X < 0) And (Y > 0) Then
   Range("B21") = "1"
 End If
 If (X > 0) And (Y > 0) Then
    Range("B21") = "2"
 End If
  If (X < 0) And (Y < 0) Then
    Range("B21") = "3"
 End If
    If (X > 0) And (Y < 0) Then
        Range("B21") = "4"
 End If
 End Sub

gembird,
В целом конструкция верна или так не делают?
...
Рейтинг: 0 / 0
Задача vba
    #39879987
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать программу преобразования десятичного числа в шестнадцатеричное. Подскажите куда смотреть?
...
Рейтинг: 0 / 0
Задача vba
    #39879997
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

Range("A1") = HEX(10digitNumber)
...
Рейтинг: 0 / 0
Задача vba
    #39880009
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю.
...
Рейтинг: 0 / 0
Задача vba
    #39880515
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача. Дано три числа. Расположите их в порядке возрастания. Тема Урока : Условные операторы. If..Then.. Else
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Vozrastanie()
Dim a As Integer, b As Integer, c As Integer
a = Range("b2")
b = Range("b3")
c = Range("b4")
If (a <= b) And (a <= c) Then
    Range("c2") = "1"
 End If
 If (b >= a) And (b <= c) Then
    Range("c3") = "2"
 End If
If (c >= a) And (c >= b) Then
    Range("c4") = "3"
    End If
 
End Sub


Не работает. Дает только первый результат.
...
Рейтинг: 0 / 0
Задача vba
    #39880530
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А всё потому, что отсутствуетgembirdElse
...
Рейтинг: 0 / 0
Задача vba
    #39880533
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdЗадача. Дано три числа. Расположите их в порядке возрастания. Тема Урока : Условные операторы. If..Then.. Else
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Vozrastanie()
Dim a As Integer, b As Integer, c As Integer
a = Range("b2")
b = Range("b3")
c = Range("b4")
If (a <= b) And (a <= c) Then
    Range("c2") = "1"
 End If
 If (b >= a) And (b <= c) Then
    Range("c3") = "2"
 End If
If (c >= a) And (c >= b) Then
    Range("c4") = "3"
    End If
 
End Sub


Не работает. Дает только первый результат.

Три числа могут быть размещены 6 способами - факториал 3.
Значит в коде должно быть 6 проверок.
Код: vbnet
1.
2.
3.
4.
5.
if (a<=b) and (a<=c) and (b<=c) then 
range("c2")=a
range("c3")=b
range("c4")=c
end if


Итак 6 раз.
...
Рейтинг: 0 / 0
Задача vba
    #39880542
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Vozrastanie()
Dim a As Integer, b As Integer, c As Integer
a = Range("b2")
b = Range("b3")
c = Range("b4")
If (a <= b) And (a <= c) Then
    Range("c2") = "1"
    Elsae If (b >= a) And (b <= c) Then
        Range("c3") = "2"
    Else If (c >= a) And (c >= b) Then
          Range("c4") = "3"
            End If
    
 
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39880549
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

Если даже убрать ошибки синтаксиса, то работать не будет.
Попробуй взять числа 2,5,3 и запустить свой код.
...
Рейтинг: 0 / 0
Задача vba
    #39880556
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

Простая логика. В каждой из ячеек (с2-с4) у тебя может оказаться одно из чисел (1-3)

У тебя есть только Range("c2") = "1", а Range("c2") = "2" и Range("c2") = "3" у тебя нигде нет.

Улавливаешь проблему?
...
Рейтинг: 0 / 0
Задача vba
    #39880569
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Vozrastanie()
Dim a As Integer, b As Integer, c As Integer
a = Range("b2")
b = Range("b3")
c = Range("b4")
If (a < b) And (a < c) Then
    Range("c2") = a
    Else If (b > a) And (b < c) Then
        Range("c3") = b
    Else If (c > a) And (c > b) Then
          Range("c4") = c
          
            End If
    
 
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39880570
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это академическая задача? то есть есть какое то письменное задание? я так и не понял, что конкретно хочет автор?
перестановки? что происходит? :D
...
Рейтинг: 0 / 0
Задача vba
    #39880577
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача по VBA, учебное пособие, нужно раставить в порядке возрастания , какие- то три числа. По идее ничего сложного для Вас, но у меня не получается, комп плюется ошибками.
...
Рейтинг: 0 / 0
Задача vba
    #39880581
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdЗадача по VBA, учебное пособие, нужно раставить в порядке возрастания , какие- то три числа. По идее ничего сложного для Вас, но у меня не получается, комп плюется ошибками.Так надо прочитать эти ошибки, а не просто сетовать.

В данном случае проблема в том, что количество End If не соответствует количеству If.

Либо нужно использовать ElseIf, если вы его проходили, тогда можно обойтись одним End If
...
Рейтинг: 0 / 0
Задача vba
    #39880584
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdЗадача. Дано три числа. Расположите их в порядке возрастания.
Код: vbnet
1.
2.
3.
Range("A1") = WorksheetFunction.Min(a,b,c)
Range("A3") = WorksheetFunction.Max(a,b,c)
Range("A2") = a+b+c-Range("A1")-Range("A3")

...
Рейтинг: 0 / 0
Задача vba
    #39880638
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

авторТема Урока : Условные операторы. If..Then.. Else
Неспортивно ;)
...
Рейтинг: 0 / 0
Задача vba
    #39880641
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeНеспортивно ;)Можно добавить If True

А так - да, неспортивно. Можно же было прям в ячейках средствами экселя отсортировать
...
Рейтинг: 0 / 0
Задача vba
    #39880670
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача VBa.
Запрограммируйте шуточный тест "Проверь свои возможности". Пользователю предлагается ответить на 7 вопросов:
1) Профессор лёг спать в 8 часов, а встал в 9 часов. Сколько часов проспал профессор? (1)
2) На двух руках 10 пальцев. Сколько пальцев на 10?(50)
3) Сколько цифр в дюжине?(2)
4) Сколько нужно сделать запилов, чтобы распилить бревно на 12 частей? (11)
5) Врач сделал три укола в интервале 30 минут. Сколько времени он затратил? (30)
6) Сколько цифр 9 в интервале 1 100? (1)
7) У пастуха было 30 овец. Все кроме одной разбежались. Сколько овец осталось? (1)
Оценка ответов пользователя:
- если 7 правильных, то печатается "Гений";
- если 6 правильных, то печатается "Эрудит";
- если 5 правильных, то печатается "Нормальный";
- если 4 правильных, то печатается "Способности средние";
- если 3 правильных, то печатается "Способности ниже среднего";
- если <2 правильных, то печатается "Вам надо отдохнуть!".
Использовать оператор if then else.
Подскажите с чего начать.
...
Рейтинг: 0 / 0
Задача vba
    #39880676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6-й ответ неверный )
...
Рейтинг: 0 / 0
Задача vba
    #39880677
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdПодскажите с чего начать.Начать надо с рисования алгоритма на бумажке - да-да, те самые ромбики, прямоугольнички и стрелочки.
Опять же не очень понятно, каким способом задаются вопросы и получаются ответы? MsgBox-ами и InputBox-ами или, допустим, список вопросов в ячейках листа и список ответов напротив
...
Рейтинг: 0 / 0
Задача vba
    #39880940
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрограммируйте шуточный тест "Проверь свои возможности". Пользователю предлагается ответить на 7 вопросов:
1) Профессор лёг спать в 8 часов, а встал в 9 часов. Сколько часов проспал профессор? (1)
2) На двух руках 10 пальцев. Сколько пальцев на 10?(50)
3) Сколько цифр в дюжине?(2)
4) Сколько нужно сделать запилов, чтобы распилить бревно на 12 частей? (11)
5) Врач сделал три укола в интервале 30 минут. Сколько времени он затратил? (30)
6) Сколько цифр 9 в интервале 1 100? (1)
7) У пастуха было 30 овец. Все кроме одной разбежались. Сколько овец осталось? (1)
Оценка ответов пользователя:
- если 7 правильных, то печатается "Гений";
- если 6 правильных, то печатается "Эрудит";
- если 5 правильных, то печатается "Нормальный";
- если 4 правильных, то печатается "Способности средние";
- если 3 правильных, то печатается "Способности ниже среднего";
- если <2 правильных, то печатается "Вам надо отдохнуть!".
Если сложить все ответы на вопросы (если не углубляться, что ответ номер 6 не верен), то сумма верных ответов равна 94, это даст нам MsgBox"Гений", вот дальше как найти 6 правильных ответов? Перебирать все варианты?
...
Рейтинг: 0 / 0
Задача vba
    #39880944
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdЕсли сложить все ответы на вопросы ..., то сумма верных ответов равна 94Вообще не туда полез
Если на первый вопрос ответят 2, а на второй 49, то в сумме будет всё равно 94, так что этот метод никак не даст тебе возможность проверить правильность ответов.
...
Рейтинг: 0 / 0
Задача vba
    #39880971
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub Test()

Dim n1 As Byte, n2 As Byte, n3 As Byte, n4 As Byte, n5 As Byte, n6 As Byte, n7 As Byte
n1 = Range("a21")
n2 = Range("a22")
n3 = Range("a23")
n4 = Range("a24")
n5 = Range("a25")
n6 = Range("a26")
n7 = Range("a27")
If n1 = 1 And n2 = 50 And n2 = 2 And n4 = 11 And n5 = 30 And n6 = 1 And n7 = 1 Then
    MsgBox ("&#195;&#229;&#237;&#232;&#233;")
    End If
    
...
Рейтинг: 0 / 0
Задача vba
    #39880978
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 If n1 <> 1 And n2 = 50 And n4 = 11 And n5 = 30 And n6 = 1 And n7 = 1 Then
    MsgBox ("Эрудит")
    End If
 If n1 = 1 And n2 <> 50 And n2 = 2 And n4 = 11 And n5 = 30 And n6 = 1 And n7 = 1 Then
    MsgBox ("Эрудит")
    End If
If n1 = 1 And n2 = 50 And n3 <> 2 And n4 = 11 And n5 = 30 And n6 = 1 And n7 = 1 Then
   MsgBox ("Эрудит")
    End If
If n1 = 1 And n2 = 50 And n3 = 2 And n4 <> 11 And n5 = 30 And n6 = 1 And n7 = 1 Then
   MsgBox ("Эрудит")
    End If
If n1 = 1 And n2 = 50 And n3 = 2 And n4 = 11 And n5 <> 30 And n6 = 1 And n7 = 1 Then
   MsgBox ("Эрудит")
    End If
If n1 = 1 And n2 = 50 And n3 = 2 And n4 = 11 And n5 = 30 And n6 <> 1 And n7 = 1 Then
   MsgBox ("Эрудит")
If n1 = 1 And n2 = 50 And n3 = 2 And n4 = 11 And n5 = 30 And n6 = 1 And n7 <> 1 Then
   MsgBox ("Эрудит")
    End If


Уровень "Нормальный" будет еще больше вариантов.
...
Рейтинг: 0 / 0
Задача vba
    #39881004
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё неправильно!

Ты должен определить по каждому пункту, правильный ответ - 1 или неправильный - 0 и просуммировать их

Я же сказал, сначала алгоритм на бумажке нарисуй, а потом будешь программу писать.
...
Рейтинг: 0 / 0
Задача vba
    #39881005
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет семь проверок ответов на вопрос и шесть проверок на определение ответа
...
Рейтинг: 0 / 0
Задача vba
    #39881035
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
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.
Sub Test()

Dim n1 As Byte, n2 As Byte, n3 As Byte, n4 As Byte, n5 As Byte, n6 As Byte, n7 As Byte
Dim S1 As Byte, S2 As Byte, S3 As Byte, S4 As Byte, S5 As Byte, S6 As Byte, S7 As Byte
n1 = Range("a21")
n2 = Range("a22")
n3 = Range("a23")
n4 = Range("a24")
n5 = Range("a25")
n6 = Range("a26")
n7 = Range("a27")
If n1 = 1 Then
    S1 = 1
Else
        If n1 <> 1 Then
            S1 = 0
            End If
If n2 = 50 Then
    S2 = 1
Else
        If n2 <> 50 Then
            S2 = 0
            End If
 If n3 = 2 Then
    S3 = 1
  Else
        If n3 <> 2 Then
             S3 = 0
            End If
If n4 = 11 Then
    S4 = 1
  Else
        If n4 <> 11 Then
            S4 = 0
            End If
 If n5 = 30 Then
    S5 = 1
   Else
        If n5 <> 30 Then
            S5 = 0
            End If
 If n6 = 1 Then
    S6 = 1
 Else
        If n6 <> 1 Then
        S6 = 0
        End If
 If n7 = 1 Then
    S7 = 1
 Else
        If n7 <> 1 Then
        S7 = 0
        End If
If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 7 Then
    MsgBox ("Гений")
    End If
 If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 6 Then
    MsgBox ("Эрудит")
    End If
If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 5 Then
    MsgBox ("Нормальный")
    End If
If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 4 Then
    MsgBox ("Способности средние")
    End If
 If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 3 Then
    MsgBox ("Способности ниже среднего")
    End If
If S1 + S2 + S3 + S4 + S5 + S6 + S7 = 2 Then
    MsgBox ("Вам надо отдохнуть!".")
    End If
    
End Sub



Выкладываю в таком виде, бумажку (где накидываю всю схему)не могу сюда прикрепить
...
Рейтинг: 0 / 0
Задача vba
    #39881055
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за внимание.
...
Рейтинг: 0 / 0
Задача vba
    #39881134
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird- если <2 правильных, то печатается "Вам надо отдохнуть!".неверно выполнено условие задачи

и совершенно необязательно было создавать семь переменных S а потом их шесть раз суммировать
достаточно было
Код: vbnet
1.
2.
3.
 If n6 = 1 Then
    S = S + 1
 Else
...
Рейтинг: 0 / 0
Задача vba
    #39881256
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется определить, бьет ли шахматный слон, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой указанной клетке. Вводятся в ячейках четыре числа: координаты слона и координаты другой фигуры.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Shahmat()

Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
x1 = Range("A30")
x2 = Range("A31")
y1 = Range("B30")
y2 = Range("B31")
If (Abs(x1 - y1) = Abs(x2 - y2)) Or (Abs(x1 + y1) = (x2 + y2)) Then
    MsgBox ("да")
 Else
        MsgBox ("нет
")
         End If

End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39881263
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdВводятся в ячейках четыре числа: координаты слона и координаты другой фигуры.Недостаточно информации. Нужна информация о том, где стоят другие фигуры!

Вот не программисты эти задания пишут, дилетанты, сразу видно.
...
Рейтинг: 0 / 0
Задача vba
    #39881448
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я одно не могу понять нахера в этих задачах Excel и нахера в этих задачах VBA, можно использовать что то одно, а лучше не то и не другое
...
Рейтинг: 0 / 0
Задача vba
    #39881470
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProgembirdВводятся в ячейках четыре числа: координаты слона и координаты другой фигуры.Недостаточно информации. Нужна информация о том, где стоят другие фигуры!

Вот не программисты эти задания пишут, дилетанты, сразу видно.
У меня предположение, что фигуры всего две на доске слон и еще одна, поэтому всего четыре координаты.
...
Рейтинг: 0 / 0
Задача vba
    #39881521
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembirdУ меня предположение, что фигуры всего две на доске слон и еще одна, поэтому всего четыре координаты.в программировании нельзя работать с такими предположениями, нужно всегда уточнять, иначе...
...
Рейтинг: 0 / 0
Задача vba
    #39881535
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату не високосного года. Вывести значения D и M для даты, предшествующей указанной. Подскажите здесь пжлста.
...
Рейтинг: 0 / 0
Задача vba
    #39881538
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату не високосного года. Вывести значения D и M для даты, предшествующей указанной. Подскажите здесь пжлста.
...
Рейтинг: 0 / 0
Задача vba
    #39881581
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateSerial и DateAdd
...
Рейтинг: 0 / 0
Задача vba
    #39881591
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
Задача vba
    #39882083
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать программу, которая находит все четырехзначные числа abсd (а, b, с, d — цифры числа, причем между ними нет совпадений, т. е. числа, например, типа 1221 нас не устраивают, т. е. любые две цифры числа различны), для которых выполняется условие: ab-cd=a+b+c+d. Другими словами, разность чисел, составленных из старших цифр числа и из младших, равна сумме цифр числа.
...
Рейтинг: 0 / 0
Задача vba
    #39882085
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема урока циклы.
...
Рейтинг: 0 / 0
Задача vba
    #39882086
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перебрать числа от 1000 до 9999 можно через For, как извлечь цифры из числа писали выше, условия проверять ты уже умеешь.
...
Рейтинг: 0 / 0
Задача vba
    #39882108
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вот так попробовать?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
For a = 1 To 9
    For b = 0 To 9
        If b <> a Then
            For c = 0 To 9
                If (c <> a) And (c <> b) Then
                    For d = 0 To 9
                        If (d <> a) And (d <> c) And (d <> b) Then
                        Else
                            If a * b - c * d = a + b + c + d Then
                                MsgBox (abcd)
...
Рейтинг: 0 / 0
Задача vba
    #39882115
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

как вариант - норм.
Попробуй вариант от Shocker и сравни результат.
...
Рейтинг: 0 / 0
Задача vba
    #39882487
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В столбец водятся десять натуральных чисел больше 2. Посчитать, сколько среди них простых чисел
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
i = 2
For i = 2 To 10
    n = Cells(i, 1)
    i = i + 1
        If n1 = n \ n Or n1 = n \ 1 Then
            Cells(i, 1) = n1
            End If
          Next i


Подскажите пжлста новая тема , не понятно, что не так.
...
Рейтинг: 0 / 0
Задача vba
    #39882591
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показал в комментариях
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
i = 2  'Лишнее
For i = 2 To 10
    n = Cells(i, 1)
    i = i + 1  'все ломается здесь!!!!!
    If n1 = n \ n Or n1 = n \ 1 Then
            Cells(i, 1) = n1
    End If   'подвинул строку влево под If - обычно пишут так
Next i ' подвинул строку влево под For - обычно пишут так
...
Рейтинг: 0 / 0
Задача vba
    #39882595
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку - зачем менять в цикле ПАРАМЕТР ЦИКЛА????
...
Рейтинг: 0 / 0
Задача vba
    #39882665
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что не проходите мимо и помогаете студенту.
...
Рейтинг: 0 / 0
Задача vba
    #39888170
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дан массив A вещественного типа, содержащий 20 положительных и отрицательных элементов. Сформировать массив B из положительных элементов массива A, имеющих четный индекс. Найти сумму квадратов элементов нового массива.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Randomize
Dim a(1 To 20) As Integer, b(1 To 20) As Integer, i As Byte, j As Byte, s As Integer
For i = 1 To 20
    a(i) = 20 * Rnd
    Cells(i, 1) = a(i)
Next i
For i = 1 To 20 Step 2
    If a(i) > 0 Then
        i = i + 1
        b(j) = a(i)
        Cells(i, 2) = b(j)
     End If
Next i
s = 0
j = 0
For j = 1 To 20
    s = s + b(j) * b(j)
    MsgBox (s)
Next j
End Sub


Подскажите пожалуйста, что не так?
...
Рейтинг: 0 / 0
Задача vba
    #39888176
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Код: vbnet
1.
i = i + 1

ты опять меняешь итератор цикла внутри цикла
...
Рейтинг: 0 / 0
Задача vba
    #39888183
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять Excel? T_T
...
Рейтинг: 0 / 0
Задача vba
    #39888192
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и где проверка на чётность?
где отрицательные числа?
где вещественный тип? у вас целые натуральные, а не вещественные числа

всё, что вы сделали выше, можно сделать в 1 цикл, а не в 3

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Function GetRandom(lowerbound As Double, upperbound As Double) As Double
    GetRandom = (upperbound - lowerbound + 1) * Rnd + lowerbound
End Function

Sub OhMyGod()
    Randomize
    Dim a(1 To 20) As Double, b(1 To 20) As Double, i As Byte, j As Byte, s As Double
    
    For i = 1 To 20
        a(i) = GetRandom(-10, 10)
        Cells(i, 1) = a(i)
        If (i Mod 2 = 0) And a(i) > 0 Then
            j = j + 1
            b(j) = a(i)
            Cells(j, 2) = b(j)
            s = s + b(j) ^ 2
        End If
    Next i
    Cells(1, 3) = s
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39888194
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл, что редактирование добавили :)
...
Рейтинг: 0 / 0
Задача vba
    #39888203
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,
Спасибо за ответ, но нам функциями нельзя пользоваться еще ( да я и не умею). Вот что получилось с учетом ваших замечаний.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Randomize
Dim a(1 To 20) As Integer, b(1 To 20) As Integer, i As Byte, j As Byte, s As Integer
For i = 1 To 20
    a(i) = 20 * Rnd
    Cells(i, 1) = a(i)
Next i
For i = 1 To 20
    If a(i) > 0 And (i Mod 2 = 0) Then
        j = j + 1
        b(j) = a(i)
        Cells(j, 2) = b(j)
     End If
Next i
s = 0
j = 0
For j = 1 To 20
    s = s + b(j) ^ 2
    MsgBox (s)
Next j
End Sub


Работает, еще раз спасибо. Про счетчик никак не уложится инфа в голове.
...
Рейтинг: 0 / 0
Задача vba
    #39888205
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отрицательных чисел нет, могли просто GetRandom заменить выражением и определить вместо параметров константы или переменные
типы чисел не вещественные
как бы всё равно не соответствует поставленной задаче ваш пример, садитесь, два!
...
Рейтинг: 0 / 0
Задача vba
    #39888206
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, Step 2 тоже было правильно, вместо (i Mod 2 = 0)
Только цикл надо было начинать с 2
...
Рейтинг: 0 / 0
Задача vba
    #39888316
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дан массив, например, состоящий только из 0 и 1. Определить самое большое количество подряд идущих единиц и вывести на экран индексы начала и конца этого диапазона.
Код: vbnet
1.
2.
3.
For i = 1 To 10
    a(i) = Rnd(10)
    Cells(i, 1) = a(i)


Подскажите куда дальше, если a(i) равно 1 то..?
...
Рейтинг: 0 / 0
Задача vba
    #39888333
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
научитесь мыслить как программист, весь смысл этих задач в этом, если мы будем подсказывать вам всё время, так и останетесь на этом уровне.

объявите
* массив
* переменную текущего индекса элемента "i" (с помощью которого мы будем обходить массив),
* переменную со счетчиком последовательно идущих чисел "l"
* переменную в которой будет храниться индекс начала текущей последовательности "p"
конец последовательности будет равен равен (позиции + размер, p+l)
* переменные начала и и размера самой большой последовательности lMax, pMax
в которую мы будет сохранять промежуточные значения, если они больше ранее сохраненных.
реализуйте
итерацию массива со i=2 позиции и до его правого края, сравнивать текущий элемент с предыдущим на равенство,
если они равны, значит это последовательность и мы увеличиваем l на 1
если они не равны, значит последовательность закончилась, и начинается новая последовательность, но перед этим нужно проверить разницу текущей найденной последовательности с максимальной, если l > lMax, мы сохраняем в переменные lMax и pMax значения l и p соответственно, после чего сбрасываем счетчик l = 0 (так как началась новая последовательность) и запоминаем позицию начала текущей последовательности p = i.
можно не использовать переменную l, так как она будет равна текущей позиции i - p
...
Рейтинг: 0 / 0
Задача vba
    #39888651
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim a(1 To 10) As Byte, i As Byte, k As Byte, Imax As Integer, p As Byte, Pmax As Integer
For i = 1 To 10
    a(i) = Rnd(10)
    Cells(i, 1) = a(i)
Next i
For i = 1 To 10
    If a(i) = 1 Then
        k = k + 1
        If k > Imax And (i = 9 - 1) Then
           Imax = k
            p = i
            Pmax = p - k + 1
        End If
     Else
            k = 0
            
    End If
Next i
   Cells(1, 2) = Imax
    Cells(2, 2) = Pmax
     Cells(3, 2) = Imax + Pmax
End Sub


Вот что получилось, работает, но как-то не очень.
...
Рейтинг: 0 / 0
Задача vba
    #39888669
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird,

(i = 9 - 1) вот это выражение вызывает у меня вопросы, что это такое?
для получения границ размерности массив в барсике есть соответствующие строенные функции
...
Рейтинг: 0 / 0
Задача vba
    #39888780
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В один массив записаны наименования товаров, в другую - их цена. Написать программу, вычисляющую общую стоимость покупки при условии, что пользователь может указывать приобретаемый товар и его количество.
Код: vbnet
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.
Dim a(10) As String, i As Byte, j As Byte
a(1) = "Тетрадь"
a(2) = "Книга"
a(3) = "Ручка"
a(4) = "Линейка"
a(5) = "Карандаш"
a(6) = "Скотч"
a(7) = "Резинка"
a(8) = "Фломастер"
a(9) = "Степлер"
a(10) = "Циркуль"
For i = 1 To 10
    Cells(i, 1) = a(i)
Next i
Dim b(10) As Double
b(1) = 30.7
b(2) = 335.89
b(3) = 70.9
b(4) = 60.85
b(5) = 75
b(6) = 115.5
b(7) = 110
b(8) = 147.3
b(9) = 98.9
b(10) = 220
For j = 1 To 10
    Cells(j, 2) = b(j)
Next j
Dim n As String, q As Double, cost As Double, nam As Double, qualty As Double
n = InputBox("Наименование")
n = nam
q = InputBox("Количество")
q = qualty
cost = 1
For i = 1 To 10
    If a(i) = nam Then
        nam = a(i)
        b(j) = a(i)
         cost = b(j) * qualty
     End If
Next i
MsgBox (cost)
End Sub


Что опять не так в последней части.(((((
...
Рейтинг: 0 / 0
Задача vba
    #39888782
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В один массив записаны наименования товаров, в другую - их цена. Написать программу, вычисляющую общую стоимость покупки при условии, что пользователь может указывать приобретаемый товар и его количество.
Код: vbnet
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.
Dim a(10) As String, i As Byte, j As Byte
a(1) = "Тетрадь"
a(2) = "Книга"
a(3) = "Ручка"
a(4) = "Линейка"
a(5) = "Карандаш"
a(6) = "Скотч"
a(7) = "Резинка"
a(8) = "Фломастер"
a(9) = "Степлер"
a(10) = "Циркуль"
For i = 1 To 10
    Cells(i, 1) = a(i)
Next i
Dim b(10) As Double
b(1) = 30.7
b(2) = 335.89
b(3) = 70.9
b(4) = 60.85
b(5) = 75
b(6) = 115.5
b(7) = 110
b(8) = 147.3
b(9) = 98.9
b(10) = 220
For j = 1 To 10
    Cells(j, 2) = b(j)
Next j
Dim n As String, q As Double, cost As Double, nam As Double, qualty As Double
n = InputBox("Наименование")
n = nam
q = InputBox("Количество")
q = qualty
cost = 1
For i = 1 To 10
    If a(i) = nam Then
        nam = a(i)
        b(j) = a(i)
         cost = b(j) * qualty
     End If
Next i
MsgBox (cost)
End Sub


Что опять не так в последней части.(((((
...
Рейтинг: 0 / 0
Задача vba
    #39888796
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Код: vbnet
1.
2.
n = InputBox("Наименование")
n = nam


gembird
Код: vbnet
1.
2.
q = InputBox("Количество")
q = qualty

Зачем ты вызываешь InputBox, если не пользуешься результатом вызова?
...
Рейтинг: 0 / 0
Задача vba
    #39888829
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim n As String, q As Double, cost As Double, nam As Double, qualty As Double
n = InputBox("Наименование")
nam = n
q = InputBox("Количество")
qualty = q
cost = 1
For i = 1 To 10
    If a(i) = nam Then
        nam = a(i)
        b(j) = a(i)
         cost = b(j) * qualty
     End If
Next i
MsgBox (cost)
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39888834
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Код: vbnet
1.
nam As Double

почему?

gembird
Код: vbnet
1.
2.
    If a(i) = nam Then
        nam = a(i)

Зачем, если они равны?
...
Рейтинг: 0 / 0
Задача vba
    #39888851
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim n As String, q As Double, cost As Double, nam As String, qualty As Double
n = InputBox("Наименование")
nam = n
q = InputBox("Количество")
qualty = q
cost = 1
For i = 1 To 10
    If a(i) = nam Then
        nam = b(j)
        cost = b(j) * qualty
     End If
Next i
MsgBox (cost)
End Sub
...
Рейтинг: 0 / 0
Задача vba
    #39888860
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Код: vbnet
1.
cost = 1

То есть если пользователь попытается купить товар, которого нет в наличии, он должен заплатить один рубль?

gembird
Код: vbnet
1.
        nam = b(j)

nam в дальнейшем не используется, смысл его запоминать?

Еще я бы добавил выход из цикла, когда товар найден. Зачем остальные товары проверять?
...
Рейтинг: 0 / 0
Задача vba
    #39890558
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывести на экран все числа от 1 до 9999 в десятичной записи которых есть цифра 3.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim a As Integer, b As Integer, c As Integer, d As Integer, n As Integer
For a = 0 To 9
  For b = 0 To 9
    For c = 0 To 9
        For d = 1 To 9
            If a = 3 Or b = 3 Or c = 3 Or d = 3 Then
                n = a * 1000 + b * 100 + c * 10 + d
                 Cells(1, 1) = n
            End If
            Next d
        Next c
    Next b
Next a
  
...
Рейтинг: 0 / 0
Задача vba
    #39890564
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Код: vbnet
1.
Cells(1, 1) = n

?
...
Рейтинг: 0 / 0
Задача vba
    #39890582
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывод числа в ячейку.
...
Рейтинг: 0 / 0
Задача vba
    #39890592
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты и выводишь число в ячейку, потом другое число... и так до последнего.
Ячейка - не бездонная бочка, новое число записал - старое пропало.
...
Рейтинг: 0 / 0
Задача vba
    #39890651
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ну ты и выводишь число в ячейку, потом другое число... и так до последнего.
Ячейка - не бездонная бочка, новое число записал - старое пропало.
а я бы тем, кто заставлял бы меня выводить результаты в ячейки excel'я нафиг послал с такими заданиями, наркомания какая то )
можно в 3 цикла, ведь известно, что как минимум в разряде поле будет 3
в 3 цикла, а потом

3abc
a3bc
ab3c
abc3
и перебирать уже надо не 10000, а всего 1000
...
Рейтинг: 0 / 0
Задача vba
    #39890832
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Ну ты и выводишь число в ячейку, потом другое число... и так до последнего.
Ячейка - не бездонная бочка, новое число записал - старое пропало.

Я не очень понимаю, что надо, может msgbox(n)?
...
Рейтинг: 0 / 0
Задача vba
    #39890833
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gembird
Я не очень понимаю, что надо
это ты скажи, что ты хочешь получить, а потом будем смотреть, что для этого надо
gembird
может msgbox(n)?
ты хочешь получить несколько сотен сообщений?
...
Рейтинг: 0 / 0
Задача vba
    #39890851
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для академических целей самый идеальный вариант это консольные приложения и ввод\вывод из консоли
...
Рейтинг: 0 / 0
Задача vba
    #39890894
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
достаточно Print.Debug
...
Рейтинг: 0 / 0
Задача vba
    #39890962
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Debug.Print (n), да спасибо за вариант
...
Рейтинг: 0 / 0
Задача vba
    #39891121
gembird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В каждом столбце и каждой строке матрицы содержится строго по одному нулевому элементу. Перестановкой строк добиться расположения всех нулей на главной диагонали матрицы. Написать функцию генерации исходной матрицы
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function random(b As Integer, c As Integer) As Integer
random = (c - b + 1) * Rnd + b
End Function
Sub bilet2b()

Dim a(10, 10) As Integer, i As Byte, j As Byte
For i = 1 To 10
    For j = 1 To 10
        a(i, j) = random(-5, 10)
        Cells(i + 1, j + 1) = a(i, j)
     Next j
Next i
For i = 1 To 10
    For j = 1 To 10
        If a(i, j) = 0 Then
           a(i, j) = a(i, i)
        End If
    Next j
Next i
...
Рейтинг: 0 / 0
107 сообщений из 107, показаны все 5 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задача vba
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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