Математик функциялар(Math базавий синфи)
Дастурий коднинг блоклари
8.1. Консолли иловалар, маълумотларни киритиш ва чиқариш.
Ҳар қандай маълумотлар билан ишлашга мўлжалланган дастур маълумотларни киритиш ва чиқаришда аксарият ҳолатда ташқи қурилмалар билан бевосита боғлиқ бўлади. Компьютернинг стандарт киритиш ва чиқариш қурилмалари клавиатура ва экран билан бевосита ишлаш учун мўлжалланган муҳит консоль деб юритилади. C# да маълумотларни киритиш ва чиқариш учун операторлари йўқ. Уларнинг ўрнида консолли режимда ишлаш учун стандарт объектлар қўлланилади. Консол билан ишлаш учун С# нинг System номлари макони(кутубхонаси)нинг Console синфидан фойдаланилади. С# да консолли режимда ишловчи иловалар яратиш учун иўлжалланган муҳитни юклашни 2- маърузада кўриб ўтган эдик.
Қуйидаги дастурни кўрайлик:
using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main()
{
int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Вася";
Console.WriteLine( "i = " + i ); // 1
Console.WriteLine( "s = " + s ); // 2
Console.WriteLine( "y = {0} \nd = {1}", y, d );//3
}
}
}
Листинг. 8.1.1. Консолли режимда маълумот чиқариш
Дастур натижаси:
i = 3
s = Вася
y = 4,12
d = 600
Юқорида келтирилган дастурда маълумотларни экранга чиқариш учун Console синфининг WriteLine услубидан фойдландик. WriteLine услуби турли типдаги литераллар, ўзгармаслар ва ўзгарувчиларни экранга чиқариш учун хизмат қилади. Худди шу услубга ўхшаш Console синфида Write услуби ҳам мавжуд. Фарқи: Write услубида экранга маълумот чиқарилгандан сўнг, янги киритилувчи ёки чиқарилувчи маълумот ана шу экранга чиққан маълумот давомидан экранга чиқади, WriteLine услубида эса маълумотни экранга чиқарилгандан сўнг, янги киритилувчи ёки чиқарилувчи маълумот янги сатрдан давом этади.
С# да бир хил номли, лекин турли хил параметрлар билан ишловчи услублар қайта юкланувчи деб аталади. Компилятор автоматик тарзда қўлланилган параметрларга қараб керакли услубни ўзи автоматик тарзда аниқлаб олади.
Юқорида келтирилган мисолда //1 ва //2 изоҳлари билан кўрсатилган қаторларда WriteLine услуби битта параметрли услубдир. Бундай услубда экранга чиқарилувчи маълумотлар + белгиси билан бир-бирига улаб олинади.
//3 изоҳли қаторда эса WriteLine услубининг форматли варианти қўлланилган.
Console.WriteLine( "y = {0} \nd = {1}", y, d )
Бундай услубда қўлланилганда фигурали қавслар ичида берилган рақамлар, шу жойда нечанчи ўринда турган параметр қиймати чиқиши кераклигини билдиради. Параметрлар рўйхати қўштирноқдан кейин бошланади. Уларни , билан бир-биридан ажратиб қўйилади. Ушбу мисолда {0}- параметри ўрнига y нинг қиймати, {1} нинг ўрнига эса d нинг қиймати экранга чиқади. \n – бошқариш белгиси бўлганлиги сабабли экранга чиқмайди, у мана шу ердан кейинги маълумот янги қатордан чиқарилиши кераклигини билдиради. Бошқариш белгилари тўғрисида маълумотлар 3-маърузада келтирилган.
Консолли иловаларда маълумотни киритиш учун Console синфининг Read, Readline, ReadKey услубларидан фойдаланилади. Маълумотларни ушбу услублар билан киритилгандан киритилувчи маълумотлар сатрли типда қабул қилинади. Кейинчалик киритилувчи маълумотни Convert ёки Parse усуллари билан керакли типга ўзгартириб олинади.
Мисол:
using System;
namespace ConsoleApplication1
{ class Class1
{ static void Main()
{
Console.WriteLine( "Матн киритинг:" );
string s = Console.ReadLine(); // 1
Console.WriteLine( "s = " + s );
Console.WriteLine( "Белги киритинг:" );
char c = (char)Console.Read(); // 2
Console.ReadLine(); // 3
Console.WriteLine( "c = " + c );
string buf; // Рақамларни киритиш учу
Console.WriteLine( "Бутун сон киритинг:" );
buf = Console.ReadLine();
int i = Convert.ToInt32( buf ); // 4
Console.WriteLine( i );
Console.WriteLine( "Ҳақиқий сон киритинг:" );
buf = Console.ReadLine();
double x = Convert.ToDouble( buf ); // 5
Console.WriteLine( x );
Console.WriteLine( " Ҳақиқий сон киритинг:" );
buf = Console.ReadLine();
double y = double.Parse( buf ); // 6
Console.WriteLine( y );
Console.WriteLine( " Ҳақиқий сон киритинг:" );
buf = Console.ReadLine();
decimal z = decimal.Parse( buf ); // 7
Console.WriteLine( z );
}
}
}
Листинг 8.1.2. Консол режимда маълумот киритиш
//1 – изоҳли қатор фойдаланувчидан матн киритишни сўрайди. Матнни узунлиги чегараланмаган ва Enter тугмаси босилгун қадар киритишда давом этиш мумкин. Enter тугмаси босилгандан сўнг киритилган матн s = дан кейин экранга чиқарилади.
//2 – оператор бажарилганда фойдаланувчидан белги киритиш талаб қилинади. Агар фойдаланувчи бир нечта белги киритиб кейин Enter тугмасини босганда, ушбу қатордан биринчи белги ажратиб олинади. char типига автоматик ўзгартириш йўқлиги сабабли ўзгартириш (char) ёрдамида амалга оширилади. //3-оператор фойдаланувчидан шунчаки Enter тугмасини босишни талаб қилади. Фойдаланувчи Enter ни босгандан сўнг c нинг қиймати экранга чиқарилади.
//4- ва //5- изоҳли қаторларда фойдаланувчидан сон киритиш талаб қилинади. Киритилган сонлар аввал матнли ўзгарувчи buf га ўзлаштирилади. Сўнгра Convert услуби ёрдамида керакли типга ошкор ўзгартирилади.
//6- ва //7- изоҳли қаторларда ҳам фойдаланувчидан сон киритиш талаб қилинади. Киритилган сонлар аввал матнли ўзгарувчи buf га ўзлаштирилади. Сўнгра Parse услуби ёрдамида керакли типга ошкор ўзгартирилади.
Эслатма: Ҳақиқий сонларни киритишда соннинг каср қисми операцион тизимнинг регионал созламаларига мос равишда нуқта ёки вергул билан ажратилади. Киритлувчи нуқта ёки вергул регионал созламадаги билан мос келмаса хатолик юзага келиши мумкин.
Do'stlaringiz bilan baham: |