Bakalavr hazırlığı üçün



Yüklə 380,61 Kb.
səhifə1/4
tarix08.08.2018
ölçüsü380,61 Kb.
növüMühazirə
  1   2   3   4

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

Proqramlaşdırma dilləri və informatika fənni üçün


Mühazirələr konspekti
V.H. Səlimov

vagif_salimov@yahoo.com

http:// vagif5.tripod.com

Giriş

Proqramlaşdırma dilləri və informatika fənni kompüter mühəndislyi ixtisasında təhsil alan tələbələr üçün mühüm yer tutur.



Proqramlaşdırma dili kimi C++ dili seçilib. Məlumdur ki bu dil hal hazırda sistem proqramların yaradılmasında (Ms WİNDOWS, Ms OFFİCE və baş.) geniş istifadə olunur. Bu dilin gehiş aşağı səviyyəli əməliyytların proqramlaşdirma imkanları olması kompüter mühəndis üçün əsas şərtlərdən biridir.

İnformatika anlayışı özündə iki əsas aspekt cəmləyir:

-effektiv verilənlər strukturların işlənməsi;

- effektiv alqoritmləri yaradılması.

Bu kursda tələbələr məsələnin qoyuluşu, alqoritmlərin yaradılması, verilənlər üçün səmərəlı təsvir üsulların(strukturların) seçilməsi və onları C++ dilin vasitəsi ilə proqramlaşdırma üsullarını oyrənməlidir.

Müassir sürətli lahiyələndirmə sistemlərinə- Ms C++ Builder , Ms C# diqqət etirilir

Kurs ərzində tələbələr mühazirə ilə bərabər məşğələ və laboratoriya işlərini yerinə etirməlidilər.

Alqoritmlərin əsasları

Alqoritm bu hər hansı bir məsələnin həllinə qətirən əmirlər ardıcılığıdır.

1. Alqoritm sonlu sayda mərhələdən sonra qurtarmalıdır. Buna, alqoritmin sonluluq xassəsi deyilir.

2. Alqoritmin hər bir addımı dəqiq və birqiymətli təyin olunmalıdır. Bu alqoritmin müəyyənlik xassəsidir.

3. Alqoritm ümumi olmalıdır, yəni müəyyən məsələ üçün tərtib olunmuş alqoritm, həmin tipdən (sinifdən) olan bütün məsələlər üçün yararlı olmalıdır. Bu alqoritmin kütləvilik xassəsidir

İsbat olunub ki bütün alqoritmlər 3 əsas alqoritm əsasında qurula bilər.



  1. Xətti

  2. Budaqlanan

  3. Dövrü

Alqoritmlərin əsas 3 təsvir üsulu var

  1. verbal. 2. şərti dil əsasında 3.blok sxem əsasında

Ə

n çox qeniş istifadə olunan blok sxem usuludur . Əsas blok sxem işarələri bütün ofise proqramlarda var





Proses




Başlanqic/son




Daxil etmə /xaric etmə




Şərt




dövr




Alt proses (funksiya)




Çap





Şərti əvvəldə olan dövr



Şərti sonda olan dövr



Parametri olan dövr



  1. Xətti alqoritm. Misal

Piramidanın oturacağı –üçbucaqdır, tərəfləri a, b, c və yan tilləri eynidir L


2.Budaqlanan alqoritm .Misal



sin x, əğər x>=a;

y=

cos x, əğər x< a



Yox

3.Sayı məlum olan dövr . Misal y=sin x funksiyanı [a,b] parçasında h atdım ilə hesablamaq




Burada N=(b-a)/h+1 dövrün itersiyalarının sayi




  1. Iterasiya dövru Misal : Kvadrat tənliyin kökün Nyuton üsulu ilə hesablanması

x=√u x0=(u+1)/2


x
yox
i=1/2*( xi-1+u/ xi-1)
│xi2-u│≤ε






  1. Bir ölçülü massivlər. Misal a1, a2 , a3 ......... a100 ardiciliğının cəmini hesablamaq y=∑ ai





  1. Misal mürəkkəb dövr. Matrisa A (n,m) elementlərin xasilini hesablamaq

C/C++ proqramlaşdırma dilinin qısa tarixi


C proqramlaşdırma dili 1973-cü ildə ABŞ –da Denis Ritçi tərəfindən yaradılıb. Bu dil məşur Unix əməliyyat sisteminin yaradılmasında istifadə olunub. Bu dilin proqramlaşdırma dillərin arasında xüsusi yeri var. Baxmayraq ki bu dil yuksək səviyəli dillərinin qrupuna daxildir, o eyni zamanda aşağı səviyyəli (maşın-yonümlü)dillərin imkanlarına malikdir.

Ona qörə bu dil hal hazırda əsas sistem proqramların (Ms Windows, Ms Office və demə olar əksər tətbiqi proqramların) layihələndirməsində geniş istifadə olunur. Bu dil ALGOL dil qrupuna daxildir.

1981-çi ildə ABŞ-da Byarn Straustrup C dilini təkmilləşdirib və yeni dil C++ adını alıb. C++ dilinin əsas fərqi ondan ibarətdir ki C++ dilində obyekt-yonümlü texnologiyasınin komponentləri əlavə olunub.

90-ci illərdə Windows sisteminin yaradilması ilə bağlı olaraq proqramlaşdırma sahəsində də boyük dəyişıklər baş verir. Windoüs standartlarına uyğun proqramlaşdırma dilləri yaradılıb, o cümlədən MS Visual C++, Borland C++ Builder. Son illərdə daha da təkmolləşdirilmiş versiyası C# və nahayət son versiyası NET platforması əsasında C#.Net versiyası.


C dilinin sintaksisi

C dilində proqram adi mətn redaktorunda yazılmalıdırvə onu c yada cpp qenişlənməsi olmalıdır. Umümiyyətlə proqram bir neçə afylda yerləşə bilər və xüsusi preprosesor əmrləri ilə birləşdirilir.

C dilində proqram operatorlar adlanan xüsusi yazılardan (cümlələrdən) –ibarətdir. Həı bir operatorun öz funksiyası və öz sintaksis qaydaları var. Operatorlar iki qrupa bölmək olar elan və icra edici.

C dilində bütün operatorlar ; simvol ilə bitirilir, operatorlar sərbəst formatda yazilir yəni sətirin hər hansı bir yerindən, bir sətirdı bir neçə operator yerləşə bilər, lazım olan halda yeni sətirə köçürülə bilər.

C proqramında operatorla bərabər proqramı daha başa düşülən edən xüsusi şərhlər(komentariyalar) istifadə oluna bilər. Şərhlərin iki variantı mövcüddur-operatorun sonunda bu halda // işarələrlə başlanır.

İkinci variantda /* işarə ilə başlanır və */ işarə ilə bitir və bir necə sətiri əhatə edə bilər.


A=2; // inisializasiya

/* Menim ilk proqramim*/

Dəyişənlər və başğa obyektlər xüsusi adlarla (identifikatorlarla) işarələnir. Adlar hərifərdən, raqəmlərdən və _ (alt xət) dən qurulur , amma həriflə başlanmalıdır. Maximal uzunlüq 31 simvoldur.

Misal Alfa23 –düzqün, 12adna –səyfdir.

C dilində identifikatorlar reqistrdan asılıdır yəni Aytan, aYtan, AYTAn başğa adlardır.

C dilində istifadə olunan operatorların adları goto, int, break və başğaları kiçik həriflərlə yazılmalıdır və başğa məksədlərlə istifadə oluna bilməz. Misal üçün Break adı münkündur.

İcra olunan operatorların qabahinda niçan( label) ola bilər. Niçanlar operatordan : simvollan aralanır və identifikator qaydalarına uyğün qurulur. Misal

farida: s=2*x-67;



C dilində verilənlər

Verilənlər tipləri aşağıdaki sxemdə verilir.


Bütün dəyişənləri 4 xassəsı ola bilər.




  1. Tip (int, char, float, bool,void, enum)

  2. Əlavə olaraq tam (int) dəyışənlərin signed ya da unsigned xassəsı ola bilər.

  3. Uzunluq xassəsi tam üçün (short, long, long long ), həqiqi üçün ( float , double, və long double)

  4. Yaddaş xassəsı (auto, registr,extern, static)

Bu 4 xassələrdən tip xassəsi məcburidir !!!.

Aşağıdaki cədvəldə bütün növlər təsvir olunur.




Verilənlər tipləri

Uzunluq

İnterval




Tam

char  

   1   

