Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 15:12   #1
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию Пытаюсь разобраться в задании

Помогите пожалуйста разобраться в задании лабораторной работы:

Цитата:
В соответствии с вариантом задания к лаб.раб. №2 создайте пользовательскую форму, с помощью которой можно вычислить значение функции пользователя.
Текст лаб.раб. №2 следующий:

Цитата:
Определите значение переменных по фрагменту программы:
Dim Log1 As Boolean, Log2 As Boolean, Log3 As Boolean
Log1 = 32 <= 32
Log2 = Log1 Or (4 * 5 = 30)
Log3 = 25 = 25
Log1 = Log2 * Log3
Как я понимаю, во 2-й лабе вообще близко нету никакой функции пользователя. О чем тут вообще речь?
fs444 вне форума Ответить с цитированием
Старый 11.01.2010, 16:43   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от fs444 Посмотреть сообщение
Текст лаб.раб. №2 следующий:

Как я понимаю, во 2-й лабе вообще близко нету никакой функции пользователя. О чем тут вообще речь?
Здесь о типах переменных
Читать ЗДЕСЬ
И о ЛОГИЧЕСКИХ ФУНКЦИЯХ
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 11.01.2010 в 16:46.
doober вне форума Ответить с цитированием
Старый 12.01.2010, 08:07   #3
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Здесь о типах переменных
Читать ЗДЕСЬ
И о ЛОГИЧЕСКИХ ФУНКЦИЯХ
Зачем нужен тип Boolean, я знаю. Что такое логические функции - тоже.

Не понимаю, что такое "Log1 = 32 <= 32", какую роль здесь играет "<="?

Что такое "Log2 = Log1 Or (4 * 5 = 30)"? Зачем писать "4 * 5 = 30", если 4*5=20? Или тут другой смысл?

Зачем писать "Log3 = 25 = 25"? Это же два раза 25 присваивается?
fs444 вне форума Ответить с цитированием
Старый 12.01.2010, 09:51   #4
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Раз у вас возникают эти вопросы, то прочтите указанные темы может станет понятнее.
как подсказака попробуйте посмотреть на это вот так:
Log3 = (25 = 25) первое равно это оператор присваивания, а второе -сравнения. и в остальных примерах похожая ситуация...
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 12.01.2010, 10:21   #5
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

До меня дошло, что "<=" это меньше или равно, и если 32<=32 (а это так), то Log1=1 (т.е. true).
И так далее.

Но зачем к этому коду прикручивать пользовательскую форму, не понимаю? Она ж предполагает ввод каких-то значений. А тут что вводить? Log1?
fs444 вне форума Ответить с цитированием
Старый 12.01.2010, 10:24   #6
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Этот вопрос надо задать тому кто ставил задачу) сомневаюсь что здесь кто-то телепат...
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 12.01.2010, 10:45   #7
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Последняя пара препода была полторы недели назад, а сегодня-завтра надо уже все сделать. Я скачал у препода методичку с doc-файле, в которой 8 лабораторных. Ну и я не стал на месте прочитывать все задания. Сегодня, конечно, могу пообщаться с ней на эту тему. Но мне осталось сделать одну эту лабу, поэтому сегодня я уже хотел все сдать

Решил сделать форму, которая по нажатию кнопки считает и выводит в три поля значения трёх посчитанных во фрагменте кода переменных. Заданию то это соответствует
fs444 вне форума Ответить с цитированием
Старый 12.01.2010, 12:03   #8
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Написал такой код:
Код:
Private Sub InputBox1_1_Click()
Log1_1Cond = InputBox("Введите логическое условие для Log1", "Введите логическое условие для Log1", "32 <= 32")
End Sub

Private Sub InputBox2_Click()
Log2Cond = InputBox("Введите логическое условие для Log2", "Введите логическое условие для Log2", "Log1 Or (4 * 5 = 30)")
End Sub

Private Sub InputBox3_Click()
Log3Cond = InputBox("Введите логическое условие для Log3", "Введите логическое условие для Log3", "25 = 25")
End Sub

Private Sub InputBox1_2_Click()
Log1_2Cond = InputBox("Введите логическое условие для Log1_2", "Введите логическое условие для Log1_2", "Log2 * Log3")
End Sub

Private Sub Log1_1Cond_Change()

End Sub

Private Sub Poschitat_Click()

Log1 = Log1Cond
Log2 = Log2Cond
Log3 = Log3Cond
Log1 = Log1_2Cond

Log1Val = Log1
Log2Val = Log2
Log3Val = Log3
End Sub
В итоге Log1Val, Log2Val и Log3Val отображают не нули и единицы (тип Boolean), а строки. Я так понимаю, мне нужно преобразовать переменные Log1, Log2 и Log3 в boolean. Как это сделать?
fs444 вне форума Ответить с цитированием
Старый 12.01.2010, 12:19   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Замените строки типа Log1 = Log1Cond
на Log1 = Application.Evaluate (Trim(Log1Cond))

PS: Это сработает для ваыражений типа 32<=32
Аналогично вычислить значения выражений вроде Log2*Log3 не получится.

Последний раз редактировалось EducatedFool; 12.01.2010 в 12:21.
EducatedFool вне форума Ответить с цитированием
Старый 12.01.2010, 12:36   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я подозреваю,что fs444 не правильно понял задание.Ему придеться писать интерпретатор для проведения данных опрераций со строковым выражением(пример калькулятор)
Скорее всего форма должна выглядеть так
Изображения
Тип файла: jpg форма.jpg (17.5 Кб, 101 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пытаюсь получить список процессов... Flammpanzer Win Api 8 07.09.2009 21:00
Не совсем понимаю, что нужно найти в задании. greenypeace Помощь студентам 2 08.06.2009 13:50
Помочь немного в задании prikolist Общие вопросы C/C++ 3 27.03.2009 23:48
Организовать ввод данных с файла созданного в первом задании и вывод их терминал. Saniok Помощь студентам 2 25.10.2007 22:25