4824

Создание первой программы на языке Turbo Pascal

Лекция

Информатика, кибернетика и программирование

Создание первой программы. Цель: Показать студентам пример создания программы. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимательности. Пл...

Русский

2012-11-27

184 KB

5 чел.

Создание первой программы.

Цель:

Показать студентам пример создания программы.

Задачи:

Воспитательная: повторение уже изученного языка программирования Turbo Pascal.

Учебная: научить создавать программы.

Развивающая: развитие внимательности.

План занятия.

  1.  Организационный момент.
  2.  Изучение нового материала.
  3.  Контрольные вопросы.
  4.  Резюме.
  5.  Домашнее задание.

Изучение нового материала.

   Программирование – это процесс создания (разработки) программы. Этапы разработки программы:

  1.  Определение требований к программе. Описывается исходная информация и формулируются требования к результату, описывается поведение программы в особых случаях.
  2.  Разработка алгоритма. Необходимо определить последовательность действий, которые надо выполнить для получения результата.
  3.  Написание команд (кодирование).
  4.  Отладка. Отладка – процесс поиска и устранения ошибок.
  5.  Тестирование. Требуется проверить, как программа ведет себя.

   Компиляция.

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

  •  Проверяет текст исходной программы на отсутствие ошибок.
  •  Создает исполняемую программу – машинный код.

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

Форма

   Работа над новым проектом, так в Delphi называется разрабатываемое приложение, начинается с создания стартовой формы. Так на этапе разработки программы называют диалоговые окна. Стартовая форма создается путем изменения значений свойств формы Form1 и добавления к форме необходимых компонентов (полей ввода и вывода текста, командных кнопок). Свойства формы (табл.) определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки. Для просмотра и изменения значений свойств формы и ее компонентов используется окно Object Inspector. В верхней части окна Object Inspector указано имя объекта, значения свойств которого отображается в данный момент. В левой колонке вкладки Properties (Свойства) перечислены свойства объекта, а в правой — указаны их значения.

Таблица. Свойства формы (объекта Tform)

Свойство

Описание

Name

Имя формы. В программе имя формы используется для управления формой и доступа к компонентам формы

Caption

Текст заголовка

Width

Ширина формы

Height

Высота формы

Top

Расстояние от верхней границы формы до верхней границы экрана

Left

Расстояние от левой границы формы до левой границы экрана

BorderStyle

Вид границы. Граница может быть обычной (bsSizeable), тонкой (bsSingle) или отсутствовать (bsNone). Если у окна обычная граница, то во время работы программы пользователь может при помощи мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя. Если граница отсутствует, то на экран во время работы программы будет выведено окно без заголовка. Положение и размер такого окна во время работы программы изменить нельзя

Borderlcons

Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам biSystemMenu, biMinimaze, biMaximaze и biHelp. Свойство biSystemMenu определяет доступность кнопки Свернуть и кнопки системного меню, biMinimaze— кнопки Свернуть, biMaximaze— кнопки Развернуть, biHelp — кнопки вывода справочной информации

Icon

Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню

Color

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

Font

Шрифт. Шрифт, используемый "по умолчанию" компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование)

   

Изменим имя формы при помощи изменения значения  свойства Caption в окне инспектора объектов. Щелкнем мышью в строке Caption и введем текст “Скорость бега”.  Программа вычисления скорости бега должна получить от пользователя исходные данные – длину и время, за которое спортсмен пробежал дистанцию. Для этого вводится компонент Edit (вкладка Standard) – поле редактирования. Добавим краткую информацию о программе и назначении полей ввода. Для вывода текста в форму используем поля вывода текста – компонент Label (вкладка Standard). Для того, чтобы текст в поле вывода занимал несколько строк, требуется присвоить свойству AutoSize значение False, свойству  WordWrap – значение True. После этого можно ввести текст в свойство Caption. Теперь добавим две командные кнопки: Вычислить и Завершить. Кнопка – компонент Button располагается на вкладке Standard и добавляется на форму так же, как и другие компоненты.

Таблица. Свойства компонента Edit (поле ввода-редактирования)

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности — для доступа к тексту, введенному в поле редактирования

Text

Текст, находящийся в поле ввода и редактирования

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высота поля

Width

Ширина поля

Font

Шрифт, используемый для отображения вводимого текста

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента

Таблица. Свойства компонента Label (поле вывода текста)

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Отображаемый текст

Font

Шрифт, используемый для отображения текста

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, текст выводится шрифтом, установленным для формы

AutoSize

Признак того, что размер поля определяется его содержимым

Left

Расстояние от левой границы поля вывода до левой границы формы

Top

Расстояние от верхней границы поля вывода до верхней границы формы

Height

Высота поля вывода

Width

Ширина поля вывода

Wordwrap

Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку

