- •ГЛАВА 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. Обработка текстовых файлов
- •ЛИТЕРАТУРА
- •ТЕСТЫ
- •Тесты по основам алгоритмизации
- •Тесты по программированию на С++
- •Учебное издание
64
8.22. Составить программу формирования двумерного массива из предложенного одномерного так, чтобы первая строка содержала четные по номеру элементы исходного массива, а вторая – нечетные. Предусмотреть случай нечетного количества элементов массива.
8.23. Составить программу формирования двумерного массива из предложенного одномерного, разделив его на два столбца.
8.24. Составить программу формирования двумерного массива из предложенного одномерного, разделив его на две строки.
8.25. Дан двумерный числовой массив. Составить программу обмена местами заданных двух его строк.
9.ФУНКЦИИ
9.1.Понятие о пользовательских функциях
ВС++ можно создавать пользовательские функции. Собственно говоря, мы с самого начала создавали функции: main() – не что иное, как главная функция пользователя.
Вбиблиотеке С++ имеется немало встроенных функций. Они размещены в отдельных заголовочных файлах(тех самых, которые подключаются с помощью #include). Заголовочный файл имеет имя
ирасширение .h Мы уже использовали заголовочные файлы: iostream.h – содержит функции для ввода-вывода math.h – содержит математические функции.
Для создания функции пользователя(и ее последующего ис-
полнения) необходимо ее описать: 1) задать прототип функции :
тип имя_функции (параметры);
это делается там же, где описываются переменные, т.е. до заголовка main(), обратим внимание, что в конце записи прототипа точка с запятой ставится обязательно;
2) собственно описать функцию
тип имя_функции(параметры) { тело функции }
Такое описание делается вне тела другой функции, в том числе и функции main() (как правило, за закрывающей фигурной скобкой главной функции).
65
В конце описания (после фигурной скобки) точка с запятой не ставится. Функция может иметь только одно возвращаемое значение, которое определяется служебным словомreturn (возвращаемое_значение), которое размещается в конце функции(перед закрывающей фигурной скобкой).
Внутри функции могут быть описаны свои локальные переменные. Пример 9.1. Вычислить площадь пяти-
угольника, у которого известны длины сторон и двух диагоналей (см. рис. 8.20).
Рис. 8.20. Пятиугольник со сторонами a, b, c, d, f и диагоналями h,g.
Очевидно, что площадь такого пятиугольника– сумма площадей треугольников, для каждого из которых известны длины сторон. Для вычисления площади каждого треугольника(условно обозначим его стороны за x,y,z) применим формулу Герона:
S = p( p - x)( p - y)( p - z) , |
где p =(x + y + z) 2 . |
// площадь 5-угольника через 3-угольники
#include <iostream> #include <cmath> #include <windows.h> using namespace std;
float streug(float x,float y,float z); int main()
{float a,b,c,d,f,g,h,s1,s2,s3,s5; char str[256];