Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




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

Цель занятия

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

Задание 1

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

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

procedure TForm1.btn1Click(Sender: TObject);

begin

 

end;

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

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

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

procedure TForm1.btn1Click(Sender: TObject);

var Unom:Real;

begin

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

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

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

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

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

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

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

Задание 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задание 3

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

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

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

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных