Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие (811777), страница 35
Текст из файла (страница 35)
Y=(45<35) - результат False, Z= (45=45) - результат True.Ниже приведен список операторов сравнения и условия, прикоторых результат имеет значение True, False или Null. В столбцахзнаки между В1 и В2 показывают действительное соотношение между выражениями, например, для В1 < В2, при значениях В1=10, В2=15,при использовании знака < получим True, при значениях же В1=15,В2=10, при использовании того же знака < получим False.Оператор< (Меньше)<= (Меньше или равняется)> (Больше)>= (Больше или равняется)= (Равняется)<> (Не равняется)TrueВ1 < В2В1 <= В2В1 > В2В1 >= В2В1 = В2В1 <> В2FalseВ1 >= В2В1 > В2В1 <= В2В1 < В2В1 <> В2В1 = В2NullВ1 или В2 = Nullто же-»-»-»-»-Логические операторыСинтаксис применения операторов:Р=В1 логический оператор В2,где Р - результат, возвращаемый при выполнении оператора; В1, В2– выражения.
В таблице приведены операторы и возвращаемые значения в зависимости от значений выражений.212ОператорAndEqvorNotXorПояснениеЛогическоеИЛогическаяэквивалентностьЛогическоеИЛИ(сложение)ЛогическоеотрицаниеЛогическоеисключающееИЛИСинтаксисР=В1And В2Р=В1Eqv В2Р=В1 orВ2Р=Not(В1)Р=В1Xor В2В1В2РезультатTrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalseTrueTrueTrueTrueFalseFalseFalseTrueFalseFalseTrueFalseTrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalseTrueFalseFalseTrueTrueTrueFalseTrueFalseTrueFalseTrueTrueFalseFalseFalseПримерA = 10: B = 8: C = 6M = A > B And B > CA = 10: B = 8: C = 6M = A > B And B < CA = 10: B = 8: C = 6M = A < B And B > CA =10: B=8: C = falseM = A < B And CA = 10: B = 8: C = 6M = A <> B And B > CA = 10: B = 8: C = 6M = A > B And B < CA = 10: B = 8: C = 6M = A < B And B > CA = 10: B = 8: C = 6M = A > B And B > CA = 10: B = 8: C = 6M = A > B And B < CA = 10: B = 8: C = 6M = A < B And B > CA =10: B=8: C = falseM = A <B And CA = 10: B = 8MyCheck = Not(A > B)A = 10: B = 8MyCheck = Not(A < B)A = 10: B = 8: C = 6M = A > B And B > CA = 10: B = 8: C = 6M = A > B And B < CA = 10: B = 8: C = 6M = A < B And B > CA =10: B=8: C = falseM = A <B And C ФункцииVBA имеет большое число функций, позволяющих проводитьматематические вычисления, работать со строками, временем и датой, преобразовывать данные и многое другое.
Полный перечень213функций приводится в справочниках по VBA, здесь же приведенытолько наиболее часто используемые.Математические функцииAbsВычисляемое действиеАбсолютное значение числаAtnCosSinЦелая часть числа c округлением отрицательных вбольшую по модулю сторонуЦелая часть числа c округлением отрицательных вменьшую по модулю сторонуАрктангенс числаКосинус угла в радианахСинус угла в радианахTanIntСинтаксисПримерРезультатAbs(число)Y=Аbs(X)Int (число)Y= Int (X)при Х=-5,Y=5при Х=-7.6,Y=-8при Х=7.6,Y=7Y= Fix (X)при Х=-7.6,Y=-7, приХ=7.6,Y=7Atn(число)Cos(число)Sin(число)pi=4*Atn(1)Y=Cos(Pi/2)Y=Cos(X)Тангенс угла в радианахTan (число)Y= Tan (X)ExpВозведения в степень числа eExp(число)Y=Exp (X)LogНатуральный логарифмLog (число)Y=Log (X)Rnd(число)Y=RndЗначение Y=0приX=Pi/2,Y=1приX=Pi/4,Y=1при X=1,Y= 2.7182Y= 1 приX=2,718282,0<=Y<=1FixFix (число)Rnd Случайное числоФункции времени и датыСинтаксис применения в выражениях:Р=функция(В),где Р - результат, возвращаемый при выполнении; В – выражение(может отсутствовать).ФункцияДействиеDateВводтекущейсистемной датыДень месяца взначении датыDayMonth Месяц в значении датыСинтаксисПримерDim MDMD =DatedM=Day(Date)P=DateP=Day(B)P=Month(B)214РезультатВ MD будет системнаядатаdM=8 при расчетах 8октябряM=Мonth(Date) M=10 при расчетах 8октябряФункцияДействиеЧисло, представляющее год в дате.Weekd День недели вдате в виде числаayДата и время поNowсистемному календарю и часамкомпьютера.Системное времяTimeЧислосекунд,Timerпрошедших после полуночиYearОкончание таблицыРезультатСинтаксисПримерP= Year (B)G= Year (Date)G=1998 при расчетахв 1998 годуP=Weekday(B)P=NowN=Weekday(Date)Td = NowN=2 для понедельникаP=TimeP=TimerT=TimeSc=TimerTd=22.10.9812:30:15T=12:30:25T=1265,25Функции преобразования данныхСинтаксис применения:Р=функция(В),где Р - результат, возвращаемый при выполнении; В – выражение.ФункцияПреобразованиеStrЧисла в P=Str(число) Число илистрокувыражениеСтрока изСтрокив число P=Val(строка) цифрValАргументСинтаксисВ логи- P= Cbool(B)ческийтипПримерСтрока иличисловоевыражениеРезультатMS=Str(45)MS= «45».MV=Val(«75»)MV=Val(«2 45 7»)A = 5: B = 5MV=75MV=2457MV=24C = Cbool(A = B)CByteC = True.A=0C= False.C = CBool(A)MB=Cbyte(126.5) MB=126CintMD = «February MDt = MD12, 1969»в форматеMDt =датCDate(MD)MI=CInt(2345,65) MI=2346CboolВ байто- P= Cbool(B) От 0 до 255выйCDate В типдатВ целыйтип сокругл.P= CInt (B) 32 768 до32 767215 Использование в Visual Basic функций рабочего листаФункции рабочего листа, оперирующие над диапазонами ячеек, работают быстрее процедур Visual Basic, выполняющих подобные действия.
Например, для вычисления суммы ячеек B2:B20можно применить T=Application WorksheetFunction.Sum(Worksheets(«Лист1»).Range(«B2:B20»)).Кроме ускорения времени обработки использование функцийрабочего листа увеличивает возможности программисту реализацииалгоритмов. Это связано с тем, что функций листа Excel значительно больше, чем стандартных функций языка Visual Basic.Синтаксис использования функций рабочего листа следующий:Имя переменной= Application.WorksheetFunction.Имя функции(данные).Список всех функций появляется при наборе в редактореVisual Basic сочетания: Application.WorksheetFunction.
На рис.П.2.2. показан вид списка.Рис. П.2.2. Список выбора функций Оператор присваиванияЭто наиболее часто используемая инструкция, применяемаядля вычисления результата по выражению или для передачи значений из одной переменой в другую. Синтаксис его имеет видПеременная= выражение или Переменная1 = Переменная2Примеры: Y=A+B*X; T=0; I=I+1. Управляющие конструкцииПри реализации алгоритмов в процедурах используютсяуправляющие инструкции (их иногда называют также и операторы):ветвления, циклов, упрощения написания инструкций.216Инструкции ветвленияСинтаксис оператораIf усл.
Then операторДействиеПример. If A<B then C=BПрисвоение C=B выполнится, если A<BIf условие Then оператор 1 Else оператор2Выполнение оператора 1 при истинности условия и оператора 2 - при ложности. Записываются в одной строке.Пример. If A<B then C=B Else С=А – обеспечивает запоминание в переменной С наибольшего значения из А и В.If условие Thenоператоры 1Elseоператоры 2End IfВыполнение группы операторов 1 при истинности условия и группы операторов 2 при ложности условия.Пример.
If A<B thenI=3C=BElseI = 2 : С=АEnd IfВ примере выполняется запоминание в переменной Снаибольшего значения из А и В, в переменной I числа 3или 2.Select Case У.П.Case значение 1 У.П.операторы 1Case значение N У.П.операторы NCase ElseоператорыEnd Selectгде У.П. - управляющийпараметрSelect Case Ku ' ПримерCase 1 ‘ вычисление площади прямоугольникаS=A*BCase 2‘ вычисление площади треугольникаS=A*B / 2Case 3‘ вычисление площади трапецииS=H*(A+B) / 2ElseS=0End SelectВ примере обеспечивается, в зависимости от значенияKu, вычисление или площади S прямоугольника (приKu=1), или треугольника (при Ku=2), или трапеции (приKu=3). При всех других значения Ku выполняется обнуление S.217Инструкции цикловПозволяют организовать выполнение несколько раз группыоператоров.Синтаксис инструкцииFor П =Н.З.
To К.Зоператоры 1If условие Exit Forоператоры 2Next П.Do While условиеоператорыинструкция проверкиExit DOLoopWhile условиеоператорыWendDo Until условиеоператорыинструкция проверкиExit DOLoopDoоператорыинструкция проверкиExit DOLoop While условиеDoоператорыLoop Until условиеДействиеОбеспечивает выполнение операторов 1 и 2, покапеременная (П), начиная от начального (Н.З.) значения, не достигнет конечного (К.З.) или пока невыполнится условие в операторе проверкиОператоры повторяются до тех пор, пока условиеистинно или пока не выполнится условие в инструкции проверки. Условие проверяется в началецикла.Операторы повторяются до тех пор, пока условиеистинно.
Условие проверяется в начале цикла.Операторы повторяются до тех пор, пока условиеложно или пока не выполнится условие в инструкции проверки. Условие проверяется в началецикла.Условие проверяется в конце цикла, поэтому операторы хотя бы один раз выполняются всегда.Повтор выполнения операторов до тех пор, покаусловие истинно или пока не выполнится условиев инструкции проверки.Условие проверяется в конце цикла. Поэтомуоператоры хотя бы один раз выполняются всегда.Повтор выполнения операторов до тех пор, покаусловие ложноПримеры программ с циклами. Расчет суммы S элементов массива А до тех пор, пока S < So и число элементов меньше 21S=0For I=1 To 20S=S+A(I)N=IIf S>So then Exit ForNext II=1While I <= 20 and S<SoS=S+A(I)N=II=I+1Wend218I=1DoS=S+A(I)If S>So then Exit DON=II=I+1Loop While I <= 20Инструкция упрощения написания кода программыWithоператорыEnd WithПример инструкции.
Для передачи переменным программыданных с листа Excel можно использовать операторы следующеговида:A =Worksheets(«Опт_емк»).Cells(3, 2).ValueB =Worksheets(«Опт_емк»).Cells(4, 2).ValueИли то же действие при использовании WithWith Worksheets(«Опт_емк»)A =.Cells(3, 2).ValueB =.Cells(4, 2).ValueEnd WithТочка в операторе A =.Cells обязательна. При множестве инструкций, используемых одно и то же слово, вынесение его в заголовок после With позволит сократить длину операторов и повыситьнаглядность программ. Ввод данных в процедуры и вывод результатовВвод в процедуры Visual Basic данных, необходимых для проведения расчетов, может быть выполнен двумя способами: с листа Excel; элементами Visual Basic.Большинство программ решения инженерных задач средствами Excel строятся таким образом, что первый способ используетсякак основной, а второй используется как вспомогательный, например, для выбора вариантов работы программы.Аналогично осуществляется вывод результатов расчетов: на лист Excel; элементами Visual Basic.В данном пособии рассматривается только минимальный набор средств, используемых для передачи данных с листа в программу и обратно.
Более подробная информация приводится в [4, 5].Передача данных с листа Excel в процедуры Visual BasicЕсли программа работает с несколькими ячейками, распола219гаемыми на разных листах нескольких книг Excel, то адреса ячеекнеобходимо указывать с наименованием книг и листов. При обращении к ячейке из других приложений, например, из текстового редактора Microsoft Word, необходимо также указать и само приложение Excel.Занести в переменную значение с листа Excel можно с помощью оператора присваивания:Имя переменной =Application.Workbook(“наименование файла”) .