Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamennatsionnye_voprosy_2014-2015 (2).docx
Скачиваний:
14
Добавлен:
10.03.2016
Размер:
299.12 Кб
Скачать

Жизненный цикл ПО. Стадии и этапы

Жизненный цикл ИС - ряд событий, происходящих с системой в процессе ее создания и использования.

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

Жизненный цикл традиционно моделируется в виде некоторого числа последовательных этапов (или стадий, фаз). В настоящее время не выработано общепринятого разбиения жизненного цикла программной системы на этапы. Иногда этап выделяется как отдельный пункт, иногда - входит в качестве составной части в более крупный этап. Могут варьироваться действия, производимые на том или ином этапе. Нет единообразия и в названиях этих этапов.

Традиционно выделяются следующие основные этапы ЖЦ ПО:

  • анализ требований,

  • проектирование,

  • кодирование (программирование),

  • тестирование и отладка,

  • эксплуатация и сопровождение.

Жизненный цикл ПО. Каскадная модель

каскадная модель (70-80г.г.) ≈ предполагает переход на следующий этап после полного окончания работ по предыдущему этапу,

Основным достижением каскадной модели является завершенность стадий. Это дает возможность планирования затрат и сроков. Кроме того, формируется проектная документация, обладающая полнотой и согласованностью.

Каскадная модель применима к небольшим программным проектам, с четко поставленными и не изменяемыми требованиями. Реальный процесс может выявить неудачи на любой стадии, что приводит к откату на одну из предыдущих стадий. Модель такого производства ПО – каскадно-возвратная

  1. Жизненный цикл ПО. Поэтапная модель с промежуточным контролем

поэтапная модель с промежуточным контролем (80-85г.г.) ≈ итерационная модель разработки ПО с циклами обратной связи между этапами. Преимущество такой модели заключается в том, что межэтапные корректировки обеспечивают меньшую трудоемкость по сравнению с каскадной моделью; однако, время жизни каждого из этапов растягивается на весь период разработки,

  1. Жизненный цикл ПО. Спиральная модель

спиральная модель (86-90г.г.) делает упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапной модели создания фрагмента или версии программного изделия, на нем уточняются цели и характеристики проекта, определяется его качество, планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.

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

Преимущества спиральной модели:

  1. накопление и повторное использование программных средств, моделей и прототипов,

  2. ориентация на развитие и модификацию ПО в процессе его проектирования,

Недостатками этой модели являются:

  1. трудность в определении момента перехода на следующий этап,

  2. трудность планирования затрат и времени завершения работы,

  3. возможная неполнота, несогласованность, незавершенность документации.

  1. Основные этапы решения задач

Целью программирования является описание процессов обработки данных (в дальнейшем  просто процессов).

Данные (data)  это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе, а информация (information)  это смысл, который придается данным при их представлении.

Обработка данных (data processing)  это выполнение систематической последовательности действий с данными. Данные представляются и хранятся на носителях данных.

Совокупность носителей данных, используемых при какой-либо обработке данных называется информационной средой (data medium).

Набор данных, содержащихся в какой-либо момент в информационной среде - состояние информационной среды.

Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.

Описать процесс  значит определить последовательность состояний информационной среды. Чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализованным.

  1. Критерии качества ПО

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

Качество – объективная характеристика товара (продукции, услуги), показывающая степень удовлетворенности потребителя

Характеристики качества:

  • Работоспособность – система работает и реализует требуемые функции.

  • Надежность – система работает без отказов и сбоев.

  • Восстанавливаемость.

  • Эффективность – система реализует свои функции наилучшим образом.

  • Экономическая эффективность – минимальная стоимость конечного продукта при максимальной прибыли.

Характеристики качества:

  • Учет человеческого фактора - удобство эксплуатации, быстрота обучения работе с ПП, удобство сопровождения, внесения изменений.

  • Переносимость (мобильность) – переносимость кода на другую платформу или систему.

  • Функциональная полнота – возможно наиболее полная реализация внешних функций.

  • Точность вычисления

  1. Свойства алгоритма.

Результативность означает возможность получения результата после выполнения конечного количества операций.

Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств.

Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных.

Дискретность возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой.

  1. Способы описания алгоритмов

Существуют следующие способы описания (представления) алгоритмов:

  1. словесное описание;

  2. описание алгоритма с помощью   математических  формул;

  3. графическое описание алгоритма в виде блок-схемы;

  4. описание алгоритма с помощью псевдокода;

  5. комбинированный способ изображения алгоритма с   использованием словесного, графического и др. способов.

  6. с помощью сетей Петри.

