51
Programiranje s C++ C++ in Visual C++ What is the difference between C++ and Visual C++? C++ is the language itself, Visual C++ is a compiler that tries to implement the language. http://www.parashift.com/c++-faq- lite/compiler- dependencies.html#faq-38.5

C++ in Visual C++

  • Upload
    morag

  • View
    151

  • Download
    0

Embed Size (px)

DESCRIPTION

C++ in Visual C++. What is the difference between C++ and Visual C++? C++ is the language itself, Visual C++ is a compiler that tries to implement the language. http://www.parashift.com/c++-faq-lite/compiler-dependencies.html#faq-38.5. C++ in Visual C++. - PowerPoint PPT Presentation

Citation preview

Page 1: C++ in Visual C++

Programiranje s C++

C++ in Visual C++

What is the difference between C++ and Visual C++? C++ is the language itself, Visual C++ is a compiler that tries to implement the language.

http://www.parashift.com/c++-faq-lite/compiler-dependencies.html#faq-38.5

Page 2: C++ in Visual C++

Programiranje s C++

C++ in Visual C++What is the difference between C++ and Visual C++? C++ is a programming language. Visual C++ is Microsoft's implementation of it. When people talk about learning Visual C++, it usually has more to do with learning how to use the programming environment, and how to use the Microsoft Foundation Classes (MFCs) for Windows rather than any language issues. Visual C++ can and will compile straight C and C++. (http://www.faqs.org/faqs/C-faq/learn/)

Page 3: C++ in Visual C++

Programiranje s C++

