Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа П2Б,Г.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.09 Mб
Скачать

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

Ниже приведено 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 нажатии на кнопке введите текст программы:

p rocedure 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, где этот предел снят).

Пример: Найти сумму 5 чисел в одномерном массиве.

Разместите не форме компоненты Memo1, 2 - Label, Button, Edit, как на рисунке. В свойстве Memo Lines| TString… удалить текст «Memo1» и «OK».

procedure TForm1.Button1Click(Sender: TObject);

var a: array [0..9] of integer;

sum, i:integer;

begin

sum:=0;

for i:=0 to 4 do

begin

a[i]:=StrToInt(Memo1.Lines[i]);

sum:=sum+a[i];

end;

Edit1.Text:=IntToStr(sum);

end;

Вводите все значения в Memo1 !!!!

Задания: