Alqoritmləşdirmə Proqramlaşdırmanın əsasları Translyator və kompilyatorlar



Yüklə 1,04 Mb.
səhifə42/53
tarix02.01.2022
ölçüsü1,04 Mb.
#37204
1   ...   38   39   40   41   42   43   44   45   ...   53
alqoritmlesdirma ve proqramlasdirmanin esaslari muhazire

sec ( x ) {

hal 3:

xaricet("Salam dunya \y"); y = 56 + z;



}

Baxdığımız nümunədə halın qiyməti 3 verilib. Əgər x seçim dəyişəninin qiyməti 3- ə bərabər olsa onda bu halın altında yazdığımız bütün operatorlar icra olunacaq.



  1. İstədiyimiz qədər hal tərtib edə bilərik, amma hər birinin qiymətləri müxtəlif olmalıdır.

hal 3:

xaricet("Salam dunya \y"); y = 56 + z;



hal 4:

xaricet(" Proqramlashdirma \y"); y = 99 + z*z;



hal 5:

xaricet(" Informatika \y"); y = 100 + z*(q + 5);



}



  1. Eyni əməliyyat üçün bir neçə hal təyin edə bilərik, Bu zaman həmin hallardan istınilən biri ödənsə müvafiq əməliyyat icra olunacaq.



sec ( x ) {

hal 1:

xaricet("x = 1 \y");



hal 2:

hal 3:

xaricet("x = 2 ve ya 3\y");



hal 4:

hal 5:

hal 6:

xaricet("x = 4 , 5 ve ya 6\y");



}




  1. Hər hansı hal ödənsə və onun əməliyyatları icra olunsa, yenə də seçim operatoru digər halları yoxlamaqda davam edəcək. Bunun qarşısını almaq üçün hər bir halın əməliyyatlarının sonunda dayan; operatoru yazmalıyıq.



sec ( x ) {

hal 1:

xaricet("x = 1 \y"); dayan;



hal 2:

hal 3:

xaricet("x = 2 ve ya 3\y"); dayan;



hal 4:

hal 5:

hal 6:




xaricet("x = 4 , 5 ve ya 6\y"); dayan;

}





  1. sec ( x ) {

    hal 1:

    xaricet("x = 1 \y"); dayan;



    hal 2:

    hal 3:

    xaricet("x = 2 ve ya 3\y"); dayan;



    hal 4:

    hal 5:

    hal 6:

    xaricet("x = 4 , 5 ve ya 6\y"); dayan;



    susma:

    xaricet("x ferqlidir 1,2,3,4,5,6 \y");



    }
    Heç bir hal ödənmədiyi zaman hansısa əməliyyat icra etmək istəyiriksə, ən sonda susma halı təyin edirik. Bunun üçün susma yazıb qoşanöqtə qoyuruq. Susma halını təyin etmək məcbur deyil.

Seçim operatoruna aid nümunə proqramlara baxaq:

Nümunə . Aşağıdakı kod istifadəçinin imtahandan aldığı qiymətə uyğun nəticəni çap edir.

xaricet("Siz yaxshi netice gosterdiniz \y"); dayan;
hal 3:

xaricet("Siz kafi qiymet aldiniz \y"); xaricet("biraz da oz uzerinizde calishin\y"); dayan;


hal 2:

xaricet("Siz imtahandan kesildiniz \y"); xaricet("oz uzerinizde ciddi calishmalisiniz \y"); dayan;



}



Nəticə:



Imtahandan aldiginiz qiymeti daxil edin 3

Siz kafi qiymet aldiniz

biraz da oz uzerinizde calishin


Nümunə . Aşağıdakı kod istifadəçinin daxil etdiyi simvola uyğun hesab əməliyyatı aparır. Bunu sadə kalkulyator proqramı da hesab etmək olar.



