Natrag   Forum.hr > Informatička tehnologija > Za napredne korisnike > Programiranje

Programiranje Za programere i one koji to žele postati ...

Odgovor
 
Tematski alati Opcije prikaza
Old 17.04.2004., 14:32   #21
Quote:
math_baby kaže:
Da, B. Rector mi je potvrdio da je bila greska. A otkud ti znas za to?

math_baby
Ma volim ja tebe
SETRA Samoborček is offline  
Odgovori s citatom
Old 17.04.2004., 14:38   #22
Quote:
SETRA Samoborček kaže:
Ma volim ja tebe
Ah, vidim da je google radio!
Zar si bas toliko patoloski napaljen na mene?

math_baby
math_baby is offline  
Odgovori s citatom
Old 17.04.2004., 14:39   #23
Quote:
math_baby kaže:
Ah, vidim da je google radio!
Zar si bas toliko patoloski napaljen na mene?

math_baby
aha
a jesu i one pjesme s vileda krpama tvoje



ma ne, samo bi htio da me ne mržiš više, samo to
SETRA Samoborček is offline  
Odgovori s citatom
Old 19.04.2004., 11:36   #24
Re: Re: Pitanje za autora kolumne.

Quote:
math_baby kaže:
3) Pitas me koja je svrha C# jezika u Visual Studiu? Moram priznati da mi to pitanje nije bas jasno. Isto tako bi se moglo postaviti pitanje koja je svrha bilo kojeg jezika. Ne razumijem sto si htio reci...
C# bi trebali koristiti programeri koji su do sada navikli na rad i sintaksu u C++, a VB.NET programeri koji su radili u Visual Basic 6, tako barem piše u Microsoftovim knjigama, mada je kod na kraju skoro isti.
fastcode is offline  
Odgovori s citatom
Old 21.01.2006., 20:07   #25
ajde kad si tu, onda mi mozes odgovoriti na par pitanja, ne sumnjam da znas...

1. koliko je C# portabilan u odnosu na C++
2. koliko je C# slican C++ po sintaksi i svemu, odnosno jel ima vise smisla prvo uciti C++ a onda C# ili odmah uciti C#?

hvala
__________________
imam novi nick
no idea is offline  
Odgovori s citatom
Old 21.01.2006., 20:16   #26
Exclamation

Quote:
no idea kaže:
ajde kad si tu, onda mi mozes odgovoriti na par pitanja, ne sumnjam da znas...

1. koliko je C# portabilan u odnosu na C++
2. koliko je C# slican C++ po sintaksi i svemu, odnosno jel ima vise smisla prvo uciti C++ a onda C# ili odmah uciti C#?

hvala
1) Postoji daleko vise C++ kompajlera na svijetu za najrazlicitije platforme. To i nije cudno, jer je C++ sada vec jezik u "zrelim godinama". U tom smislu, kod napisan u C++-u (koji ne koristi neke specijalizirane biblioteke, nego samo standarne biblioteke) moze se vrtjeti gotovo na svakoj zamislivoj platformi, ali ga prvo treba kompajlirati specificno za tu platformu. S druge strane, za C# postoji samo nekoliko kompajlera (Microsoftov, za WIndowse, te Mono, Portable.NET i jos neki za Linux). Medjutim, kod napisan i preveden pomocu nekog od tih kompajlera ne treba ponovo kompajlirati kada se prelazi na drugu platformu: slicno Javi, kompajlirani kod radi podjednako na svim platformama, ali za sada postoji samo tih nekoliko platformi koje sam nabrojala.

2) C# je po sintaksi dosta slican C++-u, iako je C++ kompliciraniji od C#-a. C# je najslicniji Javi. Ima li smisla prvo uciti C++? Ako ti je krajnji cilj programirati u C#-u onda nema smisla uciti prvo C++, jer nema nikakvog predznanja iz C++-a koje bi bilo potrebno za uspjesno ucenje C#-a. C++ ima smisla uciti onda kada ces u njemu zaista i programirati. U suprotnom ne.

