3571

Введення в C#. Створення консольних додатків

Лекция

Физика

Введення в C#. Створення консольних додатків Мова C# (вимовляється Си-Шарп) - це мова програмування від компанії Microsoft. Він входить у версію Visual Studio - Visual Studio.NET. Крім C# в Visual Studio.NET входять Visual Basic.NET й Visual C++. Од...

Украинкский

2012-11-05

1.45 MB

67 чел.

Введення в C#. Створення консольних додатків

Мова C# (вимовляється Си-Шарп) - це мова програмування від компанії Microsoft. Він входить у версію Visual Studio - Visual Studio.NET. Крім C# в Visual Studio.NET входять Visual Basic.NET й Visual C++.

Одна із причин розробки нової мови компанією Microsoft - це створення компонентно-орієнтованого язика для нової платформи .NET. Інші язики були створені до появи платформи .NET, язик же C# створювався спеціально під цю платформу й не несе із собою вантажу сумісності з попередніми версіями язиків. Хоча це не означає, що для нової платформи це єдина мова.

Ще одна із причин розробки компанією Microsoft нової мови програмування - це створення альтернативи язику Java.

Язик C# є найбільш відомою новинкою в області створення мов програмування. На відміну від 60-х років XX століття - періоду бурхливого мовотворення - у нинішній час язики створюються вкрай рідко.

Творцем язика є співробітник Microsoft Андреас Хейлсберг. Він став відомим у світі програмістів задовго до того, як прийшов в Microsoft. Хейлсберг входив до числа провідних розроблювачів однієї із самих популярних середовищ розробки - Delphi. В Microsoft він брав участь у створенні версії Java - J. C# створювався, як язик компонентного програмування, і в цьому одне з головних достоїнств язика, спрямоване на можливість повторного використання створених компонентів.

Перша програма на C#

Запускаємо Visual Studio.NET. Для створення нового порожнього проекту C# проекту в Visual Studio необхідно скористатися кнопкою Create Project на стартовій сторінці Visual Studio 2008 (Рис.8.1).

Рис.8.1. Стартова сторінка Visual Studio 2008

У вікні, що з'явилося, New Project ліворуч вибираємо, Visual C#, а праворуч тип додатка - Console Application (мал.8.2):

Рис.8.2. Вікно створення нового проекту

Як ім'я проекту (Name) наберіть Consol1, або щось у цьому роді. Натисніть на кнопку ОК для закриття даного діалогового вікна. Як місце (Location), де буде зберігатися папка проекту з файлами, укажіть мережний диск Z. За замовчуванням, передбачено, що ім'я папки робочої області й ім'я проекту збігаються, що не обов'язково.

В результаті чого, на диску будуть створена папка робочої області Consol1, а в цій папці ще одна папка проекту Consol1, у якій будуть зберігатися файли проекту, і створений файл коду програми Program.cs. Крім цього, у папці робочої області створюються ще файл із ім'ям робочої області й розширенням sln, що містить інформацію, про настроювання робочої області, файлах, папках і за допомогою якого відбувається завантаження робочого простору в середовище VisualStudio. У папці з назвою проекту, створюються папки bin, obj, Properties. У папці bin перебуває вкладена папка Debug, де згодом буде перебувати виконує файл, що, проекту Consol1.exe. Папка obj використається для зберігання інформації про об'єктні модулі, папка Properties – інформації про властивості проекту (Рис.8.3).

Рис.8.3. Вікно робочої області проекту

Додамо в код програми рядок, що виведе деяке повідомлення в консольне вікно.

Console.WriteLine("Привіт з C#");

Тому що в програмі автоматично створений рядок using System, то замість довгих можна використати короткі імена методів, зокрема, замість System.Console можна писати просто Console, як записано в попередньому рядку.

Далі в програмі оголошений клас Programm. Що таке класи докладно буде розглянуто пізніше, зараз же досить знати, що в C# необхідно створити клас й у ньому функцію Main (функція Main обов'язково повинна бути в кожній програмі на C#, і саме із цієї функції й починається виконання програми). Звернете також увагу, що ця функція пишеться із прописної (великої) букви. C# розрізняє рядкові й прописні букви. У функції Main виводимо на екран деякий рядок методом WriteLine (Рис.8.4).

Рис.8.4. Вікно програми

Вибравши у верхньому меню робочій області Debug -> StartWithoutDebugging або Ctrl+F5 запускаємо програму. Результат представлений на Рис.8.5.

Рис.8.5. Результат роботи програми

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

Для зчитування рядка символів, уведеної із клавіатури в консольному вікні, використається метод Console.ReadLine(), простору імен System. Для перетворення рядка символів у число необхідно використати метод Parse().