tam x, y , netice; kesr netice_kesr; simvol emel;
xaricet("Her-hansi iki eded daxil edin: \y"); daxilet(x,y);
xaricet("Zehmet olmasa emeli daxil edin (+, - , *, /, %):

\y"); daxilet(emel);


sec (emel){

hal '+' :

netice = x + y;

xaricet(x, " + ", y, " = ", netice, "\y" );

dayan;



hal '-' :

netice = x - y;






xaricet(x, " - ", y, " = ", netice, "\y" );

dayan;



hal '*' :

netice = x * y;

xaricet(x, " * ", y, " = ", netice, "\y" );

dayan;



hal '%' :

netice = x % y;

xaricet(x, " % ", y, " = ", netice, "\y" );

dayan;

/* bolme neticesinde qaliqi da onluq shekilde gostermek isteyirikse, onda neticeni kesr tipli secmeliyik.

Eger bolmenin neticesin tam tipli edede menimsetsek onda qalig nezere alinmir*/



hal '/' :

netice_kesr = x / y;

xaricet(x, " / ", y, " = ", netice_kesr, "\y" );

dayan;



susma:

xaricet("Zehmet olmasa duzgun emeliyyat daxil edin.\y"); xaricet("Duzgun emeliyyatlar: +, -, *, /, % \y");



}





Her-hansi iki eded daxil edin:

3 4


Zehmet olmasa emeli daxil edin (+, - , *, /, %):

+

3 + 4 = 7


Nəticə:

etdikdə proqram başa çatsın



Mövzu18

Cərgələr. Cərgənin elan olunması.Cərgələrin elementlərinə müraciət

Plan :

  1. Cərgələr

  2. Cərgənin elan olunması

  3. Cərgələrin elementlərinə müraciət

Cərgələr

İndiyə kimi biz proqramımızda hər hansı məlaumatı yerləşdirmək üçün ayrı dəyişəndən istifadə edirdik. Misal üçün 4 işçisi olan kiçik dükanda çalışan işçilərin məvaciblərini yadda saxlamaq üçün kəsr tipindən olan 4 dəyişən elan etməliyik.

kesr ishci1, ishci2, ishci3, ishci4;

Bəs eyni qayda ilə 100 nəfər işçisi olan marketin işçilərinin məvacibini də yadda saxlamaq olarmı? Bu zaman proqramda kəsr tipindən 100 dəyişən elan etməliyik,



kesr ishci1 , ishci2 , ishci3 , ishci4 , ishci5 , ishci6 , ishci7 , ishci8 , ishci9 , ishci10 , ishci11 , ishci12 , ishci13 , ishci14 , ishci15 , ishci16 , ishci17 , ishci18 , ishci19 , ishci20 , ishci21 , ishci22 , ishci23 , ishci24 , ishci25 , ishci26 , ishci27 , ishci28 , ishci29 , ishci30 , ishci31 , ishci32 , ishci33 , ishci34 , ishci35 , ishci36 , ishci37 , ishci38 , ishci39 , ishci40 , ishci41 , ishci42 , ishci43 , ishci44 , ishci45 , ishci46 , ishci47 , ishci48 , ishci49 , ishci50 , ishci51 , ishci52 , ishci53 , ishci54 , ishci55 , ishci56 , ishci57 , ishci58 , ishci59 , ishci60 , ishci61 , ishci62 , ishci63 , ishci64 , ishci65 , ishci66 , ishci67 , ishci68 , ishci69 , ishci70 , ishci71 , ishci72 , ishci73 , ishci74 , ishci75 , ishci76 , ishci77 , ishci78 , ishci79 , ishci80 , ishci81 , ishci82 , ishci83 , ishci84 , ishci85 , ishci86 , ishci87 , ishci88 , ishci89 , ishci90 , ishci91 , ishci92 , ishci93 , ishci94 , ishci95 , ishci96 , ishci97 , ishci98 , ishci99 , ishci100 ;

Qeyd eliyək ki, işçilərinin sayı onminlərlə, yüzminlərlə ölçülən şirkətlər də mövcuddur. Bu qədər sayda dəyişəni proqram elan elan və istifadə etmək isə elə də əlverişli deyil. Bu problemi həll etmək üçün proqramlaşdırmada Cərgələrdən istifadə olunur. Cərgələr eyni tipdən olan bir neçə dəyişəni bir ad adla elan etməyə və onlara müraciət etməyə imkan verir.



Qeyd: Cərgələrə digər dərsliklərdə array və ya massiv deyirlər. Məncə cərgə sözü nisbətən daha başadüşüləndir, nəinki massiv.

Proqram tərəfinə keçməzdən qabaq gəlin əvvəlcə cərgənin nə olduğunu fikrimizdə daha aydın canlandırmaq üçün cərgə bə dəyişəni həyatan nümunələrlə müqaisə edək. Əgər dəyişəni bir əsgər kimi təsəvvür eləsək onda, cərgəni nizam ilə düzülmüş əsgərlərdən ibarət sıra kimi təsəvvür edə bilərik. Başqa misala baxaq. Əgər dəyişəni bina kimi təsəvvür eləsək, onda cərgəni səliqə ilə bir düz xətt (yol) boyu düzülmüş eyni ölçülərdə olan binalardan ibarət məhəllə kimi təsəvvür edə bilərik. Əgər dəyişəni minik maşını kimi təsəvvür eləsək, onda cərgəni eyni markadan olan , bir xətt boyunca ardıcıl düzülmüş maşınlardan ibarət karvan kimi təsəvvür edə bilərik. Mənə elə gəlir bütün bu müqaisələrdən sonra fikrimizdə dəyişənlərdən ibarət cərgə haqqında müəyyən təsəvvürlər yarandı. Dəyişənlər cərgəsində də digər cərgələrdə olduğu kimi cərgəni təşkil edən elementlər, yəni dəyişənlər eyni tipdən olmalıdır və yaddaşda ardıcıl düzülürlər, aşağıdakı kimi:



Yuxarıdakı şəkildə k sayda dəyişəndən ibarət cərgə təsvir olunub.


Cərgənin elan olunması

Hər-hansı tipdən cərgə elan etmək üçün cərgənin adını və kvadrat mötərizələr içərisində onun elementlərinin sayını yazırıq, aşağıdakı kimi:



tip ad [ say ];

Cərgələrə dəyişənlərə verdiyimiz kimi adlar veririk. Eyni sətirdə həm dəyişənlər, həm də cərgə elan edə bilərik. Aşağıda müxtəlif tiplərdən cərgələrin elan olunmasına aid nümunələr verilir:





// tam tipden olan 10 elementli x cergesi tam x [10];




// kesr tipinden olan 99 elementli mevacib cergesi kesr mevacib [99];

// simvol tipinden olan 20 elementli soyad cergesi simvol soyad[20];



Yuxarıdakı nümunədə içşilərin məvaciblərini yadda saxlamaq üçün kəsr tipindən elan etdiyimiz 100 ədəd dəyişən əvəzinə aşağıdakı kimi kəsr tipli 100 elementdən ibarət

ishci adlı cərgə elan edə bilərik:



kesr ishci [ 100 ];

Cərgənin Elementlərinin indeksi

Cərgəni elan edən zaman elemenlərinin sayını göstərən ədədə cərgənin ölçüsü deyilir. Cərgənin elementləri yaddaşda bir düz xətt boyunca ardıcıl düzülür və birdən başlayaraq nömrələnirlər:

Hər bir elementin nömrəsi onun indeksi adlanır və bu elementə müraciət etmək üçün istifadə olunur. Cərgənin ilk elementinin indeksi 1 , sonuncu elemetin indeksi isə cərgənin ölçüsünü göstərən ədədə bərabər olur.


Cərgələrin Elementlərinə Müraciət

Cərgənin elementlərinə müraciət etmək üçün cərgənin adından və müraciət etmək istədiyimiz elementin indeksindən istifadə olunur



ad [indeks]

Misal üçün cərgənin birinci elementinə müraciət etmək üçün yazmalıyıq:





ad [1]

Bu zaman cərgənin ilk elementinə müraciət olunur:



və ya üçüncü elementə müraciət etmək üçün yazmalıyıq:

ad [3]

Bu zaman cərgənin üçüncü elementinə müraciət olunur:



Praktika:

Aşağıdakı nümunədə tam tipdən 5 elementi olan x cərgəsi elan olunur. x cərgəsinin elementlərin müxtəlif qiymətlər mənimsədilir. Onların cəmi hesablanır və cap olunur.

Nümunə.



tam x[5], cem;

// cergenin lementlerine muxtelif

// qiymetler menimsedek x[1] = 17;

x[2] = 389;

x[3] = 224;

x[4] = 1296;

x[5] = 2015;

cem = x[1] + x[2] + x[3] + x[4] + x[5];

xaricet("x cergesinin elementlerinin cemi = ", cem, "\y");


Nəticə.



x cergesinin elementlerinin cemi = 3941




tam x;

xaricet("Imtahandan aldiginiz qiymeti daxil edin\y"); daxilet(x);



sec (x){ hal 5:

xaricet("Siz ela qiymet aldiniz, tebrikler \y"); dayan;


hal 4:


Nümunə. Aşağıdakı kod tam tipdən 10 elementli s cərgəsi elan edir. Onun elementlərinə 970 –dən 980-ə qədər qiymətlər mənimsədir və onları çap edir.



tam s[10], k;

say (k 10 )

s[k] = 970 + k;

xaricet("s cergesinin elementleri: \y"); say (k 10)

xaricet(s[k], " ");




Nəticə.



s cergesinin elementleri:

971 972 973 974 975 976 977 978 979 980




Nümunə. Aşağıdakı kod istifadəçidən tam tipdən 10 elementli x cərgəsinin elementlərinə qiymət mənimsətməsini istəyir və həmin qiymətləri çap edir.



tam x[10], k, enb;

xaricet("x cergesinin elementlerini daxil edin. \y"); say (k 10){

xaricet("x[", k, "] = ");

daxilet(x[k]);



}

enb = x[1]; say (k 10)



eger (x[k] > enb) enb = x[k];




xaricet("x cergesinin en boyuk elementi: "); xaricet(enb, "\y");



Nəticə.



x cergesinin elementlerini daxil edin. 12

3

45



67

2

3



876

90

345



7

x cergesinin elementleri: 12 3 45 67 2 3 876 90 345 7






tam x[10], k;

xaricet("10 eded daxil edin. \y"); say (k 10)

daxilet(x[k]);

xaricet("Sizin daxil etdiyiniz ededler eksine: \y"); say (k 10 1)

xaricet(x[k], " ");
Nümunə. Aşağıdakı kod istifadəçinin daxil etdiyi ədədləri əksinə çap edir.

Nəticə.



10 eded daxil edin.

23 45 67 89 123 4 76 98 22 430

Sizin daxil etdiyiniz ededler eksine: 430 22 98 76 4 123 89 67 45 23


Nümunə. Aşağıdakı kod tam tipdən 10 elementli x cərgəsinin ən böyük elementini müəyyən edir.



tam x[10], k, enb;
xaricet("x cergesinin elementlerini daxil edin. \y"); say (k 10){

xaricet("x[", k, "] = "); daxilet(x[k]);



}

enb = x[1]; say (k 10)



eger (x[k] > enb) enb = x[k];

xaricet("x cergesinin en boyuk elementi: "); xaricet(enb, "\y");




İzahı: Əvvəlcə cərgənin elementlərinə istifadəçinin daxil etdiyi ədədləri mənimsədirik. Daha sonra enb dəyişəninə cərgənin ilk elementini mənimsədirik. Daha sonra dövr dövrü olaraq enb dəyişəninin qiymətini cərgənin bütün digər elementlərinin qiyməti ilə müqaisə edirik. Əgər cərgənin hər-hansı elementi enb dəyişənindən böyük olarsa enb dəyişənini həmin elementə mənimsədirik. Beləliklə dövrün sonunda enb dəyişənində cərgənin ən böyük elementi oturur.

Nəticə.



x cergesinin elementlerini daxil edin. x[1] = 23

x[2] = 56

x[3] = 123

x[4] = 7


x[5] = 89

x[6] = 890

x[7] = 4

x[8] = 65

x[9] = 34

x[10] = 222

x cergesinin en boyuk elementi: 890




Nümunə. Aşağıdakı kod tam tipdən 10 elementli x cərgəsinin ən böyük elementinin indeksini müəyyən edir.



tam x[10], k, enb, ind;

xaricet("x cergesinin elementlerini daxil edin. \y"); say (k 10){

xaricet("x[", k, "] = ");

daxilet(x[k]);



}

enb = x[1]; ind = 1;


say (k 10)

eger (x[k] > enb){ enb = x[k];

ind = k;



}

xaricet("x cergesinin en boyuk elementi: "); xaricet("x[",ind,"] = ", x[ind], "\y");




Nəticə.



x cergesinin elementlerini daxil edin. x[1] = 12

x[2] = 34

x[3] = 5

x[4] = 76

x[5] = 88

x[6] = 90

x[7] = 32

x[8] = 667

x[9] = 2

x[10] = 44

x cergesinin en boyuk elementi: x[8] = 667



Nümunə. Aşağıdakı kod x cərgəsinin elementlərini artan sırada düzür.



tam x[10], k,j, mvq;

xaricet("10 eded daxil edin. \y"); say (k 10)

daxilet(x[k]);

say (k 10)

say (j k 10)

eger (x[k] > x[j]) onda{

mvq = x[k]; x[k] = x[j]; x[j] = mvq;



}

xaricet("Daxil etdiyiniz dededler artan sirada. \y"); say (k 10)

xaricet(x[k], " ");


Nəticə.



10 eded daxil edin.

23 4 56 77 8 21 3 45 675 70

Daxil etdiyiniz dededler artan sirada. 3 4 8 21 23 45 56 70 77 675


İzahı: Burada biz dövr-daxilində dövrdən istifadə edirik. Dövr hər dəfə yerinə icra olunanda cərgənin böyük elementləri qabağa “sürüşür”. Bu alqoritmə qabarcıq alqoritmi də deyirlər(Su qabarcıqları suyun üzünə qalxdığı kimi cərgənin də böyük elementləri cərgənin sonuna sürüşür). Cərgənin böyük və kiçik elemenlərinin yerinin dəyişmək üçün əlavə mvq adlı dəyişəndən istifadə edirik. Əvvəlcə x[k] –nın qiymətini mvq-də saxlayırıq, daha sonra x[k]-ya x[j]-ni mənimsədirik və x[k] –nın mvq –də

saxladığımız qiymətini x[j]-yə mənimsədirik. Beləliklə cərgənin k və j indeksli elementlərinin yerini dəyişmiş oluruq.



Mövzu19

Funksiyalar.Funksiyanın tərtib olunması.Funksiyanın çağırılması.

Plan :

  1. Funksiyalar

  2. Funksiyanın tərtib olunması

  3. Funksiyanın çağırılması

Yüklə 1,04 Mb.

Dostları ilə paylaş:
1   ...   38   39   40   41   42   43   44   45   ...   53




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin