Programski jezik C

22
Programski jezik C Metode programiranja i proizvodnja softvera

description

Tipovi, operatori, selekcije, repeticije

Transcript of Programski jezik C

Page 1: Programski jezik C

Programski jezik C

Metode programiranja i

proizvodnja softvera

Page 2: Programski jezik C

Izvođači nastave

Srđan Popov (kancelarije TMD 9d, ITC 401)

Marko Knežević (kancelarija TMD 9b)

Petar Marić (kancelarija TMD 9b)

Milan Čeliković (kancelarija TMD 9a)

Stefan Nikolić (kancelarija TMD 9a)

Milanka Bjelica (kancelarija TMD 9b)

Vladimir Dimitrieski (kancelarija TMD 9a)

Page 3: Programski jezik C

Rešavanje problema

Razumevanje problema

Izgradnja modela

Formulisanje algoritma

Provera ispravnosti

Realizacija

Testiranje

Dokumentovanje

Page 4: Programski jezik C

Životni ciklus softvera

Analiza i specifikacija

Projektovanje arhitekture

Detaljno projektovanje

Kodiranje i testiranje

Integralno testiranje

Eksploatacija i održavanje

Page 5: Programski jezik C

Strukturirana paradigma C++-a moderni pristup

C je strukturna paradigma C++ jezika

C89 ANSI X3.159-1989

C90 ISO/IEC 9899:1990

C99 ISO/IEC 9899:1999

C11 ISO/IEC 9899:2011

Osnove za Java / C++ / C# programske

jezike

Page 6: Programski jezik C

BDA

Formalan način zapisivanja algoritma

Start

Stop s(а+b+c)/2

ulaz/izlaz

a>0 potprogram da

ne

Page 7: Programski jezik C

Zadatak 1

Izračunati površinu trougla upotrebom

Heronovog obrasca.

a = 2 cm

b = 4 cm

c = 5 cm

s=(a+b+c)/2

P=sqrt( s*(s-a)*(s-b)*(s-c))

Page 8: Programski jezik C

Formulisanje algoritma

Start

Stop

s=(a+b+c)/2

P=sqrt( s*(s-a)*(s-b)*(s-c)

P

a=?

b=?

c=?

)

1. Uneti ulazne podatke – a, b, c

2. Izračunati poluobim s

3. Preko Heronovog obrasca

izračunati površinu trougla

4.Ispisati ovako izračunatu površinu

Page 9: Programski jezik C

Realizacija algoritma (pisanje programa)

#include <stdio.h>

#include <math.h>

int main()

{

float a=2.0;

float b=4.0;

float c=5.0;

float s,P;

s=(a+b+c)/2;

P=sqrt( s*(s-a)*(s-b)*(s-c));

printf("P = %f\n",P);

return 0;

}

Page 10: Programski jezik C

Kompajliranje i pokretanje programa

Iz fajl menadžera kreirajte folder

Editujte izvorni kod

Sačuvajte u njemu editovan tekst

Pokrenite terminal

Sa cd preći u folder u kome je zadatak

Kompajliramo sa:

gcc -lm -o prvi prvi.c

Pokretanje programa

./prvi

Page 11: Programski jezik C

Šta su varijable?

Imenovani prostor u memoriji računara,

koji je namenjen čuvanju vrednosti

određenog tipa (celobrojne, realne,

karakteri, itd).

Sadrže podatke koje koristi vaš program

Koriste se za čuvanje podataka koji se

koriste u toku izvršavanja programa

Page 12: Programski jezik C

Deklarisanje varijabli u C-u

Pre korišćenja varijabla mora biti deklarisana.

Deklaracija se vrši navođenjem tipa i naziva

varijable.

Opciono, mogu se pomoću kvalifikatora

dodatno specificirati karakteristike varijable.

VAŽNO: Kada se izvrši deklaracija varijable,

njena vrednost je nedefinisana.

Page 13: Programski jezik C

Primer deklaracije varijabli

int i;

char c;

float f1, f2;

float f1=7.0, f2 = 5.2;

unsigned int ui = 0;

