Файл: Создание проектов разветвляющейся структуры.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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) Какие блоки недопустимы в разветвляющемся алгоритме?