Таблица. Свойства компонента Button (командная кнопка)

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Текст на кнопке

Enabled

Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и недоступна, если значение свойства равно False

Left

Расстояние от левой границы кнопки до левой границы формы

Top

Расстояние от верхней границы кнопки до верхней границы формы

Height

Высота кнопки

Width

Ширина кнопки

Событие и процедура обработки события

   Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести в поля редактирования исходные данные и щелкнуть мышью на кнопке Вычислить. Щелчок на изображении командной кнопки — это пример того, что в Windows называется событием.

   Событие (Event) — это то, что происходит во время работы программы. В Delphi каждому событию присвоено имя. Например, щелчок кнопкой мыши – это событие OnClick, двойной щелчок мышью событие OnDblClick. В табл. приведены некоторые события Windows.

Таблица. События

Событие

Происходит

OnClick

При щелчке кнопкой мыши

OnDblClick

При двойном щелчке кнопкой мыши

OnMouseDown

При нажатии кнопки мыши

OnMouseUp

При отпускании кнопки мыши

OnMouseMove

При перемещении мыши

OnKeyPress

При нажатии клавиши клавиатуры

OnKeyDown

При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp)

OnKeyUp

При отпускании нажатой клавиши клавиатуры

OnCreate

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

OnPaint

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

OnEnter

При получении элементом управления фокуса

OnExit

При потере элементом управления фокуса

   Реакцией на событие должно быть какое-либо действие. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать процедуру обработки соответствующего события. Следует обратить внимание на то, что значительную часть обработки событий берет на себя компонент. Поэтому программист должен разрабатывать процедуру обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. Например, если по условию задачи ограничений на символы, вводимые в поле Edit, нет, то процедуру обработки события OnKeyPress писать не надо, т. к. во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.

   Методику создания процедур обработки событий рассмотрим на примере процедуры обработки события OnClick для командной кнопки Вычислить. Чтобы приступить к созданию процедуры обработки события, надо сначала в окне Object Inspector выбрать компонент, для которого создается процедура обработки события. Затем в этом же окне нужно выбрать вкладку Events (События).

   В левой колонке вкладки Events перечислены имена событий, которые может воспринимать выбранный компонент (объект). Если для события определена (написана) процедура обработки события, то в правой колонке рядом с именем события выводится имя этой процедуры.

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

Delphi присваивает функции обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует форму, содержащую объект (компонент), для которого создана процедура обработки события. Вторая часть имени идентифицирует сам объект и событие. В нашем примере имя формы — Form1, имя командной кнопки — Buttoni, а имя события -Click.

   

В окне редактора кода между словами begin и end можно печатать инструкции, реализующие функцию обработки события.

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

procedure TForm1.Button1Click(Sender: TObject);

   var

       dist : integer; // дистанция, метров

       t:     real;    // время, как дробное число

       min : integer;  // время, минуты

       sek : integer;   // время, секунды

       v: real;        // скорость

   begin

       // получить исходные данные из полей ввода

       dist := StrToInt(Edit1.Text);

       t := StrToFloat(Edit2.Text);

       // предварительные преобразования

       min := Trunc(t);  // кол-во минут - это целая часть числа t

       sek := Trunc(t*100) mod 100; // кол-во секунд - это дробная часть числа t

       // вычисление

       v := (dist/1000) / ((min*60 + sek)/3600);

       // вывод результата

       label4.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 +

                                   'Время: ' + IntToStr(min) + ' мин ' + IntToStr(sek) + ' сек ' + #13 +

                                   'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

   end;

   Функция Button1click выполняет расчет скорости и выводит результат расчета в поле Label4. Исходные данные вводятся из полей редактирования Editl и Edit2 путем обращения к свойству Text. Свойство Text содержит строку символов, которую во время работы программы введет пользователь. Для правильной работы программы строка должна содержать только цифры. Для преобразования строки в числа в программе используются функции StrToInt и strToFloat. Функция strToInt проверяет символы строки, переданной ей в качестве параметра (Edit1.Text – это содержимое поля Editl), на допустимость и, если все символы верные, возвращает соответствующее число. Это число записывается в переменную dist. Аналогичным образом работает функция strToFioat, которая возвращает дробное число, соответствующее содержимому поля Edit2. Это число записывается в переменную t.

   После того как исходные данные будут помещены в переменные dist и t, выполняются подготовительные действия и расчет. Первоначально с использованием функции Trunc, которая "отбрасывает" дробную часть числа, выделяется целая часть переменной t — это количество минут. Значением выражения Trunc(t*100) mod 100 является количество секунд. Вычисляется это выражение так. Сначала число t умножается на 100. Полученное значение передается функции Trunc, которая возвращает целую часть результата умножения t на 100. Полученное таким образом число делится по модулю на 100. Результат деления по модулю — это остаток от деления.

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

   Вычисленное значение скорости выводится в поле Label4 путем присваивания значения свойству Caption. Для преобразования чисел в строки используются функции IntToStr И FloatToStr.

   В результате нажатия кнопки Завершить программа должна завершить работу. Чтобы это произошло, надо закрыть, убрать с экрана, главное окно программы. Делается это при помощи метода close. Процедура обработки события Onclick для кнопки Завершить приведена в листинге В2.

   procedure TForm1.Button2Click(Sender: TObject);

   begin

       Form1.Close; // закрыть главное окно программы

   end;

   Полный листинг программы приведен

