Kako programirati u jeziku C ?

Slides:



Advertisements
Presentazioni simili
CUDA & OpenMP parallel programming.
Advertisements

Corso di Fondamenti di Programmazione canale E-O
Uso avanzato di C.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
(FA) FA Va', pen- ro, sul -sie -l a -le do - SOL LASIb sa suipo -cli - i -- vi sui tera - a - a - …va', ti DO FA za - nolez -te -pide e licol -…ove o -
Le funzioni.
Puntatori e Heap in C Prof.Ing.S.Cavalieri.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Strutture di controllo nel C
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Dichiarazioni e tipi predefiniti nel linguaggio C
Il Linguaggio C.
Programmazione in Java Claudia Raibulet
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
void binario(int n); …………………
1 Numeri interi e numeri in virgola mobile F. Bombi 2 6 novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
TENGO_UNA_SCUOLA_VECCHIA (Questa è una canzone triste… Molto triste...)... Sul motivo de “La camisa negra” Il testo avanza sincronizzato.
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Il linguaggio C Notate che ....
Il linguaggio C Un primo programma C : un primo programma (2) /* Programma che calcola il massimo fra tre numeri inseriti da tastiera */ #include #define.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
I M P A R O G I O C A N D O LE SILLABE E LE PAROLE.
Il lavoro e le opportunità per giovani e cooperative: i servizi e le progettualità di Confcooperative Progetto per una offerta integrata di servizi per.
Cicli. Ci sono almeno tre modi diversi per costruire un ciclo in C e occorre utilizzare quello che meglio si adatta alle esigenze del problema che si.
Algoritmo per il calcolo del maggiore tra tre numeri qualsiasi Francesco PUCILLO matr
I numeri cardinali da 0 a 20 0 = zero 1 = uno 2 = due 3 = tre 4 = quattro 5 = cinque 6 = sei 7 = sette 8 = otto 9 = nove 10 = dieci 11 = undici 12 = dodici.
I pronomi diretti oggetto. i pronomi personali diretti zamjenjuju imenicu Odgovaraju na pitanje: chi? che cosa? Oggi compro il giornale Oggi compro il.
ITALIANO Lezione prima Benvenuti! ☻ ottobre, 2o14 Moodle.f.bg.ac.rs Strani jezici Italijanski jezik 1.
SALUTI Salve! Ciao! Buongiorno! Buonasera! Buonanotte! ArrivederLa!
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Tipi e Valori Moreno Marzolla
Introduzione al linguaggio C
Linguaggio C: Espressioni
7. Strutture di controllo Ing. Simona Colucci
JAVA usa una rappresentazione in VIRGOLA MOBILE
Matrici come array di puntatori a righe
Vjeroučitelj između profesije i poziva
Ipotesi per la struttura politico-amministrativa dello stato miceneo
TALIJANSKI SUSTAV NAKNADE NEIMOVINSKE ŠTETE
Tipo Carattere Finora abbiamo lavorato con valori numerici.
a cura dei prof. Roberto Orsaria e Monica Secco
Italijanski jezik 1 prof. Bojana Prodanović Đorđević 26.mart 2018
2. Samo ću danas posvetiti posebnu brigu svom ponašanju
Prezentacija: Privatnost na internetu
Programiranje 1 Uvod u programski jezik c
Programiranje 1 Uvod u programski jezik c
PRISPODOBA O DOBROM PASTIRU I IZGUBLJENOJ OVCI
Programmazione e Laboratorio di Programmazione
Katolički misionar u Japanu molio je brevijar vozeći se u vlaku.
Svjetla moga grada.
Primjena članka 5 Direktive
Svetkovina presvetog Tijela i Krvi Kristove
Riječ života Studeni 2009.
XXII. NEDJELJA KROZ GODINU B Mk 7,
La struttura dei primi programma in C
Le variabili Tipo Valori ammissibili
R O B.
XXII. NEDJELJA KROZ GODINU B Mk 7,
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Alfabeto PAROLE BISILLABE.
PRISPODOBA O DOBROM PASTIRU I IZGUBLJENOJ OVCI
Programmazione Procedurale
Transcript della presentazione:

Kako programirati u jeziku C ? 1.1. Uvod u C Kako programirati u jeziku C ? Programiranje u programskom jeziku C Program u programskom jeziku C čini određen broj funkcija Jedna od funkcija obavezno se naziva main - glavna funkcija izvršavanje C programa = poziv i izvršavanje funkcije main() Primjer: #include <stdio.h> main() { printf(“Primjer programa”); }

