Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

C-ohjelmoinnin perusteet

Samankaltaiset esitykset


Esitys aiheesta: "C-ohjelmoinnin perusteet"— Esityksen transkriptio:

1 C-ohjelmoinnin perusteet
Sisältö Johdatus ohjelmointiin ja C-kielen asema ohjelmointikielten joukossa (3-4) Ohjelmointiympäristö (5-7) Ohjelmakoodin kirjoitusasu (8-9) C-ohjelmoinnin peruselementit (10-23)

2 1. Johdatus ohjelmointiin ja C-kielen asema ohjelmointikielten joukossa
Ohjelmakoodi sisältää tietokoneen prosessoreille tarkoitettuja ohjeita haluttujen toimenpiteiden suorittamiseksi Prosessorit ymmärtävät vain konekieltä, koodi kirjoitetaan korkeamman tason kielillä C-kieli on ns. lausekieli, jolloin ohjelmointikoodin kirjoittaminen ainakin muistuttaa ihmisen luonnollista ajattelua

3 1. Johdatus ohjelmointiin ja C-kielen asema ohjelmointikielten joukossa
Luonnollinen kieli Uuden sukupolven kielet Ihmisen ajattelutapa Java, C# C++, C Assembler Korkean tason kielet (Tehtävän läheiset ja koneen läheiset kielet) Tietokoneen toiminta Symboliset konekielet Central Processing Unit Konekieli Kääntäminen Konekieli

4 1. Johdatus ohjelmointiin ja C-kielen asema ohjelmointikielten joukossa
Lähde: Concepts of Programming Languages, R. W. Sebesta 5th ed. (2002) COBOL PL/I FORTRAN I FORTRAN IV FORTRAN 90 Imperatii-viset CPL C Pascal ALGOL 68 ALGOL 60 BASIC Visual Basic SIMULA I Eiffel SIMULA 67 ADA 83 ADA 95 Oliopohjai-suus C++ C# Smalltalk 80 Java Funktio-naaliset LISP Scheme COMMON LISP COMMON LISP/CLOS Logiikka-kielet PROLOG Prolog++ 1960 1970 1980 1990 2000

5 2. Ohjelmointiympäristö
Kääntäjä (Compiler) Tekstieditori (lähdekoodi) hello.obj Linkkaaja (Linker) #include <stdio.h> int main() { printf("Hello, world\n"); return 0; } compile link hello.c hello.exe run/execute Hello world _ Käyttöjärjestelmä

6 2. Ohjelmointiympäristö
Osoite data/käsky Ohjelman muistialue: -Data -Konekieliset käskyt 004010F9 004010FB 004010FE . Data Käskyt Aritmeettinen ja looginen yksikkö Input/ Output Keskusyksikkö (CPU) käskyjen tulkkaus

7 2. Ohjelmointiympäristö
Integroitu ohjelmointiympäristö Syntaksin tunnistava tekstieditori Kääntäjä Linkkaaja Debuggeri Virtuaalikone (käyttöjärjestelmä) Tiedostojen hallinta (projektit) Online-help + wizard-toiminot ym. Harj. Käynnistä ja tutustu integroituun ohjelmointiympäristöösi. Etsi valikoista toiminnot: Uuden lähdekooditiedoston (*.c) avaaminen ja tallentaminen nimellä Ohjelman kääntäminen (compile), linkittäminen (build) ja ajaminen (run, execute)

8 3. Ohjelmakoodin kirjoitusasu
Erilliset lauseet erotetaan toisistaan puolipisteillä (;) Välilyönneillä erotetaan sanat toisistaan Sarkaimilla ja rivin-vaihdoilla selkeytetään koodin ymmärtämistä Kaarisulkuja () käytetään funktioiden argumenttien erottamiseksi, aaltosulkeita {} ohjelmalohkojen merkitsemiseksi Harj. Kirjoita, käännä ja aja ohjelma. Huom! Voit joutua kirjoittamaan main-funktion loppuun ennen return-lausetta rivin system(”PAUSE”); Tämä jättää tulostusikkunan näkyviin kunnes painetaan jotain näppäintä. Kolme toimivaa ohjelmakoodia #include <stdio.h> int main(){printf("Hello,world\n");return 0;} #include <stdio.h> int main() {printf("Hello, world\n"); return 0;} #include <stdio.h> int main() { printf("Hello, world\n"); return 0; }

