Реферат: работа по информатике. Текст к видео постановка задачи. Вариант 11

КУРСОВАЯ РАБОТА ПО ИНФОРМАТИКЕ. ТЕКСТ К ВИДЕО

Постановка задачи. Вариант 11

КУРСОВАЯ РАБОТА по ИНФОРМАТИКЕ.

Программирование в среде VBA.

Вариант 11.

Создание комплекса программ по расчету сопротивления резистора.

Исходные параметры:

U – Показание вольтметра, В (400).

I – Показание амперметра, А (0,5).

r – Сопротивление вольтметра, Ом (1700).

(В скобках указаны примерные значения).

Рассчитываемые параметры:

Сила тока, идущего через вольтметр, А: .

Сопротивление резистора, Ом: .

Данные для получения таблицы:

Столбец с изменяемым параметром: U=[500; 0] шаг 10.

Столбцы с рассчитываемыми параметрами: i, R.

Значения остальных исходных параметров, необходимых для расчета таблицы, постоянные – присвоить любые допустимые величины.

kr01. Начало. Титульный лист

Выполнение курсовой работы рассмотрим на примере варианта 11.

Какой бы вариант ни был – начало одинаковое.

Надо создать Excel-документ, в названии которого указать фамилию студента и номер варианта.

Открыть Excel-документ. Переименовать рабочие листы: Титульный, Расчетный, Таблица.

На Титульном листе необходимо вставить объект. Это может быть рисунок из файла на вашем компьютере, это может быть картинка из стандартной библиотеки.

Это может автофигура. В автофигуру я добавлю текст: «Курсовая работа по информатике».

Этот объект создается, чтобы назначить ему макрос.

Макрос предстоит создать в Редакторе VBA.

Для перехода в Редактор VBA нажимается сочетание клавишей Alt+F11.

Поскольку Excel-книга создана только что, в ней еще нет ни одного пользовательского модуля. Для создания пользовательского модуля выбираю команду меню Insert-Module.

Для создания в модуле процедуры набираю её первую команду Sub – название процедуры ТЕМА. Enter.

Процедура будет содержать команду вызова стандартной подпрограммы MsgBox.

Эта подпрограмма требует ввести 1-ый параметр – это текст, который будет выводится в окно MsgBox. Текст будет составным – в том смысле, что будет размещаться в несколько строк. Для перевода курсора в окне MsgBox на новую строку будем использовать функцию Chr(13). Код символа перевода строки – 13.

Поскольку команда получается очень длинная, я её буду размещать в несколько строк. Предыдущая строка должна заканчиваться знаком подчеркивания.

В первую строку я вписываю тему «Расчет электрической цепи».

Во второй строке название факультета – «Механико-машиностроительный факультет».

В третьей – название группы – «Группа: М190902».

В следующей строке – фамилия студента – «Студент: Иванов И.И.».

Это был первый параметр. Через запятую указываем второй параметр – vbInformation – значок, выводимый в окно MsgBox.

Третий параметр – текст, который пойдет в заголовок окна – «Курсовая работа, по информатике».

Для выполнения этой процедуры нажимается клавиша F5 или кнопка Run. Работает.

Обратите внимание. В окно MsgBox выдается:

1. Текст (это первый аргумент подпрограммы MsgBox).

2. Значок (второй аргумент).

3. Заголовок окна.

Перехожу на рабочий лист Титульный и автофигуре назначаю (через контекстное меню) только что созданный макрос ТЕМА. Таким образом, автофигура превращается в кнопку, щелчок по которой вызывает назначенный макрос (Sub-процедуру) ТЕМА.

kr02. Создание рисунка рассчитываемого объекта

На Расчетном листе создадим рисунок рассчитываемого объекта. В нашем варианте это электрическая схема.

Для создания рисунка будем использовать кнопки панели инструментов Рисование: Линия, Овал, Надпись и др.

Чтобы проводимая линия была строго горизонтальна (вертикальна), я удерживаю клавишу Shift.

Для создания копии линии удерживаю Ctrl.

Для увеличения толщины линии использую кнопку Тип линии.

Кнопка Овал. Чтобы создать строгую окружность, удерживаю клавишу Shift.

Вписываю текст – по команде контекстного меню.

Теперь создаем надписи – кнопка Надпись.