C++ in Visual C++How do I BEGIN to write C or C++ under Visual or Borland C++? This question is, strictly speaking, off-topic, but is answered here since it's one that seems to plague many beginners. To start with, you need to make sure that you are not writing a Windows application. Try creating a new project or application to target MS-DOS, QuickWin or Win32 Console depending on your compiler version. You can then use the Standard C and C++ libraries to write strictly conforming programs. It's best to learn to write standard-conforming programs first before branching off into writing Windows programs. If you find that you are having a lot of trouble setting up your compiler, a good place to ask questions is a newsgroup devoted to your compiler. (http://www.faqs.org/faqs/C-faq/learn/)

Page 4: C++ in Visual C++

Programiranje s C++

Funkcije

Neja Zupan

Page 5: C++ in Visual C++

Programiranje s C++

Navodila za avto

Page 6: C++ in Visual C++

Programiranje s C++

Top-Down pristop

ponavljaj

vnesi ure dela

vnesi urno postavko

izračunaj dnevni zaslužek

vprašanje “novi podatki?”

ponavljaj do odgovora “ne”

Page 7: C++ in Visual C++

Programiranje s C++

Kdaj uporabiti funkcijo?

ponavljaj

vnesi ure dela

vnesi urno postavko

pokliči funkcijo izrac_zas(ura,cena,placa)

vprašanje “novi podatki?”

ponavljaj do odgovora “ne”

Page 8: C++ in Visual C++

Programiranje s C++

Prednosti

• top-down pristop (večji problem razdelimo na več manjših)

• možnosti ponovne uporabe funkcij v drugih programih (library)

• timsko delo, delitev nalog glede na področje znanja

FUNKCIJA

vhod 1

vhod 2

vhod 3

izhod 1

izhod 2

izhod 3

Page 9: C++ in Visual C++

Programiranje s C++

Prednosti

• program preglednejši in razumjlivejši

• ni ponavljanja enakega zaporedja stavkov

• lažje in kvalitetnejše testiranje• funkcije lahko izvršujemo poljubno

mnogokrat

FUNKCIJA

vhod 1

vhod 2

vhod 3

izhod 1

izhod 2

izhod 3

Page 10: C++ in Visual C++

Programiranje s C++

Naloga

• Tek na smučeh: vsak tekač štarta posebej.• Za vsakega tekača posebej je izmerjen čas

začetka teka in čas v cilju v urah, minutah in sekundah.

• Število tekačev je znano in znana je dolžina proge v kilometrih.

Napišite psevdo kodo tako, da se za vsakega tekača s štartno številko izpiše njegovo ime, čas štarta in čas v cilju, porabljen čas za tek v minutah in hitrost teka. Nakažite, katere korake lahko povežemo v funkcijo.

Page 11: C++ in Visual C++

Programiranje s C++

Psevdokoda

Ponavljaj tolikokrat,kot je tekačev

izpiši startno številko, ime

izpiši čas starta, čas v cilju

kliči funkcijo za porabljen čas za tek

kliči funkcijo za hitrost teka

izpiši čas teka in hitrost

Konec

Page 12: C++ in Visual C++

Programiranje s C++

Funkcija

• V algebri funkcija pove odnos med vrednostmi: neodvisno in odvisno spremenljivko

• f(x) = 2x + 5, pomeni f(1) = 7, f(2) = 9, and f(3) = 11

• 1, 2, in 3 so argumenti

• 7, 9, in 11 so vrednosti funkcije

Page 13: C++ in Visual C++

Programiranje s C++

Vrste funkcij

• funkcija main()• preddefinirane funkcije (knjižnice) – funkcije brez

podatkovnega tipa• funkcije, ki jih napiše programer (FP)

– vrne vrednost– ne vrne ničesar

tip ime (argumenti) { stavki;}

TIP_KI_GA_FUNKCIJA_VRAČA IME_FUNKCIJE (TIP_PARAMETRA1 IME_PARAMETRA1, TIP PARAMETRA2 IME_PARAMETRA2, TIP_PARAMETRA_N IME_PARAMETRA_N){// PROGRAMSKA KODA (TELO)}

Page 14: C++ in Visual C++

Programiranje s C++

FUNKCIJE

DEFINIRA PROGRAMER

PRED-DEFINIRANE

MAIN

NE VRNE VREDNOSTI

VRNE VREDNOST

Page 15: C++ in Visual C++

Programiranje s C++

Preddefinirane funkcije

• Preddefinirane funkcije so organizirane v posebnih knjižnicah

• Preddefinirane funkcije se nahajajo v glavi programa

Page 16: C++ in Visual C++

Programiranje s C++

Standard C++ Library <algorithm><bitset><cassert><cctype><cerrno><cfloat><ciso646><climits><clocale><cmath><complex><csetjmp>

<hash_set><iomanip><ios><iosfwd><iostream><iso646.h><istream><iterator><limits><list><locale><map><memory>

<csignal><cstdarg><cstddef><cstdio><cstdlib><cstring><ctime><cwchar><cwctype><deque><exception><fstream><functional><hash_map>

<new><numeric><ostream><queue><set><sstream><stack><stdexcept><streambuf><string><strstream><utility><valarray><vector>

http://msdn2.microsoft.com/en-us/library/ct1as7hw(VS.80).aspx

Page 17: C++ in Visual C++

Programiranje s C++

math.h

• Funkcija kvadratni koren sqrt(x) – izračuna kvadratni koren pozitivnega števila x >= 0.0 – sqrt(2.25) je 1.5 – ima en parameter in je tipa double

• Funkcija floor(x) – vrne najvišje celo število, ki ni večje od x– floor(48.79) je 48.0 – ima en parameter in je tipa double

Page 18: C++ in Visual C++

Programiranje s C++

math.h

• Funkcija pow(x,y)– izračuna potenco števila x; potenca je y– pow(2,3) = 8.0– ima dva parametra (x in y) in je tipa double

Page 19: C++ in Visual C++

Programiranje s C++

cmath.h• acos(x) • asin(x)• atan(x) • cos(x) • sin(x)• tan(x)• exp(x) • log(x)• sqrt(x)• fabs(x) • floor(x)• ceil(x)

Page 20: C++ in Visual C++

Programiranje s C++

FUNKCIJE

DEFINIRA PROGRAMER

PRED-DEFINIRANE

MAIN

NE VRNE VREDNOSTI

VRNE VREDNOST

Page 21: C++ in Visual C++

Programiranje s C++

FP• FP: funkcije, ki jih definira programer• Void funkcija – nima podatkovnega tipa• Funkcije, ki vrnejo vrednost – so določenega

podatkovnega tipa– vključimo jih z navedbo #include, če so shranjene v

drugi datoteki– imajo ime– imajo točno določeno število parametrov (lahko tudi 0)– vsi parametri so določenega tipa– funkcija je določenega tipa

Page 22: C++ in Visual C++

Programiranje s C++

FP-vrne vrednost

• Vrednost, ki jo funkcija vrne: – shranimo za nadaljne izračunavanje– uporabimo v nadaljnjih izračunih (Vrednost

funkcije lahko priredimo v stavku)– natisnemo

• Deklaracija funkcije je zelo pomembna

functionType functionName(formal parameter list)

{

statements;

}

Page 23: C++ in Visual C++

Programiranje s C++

FP-vrne vrednost

• Sintaksa parametrov:– podatkovniTip1 ime1, podatkovniTip2 ime2

• Sintaksa klica funkcije:– ime funkcije(lista parametrov)

• Sintaksa parametrov v klicu funkcije:– spremenljivka ali izraz

Page 24: C++ in Visual C++

Programiranje s C++

FP-vrne vrednostTipFunkcije ImeFunkcije (lista parametrov) { lokalne definicije; implementacija funkcije; }

float razdalja(float x, float y)// vrne razdaljo med točko T(x,y) in koordinatnim izhodiščem

{

float raz; //lokalna spremenljivka

raz = sqrt(x * x + y * y);

return raz;

}

Page 25: C++ in Visual C++

Programiranje s C++

FP

// function example

#include <iostream>

int odstevanje (int a, int b)

{

int r;

r=a-b;

return (r);

}

int main ()

{

int x=5, y=3, z;

z=5;

z = odstevanje (7,2);

cout << “Prvi rezultat je " << z << '\n';

cout << “Drugi rezultat je " << odstevanje(7,2) << '\n';

cout << “Tretji rezultat je " << odstevanje(x,y) << '\n';

z= 4 + odstevanje (x,y);

cout << “Cetrti rezultat je " << z << '\n';

return 0;

}

Page 26: C++ in Visual C++

Programiranje s C++

Analiza programa

• z = odstevanje (7, 2);

• int odstevanje (int a, int b)

5

Page 27: C++ in Visual C++

Programiranje s C++

FP

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

// deklaracija funkcije

float razdalja(float,float);

void main()

{

float x,y,raz;

cout << “Testiranje razdalje tocke(x,y)" << endl;

cout << “Vnesite vrednost tock x in y: ";

cin >> x >> y;

raz = razdalja(x,y);

cout << “Razdalja tocke (" << x << ',' << y

<< ") od izhodisca " << raz << endl;

} // konec main

// definicija funkcije

float razdalja(float x, float y)

{

float raz;

raz = sqrt(x * x + y * y);

return raz;

}

Page 28: C++ in Visual C++

Programiranje s C++

Analiza programa

• raz = razdalja (x, y);

• float razdalja(float x, float y)

Page 29: C++ in Visual C++

Programiranje s C++

FP

/*Izris trikotnika neke visine*/

#include <iostream.h>

void NarisiTrikotnik(int visina) //visina je vhodni argument

{ //funkcija izriše trikotnik velikosti visina

for (int i=1; i<=visina; i++)

{

for (int j=0; j<i; j++) cout << "*";

cout << endl;

}

}

int main()

{

int h; //deklaracija visine trikotnika

cout << "Vpisi visino trikotnika:";

cin >> h;

//Klic funkcije z argumentom

NarisiTrikotnik(h);

return 0;

}

Page 30: C++ in Visual C++

Programiranje s C++

Page 31: C++ in Visual C++

Programiranje s C++

#include

Deklaracija spremenljivkeDefinicija funkcij

stavki;

}

tip main{

#include

Deklaracija spremenljivkDeklaracija funkcij

stavki;

tip main{

}

Definicija funkcij

Page 32: C++ in Visual C++

Programiranje s C++

Naloga

• S pomočjo uporabe funkcije zapišite program za izračun seštevka dveh realnih števil

• rezultat = a+b;

Page 33: C++ in Visual C++

Programiranje s C++

FP

// seštevanje

#include <iostream>

float addition (float a, float b)

{

float r;

r=a+b;

return (r);

}

void main ()

{

float z;

z = addition (5,3);

cout << “Rezultat je " << z;

}

RE

ŠIT

EV

Page 34: C++ in Visual C++

Programiranje s C++

Naloga

• S pomočjo uporabe funkcije zapišite program za izračun fakultete naravnega števila n, ki ga vnese uporabnik

• V programu preverite ali je uporabnik vnesel naravno število

• rezultat = n!

Page 35: C++ in Visual C++

Programiranje s C++

FP

//Funkcija za izračun fakultete števila

#include <iosteram.h>

int Fakulteta(int stevilo) //stevilo je argument

{

int f=1;

for (int k=2; k<=stevilo; k++)

f *= k;

return f; //tu se funkcija konča in vrne vrednost

}

int main()

{

int a; //spremenljivka za celo stevilo

cout << "Vpisi naravno stevilo:"; //navodilo

cin >> a;

if (a>0) //sledi klic funkcije z dejanjskim argumentom

cout << a "! = " << Fakulteta(a); //izpise se vrnjena vrednost

return 0;

}

RE

ŠIT

EV

Page 36: C++ in Visual C++

Programiranje s C++

Prenos vrednosti po referenciraz = razdalja (a, b);

float razdalja (float x, float y)

void podvoji (int & a, int & b, int & c);

podvoji (x, y, z)

x yz

Page 37: C++ in Visual C++

Programiranje s C++

FP

// vrne vec vrednosti

#include <iostream>

void prevnext (int x, int& prev, int& next)

{

prev = x-1;

next = x+1;

}

int main ()

{

int x=100, y, z;

prevnext (x, y, z);

cout << “prejšnji=" << y << ", naslednji=" << z;

return 0;

}

Page 38: C++ in Visual C++

Programiranje s C++

Privzete vrednosti argumentov// Privzete vrednosti argumentov v funkcijah#include <iostream>

int deli (int a, int b=2){ int r; r=a/b; return (r);}

int main (){ cout << deli (12); cout << endl; cout << deli (20,4); return 0;}

Page 39: C++ in Visual C++

Programiranje s C++

Prekrivanje funkcij#include <iostream>

int operate (int a, int b){ return (a*b);}

float operate (float a, float b){ return (a/b);}

int main (){ int x=5,y=2; float n=5.0,m=2.0; cout << operate (x,y); cout << "\n"; cout << operate (n,m); cout << "\n"; return 0;}

Page 40: C++ in Visual C++

Programiranje s C++

Rekurzija//računanje fakultete#include <iostream>

long factorial (long a){ if (a > 1) return (a * factorial (a-1)); else return (1);}

int main (){ long number; cout << “Vpišite celo število: "; cin >> number; cout << number << "! = " << factorial (number); return 0;}

Page 41: C++ in Visual C++

Programiranje s C++

NalogaKaj vrne spodnji program?void change(int& y) { y = 1; }void main() { int x; x = 0; change(x); cout << x << endl; }

Page 42: C++ in Visual C++

Programiranje s C++

FUNKCIJE

DEFINIRA PROGRAMER

PRED-DEFINIRANE

MAIN

NE VRNE VREDNOSTI

VRNE VREDNOST

Page 43: C++ in Visual C++

Programiranje s C++

FP-ne vrne vrednost

• Funkcije “void” in funkcije, ki vrnejo vrednost imajo podobno strukturo

• Funkcije “void”– pred glavnim programom main()– za glavnim programom main()

Page 44: C++ in Visual C++

Programiranje s C++

FP-ne vrne vrednost

• funkcije “void” so brez stavka return• return v funkciji “void” se uporablja

izključno za namene predčasenga končanja funkcije

• funkcije “void” imajo ali pa nimajo parametrov

• klic funkcije “void” se izvrši enako kot pri ostalih funkcijah

Page 45: C++ in Visual C++

Programiranje s C++

FP-ne vrne vrednost

• Sintaksa funkcije “void”:void functionName(void)

{

statements;

}

• Sintaksa za klic funkcije “void”functionName();

Page 46: C++ in Visual C++

Programiranje s C++

FP

// void primer

#include <iostream>

void printmessage ()

{

cout << “Jaz sem funkcija!";

}

int main ()

{

printmessage ();

return 0;

}

Page 47: C++ in Visual C++

Programiranje s C++

Analiza

void printmessage (void)

{

cout << “Jaz sem funkcija!";

}

printmessage ();

Page 48: C++ in Visual C++

Programiranje s C++

FP

#include <iostream.h>

#include <iomanip.h>

// Deklaracija funkcije

void skipthree(void);

void main()

{

cout << “Testiranje funkcije, ki ne vrned vrednosti" << endl;

skipthree();

cout << “Stestirano" << endl;

} // Konec main

// Definicija funkcije

void skipthree(void)

// izpusti tri prazne vrstice v izpisu

{

cout << endl << endl << endl;

}

Page 49: C++ in Visual C++

Programiranje s C++

Naloga

• Z uporabo funkcij napišite program, ki izpiše sledeče znake:

*

**

***

****

Page 50: C++ in Visual C++

Programiranje s C++

FP

// izpis *

#include <iostream.h>

void izpis(int n)

{

int i;

for (i=0; i<n; i++)

cout << “*”;

cout << endl;

}

void main ()

{

int z;

cout << “Vpišite celo stevilo ” << endl;

cin >> z;

for (int i=1; i<=z; i++)

izpis(i);

}

RE

ŠIT

EV

Page 51: C++ in Visual C++

Programiranje s C++

FUNKCIJE

DEFINIRA PROGRAMER

PRED-DEFINIRANE

MAIN

NE VRNE VREDNOSTI

VRNE VREDNOST