Главная страница

Методические указания для подготовки к практическим занятиям. По курсу Информационные технологии в электроэнергетике


Скачать 3.37 Mb.
НазваниеМетодические указания для подготовки к практическим занятиям. По курсу Информационные технологии в электроэнергетике
Дата21.12.2022
Размер3.37 Mb.
Формат файлаdoc
Имя файлаPraktika_po_informatsionnym_tekhnologiam.doc
ТипМетодические указания
#856058
страница2 из 10
1   2   3   4   5   6   7   8   9   10

Вопросы для самопроверки

  1. В чём различие между набором команд с названием functionот набора команд с названием procedure?

  2. Какие способы создания заготовок процедур Вы знаете?

  3. Как создать заготовку процедуры создания формы (procedure FormCreate)?

  4. Как запустить на исполнение процедуру создания формы (procedure FormCreate)?

  5. Где находятся изображения, связанные с различными объектами «Delphy»?

  6. Что такое линейка компонентов и как перейти с одного набора компонент на другой?

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

  8. Как поместить кнопку на форму?

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

  10. Какие типы кнопок запуска процедур Вы знаете, и чем они отличаются друг от друга?

  11. Как изменить надпись на кнопке процедуры?

  12. В каком свойстве кнопки следует изменять надпись?

  13. На каком языке может быть сделана надпись на кнопке?

  14. На каких типах кнопок надпись может быть цветной?

  15. На каких типах кнопок можно менять цвет кнопки?

  16. В каком свойстве кнопки(на инспекторе объектов кнопки) следует менять цвет всей кнопки и в каком свойстве только цвет текста?

  17. На каких типах кнопок можно размещать изображение?

  18. Как на кнопку можно поместить изображение?

  19. Каково должно быть второе имя (расширение) файла изображения для кнопки запуска процедуры?

  20. Как создать главное меню программы разработчика?

  21. Как создать выпадающие списки главного меню программы разработчика?

  22. Как создать заготовку процедуры, связанной с одним из названий выпадающего списка главного меню программы разработчика?

  23. Как запустить процедуру, связанную с одним из названий выпадающего списка главного меню программы разработчика?

  24. На каком языке может быть создано главное меню и его выпадающие списки?

  25. Будет ли работать правильно программа с меню, набранным на русском языке, на любом компьютере, если она работала правильно на каком то одном?

  26. Как нужно набирать названия в программе, чтобы они не искажались на любом компьютере?


Практическое занятие 3

Вывод информации в поле Мемо

Цель занятия

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

Задание 1

Запустите Дельфи. Положите на форму кнопку (для запуска программы на исполнение). Создайте заготовку процедуры двойным нажатием на кнопку. Сохраните программу в папке практика 3 (если такой папки в Вашей папке информационных технологий нет, то перед сохранением заготовки программы создайте папку с названием практика 3). Убедитесь, что в Вашей папке «практика 3» содержится не менее 6 файлов.

Перейдите на окно кода программы (двойным щелчком на кнопке). Заготовка процедуры будет иметь следующий вид:

procedure TForm1.btn1Click(Sender: TObject);

begin

end;

где первая строка  название процедуры, «begin» и «end;»  начало и конец процедуры. Поскольку в процедуре может быть несколько операторных скобок («begin» и «end;»), то после каждой закрывающей скобки «end» в фигурных скобках следует указать, к какой части процедуры эта скобка относится, чтобы избежать ошибок в написании программы. Каждой открывающей скобке «begin» должна соответствовать своя закрывающая скобка «end». По этой причине сразу же за написанием слова «begin» следует на новой строке писать слово «end». Открывающая и закрывающая скобки должны иметь одинаковый отступ с левой стороны. Все требуемые операторы вставляются между скобками. Они пишутся обычно с отступом на одни или два пробела от уровня написания скобок. Множество операторов между скобками воспринимается программой как один единственный оператор. Допишите после закрывающей скобки процедуры в фигурных скобках название процедуры:

end; {procedureTForm1.btn1Click} и таким образом поступайте после каждой закрывающей скобки.

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

procedure TForm1.btn1Click(Sender: TObject);