Чтобы убрать линии Надписи, выбираю кнопку Цвет лини и там – Нет линии.

Рисунок готов. Осталось объединить все составляющие его элементы. Для этого выбираю кнопку Выбор объекта (Стрелка на панели Рисование) и выделяю все элементы. И через кнопку Действие выбираю команду Группировать.

Рисунок готов.

kr03. Ввод таблицы исходных параметров и таблицы рассчитываемых параметров

На Расчетном листе введем поясняющий текст, введем таблицу исходных параметров и таблицу рассчитываемых параметров. И отформатируем эти таблицы.

Текст я позаимствую из задания по Курсовой работе (через буфер обмена).

Для добавления строки на рабочем листе сначала выделяю строку перед добавляемой – щелчком по её номеру, затем нажимаю комбинацию клавишей Ctrl+.

Задаю выравнивание по правому краю для ячеек с названиями параметров.

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

Параметры будем рассчитывать тремя способами:

1. По формуле рабочего листа.

2. С помощью пользовательской функции.

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

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

Готово.

kr04. Использование Счетчика и Поля со списком для ввода значений исходных параметров

Значения исходных параметров можно вводить напрямую в ячейку. А можно – с использованием элементов управления с панели инструментов Формы.

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

Добавим элемент Счетчик. В его контекстном меню выберем Формат объекта и Счетчик свяжем с управляемой ячейкой.

Минимальное значение, Максимальное и Шаг изменения оставим без изменения. А вот Текущее значение укажем, например, 400.

Проверим Счетчик – работает.

Для Показания амперметра также создадим Счетчик. Вызовем Формат. Свяжем Счетчик с управляемой ячейкой.

Обратите внимание, здесь надо вводить дробное значение. Выберу Формат Счетчика – к сожалению, здесь Шаг изменения можно задать только целое значение. Поэтому мы схитрим: управлять будем какой-нибудь другой ячейкой, промежуточной. Ок. А в нужную ячейку вставим формулу: значение промежуточной ячейки будем делить на 10. Пробуем – работает.

Для управления Сопротивлением вольтметра также можно вставить Счетчик. Но мы рассмотрим другой элемент – Поле со списком.

Вставляем Поле со списком. Чтобы в списке появлялись какие-то значения, мы предварительно введем эти значения в определенный диапазон на рабочем листе –значения, например, начиная с 1650 до 1750.

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

Необходимо, чтобы выбранное значение появлялось в ячейке с Сопротивлением (Н8). В неё мы вставим функцию ИНДЕКС – из категории Ссылки и массивы. Из двух предложенных вариантов функции выбираем первый по порядку. Первый параметр функции Массив – это диапазон, из которого надо выбрать ячейку, номер которой (второй параметр) находится в промежуточной ячейке. Ок. Пробуем выбирать – работает.

Вместо Поля со списком можно было выбрать элемент Список. Технология его использования точно такая же.

kr05. Вставка формул (объект Microsoft Equation 3.0)

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

Для этого вставим объект (через меню Вставить — Объект) Microsoft Equation 3.0

Готово.

Замечание. Если в списке объектов нет объекта Microsoft Equation 3.0, то надо через Панель управления Windows вызвать Установку и удаление программ, найти Microsoft Office, нажать кнопку Изменить. Выбрать Добавить и удалить компоненты. Обязательно поставить галочку Расширенная настройка приложений. В разделе Средства Office Редактор формул установить в состояние Запускать с моего компьютера. После чего выполнить Обновление. В результате вы сможете использовать Microsoft Equation 3.0 в Excel’е и в других офисных приложениях.

kr06. Вычисление Силы тока (Базовый алгоритм Линейная последовательность)

Вычисляем Силу тока.

Первый способ – по формуле рабочего листа. Напряжение поделить на Сопротивление. Простейшая формула, простейший способ.

Второй способ – с помощью функции. Alt+F11 – перехожу в Редактор VBA. И создаю процедуру-функцию, которую называю СилаТока. В скобках перечисляю аргументы функции U, r, через которые в неё будут передаваться исходные данные.

Отличительная особенность функции в её способности возвращать значение. Для этого она должна содержать оператор присваивания, в левой части которого название функции, а в правой – возвращаемое значение.

