Вход

Знакомство с компонентами RadioGroup и CheckBox, обработка строк типа String в среде Delphi

Реферат по информатике и информационным технологиям
Дата добавления: 01 сентября 2010
Язык реферата: Русский
Word, rtf, 241 кб (архив zip, 25 кб)
Реферат можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
На тему: « Знакомство с компонентами RadioGroup и CheckBox , обработка строк типа String в среде Delphi » Задание 1. (Калькулятор). Создайте приложение, обеспечивающее ввод дву х целых чисел и выполнение над ними арифметических операций сложения, ум ножения и вещественного деления. Для выбора операций используйте перек лючатели, вывод сообщения об ошибке при вводе делителя, равного нулю, вып олните в отдельном окне сообщений. Решение: 1. Сохраните проект в отдельной папке «Калькулято р». Проект назовите Calculator , а файл модуля – mainCalc . pas . 2. Задайте для свойства Form 1 . Ca ption значение «Калькулятор». Разместите на форме компоненты (см. рис. 3 .1) Edit 1,2,3 и Label 1,2,3. Задайте свойства Caption для компонентов Label – «операнд1», «операнд2», «Результат». Удалите текст Edit 1,2,3 в соответствующих ком понентах (используйте свойство Text ). Разместите на форме компонент Button 1. Кнопку назовите «Вычисли ть». 3. Разместите на форме компонент RadioGroup 1 из палитры Standard . Задайте для свойства Caption значение «Операция ». Затем выберите свойство Items (это свойство задает количество переключателей в группе и н адписи около них). В окне String List Editor введите список элементов – символов арифметических операций в столбик: +, -, *, /. Щелкните мышкой по кн опке ОК, завершите формирование списка арифметических операций. 4. В окне Инспектора объектов задайте для свойства RadioGroup . It emIndex значение 0, чтобы сделать первую кнопку (сложение) выбранн ой по умолчанию. Задайте размер символов этого компонента, установив зна чение 14 пунктов. Примечание: определить во время выполнения, какая кнопка выбрана в данный момент, можно по индексу ItemIndex (0 означает перв ую кнопку, -1 – ни одна кнопка не выбрана). Форма будет иметь следующий вид: Рис. 3 .1 Пример формы приложения «Калькулятор» 1. Создайте код обработк и события щелчка на кнопке с надписью «Вычислить». Для решения задачи вы числения арифметических операций введите в текст процедуры TForm 1 . Bu tton 1 Click следующее описание: Var a, b : integer ; c : real ; Так как в процедуре обработки нажатия кнопки долж но быть 4 варианта реализации, по одному для каждой арифметической опера ции, то следует записать выбор вычисления с помощью оператора Case . В основном теле процедуры обработки события введите текст остальных оп ераторов следующим образом: Begin A:=StrToIn t (Edit1. Te xt) ; B:=StrToIn t (Edit2. Te xt) ; Edit3 . Te xt :=’ ‘ ; очистить от результата предыдущих вычи слений Case RadioGroup1 . It emIndex of 0 : c:= a + b ; 1 : c:= a – b ; 2 : c:= a * b ; 3 : if b=0 then ShowMessage (‘ На ноль делить нельзя !’ ) Else c:= a / b ; End ; If RadioGroup . It emIndex <> 3 then Edit3 . Te xt:= FloatToStr F (c, ffGeneral, 10, 4) Else if b <> 0 then Edit3 . Te xt:= FloatToStr F (c, ffGeneral, 10, 4) ; End ; 6. Сохраните и запустите приложение на выполнение. 7*. Самостоятельно исправьт е код программы модуля, использ уя другой вариант оператора Case (составной оператор) и сохраните проект Calculator 2, а модуль – mainCalc 2. Задание 2. Отредактируйте текст модуля приложения Calculator таким образом, чтобы перед выполнением вычислений выполнял ась проверка: а) заданы ли значения операндов, если значения операндов не заданы, то следует вывести сообщения об этом в отдельном окне; б) запретит ь ввод любых символов, кроме цифр от 0 до 9 и знаков « – » , «+». Решение (а): Поместите перед оператором присваивания A := StrToIn t ( Edit 1. Te xt) ; строку : If (Edit1 . Te xt <> ‘ ’ ) and (Edit2 . Te xt <> ‘ ’ ) then begin которая проверяет значения свойств Edit 1. text и Edit 2. text . Если эти значения не пусты, то выполняется вычисление арифметической операции, в противном с лучае управление передается на следующий фрагмент программы, который н ужно вставить перед последним оператором end ; Else ShowMessage ( ‘ Не заданы значения’ ) ; Решение (б): Для реализации второй части задания необходимо создать обр аботчики событий OnKeyPress для компонентов Edit 1, Edit 2. Примечание: параметр Key в обработчике этого события соответствует символу нажатой клавиши. При этом различаются си мволы в верхнем и нижнем регистрах и символы кириллицы латиницы. Клавиши , не имеющие соответствующих им кодов ASCII ( Shift , Alt , Ctrl и функциональные кл авиши), не вызывают этого события. Поэтому нажатие таких комбинаций клав иш, как, например, Shift + A , генерирует тольк о одно событие OnKeyPress , при котором параметр Key равен «А». Для того чтобы распознавать подобные комбинации клавиш, следует использовать обработчики событий OnKeyDown , OnKeyUp . 1. Выделите на форме объ ект Edit 1 и выберите в окне Инспектора объектов на странице Events (События) событие OnKeyPress . Дважды щелкните левой кнопкой мыши на пустом поле списка этого события. После этого курсор пер еместиться в окно Редактора кода и в разделе interface появится запись процеду ры обработчика события: Procedure Edit1KeyPress (Sender: TObject ; var Key : Char) ; 2. Вставьте в тело проце дуры следующий оператор: If not (Key in [‘ 0’ .’ 9’ , ‘ +’ , ‘ – ‘ ] ) then Key:= #0 ; Действие оператора сводится к сравнению значени я переменной Key с множеством зн ачений от 0 до 9 и символов «+» и « – » . Если символ нажатой клавиши не входит во множество, то Key присваивается значение нулевого символа (#0). Таким образом, в окне Edit 1 будет отобр ажаться текст, состоящий из цифр и знаков «+, -». 3. Аналогичным образом создайте процедуру обработки события компонента Edit 2. 4. Сохраните приложение и запус тите его на выполнение. Проверьте результат работы программы. Текст моду ля приложения имеет следующий вид: unit mainCalc; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; Edit3: TEdit; Label3: TLabel; RadioGroup1: TRadioGroup; procedure Button1Clic k (Sender: TObject); procedure Edit1KeyPres s (Sender: TObject; var Key: Char); procedure Edit2KeyPres s (Sender: TObject; var Key: Char); private Private declarations public Public declarations end; var Form1: TForm1; implementation $R *.dfm procedure TForm1 . Bu tton1Clic k (Sender: TObject); var a , b : integer; c: real; begin if (Edit1 . Te xt<>'') and (Edit2 . Te xt<>'') then begin a:=StrToIn t (Edit1. Te xt); b:=StrToIn t (Edit2. Te xt); Edit3 . Te xt : =''; case RadioGroup1 . It emIndex of 0: c:=a+b; 1: c:=a-b; 2: c:=a*b; 3: if b=0 then ShowMessage (' На ноль делить нельзя ') else c:=a/b; end; if RadioGroup1 . It emIndex <> 3 then Edit3 . Te xt:=FloatToStr F (c, ffGenera l, 1 0,4) else if b<>0 then Edit3 . Te xt:=FloatToStr F (c, ffGenera l, 1 0,4); end else ShowMessage ('Не заданы значения'); end; procedure TForm1 . Ed it1KeyPres s (Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9 ', ' + ', ' -']) then Key:=#0; end; procedure TForm1 . Ed it2KeyPres s (Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9 ', ' + ', ' -']) then Key:=#0; end; end. Задание 3. Создайте прилож ение, предлагающее пользователю ввести строку, определяющее количеств о символов в ней и выводящее результат, согласуя окончание слова «символ ов» с числом символов. Решение: 1. Создайте папку «Количество символов» и сохраните в ней проект « simvol ». 2. Разместите на форме компоненты: Edit 1, Label 1,2, Button 1, к ак показано на рис. 3 .2. Задайте значения свойств Label 1 . Ca ption – «Введите текст», Label 2 . Ca ption – «В тексте», Button 1 . Ca ption – «Вычислить». Удалите те кст Edit1 из соответст вующего компонента. Рис. 3 .2 Пример формы проекта «Количество символов» 3. Для вычисления количества символов во введенно й строке и вывода результата создайте процедуру обработчика события ще лчка мышью на кнопке «Вычислить». 4. Введите в текст процедуры следующее описание переменных: Var N : integer ; S : string ; 5. Введите текст тела процедуры обработки события: Begin N := Lengt h ( Edit 1. Te xt ) ; определить число символов Label 2 . Ca ption := ‘ В текст е’ ; If N >20 then N := N mod 10 ; выделить последнюю цифру Case N of 1 : S : = ‘ символ ’ ; 2..4 : S : = ‘ символа’ ; 0, 5..20 : S : = ‘ символов’ ; End ; Label2 . Ca ption : = Label2 . Ca ption + IntToSt r (Length( Edit1 . Te xt )) + S ; End ; Примечание: функция Length – это функция обработки String переменных, определяет количество символов ввод имой строки (см. раздел 1). 6. Сохраните проект и запустите программу на выполнение. Просмотрите рез ультат программы, задавая текст с разным количеством символов и проверя я правильность вывода результатов работы. Задание 4. Создайте прилож ение, которое предлагает ввести текст, а затем заменить символы «а» на «б » в тексте и подсчитать количество замен. Решение: 1. Создайте папку «Замена символов» и сохраните в ней проект под название м « zamena », файл модуля сохраните как zmain . pas . 2. Форму приложения назовите «Подсчет и замена символов». На форме распол ожите три компонента Edit , три компонента Label , один компонент Button и два компонента CheckBox , как показано на рис. 3 .3. 3. Задайте значения свойств: Label 1 . Ca ption – «Исходный текст на русском языке», Label 2 . Ca ption – «Измененный текст», Label 3 . Ca ption – «Число замен», Button 1 . Ca ption – «Выполнить», CheckBox 1 . Ca ption – «Подсчитать число замен », CheckBox 2 . Ca ption – «Заменить «а» на «б» ». Удалите текст Edit1,2,3 из соответствующих компонентов. Рис. 3 .3 Пример формы проекта «Замена символов» 4. Для замены и подсчета символов запишите процедуру обработки события OnClick для кнопки «Выпо лнить». Введите следующее описание переменных: Var S : string ; N : byte ; Примечание: для поиска символа в строке используй те функцию Pos . Для п рограммирования варианта замены символов используйте значение свойст ва Checked компонента CheckBox . 5. Тело процедуры может быть записано следующим образом: Begin N : = 0 ; Edit3 . Te xt : = ‘ ’ ; Edit2 . Te xt : = ‘ ’ ; S : = Edit1 . Te xt ; If CheckBox2 . Ch ecked then если включен флажок While Po s (‘ a ’ , S ) > 0 do если в строке найдена буква «а» Begin N : = N + 1 ; S [ Pos (‘ a ’ , S )] : = ‘ б’ ; заменить букву «а» на букву «б» End ; If CheckBox1 . Ch ecked then Edit3 . Te xt : = IntToStr(N) ; вывод числа замен Edit 2 . Te xt : = S ; в ывод измененного текста End ; 6. Сохраните проект и запустите на выполнение.
© Рефератбанк, 2002 - 2017