var Unom:Real;

begin

, который начинается со слова var (сокращение слова variables  переменные). Далее следует имя переменной (в данном случае Unom). Имя выбирается создателем программы произвольно, пишется только латинским шрифтом и должно быть осмысленным. Лучше всего использовать для имен переменных в программе общепринятые обозначения (но латинским шрифтом как в данном примере). Если переменная одна, то после имени должно стоять двоеточие, а далее пишется тип переменной. Слабо знакомым с программированием на Дельфи рекомендуется для переменных, которые могут содержать десятичные части использовать тип Real, а для переменных, которые могут принимать только целочисленные значения, использовать тип Integer. Если какая-либо переменная не описана в разделе описания переменных, то программа остановит выполнение на строке с ошибкой, а в окне ошибок (ниже кода программы) появится надпись

[Error] Unit1.pas(29): Undeclaredidentifier: «имя необъявленной переменной», что переводится как не объявленный (не декларированный) идентификатор. При появлении подобной ошибки следует имя переменной внести в раздел описаний. Описания нужны для того, чтобы под переменную было выделено место в памяти компьютера и присвоен адрес начальной ячейки памяти. Если есть адрес и место в памяти, то в соответствующие ячейки может быть помещено число, соответствующее переменной. Операция записи числа в ячейки памяти в программе на Дельфи обозначается символом «:=» и называется операцией присвоения значения. Чтобы задать значение номинального напряжения после открывающей процедуру скобки следует записать, например, Unom:=10,5; каждая операция (оператор) заканчивается значком конца операции, обозначающимся символом «;» (semicolon  точка с запятой). Отсутствие между операторами (действиями) точки с запятой является одной из самых распространённых ошибок. При такой ошибке в окне ошибок сообщением:

[Error] Unit1.pas(30): Missing operator or semicolon

(потеря оператора или точки с запятой). Очевидно, что появлении такого сообщения следует найти место, где точка с запятой пропущена (обычно программа останавливается на следующей строке за строкой где «;» отсутствует. Запишете в основную процедуру два оператора:

Unom:=10,5 {номинальное напряжение в кВ}

Snom:=25000; {полная мощность в кВА}

и сохраните программу, нажатием saveall (сохранить всё). Прочитайте сообщения от ошибках (нет «;» после 10,5 и не описана переменная Snom). Устраните ошибки. В данном примере справа от операторов присвоения в фигурных скобках приведён комментарий (указано, что обозначает переменная и в каких единицах измеряется). Комментарий не влияет на выполнение программы и нужен исключительно программисту для того, чтобы не забыть какие имена он дал тем или иным переменным.

Задание 2

Поместите на форму компонент Memo из стандартной палитры компонентов. Измените его размер сделайте так, чтобы он занимал, например, половину формы. В его инспекторе объектов найдите свойство «линейки прокрутки» («ScrollBars») и установите значение «обе» («ssBoth»). Этот компонент используется для вывода в него переменных типа «строка» («string») и является одним из важнейших элементов контроля значений вводимых переменных на стадии отладки программы. Переменные типа строка («string») могут выводиться в компонент Memo без преобразований.

В разделе описаний переменной опишите две строки, например:

str1, str2: string; (обратите внимание, что однотипные переменные можно записывать в одну строку, разделяя их между собой запятой, и только после последней в списке ставить двоеточие и название типа переменных).

Присвойте первой строке название переменной Unom следующим образом: str1:= 'Unom= '; (обратите внимание, что Unom заключено в одиночные апострофы, а после знака равенства стоит пробел). Такие апострофы являются признаком строковой переменной и выводятся без изменений и преобразований. Второй строке присвойте значение единиц измерения: str2:= ' кВ'; (строки могут записываться на любом языке, но при переносе с одного компьютера на другой могут возникнуть проблемы с правильной передачей национального шрифта). Пробел после открывающего строку апострофа нужен для отделения нескольких строк друг от друга.

После операторов присвоения запишите строку вывода двух строк в поле Memo. Первую строку следует записывать в следующей последовательности:

1. набирать на клавиатуре первые символы поля Memo (проверить имя поля в дереве объектов). При наборе должен появиться выпадающий список правильных имён, из которого нужно выбрать нужное имя и подтвердить выбор нажатием клавиши Enter («Ввод»).

2. Набрать символ точки. Должен появиться выпадающий список возможных свойств (property) поля Memo. Выбрать свойство Lines(линия, строка). Выбор можно выполнить двумя способами: а) с помощью линейки прокрутки; б) начав набирать свойство. Завершается выбор нажатием клавиши Enter(далее в тексте для краткости будем говорить «выберите свойство …»).

3. После нажатия символа точка выбрать свойство add (добавить).

4. В круглые скобки запишите имя строки, которая должна быть выведена в поле Memo (в данном случае str1). Проверьте, не забыли ли Вы поставить символ точки с запятой после круглых скобок.

После выполнения п. 1 ÷ 4 в тексте процедуры должна появиться команда: memo1.Lines.Add(str1); (имя поля мемо1 может отличаться от приведённого в данном тексте).

-*/+Выведете в поле Memo вторую строку следующим образом:

1. выделите команду вывода первой строки,

2. скопируйте её в буфер обмена (команда Copy в списке команд при нажатии правой кнопки мыши или нажатие клавиш Ctrl+C),

3. вставьте в код процедуры (команда Paste в списке команд при нажатии правой кнопки мыши или нажатие клавиш Ctrl+V) сразу после команды вывода 1й строки,

4. Замените имя первой строи на вторую.

После выполнения п. 1 ÷ 4 в тексте процедуры должна появиться команда: memo1.Lines.Add(str2); . Сохраните программу.

Запустите программу одним из трёх способов: а) нажатием клавиши F9; б) выбором команды Run из главного меню команд и его подменю; в) нажатием на зелёный треугольник, находящийся в линейке команд Дельфи. Исправьте ошибки. Нажмите клавишу выполнения процедуры. Посмотрите содержимое поля Мемо и убедитесь, что действительно вывелись две строки. Закройте режим исполнения программы.

Задание 3

Численные значения переменных следует преобразовать в строки и только после преобразования выводить в компонент Memo. Для преобразования переменных типа Real в переменную типа строка используется функция FloatToStr(). Слово Float обозначает переменную с плавающей запятой любого типа (тип Real  один из многих типов таких переменных с дробной частью). В круглых скобках записывается имя численной переменной, которую преобразуют в строку. Скопируйте строку вывода и вставьте после второй строки вывода в поле Мемо. В круглых скобках функцию преобразования в строку значения переменной Unom.

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

Вывод в одну строку в поле вывода можно сделать, если сложить несколько строк. Сложение строк называется командой конкатенации и обозначается символом сложения (+). В раздел описания переменных добавьте имя переменной типа строка, например, str3. Допишите в код процедуры следующую строку: str3:=str1+FloatToStr(Unom)+str2; и выведите её в поле вывода. После запуска программы, посмотрите правильно ли сделан вывод. Выведите в поле вывода значение Snom одной строкой с обозначением имени переменной, её числовым значением и единицей измерения.

