Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программирование разветвляющихся алгоритмов

Цель: научиться составлять программы для решения задач, содержащих условия, продолжить освоение работы в системе программирования Borland Delphi.

Теоретические сведения:

Условный оператор используется для выполнения одного из двух возможных вариантов программы.

Формат записи команды ветвления:

if логическое_условие если логическое_условие верно

then оператор_1 то выполняется оператор_1,

else оператор_2; иначе оператор_2;

Перед else точка с запятой не ставится!

Формат полного оператора ветвления: Формат краткого оператора ветвления:
if <логическое выражение> if <логическое выражение>

then <оператор 1> then <оператор>;

else <оператор 2>;

Логическое выражение: Простой формой логического выражения является операция отношения: меньше (<), больше (>), меньше или равно (<=), больше или равно (>=), равно (=), не равно (<>).

Сложные формы логических выражений составляются с использованием логических операций:

Not - логическое отрицание (НЕ), and - логическое умножение (И), or - логическое сложение (ИЛИ), xor - исключающее ИЛИ.

Порядок выполнения работы:

1. Включите компьютер. В своей папке создайте ещё одну папку «Лабораторная работа №2». Запустите среду программирования Borland Delphi с рабочего стола.

2. Переименуйте название формы из Form1 в Главное меню (Инспектор объектов – вкладка Параметры – свойство Caption). Измените размер, цвет формы и значок программы на свой вкус.

3. На форме разместите компонент MainMenu1 с вкладки Стандартные. Щелкните 2 раза по этому элементу, введите в свойстве Caption заголовки пунктов меню «Задачи» и «Выход» и заголовки команд подменю «Магазин» и «Сопротивление», как показано на рисунке.

4. Закройте это окно. Запустите проект.

5. Меню Выход будет отвечать за завершение работы проекта. Обработайте событие OnClick для этой кнопки. Для этого, щелкните по заголовку меню «Выход», наберите текст программы в появившемся окне кода: Form1.Close; // закрытие формы 1

6. Запустите приложение, проверьте работу меню Выход.

Задача 1: Составьте программу, которая позволяет вводить данные о покупке: название товара, количество, цену и сумму денег, внесенную покупателем. Сформировать чек, в котором необходимо отразить общую стоимость покупки, внесенную покупателем сумму денег, а также, если сумма денег равна стоимости покупки, вывести сообщение «Спасибо за покупку!», если сумма денег больше стоимости покупки, вывести сообщение «Возьмите сдачу в размере? рублей!», если сумма денег меньше стоимости покупки, вывести сообщение «С Вас ещё? рублей!». (Вместо знака? должна быть указана конкретная сумма)

7. Добавьте ещё одну форму Файл – Создать – Форма (File è New èForm). Сохраните проект (Save all). Для новой формы создался новый модуль (код Unit 2), который надо сохранить там же, где проект.

Теперь нужно, чтобы по щелчку на подменю Магазин открывалась форма 2. Обработайте событие OnClick для него, т.е. наберите текст программы Form2.ShowModal; // открытие формы 2

Обратите внимание, что в первом модуле появилась строчка uses Unit2; если нет, допишите её сами.

8. Активируйте форму 2, измените её заголовок на Магазин.

9. Разместите на форме компоненты, как показано на рисунке.

10. Обработайте событие OnClickдля кнопки ОПЛАТА. В открывшемся окне кода наберите текст программы.

К1:=StrToInt(Edit6.text); //переменная для количества товара 1

С1:= StrToFloat (Edit11.text); //переменная для цены товара 1

Аналогично введите переменные К2 для количества товара 2 и С2 для его цены, К3 для количества товара 3 и С3 для его цены, К4 для количества товара 4 и С4 для его цены, К5 для количества товара 5 и С5 для его цены.

SUMMA:= StrToFloat(Edit16.text); //переменная для внесенной суммы

STOIMOST:=…………..; // нахождение стоимости покупки

Label 11.caption:=’Стоимость покупки =’+FloatToStr( STOIMOST );

IF STOIMOST= SUMMA THEN Label 12.caption:=’СПАСИБО ЗА ПОКУПКУ!!!’;

IF STOIMOST< SUMMA THEN Label 12.caption:=’ВОЗЬМИТЕ СДАЧУ=’+FloatToStr(SUMMA-STOIMOST)+ +’РУБ’;

