Жизненный цикл системы это последовательность этапов

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 5 апреля 2021; проверки требуют 2 правки.

Жизненный цикл системы – это стадии процесса, охватывающие различные состояния системы, начиная с момента возникновения необходимости в такой системе и заканчивая её полным выводом из эксплуатации[1]:19; конечный набор общих фаз и этапов, через которые система может проходить в течение своей истории жизни[2].

Жизненный цикл – это не временной период существования, а процесс последовательного изменения состояния, обусловленный видом производимых воздействий (Р 50-605-80-93)[3].

Под термином «жизненный цикл системы» обычно понимают эволюцию новой системы в виде нескольких ступеней, включающих такие важные стадии, как концепция, разработка, производство, эксплуатация и окончательное выведение из эксплуатации[4]:70.

В стандартах системной инженерии описаны четыре основных принципа моделирования жизненного цикла, а именно:

  • В течение своей жизни система развивается, проходя через определенные стадии.
  • На каждой стадии жизненного цикла должны быть доступны подходящие обеспечивающие системы (англ. enabling systems), только в этом случае могут быть достигнуты результаты, запланированные для этой стадии.
  • На определенных стадиях жизненного цикла такие атрибуты, как технологичность, удобство использования, пригодность к обслуживанию и возможность удаления отходов, должны быть специфицированы и практически реализованы.
  • Переход к следующей стадии возможен только при условии полного достижения результатов, запланированных для текущей стадии.

В полном жизненном цикле любой системы всегда присутствуют типовые стадии, каждая из которых имеет характерные только для неё цели и вносит свой вклад в полный жизненный цикл[5]:10.

История концепции жизненного цикла[править | править код]

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

Типовые модели жизненного цикла системы[править | править код]

Модели жизненного цикла системы получили значительное распространение в последние два десятилетия. Некоторые модели развивались как дополнительные уникальные и пользовательские приложения в исследованиях. Кроме того, разработка программного обеспечения повлекла за собой формирование новых моделей разработки, которые впоследствии были приняты системным сообществом[4]:71.

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

Некоторые специалисты по системной инженерии предлагают рассматривать модель жизненного цикла системы, на основе следующих трех источников: модель управления материально-техническим обеспечением Министерства Обороны США (МО США) (DoD 5000.2), модель стандарта ISO/IEC 15288 и модель Национального общества профессиональных инженеров (NSPE)[4]:71.

Типовая модель жизненного цикла по стандарту ISO/IEC 15288[править | править код]

В 2002 году Международная организация по стандартизации и Международная электротехническая комиссия выпустили результат многолетней работы – стандарт ISO/IEC 15288:2002 (см. русскоязычный аналог ГОСТ Р ИСО МЭК 15288-2005)[7].

Согласно стандарту, процессы и действия жизненного цикла определяются, соответствующим образом настраиваются и используются в течение стадии жизненного цикла, для полного удовлетворения целей и результатов на этой стадии. В различных стадиях жизненного цикла могут принимать участие разные организации. Не существует единой универсальной модели жизненных циклов систем. Те или иные стадии жизненного цикла могут отсутствовать или присутствовать в зависимости от каждого конкретного случая разработки системы[7]:34.

В стандарте в качестве примера были приведены следующие стадии жизненного цикла:

  1. Замысел.
  2. Разработка.
  3. Производство.
  4. Применение.
  5. Поддержка применения.
  6. Прекращение применения и списание.

В версии стандарта от 2008 года (ISO/IEC 15288:2008) и в последующих версиях примеры стадий жизненного цикла отсутствуют[8].

Типовая модель жизненного цикла по версии Министерства обороны США[править | править код]

Для управления рисками в области применения передовых технологий, и сведения к минимуму дорогостоящих технических или управленческих ошибок, МО США разработало руководство, содержащее все необходимые принципы разработки систем. Эти принципы вошли в специальный перечень директив – DoD 5000.

