Srodne teme
10.01.2004. VC++ 6 na XP-u
08.01.2002. sigurnost na mrezi
04.09.2002. cisco-primeri?
20.11.2002. ActiveX dll?
30.10.2003. winapi tutorial
06.12.2003. Primeri trigonometrijskih grafika
01.04.2006. Literatura o Pascalu
25.06.2004. XML i VB6 - primeri
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VB i C/C++ primeri.

[es] :: C/C++ programiranje :: VB i C/C++ primeri.

[ Pregleda: 9799 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon VB i C/C++ primeri.21.02.2002. u 16:21 - pre 242 meseci
Na predlog jc dentona, pokrećemo temu u kojoj ćemo da pokažemo kako se programira u VB-u odnosno C/C++ u. VB programeri treba da stave kratke primere konstrukcija koje ih interesuju, a C/C++ programeri da pokažu kako se to isto radi u njihovom jeziku.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: VB i C/C++ primeri.21.02.2002. u 16:31 - pre 242 meseci
Počinjemo: VB primere je dao jc denton, a C/C++ Dragi Tata:

VB:
1.Ako imamo kod koji je nepregledan u jednom redu pomocu znaka '_' moze se prebaciti u vise redova:
Private Declare Function brrazlicitih Lib _
"c:windowsdesktoproundme.dll" _
(ByRef niza As Any, ByRef niza As Any, ByVal koliko As Long) As Long

C/C++: U ovim jezicima svaka komanda (statement) mora da bude završena znakom ; (tačka-zarez) tako da nisu potrebni posebni znakovi za prelaz u novi red. Primer:

i =
i+
1;

VB: Za komentare korisimo '
' komentar linija 1
' komentar linija 2

C/C++: U C++u i novim verzijama C-a postoji ekvivalentan komentar // Takođe, u oba jezika postoji komentar /* ... */

// komentar linija 1
/*komentarisano je samo ovo izmedju*/

VB: Ako zelimo da stavimo vise komandi u jednu liniju odvajamo ih znakom ':'
a=3 : b=5 : b=b-a : a=a+b : b=a-b

C/C++ Kao što je napomenuto, na kraju svake komande ide tačka-zarez
a=3; b=5; b=b-a; //itd

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: VB i C/C++ primeri.21.02.2002. u 16:45 - pre 242 meseci
Nastavljamo:

VB-u su dostupni direktno decimalni, heksadecimalni i oktalni brojni sistemi.
Ispred vrednosti oktalnog broja koristi se prefiks &O, a za heksadecimalne &H

C/C++. Slično je i ovde. Jedino što je prefiks za oktalne 0, a za hex 0x ili 0X
tako je 0123 oktalni (pažnja!) a 0xfa21 heks.

VB: tipovi u VB :
Byte 1 byte 0 to 255
Boolean 2 bytes True or False
Integer 2 bytes -32,768 to 32,767
Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647
Single (single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double (double-precision floating-point) 8 bytes -1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Decimal 14 bytes +/-79,228,162,514,264,337,593,543,950,335 with no decimal point;
+/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is
+/-0.0000000000000000000000000001
String (variable-length) 10 bytes + string length 0 to approximately 2 billion
String (fixed-length) Length of string 1 to approximately 65,400
Variant (with numbers) 16 bytes Any numeric value up to the range of a Double
Variant (with characters) 22 bytes + string length Same range as for variable-length String
User-defined (using Type) Number required by elements The range of each element is the same as the range of its data type.

C/C++ osnovni tipovi su dati dole. Veličina važi za Win32 i verovatno Linux, inače nije specificirana standardom:

char, unsigned char, signed char: 1 byte - simbol (slovo)
short, unsigned short: 2 bytes
int, unsigned int: 4 bytes
long, unsigned long: 4 bytes
float: 4 bytes
double: 8 bytes
long double: 8 bytes

Od izvedenih tipova, razlikujemo direktno izvedene: nizovi, funkcije, pointeri, reference (C++), konstante; i kompozitne izvedene tipove: klase strukture i unije.

O njima posebno kasnije.

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: VB i C/C++ primeri.21.02.2002. u 16:58 - pre 242 meseci
VB: Sve konstante, promenljive, nizovi i tipovi moraju da pocinju slovom i ime mora biti <=255 karaktera (specijalni znaci nisu dozvoljeni).

C/C++: Mogu početi slovom ili znakom _ a mogu sadržati i brojeve

U VB je moguca implicitna deklaracija (default) - ne moraju se deklarisati promenljive uopste.
Option Explicit komanda kaze da sve mora biti deklarisano pa onda kod javlja gresku kad naidje na nepoznato ime. Option explicit mora biti u deklaracijskoj sekciji svake forme ili modula kod kojih zelimo ovakav nacin deklaracije.

C/C++ ne postoji implicitna deklaracija. Sve promenljive moraju biti eksplicitno deklarisane pre upotrebe.

VB:
dim a as integer - u proceduri (Sub) su lokalnog tipa. Znaci postoje kao takve samo u toj proceduri i ne zadrzavaju vrednost pri ponovnom pozivanju procedure.

C++:
int a; //je lokalna (još se kaže i automatska) promenljiva. Ista pravila kao u VB-u

VB:
Static a as integer - komanda kaze da je za promenljivu alociran tacno odredjen memorijski prostor, sto omogucava da promenljiva zadrzi vrednost i pri ponovnom pozivanju procedure.

C/C++:
static int a; // mada static može imati i druga značenja, ali o tome kasnije.

Napomena: ovde sam izbacio odeljak sa Public i Private u VB-u. O tome ćemo kad pređemo na klase (ako stignemo dotle)

VB:
Pri inicijalizaciji, promenljive imaju sledece vrednosti :
numericke (dim a as integer) - a=0,
stringovi promenljive duzine (dim a as string) - a=""
stringovi fiksne duzine (dim a as string * 5) - a=" "
korisnicki tipovi - svaka prom. u kor. tipu se inicijalizuje kao da je posebna prom. van tipa.

C-C++
Inicijalizacija mora da bude eksplicitna od strane korisnika, inače promenljive imaju potpuno nepredviđene vrednosti.

VB:
Moguce je deklarisati kog je promenljiva tipa, ali i ne moramo :
Dim a - podrazumeva se da je Variant tipa
a ako se specificira tip ide ovako:
Dim a as integer - za integer tip

C/C++:
Tip mora biti zadat uvek:
int a; float b;
double* c; //pointer


[Ovu poruku je menjao Dragi Tata dana 21.02.2002 u 09:24 AM GMT]
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: VB i C/C++ primeri.21.02.2002. u 17:13 - pre 242 meseci
VB:
Nizovi se deklarisu na sledeci nacin :
dim a(10) - niz ima 11 elemenata, prvi je a(0)
dim a(5 to 10) - niz ima 6 elementa, prvi je a(5)
dim a(n,m) - matrica
dim a(n,m,j,k) - vise dimenzija u nizu
dim a() - dinamicki niz, prvi je a(0)
redim a(5) - alociranje memorije za pet elemenata
redim preserve a(10) - alociranje memorije za 10 el. bez brisanja vrednosti elemenata u nizu.

C/C++ Nizovi:
int a[10]; // niz od 10 elemenata, prvi je a[0]
Nizovi UVEK idu od 0
int a[3] = {1,2,3}; // inicijalizacija niza: a[0] = 1, a[1] = 2; a[2] = 3. a[3] - NE POSTOJI
int a [2][2]; // matrica 2*2
Treba napomenuti da nizovi mogu da budu "zamenjeni" pointerom na prvi član. Ako imamo
int a[10];
možemo pisati recimo
int* pa = a; // pokazuje na početak niza


Što se dinamičkih nizova tiče, u C-u se oni rade preko pointera, i to ću da preskočim, a u C++u imate lepu template klasu koja se zove vector

vector <int> niz; // niz int-ova
vector <float> niz; // niz float-a

Znam da će neki da se bune i da traže pointere, ali ovo je definitivno način da se radi sa nizovima u modernom C++u.

Nastavak u sledećem broju.
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: VB i C/C++ primeri.22.02.2002. u 13:17 - pre 242 meseci
pa da nastavimo dalje (VB na VC++ part II) :

VB:
konstante su po defaultu lokalne (Private), osim ako se ne specificira Public - javne (u modulu dozvoljeno) :

Const tacno = True
Const netacno = False

C++:
nivo pristupa promenljivama se određuje na nivou klasa. Tako članice klasa mogu da budu: public - vide se od strane korisnika, protected - vide se u klasi i izvedenim klasama, private - vide se samo u klasi u kojoj su deklarisane.

VB
deklarisanje tipova u VB-u se vrsi u modulu :
Type korisnik - deklaracija korisnickog tipa
id As Integer
ime As String * 20
prezime As String * 20
sesija(100) As Byte
End Type

Enum rejting 'nabrajanje'
gost = 0
novi = 1
stari = 2
kajla = 3
End Enum

C++:
Glavna vrsta korisničkih tipova su klase, o kojima ćemo kasnije. Istorijski gledano (zbog kompatibilnosti sa C-om) kao ekvivalent korisničkim tipovima u VB-u, uzima se struct.

struct Korisnik
{
short id;
char ime[20];
char prezime[20];
unsigned char sesija[100];
};

A imamo i enum:
enum rejting {gost, novi, stari, kajla};
ovde je gost = 0, a ostali rastu za po jedan. Moguće je i:
enum rejting {gost = 1, novi, stari, kajla = 10};
tu je gost = 1, novi = 2, stari = 3, kajla = 10

VB:
Referenciranje pojedinacne promenljive iz tipa :
Dim kor As korisnik
kor.id=1
kor.sesija(1)=1

ili:

With kor
.id=1
.sesija(1)=1
End With

C++: Vrlo slično
Korisnik kor;
kor.id = 1;
kor.sesija[1] = 1; //ovo je DRUGI clan niza

Avaj, ne postoji With...End With konstrukcija

VB:
Referenciranje pojedinacne konstante iz Enum-a (dodela vrednosti konstantama nije dozvoljena)
rejting.novi

C++:
rejting::novi; // često ovo rejting:: i ne treba već se piše samo novi

Operatori

VB:
operator za dodelu vrednosti '='
a=3
a= <izraz> (rezultat izraza bice razlicitog tipa, u zavisosti tipa operanda i overflow-a)

operatori '+' i '-' za brojeve znaci sabiranje, za stringove povezivanje u jedan string
specijalan slucaj :
dim a as byte, b as string
a = 5 : b = "5" : c=a+b
c= 10 rezultat

operator '&' za brojeve i stringove povezivanje u jedan string
a ="123" : b="abc" : c=a & b
c="123abc" rezultat

operatori '*' i '/' mnozenje i deljenje
specijalan slucaj :
dim a as byte, b as string
a = 5 : b = "5" : c=a*b
c= 25 rezultat

operator '^' - eksponent broja

operator '' celobrojno deljenje
operator 'mod' celobrojni ostatak (zaokruzen)

operatori za uporedjivanje su :
=, <, >, <=, >=, <> (nejednakost)

logicki operatori u VB su :
NOT, AND, OR i XOR

C++: Operatori (ukratko)
Unarni operatori:
* -indirekcija (sadrzaj lokacje koju pokazuje pointer)
& -adresa ("suprotno" od indirekcije - adresa promenljive)
+ -unarni plus (oznaka za pozitivan broj)
- unarni minus (oznaka za negativan broj)
! -logicka negacija
~ -komplement (binarni)
++ -prefix inkrementacija (uveca za jedan)
-- -prefix dekrementacija (umanji za jedan)
sizeof -velicina u memoriji
new -alokator memorije
delete -dealokator memorije

Binarni operatori:
racunske radjnje: + - / * % sve je jasno osim mozda % deljenje po modulu
Shift operatori << i >>
Poredjenje: <, >, == (jednakost), != (nejednakost), <=, >=
Logicke operacije na nivou bitova:
& (and), | (or), ^ (xor)

Logicke operacije na nivou integera
&& (and), || (or)

Ternarni operatori:
?:
neka vrsta skracenice za if. Primer:

(val >= 0) ? val : -val
If the condition is true, the expression evaluates to val. If not, the expression equals &#8211;val

fire, walk with me
 
Odgovor na temu

ljube
Ljubiša Knežević
Banjaluka

Član broj: 22429
Poruke: 158
81.93.74.*



+2 Profil

icon Re: VB i C/C++ primeri.13.03.2004. u 08:56 - pre 217 meseci
Ovo je mozda pomalo "off topic" ali moze da bude interesantno VB programerima koji bi zelili da nauce C ili C++.

Postoji programcic koji konvertuje svoj BASIC kod u C.
Najbolje radi sa LCC32 ali podrzava i PelesC

Korisnicka grupa sa linkovima za download moze se pogledati na:
http://groups.yahoo.com/group/bcx/

Inace program imam odlicnu dokumentaciju na engleskom i moze da posluzi za ucenje C jezika.

Pomocu ovog progrma napravio sam par "ozbiljnih" Windows aplikacija.

Lj.


 
Odgovor na temu

LOW
IF_I_COULD_FLY
Webmaster
BG

Član broj: 25436
Poruke: 147
*.ptt.yu

Sajt: victorycash.com


Profil

icon Re: VB i C/C++ primeri.26.04.2004. u 21:16 - pre 215 meseci
Pomoc za kompajlovanje molim!
Windows Shell Programming http://programming.help-place.com/
 
Odgovor na temu

[es] :: C/C++ programiranje :: VB i C/C++ primeri.

[ Pregleda: 9799 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
10.01.2004. VC++ 6 na XP-u
08.01.2002. sigurnost na mrezi
04.09.2002. cisco-primeri?
20.11.2002. ActiveX dll?
30.10.2003. winapi tutorial
06.12.2003. Primeri trigonometrijskih grafika
01.04.2006. Literatura o Pascalu
25.06.2004. XML i VB6 - primeri
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.