1 / 187

Primjena računala ak.god. 2013/2014

Primjena računala ak.god. 2013/2014. Pomorski fakultet u Splitu Nastavnici: dr.sc. Anita Gudelj mag.ing. Mirko Čorić. PROGRAMSKI JEZIK C. Primjer C programa. Primjer jednostavnog C programa: #include <stdio.h> void main() { /* moj prvi program u C jeziku*/

hien
Download Presentation

Primjena računala ak.god. 2013/2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Primjena računalaak.god. 2013/2014 Pomorski fakultet u Splitu Nastavnici: dr.sc. Anita Gudelj mag.ing. Mirko Čorić

  2. PROGRAMSKI JEZIKC

  3. Primjer C programa • Primjer jednostavnog C programa:#include <stdio.h>void main() {/* moj prvi program u C jeziku*/ int a,b; a=3; b=4; printf(“Zbroj brojeva %d i %d je %d\n”,a,b,a+b);} • Program je uveden kako bi se prikazali neki od sintaksnih elemenata sa sljedećih slajdova ZADATAK: Testirati program.

  4. Od pisanja do izvršavanja programa • Unos izvornog programa (source code) • ASCII uređivač teksta (editor) • Prevođenje izvornog programa u relokatibilni program • Poziv prevoditelja (compiler) • Otkrivanje pravopisnih pogrešaka (sintax errors) • Ispravci izvornog koda i ponovno prevodenje • Poziv povezivača (link) • Pogreške koje otkriva povezivač • Izvođenje izvršnog programa • Zadavanje potrebnih ulaznih podataka • Provjera programa na osnovi test podataka • Pogreške koje se otkrivaju prilikom izvršenja (run time • errors) • Logičke pogreške

  5. Struktura C programa • C program se sastoji od • imenovanih blokova koji se nazivaju funkcije • u C programu mora postojati glavna (main) funkcija koja predstavlja mjesto gdje počinje izvršenje programa • “Glavni” program = funkcija main()(fiksno ime) • Pravilo pisanja funkcije main: int main() void main() {ili{ Blok naredbi Blok naredbi return 0; } }

  6. Opća struktura C programa • Tijelo funkcije (blok naredbi) se sastoji od naredbi unutar vitičastih zagrada • Osnovni opis bloka: • Blok započinje znakom { , a završava znakom } • Blok obuhvaća (sadrži) deklaracije/definicije, naredbe i neimenovane blokove • Svaka definicija/deklaracija i naredba mora završavati znakom ; • Blok ne završava znakom ; tj. iza znaka } ne piše se ;

  7. Primjer Da bismo mogli koristiti funkcije iz standardne biblioteke zadužene za ulaz i izlaz podataka program započinjemo naredbom KOMENTAR /* moj prvi program u C jeziku*/ #include <stdio.h> /*Ukljucujedatotekuzaglavljastdio.h */ void main {/* Pocetak bloka */ int a,b; a=3; b=4;printf(“Zbroj brojeva %d i %d je %d\n”,a,b,a+b);/*funkcija za ispis na monitor*/ /* kraj bloka*/ } Direktiva predprocesoru Glavna funkcija Tijelo funkcije

  8. KOMENTARI • Sa znakovima /* otvara se prostor za komentar, a sa znakovima */ se zatvara • U C++ -u koristi se, za kraće komentare u istoj programskoj liniji, još i dvostruka kosa crta • c = a + b ; /* c je zbroj od a i b */ • c = a + b ; // c++ je zbroj od a i b

  9. Opća pravila pisanja C programa • C je jezik slobodnog formata • mjesto početka naredbe u retku je proizvoljno • svaka izvršna naredba mora završavati znakom ; • Dopušteno je stavljanje više naredbi u istom retku Pr: int i,n; printf("Unesite n: "); scanf("%d", &n); • C pravi razliku između velikih i malih slova • Ključne riječi se pišu malim slovima. Npr: main printf do

  10. Vježba 2

  11. Opća struktura C programa-ponavljanje-

  12. Osnovni elementi jezika C • Skup znakova • Identifikatori • Ključne riječi • Osnovni tipovi podataka

  13. Skup znakova • Programski jezik C koristi sljedeći skup znakova: • velika i mala slova engleske abecede A-Z i a-z _ • znamenke 0-9 • specijalne znakove: + - * / = % & # ! ? ^ " ’ ~ \ | < > ( ) [ ] { } : ; . , _ (bjelina)

  14. Identifikatori • Identifikatori su imena koja pridružujemo različitimelementima programa • varijablama, poljima i funkcijama. • Pravila za pisanje identifikatora: • Sastoje se od slova i brojeva (znamenki), s tim da prviznak mora biti slovo • Velika i mala slova se razlikuju • Znak (donja crta) smatra se slovom • Duljina identifikatora je proizvoljna

  15. Ključne riječi

  16. VARIJABLE, TIPOVI PODATAKA

  17. VARIJABLE • VARIJABLA je simboličko ime za memorijsku lokaciju u kojoj se podaci mogu pohraniti i naknadno pozivati i kojemu je dodijeljeno ime • Općenito: promjenljiv podatak • Identifikator varijabla (ime varijable)je imenovani dio memorije TIP PODATKAodređuje način korištenja varijable

  18. Varijable • Simbolički se prikazuje pravokutnikom uz koji stoji ime • Smještaj u memoriji računala x y ... ... x y

  19. Pravila ze kreiranje valjanih imena varijabli • Identifikator varijable • Primjeri • salary // valjani identifikator • salary2 // valjani identifikator • 2salary // nevaljani identifikator (započinje znamenkom) • _salary // valjani identifikator • Salary // valjani identifikator, ali se razlikuje od salary • plaća // nevaljani identifikator (u imenu se koristi znak 'ć')

  20. IDENTIFIKATOR: primjeri KellyFamily KvocijentKELLYFamily PostotakKellyFAMILY Ime_i_Prezime OK. and switch cout ..FILE A-1 007 Polje 2 Varaždin *

  21. TABELA OSNOVNIH TIPOVA PODATAKA

  22. TABELA DODATNIH TIPOVA BROJEVA

  23. VARIJABLE... • Varijable koje definira korisnik moraju biti deklarirane prije nego će se koristiti u programu • Osnovni format deklariranja varijabli je tip podatka ime_var1, ime_var2, ... ; • TIP PODATKAodređuje način uporabe varijable • tip podataka jedan od četiri osnovna tipa podataka: integer, character, float ili double • Vrijednost varijabli ovisi o njenom tipu podatka • Primjerice, cjelobrojna (integer)varijabla može poprimiti samo cjelobrojne vrijednosti (pr., 2, 100, -12) DEKLARIRATI VARIJABLU ZNAČI JEDNOZNAČNO ODREDITI NJEZIN TIP int a, b, c;

  24. Deklaracija i inicijalizacija Deklaracija varijable i (najavili za korištenje, odnosno zauzeli prostor u memoriji) Ne znamo što se trenutno nalazi upisano u toj varijabli jer to zavisi od prethodnog stanja u memoriji int i; int i; i=0; Nakon deklaracije negdje u programu moramo postaviti neku početnu vrijednost. Ovo se naziva inicijalizacija. Programeri često rade deklaraciju i inicijalizaciju zajedno Ovo se naziva definicijom varijable. int i=0; int c, i=7,b=0; Deklaracije i definicije se mogu kombinirati.

  25. DEKLARACIJA I PRIDRUŽIVANJE 1 ISTO k 5 6 • Operator pridruživanja (=) • Varijabli pridružuje vrijednost • Primjer: int sum; sum = 500 + 15; • Program deklarira varijablu sum kao tip INTEGER (int) • U C-u varijabli sum se pridružuje vrijednost 500+15koristeći operator pridruživanja int sum = 500 + 15; Što znači naredba ? k=k+1;

  26. Primjeri • Primjer deklaracije integer varijable cijeli_broj : • int cijeli_broj; • cijeli_broj = 123; • Primjer deklaracije float varijable realni_broj : • floatrealni_broj; • realni_broj= 123.4567; • Primjer deklariranja double varijable tocniji_realni_br : • doubletocniji_realni_br; • tocniji_realni_br=1234567.12345678E-8; • Primjer deklariranja znakovne varijable slovo : • charslovo; • slovo = 'A';

  27. Domaći rad 1. Koje od navedenih deklaracija varijabli su valjane? int a,b,c; int n = -100; long m = 2, p = 4; int 2k; double x = 2 * m; float y = y * 2; double d = 0.67; float _f = 0.52; char c = '$'; 2. Koji od navedenih identifikatora su valjani? identifier seven_11_ gross-income gross$income 2by2 average_weight_of_a_large_pizza variable prosječna_vrijednost 3. Deklarirajte varijable za sljedeće entitete: Broj godina osobe. Plaća zaposlenika. Broj riječi u riječniku. Slovo abecede.

  28. Funkcija printf

  29. Što će ispisati sljedeći programi?Kako će ispisati? #include <stdio.h> voidmain() {printf("Naredbe se završavaju točka-zarezom."); printf("Izvršavanje programa počinje prvom naredbom funkcije main().\n");   }

  30. Funkcija printf • Funkcija printf se može javiti u dva oblika. Prvi je jednostavniji: printf(“neki tekst u navodnicima sa specijalnim znakovima \n”); • Drugi oblik je znatno značajniji: • printf(“%d%d%e tekst %c\n”,in,60,fl,ch); Poruka bi bila odštampana na ekranu u datom obliku. Znak za novi red koji je čest sastavni elemenat naredbe printf. Funkcija printf u ovom obliku opet štampa string koji joj je prvi argument‚ ali ono što je iza % mijenja se redom sa argumentima koji slijede. Tako se umjesto %d štampa varijabla in i to kao cjelobrojna (%d znači štampaj kao cjelobrojnu varijablu).

  31. Funkcijaprintf • Poziv funkcije printf izgleda: printf ("opis_formata",varijabla,varijabla,...);  • Primjer printf("Rezultat je %d", 5); • Opis_formata može sadržavat tekst koji će se ispisati • Ukoliko prikazujete vrijednost jedne ili više varijabli, potrebno je na odgovarajuće mjesto upisati opis formata pretvorbe za svaku varijablu • Sastoji se od oznake postotka (%) iza kojeg slijedi slovo slovo opisuje tip podatka koji se upotrebljava • Očekuje se da broj argumenta nakon stringa u naredbi printf bude jednak broju “%” unutar stringa

  32. Funkcija printf • Jedan ili više opisa formata je smješteno između dvostrukih navodnika • Formati ispisa imaju sljedeće značenje (navodimo samo neke važnije): • %dcijeli brojevi • %f realni brojevi • %c znak • %bd cijeli broj sa b znamenki • %a.bf realni broj sa a pozicija i b decimalnih mjesta, podrazumjeva se a>b • %e eksponencijalni zapis • %x heksadecimalni zapis • %o oktalni zapis...

  33. Specijalni znakovi: \n prelazak u novi red        \t horizontalni tabulator \v vertikalni tabulator \b pomak za mjesto unazad (backspace) \r  postavljanje kursora na početak linije        \f      nova stranica \a zvučni signal \\ kosa crta ulijevo \” dvostruki navodnik Modifikatori za formatiranje ispisa

  34. Slijed naredbi Sljedeći program ispisuje zbroj brojeva 500 i 15. #include <stdio.h> void main() { int zbroj; zbroj = 500 + 15; printf("Zbroj 500 i 15 iznosi %d\n", zbroj); }

  35. Sljedeći program ispisuje dvije cjelobrojne vrijednosti razdvojene horizontalnim tabulatorom :\t #include <stdio.h> void main() { int broj1, broj2; broj1 = 10; broj2 = 15; printf("%d\t%d\n", broj1,broj2); }

  36. Primjer programa koji pokazuje uporabu svih tipova podataka i formatiranje ispisa realnih brojeva: #include <stdio.h> main() { int broj=10; float novac=342.75; char slovo='A'; double pi=3.14159265359; printf("Vrijednostbrojaje %d.\n",broj); printf("Kolicina novaca je %.2f Kn.\n", novac ); printf("Ovoje slovo %c.\n", slovo ); printf("Matematickakonstanta pi najedanaest decimalaiznosi %.11f.\n", pi ); }

  37. KONVERZIJA TIPA PODATKA #include <stdio.h> void main() {int  broj1 = 7, broj2 = 2; float kvocijent = 0; kvocijent = broj1 / broj2; printf("%d dijeljeno s %d je %f\n",broj1,broj2,kvocijent ); } Ispis programa: 7 dijeljeno s 2 je 3.000000

  38. ZADATAK • Zadano je Z=‘#’, X=-14.57889 i Y= 99. • U programu treba ispisati vrijednosti X i Y, na slijedeći način: • X će biti ispisan na 2 decimalna mjesta, zatim se ispisuje tabulator (\t), te znak Z, jedan razmak pa ASCII vrijednost znaka Z; nakon toga ide novi red, a zatim ispis broja Y dekatski, oktalno i heksadecimalno.

  39. #include <stdio.h> voidmain() {int Y=99; float X=-14.57889; char Z=’#’; printf(“Ispis rezultata: \n”);printf(“ %.2f \t %c %d \n %d %o %x \n”, X,Z,Z,Y,Y,Y); }

  40. Brzi test 1 • Koja su od ovih imena pravilni nazivi varijabli _a37 4aB a4b a 37 int int37 a&32 Navedite tipove podataka i ključne riječi Navedite formate ispisa Navesti primjer ispisa cjelobrojne varijable a.

  41. UNOS PODATAKA S TIPKOVNICEu C • Funkcija scanf • služi učitavanju podataka sa standardnog ulaza za vrijeme izvođenja programa (na konzoli) • Opća forma: scanf(“kontrolni_string”,&arg_1,&arg_2, ...,&arg_n); • gdje je kontrolni string konstantni znakovni niz koji sadrži informacije o vrijednostima koje se učitavaju u argumente arg 1,. . . ,arg n (%d, %f, %c)

  42. UNOS PODATAKA S TIPKOVNICEu C #include <stdio.h> void main()     // program s primjerom unosa s tipkovnice   {   int  broj;      printf("Unesite broj:"); scanf("%d", &broj);     printf("Broj koji ste unijeli je %d.\n", broj); }

  43. Konstante • Konstante koje započinju s0 (nula) interpretiraju se kaooktalne • Konstante koje započinju s0xinterpretiraju se kaoheksadecimalne • Simboličke konstante

  44. Simboličke konstante • umjestofloat Opseg = 2. * r * 3.14159265359; • float Povrsina = r * r * 3.14159265359; • double Oplosje = 4. * r * r * 3.14159265359; • može se pisaticonst double Pi = 3.14159265359; • ili • #define Pi = 3.14159265359; • i onda • float Opseg = 2. * r * Pi; • float Povrsina = r * r * Pi; • double Oplosje = 4. * r * r * Pi;

  45. Napiši program kojim ćeš izračunati opseg i površinu kruga za proizvoljno zadani radijus. • ALGORITAM: • Definiranje konstante PI • Definiranje varijable r • Računanje opsega i površine • Ispis dobivenih rezultata

  46. #include<stdio.h> void main() { const float PI=3.14; int r=10; float P=r*r*PI; float O=2*r*PI; printf("Opseg je %f\n",O); printf("Povrsina je %f\n",P); }

  47. Rješenje primjera u C-u /* Aritmeticka Sredina*/ #include <stdio.h> void main () { int i, j, k; float sredina; printf(“Unesi tri broja\n”); scanf("%d,%d,%d", &i,&j,&k); sredina = (i + j + k) / 3.; printf ("Aritmeticka sredina brojeva %d, %d i" " %d iznosi %f", i, j, k, sredina); printf(“\ndek %d,okt %o, heksa %x\n”,i,i,i); } Način prekida znakovnog niza i nastavak u novom retku

  48. Za domaći: • Korištenjem  scanf učitajte dekadsku vrijednost s tipkovnice u integer varijablu broj_ucenika, a potom je ispišite pomoću printf u dekadaskom, oktalnom i heksadekadskom obliku. • Korištenjem  scanf učitajte vrijednost float varijable cijena_tel_imp , a potom je ispišite pomoću printf na dva decimalna mjesta. • Korištenjem  scanf učitajte jedan znak s tipkovnice u  varijablu operator, a potom ga ispišite. Preskočite razmake , tabulatore i oznake novog reda, prije upisa.

  49. Dodatak: • Funkcija scanf(),printf(),”Cast” operatori

  50. Funkcija scanf() - Omogućava formatirani unos podataka. scanf(“kontrolni string”,&arg1,&arg2,…); Kontrolni string određuje format unosa podataka Oznake formata (npr:%d,%f,%c itd) određuju koji će se tip podatka unositi s tastature, te taj podatak pridružuju argumentima. Pr. int a; scanf(“%d”,&a); Dakle, unosimo cijeli broj i spremamo ga u varijablu a.

More Related