ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2023
Просмотров: 45
Скачиваний: 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) Какие блоки недопустимы в разветвляющемся алгоритме?