Kuidas õppida programmeerima C-s

C on üks vanemaid programmeerimiskeeli. See töötati välja 70ndatel, kuid on endiselt väga võimas tänu madalale tasemele. C õppimine on suurepärane võimalus tutvustada end ka keerukamate keelte jaoks ning saadud teadmised tulevad kasuks peaaegu igas programmeerimiskeeles ning võivad aidata sul rakenduste arendamisse jõuda. Et saada teavet selle kohta, kuidas C-s programmeerimist alustada, vaadake allolevat sammu 1.

1
Laadige alla ja installige kompilaator. C-koodi peab koostama programm, mis tõlgendab koodi masinale arusaadavateks signaalideks. Kompilaatorid on tavaliselt tasuta ja erinevate operatsioonisüsteemide jaoks on saadaval erinevad kompilaatorid. Windowsi jaoks proovige Microsoft Visual Studio Expressi või MinGW-d. Maci jaoks on XCode üks parimaid C-kompilaatoreid. Linuxi jaoks on gcc üks populaarsemaid valikuid.

2
Saage aru põhitõdedest. C on üks vanemaid programmeerimiskeeli ja võib olla väga võimas. See oli mõeldud Unixi operatsioonisüsteemide jaoks, kuid seda on porditud ja laiendatud peaaegu kõigi operatsioonisüsteemide jaoks. C kaasaegne versioon on C++. C koosneb põhiolemuselt funktsioonidest ja nendes funktsioonides saate andmete salvestamiseks ja töötlemiseks kasutada muutujaid, tingimuslauseid, silmuseid.

3
Uurige mõnda põhikoodi. Heitke pilk allolevale (väga) lihtsale programmile, et saada hea ettekujutus selle kohta, kuidas mõned keele erinevad aspektid koos töötavad, ja saada ülevaade programmide toimimisest. #include int main() { printf(“Tere, maailm!n”); getchar(); return 0;}Käsk #include ilmub enne programmi käivitumist ja laadib teeke, mis sisaldavad vajalikke funktsioone. Selles näites võimaldab stdio.h kasutada funktsioone printf() ja getchar(). Käsk int main() ütleb kompilaatorile, et programm töötab funktsiooni nimega “main” ja et see tagastab täisarvu, kui see on lõpetanud. Kõik C-programmid käitavad põhifunktsiooni. {} näitab, et kõik nende sees on funktsiooni osa. Sel juhul tähistavad need, et kõik sees olev on osa funktsioonist “main”. Funktsioon printf() kuvab kasutaja ekraanil sulgude sisu. Jutumärgid tagavad, et sees olev string trükitakse sõna-sõnalt. Jada n käsib kompilaatoril kursorit järgmisele reale viia.The ; tähistab rea lõppu. Enamik C-koodi ridu peab lõppema semikooloniga. Käsk getchar() käsib kompilaatoril enne edasiliikumist oodata klahvivajutuse sisestamist. See on kasulik, kuna paljud kompilaatorid käivitavad programmi ja sulgevad kohe akna. See ei lase programmil enne klahvi vajutamist lõpetada. Käsk return 0 näitab funktsiooni lõppu. Pange tähele, kuidas funktsioon “peamine” on int-funktsioon. See tähendab, et kui programm on lõppenud, tuleb see täisarv tagastada. “0” näitab, et programm toimis õigesti; mis tahes muu number tähendab, et programmis tekkis tõrge.

4
Proovige programm kompileerida. Sisestage kood oma koodiredaktorisse ja salvestage see “*.c”-failina. Kompileerige see oma kompilaatoris, klõpsates tavaliselt nuppu Ehita või Käivita.

5
Kommenteerige alati oma koodi. Kommentaarid on osa koodist, mida ei koostata, kuid mis võimaldavad toimuvat selgitada. See on kasulik meeldetuletamiseks, mille jaoks teie kood on mõeldud, ja aidata teisi arendajaid, kes võivad teie koodi vaadata. Kommenteerimiseks C-kohas /* kommentaari alguses ja */ lõpus. Kommenteerige kõiki koodi kõige elementaarsemaid osi, välja arvatud kõige lihtsamad. Kommentaare saab kasutada koodi osade kiireks eemaldamiseks ilma neid kustutamata. Lihtsalt lisage kood, mille soovite välistada, kommentaarimärgenditega ja seejärel kompileerige. Kui soovite koodi tagasi lisada, eemaldage sildid.

