Bakalavr hazırlığı üçün 050631  Kompüter mühəndisliyi ixtisası üzrə



Yüklə 380,55 Kb.
səhifə4/4
tarix14.01.2017
ölçüsü380,55 Kb.
#285
1   2   3   4

fprintf funksiyası köməyi ilə


fprintf(s0,s1, s2);

Burada s0-faylın, s1 – formatlar sətiri, s2 – xaric olunan dəyişənlər.

Umümi qaydalar fscanf funksiyda kimidir.


Format kodları eynidir amma burada tipnən bərabər dəyişən üçün yerın ölçüsü də təyin olunur.

Faylı qeri qaytarmaq üçün REWIND (file ) funksiyası istifadə olunur.

Faylın sonunu təyin etməq üçün while dövrü və xüsusu EOF (end of file) işərədən istifadə olunur.

Misal 1.

vag.dat faylıda 2 3 6 7 -2 tam ədədlər yazılıb.

#include

#include

void main (void)

{

FILE *min;



int i;int x,y,z,w;

min=fopen("d:\\vag.txt","r");

for (i=1;i<4; i++)

fscanf(min,"%d\n",&x);

fscanf(min,"%d",&y);

fscanf(min,"%d\n",&w);

z=x+y+w;

printf("%d",z);

fclose (min);

}

Əvvəl vag.txt faylı yaradılmalıdır və müvafiq kataloqda yerləşdirilməlidir !!!!! !!!!!



Misal 2

vag.dat faylıda 2 3 6 7 -2 tam ədədlər yazılıb.

#include

#include

void main (void)

{

FILE *min;



int i;int x,y,z,w;

min=fopen("d:\\vag.txt","r");

fscanf(min,"%d\n",&x);

fscanf(min,"%d",&y);

rewind(min);

fscanf(min,"%d\n",&w);

z=x+y+w;

printf("%d",z);

fclose (min);

}

Misal 3


vag.dat faylıda 5 7 2 7 -2 tam ədədlər yazılıb. Aşağıdakı proqramda nə çap olunacaq ?

#include

#include

void main (void)

{

FILE *min;



int i;int x,y,z,w;

min=fopen("d:\\vag.txt","r");

z=0;

while (fscanf(min,"%d\n",&x)!=EOF)



if(x>0) z=z-x+2;

printf("%d",z);

fclose (min);

}
Funksiyalar

Çox vaxt bəzi məsələlərin həllində eyni tipli amma müxtəlıf verilənlıərlə icra olunan hissələr rast olunur.

Təkrarlanmanı aradan qaldırmaq üçün və proqramı daha aydın və sadə eləməq üçün bütün proqramlaşdırma dillərində belə hissələri ayrı və müstəqil altproqramlara çevirən vasitlər mövcuddur.

Belə hissələr əsas proqrmdan çağırıla bılər və icra olunub cavabı əsas proqrama qaytara bilər.

Belə xüsusi proqramlar iki cür olur prosedur və funksiya. C dilində tək funksiyalar istifadə olunur.

Mürrəkəb proqramların yaradılmasında funksiyasız demək olar ki keçinmək olmaz.

Belə yanaşmanın bir neçə üstün cəhəti var:



  1. proqramlar hissə hissə yazıla bilər

  2. hazıi hissələr başğa proqramlarda istifadə oluna bilər

  3. proqramin umümi yaddaşı azalır

  4. proqram daha aydın və strukturlaşmış olur

Mənfi cəhəti proqramın müyəən qədər icrasının vaxtın artmasıdır.
Ümümi şəkildə funksiya aşağıdaki kimi yazılır

tip ad function ( formal parametrlər)

{
return (çıxış dəyşəni)

}

Formal parametrlər funksiyaya ötürülən qiriş verilənləridir



tip: ad formatında verilir.

Müraciyat üçün dd=ad() formatı ya da bir başa ifadədən oluna bilər.

Funksiyanın öz daxılı dəyşənləri ola bılər və onlar elan olunmalıdır. Onlar lokal adlandırılır.

Əğər global dəyşənin adı lokalnan üst üstə düşür onda lokal dəyşənın üstünlüyi var.

