
- •210700 Инфокоммуникационные технологии и системы связи
- •220700 Автоматизация технологических процессов и производств
- •230400 Информационные системы и технологии
- •1. Цели и задачи дисциплины
- •2. Место дисциплины в структуре основной образовательной программы
- •3. Требования к уровню освоения содержания дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •4. Объем дисциплины и виды учебной работы
- •5. Содержание дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •6. Лабораторный практикум
- •7. Библиографический список
- •8. Материально-техническое обеспечение дисциплины
- •9. Опорный конспект
- •1. Основы алгоритмизации
- •1.1 Этапы решения задач на эвм.
- •1.2. Алгоритм. Свойства алгоритмов
- •1.3. Формы представления алгоритмов
- •1.4. Алгоритмическая конструкция ветвления
- •1.5. Алгоритмическая конструкция цикла
- •2.1. Разработка консольного проекта
- •2.3. Комментарий
- •2.4. Организация ввода и вывода информации
- •Вывод данных
- •Ввод данных
- •2.5. Разработка проекта типа Windows Forms Application
- •3. Основные элементы языка
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Переменные и константы
- •3.4. Символьные типы данных
- •3.5. Данные типа int
- •3.6. Данные с плавающей точкой
- •3.7. Логический тип данных
- •3.8. Операции и выражения
- •Арифметические операции
- •Операции инкремента и декремента
- •Операции отношения и логические операции
- •Оператор присваивания
- •Составные операторы присваивания
- •Оператор условия ? :
- •Операция sizeof
- •4. Программирование разветвляющих и циклических алгоритмов
- •4.1. Общие сведения
- •4.2. Оператор if
- •4.3. Оператор switch
- •4.4. Оператор цикла for
- •4.5. Оператор цикла while
- •4.6. Оператор цикла do while
- •4.7. Применение оператора continue
- •4.8. Оператор goto
- •5. Массивы и строки
- •5.1. Массивы
- •5.2. Строки
- •6. Функции
- •6.1. Общие сведения
- •6.2. Описание функции и ее тип
- •6.3. Вызов функции
- •6.4. Область действия переменной
- •6.5. Классы памяти
- •Глоссарий
- •10. Задания на лабораторные работы и методические указания к их выполнению
- •11. Задания на контрольную работу и методические указания к их выполнению
- •Оглавление
4. Программирование разветвляющих и циклических алгоритмов
4.1. Общие сведения
Операторы, управляющие ходом выполнения программы, позволяют выполнять ветвление, циклическое повторение одного или нескольких операторов, передачу управления в нужное место кода программы. Под вычислительным процессом понимают процесс выполнения операторов программы. Операторы программы могут быть простыми или составными.
Простой оператор – это оператор, не содержащий другие операторы. Разделителем простых операторов служит точка с запятой. Специальным случаем простого оператора является пустой оператор, состоящий из единственного символа ‘;’.
Составной оператор, или блок, - это любая совокупность простых операторов, заключенная в фигурные скобки {}. Составной оператор идентичен простому оператору и может находиться в любом месте программы, где синтаксис языка допускает наличие оператора.
4.2. Оператор if
Операторы ветвления выбирают в программе из группы альтернатив возможное продолжение вычислительного процесса. Выбор выполняется исходя из значения заданного выражения.
Оператор if имеет следующую общую форму записи:
if (cond_expression)
TRUE_statement
[else
FALSE_statement]
FALSE
TRUE
TRUE_statement
FALSE_statement
следующий
оператор программы
При выполнении оператора if сначала вычисляется логическое выражение cond_expression. Если результат ИСТИНА (любое отличное от нуля значение), выполняется оператор TRUE_statement. Если результат логического выражения ЛОЖЬ (равен 0), то выполняется оператор FALSE_statement.
Если ключевое слово else отсутствует и результат логического выражения ЛОЖЬ, то в этом случае оператор TRUE_statement пропускается, а управление передается на следующий после if оператор.
Операторы TRUE_statement и FALSE_statement сами могут быть операторами if, образуя так называемые вложенные if. Компилятор интерпретирует вложенные if, сопоставляя каждое из ключевых слов else с последним встретившимся словом if, не имеющим “своего” else. Соответствие ищется в пределах блока, в который заключено слово if. Внутренние и внешние блоки при этом не рассматриваются. Если соответствия для if не найдено, компилятор полагает, что if не имеет ветви else.
Пример 4_1. Использование оператора if.
#include "stdafx.h"
using namespace System;
int main()
{ int a, b;
Console::Write("\nВведите значение b= ");
b = Convert::ToInt32(Console::ReadLine());
if (b > 10)
a = 100;
else
if (b == 10)
a = 10;
else
a = 5;
Console::WriteLine("Значение переменной a = " + a);
Console::ReadLine();
return 0;
}
Результат работы программы (при вводе значения 3) :
Введите значение b= 3 <Enter>
Значение переменной a = 5
Результат работы программы (при вводе значения 23) :
Введите значение b= 23 <Enter>
Значение переменной a = 100
Результат работы программы (при вводе значения 10) :
Введите значение b= 10 <Enter>
Значение переменной a = 10
Пример 4_2. Вложенные if:
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{ int a = 1, b = 10;
if (a == 1)
if (b == 1)
Console::WriteLine("\na=1, b = 1 ");
else
Console::WriteLine("\nb не равно 1");
Console::WriteLine("Значение переменной a = " + a);
Console::ReadLine();
return 0;
}
Результат работы программы:
b не равно 1
Значение переменной а = 1
В результате выполнения этой программы на экран будет выводиться строка “a не равно 1”, хотя на самом деле a=1. Ошибка происходит потому, что компилятор сопоставляет if с ближайшим else (то есть со 2-м if). Ошибку можно исправить, поставив фигурные скобки, ограничивающие блок.
Пример 4_3. Исправленная предыдущая программа.
#include "stdafx.h"
using namespace System;
int main()
{
int a = 1, b = 10;
if (a == 1)
{
if (b == 1)
Console::WriteLine("\na=1, b = 1 ");
}
else
Console::WriteLine("\n b не равно 1");
Console::WriteLine("Значение переменной a = " + a);
Console::ReadLine();
return 0;
}
Результат работы программы:
Значение переменной а = 1