Как проверить, правильно ли работает программа, в Индивидуальные задания к лабораторной работе № 26
"Линейные алгоритмы"
Варианты заданий
Составить алгоритм, написать программу на псевдокоде и на языке программирования С++, отладить программу на ПК. Написать тест программы. Все результаты предъявить преподавателю. Подготовить ответы на контрольные вопросы.
№ варианта
|
Задачи
|
1
|
Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
|
2
|
Дано натуральное число n (n>9). Найти число единиц в нем.
|
3
|
Дано трехзначное число. Найти сумму его крайних цифр.
|
4
|
Дано четырехзначное число. Найти произведение и сумму второй и последней цифр заданного числа.
|
5
|
Даны два целых числа. Разделить каждое число на целое число d. Найти произведение их остатков от деления.
|
6
|
Даны два целых числа. Переменой d присвоить результат деления первого числа на второе число, а переменой f присвоить результат деления второго числа на первое число. Найти произведение их остатков от деления.
|
7
|
Дано четырехзначное число. Найти сумму и произведение его цифр.
|
8
|
Дано натуральное число n (n>99). Найти число десятков в нем.
|
9
|
Даны два целых числа. Разделить каждое число на целое число d. Найти сумму их целой части от деления.
|
10
|
Дано трехзначное число. Найти число, полученное при перестановке первой и последней цифр заданного числа.
|
11
|
Дано четырехзначное число. Найти сумму и произведение второй и третьей цифр заданного числа.
|
12
|
Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа
|
которой проводятся какие-то вычисления?
Индивидуальные задания к лабораторной работе № 15
"Основы работы в C++ Builder"
Задание № 1
Написать программу расчета стоимость поездки на автомобиле, если известна цена бензина (руб./л), потребление бензина (литр на 100 км) и расстояние (км). Защитить программу.
Технология выполнения работы
Для создания формы использовать компоненты: Label – для подписей; Edit – для ввода и вывода; Button – для инициирования вычислений.
Рекомендуемая компоновка формы:
Поля «Цена бензина», «Потребление бензина» и «Расстояние» должно быть с проверкой вводимых данных для предотвращения ввода нечисловых данных.
Программа должна выдавать сообщение об ошибке, если не заполнено хотя бы одно поле из трех («Цена бензина», «Потребление бензина» и «Расстояние»).
Поле «Стоимость» должно быть только для чтения.
Для защиты программы задания № 1 необходимо:
иметь рабочий вариант программы;
знать основные свойства компонентов label, edit, button и уметь их использовать;
ориентироваться в программном коде и знать все операторы, используемые в программе.
Изучение управляющего элемента CheckBox
Изучать управляющий элемент CheckBox лучше, написав программу, например, расчета стоимости электронного заказа по меню. Список блюд выбирается с помощью компонента CheckBox. При выборе какого-либо блюда автоматически высчитывается стоимость заказа (при установлении флажка – счет увеличивается на стоимость блюда, при снятии – уменьшаться на соответствующее значение). При нажатии на кнопку «Заказать» появляется сообщение об успешном заказе с общим счетом заказа.
Для создания формы используются компоненты: Label – для подписей; CheckBox – для выбора; Edit – для вывода; Button – для инициирования вычислений. Рекомендуемая компоновка формы программы представлена на рисунке 1.
Рисунок 1. Рекомендуемая компоновка формы
Для создания такой формы необходимо выполнить следующие действия.
1. Запустить C++Builder. При запуске автоматически создается новый проект.
2. На панели компонентов выбрать вкладку Standard, выбрать компонент Label и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонент CheckBox , Edit и Button . Расположить три объекта Label, семь объектов CheckBox, один объект Edit и один объект Button на форму как показано на рисунке 1.
3. Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. Вместо подписи Form1 ввести «Меню».
Рисунок 2. Свойство формы Caption (подпись)
4. Изменить подписи объектов Label1 - Label3 в соответствии с рисунком 2. Для этого выбрать каждый объект Label и в окне свойств объекта во вкладке Properties изменить значение свойства Caption.
5. Изменить подписи объектов CheckBox1 - CheckBox7. Название блюд можно придумать самим. Для изменения подписи объекта CheckBox выбрать каждый объект CheckBox и в окне свойств объекта во вкладке Properties изменить значение свойства Caption.
6. Выбрать объект Edit1 и в окне свойств объекта во вкладке Properties присвоить свойству Text значение «0» (ноль).
7. Поскольку объект Edit1 используется для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойство ReadOnly на значение true (то есть сделать объект Edit4 только для чтения).
8. Изменить подпись кнопки Button1. Для этого выбрать объект Button1 и в окне свойств объекта во вкладке Properties изменить значение свойства Caption на «Заказать».
9. Изначально ни одно блюдо не выбрано и общая стоимость заказа (счет) равна нулю. Для расчета общей стоимости заказа необходимо объявить глобальную переменную и задать ей значение 0 (ноль). Для этого нужно выделить форму и в окне свойств объекта во вкладке Events (События) дважды щелкнуть левой кнопкой мыши напротив события OnCreate. Перед заготовкой функции объявим переменную schet, а в теле функции приравняем переменную schet к нулю.
10. Каждое блюдо из меню должно иметь свою стоимость. Допустим, цены на блюда будут следующие:
Фаршированная форель 369 руб.,
Телятина под соусом 349 руб.,
Крем-суп из шампиньонов 189 руб.,
Рулет со шпинатом 179 руб.,
Пицца гавайская 299 руб.,
Ванильный коктейль 149 руб.,
Напиток грейпфрут 199 руб.
Стоимость каждого блюда должна быть записана в массив price, который должен выглядеть следующим образом:
Стоимость заказа должна состоять из стоимости выбранных блюд. Например, при выборе фаршированной форели (нулевой элемент в массиве) стоимость заказа должна увеличиться на 369 руб., то есть sсhet=schet+price[0];
Если отказываются от форели (то есть снимается галочка), то стоимость заказа должна уменьшится на 369 руб., то есть schet=schet-price[0]; Точно также должны обрабатываться остальные блюда.
11. Для создания функции-обработчика нажатий для объекта CheckBox1 – необходимо дважды щелкнуть по нему левой кнопкой мыши. В появившейся заготовке функции необходимо написать программный код, который будет выполнятся при установке или снятию флажка в объекте CheckBox1.
Пример кода для объекта CheckBox1 (Фаршированная форель 369 руб.) приведен ниже:
Так же создаются и функции-обработчики для остальных пунктов меню (объектов CheckBox2 - CheckBox7).
12. При нажатии на кнопку «Заказать» должно появиться сообщение о принятии заказа. В сообщении должна быть указана общая стоимость заказа.
Для обработки нажатия кнопки необходимо дважды щелкнуть левой кнопкой мыши на объекте Button1 и в появившейся заготовке функции написать программный код:
Сохраняется проект нажатием кнопки на панели инструментов. Далее проводится отладка и тестирование программы.
Изучение управляющего элемента RadioGroup
Изучать управляющий элемент RadioGroup лучше, написав программу, например, для расчета сопротивления резисторов, соединенных параллельно или последовательно.
Для создания формы используются компоненты: Label – для подписей; Edit – для ввода и вывода; RadioGroup – для выбора одного из перечисленных вариантов; Button – для инициирования вычислений. Рекомендуемая компоновка формы программы представлена на рисунке 3.
Рисунок 3. Рекомендуемая компоновка формы
Для создания такой формы необходимо выполнить следующие действия.
1. Запустить C++ Builder. При запуске автоматически создается новый проект. Для создания нового проекта, в случае если он не создался автоматически или вы его закрыли, выполнить команду меню File / New /Application.
2. Сохранить проект в свою рабочую папку, выполнив команду меню File / Save Project As. Будет сохранено несколько файлов проекта.
3. На панели компонентов выбрать вкладку Standard, выбрать компонент Label и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонент Edit , Button и RadioGroup . Расположить три объекта Label, три объекта Edit, один объект Button и один объект RadioGroup на форму как показано на рисунке 3. При создании объекта RadioGroup1, он не содержит ни одного варианта выбора и по умолчанию выглядит как показано на рисунке 4.
Рисунок 4. Внешний вид объекта RadioGroup1 без настроек
4. Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. Вместо подписи Form1 ввести «Сопротивление» (рис. 5).
Рисунок 5. Свойство формы Caption (подпись)
5. Изменить подписи объектов Label1- Label3 в соответствии с рисунком 3. Для этого выбрать каждый объект Label и в окне свойств объекта во вкладке Properties изменить значение свойства Caption.
6. Убрать текст из объектов Edit1 – Edit3 (например, в поле Edit1 написано «Edit1»). Для этого выбрать каждый объект Edit и в окне свойств объекта во вкладке Properties очистить значение свойства Text.
7. Поскольку объект Edit3 используется для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойство ReadOnly на значение true (то есть сделать объект Edit4 только для чтения).
8. Настроить объект RadioGroup1. Этот объект будет использоваться как переключатель способов соединения резисторов (параллельное и последовательное). Задать подпись объекта можно, изменив значение свойства Caption на «Соединение». Для того чтобы создать список вариантов для переключения необходимо найти в списке свойств объекта RadioGroup1 свойство Items и щелкнуть левой кнопкой мыши на кнопке с тремя точками (рисунок 6). В появившемся окне (рис. 7) перечислить возможные варианты подключения.
Рисунок 6. Список свойств объекта RadioGroup1
Рисунок 7. Окно редактора списка вариантов
Для программного выбора одного из вариантов в объекте RadioGroup используется свойство ItemIndex. Это же свойство позволяет отслеживать выбранный вариант. Так для выбора первого варианта (параллельного соединения) нужно задать значение свойства ItemIndex = 0 (рис. 6).
В результате проделанных операций объект RadioGroup1 будет содержать два пункта, первый будет выбран (рис. 8).
Рисунок 8. Настроенный объект RadioGroup
9. Изменить подпись кнопки Button1. Для этого выбрать объект Button1 и в окне свойств объекта во вкладке Properties изменить значение свойства Caption на «Расчет».
10. Объекты Edit1 и Edit2 предназначены для ввода числовых данных, необходимых для расчета сопротивления. Для того чтобы пользователь не смог ввести буквы или другие символы, которые могу вызвать ошибку при расчетах, необходимо сделать обработчик нажатий клавиш на клавиатуре. Для этого необходимо выбрать объект Edit1 и в окне свойств объекта открыть вкладку Events («События»). В появившемся списке найти событие OnKeyPress («по нажатию клавиши») и сделать двойной щелчок левой кнопкой мыши по пустому полю. В появившейся заготовке функции написать код обработки нажатия клавиш:
Этим самым все клавиши стали отфильтрованы на клавиатуре, кроме цифровых от 0 до 9, запятой и BackSpase (код клавиши 8). Теперь нажатие ненужных клавиш будет игнорироваться.
Для объектов Edit2 на обработку события OnKeyPress следует подключить уже созданную функцию Edit1KeyPress. Для этого необходимо выбрать эту функцию в выпадающем списке события OnKeyPress
11. Сопротивление для последовательного соединения вычисляется по формуле R=R1+R2; а для параллельного R=(R1*R2)/(R1+R2).
Для реализации расчета в программе необходимо добавить обработчик нажатия кнопки Button1. Для этого надо дважды щелкнуть по объекту Button1 и в появившейся заготовке функции написать программный код расчета общего сопротивления.
Далее проект сохраняется, проводится отладка и тестирование программы.
|
|