Шановні друзі!

Опрацюйте навчальний матеріал та виконайте практичні завдання.  

(завдання у презентаціях)

Склад операторів мови C #, їх синтаксис і семантика успадковані від мови С ++.

1. Об'єктно-орієнтоване програмування (навчальна презентація до уроків)

2. Практикум розв'язування задач лінійної структури. Консольний додаток. (навчальні матеріали для вивчення теми)

Опрацюйте додатково навчальний матеріал "Введення даних в консоль C#" (перейти)

Тип даних - це основа програмування на мові Сі Шарп. Знання типів даних дозволять вам розуміти логіку програмування. Дуже багато помилок не тільки синтаксичних, а й логічних виходить через не знання елементарних понять в типах даних.

Типи даних у C#

Генерація цілих випадкових чисел

C # має 3 методи:

1. Повертає значення більше нуля. Максимальне число більше 10 мільйонів:

Random x = new Random (); // оголошення змінної для генерації чисел

int n = x.Next ();

2. Повертає значення наявне в проміжку (min, max). При цьому min значення входить в випадкове число, а max не входить:

int n = x.Next (-100,100);

3. Повертає ціле додатне число не більше максимального:

int n = x.Next (10);

При цьому максимальне число також не входить в генерацію випадкових чисел, тобто в даному випадку від 0 до 9.

Генерація дробових випадкових чисел

В мові C # немає методів для генерації дробових чисел. Та якщо нам треба отримати дробові числа, ми можемо зробити це в такий спосіб:

double r = Convert.ToDouble (x.Next (-100, 100) /10.0);

В даному випадку ми маємо числа від -10 до 9.9.

При потребі згенерувати додатні дробові числа:

double r = Convert.ToDouble (x.Next (100) /10.0);

В даному випадку ми маємо генерацію від 0 до 9.9.

 

Завдання для самостійного опрацювання

1. Ввести з клавіатури довжини сторін. Обчислити периметр трикутника. Випадки існування трикутника розглянемо пізніше

            Console.WriteLine("Ввести довжини сторiн трикутника");
            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;
            Console.WriteLine("Bивiд результату");
            Console.WriteLine("p={0:f2}", p);
            Console.ReadKey();

Серйозна розважалка (за підручником Т.П. Караванової)

Вправа 41. Якщо на одну шальку терезів посадити Наталку, яка важить n кілограмів, і Даринку, яка важить на 5 кг менше, а на іншу - насипати m кілограмів цукерок, то скільки кілограмів цукерок доведеться з'їсти нещасним дівчаткам, щоб шальки терезів зрівноважилися?

             Console.Write("Скiльки важить Наталка n=");
            double n = double.Parse(Console.ReadLine());
            double k = n - 5;
            Console.Write("Даринка важить - ");
            Console.WriteLine (k);
            Console.Write("Скiльки кг цукерок насипали на iншу шальку терезiв m=");
            double m = double.Parse(Console.ReadLine());
            double x = m - (2 * n - 5);
            Console.Write("Дiвчаткам для врiвноваження терезiв доведеться зiсти кг цукерок x=");
            Console.WriteLine (x);
            Console.ReadKey();

Вправа 42. Невдаха учень Сашко сів виконувати домашнє завдання і просидів за столом 2 години. З них х хвилин він чухав потилицю і дивився у вікно, y хвилин шукав у письмовому столі гумку, щоб стерти у підручнику з англійської мови карикатуру на свого товариша, на малювання якої він потратив перед цим z хвилин. Решту часу Сашко перекладав англійські слова. Скільки слів він устиг перекласти, якщо на переклад одного слова у нього йшло 5 хвилин?

             Console.Write("Скiльки хвилин Сашко дивився у вiкно? ");
            double x = double.Parse(Console.ReadLine());
            Console.Write("Скiльки хвилин Сашко шукав гумку? ");
            double y = double.Parse(Console.ReadLine());
            Console.Write("Скiльки хвилин Сашко малював карикатуру? ");
            double z = double.Parse(Console.ReadLine());
            double s = 2*60-x-y-z;
            Console.Write("Сашко працював над перекладом хв. ");
            Console.WriteLine (s);
            double k = s / 5;
            Console.Write("Сашко переклав слiв ");
            Console.WriteLine("k={0:f0}",k);
            Console.ReadKey();

Опрацюйте перелік та призначення функцій у мові C#

Найбільш вживані методи класу Math:

  1. Abs (x)       Обчислює модуль (абсолютне значення) числа x. Перевантажений для всіх числових типів (int, double і т.д.)
  2. Acos (x)     Функція арккосинуса. Значення аргументу повинно знаходитися в діапазоні від -1 до +1
  3. Asin (x)      Функція арксинуса. Значення аргументу повинно знаходитися в діапазоні від -1 до +1
  4. Atan (x)      Функція арктангенса
  5. Cos (x)       Функція косинуса. Аргумент задається в радіанах
  6. Exp (x)       Обчислює значення (експоненціальна функція)
  7. Log (x)       Повертає значення натурального логарифма (ln x)
  8. Log10 (x)    Повертає значення десяткового логарифма ()
  9. Max (a, b)   Повертає максимум з двох чисел a і b
  10. Min (a, b)    Повертає мінімум з двох чисел a і b
  11. Pow (x, a)   Повертає значення, тобто зводить число x в ступінь a
  12. Sin (x)        Функція синуса. Кут задається в радіанах
  13. Sqrt (x)       Повертає позитивне значення квадратного кореня
  14. Tan (x)        Функція тангенса. Кут задається в радіанах 

