Применение оператора-переключателя Case

Пример 1

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

Две последние цифры числа Поясняющий текст
0, 5, 6, 7, 8, 9 рублей
рубль
2, 3, 4 рубля

Однако приведенное в таблице правило имеет исключение для чисел 11, 12, 13, 14. Для этих чисел поясняющий текст должен быть рублей. Ниже приведены форма приложения и фрагмент программы, которая формирует в переменной Tail поясняющий текст с правильным окончанием. Предполагается, что переменные n и г целого типа, а переменная tail — строкового. Label1 – заголовок перед окном ввода. Edit1 – окно ввода числа денежных единиц. Button1 – кнопка вывода суммы с названием. Label2 – вывод результата.

Код программы:

procedure TForm1.Button1Click(Sender: TObject);

var

n,r: integer;

tail: string[8];

begin

n:=StrToInt(Edit1.text);

if n>100 then n:=n mod 100;

if (n>=11) and (n<=14) then tail:=' рублей'

else begin r:=n mod 10;

Case r of

0,5,6,7,8,9: tail:=' рублей';

1: tail:=' рубль';

2,3,4: tail:=' рубля';

end;

end;

Label2.Caption:=Edit1.Text+tail;

end;

 

Пример 2

Приведенный ниже фрагмент программы, используя дату сегодняшнего дня (представленную тремя переменными day (день), month (месяц) и year (год)), вычисляет дату следующего, завтрашнего, дня. Сначала с помощью инструкции case проверяется, является ли текущий день последним днем месяца. Если текущий месяц — февраль и если текущее число 28, дополнительно выполняется проверка: является ли год високосным. Делается это анализом остатка от деления года на четыре (для високосного года остаток равен нулю). Если год високосный, то число 28 не является последним днем месяца. Если выясняется, что текущий день — последний день месяца, то следующее число — первое. Затем проверяется, не является ли текущий месяц январем, если нет, то увеличивается номер месяца, а если да, то увеличивается номер года.

 

day: integer;

month: integer;

year: integer;

last: boolean;{true если последний день месяца}

г: integer; {если год високосный, то остаток от деления year на 4 равен нулю}

begin

{переменные day, month и year содержат сегодняшнюю дату}

last:=false;

case month of

l,3,5,7,8,10,12:if day=31

then last:= true;

4,6,9,11-: if day = 30

then last:=true;

2: if ( day = 28)

then begin

r:= year mod 4;

if г <> 0 then last:=true;

end;

end;

if last then begin {последний день месяца }

day:= 1;

if month = 12 then begin { последний месяц )

month:=1;

year:= year + 1;

end

else month:= month + 1;

end

else day:= day + 1;

{переменные day, month и year содержат завтрашнюю дату }

end;

Форму приложения и соответствующие компоненты установить самостоятельно.