На рабочем листе вставляю функцию в ячейку с помощью Мастера функций. Категория – Определенные пользователем. Выбираю нужную – СилаТока. На этапе вставки функции необходимо указать, из каких ячеек брать значения её аргументов: U и r. Ок. Готово.

Третий способ – с помощью макроса. Макрос – это другое название Sub-процедуры. Которую я также создам в Редакторе VBA. Назову так же, но с учетом того, что процедуры не должны иметь одинаковые имена: СилаТока_.

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

Результат буду записывать в ячейку также с помощью Range.

Sub-процедуру в Редакторе VBA можно выполнить клавишей F5 или кнопкой Run.

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

Силу тока через вольтметр мы вычислили третьим способом – с помощью макроса.

На рабочем листе макрос можно вызвать через меню Сервис – Макрос – Макросы.

Макрос можно также назначить какому-нибудь объекту, например, формуле Microsoft Equation 3.0 – через контекстное меню. В результате формула превращается в кнопку, щелчок по которой вызывает макрос.

Проверяю расчет путем изменения исходных данных. Автоматически получаю расчет силы тока по формуле и с помощью функции. Щелчок по кнопке-формуле вычисляет силу тока с помощью макроса.

Мы реализовали базовый алгоритм Линейная последовательность.

Который отобразим в виде блок схемы в Word-документе.

Рисовать удобнее по линиям сетки – отобразим сетку через кнопку Рисование – Сетка (панель инструментов Рисование).

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

— Начинаем со знака Завершение (он же знак Начало). Через контекстное меню вписываем текст «Начало». Текст выравниваем По центру.

— Следующий блок – Данные – для ввода исходных данных.

— Блок Процесс для отображений вычислений.

— Для вывода результата используется тот же блок, что и для ввода исходных данных.

— Для создания копии блока (Начало/Конец), удерживаем Ctrl.

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

Корректирую Полотно (угловой маркер).

Убираю сетку (кнопка Рисование — Сетка).

Готово.

Блок-схема алгоритма Линейная последовательность, на основе которого вычислили силу тока тремя способами.

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

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

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

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

В Редакторе 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 из программы.

— Конец процедуры.

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

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

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

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

kr08. Построение таблицы зависимости i и R от U и запись таблицы в файл VAR11.txt

Теперь необходимо получить таблицу. Первый столбец таблицы содержит циклически изменяемый параметр, в нашем варианте это U – показания вольтметра. U меняется от 500 до 0 с шагом 10. 500, 0, 10 – значения, которые будут вводиться с клавиатуры, и, в принципе, можно будет вводить другие. Для каждого значения U надо рассчитать значение i – сила тока через вольтметр и R – сопротивление резистора.

Переходим в Редактор VBA и создаем процедуру ТаблицаФайл.

С помощью стандартной функции InputBox вводится с клавиатуры начальное и конечное значение U и шаг изменения U. Введенные значения присваиваются переменным n, k, s.

С помощью стандартной функции Val текстовые значения n, k, s преобразуются в числовые.

Значения других исходных параметров (кроме U) возьмем из ячеек рабочего листа с помощью стандартной функции Range: из ячейки H7 показание амперметра Ia, из H8 сопротивление вольтметра r.

Командой Open открываем файл с именем Var11.txt для записи в него данных (режим Output). Файлу присваивается № 1, в дальнейшем по этому номеру будет осуществляться обращение к этому файлу.

Поскольку мы не указали, в какой папке сохранить файл, он будет сохранен в системной папке Мои документы.

Командой Write в 1-ый файл выводятся заголовки таблицы (текст, заключенный в кавычки).

Далее начинается оператор цикла типа Цикл со счетчиком. Роль счетчика здесь играет переменная U. Цикл начинается командой For и заканчивается командой Next. Между ними – тело цикла.

Буквально читаем.

Для U, изменяющегося от n до k с шагом s вычислить силу тока и сопротивление путем вызова ранее созданных функций. В скобках перечисляются фактические параметры – исходные данные для этих функций. Возвращаемые значения присваиваются переменным i и RR.

Затем по команде Write в 1-ый файл выводятся значения U, i, RR.

По команде Next U к старому значению U прибавляется шаг S.

Далее новое значение U сравнивается с k. И если U<=k, то цикл повторяется: для нового значения U рассчитываются значения i и RR и выводятся в файл – в новую строку таблицы.