IF STOIMOST>SUMMA THEN Label 12.caption:=’С ВАС ЕЩЁ ’+FloatToStr(STOIMOST- SUMMA)+’РУБ’;

// Опишите все переменные в разделе Var.

11. Запустите программу, посмотрите, как она работает. Самостоятельно доработайте программу, если пользователь не ввел информацию в какое-то поле.

Задача 2: Составить программу расчета сопротивления электрической цепи, состоящей из двух сопротивлений. Тип соединения - последовательное или параллельное, пользователь должен выбрать сам. Для этого.

12. Добавьте ещё одну форму. File è New èForm. Сохраните проект (Save all). Для новой формы создался новый модуль (код Unit 3), который надо сохранить там же, где проект.

13. Теперь нужно, чтобы по щелчку на подменю Сопротивление открывалась форма 3. Обработайте событие OnClick для него. Наберите текст программы

Form3.ShowModal; // открытие формы 3

Обратите внимание, что в первом модуле появилась строчка uses Unit3; если нет, допишите её сами.

14. Активируйте форму 3, измените её заголовок на Сопротивление.

15. Разместите на форме следующие компоненты: 2 поля ТEdit для ввода величин сопротивлений (Edit1, Edit2). Для выбора типа соединения разместим 2 TRadioButton с соответствующими надписями (RadioButton1, RadioButton2). Результат будем выводить в TLabel (Label1), а вычисления будем производить при нажатии на кнопку TButton (Button1). Получиться должно примерно следующее è

16. Обработайте событие OnClickдля кнопки Расчет. В открывшемся окне кода наберите текст программы.

var R1,R2,R: Real;
begin
R1:=StrToFloat(Edit1.Text);
R2:=StrToFloat(Edit2.Text);
if RadioButton1.Checked then R:=R1+R2 else R:=(R1*R2)/(R1+R2);
Label1.Caption:='Сопротивление цепи: '+FloatToStr(RoundTo(R,-2))+' Ом';

end;

Комментарии и пояснения:

1) В качестве исходных данных имеются 2 сопротивления - R1 и R2. Результирующее сопротивление - R. Для всех трёх переменных указан вещественный тип данных (Real), т.к. значения сопротивлений могут быть дробными числами.
2) Сначала мы заносим в переменные R1 и R2 числа, введённые в Edit1 и Edit2.
3) Далее мы применяем условный оператор, чтобы узнать, какой из двух TRadioButton выделен. Если выделен первый, то применяем формулу последовательного сопротивления (сумму): R = R1 + R2. Проверять, выделен ли второй, смысла нет, так как их всего 2 - если не выделен первый, значит выделен второй. Для параллельного сопротивления формула следующая: R = (R1 * R2) / (R1 + R2). Таким образом, в зависимости от выбранного типа соединения значение переменной R будет вычислено по соответстующей формуле.
4) Наконец, выполняется вывод результата в Label1. В приведённом коде использована функция RoundTo(). Эта функция округляет вещественное число до указанного знака после запятой. В данном случае округление ведётся до двух цифр. Это сделано для того, чтобы в Label1 не попал весь длинный ряд чисел после запятой, а попали все первые две цифры. Функция RoundTo() описана в модуле Math. Этот модуль необходимо подключить, добавив его имя в uses.

17. Запустите программу, посмотрите, как она работает.

Задачи для самостоятельного выполнения:

1) Составьте программу нахождения корней квадратного уравнения ax2+bx+c=0, если известны a, b и c.

2) Даны координаты двух точек (х1, у1) и (х2, у2). Определить, какая из них, расположена ближе к началу координат.

Отчет по работе:

Оформите в тетради отчет, который должен содержать тему, цель работы, порядок выполнения (только формулировку задачи и программный код её решения), ответы на контрольные вопросы.

Контрольные вопросы:

Перечислите все используемые в работе (с расшифровкой):

Объекты (компоненты); Свойства объектов; События объектов; Методы; Операторы и функции.

Поделиться:





Читайте также:

II. ПРОГРАММИРОВАНИЕ И СТРУКТУРИРОВАНИЕ БЛОК-СХЕМ
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 1 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 2 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 3 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 4 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 5 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 6 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 7 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 8 страница
Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня. 9 страница






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...