Скачать презентацию ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С С ЛЕКЦИЯ 7 Скачать презентацию ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С С ЛЕКЦИЯ 7

lektsia_7_8_-_VVYeDYeNIYe_V_PROGR_NA_YaZ_KAH_S.ppt

  • Количество слайдов: 50

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ ЛЕКЦИЯ 7, 8 ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ ЛЕКЦИЯ 7, 8

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 1. Идеология языка Языки С/С++ являются наиболее широко ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 1. Идеология языка Языки С/С++ являются наиболее широко распространенными и часто используемыми языками программирования в мире. Они являются основными языками при разработке как системного, так и прикладного программного обеспечения. Владение ими является необходимым условием получения высокооплачиваемой работы в области информационных технологий. Язык С появился в 1972 г. благодаря усилиям двух специалистов лаборатории Bell Брайена Кернигана и Денниса Ритчи и быстро завоевал признание среди разработчиков всего мира.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Этому способствовали его следующие характерные особенности: 1. Эффективность. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Этому способствовали его следующие характерные особенности: 1. Эффективность. Программы, написанные на С обладают небольшим размером и высокой скоростью исполнения. 2. Лаконичность. Запись алгоритма выразительна и кратка. 3. Компактность. Язык содержит мало встроенных средств и ключевых слов. 4. Мощность применения достигается за счет использования многочисленных библиотек. 5. Переносимость. Компиляторы созданы для всех операционных систем и аппаратных платформ, поэтому программу можно скомпилировать и запустить практически везде.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ К основным недостаткам С можно отнести слабый контроль ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ К основным недостаткам С можно отнести слабый контроль преобразования типов и незащищенность при работе с адресами и динамической памятью, в результате которых в программе легко сделать ошибку, которую будет трудно найти. С другой стороны эти недостатки и позволяют создать исполняемый код по эффективности приближающийся к программе на языке Ассемблера. В 1981 году появился язык С++, который многие называют "С с классами". Создатель С++ Бъярн Страуструп ввел в традиционный С средства объектного языка: классы для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Данные средства позволили не только писать объектно ориентированные ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Данные средства позволили не только писать объектно ориентированные программы, но и создавать библиотеки шаблонов, классов, то есть расширить инструментарий программиста и сферу применения языка. • Классы для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом позволили не только писать ООП, но и создавать библиотеки шаблонов, классов, то есть расширить инструментарий программиста и сферу применения языка.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ В литературе по ООП рассматривают С и С++ ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ В литературе по ООП рассматривают С и С++ как единый язык, кроме случаев, когда необходимо подчеркнуть разницу между ними. Отметим только, что С/С++ сочетает в себе вышеперечисленные достоинства С и новые возможности С++, позволяя "изнутри" рассмотреть принципы высокоуровневого программирования. Язык С++ объединяет в себе средства высокоуровневого и низкоуровневого программирования. К первым можно отнести структуры, классы, механизм наследования и позднего связывания, шаблоны. Ко вторым традиционно относят механизм указателей, работу с битами символов, работу с механизмом прерываний. • • Все это делает С++ весьма привлекательным для решения широкого круга задач

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2. Принципы Объектно ориентированного подхода в Си++: 1. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2. Принципы Объектно ориентированного подхода в Си++: 1. Действие в объектно ориентированном програм мировании инициируется посредством передачи сообщений объекту. Сообщение содержит запрос на осуществление действия. В качестве реакции на сообщение получатель запустит некоторый метод, чтобы удовлетворить принятый запрос. 2. Все объекты являются экземплярами, классов. Все объекты одного класса используют одни и те же методы в ответ на одинаковые сообщения. 3. Принцип наследования. Классы могут быть организованы в иерархическую структуру с наследованием свойств. Дочерний класс наследует атрибуты родительского класса.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Принцип полиморфизма. Объекты реагируют на одно и ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Принцип полиморфизма. Объекты реагируют на одно и тоже сообщение строго специфичным для них образом. 5. Программы, как объекты разработки, строятся и проектируются как совокупность частей, согласованная работа которых и реализует заданные функциональные возможности. • Рассматривая в целом архитектуру ПО можно выделить 5 уровней исходного текста программы: 1. Атомарный 2. Устойчивые конструкции и составные операторы 3. Процедуры (функции) 4. Модули объекты 5. Библиотеки функций и классов.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 1. Атомарный уровень. Первый уровень составляют исходные конструкции ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 1. Атомарный уровень. Первый уровень составляют исходные конструкции самого языка программирования операторы, операции, символические обозначения (имена) переменных и функций. Данный уровень можно назвать атомарным, поскольку он оперирует наименьшими программными конструкциями и исходными понятиями (алфавитом, операциями и т. д. ). Атомарный уровень является необходимым в любой программе: как в простой, так и в сложной. Для того, чтобы составлять программы на этом уровне необходимы минимальные знания синтаксиса языка и базовых алгоритмов, что было изучено во 2 м семестре.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2. Устойчивые конструкции и составные операторы. На втором ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2. Устойчивые конструкции и составные операторы. На втором уровне располагаются составные операторы и выражения, состоящие из выражений первого уровня и выполняющие в программе определенную задачу. Ряд конструкций приведен в табл. на следующем слайде. • Преимущество этих конструкций заключается в том, что их можно использовать практически без изменений в различных программах, что позволяет сосредоточить больше внимания на предметной области и повысить скорость разработки.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Процедуры (функции). Функция представляет собой исчерпывающее решение ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Процедуры (функции). Функция представляет собой исчерпывающее решение какой либо небольшой задачи и представляет собой в С/C++ структурную единицу программы. • Любая программа на C/С++ состоит минимум из одной функции (main), а максимальное их количество не ограничено. Оптимальный размер тела функции составляет 5 20 строк, по одному два выражения в каждой. Однажды написанная и протестированная, функция может многократно использоваться (вызываться) в пределах одной программы при разных наборах входных данных, осуществляя их обработку по некоторому алгоритму. • Функция может считаться относительно независимой частью программы и переноситься в другие проекты по разработке ПО.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5. Модули объекты Большие программные комплексы. состоят из ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5. Модули объекты Большие программные комплексы. состоят из огромного количества функций. Одной из важнейших задач в этом случае является их организация и размещение в проекте. Понятие микрозадачи, решаемой одной функцией становится слишком малым для таких проектов, поэтому вводится макрозадача, решение которой выполняет модуль. Модуль - это набор функций, как правило размещаемых в одном файле и определенным образом связанных друг с другом для решения макрозадачи. Например, в программе может быть модуль обработки текстовой информации, модуль интерфейса, модуль ввода вывода. Аналогом модулей процедурно ориентированного программирования (ПОП) в объектно ориентированном программировании (ООП) является описание класса, или внутренней структуры объекта.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. Библиотеки функций и классов. Наборы функций и ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. Библиотеки функций и классов. Наборы функций и иерархии классов образуют библиотеки. • Содержимое библиотек должно быть универсально для решения широкого круга задач. Например, существуют библиотеки для работы с графикой (знаменитые Open. GL Direct. X в Windows), со временем, для обеспечения функций связи. • Существующие библиотеки классов (Microsoft MFC, Borland OWL) облегчают создание Windows приложений. • Работа с текстом программы на последних двух уровнях требует от разработчика развитого абстрактного мышления и как профессиональная деятельность оценивается очень высоко.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Построение исполняемого файла В создании готовой программы ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Построение исполняемого файла В создании готовой программы на С++ принимают участие несколько инструментальных средств, входящих в пакет разработчика. К ним относятся: 1. Текстовый редактор должен обеспечивать подсветку синтаксиса, то есть выделять разными цветами синтаксические элементы программы для улучшения восприятия. Сохранять результат работы редактор должен в виде простого текста без разметки и управляющих символов (чистый ASCII код). 2. Препроцессор. Данное средство предназначено для предварительной обработки текста программы, подстановки в текст макроопределений, включения текста заголовочных файлов. 3. Компилятор. Производит перевод текста на С++ в машинный код и создает объектный файл, который пока еще не готов к исполнению.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Компоновщик. Компонует один или несколько объектных файлов ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Компоновщик. Компонует один или несколько объектных файлов с кодом библиотек, связывает вызовы функций с точками входа в соответствующие участки кода, образуя выполняемый EXE файл. 5. Отладчик. Служит для поиска ошибок выполнения, просмотра во время выполнения программы значений переменных, участков памяти и т. п. • Текст программы помещается в один или несколько исходных файлов, по традиции имеющих расширение. с или. срр. • Каждый файл, последовательно, обрабатывает препроцессор с компилятором, выявляя ошибки компиляции (errors) и предупреждения (warnings). При наличии в тексте программы ошибок, компиляция прекращается до их устранения и новой компиляции. • После компиляции всех исходных файлов запускается компоновщик, который также может выдавать сообщения об ошибках.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Состав языка • В тексте, написанном на ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 4. Состав языка • В тексте, написанном на обычном разговорном языке можно выделить символы, слова, словосочетания и предложения, причем более крупные единицы слагаются из мелких. Язык программирования, предназначенный для записи алгоритма решения задачи, предоставляет те же возможности. • Программа, написанная на С/C++ представляет собой текст в виде символов с ASCII кодом иможет содержать следующие лексические единицы: идентификаторы, ключевые слова, литералы, операторы и разделители. • Компилятор воспринимает исходный файл, содержащий программу, как последовательность текстовых строк. Каждая строка завершается символом новой строки. Компилятор последовательно считывает строки программы и разбивает каждую строку на группы символов, называемыми лексемами.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Лексема - это единица текста программы, имеющая самостоятельный ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Лексема - это единица текста программы, имеющая самостоятельный смысл для компилятора и не содержащая в себе других лексем. Никакие лексемы, кроме символьных строк, не могут продолжаться на последующих строках текста программы. • Компилятор производит синтаксический анализ в порядке расположения символов в программе. За очередную лексическую единицу принимается наибо льший ряд знаков, который может ее образовывать. Например, поскольку операторами являются как двойной плюс, так и одинарный плюс, такие выражения, как a +++ b; представляются как a ++ + b; а не a + ++ b;

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим определения основных составляющих языка. 1) Алфавит представляет ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим определения основных составляющих языка. 1) Алфавит представляет собой набор допустимых символов, используемых для построения всех программных конструкций. 2) Идентификатор (лексема) набор символов, предназначенный для именования программных объектов (переменных, функций и т. д). 3) Ключевое слово зарезервированная последовательность символов в программе. 4)Литерал символ или последовательность символов, обозначающих данные (символьные или числовые). 5)Выражение набор литералов, идентификаторов и символов операций, предназначенный для записи правила вычисления значения или элементарного действия в программе. 6) Разделители специальные символы, отделяющие конструкции друг от друга. Ими являются пробел, точка с запятой, скобки. 7) Оператор законченное описание некоторого действия.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Для описания сложного действия требуется последовательность операторов, ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Для описания сложного действия требуется последовательность операторов, выражений, которые могут быть объединены в блок, или составной оператор. • Операторы бывают исполняемые и неисполняемые. Первые задают действия над данными, а вторые служат для описания данных. Теперь напомним составляющие языка. 1). Алфавит. : латинские буквы и символ подчеркивания, цифры, специальные символы (знаки операций, разделители, специальные символы и т. п. ) – аналогично любому языку высокого уровня.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2). Идентификаторы. Для построения идентификато ров могут использоваться ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 2). Идентификаторы. Для построения идентификато ров могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются. Первым символом идентификатора не может быть цифра, а в середине не могут встречать ся пробелы. 3). Идентификаторы могут быть произвольной длины, но большинство компиляторов налагают на нее огра ничения. Длинные имена плохо читаются и при их наборе можно сделать ошибку. Наоборот, слишком короткие имена часто вносят путаницу в программу и требуют дополнительных комментариев. • Идентификатор создается на этапе объявления программного объекта и затем может быть использован в выражениях и операторах программы.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Ключевые слова. Список ключевых слов можно найти ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 3. Ключевые слова. Список ключевых слов можно найти в любой книге по С/С++, поэтому мы не будем специально их рассматривать. К ним относятся названия встроенных типов, имена операторов, всевозможные директивы и модификаторы. Главное, чтобы в программе ключевое слово использовалось по прямому назначению, а не выступало в роли идентификатора. 4. Литералы представляют собой последователь ности символов, обозначающие символьные и числовые данные. Например, последовательность трех цифр 123 может означать в программе число 123, а при заключении в двойные кавычки строку, содержащую изображение данного числа. При задании символьных констант, изображения символов заключаются в одиночные кавычки, а при задании строковых констант в двойные.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5). Знаки операций используются при построении выражений и ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5). Знаки операций используются при построении выражений и обозначают действие над содержимым идентификаторов, выступающих в роли операндов. Операции делятся на унарные (с одним операндом), бинарные (с двумя операндами) и тернарные (с тремя операндами). Один и тот же знак может интерпретироваться по разному в зависимости от выражения. 6). Операторы принято делить на циклические, условные, управляющие и прочие. В С/С++ к циклическим относятся операторы while, do. . while, for, к условным if, if. . else. . if else. . , switch, к управляющим return, break. Назначение каждого оператора широко известно, поскольку один и тот же набор операторов есть практически в любом языке, но в каждом языке могут быть особенности синтаксического описания и использования (об особенностях использования операторов в С/С++ ниже).

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5. Общая структура программы Рассмотрим общую структуру одномодульной ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 5. Общая структура программы Рассмотрим общую структуру одномодульной программы, то есть весь исходный текст такой программы размещается в одном файле (в дальнейшем будут рассмотрены и многомо дульные программы). • • Структура программы содержит: Область директив препроцессора (include, define. . ); Описание пользовательских типов данных; Неполные объявления функций; Описание глобальных переменных; Объявление функции 1; Объявление функции 2; Объявление функции N; Объявление функции main();

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Программа состоит из одной или нескольких процедур, по ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Программа состоит из одной или нескольких процедур, по традиции называемых функциями. Одна функция, обязательно присутствующая в любой программе, должна называться main. Она служит точкой входа в программу и в дальнейшем вызывает другие функции. Минимальная программа выглядит следующим образом: void main(void) { } • Она состоит из функции main, не принимающей и не возвращающей параметров (void). • Тело функции, заключенное в фигурные скобки, также не содержит никаких полезных операторов.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим пример программы демонстрирующий использо вание двух дополнительных ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим пример программы демонстрирующий использо вание двух дополнительных функций mod и стандартной printf. В примере вычисляются значения модуля для содержимого трех переменных целого типа. • В начале программы располагается область директив пре процессора, из которых наиболее часто используются include и define. • Далее располагаются полные описания (определения) поль зовательских функций и после них определяется функция main. [текст программы помещён на следующем слайде] Приведенный пример демонстрирует важную особенность функций в С/С++ , которая состоит в следующем их описа ния не могут быть вложены друг в друга, то есть все они являются глобальными объектами в программе. Переменные могут быть объявлены как внутри тела функции, так и вне тела. В первом случае доступ к ним может осуществляться только из тела данной функции (локальные объявления), а во втором из любой функции (глобальные объявления).

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Выполнение программы начинается с тела функции main, ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Выполнение программы начинается с тела функции main, которая может принимать набор значений из командной строки. • В теле main содержатся вызовы других функций, как из стандартных библиотек, так и определенных пользователем в тексте программы. • Выполнение программы по умолчанию заканчива ется при завершении работы main, но может прерваться в любом месте при возникновении критической ошибки, или в предусмотренном случае. Для этого обычно используют функцию exit() из библиотеки stdlib.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. Операторы и выражения • Все операторы языка ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. Операторы и выражения • Все операторы языка С/С++ могут быть условно разделены на следующие категории: 1) условные операторы (оператор условия if и оператор выбора switch); 2) операторы цикла (for, while, do while); 3) операторы перехода (break, continue, return, goto); 4) другие операторы (оператор "выражение", пустой оператор). • Операторы в программе могут объединяться в составные операторы с помощью фигурных скобок. • Любой оператор в программе может быть помечен меткой, состоящей из имени и следующего за ним двоеточия. • Все операторы языка C/C++, кроме составных операторов, заканчиваются точкой с запятой "; ".

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим операторы несколько подробнее 6. 1. Оператор выражение. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Рассмотрим операторы несколько подробнее 6. 1. Оператор выражение. Любое выражение, которое заканчивается точкой с запятой, является оператором. Выполнение оператора выражение заключается в вычисле нии выражения. Примеры: ++i; этот оператор представляет выражение, которое увеличивает значение переменной i на единицу, a=cos(b*5); этот оператор представляет выражение, включающее в себя операции присваивания, умножения и вызова функции, fun(x, y); этот оператор представляет выражение состоящее из вызова функции.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 2. Пустой оператор сос тоит только из ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 2. Пустой оператор сос тоит только из точки с запятой. При выполне нии этого оператора ничего не происходит. 6. 3. Составной оператор. Составной опера тор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки. • В конце составного оператора точка с запятой не ставится. • Выполнение составного оператора заключа ется в последовательном выполнении составляющих его операторов.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 4. Оператор if. Формат оператора: if (выражение) ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 4. Оператор if. Формат оператора: if (выражение) оператор1; [else оператор2; ] • Выполнение оператора if начинается с вычисления выражения. Далее выполне ние осуществляется по следующей схеме: если выражение истинно (т. е. отлично от 0), то выполняется оператор1. если выражение ложно (т. е. равно 0), то выполняется оператор2. если выражение ложно и отсутствует оператор2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор. Следующий фрагмент иллюстрирует вложенные операторы if: Char sign; else if (sign = = ' * ') Int x, y, z; x = y * z; if (sign = = ' –' ) else if (sign = = '/ ') x = y – z; x = y / z; else if (sign = = '+') else x = y + z; x=0; ………

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 5. Оператор switch предназначен для организации выбора ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 5. Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий: switch ( выражение ) { [объявление] [ case константное выражение 1]: [список операторов 1] [ case константное выражение 2]: [список операторов 2] [ default: [список операторов]] } • Выражение, следующее за ключевым словом switch в круг лых скобках, может быть любым выражением, допустимыми в языке C/C++, значение которого должно быть целым. • Так константное выражение вычисляется во время трансляции, оно не может содержать переменные или вызовы функций. Обычно в качестве константного выражения используются целые или символьные константы. • Все константные выражения в операторе switch должны быть уникальны. • Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, фрагмент помеченный ключевым словом default. • Список операторов может быть пустым, либо содержать один или более операторов. Причем в операторе switch не требуется заключать по последовательность операторов в фигурные скобки.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Схема выполнения оператора switch следующая: • вычисляется выражение ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Схема выполнения оператора switch следующая: • вычисляется выражение в круглых скобках; • вычисленные значения последовательно сравнива ются с константными выражениями, следующими за ключевыми словами case; • если одно из константных выражений совпадает со значением выражения, то управление передаётся на оператор, помеченный соответствующим ключевым словом case; • если ни одно из константных выражений не равно выражению, то управление передаётся на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передаётся на следующий после switch оператор.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Для того чтобы выполнить одни и те же ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Для того чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор несколькими ключевыми словами case. Пример 2: int i=2; switch (i) { case 1: i += 2; case 2: i *= 3; case 0: i /= 2; case 4: i = 5; default: }

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 6. Оператор break обеспечивает прекращение выполнения самого ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 6. Оператор break обеспечивает прекращение выполнения самого внутреннего из объединяющих его операторов switch, do, for, while. После выполнения оператора break управление передается оператору, следующему за прерванным. 6. 7. Оператор for это наиболее общий способ организации цикла. Он имеет следующий формат: for (выражение 1; выражение 2; выражение 3) тело цикла. Выражение 1 обычно используется для установле ния начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяю щее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Схема выполнения оператора for: 1. Вычисляется выражение 1. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Схема выполнения оператора for: 1. Вычисляется выражение 1. 2. Вычисляется выражение 2. 3. Если значение выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for. • Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 3: int fun () { int i, ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 3: int fun () { int i, b; for (I =1, b =1; I < 10; i ++; b + = i*i; return b; } В этом примере вычисляется сумма квадратов чисел от 1 до 9. • Некоторые варианты использования оператора for повышают его гибкость за счет возможности использования нескольких переменных, управляющих циклом.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 4 для работы с символьными переменными: int ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 4 для работы с символьными переменными: int main () { int top = 0, bot= 0; char string[100]= " …. . " ; char temp; while (string [bot++]); // ищем конец строки for ( bot =2; top < bot; top++, bot – – ) { temp=string[top]; // меняем символы string[bot]=temp; } return 0; }

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • В этом примере, реализующем запись строки символов ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • В этом примере, реализующем запись строки символов в обратном порядке, для управления циклом используются две переменные top и bot. • Отметим, что на месте выражение 1 и выражение 3 здесь используются несколько выражений, записан ных через запятую, и выполняемых последовательно. • Другим вариантом использования оператора for является бесконечный цикл. Для организации такого цикла можно использовать пустое условное выраже ние, а для выхода из цикла обычно используют дополнительное условие и оператор break.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 5: for (; ; ) { …. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Пример 5: for (; ; ) { …. . . break; …. }

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Так как согласно синтаксису языка C/C++ оператор может ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Так как согласно синтаксису языка C/C++ оператор может быть пустым, тело оператора for также может быть пустым. Такая форма оператора может быть использована для организации поиска. Пример 6: for (i=0; t[i]<10; i ++ ) ; В данном примере переменная цикла i принимает значение номера первого элемента массива t, значение которого больше 10.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 8. Оператор while. Оператор цикла while называется ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 8. Оператор while. Оператор цикла while называется циклом с предусловием и имеет следующий формат: while (выражение) тело • В качестве выражения допускается использовать любое выражение языка C/C++, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая: 1). Вычисляется выражение. 2). Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. 3) Если выражение истинно, то выполняется тело оператора while. 4) Процесс повторяется с пунта 1.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Оператор цикла вида for (выражение 1; выражение ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Оператор цикла вида for (выражение 1; выражение 2; выражение 3) тело ; может быть заменен оператором while следующим образом: выражение 1; while (выражение 2) { тело выражение 3; } Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять. Внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Оператор do. . while. Оператор цикла do while ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Оператор do. . while. Оператор цикла do while называется while оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид: do тело while (выражение); Схема выполнения оператора do while: 1) Выполняется тело цикла (которое может быть составным оператором). 2) Вычисляется выражение. 3) Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. 4) Если выражение истинно, то выполнение оператора продолжается с пункта 1. • Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Операторы while и do while могут быть вложенными. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Операторы while и do while могут быть вложенными. Пример 6: int i, j, k; i=0; j=0; k=0; do { i ++ J– – while (a[k]< i) k++; } while (i<30 && j< – 30);

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 10. Оператор continue, как и оператор break, ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ 6. 10. Оператор continue, как и оператор break, используется только внутри операторов цикла, но в отличие от него выполнение программы продолжается не с оператора, следующего за прерванным оператором, а с начала прерванного оператора. Формат оператора следующий: continue; Пример 7. int main() { int a, b; for (a = 1, b = 0; a < 100; b+ = a, a++) { if (b% 2) continue; . . /* обработка четных сумм */ } return 0; }

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Когда сумма чисел от 1 до а становится ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Когда сумма чисел от 1 до а становится нечётной, оператор continue передает управление на очеред ную итерацию цикла for, не выполняя операторы обработки чётных сумм. Оператор continue, как и оператор break, прерывает самый внутренний из объемлющих его циклов. 6. 11. Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом. Функция main передает управление операционной системе. Формат оператора: return [выражение];

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Значение выражения, если оно задано, возвращает ся ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ • Значение выражения, если оно задано, возвращает ся в вызывающую функцию в качестве значения вызываемой функции. Если выражение опущено, то возвращаемое значение не определено. • Выражение может быть заключено в круглые скобки, хотя их наличие не обязательно. • Если в какой либо функции отсутствует оператор return, то передача управления в вызывающую функцию происходит после выполнения последнего оператора вызываемой функции. При этом возвращаемое значение не определено. • Если функция не должна иметь возвращаемого значения, то ее нужно объявлять с типом void.

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Продолжение в лекции 9, 10 ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С/С++ Продолжение в лекции 9, 10