1 – dars. C++ Dasturlash tilining kelib chiqishi xaqida ma’lumot


– DARS. FUNKTSIYALAR VA JADVALLAR



Yüklə 4,49 Mb.
səhifə32/89
tarix29.11.2023
ölçüsü4,49 Mb.
#140314
1   ...   28   29   30   31   32   33   34   35   ...   89
C kitob TAYYOR

32 – DARS. FUNKTSIYALAR VA JADVALLAR

Jadvallar funktsiyalar argumentlari sifatida kelganda jadvallarning birinchi parametridan boshqa parametrining chegaralari ko’rsatilishi shartdir. Misol tariqasida uch o’lchovli kvadrat matritsani uch o’lchovli vektorga ko’paytirish funktsiyasini k’orib chiqamiz:


Void Umn_vec( float a[3][3],float b[3], float c[3])
{
for(I=0;i<3;++) {
c[I]=0;
for(j=0;j<3;j++)
c[I]+=a[I,j]*b[j];
};
}
Har hil chegarali jadvallar bilan funktsiyalardan foydalanishning bir yuli bu oldindan kiritiluvchi konstantalardan foydalanishdir. Lekin asosiy yuli ko’rsatkichlar massivlaridan foydalanish. Matritsani vektorga ko’paytirish funktsiyasi ko’rsatkichlar massivlari yordamida qo’yidagicha yoziladi:
Void Umn_vec( int n,float* a[],float b[], float c[])
{ int I,j;
for(I=0;ic[I]=0;
for(j=0;jc[I]+=a[I,j]*b[j];
};
}
Matritsani matritsaga ko’paytirish funktsiyasi esa qo’yidagicha yoziladi:
Void Umn_matr( float* a[],float* b[], float* c[])
{
int I,j,k;
for(I=0;ifor(j=0;j{c[I,j]=0;
for(k=0;kc[I,j]+=a[I,k]*b[j,k];
};
}


33 – DARS. FUNKTSIYALAR VA SIMVOLLI MASSIVLAR.

Funktsiyalarda satrli massivlar ishlatilganda ularning chegarasini ko’rsatish shart emas. Satrlarning uzunligini hisoblash len funktsiyasii qo’yidagicha ta'riflash mumkin:


Int len(char c[])
{ int m=0;
for(m=0;c[m]!=’0’;m++);
return m;
};
Shu funktsiyadan foydalanilgan dasturni keltiramiz:
Include #
Int len(char c[])
{ int m=0;
while(c[m++]);
return m-1
}
void main()
{char e[]=”Pro Tempore!”;
Cout<<(“\n%I”,len(E));
};
PASKAL' tilida copy funktsiyasi mavjud bo’lib, berilgan satrning, berilgan pozitsiyasidan boshlab berilgan sondagi simvollarini ajratib olishga imkon beradi. Shu funktsiyani C++ tilida qo’yidagicha ta'riflash mumkin:
Void copy(char a[], char b[], int k, int m)
{ int l;
for(int n=0; a[n]!=’\0’;n++);
if (k>m) {b[0]=’\0’;break};
if (k+m>n) l=n-k else l=m;
for(int i=0;i}
Berilgan satrni teskariga aylantiruvchi funktsiya:
reverse(char s[]s) /* reverse string s in place */
int c, i, j;
for(i = 0, j = strlen(s) - 1; i < j; i++, j--)
c = s[i];
s[i] = s[j];
s[j] = c;
Keyingi misolimizda T qatorni S qator ohiriga o’lovchi STRCAT(S, T) funktsiyasini ko’rib chiqamiz:
strcat(s,t) /* concatenate t to end of s */
char s[], t[]; /* s must be big enough */
int i, j;
i = j = 0;
while (s[i] != '\0') / *find end of s */
i++;
while((s[i++] = t[j++]) != '\0') /*copy t*/

Yüklə 4,49 Mb.

Dostları ilə paylaş:
1   ...   28   29   30   31   32   33   34   35   ...   89




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

    Ana səhifə