9 3. Ohjelmakoodin kirjoitusasu
Koodin lisätyillä kommenteilla selkeytetään koodin ymmärtämistä ja uudelleen käytettävyyttä #include <stdio.h> int main() { printf("Hello, world\n"); return 0; } #include <stdio.h> /* Tämä ohjelma tulostaa tervehdyksen. Yleensä tämä on kaikkien ohjelmoijien ensimmäinen ohjelma millä tahansa ohjelmointikielellä */ int main() { printf("Hello, world\n"); // Tulostuslause return 0; // Paluu main-funktiosta } Harj. Lisää ohjelmaan kommentit. Tutustu myös kääntäjän generoimiin virheilmoituksiin (esim. poista puolipiste lauseen lopusta, merkitse #include komento kommentiksi tai kirjoita printf –funktio virheellisesti).

10 4. C-ohjelmoinnin peruselementit
C-kieli on imperatiivinen kieli, jossa koodi sisältää tyypitettyjä tietomuuttujia ja lauseita. Lauseiden sisältämien käskyjen avulla hallitaan muuttujien osoittamien muistipaikkojen sisältöä Perustietotyypit Tyypitetyt muuttujat Vakiot Lause (Statement) Lauseke (Expression)

11 4. C-ohjelmoinnin peruselementit
Muuttujien esittely Muuttujat esitellään ohjelmalohkon alussa Esittelyssä ilmoitetaan ensin muuttujan tyyppi (type) ja sen jälkeen tunniste (identifier) /*Tämä ohjelma kysyy kokonaisluvun ja tulostaa sen neliön */ #include <stdio.h> int main() { /*muuttujien esittely */ int luku, nelio; /* ohjelma */ printf("Anna jokin kokonaisluku"); scanf("%d",&luku); nelio=luku*luku; printf("Antamasi luvun neliö on %d",nelio); return 0; }

12 4. C-ohjelmoinnin peruselementit
Muuttujien alustus /*Tämä ohjelma kysyy kokonaisluvun ja tulostaa sen neliön */ #include <stdio.h> int main() { /*muuttujien esittely */ int luku, nelio; /* ohjelma */ printf("Anna jokin kokonaisluku"); scanf("%d",&luku); nelio=luku*luku; printf("Antamasi luvun neliö on %d",nelio); return 0; } Muuttujat alustetaan yleensä sijoituslauseella Ohjelman käyttäjä voi myös antaa muuttujalle arvon näppäimistöltä Harj. Kirjoita ohjelma ja aja se.