-128127  

 

unsigned char

1

0 255

 

signed char

1

-128 127

 

int

2 ya 4

-32768 32767   

 

unsigned int

2 ya 4

0 ÷ 65535

 

signed int

2 ya 4

-32768 32767  

 

short int

2

-32768 32767  

 

unsigned short int

2

0 ÷ 65535

 

signed short int

2

-32768 32767

 

long int

4

-2147483648 ÷ 2147483647




long long int

8

-(263-1) ÷ (263-1)

əlavə olunub C99

signed long int

4

-2147483648 ÷ 2147483647




unsigned long int

4

0 ÷ 4294967295

 

unsigned long long int

8

0  264-1

əlavə olunub C99

Həqiqi float

float

4

3.4Е-38 ÷ 3.4E+37 

Dəqiqlik 6 rəqəm

double

8

1Е-308  1E+307

Dəqiqlik 10 rəqəm

long double

10

3.4Е-4932  1.1E+4931

Dəqiqlik > 10)

Məntiqi

bool

1

true, false

 

Əğər int üçün signed unsigned qöstərilmir onda signed qəbul olunur.


Həqiqi dəyişənlər üçün float standart kimi qəbul olunub.
Qöründii kimi hər tipin öz mümkün qiymət intervalı var.

Int tipi üçün dəqiq məlum deyil 2 ya da 4 və bu prossesordan asılıdır əğər 32 bitliq prosesor onda 4 bayt.

Mövcud tiplərin uzunluğunu xüsusi sizeof (tip) (sadə tiplər üçün) əməliyyatın köməyi ilə tapmaq olar

printf (“%d8”, sizeof (int))

Dəyşənlər üçün sizeof formatı sizeof x; burada x dəyşəndir.
Baxmarayq ki char həriflər üçün nəzərdə tutulub, o eyni zamanda tam ədədlər üçün istifadə oluna bilər !!!!!!.

Char tipli verilənlərin kodlari aşağıdaki cədvəldə verilir



Misal üçün A-65 dir a-97 B-66 və s.

Müxtəlif tip dəyşənləri başğa tiplərə çevirməq olar bunun uçü aşagıdaki əməliyatdan istifadə olar

(tip) ifadə;

Misal (float) 2*5 int çevirilir float

(int) ‘A’ char çevirilir int

(char) 65 int çevirilir char

Burda bəzi məhtudiyatlar mövcuddur

Həqiqi tiplə tma çeviriləndə kəsr hissə itir
Sadalan enum növü öz qiymətləri ilə müyyən olunur

enum hafta_gunu (monday, tuesday, wednesday, thirsday, friday, saturdau, sunday);

enum colors (red, green, yellow);

hafta_gunu x,y;

Əslində kompüterdə bu tam yəni long int kimi qəbul olunur və birinci qiymət 0, ikinci 1 və ....

Bu dəyişənləri bir biri ilə müqaisə etmək olar və sabitləri mənimsətmək olar.

Void tipi əsasən funksiylarda istifadə olunur və boş qiymət kimi qəbul olunur


Yaddaş xassəsi

Auto xassəsi qöstərir ki bu dəyşən elan olunan blokda istifadə oluna bilər (dinamikdir) və blokdan kənarda bu dəyşən ləğv olunur.

Registr xassəsi o deməkdir ki dəyişənlər prosesorun reqistrlərdə saxlanilır (əməliyyatları tezləşdirmək üçün) və bloku tərk edən zaman öz qiymətini itirir. Reqistr xassəli dəyyişəni qlobal ola bilməz
Static xassəsi qöstərir ki, bu dəyişən blokdan kənarda da öz qiymətini saxlayır.

extern xassəsi qöstərir ki bu dəyişən bütün proqramda qörünür. Belə dəyişənlər global adlandırılır.

Əğər dəyişən proqramdan əvvəl elan olunur və static xassəsi ilə onda o bütün faylda qörünür, əğər extern xassəsi ilə onda bütun proqramda( yəni bütün fayllarda, əlavə olaraq o bütün fayllarda elan olmalıdır)

Əğər yaddaş növü qöstərilmir onda auto qəbul olunur.

Sabitlər
Hər tip dəyişənlər üçün öz tip sabitləri var.
Simvol sabitləri ‘a’

Sətir sabitləri “a” ya “Aytan”