Словесное описание алгоритма представляет собой описание структуры алгоритма на естественном языке. Например, к приборам бытовой техники, как правило, прилагается инструкция по эксплуатации, т.е. словесное описание алгоритма, в соответствии с которым данный прибор должен использоваться.

Графическое описание алгоритма в виде блок-схемы – это описание структуры алгоритма с помощью геометрических фигур с линиями связи.

Блок схема алгоритма – это графическое представление метода решения задачи, в котором используются специальные символы для отображения операций.

Символы, из которых состоит блок-схема алгоритма, определяет ГОСТ 19.701-90. Этот ГОСТ соответствует международному стандарту оформления алгоритмов, поэтому блок-схемы алгоритмов, оформленные согласно ГОСТ 19.701-90, в разных странах понимаются однозначно.

Псевдокод – описание структуры алгоритма на естественном, но частично формализованном языке. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Строгих синтаксических правил для записи псевдокода не предусмотрено.

Рассмотрим простейший пример. Пусть необходимо описать алгоритм вывода на экран монитора наибольшего значения из двух чисел.

Рисунок 1 - Пример описания алгоритма в виде блок-схемы

Описание этого же алгоритма на псевдокоде:

  1. Начало

  2. Ввод чисел: Z, X

  3. Если Z > X то Вывод Z

  4. Иначе вывод Х

  5. Конец

Каждый из перечисленных способов изображения алгоритмов имеет и достоинства и недостатки. Например, словесный способ отличается многословностью и отсутствием наглядности, но дает возможность лучше описать отдельные операции. Графический способ более наглядный, но часто возникает необходимость описать некоторые операции в словесной форме. Поэтому при разработке сложных алгоритмов лучше использовать комбинированный способ.

  1. Виды алгоритмов

линейные;

ветвящиеся;

циклические.

  • Линейный алгоритм — набор команд (указаний), выполняемых последовательно друг за другом.

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

  • Циклический алгоритм — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) Над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы — последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторому условию.

  1. Стиль программирования: процедурное

 Стиль программирования, процедурное: Процедурное программирование — программирование на императивном языке, при котором последовательно выполняемые операторы можно собрать в подпрограммы, то есть более крупные целостные единицы кода, с помощью механизмов самого языка[1]. Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит абстрактная вычислительная система под названием машина Тьюринга. Процедурный язык программирования предоставляет возможность программисту определять каждый шаг в процессе решения задачи. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.

  1. Стиль программирования: функциональное

Стиль программирования, функциональное: Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании). Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список. Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния (в отличие от императивного, где одной из базовых концепций является переменная, хранящая своё значение и позволяющая менять его по мере выполнения алгоритма). На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. Таким образом, в императивном программировании при вызове одной и той же функции с одинаковыми параметрами, но на разных этапах выполнения алгоритма, можно получить разные данные на выходе из-за влияния на функцию состояния переменных. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста.

  1. Стиль программирования: логическое

Стиль программирования, логическое: программирование, основанное на логике. Часто его определяют как использование языка логики в качестве языка программирования, вместе с использованием логического вывода в качестве вычислительного механизма. Это очень хорошее определение, но оно очень широкое. Логическое программирование, определеннное таким образом, включает в себя то же функциональное программирование как и многие другие стили программирования. Исторически сложилось так, что термином "логическое программирование" обозначают использование в качестве языка программирования некоторго подмножества чистой логики первого порядка. Это означает, что для выражения концепции действия применяется математическое понятие отношения или предиката. Часто встречается еще более узкое толкование понятия логического программирования, когда язык ограничивается применением хорновских предложений, а механизм вывода - определенным вариантом метода резолюций. На этих принципах создан Пролог и сходные с ним языки программирования. В основе этих языков лежит возможность интерпретировать одно и то же выражение, как логическое утверждение A, если B1 и B2 и ... Bn и как определение процедуры чтобы выполнить A  выполнить B1;  выполнить B2; ...  выполнить Bn. Но такое узкое понятие следует признать слишком ограничительным. Многие языки программирования заслуживающие названия "логических" не вписываются в эту схему. С другой стороны, тот же Пролог содержит элементы логики второго порядка. А некоторые свойства Пролога при казуистическом подходе вообще не позволяют отнести его к декларативным языкам. Тем не менее, Пролог остается наиболее распространенным языком логического программирования. и именно его мы будем использовать. На примере Пролога мы рассмотрим специфические свойства логических программ, которые делают логическое программирование хорошо подходящим для некоторых применений, таких как дедуктивные базы данных, синтаксический анализ (особенно неоднозначных грамматик) и сложные комбинаторные задачи. Дальнейшее развитие логических языков продолжается в двух главных направлениях, которые можно назвать "алгоритмическим" и "переборным". Первое ориентировано главным образом на решение задач, для которых известны эффективные алгоритмы и требуются более тонкие средства управления, чем присутствующие в Прологе. Второе ориентировано на задачи, для которых нет эффективных алгоритмов, и где существенное место занимает перебор вариантов. Языки этого направления заменяют несколько примитивный перебор с возвратами, характерный для Пролога, более изощренными методами.

  1. Стиль программирования: объектно-ориентированное

