Visual Studio .Net иштеп чыгуу чъйръс\
VS алгачкы коду компиляциялоо \ч\н керект\\ болгон бардык кадамдарды автоматтык т\рдъ аткарат.
VS тексттик редактору VS колдлгон бардык тилдер менен иштъъгъ курулган, мисалы С#, ошондуктан ал кийир\\дъ кайсы код керект\\ экендигин интелектуалдуу катасын табат.
VS составына колдонуучулук чъйрън\н элементтерин чычканча менен жънъкъй ташуу жолу менен Windows- жана Web-тиркеме программаларды т\з\\гъ м\мк\нд\к берет.
С# та т\з\лгън къптъгън проекттердин тиби «каркастуу» коддун негизинде иштелип чыгат, алдын-ала программага кошулган болот. Ар бир жолу кайрадан т\зъ бербестен алгачкы коду менен бар файлдарды колдонууга м\мк\нд\к берет, проектти т\з\\гъ убакытты коротпойт.
Биринчи проектти т\з\\
Проектти т\з\\ \ч\н VSни ж\ктъп, негизги менюдан File – New – Project буйругун тандайбыз. Андан кийин New Project диалогдук терезеси ачылат.
Рис.1.
Project types (проекттин тиби) талаасынан Visual C#, Templates талаасынан Console Application(консолдук тиркеме) тандайбыз .
Name жолчосуна Hello тиркемение атын кийиргиле. Бул ат Solution Name (чечимдин аты) жолчосунда да пайда болорун байкагыла.Create directory for Application (тиркеме \ч\н багыттама жасоо) жолчосунан желекчени алып салгыла. (азырынча жънъкъй тиркеме т\зъб\з, анын структурасын татаалдаштыруунун зарылчылыгы жок).
Location жолчосуна проектти кайда сактоо керектигин, дисктеги жайгашуусун аныктагыла жана OK кнопкасын баскыла. Экрандын кър\н\ш\ с\ръттъг\дъй болот.
Рис. 2.
Оё жакта проектти башкаруу терезеси Solution Explorer(Проводниктин чечими) жайгашат. Эгерде ал жабык болсо, анда аны View - Solution Explorer буйругу менен кошууга болот. Бул терезеде проектке кир\\ч\ бардык ресурстар саналган:
1) AssemblyInfo.cs – кураштыруу жън\ндъ маалымат.
Компилятор ъз\н\н аткарылуусунда exe же dll кеёейтилиши менен кураштырууну т\зът.
System, System.Data, System.Xml – стандарттык библиотекага ссылкалар.
Program.cs - C# тилинде программанын тексти.
Экрандын оё тъмън бъл\г\ндъ касиеттер терезеси жайгаштырылган. Эгерде ал жабык болсо, анда аны View – Properties(Кър\н\ш-Касиет) буйругу менен кошууга болот. Бул терезеде бъл\п алынган элементтин керект\\ м\нъздъмълър\ чагылдырылат.
Экрандын негизги чъйръс\н редактирлъъ терезеси ээлейт, анда чъйръ автоматтык т\рдъ т\згън программанын тексти жайгашат. Текст программист керект\\ кодду кошо турган каркасты кърсътът. Мында ачкычтык създър кък т\с менен, комментарийлер жашыл т\с менен, негизги текст кара т\с менен сунушталат. Текст структураланган. Минуска басып коддун блогун жашырабыз, плюс белгисине басып ачабыз.
Проект жайгашкан папканы ачып, анын структурасын къръб\з. Коюу шрифт менен бъл\нгън файлдар компиляциялоодон кийин пайда болот.
Рис. 3.
Hello.sln – бардык проектке жооп бер\\ч\ негизги файл. Эгерде проектти редактирлъъ \ч\н ачуу керек болсо, анда так ушул файлды тандоого болот. Калган файлдар автоматтык т\рдъ ачылышат.
Program.cs – С# тилинде жазылган код, алгачкы код кармалган файл. Так ушул файл менен биз \зг\лт\кс\з иштейбиз.
Hello.exe – проекттин метаберилгендери жана генерацияланган IL-код кармалган файлы. Башка съз менен айтканда ушул файл даяр тиркеме болот, .Net платформасы орнотулган каалаган компьютерде аткарылат. Эми программанын текстин карайбыз.
using System – бул директива, System аттар мейкиндигинен стандарттык класстардын аттарын колдонууга м\мк\нд\к берет.
Namespace ачкычтык съз\ проект \ч\н ъзд\к жеке мейкиндигин т\зът, проекттин аты д.а. Биздин учурда проекттин аты Hello деп аталат. Кээде программист башка ат коюуга укугу бар. Аттар мейкиндиги аттарды колдонуу областын чектейт.
С# - объект\\-ориентирленген тил, ошондуктан анда жазылган программа ъз ара байланышкан класстардынжыйынтыгын кърсътът. Автоматтык т\рдъ класс Program аты менен т\з\лгън.
Берлилген класс бир гана усулду кармайт- Main() усулу. Main() усулу программага кир\\ чекити б.э., так ушул усулдан тиркеменин аткарылышы башталат. С# тагы ар бир Main () усулуна ээ болушу керек.
Main() усулу бир негизги ъзгъчъл\ккъ ээ. void маанини кайтарып бер\\ч\ типти жарыялоодон мурда static аякычтык съз\ турат, Main() усулун Program тибиндеги обьектти т\збъй туруп деле чакырууга болот.
Усулга тъмънк\ кодду кошобуз: Console.WriteLine("Hello!");
Мында Console System аттар мейкиндигиндеги стандарттык класстын аты. Анын усулу WriteLine тырмакчада берилген текстти экранга чыгарат.
Прграмманы ж\ктъъ \ч\н F5 клавишасын басабыз же Debug-Start Debugging буйругун аткарабыз. Эгерде программа катасыз аткарылган болсо, анда билдир\\ консолдук терезеге чыгарылат, б\лк этет да тез жабылып калат. Билдир\\н\ нормалдуу режимде кър\\ \ч\н Ctrl+F5 клавишаларын басып же Debug-Start Without Debugging буйругун аткарабыз. Биздин учурда тъмънк\ консольдук терезе ачылат:
Эгерде программанын кодунда ката болсо, мисалы, чыгаруу командасынан кийин \т\рл\\ чекит коюлбаса, F5 клавишасы басылгандан кийин ката кетирилгендиги тууралуу билдир\\ берген диалогдук терезе чыгат жана суроо белгиси андан ары иштъън\ улантууну сурайт. Эгерде Yes деп жооп берсеёер, анда программанын алгачкы компиляцияланган версиясы ийгиликт\\ аткарылат. Антпесе процесс токтотулат жана башкаруу Error List каталар тизмеси терезесине берилет.
Обьектт\\-ориентирленген программалоо технологиясы.
С# тилинин негизинде обьектт\\-ориентирленген программалоо(ООП) технологиясы жатат. С# тилинде бардык программалар чоё же кичине даражада обьектт\\-ориентирленген болот.
ООП «класс», «обьект», «интерфейс», «полиморфизм», «окуя» т\ш\н\ктър\нъ негизделген.
Программада обьект —бул реалдуу д\йнън\н астракциясы. Обьект атрибутка, алып ж\р\\гъ жана жекечеликке ээ. Атрибуттар обьекттин негизги белгилерин аныктайт, алып ж\р\\ — обьекттин \ст\нън аракеттер, жекечелик — бир обьекттин башка обьекттен конкретт\\ мааниси боюнча айырмачылыгы.
Класс – бул ъз\нъ класстын м\чълър\н кошкон программалоо тилинде абстрактуу берилгендердин берилгендердин типтери кър\н\ш\ндъ берилл\\ч\ обьекттердин бирдей атрибуттары жана алып ж\р\\лър\. Алардын кээ бирлерин карайбыз:
талаалар– атрибуттарды баяндоо \ч\н аныкталган типтеги \зг\лт\кс\з берилгендер;
методдор – берилген класстын обьектинин ички берилгендерин иштет\\ \ч\н арналган функциялар;
касиеттер – бул берилгендердин атайын талаалары, алардын жардамында берилген класстын обьектинин ж\р\ш\н башкарууга болот.
Класс обьектти т\з\\ \ч\н \лг\ болуп кызмат кылат же башка съз менен айтканда класстын экземпляры б.э.
Обьекттин негизги касиети болуп ъзгъчъл\к эсептелет. Обьектти реализациялоонун деталдары, б.а. берилгендердин ички структурасы аларды иштет\\н\н алгоритмдери колонуучуга жашыруун жана ъзгърт\\гъ м\мк\нч\л\к жок.
Обьект анын интерфейси тарабынан колдонулат – м\мк\нч\л\кт\н эрежелеринин удаалаштыгы. Реализациялоонун деталдарын жашырууну инкапсуляция деп аталат.
class Program
{
static void Main () класстын методу
{
Console.WriteLine(‘Hello!!!’);
}
}
Программа Program классы менен жалгыз статистикалык усул (static) менен анын экземплярысыз класстын берилген усулуна кайрылууга м\мк\нд\к берет.
Тилдин составы.
Алфавит – тилде м\мк\н болгон символдордун удаалаштыгы. С# тын алфавитине тъмънк\лър кирет:
чоё жана кичине латын тамгалары жана улуттук алфавиттин тамгалары (кириллица кошо);
0 дон 9 га чейинки араб цифралары, он алтылык цифралар A дан Fке чейин;
атайын белгилер: " { } , | ; [ ] ( ) + - /, % * . \ ' : ? ! & ~ ^ @ _
пробелд\\ символдор: пробел, табуляция символу, жаёы жолчого ът\\ символу.
Алфавиттин символдорунан тилдин лексемасы формаланат: идентификаторлор, ачкычтык създър, амалдардын белгилери, константалар, бъл\\ч\лър(кашаалар, чекит, \т\р, пробелдик символдор).
Лексемалардын чек аралары башка лексемалар менен аныкталышат, бъл\\ч\лър же амалдардын белгилери. Ъз учурунда лексемалар туюнтмалардын составына кирет жана операторлор(кээ бир аракеттердин б\ткън баяндамасын оператор берет).
Идентификатор – бул программалык элементтин аты: константалар, ъзгър\лмълър, меткалар, типтер, класстар, обьекттер, усулдар ж.б.у.с. Идентификатор латын тамгалары жана улуттук алфавиттин тамгалары, цифралары жана сызуу символу. Жазма жана басма латын тамгалары айырмаланышат, мисалы, myname, myName и MyName — \ч т\рд\\ аттар. Идентификатордун биринчи символу тамга же сызуу символу болушу м\мк\н, бирок цифра болбошу керек.
Аттын ичинде пробел символуна уруксат берилет. С# тили аттын узундугуна чек койбойт, окуу жана жазуу ыёгайлуулугу \ч\н абдан узун жазбоо сунушталат.
Ачкычтык създър – бул алдын-ала белгиленген идентификаторлор, компилятор \ч\н атайын маанилерге ээ, мисалы include, main, int ж.б.у.с. Ачкычтык създърд\ т\з мааниде колдонууга м\мк\н.
Берилгендердин типтери.
С# катуу талаптуу типт\\ тил б.э. Анда программалык элементтерди т\з\\ч\ бардык типтерди баяндоо зарыл.(мисалы, ъзгър\лмълърд\, обьекттерди, терезе, кнопкаларды ж.б.у.с.), компиляторго обьекттерге уруксат берилген гана типтерди ыйгарууну къзъмълдъп каталардын пайда болуусунан алдын-ала сактайт. Программалык элементтин тиби компиляторго анын ълчъм\, м\мк\нч\л\г\ жън\ндъ билдирет(мисалы, int тиби обьект 4 байт ээлешин кърсътът).
С# типтер 2 группага бъл\н\шът: базалык типтер, колдонуучу аныктаган тилден сунушталган типтер. Андан сырткары, С# типтери 2 категорияга бъл\н\шът: ълчъмд\к типтер(мааниси боюнча типтер) жана ссылкалуу типтер. Б\т базалык типтер ълчъмд\\ ълчъмд\\ типтер б.э. Чыгарылуучу типтер Object жана String.
С# тили .NET (CLS) жалпытилд\\ адистештир\\н\ колдоочу базалык типтин кадимки наборун сунуштайт. С# тилинин базалык тилине дал кел\\с\ жана .NET платформасынын типтери С#та т\з\лгън обьекттер .NET CLS талабын канааттандыруучу каалаган тилде т\з\лгън обьекттер менен барабар деёгээлде колдонулушу м\мк\н.
| Тип | Байттагы ълчъм | .NET тиби | Баяндоо |
| Базалык тип |
| object | | Object | эмне болсо да сактайт, жалпы тек катары эсептелет |
| Логикалык тип |
| bool | 1 | Bolean | true же false |
| Б\т\н типтер |
| sbyte | 1 | SByte | Б\т\н белгиси менен (-128 ден 127 ге чейин) |
| byte | 1 | Byte | Б\т\н белгисиз ( 0 дон 255 ке чейин) |
| short | 2 | Int16 | Б\т\н белгилеш (-32768 ден 32767 ге чейин) |
| ushort | 2 | UInt16 | Б\т\н белгисиз (0 дон 65535 ке чейин) |
| int | 4 | Int32 | Б\т\н белгиси менен (-2147483648 ден 2147483647 ге чейин) |
| uint | 4 | UInt | Б\т\н сан белгисиз ( 0 дон 4 294 967 295 ге чейин) |
| long | 8 | Int64 | Б\т\н белгиси менен (-9223372036854775808 ден 9223372036854775807 ге) |
| ulong | 8 | UInt64 | Б\т\н белгисиз (0 дон 0fffffffffffffff) |
| Чыныгы типтер |
| float | 4 | Single | Экилик тактыкта калкып чыгуучу чекити менен сан. Болжол менен -1.5*10-45 до +3.4*1038 маанил\\ сан, 7 маанил\\ цифра менен |
| double | 8 | Double | Экилик тактыкта калкып чыгуучу чекити менен сан. Болжол менен -5. 0*10-324 до +1.7*10308 маанини кармайт, 15-16 маанил\\ цифра менен |
| Символдуу тип |
| char | 2 | Сhar | Unicode сомволдору |
| Жолчолук тип |
| string | | String | Unicode-символдуу жолчо |
| Финансылык тип |
| decimal | 12 | Decimal | Ондук чекитт\\ фиксирленген абалы менен 28 мааниге чейинки сан. Къб\нчъ финансылык эсептъъдъ колдонулат. m же суффикстери талап кылынат. |
Ъзгър\лмълър жана турактуулар.
Ъзгър\лмъ ар качан эстин типтештирилген областын кърсътът.
static void Main()
{
int i=10; I ъзгър\лмъс\н б\т\нсандуу жарыялоо жана инициализациялоо
Console.WriteLine(i); ъзгър\лмън\н маанисин кър\\
i=100; ъзгър\лмън\н маанисин ъзгърт\\
Console.WriteLine(i);
}
С# тилинде ъзгър\лмълър аларды колдонууга чейин инициализациялоо талап кылынат.
static void Main()
{
int i;
Console.WriteLine(i);
}
Константа – маанисин ъзгърт\\гъ м\мк\н болбогон ъзгър\лмъ. Константалар 3 т\рдъ болушат: литералалар, символдук константалар жана которуу.
const тип идентификатор = ;
Мисал:
static void Main()
{
const int i=10; I константасын б\т\нсандуу жарыялоо
Console.WriteLine(i); константанын маанисин кър\\
i=100; ката
Console.WriteLine(i);
}
Которуу (enumerations) константага альтернативалуу болот. Которуу – бул ъзгъчъ ълчъмд\\ тип, аталган константалардын наборунана турат.
Аныктоо синтаксиси:
[атрибуттар] [модификаторлор] enum аты [ : базалык тип]
{константаларды которуу-тизмеси \т\р аркылуу};
Базалык тип – бул которуу тиби. Эгерде базалык тип кърсът\лбъсъ, унчукпастан int тиби колдонулат. Базалык тип катары char тибинен сырткары каалаган б\т\н тип колдонулат.
class Program
{
enum gradus:int
{
min=0,
krit=72,
max=100,
}
static void Main()
{
Console.WriteLine("минимальная температура=" + (int) gradus.min);
Console.WriteLine("критическая температура=" + (int)gradus.krit);
Console.WriteLine("максимальная температура=" + (int)gradus.max);
}
}
Берилгендерди кийир\\-чыгарууну уюштуруу. Форматтоо.
Программа берилгендерди кийир\\ жана чыгарууну уюштурууда сырткы т\з\л\штър менен аракеттенет. Кийир\\н\н стандарттык т\з\л\штър\н\н жыйындысы(клавиатура) жана чыгаруу(экран) консоль деп аталат. С# тилинде кийир\\ жана чыгаруу операторлору жок. Алардын ордуна сырткы т\з\л\штър менен берилгендерди алмаштыруу \ч\н атайын обьекттер колдонулат. System аттуу мейкиндикте аныкталган консоль менен иштъъ \ч\н стандарттык Console классы колдонулат.
Берилгендерди чыгаруу
Console.WriteLine(x); экранга x идентификаторунун мааниси чыгарылат
Console.WriteLine("x=" + x +"y=" + y); экранга "x=" удаалаштык жолчосу x менен, "у=" жолчосу y тин маанисин чыгарат
Console.WriteLine("x={0} y={1}", x, y); экранга {0} параметринин ордуна х тин мааниси {1} параметринин ордуна y тин мааниси чыгарылат.
int i=3, j=4;
Console.WriteLine("{0} {1}", i, j);
Башкаруучу символдор:
| Т\р\ | Аталышы |
| \a | /нд\\ сигнал |
| \b | Бир кадам артка |
| \f | Бетти которуу |
| \n | Жолчону которуу |
| \r | Каретканы кайтаруу |
| \t | Горизонталдык табуляция |
| \v | Вертикалдык табуляция |
| \\ | Тескери бълчък |
| \’ | Апостроф |
| \” | Тырмакча |
Мисал:
static void Main()
{
Console.WriteLine("Ура!\n Бугун \"Информатика\"!!!");
}
Амалдар
1. Инкремент (++)жана декримент(--).
Бул амалдар жазуунун эки формасына ээ — префикст\\, амал операнддын алдынан жазылганда, жана постфикст\\ – амал операнддан кийин жазылса. Инкременттин(декременттин) префикст\\ амалы ъз\н\н операндын чоёойтот(кичирейтет) жана ъзгър\лгън маанини жыйынтык катары кайтарат. Инкременттин жана декременттин постфикст\\ версиясы операнддын биринчи маанисин кайтарат, анан гана аны ъзгъртът.
Мисал:
| static void Main() { int i = 3, j = 4; Console.WriteLine("{0} {1}", i, j); Console.WriteLine("{0} {1}", ++i, --j); Console.WriteLine("{0} {1}", i++, j--); Console.WriteLine("{0} {1}", i, j); } | Жыйынтыгы:\ 3 4 4 3 4 3 5 2 |
2. new амалы. Жаёы обьектти т\з\\ \ч\н колдонулат.
object z=new object();
int i=new int(); // то же самое, что и int i =0;
3. Тануу:
Арифметикалык тануу (-) – операнддын белгисин карама-каршысына ъзгъртът.
Логикалык тануу (!) – логикалык тип \ч\н инверсия амалын аныктайт.
| static void Main() { int i = 3, j=-4; bool a = true, b=false; Console.WriteLine("{0} {1}", -i, -j); Console.WriteLine("{0} {1}", !a, !b); } | Жыйынтыгы:\ -3 4 False True |
4. Ачык кайра ъзгърт\\ тиби. Бир типтен экинчисине ачык кайра ъзгърт\\ \ч\н колдонулат.
Амалдын форматы:
(тип) туюнтма;
| static void Main() { int i = -4; byte j = 4; int a = (int)j; byte b = (byte)i; Console.WriteLine("{0} {1}", a, b); } | Жыйынтыгы:\ 4 252 |
5. Къбъйт\\ (*), бъл\\ (/) жана калдыктуу бъл\\ (%). Къбъйт\\ жана бъл\\ амалдары берилгендердин б\т\н жана чыныгы типтер \ч\н колдонулат.
static void Main()
{
int i = 100, j = 15;
double a = 14.2, b = 3.5;
Console.WriteLine("{0} {1} {2}", i*j, i/j, i%j);
Console.WriteLine("{0} {1} {2}", a * b, a / b, a % b);
}
Жыйынтыгы:
\
1500 6 10
49.7 4.05714285714286 0.1999999999999999
6. Кошуу (+) жана кемит\\(-). Кошуу жана кемит\\ амалдары берилгендердин б\т\нсандуу жана чыныгы типтери \ч\н колдонулат.
7. Катыш амалдары ( , =, ==, !=). Катыш амалдары сол жана оё операнддын маанисин салыштырат. Логикалык типтеги амалдын жыйынтыгы: true – эгерде мааниси дал келсе, false – тескери учурда. Мисал:
| static void Main() { int i = 15, j = 15; Console.WriteLine(i Console.WriteLine(i Console.WriteLine(ij); Console.WriteLine(i=j); Console.WriteLine(i==j); Console.WriteLine(i!=j); } | Жыйынтыгы: \ False True False True True False |
8. Логикалык амалдар: ЖАНА (&&), ЖЕ (||).
Логикалык амалдар логикалык типтеги операнддар \ч\н колдонулат.
static void Main()
{
Console.WriteLine("x y x и y x или y");
Console.WriteLine("{0} {1} {2} {3}", false, false, false&&false, false||false);
Console.WriteLine("{0} {1} {2} {3}", false, true, false&&true, false||true);
Console.WriteLine("{0} {1} {2} {3}", true, false, true&&false, true||false);
Console.WriteLine("{0} {1} {2} {3}", true, true, true&&true, true||true);
}
Результат работы программы:
x y x и y x или y
False False False False
False True False True
True False False True
True True True True
9. Шарттуу операция.
Формат: ()? : ;
Операнд1 – бул логическое туюнтма, true жана false константаларын эквивалент\\л\г\ баланат.
static void Main()
{
int x=5; int y=10;
int max = (x y) ? x : y;
Console.WriteLine(max);
}
10. Ыйгаруу амалы: =, +=, -= и т.д.
Жънъкъй ыйгаруу амалынын форматы (=):
операнд_2 = операнд_1;
Бул амалды аткаруу жыйынтыгында операнда_1 дин мааниси эсептелет, жана жыйынтыгы операнд_2 ге жазылат.
C# тилинин операторлору.
С# тилинде программа операторлордун удаалаштыгынан турат, ар бири кээ бир аракеттердин б\ткън баянын аныктайт жана \т\рл\\ чекит менен б\тът. Бардык операторлорду 4 группага бъл\\гъ болот: ът\\ операторлору, бутактануу операторлору, циклдик операторлор жана башкарууну бер\\ операторлору.
Ът\\ операторлору
Ът\\ операторлору компилятор менен кадимки иретте аткарылат: башынан аягына чейин. Ът\\ операторуна туюнтма жана составдык оператор кирет.
/т\рл\\ чекит менен б\ткън каалаган туюнтма оператор катары каралат, туюнтманын маанисин эсептъъдъ аткарылышы б\тът же б\ткън аракеттин аткарылышында, методу чакырууда. Мисалы:
++i; инкремент оператору
x+=y; ыйгаруу менен кошуу оператору
Console.WriteLine(x); методду чакыруу
x=Math.Pow(a,b)+a*b; татаал туюнтманы эсептъъ
Туюнтманын айрым учурунун оператору болуп бош оператор эсептелет; Ал синтаксиси боюнча оператор талап кылынса колдонулат, мааниси боюнча болсо колдонулбайт. Бул учурда « ;» символу бош оператор болуп эсептелет, бирок дайым эле коопсуз эмес. Мисалы, while же if операторлорунун шартынан кийинки ; кокустук символу бул оператордун жумушун таптакыр ъзгърт\ш\ м\мк\н.
Составдуу оператор же блок {} фигуралуу кашаага бекилген операторлордун удаалаштыгын берет. Блок ъзд\к кър\\ областына ээ: блоктун ичинде жарыяланган аттар берилген блоктун ичинде гана м\мк\нд\\. Составдуу операторлор программанын логикасы бир нече операторлорду талап кылынганда, тилдин эрежеси бир гана оператордун бар болушун караганда колдонулат.
10