powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / VBA Найти значение функции
17 сообщений из 17, страница 1 из 1
VBA Найти значение функции
    #39953334
Victorious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, очень нужна помощь с примером, где нужно найти значение функции m. Сижу над ним с самого обеда и никак не соображу что делать. Наибольшее затруднение вызывает нахождение первой строки, я не понимаю как записать, а раз уж не получается найти первое, то и все последующее не клеится. Помогите пожалуйста.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953342
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8 класс, похоже...

не помню, есть ли min/max в стандартном пакете Math, но если даже нет, то легко делается через if then else endif
да и все остальное делается через if
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953343
Victorious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, проблема в том, что я не могу расписать это... Получается бред сивой кобылы, я бы не стал писать, если бы мог сам, не могли бы вы, пожалуйста,помочь с этим?
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953345
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victorious,

Показывайте ваш код.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953354
Victorious
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, код совершенно неправильный и максимально тупой, еще и не законченный..Вба начали изучать в этом семестре, я первокурсник, доосваивать приходится дома самому..и не очень удачно как видите

Код: 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.
Title = "Ввод исходных данных": Vvod = "Введите значение переменных "
10 X = CSng(InputBox(Vvod & " X", Title)) 'Ввод X
Y = CSng(InputBox(Vvod & " Y", Title)) 'Ввод Y
a = CSng(InputBox(Vvod & "a ", Title)) 'Ввод à
b = CSng(InputBox(Vvod & " b", Title)) 'Ввод b
c = CSng(InputBox(Vvod & " c", Title)) 'Ввод c
Dim max, min, max2, d, m As Double
If X > 0 And Y > 2 Then GoTo 1
Else: GoTo 2
End If
1 If max < min Then
max2 = max
Else: c = min
1 If (Log(X) > (X + Y)) Then
   max = Log(X)
Else: max = X + Y
End If
If Math.Cos(1 - ((c * X ^ 2) / b)) < a * X Then
   min = Math.Cos(1 - ((c * X ^ 2) / b))
Else: min = a * X
End If
2 If Y > 0 And X < 0 Then GoTo 3
Else: m = 1 + X ^ 2
End If
If X < Y Then
  d = X
Else
  d = Y
End If
3 m = 1 + Math.Cosx ^ d
End Sub


Модератор: Для оформления кода есть тэг [ SRC ]
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953362
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victorious,

Запомни правило: никогда не писать сразу всю программу.

У тебя три раза встречается min. Сделай сначала процедуру и проверь.
Далее - max, похоже на min и проверь.
Составь цепочку min и max и проверь.

А далее - постепенно нагружай и проверяй.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953459
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victorious,

Какой адъ. Вам точно не стоит писать код. Не ваше это...
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953587
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victorious, не используй номера строк, это аттавизм, оставшийся от 80-х.
Заместо них используй символьно-числовые метки (напр lab1: ....... lab2: ......... и т.д.) как в нормальных языках.
Но здесь всё делается без меток.

Вместо ифов можно один оператор переключения:
switch ....
case ....
....
case ....
....
default ....
....
end switch

Да и вообще, прочти хелп по языку. И потренируйся в простейшем программировании с кем-нибудь.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953614
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov
...

У тебя три раза встречается min. Сделай сначала процедуру и проверь.
Далее - max, похоже на min и проверь.
....

Извините за любопытство, а можно посмотреть, как правильно min и max
на VBA реализовывать, покажете?
Модератор: Может не стоит от темы топика удаляться? Если нет советов для ТС, то лучше бы промолчать
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953622
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Victorious,

Какой адъ. Вам точно не стоит писать код. Не ваше это...

Все мы с чего-то начинали. Он же сказал что первый курс заочно.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953638
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

а что Вы за советы ТС здесь принимаете - "вам не надо писать" или "не используй номера строк"?
Какой "совет" лучше?