1.1. Uvod u C Kako programirati u jeziku C? #include <stdio.h> Pretprocesorska direktiva Svaki program mora da ima main funkciju main() Zaglavlje funkcije #include <stdio.h> main() { printf(“Primjer”); } { Početak bloka printf(“Primjer”); tijelo funkcije (blok iskaza) ; Separator iskaza } Kraj bloka

1.1. Uvod u C PRETPROCESORSKA direktiva? #include <stdio.h> main() { printf(“Primjer”); } #include <stdio.h> Pretprocesorska direktiva Obrađuje se prije prevođenja programa Obavezno počinje sa # #include – najčešće korištena direktiva Uključuje u program sadržaj datoteke koja se navodi kao parametar #include <ime> ili #include ”ime” #define – često korištena direktiva Definiše simboličke konstante i makroe #define IME vrijednost #define PI 3.14159 #define EPS 0.0001 Standardne biblioteke <stdio.h> funkcije za standardni I/O <math.h> matematičke funkcije ...

1.1. Uvod u C PRETPROCESORSKA direktiva? Primjer: #include <stdio.h> Pretprocesorska direktiva uključuje standardne funkcije za ulaz/izlaz podataka Primjer: #include <stdio.h> #define PI 3.14159 #define EPS 1e-6 #define MAXINT 32767 #define K_OCT 071 #define K_HEX 0x41 main() { printf( ”%d”, MAXINT ); printf( ”%8.5f\n”, PI ); printf( ”%10.8f\n”, EPS ); printf( ”%d %d”,K_OCT, K_HEX ); } #define PI 3.14159 Pretprocesorska direktiva definiše simboličku konstantu PI #define EPS 1e-6 Pretprocesorska direktiva definiše simboličku konstantu EPS = 0.000001 #define MAXINT 32767 Pretprocesorska direktiva definiše cjelobrojnu konstantu MAXINT = 32767 #define K_OCT 071 definiše oktalnu konstantu K_OCT = 071 Oktalna konstanta započinje nulom 071 = 7*8 + 1*1 = 56 + 1 = 57 dec #define K_HEX 0x41 definiše heksadecimalnu konstantu K_HEX = 0x41 Heksadecimalna konstanta počinje sa 0x 0x41 = 4*16 + 1*1 = 64 + 1 = 65 dec printf( ”%d”, MAXINT ); printf( ”%8.5f\n”, PI ); printf( ”%10.8f\n”, EPS ); printf( ”%d %d”,K_OCT, K_HEX ); Glavni program (funkcija main) ispisuje vrijednosti definisanih konstanti na ekran Za ispis na ekran koristi se standardna funkcija printf()

PRETPROCESORSKA direktiva? 1.1. Uvod u C PRETPROCESORSKA direktiva? Primjer: #include <stdio.h> #define PI 3.14159 #define EPS 1e-6 #define MAXINT 32767 #define K_OCT 071 #define K_HEX 0x41 main() { printf( ”%d”, MAXINT ); printf( ”%8.5f\n”, PI ); printf( ”%10.8f\n”, EPS ); printf( ”%d %d”,K_OCT, K_HEX ); } printf( ”%8.5f\n”, PI ); _3.14159 printf( ”%d”, MAXINT ); printf( ”%d”, MAXINT ); 32767_ 0.00000100 printf( ”%10.8f\n”, EPS ); printf( ”%8.5f\n”, PI ); printf( ”%d %d”,K_OCT, K_HEX ); 57_65_ printf( ”%10.8f\n”, EPS ); printf( ”%d %d”,K_OCT, K_HEX );

1.1. Uvod u C Standardna funkcija za izlaz (ispis) na ekran printf ??? printf( ”konverzioni string” , lista_argumenata ) ”konverzioni string” lista_argumenata Kontrolni (konverzioni) niz određuje način na koji se vrši ispis Štampa se sve što se nađe unutar ” ” sve dok se ne dođe do znaka % Kad se dođe do znaka % gleda se sljedeći znak (grupa znakova) koji se naziva konverzioni karakter Konverzioni karakter definiše kako će se ispisati odgovarajući podatak iz liste argumenata Mora biti onoliko znakova % u cijelom stringu koliko ima i argumenata u listi Određuje šta treba da se ispiše (koji podaci treba da se ispišu) Argumenti se odvajaju zapetama Argumenti mogu da budu promjenljive, konstante, izrazi

