2-Amaliy mashg’ulot Mavzu: Massiv elementlarini tartiblashtirish. Matritsa maksimal, minimal elementlarini aniqlash algoritmi. Matritsalarni ko’paytirish dasturi.Amallar tartibini baholash
Massiv — belgilangan miqdordagi elementlarni oʻz ichiga oladigan konteyner va ushbu elementlar bir xil turdagi boʻlishi kerak. Koʻpgina maʼlumotlar tuzilmalari oʻzlarining algoritmlarini amalga oshirish uchun massivlardan foydalanadilar. Massiv tushunchasini tushunish uchun quyidagi muhim atamalar keltirilgan.
• Element — bir qatorda saqlanadigan har bir massiv element deb ataladi.
• Indeks — bir qator elementning har bir joylashuvi massivni aniqlash uchun ishlatiladigan raqamli indeksga ega.
Matritsa bir qator matematik va iqtisodiy masalalarni yechishda juda ko‘p qo‘llaniladigan tushuncha bo‘lib, uning yordamida bu masalalar va ularning yechimlarini sodda hamda ixcham ko‘rinishda ifodalanadi.
Matritsa ta’rifi: m ta satr va n ta ustundan iborat to‘g‘ri to‘rtburchak shaklidagi m x n ta sondan tashkil topgan jadval m×n tartibli matritsa, uni tashkil etgan sonlar esa matritsaning elementlari dеb ataladi.
Matritsa ikki o'lchovli massiv bo'lib, uning har bir elementi ikkita indeksga ega: satr raqami va ustun raqami, shuning uchun matritsa elementlari bilan ishlash uchun ikkita tsikldan foydalanish kerak. Agar birinchi tsikl parametrining qiymatlari matritsa satrlari raqamlari bo'lsa, ikkinchisi parametrlarining qiymatlari ustunlar bo'ladi (yoki aksincha). Matritsani qayta ishlash shundan iboratki, dastlab birinchi qator (ustun) elementlari navbatma-navbat ko'rib chiqiladi, keyin ikkinchisi va hokazo.
Matritsalarni qayta ishlash algoritmlari bilan tanishishdan oldin, keling, C++ da matritsalar qanday aniqlanishini ko‘rib chiqamiz. Ikki o'lchovli massivni quyidagicha e'lon qilish mumkin:
o'zgaruvchi_nomini yozing [n] [m];
Bu yerda tip massiv elementlarining turini belgilaydi, o'zgaruvchi_nomi matritsa nomi, n - qatorlar soni, m - ustunlar soni. Qatorlar 0 dan n-1 gacha, ustunlar 0 dan m-1 gacha raqamlangan.
Masalan int h[10] [15];
Yuqorida 10 qator va 15 ustundan iborat h butun sonlar matritsasi (satrlar 0 dan 9 gacha, ustunlar 0 dan 14 gacha raqamlangan).
Massivlar haqidagi masalalar ichida eng ko‘p uchraydigani bu uning elementlarini o‘sish yoki kamayishtartibida tartiblash masalasidir. Bu muammoni hal qilishning usullari ko‘p bo‘lib, ulardan birortasini boshqasidan ustun qo‘yib bo ‘lmaydi. Har bir usul elementlar joylashuviga ko‘ra boshqasidan yaxshi bo‘lishi mumkin.
#include
using namespace std;
int main(){ int m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";
cin >> m;
cout << "Ustunlar sonini kiriting \nn=";
cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for(int satr = 0; satr < m ; satr++)
for(int ustun = 0; ustun < n; ustun++)
{cout << "a[" << satr << "][" << ustun << "]=";
cin >> a[satr][ustun];}
for(int satr = 0; satr < m; satr++)
{
for(int ustun = 0; ustun < n; ustun++)
cout << a[satr][ustun] << "\t";
cout<<"\n";}
return 0;}
!TOPSHIRIQLAR.
1.Asosiy diagonal ustida joylashgan matritsa elementlari yig‘indisini toping (pastdagi rasm).
2.Berilgan kvadrat matritsa identifikatsiya ekanligini tekshiring. Identifikatsiya matritsasi - bu asosiy diagonalning elementlari bir, qolganlari esa nolga teng bo'lgan matritsa. Misol uchun:
#include using namespace std;
int main()
{ int i,j,m, n, a[10][10],s=0;
cout << "Satrlar sonini kiriting \nm=";
cin >> m;
cout << "Ustunlar sonini kiriting \nn=";
cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for(i = 0; i < m ; i++)
for(j = 0; j< n; j++)
{cout << "a[" << i<< "][" << j << "]=";
cin >> a[i][j];}
for(i = 0; i < m; i++)
{ for(j = 0; j < n; j++)
if(i>=j)
s+=a[i][j];}
cout << s << "\t";
cout<<"\n";
return 0;}