Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи Програмування C_.doc
Скачиваний:
46
Добавлен:
18.12.2018
Размер:
1.44 Mб
Скачать

2. Структура програми мовою с#.

Розглянемо наступний приклад.

/* Це текст першої програми мовою С# */

// Коментар може бути поміщений після двох слешів

using System;

class Program

{

// Виклик будь-якої програми означає виклик функції Main()

public static void Main()

{ // Вивели заголовок

Console.WriteLine("Перша програма"+"!!!");

// Вивели запрошення

Console.WriteLine("Введіть ціле число ");

Int I; // Визначили цілу змінну

// Прочитали цілу змінну

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

Console.WriteLine("i = " + i); // Вивели її значення

// Вивели запрошення

Console.WriteLine("Введіть дійсне число ");

double f; // Визначили дійсну змінну

// Прочитали дійсну змінну

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

Console.WriteLine("f = " + f); // Вивели її значення

}

}

На що необхідно звернути увагу? Перш за все, текст, поміщений між знаками /* */ є коментарем, тобто поясненнями до коду програми, які ігноруються компілятором. Проте, такі пояснення конче необхідні тим, хто працює з програмою і вважаються обов’язковими. Коментарем також вважається і все, що знаходиться праворуч від знаків // – так зручно оформлювати коментарі до окремих рядків. І одразу зауважимо, що мова C# є регістро-залежною, отже великі та маленькі літери не слід плутати.

Далі, у рядку using System; фіксується простір імен System, що містить елементи бібліотеки класів .NET. Це спрощує звертання до потрібних нам методів цих класів, зокрема до методів класу Console, необхідних при роботі консольних застосувань.

Наступний рядок програми містить текст class Program і означає, що вміст фігурних дужок { } визначає члени класу з іменем Program. Ім’я (ідентифікатор) класу Program компілятор створив таким самим, як і ідентифікатор основного програмного файлу Program.cs. Проте, ім’я класу може бути довільно змінене.

Рядок public static void Main() – це заголовок функції Main. Як уже зазначалось всі підпрограми мови C# по суті є функціями. Більше того, ці функції повинні бути членами деякого класу, як у даному прикладі – класу Program. Функції-члени класів в мові C# звуться методами. Головним методом проекту повинен бути метод із зарезервованим іменем Main – цей метод використовується як точка входу при роботі нашого застосування. (Зверніть увагу на написання – на відміну від мов С та С++ назва цієї функції починається з великої літери). Наступна пара фігурних дужок містить тіло цієї функції. Службове слово public визначає специфікатор доступу до члену класу. В даному разі відкритість методу Main не є обов’язковою вимогою синтаксису, проте ми будемо дотримуватись саме такої нотації при визначенні методу Main. Службове слово static означає, що даний метод може бути використаний без створення власне об’єкту, що належить класу Program. В даному випадку саме таке визначення методу Main є принциповим, адже цей метод викликається при запуску програми. І нарешті, слово void означає, що метод Main не повертає ніякого результату. Порожні круглі дужки після імені методу обов’язкові і можуть містити список формальних параметрів методу, якщо вони потрібні для його роботи. В нашому прикладі метод Main працює без вхідних даних. Вся логіка класу Program зосереджена у методі Main – інших методів в даному класі просто немає. Цей метод звертається до класу Console, визначеного у просторі імен System, як вже згадувалось вище. Методи цього класу WriteLine та ReadLine використовуються відповідно для виводу рядка у стандартний потік виведення та для введення рядка із стандартного потоку введення. Оскільки стандартні потоки є символьними (стандартний потік введення спрямований з клавіатури, а стандартний потік виведення спрямований на консоль), необхідно перетворити послідовність символів у число, дійсне чи ціле, якщо ми збираємось вводити інформацію саме такого типу. Це перетворення (конвертацію) послідовності символів у число ціле або дійсне виконують різні методи з однаковими іменами Parse. Вони є членами структур з іменами int та double. Знак «+», який ми використовуємо при виклику методу WriteLine, означає з’єднання (конкатенацію) двох послідовностей символів – текстової константи у подвійних лапках та зображення у вигляді символів відповідної змінної.

Якщо в програмі декілька функцій Main, тобто передбачається декілька точок входу у програму, то виникне помилка компіляції. Для вирішення конфлікту потрібно в середовищі (або у командному рядку при компіляції) явно вказати, метод Main якого класу потрібно використати.

Змінимо цей приклад наступним чином.

/* Це текст другої програми мовою С# */

using System;

class Program

{

public static void Main()

{

Console.WriteLine("Перша програма"+"!!!");

Console.WriteLine("Введіть ціле число");

int i;

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

Console.WriteLine("i = " + i);

Console.WriteLine("Введіть дійсне число ");

double f;

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

Console.WriteLine("f = " + f);

// Складаємо вираз

f = Math.Sqrt(i * i + f * f);

Console.WriteLine("Результат = " + f);

f = Math.Tan(f);

Console.WriteLine("Результат = " + f);

}

}

Розглянемо, що змінилось в цьому прикладі порівняно з попереднім варіантом. Тут додались обчислення та виведення значень двох виразів. В першому визначається , а в другому – . Обчислення виразів відбувається завдяки звертанню до методів Sqrt та Tan класу System.Math , який містить велику кількість усталених математичних функцій та констант. Клас Math є статичним, тобто не можливо створити екземпляр цього класу. Для використання математичних функцій використовується наступний синтаксис звертання: Math.<ім'я функції>

Найбільш поширені математичні функції та сталі наведені у таблиці (параметр x функцій має тип double).

Abs(x)

модуль числа

Log10(x)

логарифм за основою 10

Acos(x)

arccos x

Max(x,y)

максимум з двох чисел

Asin(x)

arcsin x

Min(x,y)

мінімум з двох чисел

Atan(x)

arctg x

Pi

число пі

Ceiling(x)

округлення до більшого (англ. ceiling - стеля)

Pow(x,y)

піднесення x до степеня y

Cos(x)

cos x

Round(x)

округлення за звичайним правилом

Cosh(x)

ch x

Sign(x)

знак числа x

E

число Ейлера

Sin(x)

sin x

Exp(x)

експонента x

Sinh(x)

sh x

Floor(x)

округлення до меншого (англ. floor - підлога)

Sqrt(x)

квадратний корінь з x

Log(x)

натуральний логарифм, ln x

Tan(x)

tg x