6
Mõista muutujate funktsiooni. Muutujad võimaldavad salvestada andmeid kas programmis tehtud arvutustest või kasutaja sisendist. Muutujad tuleb enne nende kasutamist määratleda ja valida on mitut tüüpi. Mõned levinumad muutujatüübid on int, char ja float. Igaüks neist salvestab erinevat tüüpi andmeid.

7
Siit saate teada, kuidas muutujaid deklareeritakse. Muutujad tuleb kehtestada või “deklareerida”, enne kui programm saab neid kasutada. Muutuja deklareerimiseks sisestate andmetüübi, millele järgneb muutuja nimi. Näiteks kõik kehtivad muutujate deklaratsioonid on järgmised: float x;char name;int a, b, c, d;Pange tähele, et saate samal real deklareerida mitu muutujat, kui need on sama tüüpi. Eraldage muutujate nimed lihtsalt komadega. Nagu paljud C read, peab iga muutuja deklaratsiooni rida lõppema semikooloniga.

8
Tea, kus muutujaid deklareerida. Muutujad tuleb deklareerida iga koodiploki alguses (teie koodi osad, mis on suletud {} sulgudesse). Kui proovite hiljem plokis muutujat deklareerida, ei tööta programm õigesti.

9
Kasutage muutujaid kasutaja sisendi salvestamiseks. Nüüd, kui teate muutujate tööpõhimõtteid, saate kirjutada lihtsa programmi, mis salvestab kasutaja sisendi. Kasutate programmis teist funktsiooni, mida nimetatakse scanf. See funktsioon otsib konkreetsete väärtuste jaoks pakutavat sisendit. #include int main(){ int x; printf( “Sisesta number: ” ); scanf( “%d”, &x ); printf( “Sisestasite %d”, x ); getchar(); return 0;}String “%d” käsib scanf-il otsida kasutaja sisendist täisarve. & enne muutujat x ütleb scanf-ile, kust muutuja leida, et seda muuta, ja salvestab täisarvu muutujas. printf käsk loeb kasutajale tagasi sisestatud täisarvu.

