logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

158 Глава 2

  1. Программист завершает процесс нисходящей разработки с пошаго­ вой детализацией, когда алгоритм на псевдокоде настолько детали­ зирован, чтобы его псевдокод можно было бы преобразовать в про­ грамму на С++. Реализованная программа на С++ окажется в этом случае простой и наглядной.

  2. Опыт показывает, что наиболее трудной частью решения задач на компьютерах является разработка алгоритма решения. После того, как корректный алгоритм получен, процесс создания на его основе работающей программы на С++ продвигается успешно.

  3. Многие опытные программисты пишут программы, не используя такой инструмент разработки, как псевдокод. Эти программисты полагают, что их конечная цель — решение задачи на компьютере и что написание псевдокода только задержит достижение конечного результата. Это может быть иногда оправдано для простых и хорошо знакомых задач, но может приводить к серьезным ошибкам в боль­ ших и сложных проектах.

  4. Имеется некоторое противоречие между стремлением к технике вы­ сококачественного программирования и стремлением к наилучшей эффективности программного обеспечения. Часто достижение одной из этих целей достигается за счет другой.

Упражнения для самопроверки

Упражнения с 2.1 по 2.10 соответствуют разделам 2.1—2.12. Упражнения с 2.11 по 2.13 соответствуют разделам 2.13—2.21.

2.1. Заполнить пробелы в следующих утверждениях:

  1. Все программы можно писать в терминах трех типов управляю­ щих структур: , и .

  2. Структура выбора используется для выполнения одного

действия, если условие истинно, и другого, если условие ложно.

  1. Повторение ряда операторов заданное число раз называется повторением.

  2. Когда заранее не известно, сколько раз должна быть повторена группа операторов, можно использовать для оконча­ ния повторения.

  1. Напишите четыре различных оператора С++, которые прибавляли бы 1 к целой переменной x.

  1. Напишите операторы С++, выполняющие следующие действия:

  1. Присваивание суммы x и у переменной z и увеличение значения x на 1 после этого вычисления.

  2. Проверку, больше ли значение переменной count числа 10. Если больше, то печать текста: <<count больше, чем 10».

  3. Уменьшение переменной x на 1 и затем ее вычитание из пере­ менной total.

  4. Вычисление остатка от деления q на divisor и присваивание результата переменной q. Запишите два различных варианта такого оператора.

Управляющие структуры 159

2.4. Напишите операторы С++, решающие следующие задачи:

  1. Объявление переменных sum и x типа int.

  2. Задание начального значения 1 переменной x.

  3. Задание начального значения 0 переменной sum.

  4. Сложение переменных x и sum и присваивание результата пере­ менной sum.

  5. Печать «Сумма равна » и затем значение переменной sum.

  1. Объедините операторы, которые вы написали в упражнении 2.4, в программу, которая вычисляла бы и печатала сумму целых чисел от 1 до 10. Используйте структуру while для организации цикла, включающего операторы вычисления и приращения. Цикл должен завершаться, когда значение x становится равным 11.

  2. Определите значения каждой переменной после осуществления вы­ числений. Предполагайте, что когда каждый оператор начинает вы­ полняться, все переменные имеют целое значение 5.

  1. product *= x++;

  2. quotient /= ++x;

2.7. Напишите по одному оператору С++, выполняющему следующие действия:

  1. Ввод целой переменной x с помощью cin и ».

  2. Ввод целой переменной у с помощью cin и ».

  3. Задание начального значения 1 целой переменной i.

  4. Задание начального значения 1 целой переменной power.

  5. Умножение переменной power на x и присваивание полученного результата переменной power.

  6. Увеличение переменной у на 1.

  7. Проверка, меньше или равно значение у величины x. h) Вывод целой переменной power с помощью cout и «.

  1. Используя операторы упражнения 2.7 напишите программу на С++, которая рассчитывала бы x в степени у. Программа должна вклю­ чать управляющую структуру повторения while.

  2. Найдите и исправьте ошибки в следующих операторах:

a) while (с <= 5) {

product *= с; ++с;

  1. cin « value;

  2. if (gender == 1)

cout « "Женщина" « endl; else;

cout « "Мужчина" « endl;

2.10. Чем ошибочна следующая структура повторения while:

while (z >= 0) sum += z;