ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2023
Просмотров: 109
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа №6Тема: Создание проектов разветвляющейся структурыЦель: Научиться работать разрабатывать проекты с разветвляющейся структурой.Оборудование и аппаратура:1) Методические указания по выполнению лабораторных работПорядок выполнения работы:1. Изучить теоретический материал.2. Выполнить задания.3. Защитить лабораторную работу.Краткие теоретические сведения В обозначениях оператор отношения и логический оператор термин отношения означает взаимосвязь, которая может существовать между двумя значениями, а термин логический — взаимосвязь между логическими значениями "истина" и "ложь". И поскольку операторы отношения дают истинные или ложные результаты, то они нередко применяются вместе с логическими операторами. Именно по этой причине они и рассматриваются совместно.Ниже перечислены операторы отношения:Операторы отношения C# Оператор Значение== Равно!= Не равно> Больше< Меньше>= Больше или равно<= Меньше или равноК числу логических относятся операторы, приведенные ниже:Оператор Значение& И| ИЛИ^ Исключающее ИЛИ&& Укороченное И|| Укороченное ИЛИ! НЕУсловные операторы позволяют управлять потоком выполнения программы, чтобы не выполнялась каждая строка кода, как она следует в программе. Давайте рассмотрим все условные операторы языка C#:Оператор ifДля организации условного ветвления язык C# унаследовал от С и С++ конструкцию if...else. Ее синтаксис должен быть интуитивно понятен для любого, кто программировал на процедурных языках:if (условие) оператор (операторы)else оператор (операторы)Если по каждому из условий нужно выполнить более одного оператора, эти операторы должны быть объединены в блок с помощью фигурных скобок {...}. (Это также касается других конструкций C#, в которых операторы могут быть объединены в блок — таких как циклы for и while.)
Стоит обратить внимание, что в отличие от языков С и С++, в C# условный оператор if может работать только с булевскими выражениями, но не с произвольными значениями вроде -1 и 0.В операторе if могут применяться сложные выражения, и он может содержать операторы else, обеспечивая выполнение более сложных проверок. Синтаксис похож на применяемый в аналогичных ситуациях в языках С (С++) и Java. При построении сложных выражений в C# используется вполне ожидаемый набор логических операторов. Давайте рассмотрим следующий пример:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){string myStr;Console.WriteLine("Введите строку: ");myStr = Console.ReadLine();if (myStr.Length < 5)Console.WriteLine("\nВ данной строке меньше 5 символов");else if ((myStr.Length >= 5) && (myStr.Length <= 12)) Console.WriteLine("\nВ данной строке {0} символов",myStr.Length);else Console.WriteLine("\nВ данной строке больше 12 символов");Console.ReadLine();}}}Как видите количество else if, добавляемых к единственному if, не ограничено. Один момент, который следует отметить касательно if: фигурные скобки применять не обязательно, если в условной ветви присутствует только один оператор, как показано в исходном примере.Тернарный оператор (?) относится к числу самых примечательных в C#. Он представляет собой условный оператор и часто используется вместо определенных видов конструкций if-then-else. Ниже приведена общая форма этого оператора: Выражение1 ? Выражение2 : ВыражениеЗ;Здесь Выражение1 должно относиться к типу bool а Выражение2 и ВыражениеЗ — к одному и тому же типу. Обратите внимание на применение двоеточия и его местоположение в операторе ?. Значение выражения ? определяется следующим образом. Сначала вычисляется Выражение1. Если оно истинно, то вычисляется Выражение2, а полученный результат определяет значение всего выражения ? в целом. Если же Выражение1 оказывается ложным, то вычисляется ВыражениеЗ, и его значение становится общим для всего выражения ?: int b, c;c = -4;b = c >= 0 ? c : c*c; // b = 16Присваивать переменной результат выполнения оператора ? совсем не обязательно. Например, значение, которое дает оператор ?, можно использовать в качестве аргумента при вызове метода. А если все выражения в операторе ? относятся к типу bool, то такой оператор может заменить собой условное выражение в цикле или операторе if.Задание к работе:1) Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень — отрицательные. Составить блок-схему алгоритма.
2) Создать программу для вычисления корней квадратного уравнения, согласно блок-схеме.Дополнительное задание:Описать работу автомата с напитками. Нужно запросить у пользователя информацию о том, будет ли он чай или кофе; с молоком или без молока; сколько ложек сахара требуется положить.Требуется учесть, что, если пользователь выбрал некорректный вариант напитка, нужно прервать программу с соответствующим сообщением. Если пользователь выбрал некорректный вариант на вопрос с молоком, то считать вариант без молока. Если пользователь выбрал более 5 ложек сахара, ограничить их количество 5. Если выбрано отрицательное или нулевое значение, выдать сообщение «без сахара». При этом нужно учесть правильность окончаний при выводе сообщений о количестве сахара («1 ложка сахара», «2 ложки сахара» и т.д.)Контрольные вопросы: 1) Какой алгоритм называется разветвляющимся?2) Какие блоки могут присутствовать в разветвляющемся алгоритме?3) Какие блоки недопустимы в разветвляющемся алгоритме?
Стоит обратить внимание, что в отличие от языков С и С++, в C# условный оператор if может работать только с булевскими выражениями, но не с произвольными значениями вроде -1 и 0.В операторе if могут применяться сложные выражения, и он может содержать операторы else, обеспечивая выполнение более сложных проверок. Синтаксис похож на применяемый в аналогичных ситуациях в языках С (С++) и Java. При построении сложных выражений в C# используется вполне ожидаемый набор логических операторов. Давайте рассмотрим следующий пример:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){string myStr;Console.WriteLine("Введите строку: ");myStr = Console.ReadLine();if (myStr.Length < 5)Console.WriteLine("\nВ данной строке меньше 5 символов");else if ((myStr.Length >= 5) && (myStr.Length <= 12)) Console.WriteLine("\nВ данной строке {0} символов",myStr.Length);else Console.WriteLine("\nВ данной строке больше 12 символов");Console.ReadLine();}}}Как видите количество else if, добавляемых к единственному if, не ограничено. Один момент, который следует отметить касательно if: фигурные скобки применять не обязательно, если в условной ветви присутствует только один оператор, как показано в исходном примере.Тернарный оператор (?) относится к числу самых примечательных в C#. Он представляет собой условный оператор и часто используется вместо определенных видов конструкций if-then-else. Ниже приведена общая форма этого оператора: Выражение1 ? Выражение2 : ВыражениеЗ;Здесь Выражение1 должно относиться к типу bool а Выражение2 и ВыражениеЗ — к одному и тому же типу. Обратите внимание на применение двоеточия и его местоположение в операторе ?. Значение выражения ? определяется следующим образом. Сначала вычисляется Выражение1. Если оно истинно, то вычисляется Выражение2, а полученный результат определяет значение всего выражения ? в целом. Если же Выражение1 оказывается ложным, то вычисляется ВыражениеЗ, и его значение становится общим для всего выражения ?: int b, c;c = -4;b = c >= 0 ? c : c*c; // b = 16Присваивать переменной результат выполнения оператора ? совсем не обязательно. Например, значение, которое дает оператор ?, можно использовать в качестве аргумента при вызове метода. А если все выражения в операторе ? относятся к типу bool, то такой оператор может заменить собой условное выражение в цикле или операторе if.Задание к работе:1) Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень — отрицательные. Составить блок-схему алгоритма.
2) Создать программу для вычисления корней квадратного уравнения, согласно блок-схеме.Дополнительное задание:Описать работу автомата с напитками. Нужно запросить у пользователя информацию о том, будет ли он чай или кофе; с молоком или без молока; сколько ложек сахара требуется положить.Требуется учесть, что, если пользователь выбрал некорректный вариант напитка, нужно прервать программу с соответствующим сообщением. Если пользователь выбрал некорректный вариант на вопрос с молоком, то считать вариант без молока. Если пользователь выбрал более 5 ложек сахара, ограничить их количество 5. Если выбрано отрицательное или нулевое значение, выдать сообщение «без сахара». При этом нужно учесть правильность окончаний при выводе сообщений о количестве сахара («1 ложка сахара», «2 ложки сахара» и т.д.)Контрольные вопросы: 1) Какой алгоритм называется разветвляющимся?2) Какие блоки могут присутствовать в разветвляющемся алгоритме?3) Какие блоки недопустимы в разветвляющемся алгоритме?