Стиль программирования, объектно ориентированное: Правильно разработанные программы должны не только удовлетворять своим функциональным требованиям, но и обладать такими свойствами, как: повторная используемость; расширяемость; устойчивость к неправильным данным; системность. Правильный объектно-ориентированный стиль программирования обеспечивает наличие этих свойств. Поясним это на примере свойства системности. Программа обладает свойством системности, если она применима в качестве обобщенного оператора при "крупноблочном программировании". Крупноблочное программирование - это систематическое использование ранее разработанных крупных программных единиц (таких, как классы, подсистемы, или модули) при разработке новых программных систем. Следующие рекомендации могут помочь разрабатывать классы, обладающие свойством системности. Методы должны быть хорошо продуманы. Методы должны быть понятны всем, кто их прочитает. Методы должны быть легко читаемы. Имена должны быть такими же, как и в модели. Методы должны быть хорошо документированы. Спецификации методов должны быть доступны. Естественно, что к этим и им подобным "рекомендациям" следует относиться с известной долей юмора. Но выполнять их, тем не менее, полезно.

  1. Способы записи и требования к алгоритмам, базовые структуры

 Способы записи и требования к алгоритмам, базовые структуры:  Для записи алгоритмов используют самые разнообразные средства. Выбор средства определяется типом исполняемого алгоритма. Выделяют следующие основные способы записи алгоритмов: - вербальный, когда алгоритм описывается на человеческом языке; - символьный, когда алгоритм описывается с помощью набора символов; - графический, когда алгоритм описывается с помощью набора графических изображений. Общепринятыми способами записи являются графическая запись с помощью блок-схем и символьная запись с помощью какого-либо алгоритмического языка. Описание алгоритма с помощью блок схем осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом. Внешний вид основных блоков, применяемых при написании блок схем. В зависимости от последовательности выполнения действий в алгоритме выделяют алгоритмы линейной, разветвленной и циклической структуры. В алгоритмах линейной структуры действия выполняются последовательно одно за другим. В алгоритмах разветвленной структуры в зависимости от выполнения или невыполнения какого-либо условия производятся различные последовательности действий. Каждая такая последовательность действий называется ветвью алгоритма. В алгоритмах циклической структуры в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и послеусловием.

базовые структуры алгоритмов-  1. Следование Эта структура предполагает последовательное выполнение входящих в нее инструкций. Существенно, что структура следование, рассматриваемая как единое целое, имеет один вход и один выход. 2. Разветвление Разветвление предполагает проверку некоторого условия. В зависимости от того выполняется это условие или нет, выполняется либо одна инструкция, либо другая.  Если на момент проверки условие оказалось выполнено, то будет выполнена инструкция 1, а инструкция 2 игнорируется. Если же оказывается, что условие не выполнено, то будет выполнена инструкция 2, а инструкция 1 игнорируется. Разветвление также имеет один вход и один выход. 3. Цикл Цикл предполагает повторение выполнения некоторой инструкции, а также проверку некоторого условия продолжения повторения этой инструкции. Различают два вида базовых циклов в зависимости от порядка выполнения этих действий: сначала проверка условия выполнения инструкции, а затем ее выполнение (цикл – пока) , или сначала выполнение инструкции, а затем проверка условия повторения ее выполнения (цикл – до) . Также рассматривается цикл со счетчиком. Базовая структура – цикл имеет один вход и один выход.

  1. Си. Состав языка: алфавит, идентификаторы, ключевые слова

