Kirish asosiy qism 1



Yüklə 259 Kb.
səhifə4/6
tarix16.12.2022
ölçüsü259 Kb.
#121148
1   2   3   4   5   6
C# da dialog kurs ishi

C # dasturi
NET framerworkni joriy etganidan so’ng, Micrasoft yangi dasturlash tili C# ni ishlab chiqdi. C# sodda, zamonaviy, Obyektga yo’naltirilgan va umumiy maqsadi dasturiy ta’minot uchun mo’ljallangan, qolaversa ushbu til turli xil boshqa tillardan ayniqsa Javadan, asosiy me’zoni o’zida mujassamlashtirgan. C# nazariy jihatdan mashina tiliga kompilatsiya qilinishi mumkin, ammo, haqiqiy hayotda, u doim NETframerwork bilan birgalikda foydalaniladi. Shuning uchum, C# yozilgan dasurlardan foydalanish uchun qurilmaga ya’ni kompyuterga NET framerworkni o’rnatishni talab qiladi. NET framerwork turli xil tillardan foydalanish imkonini yaratsada C# ba’zi holatlarda NET dasturlash tili sifatida ham aytiladi, balki bu til ushbu framerwork bilan birgalikda foydalanish uchun yaratilganligi uchun bo’lsa kerak.
Bugungi kunda C# nafaqat Windows dasturlash tilidir, balki veb-ilolarni, Windows do’kon dasturlarini, iOS va Androidni o’z ichiga olgan mobil ilovalarni yaratish uchun ishlatilishi mumkin bo’lgan tildir. C#, bundan ham ko’proq narsani amalga oshirishi mumkin.
C# ning xususuyatlari
Avtomatik xotira boshqarish va axlat yig’ish C# ning ikkita muhim xususiyatdir. C# bilan biz xotira ajratib qo’yishimiz yoki uni o’chirib yuborishimiz shart emas. Chiqindilarni yig’ish xususiyati ta’minlaydiki ishlamaydigan arizalar o’chiriladi va xotira tozalanadi. Yuqorida aytilganidek, C# obyektga qaratilgan til hisoblanadi. Bu muammolarni yechishning oson imkonini yaratadi.


2.2 C# dasturlash tili va uning imkoniyatlari
C# dasturlash tili o`zining soddaligi, barqarorligi va mantiqiyligi bilan faqr qiladi. Unda xatolarni toppish noqulay ko`rinmaydi. C# tili tiplarga nisbatan xavfsiz hisoblanadi. U initsializatsiyalanmagan o`zgaruvchilarni ishlatishdan, tiplarni xavfsiz bo`lmagan o`tkazishdan va boshqa ko`p tarqalgan xatoliklardan himoyalaydi.C# dasturlash tilida dastur tuzish vaqt va moddiy sarf jihatdan yutuqli hisoblanadi. Nihoyat C# .Net platformasining barcha imkoniyatlari xususan umumiy va maxsus masalalarni yyechish uchun ko`pgina kutubxonalarni ishlatadi.Net platformasining ikkita asosiy tashkil etuvchisi umumiy tildagi bajarilish muhiti (CLR-Common Language Runtime) va sinflar kutubxonasi (FCLFramework Class Library). Umumiy tildagi bajarilish muhiti dasturni ishlashi vaqtida kodni boshqarishni bajaradi va xotirani boshqarish, oqimlarni boshqarish hamda uzoqlashgan o`zarota`sir singari asosiy xizmatlarni ko`rsatadi. Bunda qattiqqo`l tiplashtirish va kod mavjudliligi tekshiruvlarini amalaga oshiradi, qaysiki bu xavfsizlik va barqarorlikni ta`minlaydi. Net platformasining boshqa tashkil etuvchisi – sinflar kutubxonasi bo`lib, kop` holatda ishlatiladigan tiplar kollektsiyasiga ob`ektga yo`naltirilgan murojaatni taqdim etadi, bu esa turli darajadagi dasturlarni oson yaratish imkoniyatini beradi to oddiy buyruqli interfeysdan tortib toki Net platformasining eng katta yutuqlarini ishlatishgacha masalan: XML web xizmatlar, ASP.Net imkoniyatlari va hokazo.Net platformasini qisqa ko`rib chiqgandan keyin ham C# dasturlash tili to`g`risida quyidagilarni xulosa qilish mumkin. Xulosa qilib shuni aytish kerakki dasturlash tillarini quyidagi ketma-ketlikda o`rganishni maslahat berar edik:Dasturlash tili boshlang`ich tushunchalarini o`rganish uchun C dasturlash tilini o`rganish: til sintaksisi, algoritmlari, konstruktsiyalar, konsol dasturlarini yaratish.
1. C# tili – turli tipdagi dasturlarni yaratish uchun kuchli va qulay dasturlash
tili hisoblanadi.
2. ”Kompyuter tarmoqlari”, “Internet va multimediya” kurslari doirasida web
dasturlarini yaratish uchun C# dasturlash tilini ishlatish.
Dasturlash tillarini o`qitishning bunday yondashuvi mutaxassislarni yangi
darajaga chiqaradi.C# dasturi 90 yillarning oxirida ishlab chiqilib Microsoft .NET ning bir qismiga aylandi. Al`fa versiya sifatida 2000 yildan boshlab ishlatila boshladi. C # bosh arxitektori butun dunyo dasturchilari ichida birinchilar qatorida turgan va butun dunyo tomonidan tan olingan Anders Hejlsberg bo`ldi. Uning 1980 yillarda chiqarilgan Turbo Paskal dasturi orqali ham tanishimiz mumkin.C# bevosita C, C++ va Java bilan bog`liq. Chunki bu uchta til dasturlash olamida eng mashhur tillardir. Bundan tashqari profisanal dasturchilar C va C++ ni va juda ko`pchilik Java tilida ish yuritadi.
Biz C# ning kelib chiqish genealogik daraxtini ko`rib chiqsak.