1.1. Uvod u C Konverzioni karakteri Opšti oblik: %c - znak %s - string %d - integer (cijeli broj) %sd – short integer %ld – long integer %f - float %lf - double %o - oktalni podatak %x - heksadecimalni podatak %% - ispis znaka % Opšti oblik: Ukupan broj mjesta za ispis podatka n – najmanje n znakova (vodeće bjeline) 0n – najmanje n znakova (vodeće nule) [širina] % [širina] [.preciznost] tip Ukupan broj mjesta za ispis decimala .d – najviše d decimala [.preciznost]

Konverzioni karakteri ? 1.1. Uvod u C Konverzioni karakteri ? MEMORIJA 0100 0001 int var=65; Znakovi: int var=65; printf( ”Znakovi:\n”); Primjer: #include <stdio.h> main() { int var=65; printf( ”Znakovi:\n”); printf( ”%2c\n”, ’A’); printf( ”%4c\n%6c\n”, var, ’B’); printf( ”%8c\n”, var+1); printf( ”%3d\n”, ’A’); printf( ”%03d”, ’A’); } printf( ”Znakovi:\n”); printf( ”%2c\n”, ’A’); .A printf( ”%2c\n”, ’A’); printf( ”%4c\n%6c\n”, var, ’B’); ...A .....B printf( ”%4c\n%6c\n”, var, ’B’); printf( ”%8c\n”, var+1); .......B printf( ”%8c\n”, var+1); printf( ”%3d\n”, ’A’); .65 printf( ”%3d\n”, ’A’); printf( ”%03d”, ’A’); 065 printf( ”%03d”, ’A’);

1.1. Uvod u C

Specijalne znakovne konstante? 1.1. Uvod u C Specijalne znakovne konstante? Specijalne znakovne konstante \n - novi red \b - jedno mjesto unazad \a - zvučni signal (beeper) \r – vraćanje na početak reda \t – tabulator udesno \’ – ispisuje znak ’ \” – ispisuje znak ” \\ – ispisuje znak \ \ddd – ispisuje znak sa kodom ddd oktalno \xdd – ispisuje znak sa kodom dd heksadecimalno

BROJ BAJTOVA ZA CJELOBROJNE PODATKE ZAVISI OD OPERATIVNOG SISTEMA 1.1. Uvod u C TIPOVI ??? Prosti tipovi podataka BROJ BAJTOVA ZA CJELOBROJNE PODATKE ZAVISI OD OPERATIVNOG SISTEMA Znakovni char (1 bajt) Cjelobrojni short (1 bajt) int (2 bajta) long (4 bajta) Realni float (4 bajta) double (8 bajtova) Kvalifikatori za cjelobrojne podatke signed - označeni ako se ne navede podrazumijeva se signed short (-128..+127) signed int (-32767..+32768) unsigned - neoznačeni unsigned short (0..255) unsigned int (0..65535)

1.1. Uvod u C Promjenljive (varijable) PROMJENLJIVE ??? Promjenljiva je simboličko ime za neku memorijsku lokaciju Svaka promjenljiva mora da ima neko jedinstveno ime ime se formira od slova, cifara i znaka _ prvi znak ne može biti cifra maksimalno 31 znak razlikuju se velika i mala slova MEMORIJA Broj-1 123A broj BROJ podatak_1

1.1. Uvod u C PROMJENLJIVE ??? Promjenljiva mora biti tačno određenog tipa Tip promjenljive ne može se mijenjati tokom izvršavanja programa promjenljiva može biti nekog prostog ili složenog tipa Može da se mijenja samo vrijednost (sadržaj memorijske lokacije) zato se i zove promjenljiva (varijabla) MEMORIJA A x Z G a ABC 2.35 13 char 13 6 -657 ABC 2.35 D int

1.1. Uvod u C Opšti oblik definicije promjenljive: PROMJENLJIVE ??? Svaka promjenljiva mora biti definisana!!! Prevodiocu (kompajleru) mora se ukazati na to da će se u programu koristiti neka promjenljiva, kako bi on mogao da rezerviše potreban prostor u memoriji Opšti oblik definicije promjenljive: tip imepromjenljive [=vrijednost] [=vrijednost] Npr. int i,j,n=10; float a, e=2.71; char znak=’+’,c; Početna vrijednost početna vrijednost ne mora se dodjeljivati [ ] se koriste da bi se naglasilo da nije obavezno

