Struktura programa

 

                   STRUKTURA   PROGRAMA  Dev C++

   Svako ko se prvi put susreće sa programiranjem, napiše program kojim pozdravlja svijet, pa ćemo se i mi držati tradicije. Naravno da bi nas svijet razumio,pozdravićemo ga na engleskom jeziku.

 

                             // moj prvi Dev C++ program

                             #include <iostream>

                             using namespace std;

                             int main ()

                             {

                                   cout <<"Hello World!";

                                    return 0;

                                       }

 

   Ovo je izvorni kod (program napisan u programskom jeziku),a dole je prikazan rezultat poslije kampajliranja i izvršenja.

                                    Izgled ekrana:

                                    Hello World!

 

    Ovdje je važno da se program u editoru ispiše doslovno ovako, jer jedna zaboravljena zagrada ili tačkazarez je dovoljno da kompajler neće moći prevesti izvorni kod u objektni. Iako je ovo jedan od najjednostavnijih programa koji se mogu napisati u C++, on svejedno sadrži osnovne dijelove koji svaki C++ program ima. Idemo vidjeti šta svaka linija predstavlja...

 

                                // moj prvi C++ program

 

     Ovo je komentar. Svaka linija koja počinje sa // smatra se komentarom i nimalo ne utiče na izvršavanje programa. Programeri pišu komentare da bi drugim programerima bilo jasnije šta su radili unutar programa, ili koliko god da to zvučalo čudno, da bi njima samima bilo jasnije šta su radili. Pravo je čudo koliko su ljudi zaboravni, pa već nakon nekoliko mjeseci kada pogledaju vlastiti program, nemaju pojma šta su radili! U našem slučaju komentar samo opisuje program.

 

                                #include<iostream>

 

Linije koje počinju sa # nisu uobičajene linije programa, već govore kompajleru da prije kompajliranja, uključi i neku dodatnu datoteku, ovdje je u pitanju standardna iostream datoteka.

 

                               using namespace std;

 

Svi elementi standardne C++ biblioteke su deklarirani unutar nečeg što se zove namespace(prostor sa imenima ili imenovani prostor). Ovaj se zove std, što je skraćeno od standardni.

 

                              int main ()

 

    Ova linija je početak definicije funkcije main. Funkcija main je tačka gdje svi C++ programi započinju izvršavanje. To znači da svaki C++ mora imati funkciju main. Iza riječi main, stoje zagrade (), što u C++ znači da se radi o definiciji funkcije. Nakon njih slijedi tijelo funkcije koje je zatvoreno u vitičaste zagrade { }. One ovdje označavaju početak i kraj programa.

 

                              cout <<"Hello World!";

 

 

    Ova linija je C++ izjava ili iskaz. Izjava je prost ili složen izraz koji može stvarno proizvesti neki efekat.Ovo je jedina izjava u našem programu koja proizvodi neki vidljiv efekat, preciznije ona na ekranu ispisuje niz znakova Hello World!. Naime cout je deklariran u iostream standardnoj datoteci unutar std prostora sa imenima, i on je glavni krivac zašto smo morali koristiti prve dvije izjave. Primjetimo da izjava završava sa tačkazarezom(;),što je graničnik koji kaže da upravo tu završava izjava. Svaki iskaz završava sa tačkazarezom.Jedna od najčešćih grešaka pri  pisanju programa je zaboravljanje tačkazareza na kraju izjave. Tijelo funkcije main se sastoji se od izjava ili iskaza.

 

                                     return 0;

 

    Ova izjava prisiljava funkciju main da završi. Riječ return je popraćena sa povratnom vrijednošću, a u našem slučaju ona je 0, što se obično tumači na način da je program završio izvršavanje bez grešaka. Primjetimo kako je program ispisan na različitim linijama, a s ciljem da bi bio lakši za čitanje. U C++ nema strogih pravila koji kažu kako svaka izjava mora biti na zasebnoj liniji. Tako smo umjesto:

 

                                       int main ()

                                       {

                                              cout <<"Hello World!";

                                               return 0;

                                                }

 

                                       mogli napisati:

 

                             int main () { cout <<"Hello World!";return 0 ;}


 

   Što se kompajlera tiče i drugi način je ispravan, jer mu tačkazarezi služe za oznake kraja izjava, a ne nova linija. Izjave se stavljaju u nove redove radi preglednosti, tj. da bi se ljudi lakše snalazili čitajući izvorni kod. Pored toga obe izjave su malo uvučene unutra u odnosu na početak i kraj funkcije. To je također zbog preglednosti, a ova tehnika uvlačenja dijelova programa koji čine jednu logičku cjelinu naziva se indentacija. Idemo dodati nekoliko izjava prvom programu:

 

                                       // moj drugi C++ program

                                       #include<iostream>

                                       using namespace std;

                                       int main ()

                                       {

                                               cout <<"Hello World!  ";

                                               cout<<"I am a C++ program"!;

                                               return 0;

                                                }

 

                            Izgled ekrana:

                  Hello World!   I am a C++ program!

 

