Лабораторная работа №12 Знакомство со средой Delphi. - 2 часа

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с интегрированной средой Delphi. Закрепить полученные на лекции знания.

Теория:

Основные составные части Delphi:

  1. Дизайнер Форм (Form Designer)
  2. Окно Редактора Исходного Текста (Editor Window)
  3. Палитра Компонент (Component Palette)
  4. Инспектор Объектов (Object Inspector)

 

Стандартные компоненты. На первой странице Палитры Компонент размещены 14 объектов

Задание:

Описать все части интегрированной среды Delphi в тетради. Рассмотреть способы передвижения по окнам. Познакомится с палитрой компонент и инспектором объектов.

 

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

  1. Основные составные части Delphi ?
  2. Дизайнер Форм (Form Designer)
  3. Окно Редактора Исходного Текста (Editor Window)
  4. Палитра Компонент (Component Palette)
  5. Инспектор Объектов (Object Inspector)

 

Лабораторная работа №13 Решение задачи на линейные алгоритмы в среде Delphi.

Цель работы: Применение теоретических навыков на практике. Научиться составлять каркас простейшей программы в среде DELPHI. Написать и отладить программу линейного алгоритма.

Закрепить полученные на лекции знания.

Теория:

3
6
4
5
Рис.1.1 . 1- главное окно; 2 – основное меню; 3 – пиктограммы основного меню; 4 - окно инспектора объектов; 5 – окно текста программы; 6- окно пустой формы; 7 – меню компонентов
1
2
7


Среда DELPHI визуально реализуется в виде нескольких одновременно раскрытых на экране монитора окон. Количество, расположение, размер и вид окон может меняться программистом в зависимости от его текущих нужд, что значительно повышает производительность работы. При запуске DELPHI вы можете увидеть на экране картинку, подобную представленной на рис. 1.1.

 

Выполнение индивидуального задания

Ниже приведено 30 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите необходимое количество окон Edit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов.

Прочтите в прил.1 описание меню File, Edit, Run, а в прил.2 описание компонентов TEdit, TMemo, TButton. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

Задания:

1.

При x=14.26, y=-1.22, z=3.5´ t=0.564849.

2.

При x=-4.5, y=0.75´ ,z=0.845 u=-55.6848.

3.

При x=3.74 , y=-0.825, z=0.16 , v=1.0553.

4.

При x=0.4 ,y=-0.875, z=-0.475 w=1.9873.

5.

При x=-15.246, y=4.642 , z=20.001 =-182.036.

6.

При x=16.55 , y=-2.75, z=0.15 =-38.902.

7.

При x=0.1722, y=6.33, z=3.25 =-172.025.

8.

При x=-2.235 , y=2.23, z=15.221 =39.374.

9.

При x=1.825 , y=18.225, z=-3.298 =1.2131.

10.

При x=3.981 , y=-1.625 , z=0.512 a=1.26185.

11.

При x=6.251, y=0.827, z=25.001 b=0.7121.

12.

При x=3.251, y=0.325, z=0.466 c=4.025.

13. .

При x=17.421, y=10.365 , z=0.828 f=0.33056.

14. .

При x=12.3 , y=15.4, z=0.252 g=82.8257.

15. .

При x=2.444, y=0.869 , z=-0.13 -0.49871.

 

Лабораторная работа №14 Использование компонентов отображения.

Цель лабораторной работы: Ознакомить студентов с компонентами отображения. Научиться составлять каркас простейшей программы в среде DELPHI. Закрепить полученные на лекции знания. Написать и отладить программу.

Теория:

· Компоненты класса TLabel (метки) предназначены для размещения на форме различного рода текстовых надписей. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов. Вы увидите, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.

Property AutoSize: Boolean; Указывает, будет ли метка изменять свои размеры в зависимости от помещенного в ее свойство Caption текста (True - будет)
Property FocusControl: TWinControl; Содержит имя оконного компонента, который связан с меткой (выбор компонента Label приводит к перемещению фокуса на связанный с ним компонент)
TtextLayout = (tlTop, tlCenter, tlBottom) ;   Property Layout: TTextLayout; Определяет выравнивание текста по вертикали относительно границ метки: tlTop - текст располагается вверху; tlCenter - текст центрируется по вертикали; tlBottom -текст располагается внизу
Property ShowAccelChar: Boolean; Если содержит True, символ & в тексте метки предшествует символу-акселератору
Property Transparent: Boolean; Определяет прозрачность фона метки. Если False, фон закрашивается собственным цветом Color, в противном случае используется фон родительского компонента
Property WordWrap: Boolean; Разрешает/запрещает разрыв строки на границе слова. Для вывода многострочных надписей задайте AuroSize=False, WordWrap=True и установите подходящие размеры метки

· TEdit

Компонент класса TEdit представляет собой однострочный редактор текста. С его помощью можно вводить и/или отображать достаточно длинные текстовые строки. Следует помнить, что этот компонент не распознает символы конца строки (#13#10).

 

Property AutoSelect: Boolean; Указывает, будет ли выделяться весь текст в момент получения компонентом фокуса ввода
Property AutoSize: Boolean; Если True и BorderStyle = bsSingle, высота компонента автоматически меняется при изменении свойства Font. Size
TBorderStyle = bsNone..bsSingle; Property BorderStyle: TBorderStyle; Определяет стиль обрамления компонента: bsNone - нет обрамления; bsSingle – компонент обрамляется одной линией
TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);   Property CharCase: TEditCharCase; Определяет автоматическое преобразование высоты букв: ecNormal - нет преобразования; ее UpperCase - все буквы заглавные; ecLowerCase -все буквы строчные. Правильно работает с кириллицей
Property HideSelection: Boolean; Если False, выделение текста сохраняется при потере фокуса ввода
Property MaxLength: Integer; Определяет максимальную длину текстовой строки. Если имеет значение 0, длина строки не ограничена
Property Modified: Boolean; Содержит True, если текст был изменен
Property OnChange: TNotifyEvent; Определяет обработчик события OnChange, которое возникает после любого изменения текста
Property OEMConvert: Boolean; Содержит True, если необходимо перекодировать текст из кодировки MS-DOS в кодировку Windows и обратно
Property PasswordChar: Char; Если символ PasswordChar определен, он заменяет собой любой символ текста при отображении в окне. Используется для ввода паролей
Property ReadOnly: Boolean; Если содержит True, текст не может изменяться
Property SelLength: Integer; Содержит длину выделенной части текста
Property SelStart: Integer; Содержит номер первого символа выделенной части текста
Property SelText: String; Содержит выделенный текст

 

Методы компонента:

 

procedure Clear; Удаляет весь текст
procedure ClearSelection; Удаляет выделенный текст
procedure CopyToClipboard; Копирует выделенный текст в Clipboard
procedure CutToClipboard; Копирует выделенный текст в Clipboard, после чего удаляет выделенный текст из компонента
function GetSelTextBuf(Buffer: PChar; BufSize: Integer) : Integer; Копирует не более BufSize символов выделенного текста в буфер Buffer
procedure PasteFromClipboard; Заменяет выделенный текст содержимым Clipboard, а если нет выделенного текста, копирует содержимое Clipboard в позицию текстового курсора
procedure SelectAll; Выделяет весь текст
Procedure SetSelTextBuf(Buffer: PChar); Заменяет выделенный текст содержимым Buffer, а если нет выделенного текста, копирует содержимое Buffer в позицию текстового курсора

 

Задание : Установить все используемые свойства в приложении программным путем.

Вариант №1

Определить что, все цифры данного четырехугольника числа N различны;

Вариант №2

Определить что, данные числа x,y являются координатами точки, лежащей в первой координатной четверти;

Вариант №3

Определить что, цифры данного трехзначного числа N являются членами арифметической прогрессии;

Вариант №4

Определить что, сумма двух действительных чисел a и b являются целым числом, т.е. дробная часть суммы равна нулю;

Вариант №5

Определить что, данное натуральное число a кратно числу b, но не кратно числу с.

Вариант №6

Определить что, данное четырехзначное число читается одинаково слева направо и справа налево;