1.1. Uvod u C PROMJENLJIVE ??? Primjer: #include <stdio.h> main() { int i=9,j; float a,b; j=i/2; a=i/2.0; b=a*2.0/j; printf( ”i=%d\n”, i ); printf( ”j=%d\n”, j ); printf( ”a=%6.2f\n”, a ); printf( ”b=%6.2f\n”, b ); } b MEMORIJA 0001 0000 0100 0000 0000 0000 2.25 int i=9,j; float a,b; int i=9,j; float a,b; j=i/2; a j=i/2; a=i/2.0; 1001 0000 0100 0000 0000 0000 4.5 a=i/2.0; b=a*2.0/j; j 0000 0100 0000 0000 4 i 0000 1001 0000 0000 9

1.1. Uvod u C PROMJENLJIVE ??? i=9 j=4 a= 4.50 b= 2.25 Primjer: MEMORIJA j a b i 0000 1001 0000 0000 9 0000 0100 4 1001 0000 0100 0000 4.5 0001 0000 2.25 Primjer: #include <stdio.h> main() { int i=9,j; float a,b; j=i/2; a=i/2.0; b=a*2.0/j; printf( ”i=%d\n”, i ); printf( ”j=%d\n”, j ); printf( ”a=%6.2f\n”, a ); printf( ”b=%6.2f\n”, b ); } b=a*2.0/j; printf( ”i=%d\n”, i ); i=9 printf( ”i=%d\n”, i ); printf( ”j=%d\n”, j ); j=4 printf( ”j=%d\n”, j ); printf( ”a=%6.2f\n”, a ); a= 4.50 printf( ”a=%6.2f\n”, a ); printf( ”b=%6.2f\n”, b ); b= 2.25

1.1. Uvod u C Standardna funkcija za ulaz (čitanje) podataka ULAZ PODATAKA ??? Standardna funkcija za ulaz (čitanje) podataka scanf( ”konverzioni string” , lista_argumenata ) ”konverzioni string” lista_argumenata Kontrolni (konverzioni) niz određuje način na koji se vrši unos podataka Sličan konverzionom nizu kod printf() Čine ga konverzioni karakteri koji definišu način unosa podataka Određuje šta treba da se unese (koji podaci treba da se učitaju) Argumenti se odvajaju zapetama Argumenti su pokazivači na memorijske lokacije u koje se smještaju učitani podaci Ako se učitava promjenljiva x tada je argument oblika &x

1.1. Uvod u C++ ULAZ PODATAKA ??? 0000 0000 broj 0000 0110 Primjer: #include <stdio.h> main() { int broj; printf( ”Unesite cijeli broj:\n” ); scanf( ”%d”, &broj ); printf( ”Unijeli ste %d\n”, broj ); } MEMORIJA Unijeli ste 6 broj 0000 0110 0000 0000 Unesite cijeli broj: 6

1.1. Uvod u C Aritmetički operatori OPERATORI ??? dodjela vrijednosti (=) a=3; c=2; sabiranje (+) a=3; c=a+2;  c  5 oduzimanje (-) b=3; c=b-2;  c  1 množenje (*) a=2; b=3; c=a*b;  c  6 dijeljenje (/) i=9; k=4; c=i/k;  c  2 p=9.0; q=4.0; c=p/q;  c  2.25 ostatak cjelobrojnog dijeljenja (%) c=9%4;  c  1 p=6%8;  p  6

1.1. Uvod u C Aritmetički operatori (nastavak) OPERATORI ??? Operator uvećavanja za jedan (inkrement) (++) Operator umanjivanja za jedan (dekrement) (--) prefiksni oblik postfiksni oblik ++prom prom++ --prom prom-- Npr. i=i+1  ++i  i++ i=i-1  --i  i-- Npr. i = 2; j = (++i)+5; ---------- i  i+1 = 2+1 = 3 j  i+5 = 3+5 = 8 Npr. i = 2; j = (i++)+5; ---------- j  i+5 = 2+5 = 7 i  i+1 = 2+1 = 3