unit vrun1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Edit2: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Button1: TButton;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

     

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

// щелчок на кнопке Вычислить

procedure TForm1.Button1Click(Sender: TObject);

var

   dist : integer; // дистанция, метров

   t:     real;    // время, как дробное число

   min : integer;  // время, минуты

   sek : integer;   // время, секунды

   v: real;        // скорость

begin

   // получить исходные данные из полей ввода

   dist := StrToInt(Edit1.Text);

   t := StrToFloat(Edit2.Text);

   // предварительные преобразования

   min := Trunc(t);  // кол-во минут - это целая часть числа t

   sek := Trunc(t*100) mod 100; // кол-во секунд - это дробная часть числа t

   // вычисление

   v := (dist/1000) / ((min*60 + sek)/3600);

   // вывод результата

   label4.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 +

                     'Время: ' + IntToStr(min) + ' мин ' +

                                IntToStr(sek) + ' сек ' + #13 +

                     'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

// щелчок на кнопке Завершить

procedure TForm1.Button2Click(Sender: TObject);

begin

       Form1.Close;

end;

end.

Система подсказок

   В процессе набора текста программы редактор кода выводит справочную информацию о параметрах процедур и функций, о свойствах и методах объектов.

   Например, если в окне редактора кода набрать MessageDlg (имя функции, которая выводит на экран окно сообщения) и открывающую скобку, то на экране появится окно подсказки, в котором будут перечислены параметры функции MessageDig с указанием их типа.

   Один из параметров выделен полужирным. Так редактор подсказывает программисту, какой параметр он должен вводить. После набора параметра и запятой в окне подсказки будет выделен следующий параметр. И так до тех пор, пока не будут указаны все параметры.

Для объектов редактор кода выводит список свойств и методов. Как только программист наберет имя объекта (компонента) и точку, так сразу на экране появляется окно подсказки — список свойств и методов этого объекта. Перейти к нужному элементу списка можно при помощи клавиш перемещения курсора или набрав на клавиатуре несколько первых букв имени нужного свойства или метода. После того как будет выбран нужный элемент списка и нажата клавиша <Enter>, выбранное свойство или метод будут вставлены в текст программы.

Система подсказок существенно облегчает процесс подготовки текста программы, избавляет от рутины. Кроме того, если во время набора программы подсказка не появилась, это значит, что программист допустил ошибку: скорее всего, неверно набрал имя процедуры или функции.

Навигатор кода

   Окно редактора кода разделено на две части. В правой части находится текст программы. Левая часть, которая называется навигатор кода (Code Explorer), облегчает навигацию по тексту (коду) программы. В иерархическом списке, структура которого зависит от проекта, над которым идет работа, перечислены формы проекта, их компоненты, процедуры обработки событий, функции, процедуры, глобальные переменные и константы. Выбрав соответствующий элемент списка, можно быстро перейти к нужному фрагменту кода. Окно навигатора кода можно закрыть обычным образом. Если окно навигатора кода не доступно, то для того, чтобы оно появилось на экране, нужно из меню View выбрать команду Code Explorer.

Контрольные вопросы

  1.  Этапы разработки программы.
  2.  Понятие компиляции.
  3.  Событие.
  4.  Процедура обработки события.

Резюме

  1.  Этапы разработки программы: определение требований к программе, разработка алгоритма, написание команд (кодирование), отладка, тестирование.
  2.  Задачу преобразования исходной программы в машинный код выполняет специальная программа – компилятор.
  3.  Событие – это то, что происходит во время работы программы.
  4.  Реакцией на событие должно быть какое-либо действие, называемое процедурой обработки события.

Домашнее задание

   Попробовать создать собственную программу.


 

А также другие работы, которые могут Вас заинтересовать

27256. Виведіть графічно та алгебраїчно рівновагу підприємства – споживача економічних ресурсів. В чому полягає правило мінімізації витрат 24.5 KB
  В чому полягає правило мінімізації витрат Изокванта це лінія кожна точка якої відображає такі комбінації ресурсів праці та капіталу які дають змогу отримати однаковий обсяг виробництва продукції. Чим більша кількість використовуваних ресурсів тим більший обсяг виробництва і тим далі від початку координат міститься відповідна ізокванта. Карта ізоквант Отже різні комбінації факторів виробництва у межах ізокванти забезпечують виробництво певної кількості продукції а це означає що ці фактори деякою мірою є взаємозамінними. Для...