1-rasm

Rasimda C va C++ tillari C# ning asosini tashkil qilishi ko`rib turibmiz.


Lekin C# va Java o`zaro o`zgacha ravishda bog`langan. Ularning kelib chiqishi C va C++ bo`lsada o`zaro bir biridan farq qiladi. C# tili ham obe`ktga mo`ljallangan tillar sirasiga kiradi.
Dasturlash tillarida buyruqlar va amallar ma’lum kodlar (raqamlar) bilan ifodalangan bo’lib, ular ShK qurilmalari adreslari bilan bevosita ishlashga mo’ljallangan va mashina tili deb ham yuritiladi. Dasturlash tillarida ko’rsatmalar inson tiliga yaqin bo’lgan so’zlar va dastur tuzish uchun juda qulay.
Dasturlashda o’zgaruvchilardan foydalanmasdan dastur ishlash mumkin emas. O’zgaruvchilar o’zida qiymatlarni saqlaydi, bu qiymatlar vaqtinchalik operativ xotirada saqlanib turadi. O’zgaruvchilarning nomlari bo’ladi, nomlar lotin alifbosining a dan z gacha bo’lgan oraliqdagi harflar bilan belgilanadi. Bundan tashqari o’zgaruvchi nomlarini faqat bitta harf emas bir necha harflar ketma -ketligi bilan ya’ni so’zlar bilan belgilash mumkin.Sonlar bilan harflar orqali belgilash mumkin, lekin harflardan oldin son kelishi mumkin emas. O’zgaruvchining asosiy turlari sonli o’zgaruvchi, satriy o’zgaruvchi, simvolli o’zgaruvchi, mantiqiy o’zgaruvchilar bo’lib bo’linadi. Sonli o’zgaruvchilarga faqat sonlar kiradi, 0, 5, -10, -5.6, 4995 va h. Satriy o’zgaruvchilarga esa satrlar kiradi. Simvolli o’zgaruvchilar qiymati faqat bitta simvoldan iborat bo’ladi. Mantiqiy o’zgaruvchilarga faqat ikkita qiymat beriladi rost, yolg’on ya’ni true, false..
C# dasturlash TILIDA butun sonli o’zgaruvchilarda 8 ta tip ishlatiladi, ular quyidagi jadvalda berilgan.

C# dasturlash TILIDA butun sonli o’zgaruvchilar

Quyida esa C# dasturlash TILIDA kasr sonli o’zgaruvchi tiplari keltirilgan



C# dasturlash TILIDA kasr sonli o’zgaruvchi tiplari float tipidagi o’zgaruvchiga qiymat berganda qiymat oxiriga “f” belgisini qo’yish, decimal tipidagi o’zgaruvchiga qiymat berganda “m” belgisini qo’yish lozim. Birinchi ifoda bu o’zgaruvchini e’lon qilish. Bu yerda count o’zgaruvchi nomi, int(integer) tipi va count o’zgaruvchisiga 1 soni qiymat qilib olinadi. int tipi da faqat butun sonlardan foydalaniladi. Keyingi qatorda “ ” belgilari orasiga olingan satr shu holiday chop qilinadi, count esa o’zgaruvchining qiymatini chop qiladi. Uchinchisi esa “Satr” so’zini chop qiladi. Kod yozganda chekinishlardan foydalangan ma’qul. Chunki keyin kerakli qatorni, kerakli kodni topib olishda qulay bo’ladi, bir necha bo’sh qatorlarni qoldirib ketish, qator boshidan bo’sh joy qoldirib ketish tushuniladi. C# dasturlash TILIDA chekinishlarga tabulyatsiya simvoli, probellar, bo’sh qatorlar kiradi.

