R. A. Ro‘ziyev, U. M. Mirsanov, F. J. Toxirov, L. S. Isroilova, H. N. Arziqulov


Download 1.27 Mb.
bet27/45
Sana14.10.2023
Hajmi1.27 Mb.
#1703549
1   ...   23   24   25   26   27   28   29   30   ...   45
Bog'liq
C qo`llanma 29.06

1-misol. Berilgan A(n,n) kvadrat matritsaning diagonal elementlari yig‘indisini topish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, s=0; cout<<"n = "; cin>>n;
int a[n][n];
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=n; j++)
cout<
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if (i==j) s+=a[i][j];
cout<<"Yig‘indi: "<
}


2-misol. Berilgan A(n,n) kvadrat matritsaning bosh diagonalidan yuqorida joylashgan elementlari yig‘indisini topish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, s=0; cout<<"n = "; cin>>n;
int a[n][n];
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=n; j++)
cout<
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if (i
cout<<"Yig‘indi: "<
}


3-misol. Berilgan A(n,n) kvadrat matritsaning birlik matritsa ekanligini tekshirish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, s=1; cout<<"n = "; cin>>n;
int a[n][n];
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=n; j++)
cout<
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if (((i==j)&&(a[i][j]!=1)) || ((i!=j)&&(a[i][j]!=0))){
s=0;
break;
}
if (s) cout<<"Birlik matritsa ";
else cout<<"Birlik matritsa emas ";
}


4-misol. Berilgan A(n,m) matritsaning toq elementlari sonini aniqlash dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, m, k=0;
cout<<"n = "; cin>>n;
cout<<"m = "; cin>>m;
int a[n][m];
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=m; j++)
cout<
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if (a[i][j]%2==1) k++;
cout<<"Toq elementlari soni: "<
}


5-misol. Berilgan A(n,m) matritsaning har bir satr elementlari o‘rta arifmetigini topish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, m, s=0;
cout<<"n = "; cin>>n;
cout<<"m = "; cin>>m;
int a[n][m];
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=m; j++)
cout<
for(int i=1; i<=n; s=0, i++){
for(int j=1; j<=m; j++)
s+=a[i][j];
cout<<"s"<
}
}


6-misol. Berilgan A(n,m) matritsaning eng katta va eng kichik elementlari o‘rnini almashtirish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int main(){
int n, m;
cout<<"n = "; cin>>n;
cout<<"m = "; cin>>m;
int a[n][m];
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>a[i][j];
for(int i=1; i<=n; cout<
for(int j=1; j<=m; j++)
cout<
int min=a[1][1], max=a[1][1];
int x, y, k, l;
x=y=k=l=1;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if (a[i][j]
min=a[i][j];
x=i, y=j;
}
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if (a[i][j]>max) {
max=a[i][j];
k=i, l=j;
}
int z=a[x][y];
a[x][y]=a[k][l];
a[k][l]=z;
for(int i=1; i<=n; cout<
for(int j=1; j<=m; j++)
cout<
}


7-misol. Chiziqli algebraik tenglamalar sistemasini Gauss usulida yechish dasturi.
Berilgan masalaning dastur kodi quyidagicha:
#include
using namespace std;
int n, i, j, k;
double d, s;
int main()
{
cout << "Tartib: " << endl;
cin >> n;
double **a = new double *[n];
for (i = 0; i <= n; i++)
a[i] = new double [n];
double **a1 = new double *[n];
for (i = 0; i <= n; i++)
a1[i] = new double [n];
double *b = new double [n];
double *x = new double [n];
cout << "Koeffitsiyent va ozod hadlarni kiriting " << endl;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
{
cout << "a[ " << i << "," << j << "]= ";
cin >> a[i][j];
a1[i][j] = a[i][j];
}
cout << "b,[ " << i << "]= ";
cin >> b[i];
}
for (k = 1; k <= n; k++)
{
for (j = k + 1; j <= n; j++)
{
d = a[j][k] / a[k][k];
for (i = k; i <= n; i++)
{
a[j][i] = a[j][i] - d * a[k][i];
}
b[j] = b[j] - d * b[k];
}
}
for (k = n; k >= 1; k--)
{
d = 0;
for (j = k + 1; j <= n; j++)
{
s = a[k][j] * x[j];
d = d + s;
}
x[k] = (b[k] - d) / a[k][k];
}
cout << "Natijalar: " << endl;
for( i = 1; i <= n; i++)
cout << "x[" << i << "]=" << x[i] << " " << endl;
return 0;
}
Mustaqil bajarish uchun topshiriqlar
1. n (n>0) butun son berilgan. Dastlabki n ta musbat toq sonlarni saqlaydigan n o‘lchamli butun sonli massiv tashkil etuvchi dastur tuzing.
2. n (n>0) butun son berilgan. 3 ning darajalarini saqlaydigan n o‘lchamli butun sonli massiv tashkil etuvchi dastur tuzing.
3. n o‘lchamli, butun sonli massiv berilgan. Berilgan massivdagi barcha toq sonlarni o‘z ichiga oladigan elementlarni o‘sish tartibida saralab, chop etish hamda ularning miqdori k ni aniqlash dasturini tuzing.
4. n o‘lchamli butun tipli a massiv berilgan. Uning a1kn qo‘shtengsizlikni qanoatlantiradigan oxirgi ak elementining tartib raqamini chiqaruvchi dastur tuzing.
5. Nol bo‘lmagan butun sonli n o‘lchamli massiv berilgan. Uning elementlari geometrik progresssiyani tashkil etishini tekshiruvchi dastur tuzing. Agar tashkil etsa progressiya maxraji aks holda 0(nol) chiqarilsin.
6. n o‘lchamli haqiqiy tipli a massiv berilgan. Uning eng katta va eng kichik elementlari o‘rnini almashtiruvchi dastur tuzing.
7. A(m,n) haqiqiy sonli matritsa va k(1≤k≤m) soni berilgan. Berilgan matritsaning k satridagi elementlarni chop etuvchi dastur tuzing.
8. A(m,n) butun sonli matritsa va k(1≤k≤n) soni berilgan. Berilgan matritsaning k ustunidagi elementlarni chop etuvchi dastur tuzing.
9. Berilgan A(n,n) kvadrat matritsaning bosh diagonalidan pastda joylashgan elementlari yig‘indisini topuvchi dastur tuzing.
10. A(m,n) butun sonli matritsa berilgan. Matritsa satrlarini har birining yig‘indilarini hisoblab, yig‘indisi eng katta bo‘lgan satr tartib raqamini va shu satr yig‘indisini chop etuvchi dastur tuzing.
11. A(m,n) haqiqiy sonli matritsa berilgan. Matritsani har bir satridagi eng katta va eng kichik elementlari o‘rinlarini almashtirib chop etuvchi dastur tuzing.
12. A(m,n) butun sonli matritsa berilgan. Matritsaning eng katta va eng kichik elementlari joylashgan satrlarining o‘rinlari almashtiruvchi dastur tuzing.

2.5-§. C++ dasturlash tilida ko‘rsatkichlar


Dastur matnida o‘zgaruvchi e’lon qilinganda, kompilyator unga xotiradan joy ajratadi (dastur kodi xotiraga yuklanganda berilganlar uchun segmentning boshiga nisbatan siljishini aniqlaydi) va obyekt kodini hosil qilishda, ushbu o‘zgaruvchi uchragan joyga uning manzilini joylashtiradi.
Umuman olganda, dastur obyektlarining (o‘zgaruvchilar, funksiyalar) manzillarini xotirani alohida joyida saqlash va ular ustidan amallar bajarish mumkin. Qiymatlari manzili bo‘lgan o‘zgaruvchilarga ko‘rsatkich o‘zgaruvchilar deyiladi.
Ko‘rsatkich uch xil turda bo‘lishi mumkin:
a) birorta obyektga, xususan o‘zgaruvchiga ko‘rsatkich;
b) funksiyaga ko‘rsatkich;
v) void tipiga ko‘rsatgich.
Ko‘rsatkichning bu xususiyatlari, uni qabul qilishi mumkin bo‘lgan qiymatlari bilan farqlanadi.
Ko‘rsatkich albatta birorta turga bog‘langan bo‘lishi kerak, ya’ni u ko‘rsatgan manzilda qandaydir qiymat joylanishi mumkin va bu qiymatning xotirada qancha joy egallashi oldindan ma’lum bo‘lishi shart.
Funksiya ko‘rsatkichida dastur joylashgan xotiradagi funksiya kodining boshlang‘ich manzili ko‘rsatiladi, ya’ni funksiyaga murojaat bo‘lganda (chaqirilganda) boshqarish, ushbu manzilga uzatiladi.
Funksiyaga ko‘rsatkich orqali murojaat qilish, funksiyaga vositali murojaat hisoblanadi. Chunki, funksiyaga, uning nomi bo‘yicha emas, balki ko‘rsatuvchi o‘zgaruvchi orqali amalga oshiriladi. Funksiyani boshqa funksiyaga argument sifatida uzatish ham funksiya ko‘rsatkichi orqali bajariladi.
Funksiyaga ko‘rsatkichning yozilish sintaksisi quyidagicha:
(* ) (
);

Bunda – funksiya qiymat turi; * – ko‘rsatkich o‘zgaruvchining nomi; – funksiya parametrlarining (yoki ularni turlarining) ro‘yxati.
Masalan: int (*xyz)(float, float);
Bu yerda xyz nomidagi funksiyaga ko‘rsatkich e’lon qilingan – funksiya qiymati butun son hamda u ikkita haqiqiy turdagi parametrlardan iborat.
Biror obyektga (shu jumladan o‘zgaruvchiga) ko‘rsatkich. Bunday ko‘rsatkichda ma’lum turdagi (tayanch yoki hosilaviy) berilganlarning xotiradagi manzili joylashadi. Obyektga ko‘rsatkich quyidagicha e’lon qilinadi:
*nom;
Bu yerda - ko‘rsatkich aniqlaydigan manzildagi qiymat turi bo‘lib, u maydon turidan tashqari xar qanday tur bo‘lishi mumkin. Agar bir turda bir nechta ko‘rsatkichlar e’lon qilinadigan bo‘lsa, har bir ko‘rsatkich uchun ‘*’ belgisi qo‘yilishi talab etiladi: int *i, j,* k; float x,*y,*z;
Bu misolda i va k - butun turdagi ko‘rsatkichlar va j - butun turdagi o‘zgaruvchi, ikkinchi operatorda x - haqiqiy o‘zgaruvchi va y, z haqiqiy turdagi ko‘rsatkichlar e’lon qilingan .

Download 1.27 Mb.

Do'stlaringiz bilan baham:
1   ...   23   24   25   26   27   28   29   30   ...   45




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