Dasturlash tilida massivlar bilan ishlash



Download 54,14 Kb.
bet3/9
Sana13.07.2022
Hajmi54,14 Kb.
#784464
1   2   3   4   5   6   7   8   9
Bog'liq
Abdullayeva Mavludaxon ATD KURS ISHI

[]={boshlang’ich qiymatlar}
Bunda {boshlang’ich qiymatlar} albatta bo’lishi kerak. Misollar:
1
int []A={1,4,3,1};
2
string[] B = { “olma”, “gilos”, “anor”};
3
double[] C = { 0.005, 1.234, 12.5, 13.5, 10.6 };
Copied!
Yuqoridagi massivlarda massivning o’lchami uning initsializatsiya qismida qatnashgan elementlar soni bilan aniqlanadi. C# tilida xuddi C++ da bo’lgani kabi element indeksi 0 dan boshlanadi. A[0] indeksli element 1 ga teng, B[1] indeksli element esa “gilos” ga teng va h.
Aytib o’tganimizdek, C# tilida massivlar xotiradan unumli foydalanish maqsadida massivlarni dinamik tarzda e’lon qilishga kelishib olingan. Dinamik tarzda massivni e’lon qilishning umumiy ko’rinishi quyidagicha:
[] =new [o’lcham]
Bu yerda new operatori ga mos ravishda xotiradan joy ajratadi. Dinamik massivlarni e’lon qilishga doir misollar:
1
n = Convert.ToInt32(Console.ReadLine());
2
int[] M1 = new int[10];
3
float[] M2 = new float[100];
4
double[] M3 = new double[n];
Copied!
M1 va M2 nomli massivlarning elementlari uchun 10 va 100 ta joy ajratilgan. Ular ham dinamik massiv hisoblanadi. M3 massiv uchun xotiradan qancha joy ajratish foydalanuvchining o’ziga havola qilingan, ya’ni n o’zgaruvchisi klaviaturadan kiritiladi, bu o’zgaruvchi qiymati esa M3 massiv o’lchami sifatida qabul qilinadi. M3 massiv dinamik massivga yorqin misoldir.
Dinamik massiv o’lchami ham statik massiv kabi aniqlanishi lozim, faqat bunda u dastur ishlashi davomida anqlanishi bilan static massivdan farq qiladi.
Indekslar massiv elementlariga murojat qilish uchun ishlatiladi. Indeks massivdagi element sonini bildiradi .Massivdagi to’rtinchi elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak. Misol uchun :num[3]. Massiv elementlarining qiymatlarini olish va o’rnatish uchun indekslardan foydalanamiz.
1
int[] nums=new int [4];
2
nums[0]=1;
3
nums[1]=2;
4
nums[2]=3;
5
nums[3]=5;
6
Console.ReadLine(nums[3]); //5
Copied!
Va bizda faqat 4 ta element uchun belgilangan massiv mavjud bo’lgani uchun , masalan oltinchi elementni qo’llay olmaymiz nums[5]=5;. Agar biz buni qilishga harakat qilsak biz IndexOutOfRangeException-ni olamiz.
Statik massivlar elementlar oldindan aniqlanadi. Buning uchun sikl operatorlariga murojaat qilamiz. Masalan, quyidagi misolda dinamik massivga qiymat berish hamda uning elementlarini chop etish amallar ko’rsatilgan. Biz massiv elementlari bilan ishlashimiz uchun for sikl operatori kerak buladi. Bu haqida yetarlicha bilimga ega bo’lmasayiz quyidagi link orqali o’tsangiz Starter bulimida Suxrob Xayitmurodov yetarlicha malumot bergan. Agar for sikl operatori haqida malumotga ega bulsayiz davom etamiz.
1
using System;
2
internal class ArrayExample
3
{
4
private static void Main()
5
{
6
int[] A = new int[10];
7
int i;
8
for (i = 0; i < 10; i = i + 1)
9
A[i] = i;
10
for (i = 0; i < 10; i = i + 1)
11
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
12
}
13
}
Copied! Bu dasturda A massivning elementlari sifatida i ning qiymatlari kelmoqda. Xuddi shunday massiv elementlarini klaviatura orqali ham kiritish mumkin. Buning uchun quyidagi kodni ko’raylik:
1
using System;
2
3
internal class ArrayExample
4
{
5
private static void Main()
6
{
7
int[] A = new int[10];
8
int i;
9
for (i = 0; i < 10; i = i + 1)
10
A[i] = Convert.ToInt32(Console.ReadLine());
11
for (i = 0; i < 10; i = i + 1)
12
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
13
}
14
}

§. Ko’p о 'lchovli massivlar bilan ishlash.


Bog'langan massivlarni qanday yaratishni avval ko'rganimizdek, ko'p o'lchamli massiv massiv ichidagi massiv hisoblanib u o'zining ichida bog'langan massivlarni saqlaydi.
Ko'p o'lchamli massivlarni yaratish sintaksisi:
/*
ko'p o'lchamli massivni ishga tushirish
*/