По окончании цикла командой Close закрывается файл № 1 и выводится сообщение о том, что таблица записана в файл.

Блок-схема процедуры ТаблицаФайл на базе алгоритма цикла со счетчиком:

— Начало процедуры

— Ввод с клавиатуры n, k, s.

— Ввод в программу значений Ia, r из ячеек рабочего листа.

— Открыть файл.

— Вывод заголовков таблицы в файл.

— Начало цикла: переменной U присваивается начальное значение n, и сравнивается с конечным значение k.

— Если U<=k, вычисляется i и RR и значения U, i, RR выводятся в файл.

— Затем к старому значению U прибавляется шаг S.

— И новое значение U опять сравнивается с k. И если U<=k, цикл повторяется.

— Если U>k, выходим из цикла.

— Файл закрывается.

— Выдается сообщение «Таблица записана в файл».

— Конец процедуры.

Специально для обозначения на блок-схеме цикла со счетчиком предусмотрен элемент , который уже включает в себя, подразумевает:

— Начальное присваивание U=n.

— Проверку условия U<=k.

— И переход к новому значению счетчика U=U+S.

Таким образом, с этим элементов блок-схема выглядит компактней.

Выполним процедуру ТаблицаФайл в пошаговом режиме. Этот режим используется для проверки правильности выполнения алгоритма и для поиска и исправления ошибок.

По нажатии клавиши F8 выполняется очередная команда и подсвечивается следующая.

Введем начальное значение U n=1, конечное k=3, шаг s=4.

При наведении курсора на переменные отображаются их значения.

По команде меню View – Locals Window откроется окно со списком локальных переменных (то есть всех переменных, которые используются в выполняемой процедуре) и их значениями.

Обратите внимание, значения n, k, s, принятые с клавиатуры с помощью InputBox, берутся в кавычки, то есть имеют текстовый тип.

Выполняя процедуру далее, выполняя функции Val, кавычки убираются, – значит, выполняется преобразование текстового типа в числовой тип.

Продолжаем нажимать F8. Начинаем выполнять цикл. U присваивается n=1. U<k (1<3) – поэтому выполняется тело цикла. Выполняется вызов функции СилаТока, входим в функцию, выполняем её, возвращаемся в вызывающую процедуру ТаблицаФайл. Теперь выполняется вызов функции Сопротивление, входим в функцию, выполняем её, возвращаемся в вызывающую процедуру ТаблицаФайл. Выводим значения в файл. Увеличивается значение U, становится равным 2. Возвращаемся к началу цикла, проверяем: 2<3? – Да, цикл повторяется. U становится равным 3. 3<3? – Нет. 3=3? – Да, цикл повторяется еще раз. U становится равным 4. 4<3? – Нет. 4=3? – Нет – выходим из цикла. Закрывается файл. Выдается сообщение. Выходим из процедуры.

Запускать процедуру на рабочем листе будем с помощью кнопки. Которую возьмем с панели инструментов Формы.

Этой кнопке назначим макрос ТаблицаФайл. И введем текст кнопки «Построение таблицы зависимости i и R от U и запись таблицы в файл VAR11.txt».

Проверяем. Щелчком по кнопке вызывается процедура. Вводим начальное значение 500, конечное 0. Поскольку U меняется от большего к меньшему, шаг надо задать отрицательным – введем –10.

Таблица записана в файл!

Откроем Мои документы и убедимся: файл VAR11.txt создан. Откроем его в Блокноте.

Обратите внимание:

— Выводимые значения в файле разделяются запятой.

— Текстовые значения берутся в кавычки (заголовки).

Закроем Блокнот.

Предусмотрим открытие файла с рабочего листа.

Для этого в Редакторе VBA создадим процедуру ПросмотрФайла.

Она состоит из одного оператора Shell, который позволяет выполнить из программы команду операционной системы. В нашем примере такой командой будет notepad.exe, которая запускает одноименный файл из системной папки Windows, то есть запускает Блокнот. Через пробел указывается параметр команды – имя файла VAR11.txt, который надо открыть в Блокноте. Команда операционной системы берется в кавычки: «notepad.exe VAR11.txt».

Через запятую указывается второй параметр оператора Shell – vbNormalFocus, он означает: открыть окно Блокнота не в распахнутом виде, не в свернутом, а в нормальном виде.

