Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all_begin.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
189.44 Кб
Скачать
  • арифметическое выражение – арифметические переменные, константы, функции, объединенные знаками арифметических операций Знаки арифметических операций в порядке их приоритета:

    +

    Суммирование

    -

    Вычитание

    *

    Умножение

    /

    Деление

    Mod

    Остаток от деления

    \

    Целая часть частного

    ^

    Возведение в степень

    Пример:

    • A = 14,5 + B * C –( B + C) ^ 2 – Sin(C)

    Операции деления

      • Пусть А =15,5 и В = 4 то операция А / В вернет значение 3,8875

      • Операции «остаток от деления» и «целая часть частного» применимы только к целочисленным величинам.

      • Пусть А=15 и В=2, то операция А Mod B вернет значение 1, а операция А \ B вернет значение 7

    1. переменные, константы, функции, принимающие логическое значение (True, False) – называются логическими.

    2. логическое выражение – логические переменные, константы, функции, объединенные знаками логических операций Знаки логических операций в порядке их приоритета:

    Операции отношения

    >(больше), >=(больше-равно),<(меньше), <=(меньше-равно), <>(не равно), =(равно)

    OR

    ДИЗЪЮНКЦИЯ

    AND

    КОНЬЮНКЦИЯ

    NOT

    ОТРИЦАНИЕ

    Пример:

    Пусть А = False, B = True, C = 15, F = 21

    A Or ( C>= F) And ( F <> C) принимает значение False

    Арифметические выражения

    При занесении арифметических выражений в программный код необходимо помнить о приоритете выполнения арифметических операций и о правиле скобок в арифметическом выражении.

    Практическое задание:

    Запишите арифметические выражения в соответствии с правилами VBA

    1

    Z =

    X2 – X+1

    Sin X – X3

    Z =

    X5 – 15X+1

    17X – X3

    2

    Z =

    X2 –2 X+3

    Sin X– CosX3

    Z =

    X2 – SinX+1

    (5-X)X – X

    3

    Z =

    X3 – X2+1

    Sin X – 127

    Z =

    X2 – X+1

    Sin X – X3

    4

    Z =X2 – X+1

    +3X

    CosX – X3

    Z =

    X2 – X+1

    Lg X – X3

    5

    Z =

    5X2 – X-18

    Sin X2 – X3

    Z =

    2X2 – X-1

    Sin5X – X2

    6

    Z =

    X2 – X+1

    Sin X – X3

    Z =

    X2 – X+1

    Sin(X+1)– X3

    7

    Z =

    X3 – (X+1)2

    11X – X3

    Z =

    X2 – 11X-11

    Sin 7X – X3

    8

    Z =

    X2 – X+1

    (5-X)2 – X3

    Z =

    11X2 – (X+1)2

    Sin X – X

    9

    Z =

    X3 – (X+1)2

    Sin X – CosX3

    Z =

    X2 –15X+11

    23X – X2

    10

    Z =

    X – (X+11)5

    Sin X – X3

    Z =

    X2 – X+1

    Sin X – X3

    11

    Z =

    3X2 – 11X+1

    X – X3

    Z =

    X2 – (X+1)2

    Sin X – X3

    12

    Z =

    SinX – (X3 –1)

    X2 – X+1

    Z =

    X2 – X+1

    Sin X – X3

    Аргументы тригонометрических функций, а так же функции логарифм записываются следом за именем функции в круглых скобках: Sin(Y-145), Log(15*Y).

    Вставить логические выражения и встроенные функции

    Типы данных

    Типы данных относятся к самым фундаментальным понятиям любого языка программирования. Тип данных определяет множество допустимых значений, которое может принимать указанная переменная.

    В VBA имеются следующие основные типы данных:

    Тип данных

    Размер, (байт)

    Диапазон значений

    Byte (байт

    1

    От 0 до 255

    Boolean (логический

    2

    True или False

    Integer (целое число)

    2

    От -32 768 до 32 767

    Long (длинное целое число)

    4

    От -2 147 483 648 до 2 147 483 647

    Single (число с плаваю щей запятой обычной точности)

    4

    От -3.402823Е38 до-1,401298Е-45для отрицательных значений; от1,401298Е-45до 3,402823Е38

    для положительных значений

    Double (число с плаваю щей запятой двойной точности)

    8

    От -1,79769313486232Е308 до

    -4,94065645841247Е-324 для отрицательных значений;

    от 4,94065645841247Е-324 до

    1,79769313486232Е308 для положительных значений

    Currency (денежный

    8

    От -922 337 203 685 477,5808 до

    922 337 203 685 477,5807

    Decimal (масштабируемое целое число с 28 знаками справа от запятой;)

    14

    +/-79228162514264337593543950335 минимальное ненулевое значение имеет вид +/-0,0000000000000000000000000001

    Date (даты и время

    8

    От 1 января 100 г. до 31 декабря 9999 г.

    Object (объект)

    4

    Любой указатель объекта

    String (строка перемен ной длины)

    10 + длина строки

    От 0 до приблизительно 2 миллиардов

    String (строка постоянной длины)

    Длина строки

    От 1 до приблизительно 65 400

    Variant (числовые подтипы)

    16

    Любое числовое значение вплоть до границ диапазона для типа Double

    Variant (строковые подтипы)

    22+длина строки

    Как для строки (String) переменной длины

    пользовательский тип

    Символы объявления типов

    Тип Символ Тип Символ

    Integer %

    Long &

    Single I

    Double »

    Currency @

    String $

    Описание типов данных

    Описание типов переменных принято, по возможности располагать в начале процедур и функций, сразу после заголовка.

    VBA позволяет не описывать типы переменных, встречающихся в программном коде. При этом затрачивается время на распознавание типа переменной каждый раз, когда происходит обращение к ней, т.е. описание переменных ускоряет работу компилятора.

    Формат описания переменных:

    Dim имя переменной As тип

    Простейшие ввод и вывод информации

    Для организации простейших ввода и вывода информации в VBA существуют: процедура вывода и функция ввода, которые реализуются выдачей окон ввода и вывода. Рассмотрим правила их использования.

    Процедура вывода.

    MsgBox a1 [& a2] [& a3]…[ & aN]

    Где MsgBox – имя процедуры;

    aI – параметры процедуры вывода в окно(параметр ‑ идентификатор переменной или константы или символьная константа) I от 1 до N & ‑ знак операции конкатенации (сцепления), для выводимых величин.

    Пример:

    Public Sub Two ()

    Dim M As Single

    Const g = 9.8

    M = 5.1

    F = M * g

    MsgBox "F = " & F & " при массе равной " & M & "g = " & g

    End Sub

    Параметры процедуры:

    Текст, заключенный в кавычки – символьные константы, F и M – идентификаторы переменных, g числовая константа.

    В результате выполнения этой процедуры на экран будет выведено окно содержащее строку:

    F = 49,9799990653992 при массе равной 5,1

    Кроме этой строки окно будет содержать кнопку ОК, щелчок мышью по которой закрывает его (тот же эффект достигается при нажатии клавиши Enter).

    !!! & (символ конкатенации) должен быть отделен от выводимых величин пробелами, к сожалению, автоматическое исправление их отсутствия не предусмотрено.

    !!!! В одну строку Вы можете вывести не более 256 символов. Для организации вывода текста состоящего из нескольких строк необходима вставка символа «перевод каретки» Chr(13):

    MsgBox "F = " & F & Chr(13) & " при массе равной " & M & Chr (13) & "g = " & g

    Функция ввода

    М = InputBox (А)

    Где М – идентификатор переменной в которую заносится значение

    А – символьная константа, которая будет выведена в окно ввода в качестве пояснительного текста над текстовым окном, предназначенным для ввода значения.

    !!! В случае отсутствия пояснительного текста, символьная константа может быть равной пробелу, НО НЕ МОЖЕТ ОТСУТСТВОВАТЬ

    Пример:

    Public Sub Tow()

    Dim M As Single

    Const g = 9.8

    M = InputBox("Введите массу")

    F = M * g

    MsgBox "F = " & F & " при массе равной " & M & "g = " & g

    End Sub

    В результате выполнения 4 строки этой процедуры на экран будет выведено окно содержащее текст – Введите массу и текстовое окно для ввода конкретного значения. После занесения в текстовое окно числа 7,2, щелчком мыши (тот же эффект достигается при нажатии клавиши Enter) осуществляется присвоение значения переменной М.

    6-я строка этой процедуры осуществляет вывод результата расчета:

    F = 70,5599981307983 при массе равной 7,2

    Ответьте на вопросы:

    1. При помощи какой процедуры в алгоритмическом языке VBA можно осуществить вывод информации?

    2. Какую информацию можно выводить в окно?

    3. Может ли процедура вывода не иметь параметров?

    4. При помощи какой функции в алгоритмическом языке VBA можно осуществить ввод информации?

    5. Может ли функция ввода не иметь параметров?

    6. Можно ли работать с функцией ввода не имея манипулятора «мышь»?

    7. Какие действия реализует операция конкатенация?

    Задание для практической работы:

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

    Не забывайте об интеллектуальных возможностях редактора VBA, а также о возможности копирования, вставки, перетаскивания.

    Основные структуры алгоритмического языка vba

    1. Оператор присваивания.

    Формат оператора:

    А = В

    Где А – идентификатор

    В – логическое выражение, арифметическое выражение, функция, символьная переменная или константа.

    Правило выполнения: определяется значение правой части (В) и присваивается переменной (В), стоящей в левой части оператора присваивания.

    Примеры:

    • Ist = Asd Or Tr And (A > B)

    • F = A * h + В ^ 3

    • S = Sin(a)

    • I = InputBox(“ ввод индекса“)

    • D = "Пример оператора присваивания"

    Задания для индивидуальной практической работы:

    А) Формализовать постановку задачи (уяснить, что должна выполнить программа). Составить список используемых переменных. Составить схему и программу. Выполнить программу вручную для различных исходных данных (начиная с конкретных, приведенных в условии).

    В) Открыть редактор VBA из приложения OFFICE MS EXCEL.

    С) Занести программный код, используя процедуру вывода (для вывода результата в окно), функцию ввода (для ввода конкретных данных), оператор присваивания (для проведения расчетов).

    Варианты:

    1. Через спираль электроплитки за 2 мин. Прошло 6000 Кл электричества. Какова сила тока в спирали?

    2. Две лампы соединены последовательно. Через первую лампу за 1,5 мин прошло 90 Кл электричества. Определите силу тока во второй лампе.

    3. При включении лампы накаливания в электрическую сеть через ее нить за 0,5 мин проходит 9 Кл электричества, а после того как накал достигнет максимальной величины – 12 Кл за мин. Как изменяется сила тока в лампе?

    4. Через поперечное сечение проводника за 1 секунду проходит 6*1019 электронов. Какова сила тока в проводнике?

    5. Сколько времени длится пуск стартера автомобиля, если при силе тока в 200А за это время в цепи стартера протекает 5000 Кл электричества?

    6. Наибольшее количество электричества, которое можно получить от аккумулятора при его разрядке, называется емкостью аккумулятора. Емкость аккумулятора обычно измеряют не в кулонах, а в ампер-часах. 1 А*ч – это такой заряд, который проходит за 1 час при силе тока в 1 А. Сколько Кл содержит 1 А*ч?

    7. Через сколько времени разрядится аккумуляторная батарея емкостью 60 А*ч, если сила тока при разрядке равна 0,15 А; 3 А; 10 А;

    1. Оператор безусловного перехода

    Формат оператора:

    GoTo M где GoTo определяющее слово;

    М – метка* или номер строки** на которую осуществляется передача управления.

    Метка (номер строки), на которую передается управление, может стоять в любой части процедуры, исключая строку заголовок.

    * Метка – идентификатор, стоящий перед строкой программного кода, отделенный от нее двоеточием:

    Public Sub qq()

    a = "!!!"

    GoTo mm

    a = "@@"

    mm: MsgBox a

    End Sub

    ** Для осуществления передачи управления по номеру строки, надо явно пронумеровать строки программного кода

    Public Sub qqq()

    1 a = "!!!"

    2 GoTo 4

    3 a = "@@"

    4 MsgBox a

    End Sub

    1. Оператор условного перехода

    Оператор условного перехода имеет две формы – полную и сокращенную.

    Схема выполнения полной формы оператора условного перехода:

    Формат полного оператора условного перехода:

    If A Then B Else C

    или «блочная форма» If A Then B Else C End If

    Где А – логическое выражение

    В – инструкция* или последовательность инструкций

    * инструкция – оператор, имя вызываемой процедуры

    Правило выполнения:

    если логическое выражение принимает значение True, то выполняется инструкция В, инструкция С игнорируется, иначе(если А ‑ False) – выполняется С, В – игнорируется

    .

    Пример:

    1. Вывести большее из двух чисел

    Sub Number()

    ‘описание переменных

    Dim First, Second As Single

    ‘Ввод значений переменных

    Firsta = InputBox("первое число")

    Second = InputBox("второе число")

    ‘Сравнение двух чисел, в случае равенства переменных выводится ‘ вторая.

    If First > Second Then MsgBox First Else MsgBox Second

    End Sub

      1. Заданы три числа – длины отрезков. Определить могут ли эти отрезки являться сторонами треугольника?

    Если Вам необходимо расположить оператор условного перехода в несколько строк, то необходимо «ЗАКРЫТЬ» его выражением «End If»

    Sub treug()

    ‘ описание типов переменных – длины отрезков

    Dim a%

    Dim t, b As Integer

    ‘ Ввод значений

    a = InputBox("первое число")

    b = InputBox("второе число")

    t = InputBox("третье число")

    ‘ В треугольнике сумма длин двух сторон больше длины третьей стороны

    If (((a + b) > t) Or ((b + t) > a)) Or ((a + t) > b) Then

    MsgBox "треугольник существует"

    Else: MsgBox "треугольник не существует"

    End If

    End Sub

    !!! Инструкции В записываются с новой строки, инструкции С с новой строки, End If – с новой строки

    Cхема выполнения сокращенного условного оператора

    Формат сокращенного условного оператора:

    If A Then B или «блочная форма» If A Then B End If

    Где А, В имеют те же значения, что и выше

    Правило выполнения:

    Если логическое выражение принимает значение истина, то выполняется инструкция В, а затем следующая по тексту программного кода инструкция. Если логическое выражение принимает значение ложь, то инструкции В игнорируются и управление передается следующей за условным оператором инструкции.

    Задания для индивидуальной практической работы:

    Формализовать постановку задачи (уяснить, что должна выполнить программа). Составить список используемых переменных. Составить схему и программу. Выполнить программу вручную для различных исходных данных. Проверить работу программы, реализовав ее.

    Вар№1

    1. На плоскости расположена окружность радиуса R с центром в начале координат. Ввести заданные координаты точки и определить, находится ли она на окружности. Результат присвоить символьной переменной. (проверку на равенство осуществлять с точностью е= 10-3).

    2. . В продаже книг в книжном магазине принимает участие ЭВМ. Составить программу, которая запрашивает стоимость книг, сумму денег, внесенную покупателем, а далее определяет причитающуюся сдачу (если денег внесено больше), печатает СПАСИБО, если сдачи не требуется, или выдает сообщение о недостаточности внесенной суммы.

    Вар№2

    1. Заданы координаты двух точек. Определить, расположены ли они на одной окружности с центром в начале координат. Результат присвоить символьной переменной. (проверку на равенство осуществлять с точностью е= 10-3).

    2. В ЭВМ одновременно поступают результаты соревнований по плаванию для трех спортсменов. Выбрать и напечатать лучший результат.

    Вар№3

    1. Определить, принадлежит ли точка прямоугольнику (прямоугольник задан координатами главной диагонали).

    2. Пассажирский самолет может поднять груз общей массой 30т, составить программу разрешающую (или запрещающую ) транспортировку почтового груза с заданной массой, после посадки пассажиров и загрузки их багажа. Во время регистрации пассажиров ЭВМ должна подсчитывать число пассажиров (условная масса 1 человека — 100 кг) и суммировать массу багажа.

    Вар№4

    1. Заданы координаты точки. Определить, расположены ли она на окружности с центром в начале координат, лежит ли она внутри окружности или вне ее. Результат присвоить символьной переменной.

    2. Написать программу, которая спрашивала бы имя пользователя и печатала приветствие, если оно есть среди трех известных ей. Ввод незнакомого имени должен провоцировать заявление типа «Вы не имеете доступа.»

    Вар №5

    1. Заданы координаты двух точек. Одна из них – центр окружности, вторая принадлежит окружности. Определить радиус окружности

    2. В киоске продается газета стоимостью 3 руб.. и журнал стоимостью 20 руб. Составить программу, которая спрашивает о желании покупателя (журнал или газета?), принимает деньги (сумма денег вводится с клавиатуры) и печатает причитающуюся сдачу. Покупа­телю нужно задать, по крайней мере, два вопроса:ЧТО ХОТИТЕ КУПИТЬ? ЖУРНАЛ ИЛИ ГАЗЕТУ? После ввода ответа нужно показать стоимость соответствующего издания и задать вопрос: 2. СКОЛЬКО ВЫ ПЛАТИТЕ? Сумма денег покупателя вводится с клавиатуры (в числовую переменную). Далее сравнивается эта сумма со стоимостью покупки и печатается соответствующее итоговое сообщение.

    Вар №6

    1. Определить в каком квадранте находится точка с координатами (x,y), и напечатать номер квадранта.

    2. В ЭВМ одновременно поступают результаты соревнований по плаванию для трех спортсменов. Выбрать и напечатать лучший результат.

    Вопросы для теоретического опроса:

    1. Переменная логического типа: название, диапазон значений, об’ём памяти. Написать фрагмент программы нахождения максимального из трех чисел.

    2. Перечислить логические операции. Написать фрагмент программы определения знака дискриминанта для нахождения корня квадратного уравнения.

    3. Приоритет логических операций. Написать фрагмент программы вывода на экран трех введенных символов в порядке убывания их порядковых номеров по кодовой таблице.

    4. Перечислите операции отношений, их обозначения в алгоритмическом языке VBА Написать фрагмент программы нахождения суммы натуральных чисел в заданном промежутке.

    5. Определить понятие «логическое выражение» Написать фрагмент программы нахождения натуральных чисел кратных трем в заданном промежутке.

    6. Формат условного оператора. Написать фрагмент программы вывода на экран четных, натуральных чисел в заданном промежутке.

    7. Формат сокращенного условного оператора. Написать фрагмент программы нахождения простых натуральных чисел(верхняя граница поиска задается). Простое число – число, которое делится только на 1-у и само на себя.

    8. Правила выполнения условного оператора. Написать фрагмент программы нахождения суммы цифр составляющих натуральное число.

    9. Правила выполнения сокращенной формы условного оператора. Написать фрагмент программы нахождения минимальной цифры из цифр составляющих натуральное число.

    10. Особенности «записи» условного оператора в редакторе VBA Написать фрагмент программы вывода на экран пяти введенных символов в порядке возрастания их порядковых номеров по кодовой таблице.

    11. Правила написания условного оператора, являющегося частью условного оператора Написать фрагмент программы определяющей является ли рассматриваемое число совершенным (сумма цифр, составляющих число, равна их произведению).

    4. Оператор выбора (оператор множественного выбора)

    Оператор выбора позволяет осуществить передачу управления в зависимости от выполнения одного из многих условий (True – для одного из многих логических выражений).

    Формат оператора:

    Select Case выражение

    [Case список выражений – 1]

    [инструкции - 1]

    . . .

    [Case список выражений – N]

    [инструкции - N]

    [Case Else]

    [инструкции Else]

    End Select

    Где

    «выражение» – арифметическое или логическое выражение, строковая переменная, арифметическая или логическая переменная значение которых однозначно определено до оператора выбора;

    «список выражений –N» ‑ перечень констант, арифметических или логических выражений, со значениями которых производится сравнение «выражения»

    «инструкции-N» ‑ выполняются в случае совпадения значений «выражения» и одного из компонентов «выражения-N»

    «инструкции Else» выполняются в случае не совпадения «выражения» ни с одной из «инструкции-N»

    Оператор выбора может иметь сокращенную форму – без инструкций Else (см.пример1)

    Примеры:

    В приведеных примерах следует обратить внимание на разнообразие синтаксиса записи «инструкции-N»

      1. Значение функции Х зависит от величины вводимого А: Х=12А+2. Вывести «0», если Х=0, восклицательные знаки, если Х равен 12, 13, 26; «12<x<40», если Х находится в этом промежутке и >40, если Х больше 40. Что будет выведено в окно, если задать А=-2? Каким должно быть значение А, чтобы были выведены восклицательные знаки?

    Public Sub qwe()

    a = val(InputBox(""))

    x=12*а+2 Select Case x

    Case 0

    MsgBox "=0"

    Case 12, 13, 26

    MsgBox "!!!"

    Case 12 To 40

    MsgBox "12<x<40"

    Case Is >= 40

    MsgBox ">40"

    End Select

    End Sub

      1. Написать программный код вывода количества дней месяца, в зависимости от его названия. Принять следующие обозначения для ввода названия месяца: Jan – январь; febr – февраль; mart – март; april – апрель; june – июнь. Предусмотреть возможность неверного ввода, високосного года.

    Public Sub case_simbol()

    999: a = InputBox("month")

    Select Case a

    Case "febr"

    777:

    g = InputBox("февраль: 1- високосный год, 2 - Не високосный")

    Select Case g

    Case Is = 1

    MsgBox "29"

    Case 2

    MsgBox "28"

    Case Else

    MsgBox "once more ": GoTo 777

    End Select

    Case "Jan", "mart"

    MsgBox "31"

    Case Is = "april", "june"

    MsgBox "30"

    Case Else: MsgBox "это не месяц": GoTo 999

    End Select

    End Sub

    Задание для реализации:

    Определить каким днем недели является N-й день года. Считать год не високосным (365 дней), 1-е января – понедельник, N – порядковый номер дня в году

      1. Операторы повтора (операторы цикла)

    Алгоритмический язык VBA предлагает пользователям семь различных конструкций организации цикла, которые условно можно разбить на три группы – цикл с параметром, цикл с предусловием, цикл с постусловием(послеусловием).

      1. оператор цикла с параметром

    Формат оператора

    For А = В То С [Step D]

    [инструкции]

    [Exit For]

    [Инструкции] Next [А]

    Где А – параметр цикла (числовой тип) В – начальное значение параметра С – конечное значение параметра D – шаг изменения параметра

    Правила выполнения:

    Повторяет выполнение группы инструкций (тела цикла), пока параметр цикла изменяется от начального значения до конечного с указанным шагом. Если Шаг не указан, то он полагается равным 1.

    Альтернативный способ выхода из цикла предоставляет инструкция Exit For

    Пример 1:

    Найти сумму чисел на интервале [1,1;2], нацело делящихся на 1,1.

    Public Sub qq()

    Dim I,S As Single

    ‘Следующие три строки программного кода – оператор цикла с ‘параметром: 1-я строка заголовое, 2-я строка – тело цикла, 3-я ‘строка – конец цикла

    For i = 1.1 To 2.1 Step 0.1

    s = s + i

    Next i

    MsgBox s

    End Sub

    Оператор цикла читается следующим образом: для I от 1,1 до 2.1 с шагом 0,1 . . . следующее I.

    Выполним трассировку(пошаговый результат) данного оператора цикла.

    № шага

    I

    S

    1

    1,1

    1,1

    2

    1,2

    2,3

    3

    1,3

    3,6

    4

    1,4

    5,0

    5

    1,5

    6,5

    6

    1,6

    8,1

    7

    1,7

    9,8

    8

    1,8

    11,6

    9

    1,9

    13,5

    10

    2,0

    15,5

    !!! При вещественном значении границ параметра цикла, выход из цикла происходит при конечном значении параметра, тело цикла для него не выполняется (в приведенном примере последнее суммирование выполняется для I = 2.0, после выхода из цикла I имеет значение 2,1)

    При целочисленных значениях параметра цикла, выход из цикла происходит при следующем за конечным значении параметра, тело цикла для него выполняется (смотри пример 2)

    Пример 2:

    Public Sub qq()

    Dim i, c As Integer

    For i = 1 To 5

    s = s + 1

    Next i

    MsgBox s & " " & i

    End Sub

    В окне вывода будет напечатано : «5 6»

    Трассировку выполнить самостоятельно.

    Задание для практической работы.

    Выделить повторяющиеся действия (цикл). Выбрать управляющую переменную цикла. Определить параметры цикла. Составить список переменных программы. Составить схему и программу для решения задачи. В программе предусмотреть вывод заголовка. Выполнить программу вручную, заполняя таблицу трассировки, затем Проверить работу программы на ЭВМ.

    1. Составить таблицу стоимости порций сыра весом 50, 100, 150, ..., 1000 г (цена 1 кг — 110р.).

    2. Около стены наклонно стоит палка длиной х. Один ее конец находится на расстоянии у от стены. Определить значение угла а между палкой и полом для значений X==4,5 м и у изменяется от 2 до 3 с шагом, равным 0,2.

    3. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.

    4. Одноклеточная амеба каждые 3 ч делится на 2 клетки. Определить, сколько клеток образуется через 3, 6, 9, 12, .... 24 ч.

    5. Концентрация хлорной извести в бассейне объемом V3) составляет 10 г/л. Через одну трубу в бассейн вливают чистую воду с объемной скоростью Q (м3/ч), через другую трубу с такой же скоростью вода выливается из бассейна. При условии идеального перемешивания концентрация хлорной извести изменяется по закону: С=С0 е-Qt / v где tвремя; Со—начальная концентрация. Определить, через какое время концентрация хлорной извести достигнет безопасной для человека величины 0,1 г/л. Задачу решить при Q=150 м3/ч, V= 10 тыс. л, Со== 10 г/л. Вычислить функцию С= 10 е-Qt/v при измене­нии t с шагом 10 мин до тех пор, пока не будет выполне­но условие С  0,1 (согласовать единицы измерения всех величин).

    6. Определить суммарный объем (л) 12 вложенных друг в друга шаров со стенками 5 мм. Внутренний диаметр внутреннего шара равен 10см, Считать, что шары вкладываются друг в друга без зазоров

    Задание на дом:

    Определить, сколько различных сигналов можно подать m флажками различных цветов. Отличие сигналов заключается в порядке расположения разноцветных флажков на мачте. Решить при т == 6

        1. В алгоритмическом языке VBA существует еще одна форма оператора цикла с параметром, выполняющая группы инструкций для каждого элемента массива или семейства. Правила работы с этим оператором цикла рассмотрим в дальнейшем, а здесь приведем только формат этого оператора:

    For Each A In B [инструкции] [Exit For] [инструкции] Next A

      1. Операторы цикла с предусловием

    Формат цикла с предусловием:

    5.2.1.

    Do Until А

    [инструкции]

    [Exit Do]

    [инструкции]

    Loop

    Где А ‑ логическое выражение

    Exit Do досрочный выход из цикла, управление передается на оператор стоящий за Loop

    Правило выполнения:

    тело цикла выполняется до тех пор пока А имеет значение False

    Пример 1: Написать программный код, реализующий вычисление разности введенного числа и числа 100.

    Public Sub qqq()

    Dim x, s As Integer

    x = InputBox("Введите значение Х")

    s = 0

    Do Until x >= 100

    s = s + 1

    x = x + 1

    Loop

    MsgBox "X на " & s & "меньше 100"

    End Sub

    5.2.2.

    Do While А

    [инструкции]

    [Exit Do]

    [инструкции]

    Loop

    Где А ‑ логическое выражение

    Exit Do досрочный выход из цикла, управление передается на оператор стоящий за Loop

    Правило выполнения:

    тело цикла выполняется до тех пор пока А имеет значение True

    Пример:

    Выполнение той же задачи, что и в предыдущем примере с использованием цикла While:

    Public Sub qqq()

    Dim x, s As Integer

    x = InputBox("Введите значение Х")

    s = 0

    ‘ Обратите внимание на знак в логическом выражении!

    Do While x <= 100

    s = s + 1

    x = x + 1

    Loop

    MsgBox "X на " & s & "меньше 100"

    End Sub

    !!! В операторах цикла с предусловием и постусловием необходимо очень внимательно следить за созданием инструкции меняющей значение параметра цикла, в отличии от оператора цикла с параметром эти циклы не изменяют параметр цикла автоматически

    Задание для практической работы.

    Выделить повторяющиеся действия (цикл). Выбрать управляющую переменную цикла. Определить логическое выражение выхода из цикла. Составить список переменных программы. Составить схему и программу для решения задачи. В программе предусмотреть вывод заголовка. Выполнить программу вручную, заполняя таблицу трассировки, затем Проверить работу программы на ЭВМ.

    1. Мощность радиоактивного излучения пропорциональна концентрации радиоактивного вещества. Период полураспада одного из изотопов углерода составляет 8 дней. В начальный момент времени мощность излучения составляет 2 Р*/ч. Определить, через сколько дней мощность излучения снизится до 0,15 Р/ч. Изменение концентрации и, следовательно, мощности излучения описываются формулой Найти правую границу диапазона натуральных чисел, сумма которых может быть присвоена переменной типа INTEGER (левая граница - 0). Q=Q0 e-t Где Q0начальная мощность;=ln 2 / t (t — период полураспада). Решение. Для решения задачи будем изменять; с заданным шагом (например, 5 дней), вычислять Q и сравнивать его с допустимой величиной.

    2. Найти сумму цифр, составляющих целое число.

    3. Найти правую границу диапазона натуральных чисел, сумма которых может быть присвоена переменной типа INTEGER (левая граница - 0).

    4. Найти максимальное число факториал которого может быть присвоен переменной типа INTEGER.

    5. Найти количество натуральных чисел кратных трем в заданном диапазоне.

    6. Найти сумму натуральных чисел на заданном отрезке.

      1. Операторы цикла с постусловием

    5.3.1. Формат оператора цикла Until с постусловием :

    Do [инструкции] [Exit Do] [инструкции] Loop Until A

    Где А ‑ логическое выражение

    Exit Do досрочный выход из цикла, управление передается на оператор стоящий за Loop

    Правило выполнения:

    тело цикла выполняется до тех пор пока А имеет значение False. Тело цикла выполняется хотя бы один раз, т.к. проверка значения логического выражения осуществляется после выполнения инструкций.

    Пример: В известной басне И.А.Крылова лиса делила сыр откусывая ровно половину куска. Сколько раз она «делила» кусок сыра, если вороне досталось меньше одного грамма, начальный вес куска сыра известен и может быть сообщен ПК?

    Public Sub qqq()

    Dim x, s As Integer

    x = InputBox("Введите вес куска сыра")

    Do

    s = s + 1

    x = x / 2

    Loop Until x < 1

    MsgBox "сыр'делили' " & s & "раз." & chr(13) & " Вороне досталось " & x & "грамм"

    End Sub

    !!! По окончании работы цикла начальный вес куска сыра «потеряется», т.к. вес его половины после расчета заносится в ту же переменную «Х».

    ??? Если на каком-то шаге «дележа» вес остатка будет равен 1 грамму, достанется ли он вороне?

    5.3.2. Формат оператора цикла While с постусловием :

    Do [инструкции] [Exit Do] [инструкции] Loop While A

    Где А ‑ логическое выражение

    Exit Do досрочный выход из цикла, управление передается на оператор стоящий за Loop

    Правило выполнения:

    тело цикла выполняется до тех пор пока А имеет значение True. Тело цикла выполняется хотя бы один раз, т.к. проверка значения логического выражения осуществляется после выполнения инструкций.

    Пример: задача о лисе и вороне с использованием цикла While с постусловием будет реализовываться следующим программным кодом.

    Public Sub qqq()

    Dim x, s As Integer

    x = InputBox("Введите вес куска сыра")

    Do

    s = s + 1

    x = x / 2

    Loop While x > 1

    MsgBox "сыр'делили' " & s & "раз." & chr(13) & " Вороне досталось " & x & "грамм"

    End Sub

    Задание для практической работы.

    1. Найти сумму натуральных чисел начиная с 1, не превышающую заданное число М (М больше 1).

    2. Найти количество натуральных чисел кратных трем в заданном диапазоне.

    3. Найти максимальное число факториал которого может быть присвоен переменной типа INTEGER.

    4. Найти правую границу диапазона натуральных чисел, сумма которых может быть присвоена переменной типа INTEGER (левая граница - 0).

    5. Найти произведение цифр, составляющих целое число.

    6. Вычислить S=2N.( используя операцию возведения в степень; и не используя операцию возведения в степень)

    Домашнее задание:

    В ванне на поверхности воды плавает шар. Какова высота части шара, находящейся под водой? Считать, что шар однороден, имеет идеальную сферическую форму, поверхность воды – плоскость, плотность воды равна 1г/см3

    Вопросы для теоретического опроса:

    1. Дать определение циклического процесса.

    2. Перечислить разновидности циклов в АЯ VBA.

    3. Какой тип оператора цикла удобнее использовать, если известно число повторений.

    4. Основное отличие между циклами с «предусловием» и «постусловием».

    5. Написать формат оператора цикла с возрастающим параметром

    6. Написать формат оператора цикла с убывающим параметром

    7. Написать формат оператора цикла с «предусловием»

    8. Написать формат оператора цикла с «постусловием»

    9. Написать алгоритм работы оператора цикла с параметром

    10. Написать алгоритм работы оператора цикла с предусловием

    11. При каком значении логического выражения «тело цикла» будет повторяться в операторе цикла с предусловием

    12. При каком значении логического выражения «тело цикла» будет повторяться в операторе цикла с постусловием.

    13. . При каком значении параметра цикла завершит работу цикл с предусловием

    14. Написать алгоритм работы оператора цикла с постусловием

    15. Какие ограничения накладываются на параметр в операторе цикла с параметром

    16. Дать определение понятию – «тело цикла»

    17. Использование каких операторов, позволяет организовать циклический процесс без использования операторов цикла.

    18. Дать определение понятию – логическое выражение.

  • Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]