math_baby
__________________
"Open source is an intellectual-property destroyer. I'm an American, I believe in the American Way. I worry if the government encourages open source and I don't think we've done enough education of policymakers to understand the threat."" -Jim Allchin, Microsoft operating system chief
math_baby is offline  
Odgovori s citatom
Old 27.01.2006., 10:50   #27
pitanje autoru kplumne:

kako da u c# odnosno visal studiu 2005 stvorim varijablu vidljivu svim metodama;
recimo imam metodu button click od buttona1 i isto tako metodu button click od buttona2 ako u metodi button click od button1 stvori varijablu int a u metodi button click button2 ona ne postoji ka da je gore nisam deklarirao zanima me kako da stvorim varijablu da bude vidljiva i za metodu od button1 i od button2?????????????????????
Tuborg is offline  
Odgovori s citatom
Old 27.01.2006., 21:03   #28
Exclamation

Quote:
Tuborg kaže:
pitanje autoru kplumne:

kako da u c# odnosno visal studiu 2005 stvorim varijablu vidljivu svim metodama;
recimo imam metodu button click od buttona1 i isto tako metodu button click od buttona2 ako u metodi button click od button1 stvori varijablu int a u metodi button click button2 ona ne postoji ka da je gore nisam deklarirao zanima me kako da stvorim varijablu da bude vidljiva i za metodu od button1 i od button2?????????????????????
Pretpostavljam da se event handleri za button1 i button2 nalaze unutar iste klase (koja je najvjerojatnije izderivirana iz klase Form). Varijablu za koju zelis da bude vidljiva u oba event handlera deklariraj tako da ona bude privatna varijabla tvoje klase:

Kod:
class MojaForma : Form
{
   private string mojString;  //ovo je ta varijabla
   ...
   ...button1_click(...)
   {
       //ovdje mozes pristupati varijabli mojString...
   }
  
   ...

   ...button2_click(...)
   {
       //...a takodjer i ovdje
   }
}
math_baby
__________________
"Open source is an intellectual-property destroyer. I'm an American, I believe in the American Way. I worry if the government encourages open source and I don't think we've done enough education of policymakers to understand the threat."" -Jim Allchin, Microsoft operating system chief
math_baby is offline  
Odgovori s citatom
Old 02.02.2006., 10:36   #29
e sad.. pitanje, a istovremeno i kritika na vb.net

cini mi se da mu je memory management stravicno los... kreirao sam sa Structure neki jednostavni objekt (samo int32) i strpao sve to u kolekciju (a moze i matrica obicna)...
i koristenje memorije mu je naraslo kao da se radi o virusu...

konkrentno, imam 2 matrice, jedna dimenzija 500x1500 (samo jedna vrijednost, int32 u njoj), a druga sa structure, jednodimenzionalna sa 1500 elemenata.

memory usage (ukupni je 950 mb)
Prvi put mi je bacio OutOfMemory exception

jel ima neki bolji nacin? da li c++ u .net-u bolje barata sa objektima?
Taroth is offline  
Odgovori s citatom
Old 02.02.2006., 11:54   #30
ups...
greska moja... umjesto .getlength(broj_dimenzije) sam koristio .length prilikom redimenzioniranja, pa mi se povecala xxxx puta... nije problem u memoriji
Taroth is offline  
Odgovori s citatom
Old 02.02.2006., 17:53   #31
bariole is offline  
Odgovori s citatom
Old 13.02.2006., 08:11   #32
e sad imam drugo pitanje vezano za brzinu vb.net-a

naime, napravio sam program za testiranje brzine rada, i to samo 2 vrste testa. Prvi je zbrajanje Int32 vrijednosti (racuna u ciklusima od 10.000 zbrajanja), a drugi je dodavanje Int32 vrijednosti u kolekciju (ciklusi od 100 ponavljanja).

