
- •ГЛАВА 7. ОСНОВЫ АЛГОРИТМИЗАЦИИ
- •1. ПОНЯТИЕ ОБ АЛГОРИТМЕ
- •2. ОСНОВНЫЕ СТРУКТУРЫ
- •2.1. Структура «следование»
- •2.2. Структура «развилка»
- •2.3. Структура «цикл»
- •3. ОСНОВНЫЕ ТИПЫ АЛГОРИТМОВ
- •3.1. Линейный алгоритм
- •3.2. Разветвленный алгоритм
- •3.3. Циклический алгоритм
- •Практические задания
- •1. Алгоритмы линейной структуры
- •2. Алгоритмы разветвляющейся структуры
- •3. Алгоритмы циклической структуры (цикл «ПОКА»)
- •4. Алгоритмы циклической структуры (цикл «ДО»)
- •ГЛАВА 8. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ VISUAL С++ 2005
- •ВВЕДЕНИЕ
- •1. РАЗРАБОТКА ПРОГРАММЫ
- •2. ПЕРЕМЕННЫЕ
- •3. ЛИНЕЙНАЯ ПРОГРАММА
- •3.1. Оформление линейной программы
- •3.2. Программирование в стандартизованной среде CLR
- •Практические задания
- •Русская система мер
- •4. ПРОГРАММА С ВЕТВЛЕНИЕМ
- •Практические задания
- •5. ЦИКЛ С ПАРАМЕТРОМ
- •6. ЦИКЛ «ПОКА»
- •Практические задания
- •7. ОДНОМЕРНЫЕ МАССИВЫ
- •7.1. Понятие об одномерном массиве
- •7.2. Сортировка в одномерном массиве
- •Практические задания
- •8. ДВУМЕРНЫЕ МАССИВЫ
- •8.1. Понятие о двумерном массиве
- •8.2. Датчик случайных чисел
- •Практические задания
- •9. ФУНКЦИИ
- •9.1. Понятие о пользовательских функциях
- •Рис. 8.20. Пятиугольник со сторонами a, b, c, d, f и диагоналями h,g.
- •9.2. Рекурсия
- •9.3. Вызов функции из функции
- •9.4. Функция типа void и глобальные переменные
- •9.5. Передача в функцию имени функции
- •Практические задания
- •10. СОБСТВЕННАЯ БИБЛИОТЕКА ПРОГРАММИСТА
- •10.1. Перегрузка функций
- •Рис. 8.25. Результат работы программы примера
- •11. ПЕРЕЧИСЛИМЫЙ ТИП
- •11.1. Понятие о перечислимом типе
- •11.2. Множественный выбор
- •12. УКАЗАТЕЛИ
- •12.1. Понятие об указателях
- •12.2. Указатели и функции
- •12.3. Указатели и динамические массивы
- •12.4. Указатели и перегрузка операций
- •13. ОБРАБОТКА СИМВОЛЬНЫХ СТРОК
- •13.1. Символьные переменные
- •13.2. Символьные строки (как массивы символов)
- •13.3. Обработка массивов строк
- •Практические задания
- •14. СТРУКТУРЫ
- •Практические задания
- •15. КЛАССЫ
- •15.1. Понятие класса
- •15.2. Открытые и закрытые члены класса
- •15.3. Конструкторы и деструкторы
- •Практические задания
- •Раздел А
- •Раздел Б
- •16. ФАЙЛЫ
- •16.1. Работа с текстовыми файлами
- •16.2. Работа со структурами в файлах
- •16.3. Работа с классами в файлах
- •Практические задания
- •Раздел А
- •Раздел Б
- •ПРИЛОЖЕНИЯ
- •Приложение 1. Список библиотечных функций
- •Математические функции
- •Строковые функции (для работы с символьными массивами)
- •Приложение 2. План лабораторных работ
- •ГЛАВА 9. ПРИЛОЖЕНИЯ WINDOWS FORMS
- •ВВЕДЕНИЕ
- •1. РАЗРАБОТКА ПРИЛОЖЕНИЯ
- •3. ДИНАМИЧЕСКИЕ ССЫЛКИ НА ОБЪЕКТЫ
- •3.1 Понятие о динамических ссылках.
- •3.2. Программа «Калькулятор»
- •4. ИСПОЛЬЗОВАНИЕ ТАЙМЕРА. КОМПОНЕНТ CHECKBOX
- •4.1 Таймер
- •4.2. Компонент CheckBox
- •5. СПИСКИ ВЫБОРА И ПОЛОСЫ ПРОКРУТКИ. ГРАФИЧЕСКИЕ КОМПОНЕНТЫ В C++Builder
- •5.1. Список выбора ListBox
- •5.2. Полосы прокрутки
- •5.3. Графика
- •6. РАБОТА С ТЕКСТОВЫМИ ФАЙЛАМИ.
- •6.1. Чтение и запись текстового файла
- •ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ
- •Раздел 1. Кнопки, метки и окна редактирования
- •Раздел 2. Радиокнопки
- •Раздел 3. Полосы прокрутки
- •Раздел 4. Обработка текстовых файлов
- •ЛИТЕРАТУРА
- •ТЕСТЫ
- •Тесты по основам алгоритмизации
- •Тесты по программированию на С++
- •Учебное издание

175
float r,c,p,stoim; r=float::Parse(textBox1->Text) ; c=float::Parse(textBox2->Text); p=float::Parse(textBox3->Text); stoim=r/100*p*c;
if (checkBox1->Checked) stoim=stoim*2; label4->Text="Стоимость вашей поездки на дачу \n
составляет:" + (stoim).ToString()+" рублей";
}
5. СПИСКИ ВЫБОРА И ПОЛОСЫ ПРОКРУТКИ. ГРАФИЧЕСКИЕ КОМПОНЕНТЫ В C++Builder
5.1. Список выбора ListBox
Этот компонент находится на вкладкеStandart. Используется для выбора одного или нескольких параметров из списка. Доступ к строкам списка – через свойство Items строкового типа TString, при этом номер строки определяется свойствомItemIndex (счет идет от нуля, т.е. первый элемент списка имеет нулевой индекс).
Пример 5-1. Создать приложение со списком цветов. При выборе каждого из них – в поле Edit появляется имя выбранного цвета и меняется цвет формы на выбранный
(см. рис. 9.15).
Разместим ListBox и TextBox.
Дважды щелкаем на свойстве Items компонента ListBox и вводим список цветов: красный, оранжевый…
Создадим
SelectedIndexChanged |
для |
него: |
Рис. 9.15 |
private: System::Void listBox1_SelectedIndexChanged (System::Object^ sender, System::EventArgs^ e) {textBox1->Text=listBox1->SelectedItem->ToString() ;
|
//Strings[listBox1->SelectedIndex]; |
switch ( listBox1->SelectedIndex ) |
|
{case |
0: this->BackColor=Color::Red; break; |
case |
1: this->BackColor=Color::Orange; break; |

176 |
|
case |
2: this->BackColor=Color::Yellow; break; |
case |
3: this->BackColor=Color::Green; break; |
case |
4: this->BackColor=Color::SkyBlue; break; |
case |
5: this->BackColor=Color::Blue; break; |
case |
6: this->BackColor=Color::Violet; break;} } |
5.2. Полосы прокрутки
Полосы прокрутки vScrollBar (вертикальная полоса прокрутки) и hScrollBar (горизонтальная полоса прокрутки) используются для прокручивания информации в окне. Значение свойства полосы прокрутки Value меняется (по умолчанию) от 0 (Min) до 100 (Max), но может быть изменено пользователем.
Пример 5-2. Создать приложение с двумя полосами прокрутки с выбором чисел от 1 до 10 и вычислением суммы и произведения выбранных таким образом чисел (см. рис. 9.16).
Рис. 9.16
Разместим на форме две полосы: горизонтальную и вертикальную. Зададим у каждой из них Min равным 1, а Max равным 10. Рекомендуется также изменить свойствоLargeChange (сделать равным 1). Разместим также четыре надписиLabel. Создадим для первой полосы событие Scroll:
private: System::Void hScrollBar1_Scroll(System::Object^ sender, System::Windows::Forms::ScrollEventArgs^ e)
{label1->Text=
177
"Первое число: "+(hScrollBar1->Value).ToString();
}
Аналогично создаем функцию событияScroll и для второй полосы прокрутки:
private: System::Void vScrollBar1_Scroll (System::Object^ sender, System::Windows:: Forms::ScrollEventArgs^ e)
{ label2->Text=
«Второе число: «+(vScrollBar1->Value).ToString();
}
И для кнопки «Вычислить» событие Click :
private: System::Void button1_Click(System:: Object^ sender, System::EventArgs^ e)
{ int a,b,s,p; a=hScrollBar1->Value; b=vScrollBar1->Value; s=a+b;
p=a*b;
label3->Text=«Сумма = « + s.ToString(); label4->Text=«Произведение = « + p.ToString();
}
Остается проверить приложение в работе.
5.3. Графика
Для рисования графических объектов на форме служит событие для формы Paint. При использовании этого события обычно следует указать
·включение графического режима командой вида:
e = this->CreateGraphics()
·настроить «карандаш» для рисования Pen (его цвет и толщи-
ну),
·при рисовании закрашенных фигур указывают тип закраски
SolidBrush и ее цвет,
·при выводе текста в это графическое окно настраивают шрифт
ит.п.

178
Для собственно вывода графических объектов служат специальные методы. Например:
· для рисования линии:
e->DrawLine(myPen, 0, 0, 200, 300);
· для рисования эллипса:
e->DrawEllipse(myPen,Rectangle(0,0,200, 300));
· для рисования прямоугольника:
e->DrawRectangle(myPen, Rectangle(0, 0, 200, 300));
· для рисования закрашенного прямоугольника:
e->FillRectangle(myBrush, Rectangle(0, 0, 200, 300));
· для вывода текста на рисунке:
e->DrawString(s,myFont,myBrush, 10, 10);
Здесь myPen – заданный вид карандаша, myBrush – заданный вид , Rectangle – заданный прямоугольник (первые два числа – координаты левой верхней точки прямоугольника на форме, вторые
– это его длина и высота). При выводе текста s – содержит строку текста, myFont – заданный тип шрифта.
Пример 5-3. Нарисовать флаг России и сделать снизу надпись
(см. рис. 9.17).
Рис. 9.17
// ФЛАГ РОССИИ
private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e)
{
Pen^ myPen = gcnew Pen(Color::Black,3);// цвет и толщина пера
SolidBrush^ myBrush =
gcnew SolidBrush(Color::Black); //цвет закраски System::Drawing::Font^ myFont =