1. I-OJI PASKAITA: Pradinės pastabos
1.1. C programavimo kalbos ypatybės
• Gerai išvystyta aukšto lygio programavimo kalba.
• Dauguma (vos ne visos) komercinės programos parašytos būtent C arba C++ kalba. De facto tai pramoninių programų rašymo standartas
• Kada atsirado C kalba? 1969 metais išleista C kalbos pirma versija. Sukurta kaip sudėtinė UNIX operacinės sistemos dalis. Vėlesnės UNIX versijos parašytos C kalba
• Kodėl pavadinta C? Buvo dvi ankstesnės versijos – A ir B, bet jos buvo nevykusios. Iš trečio karto pasisekė sukurti pasisekusią programavimo kalbą. Todėl ir pavadinimas C.
• C – tai nepriklausoma nuo mašinos tipo procedūrinė programavimo kalba
• Koks skirtumas tarp C ir C++? C++ – tai objektinis procedūrinės programavimo kalbos C poaibis
• Kokias programas galima parašyti naudojant C/C++?
1.2. Programavimo kalbų klasifikacija
• Kas yra kalba ? Ar pvz. matematika kalba ?
• Kokios kalbos yra natūralios ir kokios dirbtinės ?
• Kodėl programos nerašomos natūralia kalba ? Kas nulėmė tokią programavimo kalbų struktūrą kokia yra dabar ?
• Žemo lygio programavimo kalbos:
• – mašininiai kodai
• – asembleriai (ypatybės ?)
• Aukšto lygio programavimo kalbos:
• -procedūrinės: Fortran, Pascal, C
• -interpretatoriai: Basic
• objektinės: C++, Java, Delphi (ypatybės ?)
1.3. Programavimo priemonių rinkinys
• Ką reikia turėti norint parašyti veikiančią programą ?
Trys pagrindiniai komponentai:
Redaktorius – tam, kad parašyti programos išeities kodą. Tinka bet koks redaktorius (pvz. Microsoft Word), bet dažniausiai naudojami specializuoti
Kompiliatorius – tam, kad parašytą programos kodą paversti į mašininius kodus, taip vadinamą objektinį modulį
Linkeris – kad prie objektinio modulio prijungti kitus objektinius modulius, bibliotekose surinktą kodą ir gauti vykdomąją programą.
• Šiuolaikinėse sistemose dažniausiai naudojamos integruotos sistemos, apjungiančios visus tris komponentus
• Vis dažniau naudojamas vizualinis programavimas. Tačiau sunkiausią dalį programuotojas vis tiek turi padaryti pats
1.4. C kalbos programavimo priemonės
Yra sukurta daug programavimo priemonių rašyti programas C kalba:
Nemokamos: gcc kompiliatorius, Mars C, lcc ir t.t.
Komercinės: Microsoft C, Borland C, Symantec C ir t.t.
Įprastinės: Turbo C, Borland C, Symantec C
Vizualinio programavimo: Microsoft Visual C, Borland C Builder
• Kurios geriausios ? Tos, prie kurių labiausiai esi pripratęs ir gali greičiausiai pasiekti reikiamą tikslą.
1.5. Programos leksika ir sintaksė
• Programą, parašytą C kalba, sudaro vienas arba keli failai
• Kiekvieną failą sudaro funkcijų ir kintamųjų bei veiksmų su jais aprašymas
• Leksiškai programa susideda iš bazinių arba raktinių žodžių (angl. keywords) specialių ženklų, identifikatorių, konstantų ir komentarų
• C kalboje naudojamos tiek didžiosios, tiek mažosios raidės, tačiau yra priimta eilė neoficialių susitarimų, kurių pravartu laikytis
1.6. Kintamieji ir konstantos
• Duomenys, kuriuos apdoroja kompiuteris – tai konstantos ir kintamieji
• C kalboje visi kintamieji turi būti aiškiai aprašyti
• Kintamojo aprašymas – tai jo tipo specifikavimas, kintamojo vardo uždavimas, eilė neprivalomų modifikatorių, kurie apibrėžia vidines kintamojo vaizdavimo ypatybes arba jo saugojimo klasę.
• Aprašant kintamąjį galima nurodyti jo pradinę reikšmę
• Identifikatorius – tai seka raidžių arba skaičių, kurie prasideda raide arba pabraukimo ženklu _
• Kintamojo vardas – tai identifikatorius . Vardas gali būti bet kokio ilgio, bet tik pirmi 32 simboliai bus reikšminiai
1.7. Kintamųjų tipai
• Tipas – bet kuriai programavimo kalbai fundamentali sąvoka
• C kalboje skiriami 4 kategorijų tipai
• Tuščias tipas (void)
• Skaliarinis tipas:
– aritmetiniai tipai
– išvardijimai (enumerations)
– rodikliai (pointers)
– nuorodos (references)
• Tipas funkcija
• Agreguotas tipas:
– masyvai (arrays)
– struktūros ir sąjungos
– klasės (tik C++ poaibyje)
• Kitaip kintamieji gali būti skirstomi į :
– pagrindinius
– išvestinius
• Pagrindiniai tipai C kalboje yra:
void char int float double
ir jų variantai su raktiniais žodžiais
short long signed unsigned
• Išvestiniai tipai:
– rodikliai ir nuorodos į kitus duomenų tipus
– funkcijos
– struktūros ir sąjungos
– klasės
1.8. Duomenų tipas int
• C kalboje duomenų tipas int (integer, integral ?) savyje apjungia duomenų tipus char, short, long
• Pats duomenų tipas int yra bazinis ir priklauso nuo operacinės sistemos skiltiškumo: jo dydis lygus operacinės sistemos adresavimo skiltiškumui (16 bitų Win16, 32 bitai Win32, ateityje 64 bitai ?)
•
bitai min max
char 8 -128 127
unsigned char 8 0 255
short int 16 -32768 32767
int 16 -32768 32767
unsigned int 16 0 65535
long 32 -2147413648 2147483647
unsigned long 32 0 4294967295
1.9. Sveiko tipo konstantos
• Sveiko tipo (int) konstantos gali būti užrašomos dešimtaine, aštuntaine arba šešioliktaine sistema:
• 15,5,65,156,253
• 015,05,065,0156,0253
• 0x15,0x5,0x65,0x156,0x25af
• Dešimtainės konstantos
paprastoje formoje suprantamos kaip short int kintamieji.
• Jeigu reikia užrašyti didesnius kintamuosius, reikia naudoti tipo modifikatorius U(u) – unsigned arba L(l) – long
• Pvz.: negalima rašyti 40156 , 1256789, -35674 ir t.t.
• Reikia rašyti 40156u, 1256789l, -35674l ir t.t.
• Galima naudoti tiek U ir L, tiek u ir l