13 4. C-ohjelmoinnin peruselementit
Tärkeimmät perustyypit int main() { /*muuttujien esittely */ int ika; usigned int indeksi; long asukasluku; float paino; double etaisyys; char merkki; int (kokonaisluku) unsigned int (etumerkitön kokonaisluku) long (suuri kokonaisluku) float (desimaaliluku) double (desimaaliluku, suurempi laskenta-tarkkuus) char (yksi merkki tai myös pieni kokonaisluku)

14 4. C-ohjelmoinnin peruselementit
Vakiot #define PII 3.14 int main() { /*muuttujien alustus esittelyn yhteydessä */ int ika=23; long asukasluku= ; float paino=68.2; double etaisyys= ; char merkki=’a’; Esikääntäjällä nimetty vakio, jonka nimeä voidaan käyttää kuten muitakin muuttujia, mutta sen arvoa ei voi enää muuttaa Muuttujat alustetaan usein jo esittelyn yhteydessä ohjelmoijan kirjoittamilla vakioilla

15 4. C-ohjelmoinnin peruselementit
Perustietotyyppien tulostaminen (printf) #include <stdio.h> #define PII 3.14 int main() { int ika=23; long asukasluku= ; float paino=68.2; double etaisyys= ; char merkki=’a’; printf(”Tulostetaan muuttujien arvot\n”); printf(”Ikä = %d ja paino = %f\n”, ika, paino); printf(”Asukasluku = %ld\n”, asukasluku); printf(”Merkki = %c\n”, merkki); printf(”Vakion pii arvo on %f\n”, PII); return 0; } Perusmuoto printf(”merkkijono”, muuttujat) Merkkijonossa rivinvaihdot \n Muuttujien arvot muotoilumääreen avulla %d tai %i  int %ld  long %f  float %lf  double %c  char Harj. Kirjoita, käännä ja aja ohjelma.

16 4. C-ohjelmoinnin peruselementit
Perustietotyyppien tulostaminen (printf) #include <stdio.h> int main() { float paino=68.2,pituus=1.72; printf(”Tulostetaan paino ja pituus\n”); printf(”Pituus = \t %4.2f m\nPaino = \t %4.2f kg”, pituus, paino); return 0; } Merkkijonossa sarkainasetus \t Muotoilumääreen syntaksi %leveys.desimaalit tyyppi Harj. Kirjoita, käännä ja aja ohjelma. Lisää muuttuja iälle, alusta se koodissa ja tulosta ikä kolmannella rivillä.

17 4. C-ohjelmoinnin peruselementit
Arvon lukeminen näppäimistöltä (scanf) int main() { int ika; float paino; printf(”Anna ikäsi täysinä vuosina\n”); scanf(”%i”, &ika); printf(”Anna painosi 0.1 kg tarkkuudella\n”); scanf(”%f”, &paino); printf(”Ikäsi on %i vuotta\n”, ika); printf(”Painosi on %f kg\n”, paino); return 0; } Perusmuoto scanf(”muotoilumääre”, &muuttuja) Muotoilumääreenä käytetään samoja kuin printf-lauseessa %d tai %i  int %ld  long %f  float %lf  double %c  char Huom! &-operaattori muuttujan nimen edessä hakee muistiosoiteen

18 4. C-ohjelmoinnin peruselementit
Arvon lukeminen näppäimistöltä (scanf) ja tulostaminen (printf) Harjoitus: Laadi ohjelma, joka lukee käyttäjältä henkilön painon ja pituuden, laskee henkilön painoindeksin kaavalla sekä tulostaa painoindeksin ja oheisen taulukon Normaalia alhaisempi paino 18,4 tai alle Normaali paino 18,5 - 24,9 Lievä lihavuus 25,0 - 29,9 Merkittävä lihavuus 30,0 - 34,9 Vaikea lihavuus 35,0 - 39,9 Sairaalloinen lihavuus 40,0 tai yli

19 4. C-ohjelmoinnin peruselementit
Lause (statement) ja lauseke (expression) Lause on ohjelman toiminnallinen perusosa Lauseke on lauseen osa, jolla on jokin arvo. Lauseke voi koostua muuttujista, vakioista, operaattoreista, sulkeista ja/tai funktiokutsuista Esimerkkinä if-lause if (lauseke) lause; else int main() { int Kallen_ika=15, Villen_ika=16; if (Kallen_ika>Villen_ika) printf(”Kalle on vanhempi kuin Ville\n”); else if (Kallen_ika==Villen_ika) printf(”Kalle ja Ville ovat yhtä vanhoja\n”); else printf(”Ville on vanhempi kuin Kalle\n”); return 0; }

20 4. C-ohjelmoinnin peruselementit
Esimerkkejä lausekkeista Aritmeettinen lauseke (arvo = 2.5) Looginen lauseke (arvo = 1 eli tosi tai 0 eli epätosi) Funktiokutsu (arvo = 2) Sijoituslause on C-kielessä myös lauseke, jonka arvoksi tulee sama kuin sijoitettava arvo (Jos muuttuja luku on liukulukutyyppiä, tulee arvoksi 2.5, jos taas luku on kokonaislukutyyppiä, tulee arvoksi 2) (2+3)/2 Kallen_ika==Villen_ika sqrt(4) luku=(2+3)/2;

21 4. C-ohjelmoinnin peruselementit
Kielen tunnistamat merkistöt ja sanat Numerot (digits) (myös oktaali ja heksadesimaalinumerot) Ei-numerot (nondigits) _ a b c … x y z A B C … X Y Z Tunnisteet voidaan kirjoittaa käyttämällä ei-numeroita ja numeroita, kunhan ne alkavat ei-numerolla ja ne eivät ole varattuja sanoja (kts. myöh.)

22 4. C-ohjelmoinnin peruselementit
Kielen tunnistamat merkistöt ja sanat Erikoissymbolit Väli- ja sulkumerkit . ; , : ( ) [ ] { } Aritmeettiset merkit * / = < > Muita erikoismerkkejä ! % & # ? \ ^ | ~ Edellisten yhdistelmiä Jokaiseen merkkiin tai merkkiyhdistelmään liittyy erityinen syntaksi ja semantiikka, jotka voivat myös riippua siitä yhteydestä, jossa merkki(yhdistelmä) esiintyy. Esimerkiksi % -merkki voi toimia muotoilumääreenä tai jakojäännösoperaattorina /* % muotoilumääreenä */ scanf (”%i”,&luku); /* % jakolaskuoperaattorina */ luku = 5%2; //luku saa arvon 1

23 4. C-ohjelmoinnin peruselementit
Kielen tunnistamat merkistöt ja sanat Varatut sanat auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Varattuja sanoja ei voi yksinään käyttää ohjelmoijan määrittäminä tunnisteina. Lisäksi on syytä välttää standardikirjastossa määriteltyjen funktioiden nimiä, kuten esimerkiksi printf.


Lataa ppt "C-ohjelmoinnin perusteet"

Samankaltaiset esitykset


Iklan oleh Google