методичка. метода по ООП для практики. Лабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6
Скачать 1.1 Mb.
|
Лабораторная работа №2. Реализация разветвляющихся алгоритмовЦель работы: изучить операции сравнения, логические операции, операторы передачи управления if, switch, break, научиться пользоваться простейшими компонентами организации переключений (СheckBox, RadioGroup). Написать и отладить программу с разветвлениями. 2.1. Общие теоретические сведенияОператор условной передачи управления ifДля выбора одной из ветвей вычислений применяется оператор условного перехода: if (выражение) оператор 1; else оператор 2; вычисляется выражение, и если его значение не равно 0 (истинно), то выполняется оператор 1, иначе – оператор 2, например: if(x>y) max = x; else max = y; Если операторы 1, 2 содержат более одного оператора, то они заключаются в фигурные скобки { }, т.е. применяется блок. Конструкция else… может отсутствовать и такую форму называют сокращенной, тогда в случае ложности условия управление передается на следующий за if оператор. Если операторы 1, 2 в свою очередь являются операторами if, то такой оператор называют вложенным, при этом ключевое слово else принадлежит ближайшему предшествующему if. Например, найти наибольшее значение из трех чисел x, y, z: if (x>y) if (x>z) max=x; else max=z; else if(y>z) max=y; else max=z; Операции сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), != (не равно), = = (равно). Пары символов разделять нельзя. Операции сравнения бинарные, их общий вид: Операнд 1 знак операции Операнд 2 Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу. Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета: ! (отрицание или логическое НЕ – унарная операция), && (конъюнкция или логическое И), || (дизъюнкция или логическое ИЛИ). Например: (0 ((!x)&&(y>0)||((z==1)&&(k>0)) Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен. Тернарная (условная) операция ?: Ее общая форма: Операнд 1 ? Операнд 2 : Операнд 3 Если значение операнда 1 истинно (не равно 0), то результатом операции является операнд 2, иначе – операнд 3. Например, найти наибольшее из двух чисел: max = a>b ? a : b; Оператор выбора switchОбщая форма оператора выбора (переключателя): switch(выражение) { case const_1: операторы; break; … case const_N: операторы; break; default: операторы; } Вычисляется выражение и проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этого case. Значениями const_1,…, const_N могут быть только целые или символьные константы. Конструкция default выполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Оператор break выполняет досрочный выход из switch (после выполнения ветви case все остальные будут опущены). Если оператор break в case не записан, то будут выполняться операторы следующих ветвей case до появления оператора break, либо до завершения оператора switch. Например: switсh(i) { case 1: f=pow(x,2); break; case 2: f=fabs(x); break; case 3: f=sqrt(x); break; default: printf(“Ошибка!”); exit(1); } f=f+5; 2.2. Создание оконного приложенияПри создании оконного приложения для организации разветвлений используются компоненты в виде кнопок-переключателей. Состояние такой кнопки (включено/выключено) визуально отражается на форме. На форме (рис. 2.1) представлены кнопки-переключатели двух типов TCheckBox и TRadioGroup. Компонента CheckBox создает кнопку независимого переключателя, с помощью которой Пользователь может указать свое решение типа да/нет. В программе состояние кнопки связано со значением булевой переменной, которая проверяется с помощью оператора if. Компонента Radiogroup создает группу кнопок – зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки отключаются. В программу передается номер включенной кнопки (0,1,2,…), который анализируется с помощью оператора switсh. В языке C++ используются переменные типа bool, которые могут принимать только два значения – true и false (истина – 1, ложь – 0). |