Модель жизненного цикла системы управления материально-техническим обеспечением по версии МО США состоит из пяти стадий[4]:71:

  1. Анализ.
  2. Разработка технологии.
  3. Инженерная и производственная разработка.
  4. Производство и развертывание.
  5. Функционирование и поддержка.

Типовая модель жизненного цикла системы Национального общества профессиональных инженеров (NSPE)[править | править код]

Этот вариант модели жизненного цикла NSPE адаптирован для коммерческих систем и направлен на развитие новых продуктов, обычно являющихся результатом технического прогресса. Жизненный цикл по модели NSPE разбивается на шесть стадий[4]:72:

  1. Концепция.
  2. Техническая реализация.
  3. Разработка.
  4. Коммерческая валидация и подготовка производства.
  5. Полномасштабное производство.
  6. Поддержка конечного продукта.

Типовая модель жизненного цикла продукции по Р 50-605-80-93[править | править код]

В руководящем документе Р 50-605-80-93 рассматривается жизненный цикл промышленного изделия, в том числе – военной техники[3].

Для промышленной продукции гражданского назначения предложены следующие стадии:

  1. Исследование и проектирование.
  2. Изготовление.
  3. Обращение и реализация.
  4. Эксплуатация или потребление.

В рамках жизненного цикла промышленной продукции гражданского назначения предложено рассматривать 73 вида работ и 23 типа стейкхолдеров («участников работ» по терминологии документа).

Для промышленной продукции военного назначения предложены следующие стадии:

  1. Исследование и обоснование разработки.
  2. Разработка.
  3. Производство.
  4. Эксплуатация.
  5. Капитальный ремонт.

В рамках жизненного цикла промышленной продукции военного назначения предложено рассматривать 25 видов работ и 7 типов стейкхолдеров (участников работ).

Типовая модель жизненного цикла программного обеспечения[править | править код]

Стадии жизненного цикла системы и их составные фазы, представленных на рисунке «Модель жизненного цикла системы», относятся к большинству сложных систем, в том числе к тем, которые содержат программное обеспечение со значительным объемом функциональных возможностей на уровне компонентов. В программно-интенсивных системах, в которых программное обеспечение выполняет практически все функции (как например в современных финансовых системах, в системах бронирования авиабилетов, в глобальной сети интернет, и в др.), как правило жизненные циклы схожи по содержанию, но часто усложняются итерационными процессами и прототипированием[4]:72-73.

Основные стадии жизненного цикла системы (Kossiakoff, Sweet, Seymour, Biemer)[править | править код]

Как показано на рисунке «Модель жизненного цикла системы», модель жизненного цикла системы содержит 3 стадии. Первые 2 стадии приходятся на разработку, а третья стадия охватывает пост-разработку. Эти стадии показывают более общие переходы из состояния в состояние, в жизненном цикле системы, а также показывают изменения в типе и объеме действий, вовлеченных в системную инженерию. Стадии представляют собой[4]:73:

  • стадию разработки концепции;
  • стадию технической разработки;
  • стадию пост-разработки.

Стадия разработки концепции[править | править код]

Целью стадии разработки концепции являются оценки новых возможностей в сфере применения системы, разработка предварительных системных требований и возможных проектных решений. Стадия разработки концептуального проекта начинаются с момента осознания необходимости создания новой системы или модификации уже имеющейся. Стадия включает в себя начало исследований фактов, периода планирования, оцениваются экономические, технические, стратегические и рыночные основы будущих действий. Осуществляется диалог между стейкхолдерами и разработчиками[8].

Читайте также:  Жизненный цикл разработки продукта

Модель жизненного цикла системы

Основные цели стадии разработки концепции[4]:74:

  1. Провести исследования, установив, что является необходимым для новой системы, а также установив техническую и экономическую целесообразность данной системы.
  2. Изучить потенциально возможные концепции системы, а также сформулировать и подвергнуть валидации набор требований к производительности системы.
  3. Выбрать наиболее привлекательную концепцию системы, определить её функциональные характеристики, а также разработать детальный план последующих стадий проектирования, производства и оперативного развертывания системы.
  4. Разработать любую новую технологию, подходящую для выбранной концепции системы и подвергнуть валидации её способности удовлетворять потребности.