razultati mjerenje na Athlon 1.2Ghz sa 1Gb RAM-a, laptopa sa celeron-m procesorom (256Mb) i Pentium 4 (na 2.1Ghz sa 512Mb) variraju kada se radi o prvom testu (od 5.000 do 35.000 u sec).

Kod drugog testa su rezultati svugdje isti. Na svim kompjuterima se napravi izmedju 5000-6000 dodavanja u sec (govorimo o dodavanjima od 100 el.)

kakav je to compiler u pozadini ako je brzina za kolekcije jednaka (citaj: jednako spora) za razlicite procesore?
Taroth is offline  
Odgovori s citatom
Old 13.02.2006., 19:56   #33
Exclamation

Quote:
Taroth kaže:
e sad imam drugo pitanje vezano za brzinu vb.net-a

naime, napravio sam program za testiranje brzine rada, i to samo 2 vrste testa. Prvi je zbrajanje Int32 vrijednosti (racuna u ciklusima od 10.000 zbrajanja), a drugi je dodavanje Int32 vrijednosti u kolekciju (ciklusi od 100 ponavljanja).

razultati mjerenje na Athlon 1.2Ghz sa 1Gb RAM-a, laptopa sa celeron-m procesorom (256Mb) i Pentium 4 (na 2.1Ghz sa 512Mb) variraju kada se radi o prvom testu (od 5.000 do 35.000 u sec).

Kod drugog testa su rezultati svugdje isti. Na svim kompjuterima se napravi izmedju 5000-6000 dodavanja u sec (govorimo o dodavanjima od 100 el.)

kakav je to compiler u pozadini ako je brzina za kolekcije jednaka (citaj: jednako spora) za razlicite procesore?
Taroth, postaj kod pa cemo vidjeti u cemu je stvar. Inace, imam osjecaj da bi se moglo raditi o boxingu / unboxingu value types prilikom njihovog stavljanja / vadjenja iz kolekcije.

Ne znam s kojom verzijom VB.NET-a radis, ova najnovija verzija ima i tzv. generics. Pokusaj korisititi i kolekciju s genericsima i zatim stavljaj u tu kolekciju integere. Izmjeri vrijeme i usporedi ga s vremenom "obicne kolekcije". Trebao bi dobiti znatno ubrzanje.

math_baby
__________________
"Open source is an intellectual-property destroyer. I'm an American, I believe in the American Way. I worry if the government encourages open source and I don't think we've done enough education of policymakers to understand the threat."" -Jim Allchin, Microsoft operating system chief
math_baby is offline  
Odgovori s citatom
Old 13.02.2006., 22:00   #34
Pazi kod postanja!! Patentiraj kod prvo i objavi da je pend.pat da se drugi ne zalete i koriste ga pa poslije moraju platit....

E, da... je li tockica na pocetku rijeci registrirani znak od MS?
UhnTissUhnTissUhnTis is offline  
Odgovori s citatom
Old 14.02.2006., 09:55   #35
Quote:
math_baby kaže:
Taroth, postaj kod pa cemo vidjeti u cemu je stvar. Inace, imam osjecaj da bi se moglo raditi o boxingu / unboxingu value types prilikom njihovog stavljanja / vadjenja iz kolekcije.

Ne znam s kojom verzijom VB.NET-a radis, ova najnovija verzija ima i tzv. generics. Pokusaj korisititi i kolekciju s genericsima i zatim stavljaj u tu kolekciju integere. Izmjeri vrijeme i usporedi ga s vremenom "obicne kolekcije". Trebao bi dobiti znatno ubrzanje.

math_baby

ockej... budem sada... samo prevedi ovo: boxing vs. unboxing
Taroth is offline  
Odgovori s citatom
Old 14.02.2006., 17:18   #36
Exclamation

Quote:
Taroth kaže:
ockej... budem sada... samo prevedi ovo: boxing vs. unboxing
U CLR-u postoje dvije sustinski razlicite vrste tipova: value types i reference types. Value types su tipovi koji se kreiraju na stacku (recimo Int32 je value type), dok se reference types kreiraju na managed heapu.