27257. Порівняйте криві байдужості в теорії поведінки споживача з ізоквантами в теорії виробництва, а також бюджетну лінію та ізокосту. Виведіть кути їх нахилу 45.56 KB
  Порівняйте криві байдужості в теорії поведінки споживача з ізоквантами в теорії виробництва а також бюджетну лінію та ізокосту. Крива байдужості це лінія рівної корисності всі точки якої показують множину наборів комбінацій двох благ що забезпечують один і той же рівень корисності. норма і нахил кривих байдужості визначаються уподобаннями споживача і залежать від ступеня замінності благ у споживанні. Узагальнимо властивості кривих байдужості: криві байдужості не можуть перетинатися; криві байдужості розташовані далі від початку...
27258. Гроші, їх функції і функціональні форми. Грошова маса та її структура. Товарне виробництво 22.58 KB
  Гроші є з одного боку виробничими відносинами які виникають у товарному виробництві за усіх видів обміну результатами трудової діяльності. Гроші це форма що історично виникла яка повинна мати власний матеріальний носій. Такий підхід до функцій грошей означає що гроші представляють інструмент економічних відносин у суспільстві і саме люди використовуючи можливості грошей можуть визначати ціни товарів застосовувати гроші в процесах реалізації й платежів а також використовувати їх як засіб нагромадження. Функція міри вартості полягає в...
27259. Ціна як економічна категорія, її функції, види. Ціноутворюючі фактори 52.77 KB
  Тому ціна як категорія кількісна це грошове вираження вартості товару. Це знайшло своє відображення у багаточисельності теорій присвячених вартості і цінам. Теорія трудової вартості. Суть цієї теорії в тому що субстанція і величина вартості як основа мінової вартості і цін визначається працею Вартість це втілена в товари праця.
27260. Ринок, його риси і функції. Структура та інфраструктура ринку 21.96 KB
  Ринок це сукупність економічних відносин що виникають між виробниками і споживачами у процесі вільного еквівалентного обміну виробленими благами послугами який організований за законами товарного виробництва і грошового обігу. З цього визначення ринку випливає що поперше ринок завжди обумовлюється природою виробництва хоч йому властива значна самостійність і він активно впливає на всі відтворювальні процеси їх кінцеві результати та ефективність. Потретє ринок означає систему саморегулювання економіки що стимулює розвиток...
27261. Ринкова економіка та її характерні ознаки. Модель економічного кругообігу 17.48 KB
  На розвиток економіки країни велику роль відіграє розвиток та розміщення продуктивних сил. У результаті еволюції економічних систем сформувалися три їх основні типи: система вільного ринку адміністративнокомандна система або централізована та система змішаної економіки. Ринкова економіка це така економічна система в якій всі питання економіки вірішують через ринок ціни прибуток та витрати. Основними перевагами ринкової економіки є приватна власність на засоби виробництва ринковий механізм регулювання економічних процесів що базується...
27262. Ринковий механізм і його елементи. Попит, пропозиція, рівноважна ціна 13.37 KB
  Ринковий механізм і його елементи. Ринковий механізм це механізм взаємозв'язку і взаємодії основних елементів ринку: попиту пропозиції ціни конкуренції іосновних економічних законів ринку. Ринковий механізм діє на основі економічних законів: попитупропозиції рівноважної ціни конкуренції корисності вартостіприбутку тощо див. Важливо зазначити що ринковий механізм проявляється якпримусовий механізм оскільки змушує підприємців які переслідують одну ціль отримання прибутку діяти врештірешт накористь споживачів.
27263. Домогосподарство як економічний суб’єкт та його двоїста роль в економіці 16.24 KB
  На їх оплату використовується значна частина доходів. Отже розгляньмо структуру доходів домашніх господарств і їх використання. У ринковій економіці на основі функціонального розподілу доходів населення отримує їх у формі заробітної плати доходів від власності прибутків і ренти. Основним джерелом доходів населення є оплата праці.
27264. Підприємство(фірма), його ознаки та функції. Класифікація підприємств за різними класифікаційними ознаками 18.25 KB
  Підприємництво можна визначити як уміння починати та вести справу генерувати і використовувати ініціативу зважуватися на ризик долати протидію середовища тощо. Підприємництво це багатопланове явище що може бути описаним з економічної та політичної точок зору. У звязку із цим можна дати таке тлумачення терміна підприємництво. Щодо Закону України Про підприємництво то там зазначено що підприємництво це самостійна ініціатива систематична на власний ризик діяльність з виробництва продукції виконання робіт надання послуг та...