class Program


{
public static void Main(string[] args)
{
double s = 0;
Console.WriteLine("Введите размерность системы");
int n = int.Parse(Console.ReadLine());
double[,] a = new double[n, n];
double[] b = new double[n];
double[] x = new double[n];
for (int i = 0; i < n; i++)
x[i] = 0;
Console.WriteLine("Введите построчно коэффициенты системы");
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
a[i, j] = double.Parse(Console.ReadLine());
}
Console.WriteLine("Введите свободные коэффициенты");
for (int i = 0; i < n; i++)
b[i] = double.Parse(Console.ReadLine());

for (int k = 0; k < n - 1; k++)


{
for (int i = k + 1; i < n; i++)
{
for (int j = k + 1; j < n; j++)
{
a[i, j] = a[i, j] - a[k, j] * (a[i, k] / a[k, k]);
}
b[i] = b[i] - b[k] * a[i, k] / a[k, k];
}
}
for (int k = n - 1; k >= 0; k--)
{
s = 0;
for (int j = k + 1; j < n; j++)
s = s + a[k, j] * x[j];
x[k] = (b[k] - s) / a[k, k];
}
Console.WriteLine("Система имеет следующие корни");
Console.WriteLine("x = {0:0.##}", x);
Console.WriteLine("y = {0:0.##}", x);
Console.WriteLine("z = {0:0.##}", x);

}
}
4)Tenglamalar tizimini echish algoritmi


public static void Main(string[] args)


{
Console.WriteLine("введите n");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите t");
int t = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите w");
int w = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите m");
int m = Convert.ToInt32(Console.ReadLine());
double a = 1; double b = 1; double c = 1;
for (byte i = 1; i <= n - 1; i++) b *= i;
for (byte i = 1; i <= t - 2; i++) a *= i;
for (byte i = 1; i <= (n - 1 + t - 2); i++) c *= i;
}

5)Tenglamalar tizimini echishning rekursiv usuli


private static double FormulaLoop(double x0, double q, double b, int k)
{
double res = x0;
double tempK = x0;
for (int i = 0; i < k; i++)
{
tempK = q*tempK + b;
res += tempK;
}
return res;
}
private static double FormulaRecSum(double x0, double q, double b, int k)
{
if (k==0)
{
return x0;
}
double xk = q*x0 + b;
return x0+FormulaRecSum(xk, q, b, k-1 );
}
private static double FormulaRec(double x, double q, double b, int k)
{
if (k == 0)
{
return x;
}
double xk = q * x + b;
return FormulaRec(xk, q, b, k - 1);
}
static void Main(string[] args)
{
double q = 2;
double b = 5;
double x0 = 1;
int k = 3;
Console.WriteLine("Loop sum of k components = {0}",FormulaLoop(x0,q,b,k));
Console.WriteLine("Recursive sum of k components = {0}", FormulaRecSum(x0, q, b, k));
Console.WriteLine("x{0} = {1}",k, FormulaRec(x0, q, b, k));
Console.ReadLine();
}
6)O'zgartirilgan Eyler usuli bilan ikkinchi darajali differentsial tenglamani echish
static double f(double t, double y, double x, double a, double b, double c, int j)
{
if (j == 0) return (-b * y - c * x) / a;
else return y;
}
public static double[] x { get; set; }
public static double[] y { get; set; }
public static double[] t { get; set; }
static void MME(double a, double b, double c, double tn, double tk, int n, double x0, double y0)
{
t = new double[n + 1];
x = new double[n + 1];
y = new double[n + 1];
double h = (tk - tn) / n;
int i;
t[0] = tn;
x[0] = x0;
y[0] = y0;
for (i = 1; i <= n; i++)
{
t[i] = t[i - 1] + h;
x[i]=x[i-1]+(-c*y[i-1]-b*x[i-1])*h;
y[i]=y[i-1]+x[i-1]*h;
}
}
static void Main(string[] args)
{
double a = 0.01, b = 20, c = 300000, x0 = 0.00001, y0 = -0.01;
int n = 100;
MME(a, b, c, 0, 0.004, n, x0, y0);
for (int i = 0; i <= n; i++)
Console.WriteLine("t[{0}]={1,6:f5} \t q\'[{0}]={2,8:f8} \t q[{0}]={3,10:f8}", i, t[i], y[i], x[i]);
Console.ReadKey();
}

Yüklə 259 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin