Kalit so’zlar va nomlar. Quyidagi ro’yxatda C# tilining kalit so’zlari va nomlari berilgan bo’lib, dastur tuzilishi paytida ularni boshqa maqsadda ishlatish (masalan o’zgaruvchi nomini inisializatsiya qilishda) mumkin emas.
1.1.1-jadval. Kalit so’zlar va nomlar.
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
|
Const
|
for
|
operator
|
string
|
volatile
|
Continue
|
foreach
|
out
|
struct
|
while
|
Decimal
|
goto
|
override
|
switch
|
|
Default
|
if
|
params
|
this
|
|
Delegate
|
implicit
|
private
|
throw
|
|
C# tilida boshqa tillarda bo’lgani kabi dasturning har bir qismiga izoh yozish mumkin. Bu izohlar dastur kompilatsiyasida ishtirok etmaydi va dastur ishiga hech qanday ta’sir ko’rsatmaydi. C# da izoh yozish uchun /* */, // belgilaridan foydalanish mumkin. // belgisi shu belgidan keyin to shu satr oxirigacha bo’lgan barcha belgilarni izoh sifatida qabul qiladi. /* */ bu orqali istalgan qismni izohga olish mumkin.
Literallar. C# tilida 5 xil literal mavjud ;
Butun tipli literal
Haqiqiy tipli literal
Belgili literal
Satr tipli literal
Mantiqiy tipli literal
Literallar – bu tilning maxsus tushunchasidir. Har bir literallar to’plami uchun alohida yozilish qoidasi mavjud. Masalan:
Butun tipli literallar: 5, 7, 8, -12, 234
Haqiqiy tipli literallar: 3.6, -56.8, 0.9
Belgili literallar: ‘a’, ‘b’, ‘?’,
Satr tipli literallar: “salom”, “aka”, “abcd”
Mantiqiy tipli literallar: true. false
1.3. C# tilida ma’lumotlar tiplari.
C# tili juda tiplashgan til hisoblanadi. Uni ishlatish paytida har bir o’zgaruv-chi obyektning tipini alohida e‘lon qilish kerak (masalan, butun son, satr, oyna, tugma va h.z). Xuddi C++ va Java tillari kabi C# tilida ham 2 xil ma’lumotlar tipi mavjud: birinchi aniqlangan va xotirada til tomonidan avtomatik joylashtirilgan, ikkinchi dasturchi – foydalanuvchi tomonidan kiritiladigan va aniqlanadigan. C# ning ustun tomoni unda ma’lumotlar yana ikki turga bo’linadi: o’lchamli va yo’nalishli. Ularning asosiy farqi ma’lumotlarni xotirada joylashtirishidir. O’l-chamli tip o’zining aniq qiymatini stekka yozib qo’yadi, yo’nalishli tip esa bu stekka faqat qaysidir (o’zi aniqlaydigan) obyekt manzilini yozib qo’yadi, obyektning o’zi esa kuchada saqlanadi. Kucha – bu dastur saqlanadigan asosiy xotira bo’lib, unga murojaat qilish dastur tezligini biroz pasaytiradi. Lekin agar siz juda katta obyektlar bilan ishlayotgan bo’lsangiz, unda bu obyektni kuchada saqlashning bir muncha afzallik tomonlari bor.
Yaratilgan tiplar.
1.1.2-jadval. C# tilida yaratilgan tiplar va ularning o’lchamilari.
Tip
|
Qiymat oralig’i
|
O’lchami
|
|
sbyte
|
-128 to 127
|
Belgili 8-bit butun
|
|
byte
|
0 to 255
|
Belgisiz 8-bit butun
|
|
char
|
U + 0000 to U + 0000T
|
16-bitli Unicod
|
|
bool
|
true yoki false.
|
1 bayt
|
|
short
|
-32768 to 32767
|
Belgili 16-bit butun
|
|
ushort
|
0 to 65535
|
Belgisiz 16-bit butun
|
|
int
|
-2147483648 to 2147483647
|
Belgili 32-bit butun
|
|
uint
|
0 to 4294967295
|
Belgisiz 32-bit butun
|
|
long
|
-9223372036854775808 to
9223372036854775807
|
Belgili 32-bit butun
|
|
ulong
|
0 to 18446744073709551615
|
Belgisiz 32-bit butun
|
float
|
-1.5*10^6 to 3.4 *10^7
|
4 баyт, aniqlik — 7 razryadli
|
double
|
-1.5*10^6 to 3.4 *10^7
|
8 баyт, aniqlik —16 razryadli
|
decimal
|
-5.0*10^3 2 4 to 1.7*10^30
8
|
12 баyт, aniqlik — 28 razryadli
|
Yaratilgan tiplarni o’zlashtirish.
Bir tipga tegishli bo’lgan obyektlar boshqa tipli obyektga oshkor yoki yashirin tarzda o’zlashtirilishi mumkin. Yashirin tarzda avtomatik o’zlashtirish bo’lib, uni kompyuter sizning o’rningizda amalga oshiradi. Oshkor o’zlashtirish faqatgina siz tomoningizdan berilgan qoida bo’yicha amalga oshadi. Yashirin o’zlashtirish ma’lumotlar yo’qolishini oldini oladi. Masalan: siz short tipidagi (2 bayt) axborotni int tipidagi (4 bayt) obyektga o’zlashtira olmaysiz, bunda axborot yo’qolishi bo’lishi mumkin. Lekin buni kompyuter avtomatik tarzda o’zlashtirganda hech qanday xatolik ro’y bermaydi.
Short x=1;
Int y = x ; // yashirin o’zlashtirish
Agar siz aksincha almashtirishni amalga oshirsangiz, axborot yo’qolishiga olib keladi. Kompilyator bunday o’zlashtirishni amalga oshirmaydi.
Short x ;
Int y=5;
X=y; // Komplyatsiya amalga oshmaydi
Siz buning uchun oshkor almashtirishni amalga oshirishingiz kerak.
Short x; Int y; x=(short) y; // to’g’ri
O’zgaruvchilar.
O’zgaruvchi – xotiraning ma’lum bir qismini biror bir tipli axborot uchun ajratishdir. Yuqorida e’lon qilingan x va y lar o’zgaruvchilardir. O’zgaruvchilar inisializatsiya paytida (qiymat qabul qilish paytida) yoki dastur yordamida o’zgartirilishi mumkin.
O’zgaruvchilar qiymatini aniqlash.
O’zgaruvchini hosil qilish uchun siz o’zgaruvchining tipini va keyin esa uning nomini berishingiz kerak.Uning qiymatini e’lon qilish paytida yoki dastur davomida berishingiz mumkin. Masalan: a va b sonlarni yig’indisini s ga o’zlashtirish dasturini ko’ramiz.
using System; namespace _02_misol
{
class Program
{ static void Main(string[] args)
{ int a,b,s;
a=2;b=3;s=a+b;
Console.Write(“s=”+s);
Console.ReadKey();
} } }
O’zgarmaslar.
O’zgarmas – bu shunday o’zgaruvchiki, uning qiymati hech qachon o’zgarmaydi. O’zgaruvchilar – qiymatlarning o’zlashtirishning qulay usulidir. Lekin siz qiymatning dastur davomida o’zgarmasligini kafolatlashni xoxlasangiz, buning uchun o’zgarmas – o’zgaruvchilardan foydalanishingiz mumkin. Masalan: agar siz quyidagi amalni bajarmoqchi bo’lsangiz : у = х * 3.1415926535897932384626433832795 ushbu ko’paytmani, pi=3.1415926535897932384626433832795; y=x*pi; ko’rinishida yozishingiz afzalroq.
O’zgarmaslarning 3 ta : literallar, belgili o’zgarmaslar va hisoblagichlar turi mavjud.
Literal : x=100 ;
100 – literal o’zgarmas.
Belgili. Const double pi=3.1415926535897932384626433832795;
Pi – belgili o’zgarmas.
Masalan:
class Program
{ static void Main(string[] args)
{const double p = 3.1415926535897932384626433832795;
System.Console.WriteLine(p);
System.Console.ReadKey();
}
}
Dastur natijasi : pi : 3.1415926535897932384626433832795 ga teng.
Satr o’zgarmaslari.
Dastur yozish paytida satr o’zgarmasini e’lon qilish uchun uni ikkita qo’shtirnoq orasiga olish kerak. Masalan, “salom yoshlar”. Bu satr o’zgarmasi sifatida komplyatsiya bo’ladi. Buni siz dasturning istalgan qismida bajarishingiz mumkin. Masalan, funksiya parametrlarini o’zlashtirishda, o’zgaruvchilarni e’lon qilishda.
String a=”Salom yoshlar”.
Massivlar.
C# da massivlar boshqa C dasturlash tillaridagi massivlardan ancha farq qiladi. Buni misollar yordamida ko’rib o’tamiz. int [] k ; // k – massiv.
K = new int [3] ; // massiv 3 ta int tipiga tegishli elementdan iborat.
K [0] = -5;
K [1] = 4 ;
K [2] = 1; // massiv elementlarini e’lon qilamiz.
// massivning uchinchi elementini chiqaramiz
Console.Writeline(k[2]+””);
Yuqoridagilardan ko’rinib turibdiki, massiv quyidagicha e’lon qilinadi :
Int [] k;
Quyidagisi esa xato hisoblanadi : int k[]; //xato!
int k [] ; //xato !
Ko’p o’lchovli massivlar.
Massivlarning ko’p o’lchovli e’lon qilish uchun faqatgina “,” belgisini n marotaba (n o’lchovli uchun), [] lar sonini n marotaba (n darajali) yozish kerak.
II-BOB. C# dasturlash muhitida matematik diagrammalarni yaratish
2.1. matematik diagrammalarni yaratish
To'rtburchak va nuqta kabi sinflar GDI + elementlarini o'z ichiga oladi. Shuni e'tiborga olingki, nuqta aslida x, y maydonlari bo'lgan strukturadir. Ushbu tushuntirish ahamiyatsiz, chunki C # tarkibidagi tuzilmalar sinflarga o'xshashdir va nuqta tuzilishi ob'ektini boshlash sinf ob'ektini boshlash bilan bir xil ko'rinishi mumkin:
Nuqta nuqtasi = yangi nuqta ();
Pen klassi chiziqlar va egri chiziqlarni chizish uchun, Brush sinfidan olingan sinflar esa yopiq yo'llarni bo'yash uchun ishlatiladi (pastga qarang).
GraphicsPath klassi bir-biriga bog'langan chiziqlar va egri chiziqlar ketma-ketligini o'rnatishga imkon beradi, Region klassi ko'pburchak va yo'llardan iborat grafik shaklning ichki qismini tavsiflaydi.
Image sinfi - bu Bitmap va Metafile olingan sinflari uchun funksionallikni ta'minlovchi mavhum bazaviy sinf. Bitmap pikselli tasvirlar bilan ishlash uchun ishlatiladi (yuqoridagi misolga qarang). Metafile yozib olish (yaratish) va ijro etish (namoyish qilish) mumkin bo'lgan grafik operatsiyalar ketma-ketligini tavsiflovchi yozuvlarni o'z ichiga olgan grafik metafaylni belgilaydi. Ushbu sinf meros qilib olinmagan.
Grafika darsi U GDI + chizilgan yuzasini o'z ichiga oladi. Ushbu sinf meros qilib olinmagan. Ushbu sinfda juda ko'p usullar mavjud, shuning uchun biz ularni dastlab jadvalda taqdim etamiz, so'ngra ularning ayrimlarini misollar va tushuntirishlar bilan ko'rib chiqamiz. Jadvalning uchinchi ustunida parametrlar to'plamida farq qiladigan ortiqcha usullar soni ko'rsatilgan (IntelliSense aqlli maslahatidan foydalanib, kerakli usul parametrini tanlang).
Qalam sinfi
Pen klassi to'g'ri chiziqlar va egri chiziqlar chizish uchun foydalaniladigan ob'ektni belgilaydi. Ushbu sinf meros qilib olinmagan. Sinf konstruktorlari (shuningdek, ortiqcha yuklanishning misoli):
1) Pen (Color) Pen sinfining yangi nusxasini ko'rsatilgan rang bilan ishga tushiradi.
2) Pen (Colour, Single) Pen va sinfning yangi Color, Width xususiyatlariga ega nusxasini ishga tushiradi. (Kenglik – qalamning kengligini, chizish uchun ishlatiladigan Grafika birliklarida o'rnatadi
// Draw butterfly curves on both PictureBoxes.
private void DrawCurves()
{
// Clear both images.
picCanvas1.Image = null;
picCanvas2.Refresh();
picCanvas1.Refresh();
int wid = picCanvas2.ClientSize.Width;
int hgt = picCanvas2.ClientSize.Height;
// Draw with double-buffering.
Bitmap bm = new Bitmap(wid, hgt);
using (Graphics gr = Graphics.FromImage(bm))
{
DrawButterfly(gr, wid, hgt);
}
picCanvas1.Image = bm;
picCanvas1.Refresh();
// Draw without double-buffering.
DrawButterfly(picCanvas2.CreateGraphics(), wid, hgt);
}
Yo'lovchilarning tramvay bekatiga, masalan, Aviamotornaya bekatiga kelishi diagrammasini yaratuvchi C# ilovasi yaratilgan.
Amalda bunday jadval yo'lovchilarning turli vaqt oralig'ida to'xtash joyiga kelishi haqidagi statistik ma'lumotlarni yig'ish natijasida tuziladi. Har bir vaqt oralig'ida diagramma to'xtash joyiga kelgan yo'lovchilar sonining matematik taxminini ko'rsatadi.
Ushbu jadvallar marshrut bo'ylab har bir to'xtash uchun tuziladi.
Dasturda diagramma quyidagi ma'lumotlarga ko'ra avtomatik ravishda yaratiladi:
using System;
using System.IO; // StreamWriter
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplicationChart
{
public partial class FormDiag : Form
{
const string fileParams = "params.txt";
const string fileStop = "stop";
const int tStart = 5 * 3600 + 20 * 60;
const int tEnd = 25 * 3600 + 20 * 60;
const int tGoLast = 1 * 3600 + 40 * 60;
int nStops = 24;
int nPas = 13000;
int morn, morn2, ev, ev2;
int pasPeak, pasPeak2, pasOth, pasOth2;
int[][] arrDiags;
private Random rnd = new Random();
StreamWriter sW;
public FormDiag()
{
InitializeComponent();
chartIn.ChartAreas[0].AxisX.Title = "Временной интервал, мин";
chartIn.ChartAreas[0].AxisY.Title = "Число пассажиров";
Font fnt = new System.Drawing.Font("Microsoft Sans Serif", 10.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
chartIn.ChartAreas[0].AxisX.TitleFont = fnt;
chartIn.ChartAreas[0].AxisY.TitleFont = fnt;
chartIn.ChartAreas[0].BackColor = Color.WhiteSmoke;
chartIn.Series[0].LegendText = "Пассажиры";
chartIn.Series[0].IsVisibleInLegend = false;
chartIn.Series[0].Color = Color.Red;
chartIn.Series[0].BorderWidth = 2;
numericUpDownPasPeak.Value = 20;
numericUpDownPasPeak2.Value = 25;
numericUpDownPasOth.Value = 3;
numericUpDownPasOth2.Value = 7;
numericUpDownNPas.Value = nPas;
numericUpDownNPas.Value = nStops;
arrDiags = new int[nStops][];
ShowDiag();
}
private void buttonClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void readParams(int coef) // 60 или 3600
{
morn = (int)numericUpDownMorn.Value * coef;
morn2 = (int)numericUpDownMorn2.Value * coef;
if (morn2 <= morn) morn2 = morn + 3600;
ev = (int)numericUpDownEv.Value * coef;
ev2 = (int)numericUpDownEv2.Value * coef;
if (ev2 <= ev) ev2 = ev + 3600;
pasPeak = (int)numericUpDownPasPeak.Value;
pasPeak2 = (int)numericUpDownPasPeak2.Value;
if (pasPeak2 <= pasPeak) pasPeak2 = pasPeak + 1;
pasOth = (int)numericUpDownPasOth.Value;
pasOth2 = (int)numericUpDownPasOth2.Value;
if (pasOth2 <= pasOth) pasOth2 = pasOth + 1;
}
private void ShowDiag()
{
chartIn.Series[0].Points.Clear();
if (radioButtonStepLine.Checked)
chartIn.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StepLine;
else
chartIn.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
int moveStart = (int)numericUpDownMove.Value * 60;
int moveEnd = (int)numericUpDownMove2.Value * 60;
int intLen = (int)numericUpDownInt.Value;
int N = (moveEnd - moveStart) / intLen + 1;
readParams(60);
int[] arrPasCome = new int[N];
int[] arrTimeInt = new int[N];
int t = moveStart, pasCome;
for (int k = 0; k < N; k++)
{
if (checkBoxWeekEnd.Checked)
{
if (t >= morn && t <= morn2 || t >= ev && t <= ev2)
pasCome = rnd.Next(pasPeak, pasPeak2);
else if (t > morn2 && t < ev)
pasCome = (pasOth2 + pasPeak2) / 2;
else
pasCome = rnd.Next(pasOth, pasOth2);
}
else
{
if (t >= morn && t <= morn2 || t >= ev && t <= ev2)
pasCome = rnd.Next(pasPeak, pasPeak2);
else
pasCome = rnd.Next(pasOth, pasOth2);
}
arrPasCome[k] = pasCome;
arrTimeInt[k] = t;
t += intLen;
}
for (int k = 0; k < N; k++) chartIn.Series[0].Points.AddXY(arrTimeInt[k], arrPasCome[k]);
numericUpDownMorn2.Value = Convert.ToDecimal(morn2 / 60);
numericUpDownEv2.Value = Convert.ToDecimal(ev2 / 60);
numericUpDownPasPeak2.Value = Convert.ToDecimal(pasPeak2);
numericUpDownPasOth2.Value = Convert.ToDecimal(pasOth2);
}
private void buttonShow_Click(object sender, EventArgs e)
{
ShowDiag();
}
private void radioButtonDiagType_CheckedChanged(object sender, EventArgs e)
{
ShowDiag();
}
private void checkBoxLegend_CheckedChanged(object sender, EventArgs e)
{
chartIn.Series[0].IsVisibleInLegend = checkBoxLegend.Checked;
ShowDiag();
}
private void numericUpDown_ValueChanged(object sender, EventArgs e)
{
nStops = (int)numericUpDownNPas.Value;
arrDiags = new int[nStops][];
ShowDiag();
}
private void buttonGen_Click(object sender, EventArgs e)
{
GenDiags();
MessageBox.Show("Готово");
}
private void GenDiags()
{
int intLen = (int)numericUpDownInt.Value * 60;
int N = (tEnd + tGoLast - tStart) / intLen + 1;
int t, pasCome, nPas2 = 0;
int[] arrDiag;
string fileSt;
nPas = (int)numericUpDownNPas.Value;
readParams(3600);
sW = new StreamWriter(fileParams);
sW.WriteLine(intLen);
sW.WriteLine(N);
sW.WriteLine(morn);
sW.WriteLine(morn2);
sW.WriteLine(ev);
sW.WriteLine(ev2);
sW.Close();
for (int k = 0; k < nStops; k++)
{
arrDiag = new int[N];
t = tStart;
for (int k2 = 0; k2 < N; k2++)
{
if (checkBoxWeekEnd.Checked)
{
if (t >= morn && t <= morn2 || t >= ev && t <= ev2)
pasCome = rnd.Next(pasPeak, pasPeak2);
else if (t > morn2 && t < ev)
pasCome = (pasOth2 + pasPeak2) / 2;
else
pasCome = rnd.Next(pasOth, pasOth2);
}
else
{
if (t >= morn && t <= morn2 || t >= ev && t <= ev2)
pasCome = rnd.Next(pasPeak, pasPeak2);
else
pasCome = rnd.Next(pasOth, pasOth2);
}
arrDiag[k2] = pasCome;
nPas2 += pasCome;
t += intLen;
}
arrDiags[k] = arrDiag;
}
//MessageBox.Show("" + nPas2);
int d = (nPas2 < nPas ? 1 : -1);
while (nPas2 != nPas)
{
for (int k = 0; k < nStops; k++)
{
arrDiag = arrDiags[k];
for (int k2 = 0; k2 < N; k2++)
{
if (arrDiag[k2] > 3)
{
arrDiag[k2] += d;
nPas2 += d;
if (nPas2 == nPas)
{
arrDiags[k] = arrDiag;
break;
}
}
}
arrDiags[k] = arrDiag;
if (nPas2 == nPas) break;
}
}
// Пишем диаграммы в файлы
for (int k = 0; k < nStops; k++)
{
fileSt = fileStop + k + ".txt";
sW = new StreamWriter(fileSt);
arrDiag = arrDiags[k];
for (int k2 = 0; k2 < N; k2++)
{
sW.WriteLine(arrDiag[k2]);
}
Console.WriteLine("Сооздан файл " + fileSt);
sW.Close();
}
}
private void checkBoxWeekEnd_CheckedChanged(object sender, EventArgs e)
{
if(checkBoxWeekEnd.Checked)
{
numericUpDownPasPeak.Value = 30;
numericUpDownPasPeak2.Value = 31;
numericUpDownPasOth.Value = 10;
numericUpDownPasOth2.Value = 11;
numericUpDownMorn.Value = 8;
numericUpDownMorn2.Value = numericUpDownMorn2.Maximum;
numericUpDownEv.Value = 17;
numericUpDownEv2.Value = numericUpDownEv2.Maximum;
}
else
{
numericUpDownPasPeak.Value = 20;
numericUpDownPasPeak2.Value = 25;
numericUpDownPasOth.Value = 5;
numericUpDownPasOth2.Value = 15;
numericUpDownMorn2.Value = 9;
numericUpDownEv.Value = 17;
numericUpDownEv.Value = 19;
}
ShowDiag();
}
}
}
Xulosa
O'zbekiston mustaqillikka erishgadan so'ng davlatimizning asosiy qonuni - Konstitutsiyamizga ega bo'ldik. Vaqt o'tishi bilan hukumatimiz rahbarining O'zbekistonda “Kadrlar tayyorlash milliy dasturi” va “Axborot texnologiyalari sohasida kadrlar tayyorlash tizimini takomillashtirish” qarorlari alohida o'rin tutadi. Undagi g'oyalar avvalo XXI asrda yashaydigan, Vatan va yurt mustaqilligini mustahkamlovchi yoshlarning manfaatini ifodalaydi. Dasturda e'tirof etilgan kadrlar tayyorlash tizimini rivojlantirishning asosiy yo'nalishlarida shu narsa alohida belgilandiki, ta'lim tizimini yaxlit axborotlashtirish hozirgi zamon talablariga muvofiqlashuvini ta'minlaydi. Bu dasturni o'tgan davr mobaynida sarhisob qilib, ularning eng muhim xususiyatlaridan biri sifatida hozirgi ta'lim dasturida nazarda tutilayotgan zamonaviy axborot texnologiyalari, ta'limni kompyuterlashtirish va kompyuterlash tarmoqlari tizimida ta'lim jarayonini axborot bilan ta'minlashni yanada rivojlantirishni nazarda tutmoqdamiz. Zero, Milliy dasturni ro'yobga chiqarishga doir tashkiliy ishlarda e'tirof etilganidek, “Ta'limni axborot bilan ta'minlash tizimini shakllantirishva rivojlantirish, uni jahon axborot tizimi bilan bog'lash, ommaviy axborot vositalarining ta'lim sohasidagi vazifalarini belgilash” malakali mutaxassislarni tayyorlashning muhim mezonlaridan biridir. Hozirgi zamonda yurtimizda Axborat Texnologiyalarini rivojlantirish yo‘lida juda ko‘p ishlar amalga oshirilmoqda. Bu borada davlatimiz ko‘p ishlarni amalga oshirmoqda. Xususan ko‘p joylarga dasturlash orqali ko‘p loyihalarni oson va qulay bajarilyapti.Dasturlash chet davlatlarida anchagina rivojlangan masalan Amerika,Malayziya, Koreya,Hindiston.Hozirgi kunda har-xil dasturlash tillari mavjud C++,C#,Java, va hokozo. Shularning orasidan C# Windows muhitida ishlaydigan dastur tuzish uchun qulay vosita bo‘lib,kompyuterda dastur yaratish ishlarini avtomatlashtiradi, xatoliklarni kamaytiradi va dastur tuzuvchi ishini kamaytiradi.
Foydalanilgan adabiyotlar
Bjarne Stroustrup. Programming: Principles and Practice Using C++ (2nd Edition). Person Education, Inc. 2014. second printing,January 2015.
Harry Hariom Choudhary, Bjarne M Stroustrup. C++ Programming Professional.: Sixth Best Selling Edition for Beginner's & Expert's 2014.
S.S.G ulomov va boshqalar “Axborot tizimlari va ʻ texnologiyalari”. Oliy o quv yurti talabalari uchun darslik. – T: “Sharq”, ʻ 2000 y. 529 b.
A.Abduqodirov, A.Xaitov, R.Shodiyev “Axborot texnologiyalari”. Akademik litsey va kasb-hunar kollejlari uchun darslik. – T: “O’zbekiston”, 2001 y.
E.G aniyev, D.Jomurodov, A.Mo minov “Zamonaviy ʻ ʻ kompyuterlarni boshqarish”. Toshkent – “Fan va texnologiya”- 2004 y.
O.I. Jalolov, Sh.M. Sharipov C# dasturlash tilida fayllar bilan ishlash (uslubiy qo’llanma) BUXORO 2014
Aripov M.M. Informatika va hisoblash texnikasi asoslari: -Tashkent: O’zbekiston,2001y,-180b.
Дейтел Х, Дейтел П, Листфилд Дж. C# Наиболее полное руководство В Подлиннике: -Москва: Санкт-Петербург, 2006г. -1056 с.
Лабор В. В. Создание приложений для Windows: -Москва: Харвест, 2003. - 384 с.
Шилдт Герберт. Полный справочник по С#:-Москва: Издательский дом "Вильяме", 2004г. -752 с.
Aripov M.M, Imomov T, Irmuhamedov Z.M va boshqalar. Informatika va axborot texnologiyalari: -Toshkent: O’zbekiston, 1-qism. 2002y, 2-qism.
Do'stlaringiz bilan baham: |