Стадия технической разработки[править | править код]

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

Основными целями стадии технической разработки являются[4]:74:

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

Стадия пост-разработки[править | править код]

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

Стадия пост-разработки новой системы начинается после успешно проведенной операции тестирования и оценивания данной системы (тестирование приёмки), выпуска в производство и последующим оперативным использованием. Пока основная разработка не будет завершена, системная инженерия будет продолжать играть главную поддерживающую роль[4]:74.

Принципиальные стадии в жизненном цикле системыЭтапы концептуальной разработки в жизненном цикле системыЭтапы технической разработки в жизненном цикле системы

Примечания[править | править код]

  1. ↑ Blanchard, Fabrycky, 2006.
  2. ↑ ISO 15704, 2000.
  3. ↑ 1 2 Р 50-605-80-93, 1993.
  4. ↑ 1 2 3 4 5 6 7 8 9 10 Kossiakoff, Sweet, Seymour, Biemer, 2011.
  5. ↑ Батоврин, Бахтурин, 2012.
  6. ↑ Широкова Г. В., Клемина Т. Н., Козырева Т. П. Концепция жизненного цикла в современных организационных и управленческих исследованиях // Вестник Санкт-Петербургского университета. Серия «Менеджмент». Сер. 8. Вып. 2, 2007, с. 3-31
  7. ↑ 1 2 ГОСТ Р ИСО/МЭК 15288, 2005.
  8. ↑ 1 2 ISO/IEC 15288, 2008.

Литература[править | править код]

  • Blanchard B. S., Fabrycky Wolter J. Systems engineering and analysis. – 4-е изд. – Prentice Hall, 2006.
  • ISO/IEC 15288:2008 Systems and software engineering – Life cycle processes
  • ISO 15704:2000 Industrial automation systems – Requirements for enterprise-reference architectures and methodologies (ГОСТ Р ИСО 15704-2008 Требования к стандартным архитектурам и методологиям предприятия)
  • Kossiakoff A., Sweet W. N., Seymour S. J., Biemer S. M. Systems Engineering Principles and Practice. – 2-е изд. – Hoboken, New Jersey: A John Wiley & Sons, 2011. – 599 с. – ISBN 978-0-470-40548-2.
  • Батоврин В. К., Бахтурин Д. А. Управление жизненным циклом технических систем. – 2012.
  • ГОСТ Р ИСО/МЭК 15288-2005 Информационная технология. Системная инженерия. Процессы жизненного цикла систем
  • Р 50-605-80-93. Рекомендации. Система разработки и постановки продукции на производство. Термины и определения (Ссылка на текст).

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Теория жизненного цикла херси и бланшара зрелость

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Начало

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

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

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

5. Конец

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

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

линейные;

ветвящиеся;

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

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

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

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

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

Тип данных – это описание диапазона значений, которые может принимать переменная, указанного типа. Каждый тип данных характеризуется:

  1. количеством занимаемых байт(размером)

  2. диапазоном значений которые может принимать переменная данного типа.

 Все типы данных можно разделить на следующие виды:

  1. простые (скалярные) и сложные (векторные) типы;

  2. базовые (системные) и пользовательские(которые определил пользователь).

 В языке СИ систему базовых типов образуют четыре типа данных:

  1. символьный,

  2. целочисленный,

  3. вещественный одинарной точности,

  4. вещественный двойной точности.

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

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 [<выражение>];

Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции

If (логическое выражение)

оператор;

If (логическое выражение)

оператор_1;

Else

оператор_2;

<логическое выражение> ? <выражение_1> : <выражение_2>;

Если значение логического выражения истинно, то вычисляется выражение_1, в противном случае вычисляется выражение_2.

switch (выражение целого типа)