Перейдем на рабочий лист и создадим кнопку для запуска процедуры ПросмотрФайла. Назначим ей макрос ПросмотрФайла. Введем текст на кнопке «Просмотр файла VAR11.txt».

Убедимся, что щелчок по кнопке открывает Блокнот с нашим файлом.

Закроем Блокнот.

kr09. Чтение файла VAR11.txt и запись на рабочий лист Таблица

Обеспечим Чтение файла VAR11.txt и запись его на рабочий лист Таблица.

Для этого создадим процедуру ЧтениеФайла.

Она начинается с открытия файла VAR11.txt в режиме Input (для чтения файла).

Переменная Nстроки будет отслеживать № текущей строки рабочего листа, в которую будет выводиться очередная прочитанная из файла строка таблицы. Таблица будет начинаться с 1-ой строки.

Далее начинается цикл – цикл типа Пока. Цикл начинается командой Do While, заканчивается командой Loop. Между ними – тело цикла.

Цикл типа Пока выполняется, пока выполняется истинно заданное выражение – в данном случае это Not Eof(1).

Стандартная функция Eof(1) (End jf File) возвращает логическое значение ИСТИНА, если файл закончился, и ЛОЖЬ, если нет. Логическая операция Not – логическое отрицание, логическое НЕ. Так что выражение Not Eof(1) принимает значение ИСТИНА, если файл не закончился, то есть если функция Eof(1) возвращает ЛОЖЬ.

Буквально читаем.

Выполнять, пока не End of File – пока не закончился файл.

Командой Input из 1-го файла считываются значения (в файле они разделены запятыми) и присваиваются переменным U, i, RR. Количество переменных должно быть равно количеству значений в строке файла.

Далее. На рабочем листе Таблица в ячейку на пересечении строки, заданной переменной Nстроки и 1-го столбца записывается значение переменной U.

В ячейку на этой строке во 2-ом столбце записывается значение переменной i.

В 3-ий столбец записывается значение переменной RR.

Далее увеличивается номер строки на 1.

И по команде Loop возвращаемся к началу цикла – к проверке условия Файл не закончился?

Если не закончился, из файла считывается следующая строка и записывается в очередную строку рабочего листа.

Номер строки снова увеличивается и снова – проверка условия…

Когда файл закончится, функция Eof(1) вернет значение ИСТИНА; выражение Not Eof(1) примет значение ЛОЖЬ – это признак завершения цикла.

Команда Close закрывает файл.

Команда MsgBox выдает сообщение о том, что файл прочитан и записан.

Блок-схема процедуры ЧтениеФайла на базе алгоритма цикла типа «Пока» (пока не конец файла):

— Начало процедуры.

— Открытие файла.

— Номеру строки присваиваем 1.

— Проверяем: Не конец файла?

— Если не конец, идем по ветке Да.

— Читаем значения из файла.

— Записываем их на рабочий лист.

— Увеличиваем Nстроки на 1.

— И снова – Не конец файла?

— Цикл повторяется, пока не завершится файл.

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

— Закрываем файл.

— Выдаем сообщение.

— Конец процедуры.

Перед выполнение процедуры ЧтениеФайла проверим наличие рабочего листа Таблица (мы его создали в самом начале курсовой работы).

Для наглядности одновременно отобразим – рабочий лист, Блокнот с файлом и текст процедуры.

Выполнять будем в пошаговом режиме, нажимая клавишу F8.

Открыть файл.

Nстроки=1.

Начало цикла.

Чтение значений из 1-ой строки файла (это заголовки таблицы) в переменные U, i, RR.

Они записываются в 1-ую строку рабочего листа.

Nстроки увеличивается на 1.

Возвращаемся к началу цикла, проверяем: Не конец файла?

Нет – читаем следующую строку файла и записываем её во 2ую строку рабочего листа.

Переходим к 3-ей строке. И цикл повторяется.

Продолжим выполнение процедуры в обычном режиме – клавиша F5.

Файл прочитан и записан на рабочий лист.

Перед новым выполнением процедуры ЧтениеФайла надо очистить рабочий лист Таблица от старых данных.

Для этого:

1. Переходим на лист.

2. Выделяем все ячейки листа.

3. Очищаем их – клавишей Del.

Сделаем так, чтобы эти действия выполнялись программно – при выполнении процедуры ЧтениеФайла.