10
Manipuleerige oma muutujatega. Muutujatesse salvestatud andmetega manipuleerimiseks saate kasutada matemaatilisi avaldisi. Kõige olulisem erinevus, mida matemaatiliste avaldiste puhul meeles pidada, on see, et üksik = määrab muutuja väärtuse, samas kui == võrdleb mõlema poole väärtusi, et näha, kas need on võrdsed. x = 3 * 4; /* määrab “x” väärtuseks 3 * 4 või 12 */x = x + 3; /* lisab “x” algsele väärtusele 3 ja määrab uue väärtuse muutujaks */x == 15; /* kontrollib, kas “x” võrdub 15 */x < 10; /* kontrollib, kas "x" väärtus on väiksem kui 10 */ 11 Mõista tingimuslausete põhitõdesid. Tingimuslikud avaldused juhivad enamikku programme. Need on väited, mille kohta tehakse kindlaks, et need on kas TÕED või VÄÄRid ja mille alusel lähtutakse tulemusest. Kõige elementaarsem väidetest on if-lause. TRUE ja FALSE töötavad C-s erinevalt sellest, millega olete harjunud. TRUE avaldused on alati võrdsed nullist erineva arvuga. Kui võrdlete tulemust TÕENE, tagastatakse "1". Kui tulemus on FALSE, tagastatakse "0". Selle mõistmine aitab teil näha, kuidas IF-i avaldusi töödeldakse. 12 Õppige põhilisi tingimuslikke operaatoreid. Tingimuslikud väited keerlevad väärtusi võrdlevate matemaatiliste operaatorite kasutamise ümber. Järgmine loend sisaldab kõige sagedamini kasutatavaid tingimuslikke operaatoreid. > /* suurem kui */< /* väiksem kui */>= /* suurem või võrdne */<= /* väiksem või võrdne */== /* võrdne */!= /* ei võrdu kuni */10 > 5 TÕENE6 < 15 TÕENE8 >= 8 TÕENE4 <= 8 TÕENE3 == 3 TÕENE4 != 5 TÕENE 13 Kirjutage põhiline IF-lause. IF-lausete abil saate määrata, mida programm pärast lause hindamist järgmiseks tegema peaks. Saate selle hiljem kombineerida teiste tingimuslausetega, et luua võimsaid mitut valikut, kuid praegu kirjutage nendega harjumiseks lihtne. #include int main(){ if ( 3 < 5 ) printf( "3 on väiksem kui 5"); getchar();} 14 Kasutage oma tingimuste laiendamiseks avaldusi ELSE/ELSE IF. Saate tugineda IF-lausetele, kasutades ELSE- ja ELSE IF-lauseid erinevate tulemuste käsitlemiseks. ELSE-laused käitatakse, kui IF-lause on FALSE. ELSE IF-laused võimaldavad teil erinevate juhtumite käsitlemiseks ühte koodiplokki lisada mitu IF-lauset. Vaadake allolevat näidisprogrammi, et näha, kuidas need omavahel suhtlevad. #include int main(){ int vanus; printf( “Palun sisesta oma praegune vanus: ” ); scanf( “%d”, &age ); if ( vanus <= 12 ) { printf( "Sa oled alles laps!n" ); } else if ( vanus < 20 ) { printf( "Teismeliseks olemine on päris vahva!n" ); } else if ( vanus < 40 ) { printf( "Sa oled hingelt veel noor!n" ); } else { printf( "Vanusega tuleb tarkus.n" ); } return 0;}Programm võtab kasutajalt sisendi ja viib selle läbi IF-lausete. Kui number rahuldab esimest lauset, tagastatakse esimene printf-lause. Kui see ei rahulda esimest lauset, vaadatakse see läbi iga ELSE IF-lause, kuni see leiab toimiva. Kui see ühelegi neist ei ühti, läbib see lõpus oleva ELSE-lause. 15 Saate aru, kuidas silmused töötavad. Silmused on programmeerimise üks olulisemaid aspekte, kuna need võimaldavad korrata koodiplokke seni, kuni konkreetsed tingimused on täidetud. See võib muuta korduvate toimingute rakendamise väga lihtsaks ja see hoiab ära selle, et te ei pea kirjutama uusi tingimuslikke avaldusi iga kord, kui soovite, et midagi juhtuks. Silmuseid on kolme peamist tüüpi: FOR, WHILE ja DO...WHILE. 16 Kasutage FOR-silmust. See on kõige levinum ja kasulikum silmuse tüüp. See jätkab funktsiooni käitamist, kuni tsüklis FOR seatud tingimused on täidetud. FOR tsüklid nõuavad kolme tingimust: muutuja lähtestamine, tingimus, mis tuleb täita, ja muutuja värskendamise viis. Kui te kõiki neid tingimusi ei vaja, peate siiski jätma semikooloniga tühja ruumi, vastasel juhul kestab tsükkel igavesti.#include int main(){ int y; for (y = 0; y < 15; y++;){ printf( "%dn", y ); } getchar();}Ülaltoodud programmis on y väärtuseks 0 ja tsükkel jätkub seni, kuni y väärtus on väiksem kui 15. Iga kord, kui y väärtus trükitakse, lisatakse y väärtusele 1 ja silmust korratakse. Kui y = 15, siis silmus katkeb. 17 Kasutage tsüklit WHILE. WHILE tsüklid on lihtsamad kui FOR tsüklid. Neil on ainult üks tingimus ja silmus toimib seni, kuni see tingimus on tõsi. Te ei pea muutujat initsialiseerima ega värskendama, kuigi saate seda teha tsükli põhiosas. #include int main(){ int y; while ( y <= 15 ){ printf( "%dn", y ); y++; } getchar();}Käsk y++ lisab y muutujale 1 iga kord, kui tsüklit käivitatakse. Kui y jõuab 16-ni (pidage meeles, et see tsükkel kestab seni, kuni y on väiksem kui 15 või sellega võrdne), tsükkel katkeb. 18 Kasutage tsüklit DO...WHILE. See silmus on väga kasulik tsüklite jaoks, mille käitamise soovite vähemalt korra tagada. Silmustes FOR ja WHILE kontrollitakse tingimust tsükli alguses, mis tähendab, et see ei saa kohe läbida ja ebaõnnestuda. DO...WHILE tsüklid kontrollivad tingimusi tsükli lõpus, tagades, et tsükkel käivitub vähemalt korra. #include int main(){ int y; y = 5; do { printf(“See tsükkel töötab!n”); } while ( y != 5 ); getchar();}See tsükkel kuvab teate isegi siis, kui tingimus on FALSE. Muutuja y väärtuseks on seatud 5 ja WHILE tsükkel käivitatakse siis, kui y ei võrdu 5-ga, seega tsükkel lõpeb. Teade oli juba trükitud, kuna tingimust ei kontrollita lõpuni. WHILE-silmus komplektis DO…WHILE peab lõppema semikooloniga. See on ainus kord, kui tsükkel lõpeb semikooloniga.