Використаємо відповідні методи в програмі:

float m; //Опис змінної m типу float

Console.WriteLine("Привіт з C#");

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

//Вводимо рядок символів методом

//Console.ReadLine() і за допомогою методу

//Parse() перетворимо його до цілого типу int

//і привласнимо змінній k цілого типу.

int k = Int32.Parse(Console.ReadLine());

Console.WriteLine("Було введене число - " + k);

k = k + k;

Console.WriteLine("Сума k+k =" + k);

k = k * k;

Console.WriteLine("Добуток k*k =" + k);

//Змінна l описана як float

float l = (float)k / ((float)k + (float)k);

Console.WriteLine("Вираження k /(k+k) = " + l);

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

Console.WriteLine("(як розділовий знак");

Console.WriteLine(" використайте кому): ");

//Зчитування рядка символів і перетворення її до типу float

m = float.Parse(Console.ReadLine());

m = (m + m)/(m*m);

Console.WriteLine("Вираження(m + m)/(m*m)= " + m);

Зверніть увагу на рядок:

float l = (float)k / ((float)k + (float)k);

Тут, у явному виді використовується приведення типу змінної k до типу float, інакше при проведенні обчислень, результат від розподілу буде наведений до цілого числа.

У рядку:

m = float.Parse(Console.ReadLine());

використовується метод Parse() для перетворення рядка символів в число типу float. Результат перетворення привласнюється змінній m. Тип змінної описаний у рядку:

float m; //Опис змінної m типу float

Результат роботи програми представлений на Рис.8.6.

Рис.8.6. Результат роботи програми

Приклад, що визначає, парне або непарне число ввів користувач:

class Program

{

static void Main(string[] args)

{

//Читаємо символ уведений із клавіатури ( метод ReadLine())

//за допомогою методу Parse перетворимо його

//у ціле число й привласнюємо значення змінної k

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

int k = Int32.Parse(Console.ReadLine());

int b = k / 2;

if (2*b == k)

{

Console.WriteLine("Парне число");

}

else

{

Console.WriteLine("Непарне число");

}

}

}

Фігурні дужки можна не писати у випадку одного оператора. Гілка else теж не є обов'язковою - все залежить від конкретного завдання.

Приклад використання оператора switch:

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Уведіть оцінку");

int k = Int32.Parse(Console.ReadLine());

Console.WriteLine("Уведена оцінка: " + k.ToString());

switch (k)

{

case 1:

case 2:

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

break;

case 3:

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

break;

case 4:

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

break;

case 5:

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

break;

default:

Console.WriteLine("Помилка");

break;

}

}

}

У наведеному прикладі залежно від уведеного користувачем числа на екран виводиться та або інша оцінка. Якщо число k не лежить у проміжку від 1 до 5, то виконуються оператори в гілці default і виводиться напис "Помилка". Гілка default необов'язкова. Зверніть увагу на оператор break. Якщо його не написати, то будуть виконуватися оператори з наступної гілки case до рядка з break'ом . Якщо в деякій гілці case або default є оператори, то написання break обов'язково. Так, у наступних двох ділянках коду програми є помилки:

...

case 1:

Console.WriteLine("Зовсім незадовільно");

//Помилка! Отут пропущено break

case 2:

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

break;

...

...

default:

Console.WriteLine("...");

//Помилка! Отут пропущено break

}

Застосовуючи оператор switch, необхідно закінчувати кожну case-галузь оператором break.

Приклад циклу for:

class Program

{

static void Main(string[] args)

{

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

int k = Int32.Parse(Console.ReadLine());

int sum = 0;

for (int i = 1; i <= k; i++)

{

sum += i; //Еквівалентно sum=sum+i

}

Console.WriteLine(sum);

}

}

Цей приклад підраховує суму чисел від 1 до уведеного користувачем числа k. Сума записується в змінну sum і виводиться на екран.

Приклад використання циклу While

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Уведіть пароль");

string password;

do

{

password = Console.ReadLine();

}

while (password != "C#");

//-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-

}

}

