Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемentermsu.narod.ru
1 Основы программирования на Visual Basic Кафедра экономической информатики МГУ Андрей Олегович Медников
2 История создания ЯП FORTRAN Algol 60 Simula Algol-68 Cobol Lisp Pascal C SmallTalk Ada C++Miranda BASIC Prolog Modula-2
3 Требования к алгоритмам Наличие ввода исходных данных Наличие вывода результата выполнения Однозначность Общность Корректность Конечность Эффективность.
4 Создание компьютерной игры Создание трехмерного графического движка. Написание модуля искусственного интеллекта созданий, населяющих уровень. Реализация управления с различных игровых манипуляторов. Создание звукового оформления....и так далее.
5 Сложение 2 чисел Считать число А Считать число В Выполнить суммирование А + В Вывести результат сложения Закончить работу
6 Решение уравнения ax=b Считать число А Считать число В Если число А = 0 и число В равно 0, то вывести на экран ответ (х – любое) и закончить программу. Если число А = 0 и число В не равно 0, то вывести на экран ответ (решений нет) и закончить программу. Вывести ответ В/А. Закончить программу
7 Переменные в ЯП Переменная – это одна или несколько ячеек оперативной памяти компьютера, которым присвоено определенное имя, то есть просто некое место в памяти компьютера, причем чаще всего, определенного размера, в котором хранятся какие-то данные.
8 Замечание об именах переменных Сравните: х1, у1 и MaxXResolution, MaxYResolution
9 Обязательное объявление переменных до использования В VB для того, чтобы включить обязательное объявление переменных, необходимо в начале модуля поставить строку Option Explicit
10 Объявление переменных Dim As Private As Public As Static As
11 Если слово As опущено Dim MaxXRes, MaxYRes as Integer Переменной MaxXRes будет присвоен тип не Integer, как мы бы могли ожидать, а Variant
12 Простые типы в VB BooleanTrue, False2 байта Byte0…2551 байт Integer байта Long~ … байта DecimalПримерно 30 десятичных цифр12 б. Single-3.4Е38…-1.4Е-45,1.4Е-45…3.4Е384 байта Double-1.7Е308…-4.9Е-324, 4.9Е-324…1.7Е3088 б. StringДо 2 16 символов Dateот 1 января 100 г. до 31 декабря 9999 г.8 б. ObjectСсылка на объект (указатель)4 байта Variant> 16 б.
13 Примеры объявлений перем. Dim MaxXRes As Integer, MaxYRes as Integer Dim Count As Long Dim CellIsEmpty As Boolean Dim QuestionText As String
14 Оператор присваивания х=х+1 Этот оператор решает 3 важные задачи: Вычисление значения выражения в правой части оператора. Вычисление выражения в левой части оператора присваивания, выражение должно определять адрес ячейки памяти. Копирование значения, вычисленного на шаге 1, в ячейки памяти, начиная с адреса, полученного на шаге 2.
15 Оператор присваивания [Let] =. MaxXRes = 1024 MaxYRes = 768 Count = CellIsEmpty = True QuestionText = "Who am I?" Count = Count + 1 MaxNumbOfPoints = MaxXRes* MaxYRes NumbOfBits = NumbOfBytes*8
16 Модуль в VB Sub Name1() … End Sub
17 Ввод информации в VB stringvar = InputBox (Prompt [, Title]) MaxXRes = InputBox (Введите макс. разр. по оси Х)
18 Вывод информации в VB MsgBox(prompt[, buttons] [, title] [, helpfile, context])
19 Программа сложения 2 чисел 'Option Explicit Sub SumExamp() Dim A as Integer, B As Integer, Sum As Integer A = InputBox("Введите первое слагаемое") B = InputBox("Введите второе слагаемое") Sum = A + B MsgBox ("Сумма " & A & и " & B & = " & Sum) End Sub
20 Обмен значений Dim A As Integer, B As Integer, Temp As Integer A = 5 B = 10 Temp = A A = B B = Temp
21 Обмен значений в случае целых Dim A As Integer, B As Integer A = 5 B = 10 A = A + B B = A – B A = A – B
22 Константы Const ИмяКонст [As ТипКонст] = ЗначКонст Const Pi As Double = Const Tax As Single = 0.13 Const Greeting = "Привет"
23 Процедурная область действия Sub Sum() Dim A As Integer, B As Integer, C As Integer A = 5 B = 7 C = A + B MsgBox "Сумма А и В = " & C End Sub Sub Difference() Dim A As Integer, B As Integer, C As Integer A = 5 B = 7 C = A - B MsgBox " Разность А и В = " & C End Sub
24 Модульная область действия Option Explicit Const Pi = Sub CircleLength() Dim Radius As Double Dim Length As Double Radius = InputBox("Введите радиус…") Length = Radius * 2 * Pi MsgBox "Длина окружности радиуса " & Radius & " равна " & Length End Sub
25 Переменные с один. именами в разных областях действия Option Explicit Const Test As Integer = 100 Sub Test1() Dim Test As Double Test = MsgBox Test End Sub Sub Test2() Dim Test As String Test = "aaaaaaaaa" MsgBox Test End Sub Sub Test3() MsgBox Test End Sub
26 Время жизни переменных Время жизни переменных определяет, как долго переменная сохраняет свое значение. Переменная, объявленная внутри процедуры при помощи Dim, теряет свое значение при выходе из нее. Для объявления переменной на процедурном уровне, но со временем жизни модуля – Static. Static NumberOfCalls as Integer
27 Математические операции ^ Возведение в степень * / Умножение и деление \ Целочисленное деление Mod Нахождение остатка + - Сложение и вычитание
28 Операции сравнения > Больше, чем < Меньше, чем >=Больше или равно, чем
29 Сравнение строк "фио"="фио" "фио"" фио" "фио" < "фио " "фиот" > "фио" "фио"">
30 Сравнение строки с шаблоном StrExpr Like Templ Символы в шаблоне: # * ? [list] [!list] В квадратных скобках также можно указать и диапазон ([a-z])
31 Сравнение строки с шаблоном - пример Sub TemplateExamp() Dim MyCheck MyCheck = "aBBBa" Like "a*a" ' Возвращает True. MyCheck = "F" Like "[A-Z]" ' Возвращает True. MyCheck = "F" Like "[!A-Z]" ' Возвращает False. MyCheck = "a2a" Like "a#a" ' Возвращает True. MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Возвращает True. MyCheck = "BAT123khg" Like "B?T*" ' Возвращает True. MyCheck = "CAT123khg" Like "B?T*" ' Возвращает False End Sub
32 Логические операции NotЛогическое Не AndЛогическое И OrЛогическое Или
33 Таблица истинности ХTRUETRUEFALSEFALSE YTRUEFALSETRUEFALSE NOT XFALSEFALSETRUETRUE X AND YTRUEFALSEFALSEFALSE X OR YTRUETRUETRUEFALSE
34 Порядок вычисления 1. Вначале всегда части выражения, заключенные в круглые скобки, если выражение в круглых скобках само сложное, то применяем эти же правила. 2. Затем выполняем в соответствии с приоритетом (смотри таблицу ниже) 3. Если равный уровень приоритета, то вычисляем слева направо.
35 Приоритет операций Dim A As Integer, B As Integer A = 6+5*4 B = (6+5)*4 Внимание, A не равно B!!!
36 Приоритет операций - Знаки арифметических операций - Знаки конкатенации строк - Операторы сравнения - Логические операторы
37 Приоритет операций ^ - возведение в степень - - унарный минус */ - умножение и деление \ - целочисленное деление Mod - остаток +, - & =, Like, Not And Or Xor Eqv
38 Найти значение Result Dim Result As Boolean, X As Boolean Dim Y As Boolean, Z As Boolean Dim A As Integer, B As Integer A = 5: B = 10 X = FALSE: Y = TRUE: Z = FALSE Result = X AND (Y OR (Z AND Y) AND _ (NOT (X OR Z))) OR ( A > B)
39 Оформление программы Символ разделения 2 операторов в одной строке - двоеточие: A = 5: B = 7 Если оператор не помещается в одной строке, пробел и подчеркивание: MyAddr = "Город:"& City&", улица:"&Street _ &"дом:"&Number Комментарий – все, что после апострофа Dim Count As Integer Count – cчетчик числа элем.
40 Оператор простого выбора If Условие Then Операторы [Else Операторы] Пример 1: If Balance - Check < 0 Then MsgBox На вашем счету перерасход Пример 2: Sub TestIf() Dim Number as Integer Number = InputBox(Введите число) If Number > 0 Then MsgBox (Положительн.) Else MsgBox (Отрицат.) End Sub
41 Многострочный оператор простого выбора If Условие Then Оператор1 … ОператорN End If Или же, при необходимости второй ветви: If Условие Then Оператор1 … ОператорN Else Оператор1 … ОператорN End If
42 Многострочный оператор простого выбора If Balance - Check < 0 Then MsgBox "Ваши средства израсходованы!" MsgBox "Банк уведомлен!" Else Balance = Balance - Check End If
10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice " title="Вложенные операторы If… Then Option Explicit Sub DiscountCalculation() Dim InitialPrice As Double, PriceToPay As Double InitialPrice = InputBox("Введите цену покупки") If InitialPrice > 10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice " class="link_thumb"> 43 Вложенные операторы If… Then Option Explicit Sub DiscountCalculation() Dim InitialPrice As Double, PriceToPay As Double InitialPrice = InputBox("Введите цену покупки") If InitialPrice > Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice > 5000 Then PriceToPay = InitialPrice * 0.95 Else If InitialPrice > 1000 Then PriceToPay = InitialPrice * 0.9 Else PriceToPay = InitialPrice End If MsgBox "С вас - " & PriceToPay & " руб." End Sub 10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice "> 10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice > 5000 Then PriceToPay = InitialPrice * 0.95 Else If InitialPrice > 1000 Then PriceToPay = InitialPrice * 0.9 Else PriceToPay = InitialPrice End If MsgBox "С вас - " & PriceToPay & " руб." End Sub"> 10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice " title="Вложенные операторы If… Then Option Explicit Sub DiscountCalculation() Dim InitialPrice As Double, PriceToPay As Double InitialPrice = InputBox("Введите цену покупки") If InitialPrice > 10000 Then PriceToPay = InitialPrice * 0.9 Else If InitialPrice ">
44 Решение уравнения ax=b Option Explicit Sub LinearEq() Dim A as Double, B as Double, X as Double A = InputBox(Введите коэф. А) B = InputBox(Введите коэф. B) If (A = 0) And (B=0) Then MsgBox Х – любое число Else If A=0 Then MsgBox Решений нет Else X = B / A MsgBox X = & X End If End Sub
45 Решение квадратного уравнения (не полн.) Option Explicit Sub SqrEq() Dim A as Double, B as Double, C as Double, D As Double Dim X1 as Double, X2 as Double A = InputBox(Введите коэф. А) B = InputBox(Введите коэф. B) C = InputBox(Введите коэф. C) D = B*B –4*A*C If D < 0 Then MsgBox Решений нет Else If D = 0 Then X = - B / (2*A) MsgBox Решение – х = & X Else X1 = (-B – SQRT(D)/(2*A) X2 = (-B + SQRT(D)/(2*A) MsgBox Решения: х1 = & X1 & x2 = & X2 End If End Sub
46 Оператор множественного выбора Select Case Case Case … [Case Else ] End Select Пример: Select Case Argument Case Is < 0 … Case 0 To 10 … Case 100, 1000, … Case Else … End Select
47 Встроенные функции преобразования данных Asc(S) – код первого символа строки S Chr(X) – строка из 1 символа, соотв. коду Х Str(X) – строка, представляющая число Х Val(S) – число, соотв. числу, представленному строкой S, если строка содержит не только цифры и 1 точку, но возвращает 0.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.