Си. Состав языка: словарь, идентификаторы, ключевые слова-  Любой язык программирования подобен языку человека. Как и в нашем с вами языке (русском, английском и так далее), в языке программирования можно выделить алфавит, слова и предложения. Но язык программирования в отличии от языка человека гораздо проще и подчиняется жестким правилам. Это обусловлено примитивностью вычислительной техники: компьютер — не человек, домыслить ничего не может и обрабатывает только такой набор команд, который трактуется однозначно. Итак, разберем базовые понятия языка С# и начнем с основы основ в любом языке — его алфавита. Алфавит языка — это тот набор символов (знаков), который допустим в данном языке. В алфавит языка C# входят: прописные и строчные буквы (латинские и национальных шрифтов) и символ подчеркивания (_); цифры; специальные знаки: ' " , { } | [ ] ( ) + - / \ % ? ! . ; : < = > & * ~ ^ неотображаемые символы («обобщенные пробельные символы»), они используются для отделения лексем друг от друга (это пробелы, табуляция, переход на новую строку). Из отдельных символов алфавита языка строятся более крупные блоки программы: лексемы, директивы препроцессора и комментарии. Лексема — это последовательность из одного или несколько символов, представляющая определенный смысл. Лексемам в языке человека соответствует понятие слово. В литературе, посвященной трансляции с языков программирования, часто используется термин токен, имеющий тот же смысл. Существует несколько видов лексем: идентификаторы (имена объектов); ключевые (зарезервированные, служебные) слова; знаки операций; разделители; литералы. Идентификатор — это последовательность букв, цифр и символов подчеркивания. Идентификаторы используются для обозначения имен объектов, используемых в программе. Всё, что применяется в программе, имеет имя. Имена (названия) имеют константы, переменные, методы, классы и т. д. Имя не может начинаться с цифры. Длина имени произвольная. Ограничения накладываются только на внешние имена, например, на имена библиотек, но это ограничения не языка C#, а операционной системы. В идентификаторах допускается применять национальные шрифты, например, русские буквы, но это нежелательно. Замечание. В традиционных языках программирования (C, Паскаль и другие) символы национальных шрифтов можно применять только в качестве символов-констант (например, 'Я'), в символьных строках ("Это строка") и комментариях. В C# символы национальных шрифтов допустимы и для обозначения имен (идентификаторов). Это повышает читаемость программы, но создает дополнительные проблемы. Ведь служебные слова по-прежнему состоят только из латинских букв. Попробуйте сами набирать текст программы, где в каждом предложении необходимо многократно переключаться с русского языка на английский! Ключевые слова — это служебные слова, которые зарезервированы в языке, их можно использовать только по прямому назначению (например, for — это заголовок оператора цикла и ничего более), т. е. зарезервированные слова нельзя использовать в качестве имен переменных пользователя. Ключевые слова, определенные в стандарте языка C# версии 2.0, приведены в таблице ниже: Таблица 1. Ключевые слова C# abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while

  1. Си. Знаки операций, константы, комментарии

Знаки операций — это один или несколько символов, определяющих действие над операндами. Внутри знака операции не может быть пробелов (пробел — это всегда разделитель). Например, в выражении x+y знак + означает операцию сложения, а x и y являются операндами. Операции и знаки, их означающие, мы будем изучать по мере необходимости. Комментарии — это фрагменты программы, которые не обрабатываются компиляторов, а используются для пояснения текста программы. В языке C# имеются те же виды комментариев, что и в C++, а так же появился новый вид. Перечислим их. 1)Однострочный комментарий — начинается с двух символов «косая черта», например: // это комментарий в одну строку 2)Многострочный комментарий — начинается с пары символов /* и заканчивается парой */. Пример: /* Большой комментарий */ 3)Комментарии для автоматической генерации документации в XML-формате. Они начинаются с трёх символов «косая черта». Например, ///<summary> ///This is Alfa class ///</summary> Константы

15:

  1. Си.Типы данных.

Тип данных – это описание диапазона значений, которые может принимать переменная, указанного типа. Каждый тип данных характеризуется:    1. количеством занимаемых байт(размером)   2. диапазоном значений которые может принимать переменная данного типа.  Все типы данных можно разделить на следующие виды:    1. простые (скалярные) и сложные (векторные) типы;    2. базовые (системные) и пользовательские(которые определил пользователь).  В языке СИ систему базовых типов образуют четыре типа данных:    1. символьный,    2. целочисленный,    3. вещественный одинарной точности,    4. вещественный двойной точности.

Подробное описание типов данных в языке си

Тип

Символьный тип

Целочисленный тип

Вещественный тип одинарной точности

Вещественный тип двойной точности

описание

char

int

float

double

Размер

1 байт (8 бит)

4 байта (32 бита)

4 байта (32 бита)  23 бита – мантисса; 8 бит – порядок;  1 бит – знак.

8 байт (64 бита)  52 бита – мантисса;  11 бит – порядок;  1 бит – знак.

диапазон значений

-128 ... 127