19
Saate aru funktsioonide põhitõdedest. Funktsioonid on iseseisvad koodiplokid, mida saavad kasutada programmi teised osad. Need muudavad koodi kordamise väga lihtsaks ning aitavad muuta programmi lihtsamaks lugemiseks ja muutmiseks. Funktsioonid võivad hõlmata kõiki selles artiklis varem käsitletud tehnikaid ja isegi muid funktsioone. Main() rida kõigi ülaltoodud näidete alguses on funktsioon, nagu ka getchar() Funktsioonid on tõhusa ja hõlpsasti loetava koodi jaoks hädavajalikud. Kasutage oma programmi sujuvamaks muutmiseks funktsioone hästi.

20
Alusta kontuuriga. Funktsioonid luuakse kõige paremini siis, kui kirjeldate enne tegeliku kodeerimise alustamist, mida soovite sellega saavutada. Funktsioonide põhisüntaks on “tagasi_tüübi nimi ( argument1, argument2 jne);”. Näiteks kahe arvu liitva funktsiooni loomiseks: int add ( int x, int y );See loob funktsiooni, mis liidab kaks täisarvu (x ja y) ning tagastab seejärel summa täisarvuna.

21
Lisage funktsioon programmi. Kontuuri abil saate luua programmi, mis võtab kaks täisarvu, mille kasutaja sisestab ja seejärel liidab need kokku. Programm määratleb, kuidas funktsioon “lisa” töötab, ja kasutab seda sisendnumbritega manipuleerimiseks. #include int add ( int x, int y );int main(){ int x; int y; printf( “Sisesta kaks numbrit, mida kokku liita: ” ); scanf( “%d”, &x ); scanf( “%d”, &y ); printf( “Sinu arvude summa on %dn” , add( x, y ) ); getchar();}int add ( int x , int y ){ return x + y;}Pange tähele, et kontuur asub endiselt programmi ülaosas. See annab kompilaatorile teada, mida funktsiooni kutsumisel oodata ja mida see tagastab. See on vajalik ainult siis, kui soovite funktsiooni hiljem programmis määratleda. Saate defineerida add() enne funktsiooni main() ja tulemus oleks sama ilma kontuurita. Funktsiooni tegelik funktsionaalsus on määratletud programmi allosas. Funktsioon main() kogub kasutajalt täisarvud ja saadab need seejärel töödeldavasse funktsiooni add(). Funktsioon add() tagastab seejärel tulemused main()-le Nüüd on add() defineeritud, seda saab välja kutsuda kõikjal programmis.

22
Leidke paar C-programmeerimise raamatut. See artikkel hõlmab põhitõdesid, kuid see kriibib ainult C-programmeerimise ja kõigi sellega seotud teadmiste pinda. Hea teatmeteos aitab teil probleeme lahendada ja säästab teid paljudest peavaludest.

23
Liituge mõne kogukonnaga. Nii võrgus kui ka pärismaailmas on palju kogukondi, mis on pühendatud programmeerimisele ja kõigile sellega kaasnevatele keeltele. Leidke sarnaselt mõtlevad C-programmeerijad, kellega koodi ja ideid vahetada, ning peagi avastate end palju õppimas. Võimalusel osalege mõnel hack-a-thonil. Need on üritused, kus meeskondadel ja üksikisikutel on programmide ja lahenduste väljamõtlemiseks ajapiirangud ning mis sageli soodustavad palju loovust. Nii saate kohtuda paljude heade programmeerijatega ja häkkimisi toimub regulaarselt kogu maailmas.

24
Võtke mõned klassid. Arvutiteaduse kraadi saamiseks ei pea te kooli tagasi minema, kuid mõne tunni läbimine võib teie õppimisega imesid teha. Miski ei ületa seda keelt hästi valdavate inimeste praktilist abi. Sageli võite leida tunde kohalikes kogukonnakeskustes ja noorte kolledžites ning mõned ülikoolid võimaldavad teil oma arvutiteaduse programme auditeerida ilma registreerumata.

25
Kaaluge C++ õppimist. Kui olete C-st aru saanud, ei teeks paha hakata C++-ile pilku heitma. See on C kaasaegsem versioon ja võimaldab palju rohkem paindlikkust. C++ on loodud objektide käsitlemist silmas pidades ja C++ tundmine võimaldab teil luua võimsaid programme peaaegu iga operatsioonisüsteemi jaoks.