(u poslednja dva slučaja izvršena je i

inicijalizacija na početnu vrednost)

Page 14: Programski jezik C

Principi imenovanja varijabli

Za nazive varijabli se mogu koristiti slova, brojevi i _

CSE_5a

vrlo_dugo_ime_promenljive (nepraktično)

brojac (opisno ime – vrlo praktično, kod čitljiviji)

Prvi karakter u nazivu promenljive ne sme biti cifra

5a_CSE nije validan naziv promenljive! C pravi razliku između malih i velih slova

Naziv nije ista promenljiva kao i naziv

Page 15: Programski jezik C

Tipovi podataka u C-u

char – jednobajtni znakovni tip.

short int (ili samo short) – celobrojni tip, obično dužine 2 bajta (ređe korišćen tip).

int - celobrojni tip – obično dužine 4 bajta.

long int (ili samo long) – celobrojni tip, dužina 4 ili 8 bajta (ređe korišćen tip).

float – realna vrednost jednostruke preciznosti – obično 4 bajta.

double – realna vrednost dvostruke preciznosti – obično 8 bajta.

long double - realna vrednost dvostruke preciznosti – obično 8 bajta (ređe korišćen tip).

Signed nasuprot unsigned tipova

Page 16: Programski jezik C

Primer 1

Napisati program koji primenom operatora sizeof određuje veličinu memorije u bajtovima koja je potrebna za smeštanje podataka tipa: char, int, float, double.

Rešenje:

#include <stdio.h>

int main()

{

printf("Velicina memorije (izrazena u bajtovima) iznosi:");

printf("\n-za char \t %d", sizeof(char));

printf("\n-za int \t %d", sizeof(int));

printf("\n-za float \t %d", sizeof(float));

printf("\n-za double \t %d", sizeof(double));

return 0;

}

Page 17: Programski jezik C

Primer 2

/* Učitava se temperatura u celzijusima i konvertuje u Kelvine*/ #include <stdio.h> int main( ) { double celzijusi, kelvini; printf(“Unesite temperaturu u celzijusima: "); scanf("%lf",&celzijusi); kelvini = celzijusi +273.15; printf(“%lf stepeni celzijusa je %lf stepeni kelvina\n", celzijusi, kelvini); return 0; }

Page 18: Programski jezik C

prinft/scanf format specifikatori

Konstrukcija %<format> u format stringu printf/scanf se

zamenjuje sa vrednošću odgovarajuće varijable.

%c – karakter konverzija

%d – celobrojna konverzija, %u – neoznačena celobrojna

konverzija.

%f – konverzija realne vrednosti (float)

%lf – konverzija realne vrednosti dvostruke preciznosti

(double)

%g – drugi specifikator formata za double (u printf)

%% - karakter ‘%’ (u printf)

Page 19: Programski jezik C

Primer 3

/* Standard Predefined Macros*/

#include <stdio.h>

int main()

{

puts(__DATE__);

puts(__TIME__);

puts(__FILE__);

printf("%d\n",__LINE__);

puts(__FUNCTION__);

return 0;

}

Page 20: Programski jezik C

Upis teksta sa standardnog ulaza u imenovani fajl

#include<stdio.h>

#define MAXL 80

int main()

{

FILE *pf;

char str[MAXL];

puts("Unesite tekst");

gets(str);

pf=fopen("test.txt","w");

fputs(str, pf);

fclose(pf);

return 0;

}

Page 21: Programski jezik C

#include<stdio.h>

#define MAXL 80

int main()

{

FILE *pf;

char str[MAXL];

pf=fopen("test.txt","r");

if(pf!=NULL){

while(fgets(str, MAXL, pf)!=NULL)

puts(str);

fclose(pf);

} else {

printf("Nije moguce otvoriti datoteku ili datoteka ne postoji.");

}

return 0;

}

Ispis teksta iz imenovanog fajla na standardni izlaz

Page 22: Programski jezik C

Zadatak 2

Sa standardnog ulaza učitati koordinate

dve tačake, u ravni.

Rastojanje tačaka ispisati u datoteku

izlaz.txt