Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вивчення основ програмування у школі. Лінійні алгоритми та алгоритми з розгалуженням7.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.8. Реалізація лінійних алгоритмів

Лінійним називається алгоритм, всі команди якого виконуються послідовно в тому порядку, в якому вони записані. Як правило, реалізація лінійного алгоритму складається із трьох етапів: ввід вихідних (початкових) даних, обчислення значень виразів та вивід результатів.

Приклад. Обчислити площу трикутника, якщо трикутник задано довжинами сторін.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// введення вихідних даних

Console.Write("a=");

double a = double.Parse(Console.ReadLine());

Console.Write("b=");

double b = double.Parse(Console.ReadLine());

Console.Write("c=");

double c = double.Parse(Console.ReadLine());

// реалізація алгоритму розв'язання задачі

double p = (a + b + c) / 2;

double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));

// вивід результату

Console.WriteLine("s={0}", s);//

Console.ReadKey();//

}

}

}

Результат роботи програми:

a=3

b=4

c=5

s=6

2.9. Реалізація алгоритмів із розгалуженням

Розгалуженням називається алгоритмічна конструкція, що дозволяє виконавцеві алгоритму вибирати ту чи іншу послідовність дій залежно від певних умов.

Умовний оператор

Алгоритмічна конструкція вибору з двох альтернатив, дозволяє виконавцеві алгоритму вибирати один із двох варіантів дій залежно від істинності деякої умови. У мові C# така конструкція реалізується умовним оператором (оператором розгалуження). Існують дві форми для даного оператора повна та скорочена.

Повна форма

Програмна структура

Аналог на мові блок-схем

Приклад

if (<умова>)

<оператор1>;

else

<оператор2>;

if(x>y)

max=x;

else

max=y;

Скорочена форма

Програмна структура

Аналог на мові блок-схем

Приклад

if (<умова>)

<оператор1>;

if(x!=0)

z=1/x;

Приклад. Визначити чи належить значення дійсної змінної x проміжку [0,1] та вивести відповідне повідомлення.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// введення вихідних даних

Console.Write("x=");

double x = double.Parse(Console.ReadLine());

// реалізація алгоритму розв'язання задачі

if (x >= 0 && x <= 1)

Console.WriteLine("належить");

else

Console.WriteLine("не належить");

//

Console.ReadKey();

}

}

}

Результат роботи програми:

x=0,3

належить

Гілки деякого розгалуження можуть містити інші розгалуження. У цьому випадку виникає вкладеність умовних операторів.

Приклад. Скласти програму для обчислення значення функції

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// введення вихідних даних

Console.Write("x=");

double x = double.Parse(Console.ReadLine());

// реалізація алгоритму розв'язання задачі

double f;

if (x <= 0)

f = 0;

else

if (x <= 1)

f = x * x - x;

else

f = x * x - Math.Sin(Math.PI * x * x);

// вивід результату

Console.WriteLine("f={0}", f);

//

Console.ReadKey();

}

}

}

Результат роботи програми:

x=0,5

f=-0,25

Умовний оператор (?:)

Якщо значення виразу може дорівнювати одному із двох значень в залежності від виконання чи невиконання деякої умови, то можна скористатися умовним оператором (?:).

Загальний вигляд умовного оператора (?:)

Аналог з використанням умовного оператора if

<змінна>=<умова>?<значення1>:<значення2>;

if (<умова>)

<змінна>=<значення1>;

else <змінна>=<значення2>;

Приклад. Знайти максимальне із двох дійсних чисел.

З використанням умовного оператора (?:)

З використанням умовного оператора if

max = (x>y) ? x : y;

if (x>y)

max=x;

else

max=y;

Оператор вибору switch

Оператор switch дозволяє передавати керування одному з декількох операторів в залежності від значення виразу, який називають селектором вибору. У якості селектора вибору може бути вираз цілого типу, типу char, переліковного типу або типу string.

Загальне правило запису

Приклад

Вводиться оцінка – цифра, вивести оцінку прописом (селектор вибору цілого типу).

switch (<селектор вибору>)

{

case <константа1> : <оператор1>;

break;

case <константа2> : <оператор2>;

break;

. . . . . . . . . . . . . . . .

case <константаN> : <операторN>;

break;

default : <оператор N+1>;

break;

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int mark;

Console.Write("Mark = ");

mark = int.Parse(Console.ReadLine());

switch (mark)

{

case 2: Console.WriteLine("Незадовільно");

break;

case 3: Console.WriteLine("Задовільно.");

break;

case 4: Console.WriteLine("Добре");

break;

case 5: Console.WriteLine("Відмінно");

break;

default: Console.WriteLine("Неправильна

оцінка.");

break;

}

Console.ReadKey();

}

}

}

Якщо для декількох варіантів необхідно виконати одні і ті ж оператори, то ці оператори вказують тільки для одного з варіантів, а для всіх інших не вказуємо ні необхідних операторів, ні операторів break.

Приклад. З клавіатури вводиться оцінка у національній шкалі, необхідно вивести повідомлення про те, чи зараховано студенту залік.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int mark;

Console.Write("Mark = ");

mark = int.Parse(Console.ReadLine());

switch (mark)

{

case 1:

case 2:Console.WriteLine("Незараховано.");

break;

case 3:

case 4:

case 5:Console.WriteLine("Зараховано.");

break;

default: Console.WriteLine("Неправильна оцінка.");

break;

}

Console.ReadKey();

}

}

}

Приклад. З клавіатури вводиться колір помідора, на екран необхідно вивести у якому він стані (росте, дозріває чи можна зірвати). При розв’язанні цього завдання використаємо оператор switch, у якому селектор і константи вибору є величинами типу string.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

string color;

Console.Write("Color = ");

color = Console.ReadLine();

switch (color)

{

case "Green" : Console.WriteLine("Ще росте");

break;

case "Yellow": Console.WriteLine("Дозріває.");

break;

case "Red": Console.WriteLine("Можна зірвати");

break;

default: Console.WriteLine("Помідор-мутант.");

break;

}

Console.ReadKey();

}

}

}