- •Розділ 1 основи програмування у шкільному курсі інформатики
- •1.1. Програмування у курсі інформатики
- •1.2. Огляд навчальних програм
- •Розділ 2 теоретичні основи
- •2.1. Мова програмування. Поняття програми
- •2.2. Величини. Тип величин
- •2.3. Стандартні типи у с#
- •2.6. Вирази та операції
- •2.4. Опис змінних та констант
- •2.5. Перетворення типів
- •2.7. Консольні програми. Реалізація лінійних алгоритмів
- •2.7.Введення/виведення даних у консольних програмах
- •2.8. Реалізація лінійних алгоритмів
- •2.9. Реалізація алгоритмів із розгалуженням
- •Розділ 3 Практична частина
- •3.1. Тестування, як підхід до оцінювання знань учнів
- •3.2. Розробка тестів
- •3.2.1. Типи даних
- •3.2.2. Опис змінних і констант
- •3.2.3. Арифметичні вирази
- •3.2.4. Логічні вирази
- •3.2.5. Умовний оператор
- •3.2.6. Оператор вибору
- •3.3. Використання системи тестування на базі Google Forms
- •3.3.1. Огляд системи тестування
- •3.3.2. Створення тестових форм
- •3.3.3. Приклад виконання тесту
- •Висновки
- •Список використаної літератури
- •Анотація
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();
}
}
}