Tam sabitlər 10,8,16 say sistemində yazıla bilər.
20 on say sistemində
8 say sistemində olan sabitlər 0 ilə (sıfr) başlanmalıdır 023

16-lıq say sistemində 0X (sıfr və X) həriflər ilə başlanmalıdır 0X45

Tam sabitlər üçün əğər axırda U yazılırsə onda unsigned əğər L onda long
Həqiqi sabitlər adi və exponensial formatda yazıla bilər 23.62 , 0.45E-05

Əğər axırda L bu uzun formatdır


C proqramın strukturu

C proqramı ümümi şəkildə preprosesor əmrlərindən, bir əsas və bir neçə adi funksiylardan ibarət ola bilər.


Preprosesor əmrləri
void main ()

{
}
function vag1(.........)

{

......

}

function vag2(.........)

{

......

}
function vag3(.........)

{

......

}

Void sözu c++ proqramlarda istifadə olunur


C dilin başğa dillərdən fərqlərdən biri iki mərhələlikdir. Birinci mərhələ-preprosesor emalı, ikinci –translasiya( maşın dilinə cevirmək prosesi)

Preprosesor (prosesdən əvvəl) translasiya prosesı daha rahat və səmərəli etmək xüsusi bir sistemdir. Preprosesorun öz xüsusi dili mövcuddur və əsasən iki əməliyyatı icra edir

#include

#include

#include

#define aytan 653

#define heleki while

#define chap printf(“salam”);
Birinci və ikinci əmirlərin mənası stdio.h -xüsusi daxiletmə/xaricetmə kitabxanası, math.h –riyazi funksiyların kitabxanası qoşulması, ikinci əmrin mənası seva.c funksiyasını proqrama qoşmaqdır.Üçüncü əmrin mənası 653 ədəd əvəzinə aytan adinı işlətməq icazəsi və nahayyat dördüncü əmrin mənası

While sözün əvəzinə heleki sozunü işlətməq imkanı


Ən sadə variantda C proqramı preprosesor əmrlərindən və bir əsas funksiyadan ibarətdir.
#include

#include



main ()

{
}
{} işarələrə blok deyilir
Blok daxilində başqa bloklar da ola bilər

main ()


{ əsas blok

….

{1 blok



…….

}

…..


{ 2 blok
}
}
C dilində 2 növ əməliyyatlar mövcuddur

1. riyyazi

2. məntiqi

Cədvəl . С++ əsas əməliyyatlar



İşarə

Əməliiyat

Operandın növü

Nəticənin növü

+

Toplama

Tam, həqiqi

Tam, həqiqi

-

Çixma

Tam, həqiqi

Tam, həqiqi

*

Vurma

Tam, həqiqi

Tam, həqiqi

/

Bölmə

Həqiqi

Həqiqi

/

Tam bölmə

Tam

Tam

%

Tam bölmədən qaliq

Tam

Tam

--

Dekrement - 1

Tam

Tam

++

İnkriment artım +1

Tam

Tam

&

"and"

Tam

Tam

|

"or"

Tam

Tam

^

Not "or"

Tam

Tam

~

İncar

Tam

Tam

<< 

Sola sürüşdürmə

Tam

Tam

>> 

Sağa sürüşdürmə

Tam

Tam

Qörundiyi kimi С dilində ənənəvi əməliyyatlardan başğa inkriment, dekrement və bitlər üzərində əməliyyatlar da var.

++p; p=p+1; mənimsəməni əvəz edir. Eyni p++; Bu əməliyyatların fərqi aşağıdaki misalda qörünür

x=12;

y=++x;


y qiyməti 13 bərabər olacaq

x=12;


y=x++;

y qiyməti 12 bərabər olacaq

Eyniliklə --p; və p--;

Tam ədədlər ilə hesablamalar

Tam arifmetik əməliyyatlara tam bölmə və qalıqın tapılması əməliyatlar daxildir.

Tam bölmə əməliyyatda tam hissə qötürülür qalıqın tapılması əməliyyatında tərsinə qalıq qötürülür.

11 % 4 = 3
11 / 4 = 2
7 % 3 = 1
7 / 3 = 2
26 / 5 = 5
26 % 5 = 1


BIT HESABLAMALARI