Əğər funksiya bir neçə cavab qaytarmalıdır onda onları da formal parametr yolu ilə ötürmək olar.
C++ dilində bütün funksiylar prototipi elan olunmalıdir. Prototip bu funksiyanın başliq operatoru, və o proqram faylın əvvəlində ya da xüsusi protiplər faylında yerləşdirilməliir. Bu faylın h qenişlənməsi olmalıdır.

Verilənlər funksiyaya 3 yolla ötürülə bilər



  1. qiymətlərlə

  2. qöstəricilərlə *

  3. linklərlə &

Birinci üsulla məlumat bir istiqamətə ötürulə bilər əsas proqramdan

funksiyaya, əks istiqamətdə olmaz !!!!!!!

İkinci və üçüncu üsullarla hər iki istiqamətdə olar. !!!!!!

Funksiylar əsas proqramdan sonra yerləşməlidir.





  1. Misal verilənlər qiymətlərlə ötürülür

#include

int iadder(int ix, int iy); // prototype

main ()


{

int ia=23;

int ib=13;

int ic;


ic=iadder(ia,ib);//ic=ia+ib

printf(“summa=%d\n”,ic);

}

int iadder (int ix,int iy)



{

int iz;


iz=ix+iy;

return(iz);

}


  1. Misal qöstəricilər vasitəsi ilə

#include

int iadder(int *px, int *py); // prototype

int main ()

{

int ia=23;



int ib=13;

int ic;


ic=iadder(&ia,&ib);

printf("summa=%d\n",ic);

return(0);

}

int iadder (int *ix,int *iy)



{

int iz;


iz=*ix+*iy;

return(iz);

}


  1. Misal linklərlə vasitəsi ilə

#include

int iadder(int &px, int &py); // prototype

int main ()

{

int ia=23;



int ib=13;

int ic;


ic=iadder(ia,ib);

printf("summa=%d\n",ic);

return(0);

}

int iadder (int &ix,int &iy)



{

int iz;


iz=ix+iy;

return(iz);

}
Funksiyaya massivləri aşağıdaki üsullarla ötürmək olar

Misal Massivin qöstəricilər vasitəsi ilə ötürülməsi

#include

int vag (int *b, int n); // prototype

int main ()

{

int a[7]={2,4,5,12};



int s1;
s1=vag(a,2);

printf("summa=%d\n",s1);

return(0);

}

int vag (int *b,int n)



{

int s=0,i;

for (i=0;i<=n;i++)
s=s+b[i];

return(s);

}
Misal Massivin adi yolla ötürülməsi
#include

int vag (int b[],int n); // prototype

int main ()

{

int a[7]={2,4,5,12};



int s1;
s1=vag(a,2);

printf("summa=%d\n",s1);

return(0);

}

int vag (int b[],int n)



{

int s=0,i;

for (i=0;i<=n;i++)
s=s+b[i];

return(s);

}

#include



#include

float x1(float &a,float &b,float &c,float &x2);


main()

{float a1=1,b1=-4,c1=4,z1,z2;

z1=x1(a1,b1,c1,z2);

printf ("%8.2f %8.2f",z1,z2);

}
float x1(float &a,float &b,float &c,float &x2)

{float d,w;

d=b*b-4*a*c;
if (d<0)

{

printf ("cavab yoxdur");



x2=0;

w=0;


return(w);

}

else



{x2=(-b+sqrt(d))/(2*a);

w=(-b-sqrt(d))/(2*a);

return (w);
}

}

Verilənlər mubadiləsini global dəyişənlərlə də aparmaq olar !!!!!


Misal

#include

int vag (int b[], int n); // prototype
int cc=10; //global her yerda istifade olunu biler !!!

int main ()

{

int a[7]={2,4,15,12,10,8,4};



int s1;
s1=vag(a,7);

printf("summa=%d\n",s1);

return(0);

}

int vag (int b[],int n)



{

printf("n=%d\n",n);

int s=0,i;

for (i=0;i
if (b[i]<=cc) s=s+b[i];

return(s);

}
Strukturlar
Strukturlar massivlər kimi mürəkəb tip verilənlərə aiddır, yəni sadə əsəsında qurulur.
Struktur bir ad altında birləşən bir neçə mühtəlif tipdə olan bir mürəkəb verilənlər tipidir.

Misal


struct tarix

{

int day // gun



int month // ay

int year // il

};

Burada hər hansı bir tarixi təsvir etmək üçün struktur tipi élan olunur.



Bu tipə aid olan verilənlər aşağıdaki kimi élan olunur
tarix farida, aytan; // burda iki tarix tipli deyisen élan olunur
Struktur tipli verilənləri inisilizasiya ( yəni ilkin qiymət vermək olar)
tarix vagif={25,12,1952}; // burada tarix tipli vagif deyseni élan olunur ve ona muvafiq qi. Ver
Strukturun müvafiq elementinə müraciyyət etmək üçün .(nöqtə) əməlliytdan istifadə etmək olar.
farida.day=23;

aytan.month=10;


Strukturlardan massivlər qurmaq olar
struct tarix shalala [5];
Müraciyyət etmək üçün shalala[0].year=1999;
Misallar
#include

#include

main ()

{

struct qiymat



{

int riyaz;

int math;

} ;


qiymat x,y;

int c;


x.riyaz=20;

y.riyaz=45;

c=x.riyaz+y.riyaz;

printf("%d",c);

}
#include

#include

main ()

{

struct vag



{

int t1;


int t2;

int t3;


} ;

vag x,y,*pt;

int c;

pt=&x;


pt->t1=2; y.t3=10;

y.t2=5;


c=x.t1+y.t2+y.t3;

printf("%d",c);

}

#include



#include

main ()


{

struct aytan

{

int s1;


int s2;

} ;


aytan x[5];

int i, s=0;

for (i=0;i<5;i++) {

x[i].s1=i;

s+=x[i].s1; }

printf("%d",s);

}

#include



#include

main ()


{

struct vag

{

int t1;


int t2;

int t3;


} ;

vag x,y;


int c;

x.t1=0; y.t3=10;

y.t2=5;

c=x.t1+y.t2+y.t3;



printf("%d",c);

}
Obyekt-yönümlü proqramlaşdırma


Obyekt-yönümlü proqramlaşdırma (OYP) bu səmərəli proqramlaşdırma texnologiylardan biridir. Məlumdur ki bu istiqəmətdə ilk addım modul proqramlaşdırma üsulu olmuşdur, yəni funksiylarda geniş istifadə metodı.

OYP-nın əsas anlayışı sinif anlayşıdır. Sinif – bu mürəkəb veilənlər tipidir və özündə verilənləri və onları emal edən funksiyları saxlayır. Başğa sözlə bu xüsusi strukturdur harda verilənlərlə bərabər onları emal edən funksiyalar da təsvir olunur. Verilənlər atribut adlandırılır, funksiylar –metod.

Sinifə daxil olan konkret nümayədələr obyekt adlandırılır.

OYP bu fərqli proqramlaşdırma stilidir. Hal hazırda müxtəlif proqramlaşdırma sistemlərində bu üsul tətbiq olunur.

OYP-nın əsas əməliyyatları
Obyekt.qiymət= qiymet;
Obyekt.method;

Siniflərin üç əsas xüsusiyəti var


İnkapsulasiya – bir struktur çərçivəsidə verilənləri və onları emal funksiyları cəmləmək xüsusiyətidir.

Varisliq- bir sinifdən başğa siniflər töyriyə bilər. Birinci valedeyin adlandırılır ikincisi törəmə. Valedeyinin atribuları və metodlari törəmə tərəfindən istlfadə oluna bilər. Valedeyin –insanlar sinifi, törəmə tələbələr sinifi.

Polimorfizm- bu eyni olan metodların müxtəlif tip obyektlər tərəfindən istifadəsinin mümkünliyi.

Misal 1.

#include

#include

struct farida {

int a;

int b;


int c;

int vag1(int s) { b=2*s+8;return(b);}

int vag2 (int s) { b=2*s*s+4*s;return(b);}

} x,y;


main ()

{ int d,c;

x.a=y.vag2(1); y.a=y.vag1(2);

if (x.a==x.b )

cout<

else


cout<}

Misal 2 .

#include

#include

struct aytan {

int a;


int b;

int vag1(void) { a=pow(2,2);return(a);}

int vag2 (void) { b=pow(3,2);return(b);}

} x,y;


main ()

{ int d,c;

c= x.vag1();d=y.vag2();

cout<< c+d;



}
Yüklə 380,55 Kb.

Dostları ilə paylaş:
1   2   3   4




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin