Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:programming:c:crashcourse [2015/02/19 16:06] raivo.sellet:programming:c:crashcourse [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 48: Line 48:
 </code> </code>
  
-~~PB~~+<pagebreak>
  
 ===== Andmed ===== ===== Andmed =====
Line 78: Line 78:
  
 <code c> <code c>
-// char tüüpi muutuja c deklareerimine +char c; // char tüüpi muutuja c deklareerimine
-char c;+
  
-// Muutujale c väärtuse omistamine. +c = 65; // Muutujale c väärtuse omistamine.
-c = 65;+
 c = 'A'; // A on ASCII märgisüsteemis samuti väärtusega 65 c = 'A'; // A on ASCII märgisüsteemis samuti väärtusega 65
  
Line 91: Line 89:
 unsigned short x, y, test_variable; unsigned short x, y, test_variable;
 </code> </code>
- 
-~~PB~~ 
 ==== Konstandid ==== ==== Konstandid ====
  
 Konstante deklareeritakse samamoodi nagu muutujaid, kuid ette lisatakse //const// võtmesõna. Konstantide väärtust ei saa programmi käigus muuta. Näide kasutamisest: Konstante deklareeritakse samamoodi nagu muutujaid, kuid ette lisatakse //const// võtmesõna. Konstantide väärtust ei saa programmi käigus muuta. Näide kasutamisest:
- 
 <code c> <code c>
-// int tüüpi konstandi määramine +const int x_factor = 100; // int tüüpi konstandi määramine
-const int x_factor = 100;+
 </code> </code>
  
Line 141: Line 135:
 table[4][3] = 1; table[4][3] = 1;
 </code> </code>
- 
-~~PB~~ 
  
 ===== Avaldised ===== ===== Avaldised =====
Line 155: Line 147:
 int x, y; int x, y;
  
-// Mooduli võtmine, korrutamine ja väärtuse omistamine +// Mooduli võtmine, korrutamine ja väärtuse omistaminex saab väärtuse 9
-// x saab väärtuse 9+
 x = (13 % 5) * 3; x = (13 % 5) * 3;
  
-// Liitev-omistav operaator +// Liitev-omistav operaatorx väärtuseks saab 14
-// x väärtuseks saab 14+
 x += 5; x += 5;
  
-// Ühe lahutamise kiirmeetod +// Ühe lahutamise kiirmeetodx väärtuseks saab 13
-// x väärtuseks saab 13+
 x--; x--;
 </code> </code>
Line 196: Line 185:
 ==== Võrdlused ==== ==== Võrdlused ====
  
-Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (>=), väiksem (<) ja väiksem-võrdne (<=). Näide kasutamisest:+Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (> =), väiksem (<) ja väiksem-võrdne (< =). Näide kasutamisest:
  
 <code c> <code c>
Line 233: Line 222:
  
 Bititehted on hädavajalikud mikrokontrollerite registrite kasutamisel. Täpsemalt tutvustab neid AVR registrite peatükk. Bititehted on hädavajalikud mikrokontrollerite registrite kasutamisel. Täpsemalt tutvustab neid AVR registrite peatükk.
- 
-~~PB~~ 
  
 ===== Funktsioonid ===== ===== Funktsioonid =====
Line 241: Line 228:
  
 <code c> <code c>
-// Kahe int tüüpi parameetriga funktsiooni deklareerimine +// Kahe int tüüpi parameetriga funktsioon, mis tagastab int-tüüpi väärtuse 
-// Funktsioon tagastab int-tüüpi väärtuse +int sum(int a, int b) {
-int sum(int a, int b) +
-{+
  // Kahe arvu liitmine ja summa tagastamine  // Kahe arvu liitmine ja summa tagastamine
  return a + b;  return a + b;
Line 250: Line 235:
  
 // Ilma parameetrite ja tagastatava väärtuseta funktsioon // Ilma parameetrite ja tagastatava väärtuseta funktsioon
-void power_off(void) +void power_off(void) {
-{+
 } }
 </code> </code>
Line 261: Line 245:
 int y = 3; int y = 3;
  
-// Liitmisfunktsiooni väljakutsumine +// Liitmisfunktsiooni väljakutsumine, kus parameetriteks on muutuja ja konstandi väärtus
-// Parameetriteks on muutuja ja konstandi väärtus+
 x = sum(y, 5); x = sum(y, 5);
  
-// Väljalülitamise funktsiooni väljakutsumine +// Väljalülitamise funktsiooni väljakutsumine, parameetrid puuduvad
-// Parameetrid puuduvad+
 power_off(); power_off();
 </code> </code>
Line 272: Line 254:
 C-keele programmi täitmist alustatakse //main// nimelisest funktsioonist, mis teeb selle kohustuslikuks funktsiooniks. C-keele programmi täitmist alustatakse //main// nimelisest funktsioonist, mis teeb selle kohustuslikuks funktsiooniks.
  
-~~PB~~ 
  
 ===== Laused ===== ===== Laused =====
Line 316: Line 297:
 } }
 </code> </code>
- 
-~~PB~~ 
  
 ==== Valikulause ==== ==== Valikulause ====
Line 368: Line 347:
 } }
 </code> </code>
- 
-~~PB~~ 
  
 ==== for ==== ==== for ====
Line 422: Line 399:
 ==== sprintf ==== ==== sprintf ====
  
-sprintf funktsioon toimib sarnaselt C-keeles üldlevinud printf funktsiooniga. Erinevuseks on funktsiooni tulemuse väljastamine puhvrisse (märgimassiivi), mitte standard väljundisse (mis on mikrokontrolleritel enamasti jadaliides, PC peal konsooli aken). Funktsioonil on muutuv arv argumente, mida vormindatakse vastavalt formaadile.+sprintf funktsioon toimib sarnaselt C-keeles üldlevinud printf funktsiooniga. Erinevuseks on funktsiooni tulemuse väljastamine puhvrisse (märgimassiivi), mitte standardväljundisse (mis on mikrokontrolleritel enamasti jadaliides, PC peal konsooli aken). Funktsioonil on muutuv arv argumente, mida vormindatakse vastavalt formaadile.
    
 Näide 1: Näide 1:
Line 457: Line 434:
 | %X        | Heksadetsimaalarv| 0x3F    | | %X        | Heksadetsimaalarv| 0x3F    |
  
-===== Üldised utiliidid =====+Standardteegi päisefailides stdio.h, stdlib.h ja string.h on veel terve hulk erinevaid funktsioone erinevate teksti-operatsioonide teostamiseks. Näiteks on võimalik nendega teksti muundada arvudeks, tekste liita ja võrrelda, tekstist märke otsida jpm.
  
-Standard teegi päisefailides stdio.h, stdlib.h ja string.h on veel terve hulk erinevaid funktsioone erinevate teksti-operatsioonide teostamiseks. Näiteks on võimalik nendega teksti muundada arvudeks, tekste liita ja võrrelda, tekstist märke otsida jpm. +===== Juhuarvud =====
- +
-==== random ====+
  
 Juhuarvude genereerimine ei olegi AVR kontrolleril väga lihtne. Esmalt tuleb juhunumbrigeneraator seemendada arvuga, mille alusel genereeritakse suvaliste numbrite jada. Sama numbri järgi genereeritakse alati sama jada, seega suurema juhuslikkuse saavutamiseks on kasulik seemendus teha arvuga, mis ei ole alati sama - näiteks kasutada selleks kellaaega või lahti ühendatud ADC sisendist väärtust. Juhuarvude genereerimine ei olegi AVR kontrolleril väga lihtne. Esmalt tuleb juhunumbrigeneraator seemendada arvuga, mille alusel genereeritakse suvaliste numbrite jada. Sama numbri järgi genereeritakse alati sama jada, seega suurema juhuslikkuse saavutamiseks on kasulik seemendus teha arvuga, mis ei ole alati sama - näiteks kasutada selleks kellaaega või lahti ühendatud ADC sisendist väärtust.
Line 472: Line 447:
 int x = 1 + (rand() % 16); int x = 1 + (rand() % 16);
 </code> </code>
- 
-Põhjalikuma inglisekeelse kirjelduse C keele funktsioonide kohta leiab aadressilt: 
-[[http://www.cplusplus.com/reference/clibrary/|http://www.cplusplus.com/reference/clibrary/]] 
et/programming/c/crashcourse.1424361978.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0