Чтобы узнать, какие команды надо вставить для этого в процедуру, запустим команду меню Сервис – Макрос – Начать запись.

Согласимся с именем макроса Макрос1. Ок.

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

Итак.

1-ое действие – переходим на лист Таблица.

2-ое – выделяем все ячейки листа.

3-е – очищаем их клавишей Del.

Всё. Щелкаю кнопку Остановить запись.

Переходим в Редактор VBA. Открываем Проводник проекта – командой меню View – Project Explorer.

Обратите внимание: при записи макроса автоматичски был создан новый пользовательский модуль Module2.

Откроем его сдвоенным щелчком. И обнаружим в нем макрос Макрос1. Он состоит из трех команд, соответствующих нашим трем действиям:

1. Переход на лист Таблица.

2. Выделение ячеек листа.

3. Очистка их.

Скопируем эти три команды в буфер обмена.

Перейдем в Module1 и вставим их из буфера в начало процедуры ЧтениеФайла.

Теперь рабочий лист Таблица будет очищаться программно – при выполнении процедуры ЧтениеФайла.

Module2 с макросом нам больше не нужен – удалим его. В контекстном меню выберем команду Remove Module2. В ответ на вопрос: Сохранить удаляемый модуль в отдельном файле? – ответим Нет.

Закроем Проводник проекта.

Для выполнения процедуры ЧтениеФайла на рабочем листе создадим кнопку с панели инструментов Формы. И назначим ей макрос ЧтениеФайла.

Введем поясняющий текст кнопки «Чтение файла VAR11.txt и запись на рабочий лист Таблица».

Щелкнем по кнопке – процедура выполнилась, файл прочитан и записан на лист.

kr10. Построение графика зависимости i и R от U

На основе таблицы построим график зависимости Силы тока i и Сопротивления R от Напряжения U.

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

Начнем с создания кнопки. Возьмем её с панели инструментов Формы.

Кнопке назначим макрос. Этого макроса еще нет. Поэтому нажмем кнопку Записать.

Имя макроса – График. Ок.

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

Перед вызовом Мастера диаграмм выделим столбцы i и R. Для автоматизации выделения используем сочетание клавишей Ctrl+Shift+Стрелка вниз.

Вызываем Мастер диаграмм.

Тип диаграмм – сначала выберем График.

Чтобы посмотреть результат, нажмите и удерживайте кнопку Просмотр результата. Обратите внимание: график R виден хорошо, а график i почти сливается с осью Х. Это потому, что значения i и R сильно отличаются – на 4 порядка. Значит, этот тип диаграммы нам не подходит.

На вкладке Нестандартные выберите тип Графики (2 оси). В этом случае на левой оси Y отмечаются значения i, а на правой – значения R.

Далее.

Обратите внимание: по оси Х отмечаются просто номера отсчета.

Перейдем на вкладку Ряд и укажем, что Подписи оси Х брать из 1-го столбца (со 2-ой ячейки), который выделим с помощью сочетания клавишей Ctrl+Shift+Стрелка вниз

Далее.

Легенду разместим вверху.

Далее.

Диаграмму разместим на этом же листе Таблица.

Готово.

Диаграмма построена.

Замечание. Не рекомендуется в процессе записи макроса перемещать полученную диаграмму или изменять её размеры.

Щелкаем кнопку Остановить запись.

График построен. Процесс построения записан в макрос.

Введем поясняющий текст на кнопке «Построение графика зависимости i и R от U».

Перейдем в Редактор VBA. Откроем Проводник проекта – командой меню View – Project Explorer.

Обратите внимание: при записи макроса автоматичски был создан новый пользовательский модуль Module2.

Откроем его сдвоенным щелчком и рассмотри макрос График.

Макрос начинается с команд выделения диапазона.

Затем идет команда добавления диаграммы.

Далее идут команды, задающие свойства диаграммы:

— Тип – График (2 оси).

— Диапазон с исходными данными.

— Диапазон с подписями оси Х.

— Где разместить диаграмму – на листе Таблица.

— Добавить лигенду.

— Разместить легенду вверху.

Для проверки макроса удалим полученную диаграмму – клавишей Del.

И щелкнем кнопку Построение графика.

Графика построен.

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

ßßßßß

еще рефераты
Еще работы по остальным рефератам