Bütün bit hesablamaları tam ədədləri üzərində və kilik say sistemində təsvir formasında aparılır. С dilində aşağıdaki əməliyyatlar mövcuddur.


HESABİ VƏ (&). Hər iki operand (ədəd) ikilik say sisteminə çevirilir və ayrıliqda hər bir bit üzərində aşağıdaki qaydalara uyğun əməliyyat aparılır.

1 & 1 = 1        1 & 0 = 0        0 & 1 =0         0 & 0 = 0

Və əmiliyata aid olan misala bahaq.

#include


int main ()
{
int A, B;
   A=13;
   B=23;
   printf("\n%d\n", A & B)
}

Bu proqram aşağıdaki kimi işləyir. А=13 və В=23 hər ikisi ikilik say sisteminə çevirilir 0000000000001101 və 0000000000010111. Bundan sonra onları üzərində VƏ (&) əməliyatı aparılır.




&   0000000000001101
   0000000000010111
   0000000000000101

Nəticə onluq say sisteminə çevirilir və bizim misalda cavab 5 bərabərdır.Beləliklə 13 & 23 = 5.


Hesabi YA (|)

eyni yolla və müvafiq qayda ilə hesablamalar keçirilir.

1 | 1 = 1        1 | 0 = 1           0 | 1 =1            0 | 0 = 0

Misal üçün :

#include
int main ()
{
int A, B;
   A=13;
   B=23;
   printf("\n%d\n", A | B)
}

Analojı olaraq alırıq


|   0000000000001101


    0000000000010111
    0000000000011111
Onluq say sistemində nəticə 13 | 23 =31.
Hesabi İNKAR YA (^). Qaydalar aşağıdaki kimidir

1 ^ 1 = 0      1 ^ 0 = 1         0 ^ 1 =1          0 ^ 0 = 0

Hesabi SABİ İNKAR (~). Hər bit ozunün inkar bit ilə əvəz olunur, Misal üçün ~
             0000000000001101
~a        1111111111110010
Onluq say sistemində alırıq ~13=-14.

Sola sürüşdürmə (M << L). İkilik say sistemində verilmiç M tam ədədi sola L pozisiya sürüşdürülür. Misal

17 << 3.

17 ikilik say sistemində 10001, 3 pozisiya miqdarında sola sürüşdürəndə alırıq 10001000, onluq say sistemində bu 136. Yəni 17 << 3 =136. Qeyd edək ki , sola 1 pozisiya sürüşdürmək bərabərdir 2 vurmaqa, eyniliklə 2 pos-4 və s. Yəni M << L bərabərdir M.2L.


Sağa sürüşdürməq M >> L. Eyni yolla sağa 25 >> 1= 12. Burada M 2L bölməq lazımdır.

Məntiqi əməliyyatlar və münasibətlər


Bu əməliyatlar məntiqi qiymətlər üzərində aparılır. İki məniqi qiymət mövcuddur doğru (TRUE) və yalan (False). C dilində alan 1 dır doğru isə hər hansı bir 1 fərqli olan qiymətdir. С++ dilində yeni bool növü əlavə olunub. Münasıbət əməliyyatların nəticələri məntiqi qiymətlərdir (TRUE,1) ya da (FALSE, 0). C dilində 3 əsas məntiqi əməliyyat mövcüddur определены YA (||), VƏ(&&), İNCAR (!) (cədvel).

Cədvəl . Məntiqi əməliyatlar C dilində.



A

B

!A

A&&B

A||B

0

0

1

0

0

0

1

1

0

1

1

0

0

0

1

1

1

0

1

1

? Əməliyyatı


Proqramlarda budaqlanmanı təşkiletməq üçün xüsusi ? əmri mövcuddur:

Şərt ? İfadə 1: İfadə 2;

Əğər şərt doğrudur ifadə 1 hesablanır əks halda ifadə 2.

Misal üçün bu əmr y x modulunu mənimsədir.
y=x<0 ? –x: x;
Verilənlərin növ cevirmələri

Başğa növ verilənlərə cevirməq üçün xüsusi əməliyat mövcuddur:



(növ) ifadə

Misal,
x=5;


y=x/2;
z=(float) x/2;

Burada tam bölmə əməliyat nəticəsində y =2 z = 2.5 qiymətlərini alır





Dostları ilə paylaş:
  1   2   3   4


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

    Ana səhifə