{

case значение_1:

последовательность_операторов_1;

break;

case значение_2:

последовательность_операторов_2;

break;

. . .

case значение_n:

последовательность_операторов_n;

break;

default:

последовательность_операторов_n+1;

}

Ветку default можно не описывать. Она выполняется, если ни одно из вышестоящих выражений не удовлетворено.

Оператор цикла.

В Турбо Си имеются следующие конструкции, позволяющие программировать циклы: while, do while и for. Их структуру можно описать следующим образом:

Цикл с проверкой условия наверху:

Оператор выбора

Если действия, которые необходимо выполнить в программе, зависят от значения некоторой переменной, можно использовать оператор выбора. При этом в C++ в качестве переменных в операторе выбора можно использовать только численные. В общем виде запись оператора выбора выглядит так:

switch(переменная)

{

case значение1:

действия1

break;

case значение2:

действия2

break;

default:

действия по умолчанию

}

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

switch(переменная)

{

case значение1:

case значение2:

действия1

break;

case значение3:

действия2

break;

}

Пример использования выбора:

int n, x;

switch(n)

{

case 0:

break; //если n равна 0, то не выполняем никаких действий

case 1:

case 2:

case 3:

x = 3 * n; //если n равна 1, 2 или 3, то выполняем некоторые действия

break;

case 4:

x = n; //если n равна 4, то выполняем другие действия

break;

default:

x = 0; //при всех других значениях n выполняем действия по умолчанию

}

Си.Цикл: цикл с параметром

Общая форма записи

for (инициализация параметра; проверка условия окончания; коррекция параметра) {

блок операций;

}

for – параметрический цикл (цикл с фиксированным числом повторений). Для организации такого цикла необходимо осуществить три операции:

§ инициализация параметра – присваивание параметру цикла начального значения;

§ проверка условия окончания – сравнение величины параметра с некоторым граничным значением;

§ коррекция параметра – изменение значения параметра при каждом прохождении тела цикла.

Эти три операции записываются в скобках и разделяются точкой с запятой (;). Как правило, параметром цикла является целочисленная переменная.

Инициализация параметра осуществляется только один раз – когда цикл for начинает выполняться. Проверка условия окончания осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным (равным нулю), цикл завершается. Коррекция параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться.

Пример

#include <stdio.h>

int main() {

int num;

for(num = 1; num < 5; num++)

f(“num = %dn”,num);

getchar();

return 0;

Си. Цикл с предусловием

Общая форма записи

while(выражение) {

блок операций;

}

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

Пример

int k=5;

int i=1;

int sum=0;

while(i <=k) {

sum = sum + i;

i++;

}

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

while(1) {

блок операций;

}

while – цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу если в момент первой проверки проверяемое условие окажется ложным.

Си. Цикл с постусловием

Цикл с постусловием do…while

Общая форма записи

do {

блок операций;

} while(выражение);

Цикл с постусловием

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

Использовать цикл do…while лучше использовать в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Пример. Ввести число от 0 до 10

#include <stdio.h>

#include <stdlib.h>

int main() {

int num;

system(“chcp 1251”);

system(“cls”);

do {

f(“Введите число от 0 до 10: “);

scanf(“%d”, &num);

} while((num < 0) || (num > 10));

f(“Вы ввели число %d”, num);

getchar(); getchar();

return 0;

}

Определение функций

returnDataType Name( dataType argName1, dataType argName2, …, dataType argNameN) { // тело функции }

Рассмотрим определение функции на примере функции sum.

// определение функции, которая суммирует два целых числа и возвращает их сумму int sum(int num1, int num2) { return (num1 + num2); }

В языках C и C++, функции не должны быть определены до момента их использования, но они должны быть ранее объявлены. Но даже после всего этого, в конце концов, эта функция должна быть определена. После этого прототип функции и ее определение связываются, и эта функция может быть использована.

Если функция ранее была объявлена, она должна быть определена с тем же возвращаемым значением и типами данных, в противном случае, будет создана новая, перегруженная функция. Заметьте, что имена параметров функции не должны быть одинаковыми.

Источник