Vidimo da su dvije rečenice na istoj liniji, i spojene jedna uz drugu. Kako ih odvojiti blanko znakom?Ukoliko želimo pisati komentare koji se prostiru na više linija, ili komentirati blok izjava, onda je puno jednostavnije sve staviti između znakova /* i */. Evo kako to izgleda u praksi:

 

                                    /* moj treci C++ program

                                                sa vise komentara*/

                                           #include <iostream>

                                           using namespace std;

                                           int main ()  {

                                                  cout <<"Hello World!  ";

                                                  cout <<"I am a C++ program!"<<endl;

                                                  cout<<"Do you like me?";

                                                  system("Pause");

                                                  return 0;

                                                      }

 

                                        Izgled ekrana:

                            Hello World! I'm a C++ program!

                            Do you like me?

  

   Ovdje je pored komentara dodana izjava system("Pause"); čiji je jedini zadatak da zamrzne konzolu na ekranu, kako bi vidjeli rečenice koje gore navedeni program ispisuje. Također se koristi i endl (skraćeno od end line) koji kada se da objektu cout, prouzrokuje pomjeranje kursora naniže. Upravo zbog pomjeranja kursora naniže rečenica Do you like me? je ispisana na narednoj liniji.

   Vidimo da se program sastoji od riječi, od kojih su neke unaprijed definirane i kompajler tačno zna šta one signaliziraju. Takve riječi se nazivaju ključne riječi i njihovo značenje se ne može mijenjati. Riječ int je ovdje ključna riječ i njeno značenje se ne može mijenjati. Postoje i predefinirane riječi, čije značenje je također unaprijed definirano ali se može promijeniti. Takva riječ je cout, a vidjeli smo da nju koristimo da nešto ispišemo na ekran. Najbolje je i jedne i druge tretirati kao ključne riječi tj. ne mijenjati značenje predefiniranih riječi jer to samo vodi u zbrku. Treća vrsta riječi su imena koja mi izmišljamo u programu i ona se nazivaju korisnički definirane riječi. Sve tri vrste riječi se zajedno nazivaju identifikatori. Ono što je važno zapamtiti kod identifikatora je to da oni uvijek moraju početi sa slovom engleskog alfabeta ili donjom crtom, a ostali znakovi moraju biti slova engleskog alfabeta, cifre ili donja crta.

    Programski jezik  C++ razlikuje mala i velika slova, pa treba voditi računa da su identifikatori  info i Info dva različita identifikatora.

 

                              Koje od dole navedenih riječi su identifikatori?

 

                                                                                  Objašnjenje:

                     pita sa sirom                      nije jer ima blanko znakove u sebi

                     10_cevapa                          nije jer počinje sa cifrom 1

                     ćevap                                 nije jer koristi slovo ć

                     zeljanica                             jeste

                     gladni?                               nije jer koristi znak ?

 

Napišite program koji ispisuje vaše ime na dolje navedeni način!

       I

        M

          E

 

                                    #include<iostream>

                                    using namespace std;

                                    int main(){

                                          cout<<"D"<<"\n E"<<"\n  L"<<"\n   I"<<"\n    L"<<"\n     A";

                                        return(0)

                                             }

 

Napišite donji program tako da bude lakši za čitanje ljudima (ispišite ga na više linija i koristite indentaciju)!

 

                                                 #include <iostream>

                                                  using namespace std;                          

                                                  int main (){int x;cout<<"bravo";return 0;}