Мегаобучалка Главная | О нас | Обратная связь


Kr07. Вычисление Сопротивления резистора (Базовый алгоритм Условный переход)



2019-12-29 241 Обсуждений (0)
Kr07. Вычисление Сопротивления резистора (Базовый алгоритм Условный переход) 0.00 из 5.00 0 оценок




Рассчитываем Сопротивление резистора.

Первый способ – по формуле: Показание вольтметра поделить на разницу между Показанием амперметра и Силой тока через вольтметр.

 

С помощью функции.

В Редакторе VBA создаем процедуру-функцию Сопротивление. В неё передаем исходные данные через аргументы, которые перечисляем в скобках через запятую: это Показание вольтметра U, Показание амперметра Ia, Сила тока через вольтметр i.

Обратите внимание. Если Показание амперметра обозначить большой буквой I, а Силу тока через вольтметр маленькой буквой I (как в постановке задачи), то, согласно правилам VBA, эти две переменные будут считаться одной и той же переменной, что приведет к ошибке. Поэтому Показание амперметра я обозначил Ia.

На основе исходных данных рассчитывается сопротивление r. r присваивается переменной Сопротивление, имя которой совпадает с именем функции. Благодаря этому функция способна возвращать значение, и мы можем её вставить в ячейку рабочего листа.

На рабочем листе вызываем Мастер функций.

Категория Определенные пользователем. Функция Сопротивление.

Указываем, где (в каких ячейках) брать исходные данные. Ок. Готово.

 

С помощью макроса.

В Редакторе VBA создаем Sub-процедуру Сопротивление_. Исходные данные в неё передаются с помощью функции Range, которая обращается к ячейкам рабочего листа по их обозначениям. Вычисляю r, и r записываю в ячейку с помощью Range.

На рабочем листе созданный макрос, то есть Sub-процедуру назначаем формуле Microsoft Equation 3.0 (через контекстное меню). Теперь щелчок по формуле вызывает макрос. Готово.

 

Таким образом мы вычислили Сопротивление резистора на основе алгоритма, который назваться Линейная последовательность.

 

Обращаю ваше внимание на ситуацию, которая возникает, если Показание вольтметра будет равно 850. В этом случае разница между Показанием амперметра и Силой тока через вольтметр будет равна 0, что приведет к ошибке. И в соответствующие ячейки выдается стандартное сообщение об ошибке #ДЕЛ/0.

Посмотрим (через контекстное меню) справку по этой ошибке. Среди прочего здесь говорится: «Чтобы ошибка не отображалась, используйте функцию листа ЕСЛИ. Последуем этому совету.

Вставим (в ячейку с формулой для Сопротивления) – из категории Логические – функцию ЕСЛИ. Первый аргумент функции – Логическое выражение: если Показание амперметра минус Сила тока через вольтметр равно нулю, то (второй аргумент Значение_если_истина) функция должна вернуть пустое значение – две кавычки без пробела: "". Иначе (третий аргумент Значение_если_ложь) функция должна вернуть значение по формуле: Показание вольтметра поделить на разницу между Показанием амперметра и Силой тока через вольтметр.

Готово. Теперь вместо стандартного сообщения об ошибке выдается пустое значение.

 

Подкорректируем функцию Сопротивление (в Редакторе VBA).

Вместо оператора присваивания вставим оператор условного перехода If. Это аналог функции рабочего листа ЕСЛИ.

Читаем. Если (If) разница между Показанием амперметра и Силой тока через вольтметр равна нулю, то (Then) r присвоить пустое значение. Иначе (Else) r присвоить значение, вычисляемое по формуле.

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

 

Запусти макрос (щелчком по кнопке-формуле). В этом случае также выдается сообщение об ошибке (в диалоговом окне) – Деление на ноль (Division by zero). Кнопка End приведет к завершению процедуры. При нажатии кнопки Debug (нажимаем) – процедура будет продолжаться выполняться в пошаговом режиме.

В этом режиме подсвечивается ошибочная команда.

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

Остановим выполнение программы (кнопкой Stop на панали инструментов). И внесем изменение в тексте процедуры.

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

Поэкспериментируем: вместо пустого значения "" пусть функция возвращает текст "Ошибка!"

Запускаем макрос (на рабочем листе щелчком по формуле-кнопке). Готово.

Проверим (путем изменения значений исходных параметров). Работает.

 

Мы реализовали алгоритм, который называется Алгоритм условного перехода.

 

Блок-схема алгоритма условного перехода (в Word-документе):

§ Начало процедуры. § Ввод исходный данных. § Проверка условия: если условие выполняется, идем по ветке Да, и переменной r присваивается текст Ошибка; если условие не выполняется – по ветке Нет, переменной r присваивается значение, вычисляемое по формуле. § Далее в обоих случаях осуществляется вывод r из программы. § Конец процедуры.

 

При построении блок-схемы использовались Автофигуры – Блок-схема.

Для создания надписей Да и Нет использовался элемент, который так и называется Надпись.

После вставки Надписи в Формате (вызванном через контекстное меню) задаем: Нет заливки и Нет линии.

Итак, это был алгоритм условного перехода, на основе которого мы вычислили Сопротивление резистора.

 



2019-12-29 241 Обсуждений (0)
Kr07. Вычисление Сопротивления резистора (Базовый алгоритм Условный переход) 0.00 из 5.00 0 оценок









Обсуждение в статье: Kr07. Вычисление Сопротивления резистора (Базовый алгоритм Условный переход)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (241)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)