2147483648 ... 2147483647

±3.4Е±38  Точность до 7 знаков после запятой

±1.7Е±308  Точность до 17 знаков после запятой

 В языке СИ предусмотрены модификаторы типов данных двух видов:   1. модификаторы знака: signed и unsigned.   2. модификаторы размера: short и long.  Более подробно модификаторы типов описаны в таблице:

Модификатор

signed

unsigned

short

long

описание

осуществляет преобразование целочисленных значений к знаковым числам

осуществляет преобразование целочисленных значений к незнаковым числам

уменьшает размер целочисленного типа в два раза

увеличивает размер типа данных

использование

совместно с типами char и int. используется по умолчанию

совместно с типами char и int.

только с типом int

совместно с типами int и double.

пример

используется по умолчанию

unsigned char Диапазон: 0 ... 255

short int Диапазон: -32768 ...32767

long double – тоже, что и double Но в стандарте IEEE: 80 бит

  1. Структура программы на Си.

1. Операторы языка C++ Операторы управляют процессом выполнения программы. Набор операторов языка С++ содержит все управляющие конструкции структурного программирования. Составной оператор ограничивается фигурными скобками. Все другие операторы заканчиваются точкой с запятой. Пустой оператор – ;  Пустой оператор – это оператор, состоящий только из точки с запятой. Он может появиться в любом месте программы, где по синтаксису требуется оператор. Выполнение пустого оператора не меняет состояния программы. Составной оператор – {...} Действие составного оператора состоит в последовательном выполнении содержащихся в нем операторов, за исключением тех случаев, когда какой-либо оператор явно передает управление в другое место программы. Оператор обработки исключений try { <операторы> } catch (<объявление исключения>) { <операторы> } catch (<объявление исключения>) { <операторы> } ... catch (<объявление исключения>) { <операторы> } Условный оператор if (<выражение>) <оператор 1> [else <оператор 2>] Оператор-переключатель switch (<выражение>) { case <константное выражение 1>: <операторы 1> case <константное выражение 2>: <операторы 2> ... case <константное выражение N>: <операторы N> [default: <операторы>] }  Оператор-переключатель предназначен для выбора одного из нескольких альтернативных путей выполнения программы. Вычисление оператора-переключателя начинается с вычисления выражения, после чего управление передается оператору, помеченному константным выражением, равным вычисленному значению выражения. Выход из оператора-переключателя осуществляется оператором break. Если значение выражения не равно ни одному константному выражению, то управление передается оператору, помеченному ключевым словом default, если он есть. Оператор цикла с предусловием while (<выражение>) <оператор> Оператор цикла с постусловием do <оператор> while <выражение>;  В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла. Оператор пошагового цикла for ([<начальное выражение>]; [<условное выражение>]; [<выражение приращения>]) <оператор>  Тело оператора for выполняется до тех пор, пока условное выражение не станет ложным (равным 0). Начальное выражение и выражение приращения обычно используются для инициализации и модификации параметров цикла и других значений. Начальное выражение вычисляется один раз до первой проверки условного выражения, а выражение приращения вычисляется после каждого выполнения оператора. Любое из трех выражений заголовка цикла, и даже все три могут быть опущены (не забывайте только оставлять точки с запятой). Если опущено условное выражение, то оно считается истинным, и цикл становится бесконечным. Оператор пошагового цикла в языке С++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for. Оператор разрыва  break; Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while, do, for, switch, то он завершает только непосредственно охватывающий его оператор. Оператор продолжения  continue; Оператор продолжения передает управление на следующую итерацию в операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения. Оператор возврата return [<выражение>];  Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции

  1. Си.Управляющая структура Ветвление

Управляющие структуры или операторы управления служат для управления последовательностью вычислений в программе. Операторы ветвления и циклы позволяют переходить к выполнению другой части программы или выполнять какую-то часть программы многократно, пока удовлетворяется одно или более условий.

Блоки и составные операторы.

Любая последовательность операторов, заключенная в фигурные скобки, является составным оператором (блоком). Составной оператор не должен заканчиваться (;), поскольку ограничителем блока служит сама закрывающаяся скобка. Внутри блока каждый оператор должен ограничиваться (;).

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

Пустой оператор.

Пустой оператор представляется символом (;), перед которым нет выражения. Пустой оператор используют там, где синтаксис языка требует присутствия в данном месте программы оператора, однако по логике программы оператор должен отсутствовать.

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

Операторы ветвления.

К операторам ветвления относятся if, if else, ?, switch и goto. Общий вид операторов ветвления следующий:

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