Лабораторная работа

Тема: Процедуры и функции. (6 часов)

Цель: Сформировать практические навыки описания и применения подпрограмм Object Pascal для обработки данных; построение однооконных интерфейсов с помощью визуального компонента «окно» (класс TForm) и визуальных компонентов панели инструментов Standard: «метка» (класс TLabel), «однострочный редактор» (класс TEdit), «кнопка» (класс TButton), «многострочный редактор текста» (TMemo).

Задание

1. В соответствии с вариантами задания и приведенной ниже спецификацией реализуйте приложение под Windows.

2. Разработайте тестовые задания, и оттестируйте программу одним из методов тестирования.

Спецификация приложения

1. В соответствии с приведенными вариантами заданий реализуйте приложение под Windows, используя для организации пользовательского интерфейса следующие элементы управления: «форма» (класс TForm), «кнопка» (класс TButton), «метка» (класс TLabel), «однострочный редактор» (класс TEdit). Ввод данных и вывод результатов осуществляйте в элементы управления «однострочный редактор». Подписи к однострочным редакторам выполните с помощью элементов «метка». Вычисление результата свяжите с нажатием на элементе управления «кнопка» левой клавиши мыши.

2. Организуйте контроль содержимого строки, вводимой в элемент «однострочный редактор». Если вводимая строка не соответствует заданному формату, то необходимо предусмотреть следующее: в окне сообщений вывести сообщение об ошибке, очистить строку, введенную в «однострочный редактор».

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

4. Установите удобный для пользователя порядок перемещения фокуса по компонентам с помощью клавиши Tab.

Рекомендации к выполнению

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

2. Описания разрабатываемых в работе подпрограмм помещайте в разделе реализации (раздел модуля, который начинается после зарезервированного слова implementation) модуля формы вашего приложения.

Варианты заданий

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

2. Разработайте функцию, которая получает через параметры целое значение, соответствующее 16-ичной цифре, и возвращает символ, изображающий эту цифру.

3. Разработайте функцию, которая получает через параметры символ, изображающий 16-ичную цифру, и возвращает целое значение, соответствующее этой цифре.

4. Разработайте функцию, которая получает через параметры длины трех сторон треугольника a, b, c, вычисляет и возвращает в качестве своего результата его площадь s. Площадь треугольника вычисляйте по формуле Герона:

image

5. Разработайте функцию, которая получает три вещественных параметра, возвращает в качестве своего результата булевское значение True, если полученные значения могут быть сторонами треугольника, False – в противном случае.

6. Разработайте функцию, которая получает три вещественных параметра R, r, l, вычисляет и возвращает в качестве своего результата площадь s усеченного конуса:

image

7. Разработайте функцию, которая получает три вещественных параметра R, r, h, вычисляет и возвращает в качестве своего результата объем v усеченного конуса:

image

8. Разработайте функцию, которая получает через параметры два вещественных значения x1, x2, вычисляет и возвращает в качестве своего результата вещественное значение y в соответствии со следующей формулой:

image

9. Разработайте функцию, которая вычисляет и возвращает в качестве своего результата заданный разряд целого числа. Целое число и номер разряда функция получает через параметры. Разряды нумеруйте справа налево, начиная с единицы. Для решения используйте операции mod, div.

10. Разработайте функцию, которая вычисляет и возвращает в качестве своего результата значение заданного разряда дробной части вещественного числа. Вещественное число и номер разряда функция получает через параметры. Разряды нумеруйте от десятичной точки направо, начиная с единицы. Для решения используйте функции Int, Frac.

11. Выполните приведенные выше варианты заданий, описывая процесс обработки данных в форме процедуры Object Pascal.

12. Разработайте процедуру, которая получает через параметры две вещественные переменные x, y и обменивает переменные их значениями. Например, до вызова процедуры переменные имеют значения: x = 5, y = 8. После вызова процедуры переменные имеют значения: x = 8, y = 5.

Пример

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

• латиница;

• цифра;

• кириллица;

• другая;

и возвращает строку (значение типа String), содержащую имя этого подмножества.

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

 

image

 

Рис. 7

Ей соответствует модуль, текст которого приведен ниже.

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

  private

    {Private declarations}

  public

    {Public declarations}

  end;

var

  Form1: TForm1;

 

implementation

{$R *.DFM}

function Litera(Ch: Char):String;// Описание функции

begin

  if ((Ch>='A') and (Ch<= 'Z')) or ((Ch>='a') and (Ch<= 'z')) then

     Litera:='Латиница'

    else if ((Ch>='А') and (Ch<= 'Я')) or ((Ch>='а') and (Ch<= 'я')) then

             Litera:='Кириллица'

            else if ((Ch>='0') and (Ch<= '9')) then

                    Litera:='Цифра'

                    else Litera:='Другой'

end;

procedure Litera_(Ch: Char;var Res: String);// Описание процедуры

begin

  if ((Ch>='A') and (Ch<= 'Z')) or ((Ch>='a') and (Ch<= 'z')) then

     Res:='Латиница'

    else if ((Ch>='А') and (Ch<= 'Я')) or ((Ch>='а') and (Ch<= 'я')) then

             Res:='Кириллица'

            else if ((Ch>='0') and (Ch<= '9')) then

                    Res:='Цифра'

                    else Res:='Другой'

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

var s: String;

begin

  Litera_(Key,s); //вызов процедуры

  Edit2.Text:= s;

  //Edit2.Text:= Litera(Key); //Вызов функции

  Edit1.Clear

end;

end.

Содержание отчета

1. Задание.

2. Текст программы на Object Pascal 2.0.

3. Тестовые наборы данных для тестирования приложения.

 


Ұқсас жұмыстар

Информатикадан зертханалық және практикалық жұмыстарды өткізу әдістемесі
Биотехнологияда қолданылатын биологиялық нысандар пәнінің жұмыс бағдарламасы
MS Word көмегімен медициналық құжаттарды дайындау барысында мәтінмен жұмыс
Иммунитеттің әлсіреу себептері
ҮЙДЕ ОҚЫТЫЛАТЫН БАЛАЛАРДЫ ЖАЛПЫ БІЛІМ БЕРУ МЕКТЕБІНІҢ ОҚУ БАҒДАРЛАМАЛАРЫМЕН ОҚЫТУ
Қоршаған ортаға антропогендік факторлардың әсері
Информатикадан практикалық жұмыстар
Плеврит - плевраның қабыну экссудатының плевралық қуысында жиналуымен қабынуы
Жалпы металлургия пәнінен дәрістер жинағы
Ірі қара малының гигиенасы