$telefonlar = array(


array(
"nom"=>"Iphone",
"turi"=>"telefon",
"brendi"=>"Apple"
),
array(
"nom"=>"Samsung S10+",
"turi"=>"telefon",
"brendi"=>"Samsung"
),
array(
"nom"=>"Redmi 7",
"turi"=>"telefon",
"brendi"=>"Xiaomi"
),
);
?>
Biz bu yerda massiv ichidagi massiv bilan shug'ullanayapmiz. Ma'lumotni olish uchun biz massivga erishishimiz kerak. Keyin, biz ko'p o'lchamli massivda saqlangan ma'lumotni belgilangan massivdan olishimiz mumkin.
Misol uchun, agar biz massivdagi Iphone haqidagi ma'lumotni olmoqchi bo'lsak, ko'p o'lchamli massivimiz ichidagi birinchi massivni 0 indeksdan foydalanib olishimiz mumkin. Keyin massiv ichidagi barcha ma'lumotlarni ekranga chiqarolishimiz mumkin.
Namuna:

/*
Ko'p o'lchamli massivga kirish


*/

echo "Ko'p o'lchamli massivdagi ma'lumotlar...";


echo "Iphone - ".$telefonlar[0]["turi"].". U ".$telefonlar[0]["brendi"]."tomonidan ishlab chiqilgan
";
echo "Redmi 7 - ".$telefonlar[2]["turi"].". U ".$telefonlar[2]["brendi"]. "tomonidan ishlab chiqilgan
";

?>
Quyidagi natijani olamiz:


Ko'p o'lchamli massivdagi ma'lumotlar...
Iphone - telefon. U Apple tomonidan ishlab chiqilgan
Redmi 7 - telefon. U Xiaomi tomonidan ishlab chiqilgan
Ko'p o'lchamli massivlarda ham sikllarni ishlatolamiz. Bu sikllar albatta for va foreach sikllardir.
for va foreach siklini ishlatish
Ko'p o'lchamli massivni takrorlash uchun for siklidan foydalanganimizda, biz massivning uzunligi/o'lchamini bilishimiz kerak. Bilish uchun count() funksiyasi ishlatiladi. Quyidagi namunada for siklidan foydalanib, ko'p o'lchamli massivni takrorlash ko'rsatilgan:
/*
ko'p o'lchamli massivni ishga tushirish
*/
$telefonlar = array(
array(
"Nom"=>"Iphone",
"Tur"=>"telefon",
"Brend"=>"Apple"
),
array(
"Nom"=>"Samsung S10+",
"Tur"=>"telefon",
"Brend"=>"Samsung"
),
array(
"Nom"=>"Redmi 7",
"Tur"=>"telefon",
"Brend"=>"Xiaomi"
),
);
$olchami = count($telefonlar);

for($i=0;$i<$olchami;$i++)


{
foreach($telefonlar[$i] as $kalit=>$qiymat)
{
echo $kalit. "-" .$qiymat."
";
}
echo "
";
}
?>
Quyidagi natijaga erishamiz:
Nom-Iphone
Tur-telefon
Brend-Apple

Nom-Samsung S10+


Tur-telefon
Brend-Samsung

Nom-Redmi 7


Tur-telefon
Brend-Xiaomi
Yuqoridagi ko'p o'lchamli massivda, bizda asosiy massiv indekslangan, massivda saqlangan elementlar bog'langan edi.
Lekin biz asosiy massivni bog'langan massiv qilib olishimiz ham mumkin. Ko'p o'lchamli massivda indeks - son yoki ketma-ket emasligi sababli, biz indeksning qiymatlari va kalitlarini topib olishimiz kerak. Biz array_keys() funksiyasidan bog'langan massivdagi kalitlarning massivini olish uchun foydalanamiz.
Keling bir namuna ko'ramiz:
/*
ko'p o'lchamli massivni ishga tushirish
*/
$telefonlar = array(
array(
"Nom"=>"Iphone",
"Tur"=>"telefon",
"Brend"=>"Apple"
),
array(
"Nom"=>"Samsung S10+",
"Tur"=>"telefon",
"Brend"=>"Samsung"
),
array(
"Nom"=>"Redmi 7",
"Tur"=>"telefon",
"Brend"=>"Xiaomi"
),
);
//massiv o'lchami
$olchami = count($telefonlar);
//massiv kalitlari
$kalitlar = array_keys($telefonlar);
//for siklidan foydalanish
for($i = 0; $i < $olchami; $i++)
{
echo $kalitlar[$i]. "
";
foreach($telefonlar[$kalitlar[$i]] as $kalit=> $qiymat) {
echo $kalit . " : " . $qiymat . "
";
}
echo "
";
}

?>
✅Ushbu natijaga ega bo'lamiz:


0
Nom : Iphone
Tur : telefon
Brend : Apple

1
Nom : Samsung S10+


Tur : telefon
Brend : Samsung

2
Nom : Redmi 7


Tur : telefon
Brend : Xiaomi
✅Ko'p o'lchamli massivning afzalliklari
Batafsil(katta, to'liq) ma'lumotlarni ko'p o'lchamli massivlarda saqlash imkoni.✔️
Uni foydalanuvchi uchun eng qulay va ularning talablari bo'yicha, xoh indekslangan xoh bog'langan qilib ishlatish mumkin. ✔️
Download 54,14 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish