- •Глава 1. Начинаем свой путь - Введение в программирование
- •Введение в программирование
- •Внутреннее устройство компьютера
- •Запомнить:
- •Глава 3. Языки программирования - Введение в программирование Язык программирования, как средство управления компьютером
- •Машинные языки
- •Языки ассемблера
- •Языки высокого уровня
- •Предыстория языков программирования
- •Запомнить:
- •Глава 4. Среда программирования Если у вас появился вопрос, то задать его можно на форуме Глава 4. Что такое среда программирования - Введение в программирование
- •Общее описание работы среды программирования
- •Среда CodeBlocks
- •Запомнить:
- •Глава 5. Первая программа Если у вас появился вопрос, то задать его можно на форуме Глава 5. Первая программа или начинаем программировать - Введение в программирование
- •Запомнить:
- •Выполнить самостоятельно:
- •Запомнить:
- •Выполнить самостоятельно:
- •Глава 7. Немного математики Если у вас появился вопрос, то задать его можно на форуме
- •Оператор Break
- •Глава 11. Оператор continue Если у вас появился вопрос, то задать его можно на форуме
- •Если у вас появился вопрос, то задать его можно на форуме
Запомнить:
Переменная - это область в памяти компьютера, которая хранит данные, которые могут меняться (отчего и название - переменная).
Эти данные бывают разных типов: числовые, символьные, логические. Пока что мы с вами рассмотрели только числовые целые (int).
Абсолютно все в компьютере на низком уровне сводиться к работе с переменными (данными), поэтому без них компьютер и программирование потеряли бы смысл.
Выполнить самостоятельно:
Напишите программу, которая запрашивает у пользователя три числа, записывает их в ранее объявленные переменные, а затем с помощью первого оператора вывода выводит их сумму, а во втором операторе вывода выводит их произведение. Сравните ваш код с кодом на следующей странице.
Вы также можете сами себе выдумать подобное задание и реализовать. Больше работайте в редакторе с программой, экспериментируйте с кодом и у вас все получится!
Глава 7. Немного математики Если у вас появился вопрос, то задать его можно на форуме
Страница 2 из 2
//Программа, которая просит от пользователя ввести три числа, //и затем печатает их сумму и произведение
#include <iostream>
using namespace std;
int main() { int a, b, c;
cout << "Vvedite poshaluyasta tri chisla\n"; cin >> a >> b >> c; cout << "Summa ravna: " << a + b + с << endl; cout << "Proizvedeniye ravno: " << a * b * с << endl; return 0; }
Глава 7. Немного математики Если у вас поя |
||||||||||||||||||||||||||||||||||||
Глава 7. Немного математики - Введение в программирование Программирование и математика неразрывно связаны между собой, хотя конечно же это не значит, что ее нужно знать на очень высоком уровне. Вполне достаточно уверенно разбираться с основными математическими операциями, такими как сложение, вычитание, умножение, деление и т.д. Ну и конечно же логика, логика и еще раз логика. На ней то все и строиться в программировании. Ее мы и будем с вами развивать. Итак, разбираем основные математические операции в программировании. Некоторые из них мы уже знаем из предыдущих глав, сейчас же мы на них остановимся подробнее. Разбирать будем на примере. Давайте напишем с вами программу, которая будет у пользователя запрашивать значения двух катетов прямоугольного треугольника, а выдавать значение его гипотенузы. Все мы знаем, что для этого используется теорема Пифагора. //Программа находит значение гипотенузы прямоугольного треугольника
#include <iostream> #include <math.h>
using namespace std; int main() { float ab, bc; //объявляем переменные типа float, для хранения значений катетов float ac; //для хранения значения гипотенузы
cout << "Vvedite katet 1: " << endl; //печатаем на экране подсказку о вводе cin >> ab; //запоминаем введенное значение в переменную ab cout << "Vvedite katet 2: " << endl; //печатаем на экране подсказку о вводе cin >> bc; //запоминаем введенное значение в переменную bc
ac = sqrt((ab * ab) + (bc * bc)); //считаем гипотенузу по формуле
cout << "Gipotenuza ravna: " << ac << endl; //выводим результат на экран
return 0; } Здесь внимания заслуживает только строка ac = sqrt((ab * ab) + (bc * bc)); Итак, здесь мы переменной ac присваиваем значение, полученное в правой части. Все мы знаем, что квадрат гипотенузы равен сумме квадратов катетов прямоугольного треугольника. Для того, чтобы в левой части избавиться от квадрата, мы извлекаем квадратный корень из выражения в правой части. Для этого мы используем библиотечную функцию sqrt, описанную в заголовочном файле math.h, который мы подключили с помощью директивы препроцессора в начале программы #include <math.h> А теперь давайте подробнее остановимся на математических функциях библиотеки math.h. Такое понятие как функция мы еще с вами не рассматривали, поэтому скажу кратко, что функция - это как бы небольшая законченная программа, которая выполняет свою задуманную задачу (например, находит корень числа). Для того, чтобы его выполнять, функция обычно принимает какие-либо данные в качестве аргументов и возвращает результат своей работы (бывает и так, что функция не принимает аргументов и не возвращает значение - подробнее рассматриваем функции в последующих главах учебника). Сейчас вы это сами увидите на примере математических функций библиотеки math.h языка программирования С++. Еще одно замечание: все математические функции принимают в качестве аргументов и возвращают числа с плавающей точкой двойной точности double. Иными словами, принимают дробные числа, которые могут содержать после запятой 15 - 16 разрядов. Но это не значит, что вам при использовании данных функций нужно обязательно пользоваться дробными числами - вы можете использовать любые числа. В данном случае, программа сама выполнит необходимые приведения типов.
Можете поэксперементировать с данными функциями в среде программирования. Не забывайте о вводе допустимых значений в качестве аргументов данных функций, иначе компилятор будет выдавать ошибки выхода за пределы значений и т.д.
Глава 8. Начинаем управлять Если у вас появился вопрос, то задать его можно на форуме
|
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:
//Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) cout << "Number positive" << endl; return 0; } Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости. В данном случае строчка кода, принадлежащая к оператору if смещена вправо, что создает хорошую видимость принадлежности. Синтаксис условного оператора выглядит так: if (условие) оператор; либо так, в случае нескольких операторов if (условие) { оператор 1; оператор 2; ....... оператор n; } Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:
Выделяем память для переменной целого типа; Выводим сообщение, в котором пользователю предлагаем ввести целое число; Считываем это число и запоминаем в переменной; Если (введенное число больше нуля), то Выводим на экран сообщение о том, что число положительное; Как видите, ничего сложного! Ниже привожу пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две): //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } return 0; } Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается. Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотим пример использования, модифицировав предыдущую программу: //Используем условный оператор if - else #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative or a zero" << endl; cout << "You have entered number: " << value << endl; } return 0; } Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис: if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Как же быть в случае, если нам нужно предусмотреть три условия:
В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис: if (условие 1) { оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } Модифицировав предыдущий листинг, получим следующий код: //Используем условный оператор if - else if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } return 0; }
Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем, if (value > 0) то управление переходит к операторам этого блока, { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; } иначе этот блок игнорируется и управление переходит к следующей строке условного оператора, else if (value == 0) в которой также проверяется условие и при его выполнении выполняется блок операторов этого if { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } В случае, если не выполняется и это условие, то выполняется блок { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; } Если все это записать на языке понятном человеку, то получиться примерно так: Резервируем место в памяти компьютера под целое число; Запрашиваем у пользователя целое число; Сохраняем это число в памяти компьютера; Если это число больше нуля, то { Выводим сообщение, что число - положительное; Выводим это число; } Иначе Если это число равно ноль, то { Выводим сообщение, что это число ни положительное, ни отрицательное; Выводим это число; } Иначе { Выводим сообщение, что это число - отрицательное; Выводим это число; } Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведу такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится: //Используем условный оператор if #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; if (value > 0) { cout << "Number positive" << endl; cout << "You have entered number: " << value << endl; if (value >= 100) cout << "This number is more or equally 100" << endl; else cout << "This number is less 100" << endl; } else if (value == 0) { cout << "The number is not neither positive, nor negative" << endl; cout << "You have entered number: " << value << endl; } else { cout << "Number negative" << endl; cout << "You have entered number: " << value << endl; if (value >= -100) cout << "This number is more or equally -100" << endl; else cout << "This number is less -100" << endl; } return 0; } Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования): if (условие) { if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков: switch (выражение) { case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; } Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение. //Используем оператор выбор case #include <iostream> using namespace std; int main() { int value; cout << "Enter number: " << endl; cin >> value; switch (value) { case 0: cout << "You have entered number 0" << endl; break; case 5: cout << "You have entered number 5 " << endl; break; case 21: cout << "You have entered number 21 " << endl; break; default: cout << "The number is not identified" << endl; break; } return 0; } Запомнить: Теперь давайте подведем итог. Мы разобрали с вами условные операторы, без которых практически не обходится ни одна программа. Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:
оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
оператор 1; оператор 2; ....... оператор n; } else if (условие 2) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; }
if (условие) { оператор 1; оператор 2; ....... оператор n; } else { оператор 1; оператор 2; ....... оператор n; } } else { оператор 1; оператор 2; ....... оператор n; if (условие) { оператор 1; оператор 2; ....... оператор n; } }
case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; case константное_выражение: оператор 1; оператор 2; ....... оператор n; break; default: оператор 1; оператор 2; ....... оператор n; break; }
Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме |
||||||||||||||||||||||||||||||||||||
В предыдущей главе учебника по программированию для начинающих мы с вами рассматривали такой важный момент, как циклы. Теперь мы уже знаем, что циклы применяются в программировании в том случае, когда нужно определенный участок кода программы выполнить некоторое заранее известное количество раз (цикл, управляемый счетчиком), либо выполнять до наступления определенного условия (цикл, управляемый меткой). Также мы уяснили для себя, что в языке программирования С++ циклы бывают двух типов - это while (c предусловием и постусловием) и for. Теперь пришло время разобраться с таким нужным и полезным оператором, как оператор break . Сразу скажу, что в основном он применяется в рассмотренных ранее нами циклических структурах: while и for. Теперь, дабы понять его назначение, давайте сразу попытаемся прочувствовать его работу на примере программы. Начнем с самого простого.