min и max здесь, очевидно, часть задачи.
Увидеть образец реализации было бы полезно не только для TC.
Имхо...
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953854
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby, а я малость пополемизирую.
Имеем фрагмент.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim max, min, max2, d, m As Double
If X > 0 And Y > 2 Then GoTo 1
Else: GoTo 2
End If
1 If max < min Then
max2 = max
Else: c = min
1 If (Log(X) > (X + Y)) Then
........

Видим, что объявленные переменные используются без ЯВНОЙ инициализации. Такие вещи ВБА разрешает, но они имеют ограничения. Видим числовую метку "1" в нескольких строках и " GoTo 1".
Начинающий не должен использовать такое, а использующий должен точно понимать, что он делает.

Промежуточное ИМХО: изучение ВБА (как и другого ЯП) правильно начинать с обучения основам программирования вообще.
Не верю, что прям так сразу им дали ЯП. И да, код "пахнет" недостаточным пониманием основ пр-я - с них лучше и начать. Тем более при таком уровне понимания программирования вообще, давать пример использование функции преждевременно. А уж ВБА примеров в инете тьма тьмущая.
Сегодня 3-е мая, ТС - 30 апреля и больше ни гу-гу.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953862
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не надо грузить на начинающего рассуждения о метках, или ещё чего-нибудь ...

Три условия:

если x,y то :
иначе если x,y то :
иначе: .

И больше ничего!
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953869
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,

У начинающего есть право использовать слова, смысла которых он не понимает.
Он так знакомится с ними и запоминает само звучание, потом и смысл подойдет.
А стареющему разрешено выживать из ума, это объяснимо.
Но тогда участие в темах, в которых он не знаком или плохо знаком с предметом - на свой страх и риск, нельзя ожидать снисхождения.

авторВидим, что объявленные переменные используются без ЯВНОЙ инициализации. Такие вещи ВБА разрешает, но они имеют ограничения.
Вы вообще зачем это пишите?
Что вас манит и заставляет...
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953914
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby, адвокат из вас никакой.
И выпады в сторону чьего-либа ника не выглядят доблестью.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953917
Eolt
Victorious,

Какой адъ. Вам точно не стоит писать код. Не ваше это...

да ладно уж... препода сжечь, а пациенту объяснить нормально, как правильно
и пойдёт на поправку.
...
Рейтинг: 0 / 0
VBA Найти значение функции
    #39953945
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
booby, адвокат из вас никакой.
И выпады в сторону чьего-либа ника не выглядят доблестью.

Нет никаких выпадо.
Хотели "полемизировать" - "полемизируйте"

exp98Видим, что объявленные переменные используются без ЯВНОЙ инициализации.
В VBA вообще невозможно ни явно объявить, ни неявно использовать переменную без её неявной инициализации.
В VBA не существует неинициализированных переменных.
Это не доблесть, а простой факт, следующий из знания синтаксиса языка.
То, что следовало в этом месте сказать - говорится совсем другими словами:
В отличие от Fortran, где тип задается для всех переменных одной декларации предварительно,
в VBA каждая переменная требует собственного указания типа.
Поэтому (сокращенное) объявление
Код: vbnet
1.
Dim max, min, max2, d, m As Double


эквивалентно
Код: vbnet
1.
Dim max as Variant, min as Variant, max2 As Variant, d as Variant, m As Double



Вероятно (по вероятности, соответствующим намерениям автора) правильным объявлением было бы
Код: vbnet
1.
Dim max as Double, min as Double, max2 As Double, d as Double, m As Double



exp98б вы представления не имеете о предмете, по поводу которого взялись рассуждать и "полемизировать".

Это и не наезд, и не защита кого-либо.

Если настаиваете ли на разборе своего утверждения: авторне используй номера строк, это аттавизм...,
попробуйте сначала правдоподобно вспомнить и пояснить, зачем вы вообще его написали...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / VBA Найти значение функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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