Buduci da su reference types podlozni garbage collectingu, njihovo kreiranje i destrukcija su sporiji nego kod value types, jer kod ovih prvih se prilikom njihovog kreiranja moraju raditi neke dodatne radnje koje ce uciniti da garbage collector kasnije bude "svjestan" tih objekata. Kod value types tako nesto nije potrebno i stoga se oni puno brze kreiraju.

Pri manipulaciji objektima povremeno se pojavi potreba za prebacivanjem iz value type u reference type. Ta operacija uzima value type sa stacka i premjesta ga na managed heap, te vraca referencu na novokreirani objekt na heapu. Ta operacija se zove boxing. Obrnuta operacija zove se unboxing.

Boxing se dogadja svaki put kad u neku ne-genericku kolekciju (dakle, kolekciju koja moze primati objekte bilo kojeg tipa) ubacujes neki value type objekt (poput npr. nekog integera). Obrnuto, svaki put kad iz te kolekcije kasnije vadis te integere i spremas ih, recimo, u varijablu tipa integer, obavlja se unboxing.

U novom .NET-u 2.0 uvedeni su genericki tipovi. Izmedju ostalog, imas i nove kolekcije (nalaze se u System.Collections.Generic namespaceu). Ako umjesto "obicne" kolekcije upotrijebis genericku (i kao tipski parametar joj postavis Int32), dobit ces puno brze ubacivanje i izbacivanje integera, nego ako koristis obicne, negenericke kolekcije.

Recimo, ako napravis ovo:
Kod:
List<Int32> intList = new List<Int32>();
      for (Int32 n = 0; n < 10000000; n++) {
         intList.Add(n);
         Int32 x = intList[n];
      }
Ovo gore ce biti puno brze od ovoga dolje (probaj, pa ces vidjeti!):

Kod:
ArrayList aintList = new ArrayList();
      for (Int32 n = 0; n < 10000000; n++) {
         aintList.Add(n);
         Int32 x = (Int32) aintList[n]; 
      }
Razlog zbog kojega je prvi kod brzi od drugoga je upravo u tome sto se u prvom primjeru nikada ne obavlja boxing/unboxing, a u drugome se to dogadja u svakoj iteraciji petlje.

math_baby
__________________
"Open source is an intellectual-property destroyer. I'm an American, I believe in the American Way. I worry if the government encourages open source and I don't think we've done enough education of policymakers to understand the threat."" -Jim Allchin, Microsoft operating system chief
math_baby is offline  
Odgovori s citatom
Old 16.02.2006., 12:35   #37
da li to znaci da u collection stavljas samo objekte, a ne primitivne varijable?
evo kreirao sam neki svoj objekt sa structure (dodao jos neki child objekt), te stavljam u collection, a isto tako i u matricu, pa mi matrica vrti puno brze
Taroth is offline  
Odgovori s citatom
Old 17.02.2006., 19:46   #38
Exclamation

Quote:
Taroth kaže:
da li to znaci da u collection stavljas samo objekte, a ne primitivne varijable?
evo kreirao sam neki svoj objekt sa structure (dodao jos neki child objekt), te stavljam u collection, a isto tako i u matricu, pa mi matrica vrti puno brze
Tako je: u "obicne", tj. negenericke kolekcije (kakve su jedine i postojale u .NET-u 1.0 i 1.1) uvijek se spremaju samo objekti. Kada neke od "primitivnih" tipova poput Int32 (ili strukture) pohranjujemo u takve kolekcije uvijek se pri tome radi boxing koji te "primitivne varijable", kako ih ti nazivas, pretvori u objekte pogodne za ubacivanje u kolekciju. Iz toga proizlazi da je ubacivanje tvojih matrica uvijek brze od ubacivanja integera.

