- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
148 Глава 3
грамма. Если вы введете еще большие входные значения, это приведет к потере стар- ших десятичных разрядов в переменной factorial, и можно даже получить отрица- тельные значения факториала, как это произошло при вводе числа 22.
В этой ситуации не выдается никаких сообщений об ошибке, поэтому чрезвычайно важно при разработке программы быть уверенным в том, что значения, с которыми будет иметь дело программа, не выйдут за пределы допустимого диапазона для типа данных используе- мых переменных. Вы должны также предусмотреть обработку некорректных входных зна- чений. Ошибки такого рода, происходящие "молча чрезвычайно трудно найти.
Внешний из двух циклов, цикл do-while, управляет завершением программы. До тех пор, пока вы вводите ' у1 или ' Y1 в ответ на запрос о продолжении, програм- ма продолжает вычислять значения факториала. Факториал целых чисел вычис- ляется во вложенном цикле for. Он выполняется, value раз умножая переменную factorial (чье начальное значение равно 1), на последовательные целые числа — от 2 до value.
Вложенные циклы могут выглядеть немного запутанными, поэтому давайте рас- смотрим другой пример. Эта программа генерирует таблицу умножения заданного размера.
Ниже показан вывод этого примера.
Решения
и циклы
Описание полученных результатов
Заголовок таблицы выдается первым оператором вывода программы. Следующий оператор вывода, вставленный в следующий за ним цикл, генерирует заголовки столб- цов. Каждый столбец имеет ширину в пять символов, поэтому значения заголовков отображаются в поле шириной три символа, что указано манипулятором setw (3), за которым идет два пробела. Оператор вывода, предшествующий циклу, выводит четыре пробела и вертикальную линию перед заголовком первого столбца. Затем ниже идет серия символов подчеркивания, отделяющих заголовки от содержимого столбцов.
Вложенный цикл генерирует основное содержимое таблицы. Внешний цикл повто- ряется по разу для каждой строки, поэтому здесь i — номер столбца. Оператор вывода
переходит на новую строку и затем выводит ее заголовок в виде значения i в поле шириной три символа, за которым идет пробел и вертикальная линия. Строка значений генерируется вложенным циклом:
Этот цикл выводит значения i*j, соответствующие произведению текущего значе- ния строки i на номер столбца j, изменяя j от 1 до size. Таким образом, при каждой итерации внешнего цикла внутренний цикл проходит size итераций. Полученные значения размещаются таким же образом, как заголовки столбцов.
Когда завершается внешний цикл, выполняется return для завершения программы.
Программирование на C++/CLI
Все, о чем я говорил в этой главе, в равной мере относится к программам C++/CLI. Для того чтобы просто проиллюстрировать это, мы можем рассмотреть некоторые примеры консольных программ CLR, которые демонстрируют кое-что из того, что вы изучили до сих пор в этой главе. Ниже представлена программа CLR, представля- ющая собой вариацию на тему ЕхЗ_01.