Vaja 6

Uvod v C/C++

        * za uvod

        * splošna pravila

        * vaja 1

 

 

  

/************************************************************

*

*   Za uvod :

*

*     na volja imate 2 prevajalnika:

*                       Borland C 3.1 z okoljem

*                       CygWin b20 ali CygWin 1.1.8

*               oba prevalnika lahko v skladu z objavljenimi pogoji

*               uporabljate brezplačno. Novejšo verzijo Borlandovega

*               prevajalnika lahko dobite na 'www.borlad.com', CygWin

*               na 'www.cygnus.com'. Brezplačna uporaba velja le za

*               prevajalnik, ne pa tudi za okolje (Borland C 3.1).

*               Če boste uporabljali CygWin, vam priporočam uporabo

*               okolja Octopod for C++ 3.1 za CygWin 1.1.8 oz.

*               Octopod for C++ 3.0x za CygWin b.20 oz b.19

*               (www.octopod.net), kjer so naznačene tudi preostale

*               podrobnosti.

*

*

*   S P L O Š N A   P R A V I L A

*      

*       + Vaje se izvajajo na šolski opremi, 3 šolske ure tedensko.

*       + V laboratoriju se v vsakem primeru izvaja tekoča vaja, katere

*         besedilo se nahaja vedno na istem, znanem mestu.

*       + Naloge tekoče vaje, ki jih v laboratoriju ne uspete dokončati,

*         dokončate do naslednjih vaj.

*

*       ! - Po dveh letih uvajanja in treninga progrramiranja si jemljem

*           pravico ocenjevanja učinkovitosti na tekočih vajah

*

*       + Poročila o izvedenih vajah, primerno urejena in opremljena s

*         komentarji, v vsakem primeru in od vsakega dijaka, pričakujem

*         pri naslednjem obisku vaj.

*       + Preverjanje poročil in zagovor vaj bosta potekala časovno

*         naključno, prav tako je možno večkratno preverjanje istega

*         dijaka in istega poročila.

*       + Izostanek od vaj ni opravičilo za neopravljeno vajo.

*

*       ! - Poročilo posamezne ali večih vaj se lahkko zavrne v primeru,

*           da dijak vaje očitno ni opravil sam in v primeru nepopolnega

*           ali neustreznega poročila.

*/

 

 

 

 

 

/****************************************

*

*   C/C++ vaja 1

*

*

*               - uporaba GCC/G++ prevajalnika in povezovalnika

*               - struktura programa

*               - deklaracija z rezervacijo, deklaracija z rezervacijo

*                 in inicializacijo

*               - uporaba osnovnih aritmetičnih operatorjev

*

*/

 

Nekaj kratkih navodil uporabnikov GCC/G++ :

 

        - prevajanje (+morebitno zbiranje) in povezovanje

 

                gcc ime_datoteke.c      -o ime_izvrsne_datoteke

                g++ ime_datoteke.cpp    -o ime_izvrsne_datoteke

 

                ( rezultat operacije je izvršna /binarna/ koda )

 

        - samo prevajanje, brez eventuelnega asembliranja(zbiranja) in povezovanja

 

                gcc -S ime_datoteke.c -o ime_obj_datoteke.asm

                g++

 

                ( oglejte si vsebino datoteke .asm !! )

 

        - samo prevajanje in zbiranje brez povezovanja

 

                gcc -c ime_datoteke.c -o ime_obj_datoteke.o

                g++

 

                ( oglejte si vsebino datoteke .o !!

                  rezultat je tako imenovana vmesna oz. obj. koda)

 

        - le izvedba pedprocesiranja, brez prevajanja, zbiranja ali povezovanja

 

                gcc -E ime_datoteke.c ime_dat.ppc

                g++

 

                ( oglejte si vsebino .ppc datoteke )

                op.: predprocesiranje vključi v C/C++ program vse, kar zahtevamo

                z direktivo predprocesorju (#).

 

 

Nekaj kratkih navodil porabnikom okolja UNIX/BASH :

 

        izpis vsebine imenika           : ls            (kratek izpis)

                                          ls -l         (dolg izpis)

        brisanje datoteke x.txt         : rm x.txt

        izpis datoteke x.txt na zaslon  : cat x.txt

        kreiranje imenika  'bla'        : mkdir bla

        brisanje imenika 'bla'          : rmdir bla

        preimenovanje a.txt v b.txt     : mv a.txt b.txt

        premikanje datotek (move)       : mv kaj kam

        prepisovanje datotek (copy)     : cp dat1 dat2

 

   posplošujoči znaki : *,?     - podobna funkcija kot v DOSu

                                        (ls *.cpp)

                        []      - znak na mestu, se nadomesti s poljubnim

                                  znakom iz danega intervala

                                        (ls mojprog[12345].c izpiše info o npr.:

                                                mojprog1.c

                                                mojprog2.c

                                                mojprog3.c

                                                mojprog4.c in

                                                mojprog5.c

 

 

 

 

 

Naloga

 

a) Oglejte si naslednji program in puskusite ugotoviti, kaj naredi (napišite

   sled izvajanja programa).

 

#include

int main(){

  int x = 5;

  int y = 7;

 

  cout "\n";

  cout << x + y << " " << x * y;

  cout "\n";

 return 0;

}

 

b) Prepišite program, ga prevedite in preverite, če sta sled in izpis iz dela a)

   te naloge pravilna.

 

c) Napišite programu iz dela a) naloge, s tem da boste uporabili sintakso

   programskega jezika C.

 

 ------------------------------------------------------------------------------

 --- Za spodnja dva dela naloge vsi obvezno uporabite GNUjev prevajalnik !! ---

 ---                                                                        ---

 ---            g++ -opcija ime_datoteke.cpp -o ime_datoteke.nekaj          ---

 ---                                                                        ---

 ------------------------------------------------------------------------------

 

d) Kakšna je vsebina rezultativne datoteke, če program iz dela a) te naloge

   prevedete z opcijo -E ? Primerjate vsebino te datoteke z vsebino datoteke

   'iostream.h' in razložite, kaj dejansko naredi C/C++ predprocesor.

 

e) Prevedite program iz dela a) naloge ločeno z opcijama -S in -c. Oglejte si in

   razpoznajte vsebino datotek in jo priložite poročilu vaje.