Version 4 (modified by 16 years ago) (diff) | ,
---|
Uvod v programski jezik C
V naslednjih poglavjih bom poizkušal na čim bolj enostaven način razložiti osnove programskega jezika C, ki so obvezno potrebne za izdelavo nekega konkretnega programa.
Prvi program
Da bomo premagali strah glede programiranja s programskim jezikom C oziroma, da si bomo potešili željo po svojem prvem programu, napišimo enostaven program, ki nam bo izpisal naslednje besedilo: Moj prvi program.
#include <stdio.h> int main() { printf("Moj prvi program\n"); return 0; }
Sintaksa jezika
Kot vsi drugi programski jeziki ima tudi C značilno sintakso jezika, ki se jo moramo strogo držati. To pomeni, da moramo upoštevati pravilni vrstni red in izbrane kombinacije besed ter simbolov tako, da tvorimo sintaktično pravilne izraze. Če sintaksa zapisanega programa ni pravilna, nam bo prevajalnik javil napako.
Najpogostejši operatorji in izrazi:
- OPERATORJI
- Relacijski
a==b //a je enak b a!=b //a ni enak b a<=b //a je manjši ali enak b a>b //a je večji kot b
- Logični
(a<b) && (a<c) //IN (a<b) || (a<c) //ALI !(a<b) //NI (negacija)
- Prireditveni in aritmetični
a=b //a-ju priredimo vrednost b a%b //Ostanek pri deljenju a z b
- Posebni
a++ //a povečamo za 1. Pišemo lahko tudi a=a+1 a+=b //a-ju prištejemo vrednost b. Pišemo lahko tudi a=a+b
- Relacijski
- KOMENTARJI
//Enovrstični komentar /*Več vrstični komentar*/
Več o sintaksi jezika bo razvidno iz naslednjih poglavij.
Spremenljivke
Spremenljivke so osnovni gradniki programa. Če želimo uporabljati spremenljivke, jih moramo najprej deklarirati. To storimo tako, da podamo njen tip, ki določa kakšno vrednost hranimo v njen, in njeno ime.
float a; a=5.12; //Naknadno podamo vrednost spremenljivke a int b=4; //Vrednost spremenljivke lahko podamo že pri deklariranju float c[10]; //Spremenljivka c bo sestavljena iz 10-ih elementov (imeli bomo 10 realnih števil v skladišču c)
Vrednost spremenljivke lahko poda tudi uporabnik. Za program bomo uporabili funkcijo scanf, ki prebere vnešeno vrednost in jo shrani pod nastavljeno spremenljivko.
float a; printf("Podaj realno število:\n"); scanf("%f",&a);
Pri tem %f predstavlja formatni stavek, &a pa pomeni naslov spremenljivke, pod katero se shrani vrednost.
Najpogostejša tipa spremenljivke sta:
- float - za realne vrednosti
- int - za celoštevilčne vrednosti (integer)
Uporabljajo pa se še double, char, long,...
Kontrolni stavki
Pod kontrolne stavke štejemo:
- If - else stavke
- Switch - case stavke
- For zanke
- While zanke
- Do - while zanke
If in switch stavki so stavki za pogojno izvrševanje delov programa. For, while in do - while zanke oziroma stavki pa so stavki za ponavljanje drugih stavkov.
Primeri uporabe posameznih vrst stavkov:
If stavek
if(a>b) { max=a; } else { max=b; }
V if stavke lahko dodamo še dodatne pogoje. To storimo z ukazom else if(pogoj).
if(a>b) { max=a; } else if(c>a) { max=c; } else { max=b; }
For zanka
for(i=0; i<10; i++) { printf("text\n"); }
Pri tem \n pomeni prehod v novo vrsto (New Line)
Switch stavek
switch(i) { case 1: printf("text 1") break; case 2: printf("text 2") break; case 3: printf("text 3") break; }
Lahko uporabimo še dodatni ukaz default, pri katerem se izvršijo stavki, kadar ni bil izbran določen case.
switch(i) { case 1: printf("text 1") break; case 2: printf("text 2") break; default: printf("text") }
While zanka
i=0; while(i<10) { printf("text\n"); i=i+1; }
Do - while zanka
i=0; do { printf("text\n"); i=i+1; } while(i<10);
Pri do - while zanki se stavki izvedejo vsaj enkrat!
V praksi pa se pogosto uporablja kombinacija teh stavkov.
//Generiranje elementov matrike H for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(i==j) { H[i*n+j]=0.5; } else { H[i*n+j]=2.0; } } }
Formatiran izpis
Vrednosti spremenljivk in konstant lahko izpisujemo z različnimi formati. Najbolj pogosto uporabljeni formatni stavki so:
- %f - realna števila
- %d - cela števila
- %g - realna števila, format odvisen od velikosti
Format izpisa neke vrednosti lahko poljubno določimo. To storimo tako, da formatni stavek dopolnimo z ukazom, ki nam pove koliko mest naj izpis zavzame pred decimalko in koliko za njo. Za primer vzemimo, da želimo imeti pet mest pred decimalko in dva za njo. Formatni stavek se glasi %5.2f.
Primeri formatiranega izpisa
#include <stdio.h> int main() { float a=5.12; //Realno število int b=-5; //Celo število printf("Vrednost a je enaka %f\n", a); printf("Vrednost a je enaka %4.2f\n", a); //Nastavimo željen format izpisa printf("Vrednost a je enaka %g\n", a); //Format bo odvisen od velikosti printf("Vrednost b je enaka %d\n", b); return 0; }
Program izpiše naslednje:
Vrednost a je enaka 5.120000 Vrednost a je enaka 5.12 Vrednost a je enaka 5.12 Vrednost b je enaka -5
Polja, vektorji, matrike
Polja, vektorje in matrike definiramo z deklaracijo, enako kot to velja za spemenljivke.
float M[4]; //Polje, vektor ali matrika vsebuje 4 elemente z realnimi vrednostmi
Prvi element ima vedno indeks 0!
Za primer določimo vrednosti posameznim elementom:
float M[4]; M[0]=2.0; M[1]=1.0; M[2]=4.0; M[3]=1.0;
Vrednosti posameznih elementov pa lahko definiramo že pri deklaraciji. To storimo na naslednji način:
float M[4]={2.0, 1.0, 4.0, 1.0};
Za izpis 1. elementa bomo zapisali:
printf("Vrednost 1. elementa znaša %f\n", M[0]);
Branje datotek
Dinamična alokacija pomnilnika
Reševanje sistema linearnih enačb
Attachments (5)
-
Pomnilnik.PNG (12.0 KB) - added by 16 years ago.
Stanje pomnilnika
-
lupack.c (3.1 KB) - added by 16 years ago.
Obvezen dokument za reševanje sistema linearnih enačb. Dokument si shranimo pod naš projekt
-
lupack.h (103 bytes) - added by 16 years ago.
Obvezen dokument za reševanje sistema linearnih enačb. Dokument si shranimo pod naš projekt
-
example-lin.c (521 bytes) - added by 16 years ago.
Reševanje sistema linearnih enačb
-
example-lin.2.c (521 bytes) - added by 16 years ago.
Reševanje sistema linearnih enačb
Download all attachments as: .zip