Вопросы для самопроверки

  1. Как пометить на форму компонент Memo?

  2. Как вставить линейки прокрутки в компонент Memo?

  3. Каких размеров должно быть поле вывода Memo?

  4. Как вставить комментарий в программу?

  5. Как правильно помечать закрывающую программную скобку «end»?

  6. Сколько пробелов от начала строки следует делать перед «end»?

  7. Зачем вставлять пробелы от начала строки перед «end»?

  8. Зависит ли работа программы от числа пробелов, поставленных перед операторной скобкой «end»?

  9. Для чего в программе нужно поле Memo?

  10. В каком месте процедуры расположен раздел описания постоянных, переменных, процедур и функций. относящихся к данной процедуре?

  11. Каким набором символов начинается раздел описания переменных?

  12. Что такое идентификатор переменной, и какими они должны быть?

  13. Какие символы допускается и не допускается использовать в идентификаторе переменной?

  14. Как проверить правильность выбора идентификатора переменной?

  15. Для какого первого символа идентификатора следует его описывать в разделе описания переменных?

  16. Как следует описывать однотипные идентификаторы?

  17. На каких языках допускается записывать имена переменных?

  18. Что произойдёт при выполнении программы, если какая либо переменная не описана в разделе описания переменных?

  19. Что означает сообщение об ошибке типа «[Error] Unit1.pas(29): Undeclaredidentifier»?

  20. Что следует делать при возникновении ошибки п.19?

  21. Зачем нужно описывать переменные в разделе описаний переменных?

  22. Какие действия в программе происходят по команде «:=»?

  23. Какой символ должен ставиться в конце (после) оператора?

  24. Что означает сообщение об ошибке типа «[Error] Unit1.pas(30): Missing operator or semicolon»?

  25. Что следует делать при возникновении ошибки п.24?

  26. Какой тип переменных можно выводить в поле Memo?

  27. Сколько переменных можно вывести в одну строку (Line) Memo?

  28. Как превратить (преобразовать) переменную типа real в переменную типа string?

  29. Как превратить (преобразовать) переменную типа integer в переменную типа string?

  30. Как вывести в одну строку название переменной, её значение и размерность?



Практическое занятие 4

Ввод дискретной информации из компонента ComboBoxиListBox

Цель занятия

Знакомство студентов с вводом в программу значений переменных, которые могут принимать только определённые значения. Примеров дискретных переменных очень много: а) в списке фамилий студентов группы стоят только определённые фамилии; б) пол человека может быть либо мужским, либо женским, в) в году не может быть больше 366 дней, в месяце не больше 31; г) дни недели называются: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье и никак иначе в русском языке. Примеров, подобных приведённым выше, в жизни великое множество. Для ввода таких, заранее предопределённых значений, используются компоненты ComboBoxиListBox. Если в компоненте ComboBox список значений переменных (Items) скрыт и открывается в момент выбора какого либо одного значения из списка множества значений (выпадающий список), то в компоненте ListBox весь список (Items) открыт. Каждый элемент списка располагается на отдельной строке и кроме собственного значения имеет свой номер (ItemIndex). Номера начинаются с нуля. Первый элемент списка имеет номер 0 (ItemIndex =0), второй 1 (ItemIndex =1), и т.д. Все элементы списков ComboBoxиListBox относятся к типу строка.

Задание 1

Поместите на форму следующие компоненты:Button, Memo, ComboBoxиListBox. Создайте заготовку процедуры и сохраните программу в папке практика 4. Убедитесь, что в папке не меньше 6 файлов. В инспекторе объектов компонента ComboBox найдите свойство список (Items) и нажмите указатель (3 точки), расположенный с правой стороны поля. В появившемся окне редактора списка строк(StringListEditor) создайте список шкалы номинальных напряжений. Номинальные напряжения это значения действующих междуфазных (линейных) напряжений. В энергосистеме Российской Федерации приняты следующие величины номинальных напряжений: 0,4; 0,66; 6,3; 10,5; 20; 35; 110; 220; 330; 500; 750; 1150. Эти значения введите в окно редактора списка строк. Каждое значение следует вводить на новой строке. После каждого числа в конце строки знаки препинания не ставятся. В качестве разделителя целой и десятичной части числа в строковых переменных используется запятая, а не точка, которая применяется в операторах присвоения при работе с числами. После создания списка шкалы (должно быть 12 различных напряжений) сохраните список нажатием кнопки Ок. Запустите программу на исполнение, исправьте возникшие ошибки. В режиме исполнения, нажимая на значок перевёрнутого треугольника в правой части компонентаComboBox, убедитесь, что в окне компонента появляются значения выбранных номинальных напряжений. Таким выбором вы фактически производите операцию присвоения свойству Item компонента ComboBox некоторого определённого строкового значения. Кроме этого одновременно происходит присвоение значения свойства ItemIndexкомпонента ComboBox. Например, при выборе номинального напряжения 20 кВ, которое стоит пятым в списке фактически выполняется команда: ComboBox.ItemIndex:= 4.

Задание 2
1   2   3   4   5   6   7   8   9   10


написать администратору сайта