Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы.docx
Скачиваний:
336
Добавлен:
22.03.2016
Размер:
1.03 Mб
Скачать

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 – инструкции так называемой “лесенкой”.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]