Kompyuter ilmlari va dasturlashtirish


Mavzu: Ko‘p o‘lchamli massivlar bilan ishlash. Satrlar bilan ishlash. String turi. Metodlardan foydalanib dastur tuzish



Yüklə 3,87 Mb.
səhifə5/15
tarix23.07.2023
ölçüsü3,87 Mb.
#119835
1   2   3   4   5   6   7   8   9   ...   15
shernazarov Samandar (1)

Mavzu: Ko‘p o‘lchamli massivlar bilan ishlash. Satrlar bilan ishlash. String turi. Metodlardan foydalanib dastur tuzish.
Reja:
1. Ko‘p o‘lchamli massivlar bilan ishlash
2. Satrlar bilan ishlash. String turi
3. Metodlardan foydalanib dastur tuzish
Ko‘p o‘lchovli massivlar
Dasturlashda garchi bir o'lchovli massivlar ko'p ishlatilsada, ko'p o'lchovli massivlar ham unchalik kam ishlatilmaydi. Ko'p o'lchovli - bu ikki yoki undan ortiq o'lchamlardagi massiv bo'lib, bunday massivning har bir elementiga ikki yoki undan ortiq indekslarning ma'lum bir kombinatsiyasi yordamida kirish mumkin.
Ko'p o'lchovli massivning sodda shakli ikki o'lchovli qatordir. Har qanday elementning ikki o'lchovli massivdagi joylashuvi ikki indeks bilan ko'rsatilgan. Bunday massivni jadval shaklida ko'rsatish mumkin, ularning satrlari bitta indeks bilan ustunlari bitta indeks bilan ko'rsatiladi.
Quyida 10x20 o'lchovli butun sonli massiv berilgan.
Ushbu massivning e’loniga e'tibor bering. Uning ikkala o'lchami ham vergul bilan ajratilgan. Ushbu e’lonning birinchi qismi sintaksis:
[,] ikki o'lchovli massivga o'zgaruvchi murojaat qilishni anglatadi. Agar new operator yordamida massiv uchun xotira ajratilgan bo'lsa, unda quyidagi sintaksis qo'llaniladi.
Ushbu e’lon 10x20 o'lchovli massivni yaratadi, ammo bu holda uning o'lchamlari vergul bilan ajratiladi.
Ikki o'lchovli massiv elementiga kirish uchun ikkala indeksni ham vergul bilan ajratib qo'yish zarur. Masalan, quyidagi satrda indekslari (3,5) bo'lgan jadval massivining elementi 10 ga qiymatlanadi.
2×3×4 oʻlchamli butun sonli uch oʻlchovli massivga ishga tushirishga misol:
Massivlar daraja yoki o'lchovlar soni kabi tushuncha bilan tavsiflanadi. Massivlar 1, 2, 3 yoki n o’lchamli bo’lishi mumkin. Ko’p o’lchmali massivlarni 2 o’lchamli massivlar misolida ko’rib boramiz Bir o’lchovli massivlarni bitta gorizontal qator kabi tasavvur qilishimiz mumkin, misol uchun:
Ko’p o’lchamli massivlarni e’lon qilish uchun kvadrat qavs ichiga vergul qo’yiladi, yani [,] ikki o’lchamli massiv, [,,] uch o’lchamli massiv va hokazo.
C# dasturlash tilida satr bilan ishlash uchun String ishlatiladi. String o’zgaruvchisi ikkita tirnoq (" ") bilan o’ralgan belgilar to’plamini o’z ichiga oladi.
string myText = "Hello";
string kalit so’zi String uchun taxallus hisoblanadi, ya’niki string && String so’zlari o’zaro tengdir va qaysi ko’rinishdan foydalanish esa dasturchining xohishiga bog’liq. string tipidagi o'zgaruvchi eng ko'pi bilan 2 Gb ma'lumotni, yoki 1073741791 ta belgini saqlashi mumkin.
C# dasturlash tilida satr bilan ishlash metodlari String sinfida joylashgan va bu sinf satrlarni xavfsiz yaratish, boshqarish va taqqoslash uchun ko'plab metodlarni taqdim etadi.
Misol uchun: Satr uzunligini olish:
int value = myText.Length;
//output: value = 5;
String sinfining metodlari:
CompareTo() – berilgan satrni boshqa bir satr bilan solishtiradi va bizga bool ya’ni True/False qiymatda javob qaytaradi
string str1 = "Hello";
string str2 = "World";
bool IsSame = str1.CompareTo(str2) == 0;
//output: IsSame = False
ToLower() – berilgan satrdagi barcha harflarni kichik harflarga o’zgartiradi
string str1 = "Hello, WORLD !";
string str2 = str1.ToLower();
Console.Write(str2);
//output: hello, world !
ToUpper() – berilgan satrdagi barcha harflarni katta harflarga o’zgartiradi
string str1 = "Hello, World !";
string str2 = str1.ToUpper();
Console.Write(str2);
//output: HELLO, WORLD !
Split() – berilgan satrni biz kiritgan belgi ajratib turgan qismlarga bo'ladi va yangi massivga yuklaydi:
string satr="satr,ustun,katakcha";
string [] massiv=satr.Split(',');
foreach (string a in massiv)
Console.WriteLine(a);
/* output:
satr
ustun
katakcha
*/
Yuqoridagi misolda vergul satr qismlarini ajratuvchi belgi bo'lib xizmat qildi. Gapda so'zlar ko'pincha probel bilan ajratilgani uchun, vergul o'rniga probel ham yozishimiz mumkin. Yoki qavs ichiga hech narsa yozilmasa, Split() metodi bu belgini probel deb tushunadi:
string str = "Hello! How are you?";
string[] myString = str.Split();
//output:
myString[0] = "Hello!"
myString[1] = "How"
myString[2] = "are"
myString[3] = "you?"
StartsWith() – berilgan satr biz kiritgan satr bilan boshlanganmi yoki yo'qligini tekshiradi. bool tipida qiymat qaytaradi.
string str1 = "Hello World";
string str2 = "He";
bool result = str1.StartsWith(str2);
//output: result = True
Contains() – berilgan satr tarkibida ko’rsatilgan satr yoki belgi bor yoki yo’qligini tekshiradi. Agar bor bo'lsa true, aks holda false qiymat qaytaradi.
string str1 = "Hello World";
string str2 = "bye";
bool result = str1.Contains(str2);
Console.Write(result); //output: False
Console.Write(str1.Contains("rld")); // output: True
Console.Write(str1.Contains('a')); // output: False
IndexOf() – berilgan satr tarkibida kor’rsatilgan satrni indeksini topib, bizga int tipida qaytarib beradi. Agar berilgan satr tarkibida biz ko'rsatgan satr mavjud bo'lmasa, -1 ni qaytaradi.
string str1 = "Hello World";
string str2 = "lo";
int result = str1.IndexOf(str2);
//output: result = 3
Substring() – berilgan satrning ko’rsatilgan diapazondagi qismini qirqib olib, bizga qaytaradi
string str1 = "Hello World";
string str2 = str1.Substring(1, 4);
//output: str2 = "ello"
IsNullOrEmpty() – berilgan satrni bo’sh yoki null ekanligini tekshiradi. Agar satr bo'sh bo'lsa yoki qiymati null ga teng bo'lsa true, aks holda false qiymat qaytaradi.
string name = "";
bool IsEmpty = String.IsNullOrEmpty(name);
//output: True
Concat() – berilgan ikki satrnni birlashtiruvchi funksiya
string FirstName = "Farrukh";
string LastName = "Kholmatov";
string name = string.Concat(Firstname, Lastname);
//output: Farrukh Kholmatov
String.Format && "$" - satr va obyektlar ustida bir vaqtning o’zida ishlash imkonini beradi
string name = "Petr";
int year = 45;
string str = String.Format("Hello {0}, {1}", name, year);
// str = "Hello Petr, 45"
int a = 5;
int b = 7;
string result = $"{a} + {b} = {a + b}";
// str = "5 + 7 = 12"
Ko'p hollarda bir klassdan meros olishda bola klass ichida ota klass metod funksiyasini o'zgartirishga to'g'ri keladi. Bu holatda bola klass ota klass metod va xossalarini qayta e'lon qilishi mumkin.
Bola klassda qayta e'lon qilinishi kerak bo'lgan metod va xossalarni ota klassda virtual modifikatori bilan belgilanadi. Bunday metod va xossalar virtual deb aytiladi.
Metodni bola klass ichida qayta e'lon qilish override modifikatori orqali amalga oshiriladi. Bola klassda qayta e'lon qilinayotgan metod ota klassdagi kabi kiruvchi parametrlarga ega bo'lishi shart.
Quyida shunday klassni ko'rish mumkin:
class Person
{
public string Name { get; set; }
public Person(string name)
{
Name = name;
}
public virtual void Display()
{
Console.WriteLine(Name);
}
}
class Employee : Person
{
public string Company { get; set; }
public Employee(string name, string company) : base(name)
{
Company = company;
}
}
Bu kodda Person klassi odamni ifodalaydi. Employee klassi Person klassidan meros oladi va u korxona ishchisini ifodalaydi. Employee klassi ota klassdan meros olgan Name xossasidan tashqari Company xossasiga ham ega.
Display metodini bola klassda qayta e'lon qilish mumkin bo'lishi uchun ota klassda u virtual modifikatori bilan belgilangan. Bunda bola klassda bu metodni qayta e'lon qilish majburiy emas. Deylik, ota klass imkoniyatlari bizga yetarli. Bunda Employee'ning obyektlari Person klassdagi Display metodini qo'llaydi.
static void Main(string[] args)
{
Person p1 = new Person("Bill");
p1.Display(); // Person klassidagi Display metodi chaqirilmoqda
Employee p2 = new Employee("Tom", "Microsoft");
p2.Display(); // Person klassidagi Display metodi chaqirilmoqda
Console.ReadKey();
}
Konsoldagi natija:
Bill
Tom
Lekin virtual metodni qayta e'lon qilish ham mumkin. Buning uchun bola klassda qayta e'lon qilinishi kerak bo'lgan metod override modifikatori bilan belgilanadi, bunda u ota klassdagi kabi parametrlarga ega bo'lishi zarur:
class Employee : Person
{
public string Company { get; set; }
public Employee(string name, string company)
: base(name)
{
Company = company;
}
public override void Display()
{
Console.WriteLine($"{Name} {Company}da ishlaydi");
}
}
Endi aynan yuqoridagi obyekt olinsa:
static void Main(string[] args)
{
Person p1 = new Person("Bill");
p1.Display(); // Person klassidagi Display metodi chaqirilmoqda
Employee p2 = new Employee("Tom", "Microsoft");
p2.Display(); // Employee klassidagi Display metodi chaqirilmoqda
Console.ReadKey();
}
Konsoldagi natija:
Bill
Tom Microsoftda ishlaydi
Ota klass virtual metodi butun tuzilmani ko'rinishini aniqlaydi. Ya'ni shu ota klassdan to'g'ridan-to'g'ri meros olmasdan hosil qilingan ota klass avlodlarida virtual metodni qayta e'lon qilish mumkin. Masalan, Manager klassini tuzish mumkin, u Employee klassidan meros olishi mumkin. Va unda Display metodi qayta e'lon qilinishi mumkin.
Virtual metodlarni qayta e'lon qilishda bir nechta cheklovlarni hisobga olish kerak:
Virtual va qayta e'lon qilingan metodlar bir xil ruxsat modifikatori bilan belgilangan bo'lishi kerak, ya'ni, agar virtual metod public modifikatori bilan e'lon qiligan bo'lsa, avlod klasslarda shu metod public modifikatori bilan qayta e'lon qilinishi kerak;
Static metodlarni virual modifikatori bilan e'lon qilish yoki qayta e'lon qilish mumkin emas.

using System;


using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp8


{
class Program
{
static void Main(string[] args)
{
int n = Convert.ToInt32(Console.ReadLine()), k = 0;
double s = 0, urta, d = 0, urta2;
double[] arr = new double[n];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = Convert.ToDouble(Console.ReadLine());
s += arr[i];
}
urta = s / n;
for (int i = 0; i < arr.Length; i++)
{
if (urta > arr[i]) { d += arr[i]; k++; }
}
urta2 = d / k;
Console.WriteLine(urta2);
Console.ReadKey();
}
}
}




Yüklə 3,87 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   15




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

    Ana səhifə