- •2. Структура и основные элементы программы
- •3.Общее понятие типов данных
- •4. Переменные и константы
- •5.Основные типы данных
- •6. Спецификаторы типов данных
- •7. Определение переменных и констант в программе
- •8. Инициализация переменных различных типов
- •9.Целочисленные типы данных
- •10. Вещественные типы данных
- •11. Особенности представления вещественных типов данных
- •12.Логический тип данных
- •13. Символьный тип данных
- •14. Управляющие последовательности
- •15. Операции и выражения
- •16. Операция присваивания, составные операции присваивания
- •17. Понятие l-значения
- •18. Преобразование типов данных
- •19. Арифметические операции
- •20. Операции инкремента и декремента, их разновидности
- •21. Операции отношения
- •22. Логические операции
- •23. Побитовые операции сдвига
- •24. Побитовые логические операции
- •25. Примеры применения побитовых операций
- •26. Условная операция и ее использование
- •27. Определение объема памяти, необходимого для размещения объектов
- •28. Понятие приоритета операций и его влияние на результаты вычислений
- •31.Флаги форматирования потоков ввода-вывода
- •32. Форматирование ввода-вывода с помощью манипуляторов
- •33.Форматирование ввода-вывода с помощью функций потоков ввода-вывода
- •34. Управление шириной поля вывода и выравниванием данных при выводе
- •35. Управление форматом вывода вещественных значений
- •36. Основные понятия структурного программирования
- •37. Базовый набор управляющих структур
- •39.Условная инструкция (if)
- •40. Инструкция множественного выбора (switch)
- •42. Цикл с постусловием (do while)
- •43. Итерационный цикл (for)
- •46. Инструкция перехода goto
- •47. Понятие рекуррентных вычислений, примеры
- •48. Понятие инварианта цикла
- •49. Понятие и определение массива
- •52. Ввод элементов массивов с клавиатуры
- •53. Декларативная и программная инициализация массивов
- •54. Копирование массивов
- •55. Нахождение минимальных и максимальных значений в массивах
- •56. Сдвиг элементов массивов
- •57. Перестановка элементов в массивах
- •58. Поиск данных в массивах
- •59. Сортировка данных в массивах
- •60. Вычисление сумм и произведений элементов массивов
- •61. Представление текстовых строк в виде массива символов
- •62. Ввод-вывод символьных строк
- •63. Определение фактической длины строки
- •64. Копирование символьных строк
- •65. Основные функции обработки строк библиотеки cstring
- •66. Массивы текстовых строк (двумерные массивы символов)
- •67. Указатели Понятие указателя
- •Работа с указателями
- •68. Арифметика указателей
- •69. Индексирование указателей
- •70. Ссылки
- •71. Определение функции
- •72. Инструкция return
- •73. Завершение работы функции
- •74. Механизмы передачи данных через параметры функций
- •75. Передача данных по значению
- •76. Передача данных через указатели
- •77. Передача данных по ссылке
- •78. Параметры по умолчанию
- •79. Функции с переменным числом параметров
- •80. Inline функции
- •81. Перегрузка функций
- •82. Рекурсия
- •83. Прототипы функций
34. Управление шириной поля вывода и выравниванием данных при выводе
В пункте 33
35. Управление форматом вывода вещественных значений
В пункте 33
36. Основные понятия структурного программирования
1) программа должна составляться достаточно мелкими шагами, так чтобы реализация каждого шага не вызывала никаких затруднений;
2) сложная задача должна разбиваться на достаточно простые, легко воспринимаемые части, каждая из которых имеет только один вход и один выход;
3) логика программы должна опираться на минимальное число достаточно простых базовых управляющих структур.
Доказана теорема о структурировании (Бем и Джекопини):
Как бы ни была сложна задача, схема алгоритма соответствующей программы всегда может быть представлена с использованием ограниченного набора базовых структур.
37. Базовый набор управляющих структур
f THEN g - последовательность:
IF p THEN f ELSE g – выбор (ветвление):
WHILE p DO f – итерации (цикл с предусловием):
Эти базовые структуры могут соединяться между собой по тем же правилам, образуя более сложные структуры. При этом f и g могут представлять собой очень сложные схемы алгоритмов с одним входом и одним выходом.
Наборов базовых структур может быть несколько. Например, если заменить последний элемент набора на DO f WHILE p - итерации (цикл с постусловием):
то получится еще один набор из трех базовых структур. Эти наборы эквивалентны, т.к. от WHILE p DO f легко перейти к DO f WHILE p и наоборот:
38. Управляющие структуры и инструкции языка C++
Управляющие структуры используются для управления ходом выполнения программы. В языке C++ имеются три категории управляющих инструкций:
инструкции выбора (ветвления):
if - условная инструкция;
switch – инструкция множественного выбора;
итерационные (циклические) инструкции:
while – цикл с предусловием;
do while - цикл с постусловием;
for – итерационный цикл;
инструкции перехода:
break – прекращение выполнения циклических инструкций и инструкции switch;
continue – переход к следующей итерации цикла;
return – прекращение выполнения функции
goto – переход по метке.
39.Условная инструкция (if)
Условная инструкция if позволяет выбрать одно из двух направлений выполнения программы.
Имеются две формы записи этой инструкции:
if (<Выражение>)
<Инструкция 1>;
else
<Инструкция 2>;
И
if (<Выражение>)
<Инструкция>;
Если под термином <Инструкция> понимаются несколько последовательных инструкций, то формат записи будет таким:
if (<Выражение>)
{
<Инструкция 1-1>;
……..
<Инструкция 1-N>;
}
else
Блок инструкций представляет собой последовательность инструкций, каждая из которых заканчивается символом ;. Блок можно рассматривать как одну инструкцию (составную инструкцию).
Термин <Выражение> представляет собой любое выражение C++, значение которого может трактоваться как значение логического типа (bool).
Пример записи:
int K;
cin >> K;
if (K >= 0)
cout << “Вы ввели положительное число.” << endl;
else
cout << “Вы ввели отрицательное число.” << endl;
Здесь в качестве выражения использовано логическое выражение, значение которого равно true или false в зависимости от введенного с клавиатуры значения переменной K.
Еще один пример:
int K;
cin >> K;
if (K) // Здесь использовано арифметическое выражение
cout << “Вы ввели число не равное 0.” << endl;
else
cout << “Вы ввели 0.” << endl;
В этом примере выражение не является логическим, однако его значение может трактоваться как логическое (помним, что любое числовое значение, отличное от 0, соответствует значению true, а числовое значение 0 – логическому значению false). Этот пример можно было бы переписать так (эквивалент предыдущего примера):
int K;
cin >> K;
if (K != 0) // Здесь использовано логическое выражение
cout << “Вы ввели число не равное 0.” << endl;
else
cout << “Вы ввели 0.” << endl;
Способ записи выражения во втором (из последних двух) примере следует считать менее эффективным и с точки зрения написания текста, и с точки зрения использования ресурсов (расхода памяти и быстродействия).
В этом примере используется “укороченная” (без ветви else) форма инструкции if, и в случае, когда переменная Min содержит значение большее, чем переменная Max, выполняется последовательность инструкций (блок), осуществляющих перераспределение значений этих переменных так, что переменная Max будет содержать большее значение, а переменная Min - меньшее.
Выполняемые внутри оператора if инструкции могут быть любыми инструкциями языка C++, в том числе и другими инструкциями if. То есть, другими словами, инструкции if могут вкладываться друг в друга. Количество уровней вложения if – инструкций в языке C++ ограничено 256 уровнями.
Рассмотрим несколько примеров вложений if - инструкций.
При анализе текстов подобных программ используют следующее правило:
Слово else относится к ближайшему сверху слову if, находящемуся в том же блоке инструкций, но еще не связанному ни с каким другим словом else.
Между словами if и else должна находиться хотя бы одна инструкция. Поэтому в первой реализации последнего примера мы вынуждены были использовать так называемую “пустую инструкцию”, которая не имеет никакого изображения и располагается между записью выражения (p) и разделителем.
В программах очень часто используется многоуровневое вложение if – инструкции так называемой “лесенкой”.