Вариант №7

Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению (т.е. к результату большему, чем 32767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел.

Вариант №8

Определить что, число С является средним арифметическим чисел а и b;

Вариант №9

Программа – льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д или М». В зависимости от ответа на экране должен появиться текст «мне нравятся девочки!» или «Мне нравятся мальчики!».

Вариант №10

Проверить, является ли четырехугольник со сторонами a,b,c,d ромбом.

Вариант №11

Определить, является ли треугольник со сторонами a,b,c равнобедренными.

Вариант №12

Составить программу, определяющую результат гадания на ромашке – «любит – не любит», взяв за исходное данное количество лепестков п.

Вариант №13

Определить что, данные числа C и D являются соответственно квадратом и кубом числа а;

Вариант №14

Определить, является ли треугольник со сторонами A,B,C равносторонним.

Вариант №15

Среди чисел A,В,С определить количество отрицательных.

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

  1. Основные составные части Delphi?
  2. Какие функции преобразования вы знаете?
  3. Какие компоненты служат для ввода и вывода данных?
  4. Какие типы свойств существуют?
  5. Как изменить значение свойства компонента программно?

Лабораторная работа №15 Использование компонентов редактирования.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами ввода-вывода. Закрепить полученные на лекции знания. Написать и отладить программу.

Теория:

· TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

· TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом.

Функции преобразования:

IntToStr Перевод целого числа в строковое
StrToInt Наоборот
FloatToStr Перевод вещественного числа в строку
StrToFloat Наоборот

· TMaskEdit

Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask:String. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit.

Шаблон состоит из трех частей, отделенных друг от друга символами «;». Первая часть задает маску ввода, вторая - это символ «О» или «I», определяющий, записывается ли в Text результат наложения маски или исходный текст («О» - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов.

Описатели полей ввода представлены в следующей таблице:

 

Символ Поле
L должно содержать букву
1 может содержать букву
А должно содержать букву или цифру
а может содержать букву или цифру
С должно содержать любой символ
с может содержать любой символ
О должно содержать цифру
9 может содержать цифру
# может содержать цифру, «+», «-»

 

Специальные символы:

Символ Значение
\ Следующий символ - литерал. Позволяет вставить в маску литералы из символов описателей полей ввода и специальных символов
На это место вставляется символ-разделитель Windows для часов, минут, секунд
/ На это место вставляется символ-разделитель Windows для полей даты.
/ Разделитель частей шаблона
! Подавляет все ведущие пробелы
> Все следующие за ним поля ввода преобразуют буквы к заглавным
< Все следующие за ним поля ввода преобразуют буквы к строчным
о Отменяет преобразование букв

Пример: Найти сумму 2 чисел – целого и вещественного.

1. Загрузить Delphi (ПУСК -> Программы -> BorlandDelphi6 -> Delphi6

2. Открыть новое приложение File| New|Application , если новое приложение не создалось

3. Перенесите на пустую форму, кнопку TButton со страницы Standard палитры компонент. Затем щелкните курсором мыши в нужном месте формы. На форме появится кнопка, Delphi присвоит имя по умолчанию – Button1.

4. Так же перенесите 2 компоненты TEdit, 4 - TLabel.

5. Выделите на форме компонент Button1 – кнопку. Перейдите в Инспектор Объектов и измените свойство Caption (надпись), которое по умолчанию равно Button1 на «Выполнить»

6. Аналогично измените свойство Caption у компонет Label на : Label1 >> «Число1» , Label2 >> «Число 2», Label3 >> «Результат», а у компоненты Labe4 свойство Caption удалить.

7. Удалите в Edit1 и в Edit2 значение в свойстве Text.

8. Расположите компоненты как на рисунке

9. Теперь необходимо написать обработчик события при нажатии кнопки. Нажмите 2 раза на кнопке, появится редактор кода программы, напишите следующее не удаляя все. что за вас написал Delphi:

procedure TForm1.Button1Click(Sender: TObject);

var a :integer;

b,c :real;

begin

a:= StrToInt(Edit1.text); {ввод числа из компонеты Edit}

b:=StrToFloat (Edit2.Text); {и перевод из строки в число}

c:=a+b;

Label4.Caption:=FloatToStr(c); {вывод результата в Label4}

end;

  1. Запустите приложение Run | Run F9
  2. Введите числа в поля «Число 1» и «Число 2», а затем нажмите кнопку «Выполнить».
  3. Для завершения приложения нажмите «Х» на заголовке формы.
  4. Сохраните приложение File| Save Project as , создайте свою папку и нажмите «Сохранить»

Свойство является важным атрибутом компонента. Свойства служат двум главным целям. Во-первых, они определяют внешний вид формы или компонента. А во-вторых, свойства определяют поведение формы или компонента.

Существует несколько типов свойств, в зависимости от их “природы”, т.е. внутреннего устройства.

· Простые свойства - это те, значения которых являются числами или строками. Например, свойства Left и Top принимают целые значения, определяющие положение левого верхнего угла компонента или формы. Свойства Caption и Name представляют собой строки и определяют заголовок и имя компонента или формы.

· Перечислимые свойства - это те, которые могут принимать значения из предопределенного набора (списка). Простейший пример - это свойство типа Boolean, которое может принимать значения True или False.

· Вложенные свойства - это те, которые поддерживают вложенные значения (или объекты). Object Inspector изображает знак “+” слева от названия таких свойств. Имеется два вида таких свойств: множества и комбинированные значения. Object Inspector изображает множества в квадратных скобках. Если множество пусто, оно отображается как []. Установки для вложенных свойств вида “множество” обычно имеют значения типа Boolean. Наиболее распространенным примером такого свойства является свойство Style с вложенным множеством булевых значений. Комбинированные значения отображаются в Инспекторе Объектов как коллекция некоторых величин, каждый со своим типом данных. Некоторые свойства, например, Font, для изменения своих значений имеют возможность вызвать диалоговое окно. Для этого достаточно щелкнуть маленькую кнопку с тремя точками в правой части строки Инспектора Объектов, показывающей данное свойство.

 

Задание :

Вариант №1

Составить программу, которая проверяла бы, не приводит ли суммирование двух целых чисел А и В к переполнению (т.е. к результату большему, чем 32767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел.

Вариант №2

Определить что, число С является средним арифметическим чисел а и b;

Вариант №3

Программа – льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д или М». В зависимости от ответа на экране должен появиться текст «мне нравятся девочки!» или «Мне нравятся мальчики!».

Вариант №4

Проверить, является ли четырехугольник со сторонами a,b,c,d ромбом.

Вариант №5

Определить, является ли треугольник со сторонами a,b,c равнобедренными.

Вариант №6

Составить программу, определяющую результат гадания на ромашке – «любит – не любит», взяв за исходное данное количество лепестков п.

Вариант №7

Определить что, данные числа C и D являются соответственно квадратом и кубом числа а;

Вариант №8

Определить, является ли треугольник со сторонами A,B,C равносторонним.

Вариант №9

Среди чисел A,В,С определить количество отрицательных.

Вариант №10

Определить что, все цифры данного четырехугольника числа N различны;

Вариант №11

Определить что, данные числа x,y являются координатами точки, лежащей в первой координатной четверти;

Вариант №12

Определить что, цифры данного трехзначного числа N являются членами арифметической прогрессии;

Вариант №13

Определить что, сумма двух действительных чисел a и b являются целым числом, т.е. дробная часть суммы равна нулю;

Вариант №14

Определить что, данное натуральное число a кратно числу b, но не кратно числу с.

Вариант №15

Определить что, данное четырехзначное число читается одинаково слева направо и справа налево;

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

  1. Основные составные части Delphi?
  2. Какие функции преобразования вы знаете?
  3. Какие компоненты служат для ввода и вывода данных?
  4. Какие типы свойств существуют?
  5. Как изменить значение свойства компонента программно?

 

 

Лабораторная работа №16 Использование компонентов многострочного редактора для обработки строковых данных.

 

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами ввода/вывода строк на форме приложения с использованием окна Watch. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

Окно наблюдения (View| Debug Windows| Watch). Ctrl+F5 на переменной – откроется окно наблюдения и в нем появится имя переменной и ее значение или выделить курсором выражение (Ctrl+F5) и в окне наблюдения значение этого выражения.

Существует ряд стандартных функций и процедур для работы со строками.

· Функция Length(s) выдает длину строки s.

· Функция Concat(s1,s2,..,sn) возвращает строку s1+s2+..+sn.

· Функция Copy(s,p,k) возвращает фрагмент строки s, который начинается в позиции p и имеет длину k.

· Функция Pos(s1,s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли.

· Процедура Delete(s,p,k) удаляет из строки s фрагмент, который начинается в позиции p и имеет длину k.

· Процедура Insert(s,s1,p) вставляет в строку s подстроку s1, начиная с заданной позиции p.

Турбо паскаль позволяет производить преобразования числовых значений в строковые и наоборот. Для этого используются процедуры Str(X:n:d,S) и Val(S,X,e). Первая получает их числа X строку S с изображением этого числа, в которой не менее n символов и из них d знаков после запятой. Параметры n и d необязательные. Вторая процедура получает из строки S число X. При успешном результате e=0.

Пример: Заменить в строке «А» на «О».

  1. Переместить на форму компоненты : 2 Edit, Label, Button1 и измените значения их свойств.
  2. Расположите компоненты как показано на рисунке и при 2 нажатии на кнопке введите текст программы:

procedure TForm1.Button1Click(Sender: TObject);

var s1 :string;

i : integer;

 

begin

s1:= Edit1.text; {ввод строки в переменную s1}

 

for i:=0 to length(s1) do

begin

if s1[i]='А' then

begin

delete (s1 , i , 1);

insert('О' , s1 , i);

end;

end;

Edit2.Text:=s1; {вывод новой строки}

end;

Задания: Используя компоненту Edit, выполнить следующие действия:

Вариант №1

Ввести последовательность символов, предшествующую символу "пробел" и выяснить: есть ли среди них буква А, сколько раз встретился символ "." , заменить букву В на *

Вариант №2

Ввести произвольную последовательность из 20 символов и выяснить, - сколько среди них точек, сколько среди них пробелов, сколько среди них букв Д.

Вариант №3

Ввести произвольную последовательность символов, предшествующую символу ! и выяснить, есть ли среди них буквы, входящие в слово КУРС и сколько раз какая из этих букв встретилась.

Вариант №4

Ввести последовательность символов, предшествующих точке и выяснить, встретились ли среди них буквы, входящие в слово ТУР

Вариант №5

Ввести последовательность символов, заканчивающихся * выяснить: сколько пробелов, сколько букв А, сколько букв С, все буквы А заменить на точку

Вариант №6

Ввести произвольную последовательность символов, предшествующих точке и выяснить, есть ли среди них буквы, входящие в слово ЭВМ и сколько раз они встречались.

Вариант №7

Ввести последовательность символов, предшествующих символу * и выяснить сколько среди них букв S, A, R. Все буквы S заменить на точку

Вариант №8

Ввести произвольную последовательность символов, предшествующую символу “.“ и определить: сколько символов введено, есть ли среди них символ пробел, все встретившиеся буквы “A“ заменить символом “*“.

Вариант №9

Вывести произвольную последовательность из 15 символов и определить, есть ли среди них буквы, входящие в слово «Мера». Если они найдены, заменить их символом пробел.

Вариант №10

Ввести строку символов, состоящую из N слов, разделённых пробелом и определить, сколько слов введено, кроме того, вывести все слова отдельно «столбцом».

Вариант №11

Ввести произвольную последовательность из 30 символов и определить, есть ли среди них буквы входящие в слово “ШИНА” и сколько среди символов пробелов

Вариант №12

Ввести последовательность символов, предшествующую символу "пробел" и выяснить: есть ли среди них буква Н, сколько раз встретился символ «=» , заменить букву «Н» на «?»

Вариант №13

Ввести произвольную последовательность из 20 символов и выяснить, - сколько среди них точек, сколько среди них пробелов, сколько среди них букв Ш.

Вариант №14

Ввести последовательность символов, предшествующих точке и выяснить, встретились ли среди них буквы, входящие в слово МИР

Вариант №15

Ввести последовательность символов, предшествующих символу « - » и выяснить сколько среди них букв Н, Ю, Х. Все буквы Ю заменить на точку

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

  1. Какие функции над строками вы знаете?
  2. Как произвести ввод и вывод строки в приложении?
  3. Какие компоненты необходимы для работы со строками?

 

 

 

Лабораторная работа №17 Использование компонентов многострочного редактора для одномерных массивов.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами вывода текста на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу

 

Теория:

· TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и “родные” компоненты Delphi, где этот предел снят).