- •Лабораторный практикум по информатике
- •Часть 2
- •Содержание
- •Введение
- •Методические рекомендации по подготовке к лабораторным работам
- •Варианты задания
- •Технология выполнения работы
- •Разработка приложения
- •Создание интерфейса приложения
- •Определение функциональности приложения.
- •Конструирование формы
- •Множественный выбор
- •Конструирование формы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Составление линейных алгоритмов
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Технология выполнения работы
- •Изучение управляющего элемента CheckBox
- •Изучение управляющего элемента RadioGroup
- •Технология выполнения работы
- •Изучение управляющего элемента ComboBox
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Изучение управляющего элемента StringGrid
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Метод сортировки выбором
- •Метод сортировки включением
- •Пример использования генератора случайных чисел
- •Пример заполнения массива и вывода его в ListBox1
- •Измерение времени выполнения алгоритма
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Поиск элемента массива на основе линейного просмотра
- •Метод двоичного поиска
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Варианты задания
- •Технология выполнения работы
- •Задание
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты задания
- •Технология выполнения работы
- •Обращение к программе-функции Mathcad
- •Задание
- •Варианты задания
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Библиографический список
Технология выполнения работы
Рисунок 13 – Рекомендуемая компоновка формы
Угол может быть введен как в радианах (по умолчанию), так и в градусах. Для указания того, что введенный угол в градусах на форму поместить переключатель CheckBox (рис. 13).
Выбор тригонометрической функции должен осуществляться с помощью объекта RadioGroup.
По умолчанию программа должна выдавать результат, округленный до четвертого знака. Для возможности получения неокругленного результата использовать переключатель CheckBox.
Поле «Угол X=» сделать с проверкой вводимых данных для исключения ввода нечисловых данных.
Программа должна выдавать сообщение об ошибке, если поле «Угол X=» не заполнено.
Поле «Y=» должно быть только для чтения;
Изучение управляющего элемента ComboBox
Изучать управляющий элемент ComboBoxпроще, написав программу, например, для перевода единиц измерения длины.
Рекомендуемая компоновка формы программы представлена на рисунке 14.
Рисунок 14 – Рекомендуемая компоновка формы
Для создания формы использованы компоненты: Label– для подписей;
Edit– для ввода и вывода;ComboBox– для выбора единиц измерения исходной и результирующей величины;Button– для инициирования вычислений.
Для создания такой формы необходимо выполнить следующие действия.
Запустить C++ Builder. При запуске автоматически создается новый проект. Для создания нового проекта, в случае если он не создался автоматически или вы его закрыли, выполнить команду меню File / New /Application.
Сохранить проект в свою рабочую папку, выполнив команду меню File / Save Project As. Будет сохранено несколько файлов проекта.
На панели компонентов выбрать вкладку Standard, выбрать компонентLabel и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонентEdit ,Button иComboBox . Расположить три объектаLabel, два объектаEdit, один объектButtonи два объектаComboBoxна форму как показано на рисунке 14.
Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Propertiesизменить значение свойстваCaption(рис. 15). Вместо подписиForm1ввести «Конвертер».
Рисунок 15 – Свойство формы Caption (подпись)
Изменить подписи объектов Label1-Label3в соответствии с рисунком 12. Для этого выбрать каждый объектLabelи в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption.
Убрать текст из объектов Edit1и Edit2. Для этого выбрать каждый объектEditи в окне свойств объекта во вкладкеPropertiesочистить значение свойстваText.
Поскольку объект Edit2будет использоваться для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойствоReadOnlyна значение true (то есть сделать объектEdit2только для чтения).
Настроить объекты ComboBox1иComboBox2. Эти объекты представляют собой выпадающие списки и будут использоваться для выбора единиц измерения длины. Для заполнения списков необходимо в окне свойств объекта во вкладкеPropertiesнайти свойствоItemsи щелкнуть левой кнопкой мыши на кнопке с тремя точками (рисунок 16).
Рисунок 16 – Список свойств объекта ComboBox1
В появившемся окне (рис. 17) перечислить единицы измерения.
Рисунок 17 – Окно редактора списка
Для программного выбора варианта из списка в объекте ComboBoxиспользуется свойствоItemIndex. Это же свойство позволяет отслеживать выбранный вариант. Так для выбора первого варианта (единица измерения мм) нужно задать значение свойстваItemIndex= 0 (рис. 16).
Для задания стиля объекта используется свойство Style. По умолчанию значением свойстваStyleявляетсяcsDropDown. При таком стиле пользователь может не только выбирать значения из списка, но и осуществлять ввод в окно объектаComboBox. Поскольку программа будет работать только с заранее заданным набором единиц измерения необходимо запретить редактирование полейComboBox1иComboBox2. Для этого нужно поменять значение свойстваStyleнаcsDropDownList. ОбъектComboBoxсо значением свойстваStyleравнымcsDropDownListне допускает редактирования и, значит, пользователь просто не сможет указать неправильные данные.
Изменить подпись кнопки Button1. Для этого выбрать объектButton1и в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption на «Расчет».
Объект Edit1предназначен для ввода числовых данных, предназначенных для перевода в другие единицы измерения. Для того чтобы пользователь не смог ввести буквы или другие символы, которые могу вызвать ошибку при расчетах, необходимо сделать обработчик нажатий клавиш на клавиатуре. Для этого необходимо выбрать объектEdit1и в окне свойств объекта открыть вкладкуEvents(«События»). В появившемся списке найти событиеOnKeyPress(«по нажатию клавиши») и сделать двойной щелчок левой кнопкой мыши по пустому полю. В появившейся заготовке функции написать код обработки нажатия клавиш:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key>='0' && Key<='9')||(Key==',')||(Key==(char)8)) {}
else Key=0;
}
Этим самым все клавиши стали отфильтрованы на клавиатуре кроме цифровых от 0 до 9, запятой и BackSpase (код клавиши 8). Теперь нажатие ненужных клавиш будет игнорироваться.
Для перевода длины из одной единицы измерения в другую нужно перевести величину в базовую единицу измерения (например, метры), а потом уже в требуемую. Например, необходимо перевести 5 миль в ярды. Переводим мили в метры: 5миль=8045м, а затем из метров переводим в ярды: 8045м=8801,969365426696 ярдов.
Таблица соотношений единиц измерений длин с метрами:
1мм=0,001м |
1км=1000м |
1фут=0,305м |
1см=0,01м |
1миля=1609м |
1ярд=0,914м |
Для реализации расчета в программе необходимо добавить обработчик нажатия кнопки Button1. Для этого дважды щелкнуть по объектуButton1и в появившейся заготовке функции написать программный код перевода единиц измерения.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double v1,v2; //объявление переменных вещественного типа
int i1,i2; //объявление переменных целого типа
if (Edit1->Text=="") //проверка если не заполнено поле Edit1 то…
{
ShowMessage("Введите исходную величину"); //выдается сообщение
return; //выход из функции
}
Form1->Edit2->Clear(); //очистка поля Edit2
//в переменную i1 помещаем индекс выбранной строки в объекте ComboBox1
i1=Form1->ComboBox1->ItemIndex;
//в переменную i2 помещаем индекс выбранной строки в объекте ComboBox2
i2=Form1->ComboBox2->ItemIndex;
//в переменную v1 помещаем исходное значение длины
v1=Form1->Edit1->Text.ToDouble();
//перевод из исходной единицы измерения в метры
switch (i1) // оператор выбора из множества вариантов
// проверяется значение переменной i1
{
case 0: v1=v1/1000.0; break; //если i1=0, то v1=v1/1000.0;
case 1: v1=v1/100.0; break; //если i1=1, то ...
case 2: v1=v1; break;
case 3: v1=v1*1000; break;
case 4: v1=v1*1609; break;
case 5: v1=v1*0.305; break;
case 6: v1=v1*0.914; break;
}
//перевод из метров в требуемую единицу измерения
switch (i2) // оператор выбора из множества вариантов
// проверяется значение переменной i2
{
case 0: v2=v1*1000; break; //если i2=0, то v2=v1*1000;
case 1: v2=v1*100; break;
case 2: v2=v1; break;
case 3: v2=v1/1000.0; break;
case 4: v2=v1/1609.0; break;
case 5: v2=v1/0.305; break;
case 6: v2=v1/0.914; break;
}
// записываем переведенное значение в поле объекта Edit2
Form1->Edit2->Text=FloatToStr(v2);
}
Не забыть сохранить проект нажатием кнопки на панели инструментов, провести отладку и тестирование программы
Задание 3.
Написать программу расчета количества секунд между двумя моментами времени. Защитить программу.