System.Console.WriteLine("The current date
and time is " + System.DateTime.Now);
Мұнда экранға күн-ай мерзімі мен уақытты беретін тәсіл мәлімет шығарады. Now —
DateTime
объектісінің қасиеті, ол жүйелік дата мен уақытты береді. Now — статикалық
қаси-ет, сондықтан оны DateTime объектісін жаса-май-ақ қолдана беру ге болады.
Программа жұмысы нәтижесі:
Тағы бір мысал
// Listing1_1.cs файлы
using System;
namespace ConsoleApplication1
{ ///
/// Summary description for Class1
///
class Class1
{ ///
/// The main entry point for the application
///
[STAThread]
public static void Main(string[ ] args)
{ //
// TODO: Add code to start application
//
Console.WriteLine("Hello, World!");
}
}
}
25
Using System директивасы System атау-лар кеңістігінен тікелей стандартты класс
аттарын (кеңістік атын көрсетпей) пайдалануға рұхсат береді.
namespace түйінді сөзі осы программа үшін ConsoleApplication1 атты өз атаулар
ке-ңістігін жасайды. Бұл программа объектіле-ріне ат беруге болатынын көрсетеді.
2 не 3 қиғаш сызықтан басталатын жолдар комментарий болып саналады, 3 сызық
прог-рамма комментарийлерінен құжат жасауға мүмкіндік береді.
C# тілі объектіге бағытталған тіл, сондықтан оның программасы бір-бірімен өзара
бай-ланысқан кластардан тұрады. Бұл программада тек бір ғана класс бар, оған өзіміз
Class1 деп ат бердік, класс сипаттамасы class түйінді сөзінен басталады да, аты
жазылады.Сонан соң жүйелі жақша ішінде класс элементтері көрсетіледі. Олардағы
функциялар мен мәлі-меттер тәсіл – метод деп аталады.
Жоғарыдағы класс ішінде тек бір элемент – Main методы, яғни тәсілі бар. Әр
программада осындай бір басты тәсіл болады, программаны орындау содан басталады.
3. Программаны компиляциядан өткізу және орындау
С# тіліндегі программа мәтін түрінде жазылады. Кез келген мәтіндік редактор
арқылы программаны компьютерде тереміз де, артынан оны компиляциядан өткізіп, сонан
соң орындап, нәтижесін аламыз.
Сонымен, компьютердің С# тіліндегі программаны орындауы үшін, оны маш-
ина тіліне аударатын компилятор керек екені түсінікті шығар.
Компилятор программа мәтіні жазылған файлды оқып, оны талдайды, қателерін
тексереді. Қателері түзетілген соң, программаны орындап, нәтиже беретін атқарылатын
файл (исполняемый) жасайды.
Программаны бір рет компиляция-дан өткізген соң, оны әр түрлі бастапқы
мәліметтер үшін атқарылатын файлды қайталап орындай отырып, нәтижелер аламыз.
Microsoft W
indows NT, Windows 2000, Windows ХР, Windows 2007
операциялық
жүйелерінде
Visual
Studio.NET
ортасы
қолданылады,
ол
программалаудыңбіріктірілген ортасы болып табылады, яғни құрамында C# тәрізді
мәтіндік редакторды, компиляторды, т.б. қосымша програм-маларды біріктіріп тұрады.
3-4-
ші лекция.C# тілінің элементтері
•
Тілдің құрамы
•
Атаулар, айнымалылар және константалар
•
C++
тіліндегі мәліметтер типтері
•
C++
тілінің константалары
•
C# тілінің негізгі операциялары
•
Қарапайым енгізу-шығару операцияларын орындау
1.
Тілдің құрамы
Кез келген табиғи тілдің мәтінінде символдар, сөздер, сөз тіркестері және
сөйлемдер болады. Осындай элементтер программалау тілдерінде де болады, мұнда бірақ
сөздер – лексемдер (қарапа-йым конструкциялар), сөз тіркестері – өрнектер деп, ал
сөйлемдер – операторлар деп аталады.
Лексемдер симолдардан тұрады, өрнектер – лексемдер мен символдардан, ал
операторлар – символдардан, өрнектерден және лексемдерден тұрады.
•
Тілдің алфавиті немесе оның символдары — бұл бөлінбейтін негізгі
белгілер, солардан тілдің барлық мәтіндері құрастырылады. С# тілінің алфавиті
ретіне Unicode символдары қолданылады. Unicode кодтары барлық қолданылатын
алфавиттерді бірден бейнелей алады. Оның алғашқы 128 символы ANSI-кодтар
кес-тесіне сәйкес келеді.
26
•
Лексем (token-токен) немесе қарапайым конструк-ция — өзіндік мағынасы
бар тілдің ең кіші бірлігі. Олардың құрамы:
1.
Идентификаторлар;
2.
Түйінді сөздер;
3.
Операция таңбалары;
4.
Айыру таңбалары;
5.
Константалар (литералдар).
2. Атаулар, айнымалылар және константалар С# тілінің алфавиті Си ++
тілімен бірдей деуге болады:
бас және кіші латын әріптері;
0-
ден 9-ға дейінгі араб цифрлары;
арнайы белгілер: [] {} , . ( ) + - / * \ | % ; : ? <> = ! & # ^ " ';
айыру символдары: бос орын (пробел), табуляция символы, жаңа
жолға көшу таңбасы;
Символдардан лексемдер құралады, олар:
идентификаторлар;
түйінді сөздер;
операция таңбалары;
костанталар, яғни тұрақтылар;
бөлгіштер (жақша, нүкте, үтір, айыру символдары).
Идентификаторлар – программалық объектінің аты (атауы). Әріп немесе астын
сызу таңбасы иденти-фикатордың бірінші символы болуы мүмкін, бірақ цифр бола
алмайды. Идентификаторлар мысалдары:
X, bc, A12, Bagasy, BITES_PER_WORD , aty_goni
Түйінді сөздер (keyword) – компилятор үшін ар-найы мәні бар қордағы
(резервтегі) идентификаторлар.
Операция таңбалары – операндтармен (мәндер-мен) іс-әрекет атқару үшін
қолданылатын бір немесе бірнеше символдар.
Тұрақтылар – программа орындалу барысында өзгермейтін шамалар.
Комментарийлер – компилятор үшін маңызы жоқ программаның бөлігі және
программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол /* және */ қоршалып
тұрады немесе жол соңында // символынан басталады.
С# тілінің түйінді сөздері тізімі
abstract
do
in
protected
true
as
double
int
public
try
base
else
interface
readonly
typeof
bool
enum
internal
ref
uint
break
event
is
return
ulong
byte
explicit
lock
sbyte
unchecked
case
extern
long
sealed
unsafe
catch
false
namespace
short
ushort
char
finally
new
sizeof
using
checked
fixed
null
stackalloc
virtual
class
float
object
static
void
27
const
for
operator
string
volatile
continue
foreach
out
struct
while
decimal
goto
override
switch
default
if
params
this
delegate
implicit
private
throw
3. С# тіліндегі мәліметтер типтері
С# тілі қатаң түрде типтелген тіл, яғни әрбір ай-нымалы немесе объект данасы
белгілі бір типке жатқызылуы тиіс, бұл орындалатын амалдардың дұрыстығын тексеру
мүмкіндігін береді.
Егер элементтер құрастырылуын негізге алсақ, онда типтер қарапайым және
құрылымды болып бөлінеді.
Жасаушыға байланысты типтер құрамдас және программалаушы анықтаған болып
бөлінеді.
Статикалық типтегі мәліметке жады бірден бөлінеді де, динамкалық типтегі
мәліметке жады оны жариялау кезінде емес, оны программада пайдалану кезінде бөлінеді.
С# тіліндегі мәліметтер типтерін жіктеу түрлері
С# тілінде құрамдас 15 тип бар, олардың сегізі бүтін сандық типке жатады. Олар —
С# түйінді сөздерімен анықталады да, кез келген программада қолданыла береді.
bool
Логикалық немесе бульдік тип, оның мәндері АҚИҚАТ/ЖАЛҒАН болып келеді
byte
8-
разрядты таңбасыз бүтін санды тип
char
Символдық тип
string
Тіркестік тип
decimal
Қаржылық есептеулерге арналған сандық тип
28
double
Екі еселенген дәлдіктегі жылжымалы нүктелі сандық тип
float
Жылжымалы нүктелі сандық тип
int
Бүтін сандық тип
long
Ұзын бүтін санды бейнелеуге арналған тип
sbyte
8-
разрядты таңбалы бүтін санды тип
short
Қысқа бүтін санды бейнелеуге арналған тип
uint
Таңбасыз бүтін санды тип
ulong
Ұзын таңбасыз бүтін санды бейнелеуге арналған тип
ushort
Қысқа таңбасыз бүтін санды бейнелеуге арналған тип
object
Барлық құрамдас және тұтынушы типтері осыдан бастау алады
Логикалық тип
Тип аты
Жүйелік тип
Мәндері
Көлемі
(ені)
Bool
System.Boolean
true, false
8 бит
Арифметикалық бүтін сан түріндегі типтер
Тип аты
Жүйелік тип
Өзгеру диапазоны Көлемі (ені)
Sbyte
System.SByte
-128 — 127
Таңбалы, 8 Бит
Byte
System.Byte
0 — 255
Таңбасыз, 8 Бит
Short
System.Short
-32768 —32767
Таңбалы, 16 Бит
Ushort
System.UShort
0 — 65535
Таңбасыз, 16
Бит
Int
System.Int32
≈(-2*10^9 —
2*10^9)
Таңбалы, 32 Бит
Uint
System.UInt32
≈(0 — 4*10^9)
Таңбасыз, 32
Бит
Long
System.Int64
≈(-9*10^18 —
9*10^18)
Таңбалы, 64 Бит
Ulong
System.UInt64
≈(0— 18*10^18)
Таңбасыз, 64
Бит
Арифметикалық жылжымалы нүктелі сандар түріндегі типтер
Float
System.Single
+1.5*10^-45 -
+3.4*10^38
7 цифр
Double
System.Double
+5.0*10^-324 -
+1.7*10^308
15-
16 цифр
Арифметикалық бекітілген нүктелі сандар түріндегі тип
29
Decimal
System.Decimal +1.0*10^-28 -
+7.9*10^28
Цифрлардың 28-
29
таңбасы
Программада кездесетін константалардың жазылуына қарай, яғни солардың сыртқы
бейнесіне сәйкес белгілі бір тип тағайын-далады. Егер ол типті өзгерту керек болса, онда
санның соңына жалғастырылып кер-екті типтің атына сәйкес бір әріп – L, l (long) немесе
U,
u (unsigned) жазылады. Мысалы, 32L константасының типі long және ол компьютердің
жедел жадында 4 байт орын алады. Қажет болса, L және U әріптерін қатарластыра да
қолдануға бола-ды, мысалы, 0x22UL немесе 05Lu.
Мәліметтердің decimal типі үтірден кейінгі 28 таңбаға дейін сақтай алады, ол
көбінесе ақшалық мәндерді сақтау үшін қолданылады.
Айнымалыға немесе константаға float типін бергенде, мән соңына "F" или "f "
символын қоюға, мысалы:
float myFloat1 = 1.2f;
Ал тип double болса, "D" или "d" символын қоюға болады, бірақ айнымалы нақты
анықталған соң, әріптерді қоймаса да болады. Мысалы:
double myDoublel = 1234.5678;
double myDouble2 = 1234.5678d;
Символдық тип
Символдық тип char 16-биттік Unicode символ болып табылады.
Unicode –
әлем тілдерінің барлық символдарын электрондық формада бейнелеуге
арналған стандарт.
Символдық типтер
Тип аты
Жүйелік тип
Өзгеру
диапазоны
Дәлдігі
Char
System.Char
U+0000 – U+ffff
16 биттік Unicode
символдары
String
System.String
Unicode
символдары тіркесі
Төменде мәліметтердің 11 сандық типтерінің әрқайсысы үшін ең кіші (минимал)
және ең үлкен (максимал) мәндерін көрсететін программа мысалы келтірілген.
// MinAndМax.cs программасы
using System;
class MinAndMax
{ public static void Main()
{ Console.WriteLine("sbyte: {0} to {1}",sbyte.MinValue, sbyte.MaxValue);
Console.WriteLine("byte: {0} to {1}",byte.MinValue, byte.MaxValue);
Console.WriteLine("short: {0} to {1}",short.MinValue, short.MaxValue);
Console.WriteLine("ushort:{0} to {1}",ushort.MinValue, ushort.MaxValue);
Console.WriteLine("int: {0} to {1}",int.MinValue, int.MaxValue);
Console.WriteLine("uint: {0} to {1}",uint.MinValue, uint.MaxValue);
Console.WriteLine("long: {0} to {1}",long.MinValue, long.MaxValue);
Console.WriteLine("ulong: {0} to {1)",ulong.MinValue, ulong.MaxValue);
Console.WriteLine("float: {0} to {1}",float.MinValue, float.MaxValue);
Console.WriteLine("double:{0} to {1}",double.MinValue, double.MaxValue);
Console.WriteLine("decimal:{0} to {1}",decimal.MinValue, decimal.MaxValue);
}
}
Программа жұмысы нәтижесі:
sbyte : -128 to 127
30
byte: 0 to 255
short: -32768 to 32767
ushort: 0 to 65535
int: -2147483648 to 2147483647
uint: 0 to 4294967295
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
float : -3.402823E+38 to 3.402823E+38
double: -
1.79769313486232E+308 to 1.797693134862Э2Е+308
decimal: -79228162514264337593543950335 to 79228162514264337593543950335
С# тілінде bool типі бар, ол true немесе false сияқты екі мәнді қабылдай алады.
Салыстыру операцияларының нәтижелері (==, !=, <, >, <= и >=) — bool типінде болады.
Bool типі бүтін типке келтіріледі (true – 1, ал false — 0), бірақ ол тікелей орындалуы тиіс.
Char типі бір символды, aл string — бірнеше сим-волдардан тұратын сөз тіркестерін
сақтау үшін қажет.
Char типі бүтін типтерден өзгеше болып келеді және де оны sbyte немесе byte
типтерімен шатастыр-мау керек. Char типіндегі айнымалылар 16 бит (бірақ ол short немесе
ushort типтерінен өзгеше) орын алады.
С# тілінде мәліметтер типтерінің элементтерді сақтау тәсіліне қарай тағы екі
категориясы (санаты) бар: мәндертиптері (value types) және сілтемелік типтер.
Мәндертиптері дегеніміз шамаға компи-лятор бөліп берген компьютер жадындағы
биттер тізбегі.
Сілтемелік типтер мәліметтердің өздерін емес, олардың адрестерін сақтайды,
мұндағы мән компью-тердің динамикалық жадындағы басқа бір объектіге (үйіндіге –
кучаға) сілтеу арқылы жасалады. Мәндер типтеріне логикалық тип, арифметикалық тип,
құры-лымдар және саналатын (перечисления) типтер жа-тады. Сілтемелік типтерге
жиымдар, сөз тіркестері (жолдар) және кластар жатады.
4. C#
тілінің константалары
Константа
Форматы
Мысалдар
Бүтін
Ондық: ондық цифрлар
тізбесі, нөлден басталмайды
(егер сан 0 болмаса)
8, 0, 199226
8u, 0LU, 199226L
Соңында тип-ті
беретін
U,L,UL,LU,IU
тәрізді
жұрнақтар болуы
мүмкін
Он алтылық: 0х немесе 0X
таңбаларынан басталатын
он алтылық цифрлар
(0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,
F)
0xA, 0x1B8, 0X00FF
0xAU, 0x1B8LU,
0X00FFFL
31
Нақты
Ондық:
[цифрлар].[цифрлар]
1
5.7, .001, 35.
5.7F, .001d, 35m
Соңында тип-ті
беретін F, D, Mтәрізді
жұрнақтар болуы
мүмкін
Экспоненциалдық
[цифрлар][.][
цифрлар]{Е|е}[+|-][
цифрлар]
0.2Е6, .11е-3, 5Е10
0.2Е6D, .11е-3m,
5Е10d
Символдық
Апостроф таңбасымен
қоршалған бір немесе екі
символ
'
А', 'ю', '*', 'db', '\0',
'\n\', \012', '\x07\x07'
Тіркестік
Тырнақшаға алынған
символдар тіркесі
"
Мұнда Азат болды",
"\t
Нәтижесі:r=\0xF5\n"
/* Example2_7.cs константаларды қолдану */
class Example2_7
{ public static void Main()
{
const int Length = 3;
// математикалық константа Пи
const double Pi = 3.14159;
// жарық жылдамдығы метр/секунд
const double SpeedOfLight = 2.99792е8;
Console.WriteLine("Length = " + Length);
Console.WriteLine("Pi = " + Pi);
Console.WriteLine("SpeedOfLight = " + SpeedOfLight);
}
}
Программа нәтижесі
Length = 3
Pi = 3.14159
SpeedOfLight = 299792000
6.
C#
тілінің негізгі операциялары
Төменде C# негізгі операциялары олардың приоритеттері бойынша берілген.
Операндтарының санына қарай олар унарлық, бинарлық және тернарлық болып
бөлінеді.
Унарлық (бір орынды) операциялар
Опера
ция
Қысқаша сипаттамасы
32
++
1-
ге арттыру
--
1-
ге кеміту
~
разрядтар бойынша терістеу
!
логикалық терістеу
-
арифметикалық терістеу (унарлық минус)
+
унарлық плюс
new
жадыны бөлу
typeof
типті алу
checked
тексерілетін код
unchecked
тексерілмейтін код
(type)х
типті түрлендіру
// Инкремент (++) және декремент (--) операциялары
using System;
namespace Increment1
{ class Class1
{ static void Main()
{
int x = 3, y = 3;
Console.Write("Prefix opnek mani: ");
Console.WriteLine( ++x);
Console.
Write(" х-ting natigelik mani: ");
Console.WriteLine( x);
Console.Write("Postfix opnek mani: ");
Console.WriteLine( y++);
Console.Write(" y-ting natigelik mani: ");
Console.WriteLine( y);
}
}
}
Программа жұмысы нәтижесі:
Prefix opnek mani: 4
х-ting natigelik mani: 4
Postfix opnek mani: 3
Достарыңызбен бөлісу: |