1.1. Uvod u C Aritmetički operatori (nastavak) OPERATORI ??? Složeni operatori dodjeljivanja x=x+y  x+=y Npr. x+=3  x=x+3 x=x-y  x-=y Npr. x-=3  x=x-3 x=x*y  x*=y Npr. x*=3  x=x*3 x=x/y  x/=y Npr. x/=3  x=x/3 x=x%y  x%=y Npr. x%=3  x=x%3

1.1. Uvod u C Relacioni operatori OPERATORI ??? > veće < manje >= veće ili jednako <= manje ili jednako == jednako != različito Npr. i = 3<5 i = 3>5 i = 3==5 i = 3!=5 i = 3=5  i  1 (istina)  i  0 (laž)  greška

1.1. Uvod u C Logički operatori OPERATORI ??? && - AND = logičko I || - OR = logičko ILI ! - NOT = logičko NE

1.1. Uvod u C Bitski operatori (operacije nad bitovima) OPERATORI ??? & - bitsko AND | - bitsko OR ~ - bitsko NOT (prvi komplement) ^ - bitsko XOR (ekskluzivno ILI) << - pomjeranje (šiftovanje) ulijevo >> - pomjeranje (šiftovanje) udesno Složeni bit operatori x=x&y  x&=y Npr. x&=3  x=x&3 x=x|y  x|=y Npr. x|=5  x=x|5 x=x<<y  x<<=y Npr. x<<=1  x=x<<1 x=x>>y  x>>=y Npr. x>>=3  x=x>>3

1.1. Uvod u C & BITSKI operatori ??? & - bitsko AND cifra 0000 1001 MEMORIJA & - bitsko AND cifra 0000 1001 Primjer: #include <stdio.h> /* 9 ASCII CODE JE 57 DECIMALNO*/ main() { char c=’9’; short cifra; cifra = c & 0x0F; printf( ”%d\n”, cifra ); } c 0011 1001 c 0x0F 0000 1111 & 0011 1001 9 0000 1001

1.1. Uvod u C | BITSKI operatori ??? | - bitsko OR c 0011 1001 MEMORIJA | - bitsko OR c 0011 1001 Primjer: #include <stdio.h> main() { short cifra=9; char c; c = cifra | 0x30; printf( ”%c\n”, c ); } cifra 0000 1001 cifra 0x30 0011 0000 | 0000 1001 9 0011 1001

<< - shift lijevo 1.1. Uvod u C BITSKI operatori ??? MEMORIJA << - shift lijevo y 0000 0110 Primjer: #include <stdio.h> main() { short x=3,y; y = x<<1; printf( ”%d\n”, y ); } x 0000 0011 x <<1 0000 0011 0000 0110 6

<< - shift lijevo 1.1. Uvod u C BITSKI operatori ??? MEMORIJA << - shift lijevo y 0011 0000 Primjer: #include <stdio.h> main() { short x=3,y; y = x<<4; printf( ”%d\n”, y ); } x 0000 0011 x <<4 0000 0011 0011 0000 48

1.1. Uvod u C BITSKI operatori ??? >>1 >> - shift desno y MEMORIJA >> - shift desno y 0000 0110 Primjer: #include <stdio.h> main() { short x=12,y; y = x>>1; printf( ”%d\n”, y ); } x 0000 1100 x >>1 0000 1100 0000 0110 6

1.1. Uvod u C Uslovni operator (?:) USLOVNI OPERATOR ? Opšti oblik: uslov ? izraz1 : izraz2 ISTINA LAŽ uslov izraz1 izraz2 Npr. y = 5; x = (y>0) ? 100 : 200; ---------- x  100 Npr. y = -2; x = (y>0) ? 100 : 200; ---------- x  200

1.1. Uvod u C MALO VJEŽBE... Primjer: Napisati program koji za proizvoljnu vrijednost poluprečnika kruga računa i ispisuje njegov obim i površinu. POČETAK r o = 2*r*PI p= r*r*PI o p KRAJ Dijagram toka r=3 Obim : 18.8495 Povrsina : 28.2743 Program #include <stdio.h> #define PI 3.14159 main() { float r,o,p; printf(“Unesite poluprecnik kruga\n”); scanf(“%f”,&r); o = 2*r*PI; p = r*r*PI; printf(“Obim kruga je %4.2f”,o); getchar(); printf(“\nPovrsina kruga je %4.2f”,p); }