Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Линейный токоограничивающий реакторСтр 1 из 6Следующая ⇒
А.Е.УСАЧЕВ
Утверждено учебным управлением КГЭУ
Лабораторные работы 1-6
по курсу
«Применение ЭВМ в высоковольтной электроэнергетике»
Казань 2005 УДК 681.324/06(075) ББК 32.973.233 У74 Лабораторные работы 1 - 6 по курсу «Применение ЭВМ в высоковольтной электроэнергетике» А.Е.Усачев. Казань: Изд-во КГЭУ, 2005. 39 с. Лабораторные работы 1 - 6 по курсу «Применение ЭВМ в высоковольтной электроэнергетике» предназначены для студентов пятого курса подготовки дипломированных специалистов по направлению 650900 " Электроэнергетика", специальности 071600 «Высоковольтные электроэнергетика и электротехника» и 100100 «Электрические станции», а также магистров по направлению 551700 " Электроэнергетика", программа 551707 «Техника и физика высоких напряжений». Приведено содержание шести лабораторных работ в среде " Борланд-Паскаль" и " Дельфи-7".
Печатается по решению редакционно-издательского совета Казанского государственного энергетического университета.
Предисловие
Дисциплина «Применение ЭВМ в высоковольтной электроэнергетике» является завершающей в цикле дисциплин, по обучению навыкам программирования задач электроэнергетики при подготовке дипломированных специалистов по специальностям 071600 " Высоковольтные электроэнергетика и электротехника" и 100100 «Электрические станции». Она связана с такими дисциплинами как, " Математические задачи электроэнергетики", " Численные методы математического моделирования", " Информатика". Целью дисциплины является изучение программирования на языке " Борланд-Паскаль" и в среде " Дельфи-7", освоение ввода информации в программу из файлов данных, создание простых и сложных приложений для расчетов параметров аппаратуры высоких напряжений (АВН), взаимодействия с файлами в формате баз данных и электронных таблиц, построение графиков, сохранение результатов расчетов и их распечатка. А состав сборника входит 6 лабораторных работ. В первой работе студенты обучаются вводу данных в программу из текстовых файлов с однородной информацией и выводу информации в отдельный файл результатов расчета. Знакомятся с работой операторов read, readln, write, writeln, assign, assignfile, reset, rewrite, append, close, closefile. Создают программы для расчета простых программных приложений типа: расчет падения напряжения на токоограничивающем реакторе, расчет остаточного напряжения на шинах ЭС, расчет сопротивления реактора, проверка реактора на термическую и электродинамическую стойкость и т.п. Во второй работе студенты обучаются вводу данных в программу из текстовых файлов с неоднородной информацией. Знакомятся с работой циклических операторов for, repeat, while для организации ввода, логических переменных для выбора АВН, операторов if для организации списков вывода. В третьей работе студенты обучаются составлению различных процедур и функций для расчетов в технике высоких напряжений, отсутствующих в базовых языках. В четвертой, пятой и шестой работах студенты обучаются составлению простых и сложных приложений в среде Дельфи для: расчетов параметров АВН; изучения процессов, происходящих в технике высоких напряжений под действием высокого напряжения и сильных токов; обработки баз данных и текущей диспетчерской информации.
Лабораторная работа 1 Линейный токоограничивающий реактор Цель работы Обучение студентов вводу данных в программу из текстовых файлов с однородной информацией и вывод информации в отдельный файл результатов расчета. Знакомство с операторами read, readln, write, writeln, assign, assignfile, reset, rewrite, append, close, closefile. Расчет падения напряжения на токоограничивающем реакторе, расчет остаточного напряжения на шинах ЭС, расчет сопротивления реактора, проверка реактора на термическую и электродинамическую стойкость. Порядок выполнения работы 1. Создать в своём собственном каталоге, который должен находиться в каталоге Student\название группы (например, tvn-1-01), новый подкаталог с названием lab1. Если собственного каталога не существует, то создать его. Создание нового каталога может производиться несколькими различными способами, например, выбрать последовательно следующие папки Мой компьютер-диск е (или d) –Student – название групп и, нажав правую кнопку манипулятора мышь, выбрать команду создать – новую папку. Название новой папки (каталога) ввести из первых 8 букв (или меньше) своей фамилии латинским шрифтом. 2. Запустить программу Борланд Паскаль (Дельфи 7) двойным щелчком по соответствующей пиктограмме, расположенной на рабочем столе. В меню File выбрать New (новый). Ввести в одну (самую верхнюю) строку значения сопротивления реактора (Ом), его номинальное напряжение (кВ), значение cosj, величину тока (А), протекающего через реактор. Различные значения отделять друг от друга одним (или несколькими) пробелами. Разделителем между целой и десятичной частью чисел является точка. Пример файла данных: 0.4 10.5 0.85 630. 3. Сохранить созданный файл данных в каталоге lab1: - в меню File выбрать команду Save as (сохранить как); - в окне сохранения найти нужный каталог (например - e: \student\tvn-1-01\ivanov\lab1\); - ввести имя и расширение файла данных. Имя должно быть смысловым (reactor, trans, line и т.п), набираться латинским шрифтом и не превышать 8 символов. Расширение (второе имя) из трех латинских букв, как правило это dat или txt. Пример имени файла данных - reactor1.dat; - нажать кнопку save для сохранения. 4. Создать новый файл и сохранить его под именем lab1.res. 5. Написать программу чтения данных из файла, вычисления потерь напряжения на реакторе и вывода полученных результатов в файл result.dat. Пример кода программы в Delphi (при программировании на Б.Паскале подчеркнутые части операторов исключить):
Const {Раздел описания констант, где path (путь, тропинка) - путь, по которому компьютер находит файл reactor.dat } path='e: \student\tvn-1-01\ivanov\lab1\'; var {описание использующихся в программе переменных} Xp, Unom, cosfi, I, Up: real; f1, f2: textfile; Begin assignfile(f1, path+'reactor.dat'); assignfile(f2, path+'result.dat'); reset(f1); rewrite(f2); {append(f2); } readln(f1, Xp, Unom, cosfi, I); writeln('Xp= ', Xp: 1: 2, ' Om, Unom= ', Unom: 3: 1, ' kV, cosfi= ', cosfi: 1: 2, ' I= ', I: 4: 0, ' A'); writeln(f2, 'Xp= ', Xp: 1: 2, ' Om, Unom= ', Unom: 3: 1, ' kV, cosfi= ', cosfi: 1: 2, ' I= ', I: 4: 0, ' A'); closefile(f1); Up: =Xp*sqrt(3)*I*sqrt(1-sqr(cosfi))*100/Unom/1000; writeln('Up= ', Up: 2: 2, ' %'); writeln(f2, ' Потери напряжения в реакторе Up= ', Xp: 2: 2, ' %'); closefile(f2); End.
6. Сохранять программу через каждые 10-15 минут набора кода, нажимая команду File-Save. 7. Исправить ошибки написания кода программы, запуская программу в режиме компиляции ( Compilation или Alt-F9). Добиться появления надписи в диалоговом окне successfully completed (успешно завершена). Сохранить программу. 8. Запустить программу на исполнение ( Run или Ctrl-F9). Проверить в окне результатов правильность ввода исходных данных и результатов расчета. Закрыть окно результатов, нажав на крестик в правом верхнем углу окна результатов. Открыть файл lab1.res и убедиться, что в этом файле записались исходные данные и результаты расчета. Закрыть этот файл. 9. Изменить код программы: оператор rewrite(f2) заменить на оператор append(f2). Сохранить программу. Запустить на исполнение. Открыть файл вывода информации и убедиться, что в нем оказалось две записи результатов расчета. Закрыть файл результатов. 10. Изменить файл исходных данных, сохранить и запустить программу, не меняя исходного кода. Убедиться, что результаты расчета изменяются. 11. Дополнить файл данных исходной информацией (по заданию преподавателя). 12. Изменить код программы и рассчитать остаточное напряжение на шинах ЭС, сопротивление линейного реактора, выполнить проверку реактора на термическую и электродинамическую стойкость. Все результаты расчетов выводить в файл результатов. Отчет по лабораторной работе должен содержать три файла, расположенные в собственном каталоге lab1, например: reactor.pas, reactor.dat, lab1.res. В файле lab1.res должен содержаться отчет по всем вариантам расчетов, проводившихся во время выполнения работы. Контрольные вопросы 1. Как создать новую папку (каталог) в другой папке (каталоге)? 2. Перечислите простые перечисляемые типы языка Паскаль. 3. Какие бывают типы целочисленных переменных и чем они отличаются друг от друга? 4. Какие бывают типы переменных с плавающей запятой, где применяются, чем отличаются друг от друга и каково их общее название? 5. Какие ограничения накладываются на имя идентификатора в языке Паскаль? 6. Какова структура файла типа text (textfile)? 7. Как в программе открыть какой-либо файл для чтения из него информации? 8. Как в программе открыть какой-либо файл для записи в него информации? 9. Каково назначение операторов reset, rewrite, append? 10. Каково назначение операторов assign и assignfile? Чем они отличаются друг от друга? 11. Каково назначение операторов read и readln? В чем заключается различие между ними? 12. Запишите код программы для ввода одного или нескольких чисел с клавиатуры. 13. Как ввести число или несколько чисел из файла данных? Запишите код программы. 14. Каково назначение операторов write и writeln? В чем заключается различие между ними? 15. Запишите код программы для вывода какой-либо информации (например, номинального тока и напряжения АВН) на экран монитора. 16. Как вывести несколько чисел в текстовый файл? В чем заключается различие при написании кода для вывода информации на экран монитора и в текстовый файл? 17. Как организовать ведение протокола расчетов, т.е. дополнять существующий файл данных новыми результатами расчетов? 18. Как использовать оператор целочисленного деления mod для аккуратного вывода большого массива чисел? Приведите пример кода программы с использованием этого оператора. 19. Как записать комментарий в программе? Что такое комментарий и зачем он нужен? 20. Как отделяют операторы один от другого? 21. Как организовать вывод переменной типа real с определенным числом знаков до и после запятой (в фиксированном формате)? 22. Как организовать промежутки между числами при их выводе на экран или в файл, чтобы они не сливались одно с другим?
Лабораторная работа 2 Цель работы Обучение студентов вводу данных в программу из текстовых файлов с неоднородной информацией. Использование циклических операторов for, repeat, while для организации ввода, логических переменных для выбора АВН, операторов if для организации списков вывода. Порядок выполнения работы 1. Получить задание на выбор АВН (генераторы, трансформаторы, выключатели, изоляторы и т.п) и разобраться в структуре текстового файла данных. 2. Создать каталог lab2 и скопировать в него файл программы lab1.pas. Отрыть программу и сохранить её под именем lab2.pas в каталоге lab2. 3. Описать тип АВН как запись с фиксированными полями в разделе описания типов программы. Примеры описания типа АВН: Type transformer = record marka: string[20]; Uvn, Usn, Unn, Snom: real; end; generator = record marka: string[20]; Snom, Pnom, Unom, Cosfi, Inom, Smax, Pmax, Imax, Xd": real; end; transformers = array[1..20] of transformer; generators = array[1..12] of generator;. 3. Описать переменные, относящиеся к введенным типа в разделе описания переменных. Примеры описания переменных: Var tr1, tr2, tr3: transformer; trs: transformers; gn1, gn2, gn3: generator; gns: generators; . 4. Изменить раздел чтения данных из файла следующим образом: а) определить в файле данных число строк, в которых приведены общие сведения о содержании файла, его составителях и т.п. Эти строки следует либо пролистать, используя цикл с известным числом операций: for i: =1 to n do readln(f1); где n – число строк общего назначения, либо переписать их в массив строк: for i: =1 to n do readln(f1, str[i]); . Переменная i должна быть описана как целочисленная, а переменная str как массив строк размером n с длиной каждой строки 80 (размер экрана): var i: integer; str: array[1..4] of string[80]. б) Описать чтение данных АВН циклом с условием выхода из него по достижению конца файла данных. Если в процессе чтения данных был достигнут конец файла, то функция eof(f1) – end of file, которая относится к логическому типу (boolean), принимает значение true (истина). В любом другом месте файла эта функция имеет значение false (ложь). Пример описания чтения данных: i: =1; Repeat readln(f1, trs[i]. marka, trs[i].Uvn, trs[i].Usn, trs[i].Unn, trs[i].Snom); i: =i+1; until eof(f1); Ntrs: =i-1; или i: =1; while not eof(f1) do Begin readln(f1, trs[i]. marka, trs[i].Uvn, trs[i].Usn, trs[i].Unn, trs[i].Snom); i: =i+1; end ; Ntrs: =i-1;. После окончания цикла чтения в переменную Ntrs записывается число трансформаторов из файла данных. 5. Выбрать из прочитанных марок АВН те АВН, которые удовлетворяют заданным условиям, и вывести эту информацию на экран монитора и в файл результатов. Для этого в разделе описания типов описать несколько логических переменных. Число этих переменных выбрать на единицу больше, чем условий выбора АВН. Например, требуется выбрать трансформатор по следующим условиям: высшее напряжение – 500 кВ, среднее напряжение – 110 кВ, низшее напряжение – 15, 75 кВ, номинальная мощность – 200 кВА. Всего 4 условия выбора. Значит должно появиться пять логических идентификаторов в разделе описания переменных: var a, a1, a2, a3, a4: boolean;. Пример написания кода программы для выбора типов АВН: for i: =1 to Ntrs do Begin if abs(trs[i].Uvn-500) < 1 then a1: =true else a1: =false; if abs(trs[i].Usn-220) < 1 then a2: =true else a2: =false; if abs(trs[i].Unn-15.75) < 1 then a3: =true else a3: =false; if abs(trs[i].Snom-200) < 1 then a4: =true else a4: =false; a: =a1 and a2 and a3 and a4; if a then begin writeln(f1, trs[i]. marka, trs[i].Uvn, trs[i].Usn, trs[i].Unn, trs[i].Snom); writeln(trs[i]. marka, trs[i].Uvn, trs[i].Usn, trs[i].Unn, trs[i].Snom); end ; end ;. Отчет по лабораторной работе должен содержать три файла, расположенные в собственном каталоге lab2, например: trans.pas, trans.dat, lab2.res. В файле lab2.res должен содержаться отчет по всем вариантам расчетов, проводившихся во время выполнения работы. Контрольные вопросы 1. В какой позиции находится указатель файла после его открытия оператором reset? 2. Чем различаются однородные и неоднородные файлы? Приведите примеры из техники высоких напряжений. 3. Как правильно организовать текстовый файл с данными об аппаратах высокого напряжения? Приведите пример. 4. Как «пролистать» первые строки файла данных, которые содержат общую информацию о его структуре? 5. Как прочитать целиком строку файла данных? 6. Какой из циклических операторов можно использовать для чтения общей информации о файле? 7. Чем различаются операторы repeat и while? Приведите пример их использования. 8. Как организовать чтение данных из файла, если неизвестно, сколько строк он содержит? Приведите примеры. 9. Как определить число строк в файле? Запишите код примера программы. 10. Какие формы оператора if применяются в языке Паскаль? Приведите примеры. 11. Для чего нужен оператор case? Приведите пример синтаксиса. 12. Как описать логические переменные в языке Паскаль? Какие операции с логическими переменными существуют? 13. В чем состоит различие при выборе какого-либо конкретного значения целочисленной переменной и переменной с плавающей запятой? Приведите пример выбора из техники высоких напряжений. 14. Как организовать выбор АВН по нескольким параметрам? Приведите пример кода программы. 15. Чем различаются операторы or и and? 16. Как изменить значение логической переменной на противоположное? 17. Как использовать логическую функцию конца файла для организации чтения файла неизвестной длины?
Лабораторная работа 3 Цель работы Обучение студентов составлению различных процедур и функций для расчетов в технике высоких напряжений, отсутствующих в базовых языках. Усвоение понятий локальных, глобальных, формальных и фактических переменных. Передача данных между различными частями программы. Понятие блока процедур и функций. Стандартные блоки и блоки пользователей. Порядок выполнения работы Задание 1 1. Получить задание преподавателя на программирование какой-либо функциональной зависимости в высоковольтной технике. 2. Создать подкаталог lab3. 3. Написать и отладить программу по заданию преподавателя. Убедиться, что она работает правильно и во всем диапазоне изменения начальных переменных без сбоев и зависаний. 4. Оформить программу как функцию и проверить работу переписанной программы с использованием новой функции. Пример задания: написать функцию расчета индуктивности коаксиального кабеля. Исходные данные для расчета m0=4p× 10-7 Гн/м, m1, m2, m3 и r1, r2, r3 - относительная магнитная проницаемость и радиусы центральной жилы, фторопластовой изоляции и внешней оболочки кабеля; L - длина кабеля в метрах. Расчет проводится по следующей формуле: . Код программы Const path='e: \student\tvn-1-01\ivanov\lab3\'; mu0=4e-7*pi; function Lcoaks(m1, m2, m3, r1, r2, r3, L: real): real; {Функция Lcoaks вычисляет значение индуктивности коаксиального кабеля в мкф, где m1, m2, m3 - относительная магнитная проницаемость; r1, r2, r3 - радиусы центральной жилы, фторопластовой изоляции и внешней оболочки кабеля в мм, L - длина кабеля в метрах} var l1, l2, l3, a1, a2, a3, a4: real; Begin l1: =m1/4; l2: =m2*ln(r2/r1); a1: =sqr(sqr(r3))*ln(r3/r2); a2: =sqr(sqr(r3)-sqr(r2)); a3: =3*sqr(r3)-sqr(r2); a4: =sqr(r3)+sqr(r2); l3: =m3*(a1/a2-a3/a4/4); Lcoaks: =mu0*L*(l1+l2+l3)/4/pi*1e6; end; {function Lcoaks} var L: real; Begin L: =Lcoaks(1, 1, 7, 0.5, 2, 2.2, 5); writeln('Lcoaks= ', L, ' mkf'); end . Задание 2 1. Получить задание преподавателя на программирование какой-либо процедуры расчета характеристик АВН. 2. Написать и отладить программу расчета. 3. Оформить отлаженную программу в виде отдельной процедуры и написать программу с использованием составленной процедуры. Пример. Записать процедуру преобразования треугольника в эквивалентную звезду. Исходные данные треугольника: x12, x13, x23 – сопротивления сторон звезды с вершинами в точках 1, 2, 3. Выходные параметры треугольника x1, x2, x3 – сопротивления лучей звезды, связанных с точками 1, 2, 3. Код программы Const path='e: \student\tvn-1-01\ivanov\lab3\'; procedure TrianglToStar(x12, x13, x23: real; var x1, x2, x3: real); var x: real; Begin x: =x12+x13+x23; x1: =x12*x13/x; x2: =x12*x23/x; x3: =x23*x13/x; end ; {Procedure TrianglToStar} var a1, a12, a13, a23, a2, a3: real; Begin a12: =0.12; a13: =0.18; a23: =0.08; TrianglToStar(a12, a13, a23, a1, a2, a3); writeln('a1= ', a1: 2: 2, ' a2= ', a2: 2: 2, ' a3= ', a3: 2: 2); end. Задание 3 1. Объединить процедуру и функцию после их отладки в новом окне в отдельный блок (unit), например, Ivanov и сохранить под именем Ivanov.pas. Этот файл называется исходным модулем блока. 2. Запустить блок на компиляцию и убедиться в возникновении файла с расширением ivanov.tpu (turbo Pascal unit). Файл ivanov.tpu называется загрузочным модулем блока. Название программы и блока должны быть одинаковыми. 3. Написать код программы с использованием этого блока и убедиться в её работоспособности.
Пример написания кода блока ivanov.pas: unit Ivanov; Interface Const path='e: \student\tvn-1-01\ivanov\lab3\'; mu0=4e-7*pi; function Lcoaks(m1, m2, m3, r1, r2, r3, L: real): real; {Функция Lcoaks вычисляет значение индуктивности коаксиального кабеля в мкф, где m1, m2, m3 -относительная магнитная проницаемость; r1, r2, r3 - радиусы центральной жилы, фторопластовой изоляции и внешней оболочки кабеля в мм, L - длина кабеля в метрах} procedure TrianglToStar(x12, x13, x23: real; var x1, x2, x3: real); {Процедура выполняет преобразование треугольника в эквивалентную звезду. Исходные данные треугольника: x12, x13, x23 – сопротивления сторон звезды с вершинами в точках 1, 2, 3. Выходные параметры треугольника x1, x2, x3 – сопротивления лучей звезды, связанных с точками 1, 2, 3.} Implementation function Lcoaks(m1, m2, m3, r1, r2, r3, L: real): real; var l1, l2, l3, a1, a2, a3, a4: real; Begin l1: =m1/4; l2: =m2*ln(r2/r1); a1: =sqr(sqr(r3))*ln(r3/r2); a2: =sqr(sqr(r3)-sqr(r2)); a3: =3*sqr(r3)-sqr(r2); a4: =sqr(r3)+sqr(r2); l3: =m3*(a1/a2-a3/a4/4); Lcoaks: =mu0*L*(l1+l2+l3)/4/pi*1e6; end ; {function Lcoaks} procedure TrianglToStar(x12, x13, x23: real; var x1, x2, x3: real); var x: real; Begin x: =x12+x13+x23; x1: =x12*x13/x; x2: =x12*x23/x; x3: =x23*x13/x; end ; {Procedure TrianglToStar} end . {unit Ivanov}
Код основной программы lab3.pas: uses Ivanov; var L, a1, a2, a2: real; Begin L: =Lcoaks(1, 1, 7, 0.5, 2, 2.2, 5); writeln('Lcoaks= ', L, ' mkf'); TrianglToStar(0.12, 0, 18, 0.08, a1, a2, a3); writeln('a1= ', a1: 2: 2, ' a2= ', a2: 2: 2, ' a3= ', a3: 2: 2); End. Отчет по лабораторной работе должен содержать два файла, расположенные в собственном каталоге lab3, например: ivanov.pas и lab3.pas. Контрольные вопросы 1. В каком месте программы приводится описание процедур и функций? 2. В чем состоит отличие процедуры от функции? 3. Как использовать функцию в основной программе? 4. Как использовать процедуру в основной программе? 5. В чем состоит различие между локальными и глобальными переменными? 6. Можно ли использовать одинаковые идентификаторы в различных процедурах (функциях) и в основной программе? 7. Как передаются переменные из процедуры (функции) в основную программу? 8. Можно ли в списке формальных переменных заголовка процедуры (функции) использовать переменные типа array, record? 9. Как передать массив из процедуры в основную программу? 10. Как различить идентификаторы – постоянные и идентификаторы – переменные в списке формальных параметров процедуры (функции)? 11. Для чего нужен блок (unit) процедур и функций? 12. Как использовать процедуру или функцию из блока в основной программе? 13. Перечислите обязательные элементы блока. Запишите пустой блок. 14. Что описывается в разделе interface? 15. Что описывается в разделе implementation? 16. Какие требования предъявляются к списку заголовков процедур и функций, расположенных в разделах interface и implementation блока? 17. Можно ли использовать в блоке процедуру или функцию из другого блока? Если можно, то как это сделать? 18. Налагаются ли какие-либо ограничения на размеры блока?
Лабораторная работа N 4 Расчет характеристик АВН Цель работы Обучение студентов навыком скоростной разработки простых законченных программных продуктов в среде Window на Дельфи. Расчет характеристик АВН электрических станций и сетей. Порядок выполнения работы Задание 1 Запустите Delphi.После загрузки программы на экране монитора должен наблюдаться вид (рис. 1), состоящий из 5 элементов (окон): 1) панелей инструментов Delphi (верхняя часть экрана); 2) окно формы (Form1); 3) окно программного кода unit1.pas (Code Explorer); 4) окно просмотрщика дерева объектов (Object TreeView); 5) окно инспектора объектов (Object Inspector). Если какого-то элемента нет на экране, то поместите его на экран, вызывая каталог View из главного меню и нажимая левую кнопку мыши на имя отсутствующего элемента (рис. 2). Можно поместить окно на форму, используя комбинации управляющих клавиш (см. рис. 2). В правом верхнем углу каждого элемента имеется кнопка с крестом. Можно закрыть соответствующий элемент, наведя указатель мыши на эту кнопку и нажав левую клавишу мыши. Уберите с экрана каждый из элементов и снова поместите его на экран. Повторите эту операцию по пять раз для каждого окна. Проделайте операцию вызова окна на экран с использованием клавиатуры. Повторите вызов каждого из окон с помощью клавиатуры по пять раз. Вызовите на экран из меню View окно управления проектом (Project Manager). Открывая вложенные папки, убедитесь, что полученная картинка совпадает по названиям элементов с элементами рис. 3. Здесь приведен минимально необходимый набор элементов для запуска и работы программы. Повторите операцию вызова окна управления проектом пять раз. Это окно нужно вызывать в первую очередь при неполадках в запуске программы.
Из четырех окон, расположенных на экране, только одно окно является активным. Какое из окон активное, а какое неактивно можно определить по заголовкам окон. Если заголовок выделен жирным шрифтом – окно активно. Если цвет заголовка бледный – окно неактивно. Наводя указатель мыши на любую точку соответствующего окна (за исключением крестика в правом верхнем углу) и нажимая левую клавишу мыши (в дальнейшем эта операция будет коротко именоваться «выбор» или «переход»), можно активизировать соответствующее окно. Перейдите на неактивное в данный момент окно, не убирая активное окно с экрана. Посмотрите, как изменятся заголовки окон. Проделайте операции перехода на каждое из четырех окон не менее 5 раз. Добейтесь автоматизма операции перехода. Задание 2 Перейдите на окно формы. Обратите внимание на надписи в инспекторе объектов и в окне дерева объектов. В обоих имеется надпись Form1. Измените заголовок формы на надпись «Моя первая программа». Для этого проделайте следующее. Перейдите к инспектору объектов. Найдите в списке свойств заголовок формы. Он называется по-английски Caption. Нажмите левую кнопку мыши на поле справа от заголовка (в данный момент там написано Form1). Напишите по-русски: Моя первая программа - и нажмите Ввод (Enter). Заголовок на форме изменится. Обратите внимание, что при этом не изменятся названия ни в инспекторе объектов, ни в дереве объектов. Заголовок формы не играет никакой роли при выполнении программы, а только помогает программисту определить, какая форма проектируется. Название может быть написано на любом языке. Замените заголовок формы любым другим названием, какое Вам придет в голову. Найдите в инспекторе свойство Name (Имя). В нем написано Form1. Это то самое имя, на которое ссылается программа при выполнении. Имя должно быть набрано латинским шрифтом. Замените имя (в правом от Name поле) на любое, например Prima. Обратите внимание, что и в верхней части инспектора и в дереве объектов название Form1 заменилось на Prima. Измените имя другим (латинским) и посмотрите за изменениями в верхней части инспектора и дерева объектов. Одновременно с изменениями в этих двух окнах происходят изменения и в коде программы. Перейдите на окно кода программы. Найдите строчку type TPrima = class(TForm) Измените имя на Form1 в инспекторе. В коде программы так же произойдут изменения: type TForm1 = class(TForm) Проделайте операцию по изменению имени насколько раз и убедитесь, что усвоили взаимосвязь изменений во всех четырех окнах. Найдите в свойствах формы свойство icon (пиктограмма, иконка). Нажимая на поле справа от этого свойства, можно вызвать просмотрщик иконок и перед названием программы поместить свою иконку. Проделайте эту операцию. Задание 3 Найдите на панели инструментов название Standard и щелкните левой кнопкой мыши на нем (Click). Появится линейка стандартных компонент Дельфи (рис. 4). Щелкая курсором на пиктограмме компонента, а затем щелкая на форме, можно поместить компонент на форму. Поместите на форму компонент типа label. В палитре компонентов ему соответствует пиктограмма с заглавной буквой А. При помещении курсора на эту пиктограмму появляется подсказка с названием компонента (label). Щелкните курсором на пиктограмме label, а затем щелкните курсором в каком-либо месте формы. На форме появится первый компонент с названием label1. Он окружен квадратиками, что свидетельствует о том, что он в данный момент выделен. При помещении этого объекта происходят изменения во всех трех остальных окнах. В дереве объектов появляется строчка label1, в заголовке инспектора label1 и в коде программы появляется строчка Label1: TLabel. Проследите эти изменения во всех окнах. Этот компонент служит для размещения названий. Нажмите левую кнопку мыши на помещенном компоненте и, не отпуская кнопку, передвигайте мышь (операция переместить - Drag). Выделенный компонент будет передвигаться по форме. Переместите метку в удобное место, например, к левому верхнему краю формы и отпустите кнопку (операция бросить - Drop). На инспекторе объектов найдите поле заголовка и измените название метки какой-либо характеристикой АВН, например, «Uнoм (кВ)». Обратите внимание, что имя компонента не изменилось ни в одном из окон, а изменилась только надпись на форме. Однако из такой надписи уже понятно, что где-то рядом будет записываться номинальное напряжение в киловольтах. Надпись может быть сделана на любом языке. Найдите на инспекторе поле свойства Font (шрифт) и нажмите на значок «+» слева от надписи. Откроется дополнительный список свойств. Выберете свойство color (цвет) и нажмите на значок перевернутого треугольника. Появится список цветов шрифта. Выберете какой-либо цвет, например, красный, и выделите курсором нужный цвет, щелкая по нему левой кнопкой мыши. Цвет надписи на форме изменится на выбранный цвет. Подберите наиболее понравившийся цвет из списка. Измените тип шрифта из свойства Font.Name на Arial. Измените шрифт на Times New Roman. Подберите подходящий шрифт. Измените размер шрифта в поле Font Size на другой. Измените цвет фона, на котором появляется надпись, в свойстве Color и подберите наиболее удобный. Поместите на форму вторую метку и измените её название на Iном (А). Измените цвет, размер и положение второй метки. Поместите третью метку и назовите её Sном (кВ А). Проследите за изменениями во всех трех окнах при помещении нового объекта на форму. Поместите на форму компонент Edit из стандартной палитры компонентов. Проследите изменения в трех окнах. Переместите компонент Edit1 к первой метке. Найдите свойство Text и измените надпись в этом поле с Edit1 на, например, 110. Проследите за изменениями и убедитесь, что изменился только текст компонента, но не его имя. Размещая компонент Edit1 рядом с первой меткой, мы предполагаем, что 110 в дальнейшем будет означать номинальное напряжение 110 кВ. Поместите второй компонент Edit2 рядом со второй меткой и измените в поле Text текст с Edit2 на, например, 630. Этим мы показываем, что номинальный ток будет 630 А. Поместите третий компонент Edit3 рядом с третьей меткой и сотрите надпись в поле Text, оставив его пустым. Поместите на форму компонент типа Button (кнопка управления). В данном задании эта кнопка будет служить для запуска программы расчета номинальной мощности по заданным значениям напряжения и тока. Во всех трех окнах появится элемент button1. Замените заголовок кнопки надписью Пуск или другим подобным названием, не оставляющим сомнений в назначении данной кнопки. Дважды нажимая на кнопку Пуск (операция двойной щелчок - dubleclick) перейдите в окно кода. При этом в окне кода программы появится заготовка процедуры, которая будет выполняться при нажатии клавиши пуск во время работы программы. procedure TForm1.Button1Click(Sender: TObject); begin end; Обратите внимание на название процедуры. Оно состоит из имени (name) формы, на которой лежит кнопка, имени (name) кнопки и операции Click – события нажатия кнопки. Измените, например, имя (name) формы на Prima, а имя (name) кнопки на Pusk, название процедуры будет выглядеть так: procedure TPrima.PuskClick(Sender: TObject); begin end; Таким образом, в названии процедуры имя формы и кнопки меняется автоматически. В отличие от предыдущей лабораторной работы заготовка процедуры записывается в код программы автоматически и программисту остается дополнить код процедуры смысловыми операторами. Код всей программы для вычисления номинальной мощности будет выглядеть так:
unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Type TPrima = class(TForm) Label1: TLabel; Edit1: TEdit; Pusk: TButton; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; procedure PuskClick(Sender: TObject); Private { Private declarations } public { Public declarations } end; Var Prima: TPrima; Implementation {$R *.dfm} procedure TPrima.PuskClick(Sender: TObject); var Unom, Inom, Snom: real; Begin Unom: =StrToFloat(Edit1.Text); Inom: =StrToFloat(Edit2.Text); Snom: =Unom*Inom; Edit3.Text: =FloatToStr(Snom); end ; end . Как видно из приведенного кода, только часть кода, относящаяся к процедуре нажатия кнопки, была написана вручную. Остальная часть кода была дописана автоматически при помещении компонент на форму. Найдите в коде программы общую описательную часть, описательную часть процедуры. Обратите внимание на то, где расположена написанная процедура выполнения расчета. Популярное: |
Последнее изменение этой страницы: 2016-05-28; Просмотров: 910; Нарушение авторского права страницы