U .NET-u 2.0 kao sto sam vec rekla imas genericke kolekcije kod koje rade jednako brzo za sve tipove. Preporucujem ti da koristis njih. Jesi li isprobao primjere koje sam ti dala u prethodnom postu? Ako jesi, onda si i sam uvidio koliko brze rade genericke kolekcije od negenerickih.

math_baby
__________________
"Open source is an intellectual-property destroyer. I'm an American, I believe in the American Way. I worry if the government encourages open source and I don't think we've done enough education of policymakers to understand the threat."" -Jim Allchin, Microsoft operating system chief
math_baby is offline  
Odgovori s citatom
Old 24.02.2006., 19:58   #39
cuj, ja sam ti na prvoj verziji .net-a sada jos (ne znam koje bi beneficije tocno imao od novijih verzija)


nego...
sto se tice 'pravilnosti' koda...
ako imas jednu klasu koja je container za neke tvoje objekte (tocnije drugu klasu koju instanciras x puta)...
e sad, u drugoj klasi (to je subklasa onda, ne?) imas svoj vlastiti structure koji koristis unutar te klase...

pitanje je...
da li je uopce pravilno taj structure (tocnije njegovu definiciju) pisati unutar klase koja se cesto pise-brise (unistava i sl...)
Da li bi taj structure trebao drzati unutar container klase (superklase) ili to jednostavno nema veze?
Taroth is offline  
Odgovori s citatom
Old 24.02.2006., 21:54   #40
Na .NET VM-u to ti ide otprilike ovako.

.NET VM, tj CLR ima mogučnost stvaranja "novih" primitivnih tipova podataka. Primitivi, nad kompleksnijim objektima, imaju tu prednost da se sa njima dirketno manipulira, dok se sa objektima uvijek moraju pratiti neki pokazivači/reference pa je kod sporiji. Npr. ak' obavljaš zbrajanje dva primitiva onda CLR iskopira njihove vrijednosti na stog operanda, zbroji ih i popa vrijednost u primjerenu varijablu. Ako pak zbrajaš dva elementa objekta, CLR prvo mora pratiti pokazivače na potpis klase, utvrditi gdje se ti operandi nalaze (i da li uopče postoje), dohvatiti ih nekom funkcijom (skupo), te tek onda može obaviti zbrajanje. Kako god radi puno više koraka te je stoga bitno sporije sporo. Tim više što je funkcijski poziv jedna od najskupljih stvari koje možeš obaviti u bilo kojem jeziku, a ovdje češ ih imati par.

Zato je mogučnost stvaranja novih primitiva jako zgodna. A novi primitiv možeš stvoriti upravo structom. Struct je uveden baš zbog toga da na lagan način imaš brzo baratanje jednostavnijim podacima. Npr. koordinate, boja i sl. mali podaci su idelani kandidati za struct tipove.

Što se tiče semantike .NET jezika koji sadrže struct to je maltene identičan tip klasi. Največa razlika je što struct nemaš mogučnost nasljeđivanja, ali ostalo je više manje jednako. Tako da structove možeš promatrati kao specifičnu verziju objekta, što u biti gotovo da i je istina. Osnovna razlika je u tome da se struct istancira na stogu, a objekt na heapu. Problem nastaje kada moraš prenositi parametre. Struct se prenosi kopiranjem, a objekt referencom. Stoga budi pažljiv koliko su veliki tvoji structovi. Neki kriterij - ako je ukupna veličina podataka <= 16 bajtova - neka bude tipa struct, u suprotnom klasa.

E sada ako definiraš struct unutar neke klase to u osnovi nema baš nikakvog utjecaja na način na koji VM njime barata, osim što će tebi kao programeru biti dostupan samo pod uvjetima koji vrijede u toj klasi. Dakle nemaš neka usporavanja i sl. stvari ako je definicija zadana unutar klase..
bariole is offline  
Odgovori s citatom
Odgovor


Tematski alati
Opcije prikaza

Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 16:22.