У прикладі цикл буде виконуватися доти, поки користувач не введе правильний пароль (C#).

Приклад використання операторів break й continue

public void Jumps()

{

int i = 1, j=1;

for(i = 1; i<100; i++)

{

for(j = 1; j<10;j++)

{

if (j>=3) break;

}

Console.WriteLine("Вихід із циклу j при j = {0}", j);

if (i>=3) break;

}

Console.WriteLine("Вихід із циклу i при i= {0}", i);

}

Оператор continue використається тільки в тілі циклу. На відміну від оператора break, що завершує внутрішній цикл, continue здійснює перехід до наступної ітерації цього циклу.

Стандартні математичні функції в С# зібрані в окремому класі Math й є методами класу.

Клас Math, що містить стандартні математичні функції, містить два статичні поля, що задає константи е й π, а також 23 статичних методи. Методи задають:

  •  тригонометричні функції - Sin, Cos, Tan;
  •  зворотні тригонометричні функції - ASin, ACos, ATan, ATan2 (sinx, cosx);
  •  гіперболічні функції - Tanh, Sinh, Cosh;
  •  експоненту й логарифмічні функції - Exp, Log, Log10;
  •  модуль, корінь, знак - Abs, Sqrt, Sign;
  •  функції округлення - Ceiling, Floor, Round;
  •  мінімум, максимум, ступінь, залишок - Min, Max, Pow, IEEERemainder.

В особливих поясненнях ці функції не мають потреби.

Приклад використання:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace temp11

{

class Program

{

static void Main(string[] args)

{

double a, b,t,t0,dt,y;

string NameFunction;

Console.WriteLine("Введіть ім'я F(t)досліджуваної функції a*F(b*t)" + " (sin, cos, tan, cotan)");

NameFunction = Console.ReadLine();

Console.WriteLine("Введіть параметр a (double)");

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

Console.WriteLine("Уведіть параметр b (double)");

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

Console.WriteLine("Уведіть початковий час t0(double)");

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

const int points = 10;

dt = 0.2;

for(int i = 1; i<=points; i++)

{

t = t0 + (i-1)* dt;

switch (NameFunction)

{

case ("sin"):

y = a*Math.Sin(b*t);

break;

case ("cos"):

y = a*Math.Cos(b*t);

break;

case ("tan"):

y = a*Math.Tan(b*t);

break;

case ("cotan"):

y = a/Math.Tan(b*t);

break;

case ("ln"):

y = a*Math.Log(b*t);

break;

case ("tanh"):

y = a*Math.Tanh(b*t);

break;

default:

y=1;

break;

}

Console.WriteLine ("t = " + t + "; " + a +"*" +

NameFunction +"(" + b + "*t)= " + y + ";");

}

double u = 2.5, v = 1.5, p;

p= Math.Pow(u,v);

Console.WriteLine ("u = " + u + "; v= " + v + "; power(u,v)= " + p );

}

}

}

У даному прикладі користувач визначає, яку функцію він хоче обчислити й при яких значеннях її параметрів.

Рис.8.7. Результати роботи програми

Завдання.

Вивчити матеріал, наведений вище, і відповідно до заданого варіанту написати програми із Завдання1 - Завдання 4.

Варіанти індивідуальних завдань.

 

Завдання 1.

Скласти програму, задавши вихідні дані самостійно.

  1.  Квіткова клумба має форму кола. По заданому радіусі обчислити її периметр і площу.
  2.  Обчислити периметр і площу прямокутного трикутника по заданому катеті й гострому куті.
  3.  По заданому діаметрі обчислити довжину й площу окружності.
  4.  Ділянка лісу має форму рівнобічної трапеції. Обчислити по заданих сторонах її периметр і площу.
  5.  Ресторан купує щодня масло m1 кг по 8.50 грн. за кілограм, сметану т2 кг по 2.40 грн., вершки т3 кг по 4.10 грн. Визначити суми, необхідні для закупівлі окремих продуктів і загальну суму.
  6.  Скільки секунд мають доба, тиждень, рік ?
  7.  Обчислити кінетичну E=mv2/2 і потенційну P=mgh енергії тіла заданої маси т, що рухається на висоті h зі швидкістю v.
  8.  Ціни на два види товарів виросли на р відсотків. Вивести старі й нові ціни.
  9.  Обчислити площу поверхні S=4πr2 й обсяг V=4nr3/3 кулі по радіусі r.
  10.  Швидкість світла 299792 км/с. Яка відстань переборює світло за годину, добу?
  11.  Ввести врожайність трьох сортів пшениці (36, 40, 44 т/га) і розміри трьох відповідних полів (у га). Скільки зібрали пшениці з кожного поля й із всіх разом?
  12.  Радіус Місяця 1740 км. Обчислити площу поверхні S=4πr2 й обсяг планети V=(4/3)nr3.
  13.  Обчислити довжину гіпотенузи й площу прямокутного трикутника по двох катетах.
  14.  По відомому ребру обчислити обсяг і площу бічної поверхні куба.
  15.  По продуктивності трьох труб і часу їхньої роботи з наповнення басейну, визначити скільки води набрано в басейн.
  16.  Визначите площу й периметр квадрата, що описаний навколо кола заданої площі S.
  17.  Тіло падає із прискоренням g. Визначити шлях тіла h=gt2/2 після першої й другої секунд падіння.
  18.  По заданих катетах обчислити периметр і площу прямокутного трикутника.
  19.  Телефонні розмови із трьома населеними пунктами коштують із1, з2, з3 коп/хв. Розмови тривали t1 t2, t3 хв. Яку суму нарахує комп'ютер за кожен і всі розмови разом.
  20.  По заданій висоті h і радіусу підстави r обчислити площу бічної поверхні S=2πrh й обсяг V=nr2h бочки.
  21.  Квіткова клумба має форму квадрата. По заданій стороні обчислити площу й периметр.
  22.  По заданому катеті й гіпотенузі обчислити інший катет і площу прямокутного трикутника.
  23.  Обчислити сторону й площу квадрата S=d2/2, якщо задано його діагональ d.
  24.  По заданій висоті h, що утворить l і радіусу підстави r обчислити площу бічної поверхні S=πrl й обсяг конуса V=πr2h/3.
  25.  Поїзд їхав t1годину зі швидкістю v1 км/година, t2 година зі швидкістю v2 й t3 година зі швидкістю v3. Визначити пройдений шлях з різною швидкістю й повний шлях.

Завдання 2.

За довільним значенням x обчислити значення функції:

, де

,  , - номер варіанта. Вхідні дані вводяться із клавіатури.

Завдання 3.

Скласти програму для рішення поставленого завдання двома способами: використовуючи: 1) команди case 2) команди if. Дані сформувати таким чином, що б вибір був з 3-5 альтернатив.

  1.  По номеру студента в списку групи вивести його прізвище.
  2.  Є дані 4 моделей автомобіля. По номеру моделі одержати характеристики: рік випуску й ціну.
  3.  По номеру поїзда вивести назву пункту призначення.
  4.  За назвою першої букви країни вивести назву столиці.
  5.  По номеру для тижня надрукувати його назву.
  6.  По номеру тролейбуса вивести назву кінцевої зупинки.
  7.  По першій букві назви країни вивести назву континенту.
  8.  По номеру місяця вивести назву пори року.
  9.  По номеру студента в списку групи вивести його ім'я.
  10.  За назвою першої букви міста вивести довідку по кількості населення.
  11.  По номеру місяця вивести номер кварталу.
  12.  По номеру маршруту автобуса вивести кількість зупинок його маршруту.
  13.  По першій букві назви країни вивести кількість міст цієї країни.
  14.  По телефонному коду міста вивести назву міста.
  15.  По номеру дня тижня вивести кількість пар у цей день.
  16.  По цифровому коду шести груп товарів виводити його ціну.
  17.  По номеру місяця виводити кількість днів у цьому місяці.
  18.  По коду групи вивести кількість студентів у групі.
  19.  По числу з діапазону 0-5 надрукувати його написання англійською мовою.
  20.  По номеру поїзда вивести час його відправлення.
  21.  За назвою ріки вивести її довжину.
  22.  По першій букві назви ріки вивести назву країни, де вона протікає.
  23.  По номеру одного із чотирьох друзів вивести його ім'я.
  24.  По номеру квартири в будинку вивести кількість мешканців.
  25.  По цифрі з діапазону 5-9 вивести її значення словом.

