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.