Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






II. Задание для самостоятельного выполнения. Рассмотрим пример использования инструкции case






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

Пример 5

Например, в зависимости от числового значения поясняющий текст к денежной величине может быть: " рубль", " рублей" или " рубля" (123 рубля, 120 рублей, 121 рубль). Очевидно, что окончание поясняющего слова определяется последней цифрой числа, что отражено в табл. 2.8.


 

Таблица 2.8. Зависимость окончания текста от последней цифры числа

Цифра Поясняющий текст
0, 5, 6, 7, 8, 9 Рублей
  Рубль
2, 3, 4 Рубля

Приведенное в таблице правило имеет исключение для чисел, оканчивающихся на 11, 12, 13, 14. Для них поясняющий текст должен быть " рублей".

Диалоговое окно программы приведено на рис. 2.12, а текст — в листинге 2.4. Поясняющий текст формирует процедура обработки события onKeyPress.

 

Рис. 2.12. Диалоговое окно программы

Листинг 2.4. Формирование поясняющего текста

unit. rub_l;

Interface

Uses

Windows, Messages, SysUtils,

Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

Type

TForm1 = class(TForm) Label1: TLabel;

Editl: TEdit; Label2: TLabel;

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

private

{ Private declarations } public

{ Public declarations } end;

Var

Form1: TForm1;

Implementation

{$R *.dfm}

// нажатие клавиши

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

n: integer; // число

r: integer; // остаток от деления n на 10

text: string [10]; // формируемый поясняющий текст

Begin

if Key = chr(VK_RETURN) then

Begin

n: = StrToInt(Editl.Text); if n > 100

then n: =n mod 100;

if (n > = 11) and (n < = 14) then

text: =' рублей' else begin

r: = n mod 10; case r of

1: text: =' рубль'; 2.. 4: text: =' рубля';

else text: =' рублей';

End;

End;

Label2.Caption: = IntToStr(n)+ text; end;

End;

End.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.