Завдання 4.

Обчислити вираження згідно варіанта:

  1.  


  1.  z=a+b;
  2.  z=ab;
  3.  z=tg(b)-a;
  4.  z=(a+b)2;
  5.  z=5ab-4;
  6.  z=sin(a)+b;
  7.  z=b tga;
  8.  z=a2+3b;
  9.  z=(|ab|)1/4;
  10.  z=ab-?;
  11.  z=a-2b;
  12.  z=a tgb;
  13.  z=cos(ab);
  14.  z=|a-b|;
  15.  z=ctg(2a)-b;
  16.  z=e3ab;
  17.  z=4ba-b;
  18.  z=2a-b;
  19.  z=|12a-cos(b)|;
  20.  z=2a-b;
  21.  z=tg(a+b);
  22.  z=ln|a+4b|;
  23.  z=3ab-cos(b);
  24.  z=4a+eb;
  25.  z=5a-2b,


де

i – номер варіанта, x – ціле число. Значення функції вибираються з таблиці. Вивести отриманий результат і вихідні значення.

n

Функція f(x)

1

9,2cosx2–|sinx/1,1|

2

12,4sin|x/2,1|–8,3cos1,2x

3

|cosx/2,7|+9,1sin(1,2x+1)

4

|sinx/3,12+cosx2|–8,3sin3x

