
- •ГЛАВА 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. Обработка текстовых файлов
- •ЛИТЕРАТУРА
- •ТЕСТЫ
- •Тесты по основам алгоритмизации
- •Тесты по программированию на С++
- •Учебное издание
29
3.ЛИНЕЙНАЯ ПРОГРАММА
3.1.Оформление линейной программы
Программа на С++ состоит из одной или более функций. Причем, начинается выполнение программы с функции main(), которая, по сути, есть главный элемент программы. Каждая функция, вообще говоря, должна возвращать какой-либо результат. Поэтому и функция main() должна заканчивать командой возвратаreturn 0;, показывающей, что программа завершена. Причем у функции (как и у переменных) указывается тип. Функция main() имеет тип int. Собственно алгоритм (исполняемая часть программы) заключается в фигурные скобки {} после выражения int main(). Каждая фраза алгоритма заканчивается точкой с запятой ;.
Обычно перед функцией main дают так называемые директивы препроцессору. Такие директивы начинаются со знака# (произносится «хаш»). Например, директива
# include <iostream>
подключает встроенные вC++ функции, которые обеспечивают ввод/вывод.
Для вывода на экран служит команда
cout << (читается «си-аут»). В ней для вывода текстовых сообщений помещают их в кавычки. Также там можно разместить управляющие последовательности для разделения строк вывода:
«\n» – дает команду начать вывод с новой строки
‘ ‘ (пробел в одинарных кавычках) – разделяет пробелом выводимые знаки или строки. Иначе – весь вывод сливается в одну строку.
«\t» – табуляция;
Для ввода в программу(в процессе ее выполнения) служит команда:
cin>> (читается «си-ин»).
Вней указывается переменная, которой и будет присвоено значение, введенное с экрана.
Впрограмме можно размещать комментарии, которым предшествует // (двойная дробная черта).
Важной в начале исходного текста программы является директива объявления пространства имен:
using namespace std;
Эффект от ее применения состоит в том, что вы можете свободно применять, в частности, вышеупомянутые команды ввода-выво-

30
да cout и cin. И процессор при этом будет четко понимать, что это команды, а не переменные.
Изученных сведений достаточно для составления простой программы на C++. По аналогии со структурным языком назовем такую программу, исполняющуюся прямолинейно от начала и до конца – линейной программой. Рассмотрим простой пример.
Пример 3-1. Вычислить периметр и площадь прямоугольника, длина которого равна a, а ширина равна b.
a = 3 м, b = 4 м. Ответ: периметр = 14 м, площадь = 12 м2
Приведем сначала блок-схему алгоритма для решения данной задачи.
//вычисление периметра и площади прямоугольника
#include <iostream> using namespace std; int main()
{ float a,b,p,s;
cout<<"Vvedi storony pryamoug" <<"\n"; cin>>a>>b;
p=2*(a+b); s=a*b; cout<<"Perimetr="<<p<<" Ploshad'="<<s; cout<<"\n";
return 0;
}
Результат работы данного примера приведен на рис. 8.7 и 8.8.
Замечание. Одна из проблем при программировании вVisual C++ 2005 (при создании консольного приложения) в том, что в консольном «черном» окне не отображаются сообщения, написанные по-русски. Это связано с тем, что в Windows (где мы пишем текст программы) и в MS DOS (где отображается ее результат) используется разная кодировка русских букв. Чтобы справится с этой проблемой, нужно использовать специальную функцию AnsiToOem, которая преобразует текст из одной кодировки в другую, причем, надо подключить дополнительный заголовочный файл windows.h.
Как именно это делается, проиллюстрируем на том же примере 3.1 (нужные дополнения выделены жирным шрифтом).
//вычисление периметра и площади прямоугольника
#include <iostream>
#include <windows.h>