Крім методів, в класі є дві константи:
Math.PI - дорівнює числу = 3,14159265358979
Math.E - дорівнює числу E = 2,71828182845905
При використанні математичних функцій необхідно не забувати вказувати ім'я класу, а аргумент функції укладати в круглі дужки.

Наприклад,

1) y=sin(x+pi/10)                          y = Math.Sin(x + Math.PI / 10);

2)                 y = Math.Sqrt(Math.Abs(x + 2))/(Math.Pow(x, 1.0 / 3) + 4);

Вправа 47. Чепуруха Катруся, взявши ножиці в руки, змоделювала собі з маминого круглого капелюшка радіуса R капелюшок нового фасону - з квадратними полями. Якою має бути сторона квадратної коробки для нового капелюшка?

            Console.Write("Чому дорiвнював радiус маминого круглого капелюшка? ");
            double R = double.Parse(Console.ReadLine());
            double a = 2 * R / Math.Sqrt(2);
            Console.Write("Сторона квадратноi коробки для капелюшка Катрусi: ");
            Console.WriteLine("a={0:f0}",a);
            Console.ReadKey();

Вправи для закріплення функцій

Квадрат заданий довжиною сторони. Визначити:

  1. Довжину вписаного в нього кола
  2. Довжину описаного навколо нього кола
  3. Площу вписаного в нього  круга
  4. Площу описаного навколо нього круга

Завдання для практичної роботи

  1. Опрацювати теоретичний матеріал.
  2. Скласти алгоритм розв'язування задач
  3. Cтворити програму та реалізувати її в середовищі мови програмування С#
  4. Записати програмний код та результати виконання програми в зошит

Вправа 44. Курочка Ряба знесла яєчко, а мишка розбила його. Після цього курочка знесла на k яєчок більше, але мишка знову їх розбила. Ряба піднатужилася і знесла знову на k яєчок більше, ніж попереднього разу, але безсовісна мишка розтрощила й ці. Так продовжувалося 5 разів, поки Ряба гне здалася. Зі скількох яєць Дід і Баба змогли б врешті решт зробити собі яєшню?

            Console.Write("На скiльки яець щоразу збiльшилась кiлькiсть знесених курочкою Рябою? ");
            int k = int.Parse(Console.ReadLine());
            int s = 5 + 10 * k;
            Console.Write("Баба з дiдом могли б зробити яечню iз такоi кiлькостi яець ");
            Console.Write(s);
            Console.ReadLine();

Вправа 57. Дано довжину кола. Визначити площу круга, обмеженого цим колом.

            Double l, r, s; 
            Console.Write("Чому дорiвнює довжина даного кола? ");
            l = double.Parse(Console.ReadLine());
            r = l / (2 * Math.PI);
            s = Math.PI*r*r;
            Console.Write("Площа вiдповiдного круга дорiвнюe ");
            Console.Write("s={0:f2}",s);
            Console.ReadLine();

Вправа. Арифметичну прогресію задано першим членом а, кроком h та загальною кількістю членів n. Знайти: суму арифметичної прогресії та k-тий член арифметичної прогресії.

        

            Double a, h, n, ak, s, k; 
            Console.Write("Чому дорiвнює перший член прогресii? ");
            a = double.Parse(Console.ReadLine());
            Console.Write("Чому дорiвнює крок змiни в прогресii? ");
            h = double.Parse(Console.ReadLine());
            Console.Write("Скiльки членiв в прогресii? ");
            n = double.Parse(Console.ReadLine());
            Console.Write("Який член прогресii шукатимемо? ");
            k = double.Parse(Console.ReadLine());
            ak = a+(k-1)*h;
            s = (2*a+h*(n-1))/2*n;
            Console.Write("k-ий член прогресii дорiвнюe ");
            Console.WriteLine ("ak={0:f2}", ak);
            Console.Write("Сума членiв прогресii дорiвнюe ");
            Console.WriteLine ("s={0:f2}",s);
            Console.ReadLine();

Вправа 77-1. Дано значення змінних x, y, z. Обчислити значення змінної t.

            Double x, y, z, t; 
            Console.Write("x=");
            x = double.Parse(Console.ReadLine());
            Console.Write("y=");
            y = double.Parse(Console.ReadLine());
            Console.Write("z=");
            z = double.Parse(Console.ReadLine());
            t = (x + y) / (x - 1 / 2) - (x-z) / (x*y);
            Console.WriteLine();
            Console.WriteLine ("t={0:f2}", t);
            Console.ReadLine();

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