5

cos|2x|/1,12–cos(3x–2)+6,15

6

sinxcosx2sin(x+1,4) +5,14

7

|sin(2x–1,5) +3sinx2|+2,38

8

cosx2sin(2x–l)+4,29

9

cos(x2+l)–|sin2x–5,76|

10

sinx–cosx3sin(x2–4,2) +4,27

11

|sin12xcos|2x|/3|+4,21

12

cosx3/2,1+cosx2/1,1–8.3sin(3x+1)

13

sinx2cosx3–sinx+5,2

14

2sinxsin(2x–1,5) cos(2x+1,5)–6

15

|cosx2–0,51|sin(3x–4)–4,44

16

cos2,1xsin|x|/0,15–5,8

17

|cos2x3+2sin(x/l,2–3,4)|+10,51cos|3x|

18

|sin(x2/1,5–2)|+11,73cos(1,6x–1)

19

13,4cos|x|sin(x2–2,25)

20

|соs(x2–3,8)|/4,5–9,7sin(x–3,1)

21

13,4sin(–1,26) cos|x/7,5|

22

2sin|2x|cos2x–11,6sin(x/0,4–1)

23

sin|x|/0,1+ 9,4sin(3x–2,5)

24

10,8cos(x2/1,13) |sin(x+1,4)

25

11,2cos(2x–1)+|sinl,5x|/1,7


 

А также другие работы, которые могут Вас заинтересовать

1800. Виховний захід: Весвітній день Космонавтики 22.38 KB
  Познайомити з історією святкування Всесвітнього дня авіації і космонавтики, ознайомити з біографією першого космонавта України – Леонідом Каденюком, розвивати творчі здібності, мислення, знання про космос, фізичні основи польоту, прививати цікавість до пізнання космічних просторів.
1801. Виховна година: Безпека людини в небезпечних та надзвичайних ситуаціях 39.5 KB
  Актуалізувати і узагальнити знання учнів з безпечної поведінки під час небезпечних та надзвичайних ситуацій, навчити їх запобігати; формувати в учнів якості свідомої особистості, виховувати мужність і спроможність приймати швидкі і правильні рішення в екстремальних умовах; попередити прояви паніки в небезпечних та надзвичайних ситуаціях.
1802. Виховний захід. Свято Миколая 23.89 KB
  Розширити і поглибити знання учнів про народні св′ята, особливо про Миколая. Виховувати в учнів повагу до українських звичаїв та традиції та до спадщини українського народу.
1803. Виховна бесіда: Дезертирство з життя 88.5 KB
  Розкрити значення і цінність життя людини. Формувати уміння бачити в життєвих негараздах лише тимчасові труднощі і бажання долати їх.
1804. Харчування - запорука здорового життя 60.81 KB
  Обговорити правила культури харчування, провести дискусію на дану тему, акцентуючи увагу на зв’язок між здоров’ям і харчуванням, розширювати знання учнів про ГМЇ та ГМО, харчові добавки, розвивати і зміцнювати в учнів естетичні смаки, повагу до традицій і звичаїв української кухні.
1805. Виховна година: Дисципліна та правопорядок. 23.52 KB
  Формування в учнів здатність до самоконтролю, поваги до моралі і правопорядку. Учись бачити себе збоку, постійно звіряй свої вчинки з моральними та правовими нормами. Вивчи і сприймати серцем Заповіді Божі, у них — твій порятунок, джерело духовного зростання.
1806. Щоб не марно в світі жити - треба вчитися дружити 25.38 KB
  Учити дітей сприймати різні життєві ситуації, аналізувати їх і знаходити шляхи виходу з них, виховувати у дітей правильне ставлення до таких понять, як друг, дружба, розвивати в учнів загальнолюдські чесноти.
1807. Виховна година: Ходить осінь гаєм 41.5 KB
  Узагальнити знання прикмет осені, особливостей кожного осіннього місяця. Розвивати артистичні здібності дітей, їх мовлення, логічне мислення. Виховувати любов до природи, свідому дисципліну, колективізм.
1808. Виховна година: Чорнобиль не має минулого 23.52 KB
  Розширити знання дітей про Чорнобильську трагедію, наголосити про потенційну небезпеку радіації для усього живого, розповісти про ліквідаторів аварії на Чорнобильській АЕС, показати, що чужої біди немає. Вчити застосовувати у повсякденному житті елементарні радіаційно-гігієнічні навички. Виховувати любов до рідного краю, природи; виховувати у дітей людяність, доброту та згуртованість.