Дополнительное задание: Создать приложение "Расписание занятий" в котором с помощью конструкции Case программа выводила количество пар занятий с комментарием (1 пара; 2 пары; …. 6 пар

 

3. ОБЪЕКТЫ ИССЛЕДОВАНИЯ, ОБОРУДОВАНИЕ, МАТЕРИАЛЫ И НАГЛЯДНЫЕ ПОСОБИЯ

3.1. IBM – совместимый компьютер.

3.2. Установленная операционная система Windows.

3.3. Установленное приложение Borland Delphi.

3.4. Справочная система приложения Borland Delphi.

 

4. ЗАДАНИЕ НА РАБОТУ

4.1. Изучение теоретические положения работы по программированию в среде Borland Delphi.

4.2. Выполнение индивидуального задания преподавателя по программированию в пределах вопросов, рассмотренных в данной лабораторной работе.

 

5. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

5.1. Ознакомиться с теоретическими положениями данной лабораторной работы.

5.2. Выполнить индивидуальное задание преподавателя по программированию (по заданиям приложения).

5.3. Оформить отчет по работе.

5.4. Защитить лабораторную работу путем ответа на вопросы преподавателя.

 

6. СОДЕРЖАНИЕ ОТЧЕТА

6.1. Описание цели работы.

6.2. Основные теоретические положения работы

6.3. Содержание индивидуального задания преподавателя по программированию.

6.4. Описание методики выполнения индивидуального задания.

 

7. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

7.1. Delphi 7 : [наиболее полное руководство] / А. Д. Хомоненко [и др.];под общ.ред.А.Д.Хомоненко .— СПб. : БХВ - Петербург, 2007 .— 1216с. : ил. (7 экз.)

7.2. Программирование в Delphi 7 / П. Г. Дарахвелидзе, Е. П.Марков .— СПб.: БХВ -Петербург, 2004 .— 784c. : ил. (1 экз.)

7.3. Осипов Д. Delphi. Профессиональное программирование. - СПб.: Символ-Плюс, 2006. -1056 с., ил.

 

ПРИЛОЖЕНИЕ

 

Индивидуальные задания

 

1. Незнайка учит иностранные слова следующим образом. Если число месяца, кратное трем, является вторником, четвергом или субботой, то он учит 3 испанских и 1 английское слово. Если число месяца, кратное трем, — другой день недели, то он учит 2 английских и 4 немецких слова. По числам, которые при делении на 3 дают в остатке 1, он учит 1 испанское, 1 английское и 5 немецких слов. По остальным числам месяца Незнайка учит 2 испанских, 4 английских и 1 немецкое слово. Написать программу, подсчитывающую, сколько слов в июне выучит Незнайка, если 1 июня была среда.

2. Заданы пять чисел: a,b,c,d,e. Написать программу, находящую минимальное из них и его номер.

3. Заданы круг площади Sи квадрат площади Р. Написать программу, проверяющую, поместится ли круг в квадрат или поместится ли квадрат в круг, или они не поместятся друг в друга.

4. Заданы окружность радиуса Rс центром в начале координат и прямая, проходящая через точки А (х; у) и В (х; - у). Написать программу, проверяющую, пересекаются ли окружность и прямая, или они касаются друг друга, или не пересекаются и не касаются.

5. В старой лавке Аладдин нашел пять волшебных ламп, которые работают от удара друг о друга. В момент удара из ламп сыплются искры. При любом ударе из одной лампы высыпается количество искр, не совпадающее с количеством искр, высыпающихся из другой. Волшебной оказалась та лампа, из которой высыпалось больше искр. Написать программу для определения самой волшебной лампы.

6.Через прямоугольное окошко размером Р х Q. Винни-Пух хочет выбросить круглый воздушный шарик радиусом R. Написать программу, определяющую, пройдет ли шарик в окошко.

7.Написать программу, проверяющую, поместится ли равносторонний треугольник площадью Р в круг площадью S, или круг поместится в треугольник, или они не поместятся друг в друга.

8.Написать программу, проверяющую, поместится ли равносторонний треугольник площадью Р в квадрат площадью S, или квадрат поместится в треугольник, или они не поместятся друг в друга.

9.Написать программу, проверяющую, поместится ли прямоугольник площадью Р в круг площадью S, или круг поместиться в прямоугольник, или они не поместятся друг в друга.

10.Написать программу, которая запрашивает дни рождения трех человек, родившихся в марте 1981 г., и выводит на экран дату рождения старшего.

11.Написать программу, которая вводит две даты в формате «дд.мм.гг» и выводит старшую дату.

12.Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, что заданные две клетки лежат на одной диагонали.

13.Шахматная доска содержит 8x8 клеток. Горизонтами и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, что заданные три клетки лежат на одной вертикали.

14.Шахматная доска содержит 8x8 клеток. Горизонтали вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, что заданные две клетки имеют одинаковый цвет.

15.Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой заданной клетки попасть на вторую одним ходом черного слона.

16.Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой заданной клетки попасть на вторую одним ходом коня.

17.Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой заданной клетки попасть на вторую одним ходом ладьи.

18.Вводятся две даты: дата рождения студента и текущая дата. Написать программу, проверяющую, исполнилось ли студенту 18 лет и 5 месяцев.

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

20.Написать программу, проверяющую истинность высказывания «Цифра пять входит в десятичную запись черырехзначного числа K».

21.Написать программу, проверяющую истинность высказывания «Есть ли среди цифр заданного трехзначного числа одинаковые».

22.Написать программу, проверяющую истинность высказывания «Сумма двух первых цифр четырехзначного числа равна сумме двух последних».

23.Написать программу, проверяющую, можно ли построить треугольник, длины сторон которого равны трем заданным числам.

24.Написать программу, определяющую вид заданного треугольника (равнобедренный, равносторонний или разносторонний) по длинам сторон.

25.Написать программу, определяющую вид заданного четырехугольника (прямоугольник, квадрат, четырехугольник общего вида) по длинам сторон.


Министерство образования и науки Российской Федерации

 

 

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

 

 

Политехнический институт

Кафедра «Сварка, литье и технология конструкционных материалов»

 








Дата добавления: 2015-03-19; просмотров: 1709;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.017 сек.