Archief - C++

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

[.::@petros::.]

Legacy Member
Robain zei:
aja da klinkt mij idd heel bekend in de oren :)

wat ik mij eigenlijk afvraag:
stel dat ik nu een simpel progje wil maken. op zich niet moeilijk, maar alles in mijn cursus speelt zich af in cmd... Hoe kan ik nu bvb een progje maken, met een hele simpele interface, een aantal knopjes om bepaalde classes te laten lopen. En dan mss een text invoer boxje ofzo??
Allija hoe gaat dit dan in zen werk??


Greets

Ik weet weinig tot niks af van Java; als je bedoelt in Java: ik heb gehoord dat het hierin vrij makkelijk is om GUI's te maken, don't shoot me if I'm wrong. :p

Robain

Legacy Member
ja ik heb het wel degelijk over java :)

kzou mij der wel wa in willen verdiepen, ma weet nie echt hoe. cursus gaat niet meer verder, en kwil ook nie beginnen met een boek dak weer moe beginnen met een "Hello world" progje :D

Is java geschikt om randapparatuur aan te sturen? bvb een kettingprinter?

Ik heb wat gegoogled en het schijnt dat er voor java zoiets bestaat als "Swing" waarmee je redelijke gemakkelijke (skinnable) GUI kan maken...

(zie: http://www.multidesk.be/forums/001627/ )

Greets

Tyfius

Legacy Member
In java is het zeer makkelijk om een gui te maken, dmv swing (http://java.sun.com/docs/books/tutorial/index.html vanaf tut 3 ofzo is het met swing :) ).

Kheb er niveel ervaring mee, maar als ge pas begint, zou ik c# overwegen. Maar met gtk# ipv .NET bazaar. GTK ligt al jaren voor op windows ivm gui's enzo, en 't is cross platform. :)

Sprynxky Man

Legacy Member
Java swing is een nachtmerrie waar je liever af wilt blijven, geloof me. Java is een prachtige taal, alleen de java.swing is een grote prosboel. Da werkt maar half zoals ge het zou willen. Je kan idd vrij simpel een paar vensterkes maken, maar om ze exact te maken zoals je wilt, da's een nachtmerrie.

Hale

Legacy Member
Sprynxky Man zei:
Java swing is een nachtmerrie waar je liever af wilt blijven, geloof me. Java is een prachtige taal, alleen de java.swing is een grote prosboel. Da werkt maar half zoals ge het zou willen. Je kan idd vrij simpel een paar vensterkes maken, maar om ze exact te maken zoals je wilt, da's een nachtmerrie.


haha, roger that :D

over het maken van een driver voor uwe printer: meeste drivers worden in C geschreven omdat die taal meer low level is, maar in java kan je dat ook wel...

but believe me : ge wilt echt geen drivers schrijven, echt ni.
meer geknoei bestaat er niet op deze aardbol ( krijgt nog nachtmerries van kernel panics _shiver_ ).

Robain

Legacy Member
kan ik dan in een java programma die C-driver gebruiken?

of marcheert da nie? :d

Emerxill

Legacy Member
Sprynxky Man zei:
Java swing is een nachtmerrie waar je liever af wilt blijven, geloof me. Java is een prachtige taal, alleen de java.swing is een grote prosboel. Da werkt maar half zoals ge het zou willen. Je kan idd vrij simpel een paar vensterkes maken, maar om ze exact te maken zoals je wilt, da's een nachtmerrie.
Als ge et MVC princiepe goed door hebt is dat te doen door die zelf te schrijven, maar ge zijt veeeel aant vloeken eer ge da onder knie hebt. Idd kleine nachtmerrie :D (en zwaar tijdverlies)
Ik weet nog dat we int laatste jaar zelf onze MVC moesten maken als examen dat ze met 3 man op mijn scherm stonden te kijken en gene ene die wist waar em moest zien :p

QplQyer

Legacy Member
Sprynxky Man zei:
Java swing is een nachtmerrie waar je liever af wilt blijven, geloof me. Java is een prachtige taal, alleen de java.swing is een grote prosboel. Da werkt maar half zoals ge het zou willen. Je kan idd vrij simpel een paar vensterkes maken, maar om ze exact te maken zoals je wilt, da's een nachtmerrie.
Helemaal niet, Java Swing is prachtig logisch opgebouwd en zit goed in mekaar, je hebt best wel een goeie cursus bij de hand om verschillende dingen uit te leggen, maar bv. de meeste functienamen kan je zo raden en het zit echt wel logisch in elkaar.
Akkoord, de layoutmanagers zijn wat wennen maar de voordelen ervan zijn wel legio.
Java Swing is dus totaal geen nachtmerrie ...

En je kan inderdaad een C-driver aanspreken vanuit Java, google zal wel aantonen hoe het exact moet.

jeroen65

Legacy Member
Gaan het hier maar bijplakken. Geen grote vraag om nieuw topic te open.

Ben zo ook wat aan het prutsen met c++ en het meeste gaat. Maar bij pointers snap ik het nut er niet van :S. Wat is het nu daar eigenlijk van dat het adres weet van het geheugen waar je het zet? Je kan toch altijd naar de inhoud verwijzen door de naam? waarom moet je dan nog de gehuegenplaats weten?

wlibaers

Legacy Member
jeroen65 zei:
Gaan het hier maar bijplakken. Geen grote vraag om nieuw topic te open.

Ben zo ook wat aan het prutsen met c++ en het meeste gaat. Maar bij pointers snap ik het nut er niet van :S. Wat is het nu daar eigenlijk van dat het adres weet van het geheugen waar je het zet? Je kan toch altijd naar de inhoud verwijzen door de naam? waarom moet je dan nog de gehuegenplaats weten?

Omdat het soms nuttig kan zijn om berekeningen op dat adres uit te voeren, voor het snel gebruiken van bepaalde datastructuren. Voor het maken van sommige datastructuren (o.a. linked list). In bepaalde talen (onder andere C++) zijn ze ook nodig om dynamische geheugenallocatie uit te voeren.

Als je niet weet waarvoor ze dienen, geen probleem, dat wil gewoon zeggen dat je nog geen dingen tegengekomen bent waar ze nodig zijn. Dat komt wel als je aan complexere zaken begint.

jeroen65

Legacy Member
Ja ben nog maar met simpele dingen bezig. (bubble sort en van die dingen) Nu ik er aan denk. Weet er iemand zo'n site waar oefeningen opstaan? (heb nu de oefeningen gedaan die ik op school in vb doe maar ben er al door :S).

Tyfius

Legacy Member
Pointers is, zeker als je er mee begint, moeilijk, maar je zal al snel inzien waarom deze zo goed en gemakkelijk zijn in gebruik. Ze worden voornamelijk gebruikt om sneller te werken, ze nemen minder geheugen in, en bevatten alle eigenschappen van een gewone variabele of object.
Een pointer is dus een adresreferentie naar een variabele.
In C++ werk je met cin en cout. Maar in C, bvb, werk je met printf (voor af te drukken) en scanf (voor in te lezen). Een scanf ziet er als volgt uit:

Code:
int tmp;
scanf("%d",&tmp);
%d wordt gebruikt om aan te geven dat de invoer van het type int is, en &tmp verwijst naar de plaats in het geheugen waar deze invoer moet worden opgeslagen.

Je kan het & teken ook gebruiken in C++:
Code:
#include <iostream>
using namespace std;

int main() {
  int peren = 10;
  cout << "Ik heb " << peren << " peren op geheugenadres: " << &peren << endl;

  return 0;
}

Het resultaat, op een windows pc:
Code:
Ik heb 10 peren op geheugenadres 0065FE00
Het geheugenadres zal natuurlijk bijna elke keer verschillen.

Ander voorbeeldje:
Code:
#include <iostream>
using namespace std;

int main()
{
  int tmp;
  int *pointer;

  tmp = 1;
  pointer = &tmp;
  cout << "de waarde van *pointer is: " << *pointer << endl;

  *pointer = 2;
  cout << "de waarde van tmp is: " << tmp << endl;

  return 0;
}

Eerst kennen we een waarde toe aan onze variabele. Vervolgens kennen we het adres van deze variabele toe aan *pointer. We kunnen nu de inhoud van de variabele tmp aanspreken zonder van de variabele tmp gebruik te maken.
Een * noemt men eigelijk een dereference operator. Een pointer is een verwijzing (referentie), en met een dereference operator zet je de pointer als het ware weer in een gewone variabele om. Als pointer een pointer naar een geheugenadres is, is *pointer de inhoud van het gegeven dat op dat adres is opgeslagen.

De uitvoer van deze code is dan:
Code:
De waarde van *pointer is: 1
De waarde van tmp is: 2

't is wa laat, maar ik hoop dat het een beetje duidelijk was :)
Mag ik trouwens vragen naar welke school je gaat ?
Ik herinner me vaag de beginselen van C++ rond deze tijd ergens :)

jeroen65

Legacy Member
Ik zie geen C++ ze op school maar vba. Maar omdat ik al goed jaar met vb werk is dat redelijk zaat weer de beginselen te doen. Dus doe ik in de plaats c++. Zolang ik mij stilekes hou is de leerkracht content. (zit nog maar in 6de ze.) En ik wist hoe pointers werkten (vond eigenlijk niet zo moeilijk. Gewoon efkes logisch nadenken) maar ik snapte het nut er niet van in ksnapte niet wat het verschil(ale wel het verschil maar waarom *pointer te gebruiken ontging me volledig) tussen tmp en *pointer was. Wss omdat ik nog maar simpele dingen maak.

Hellsgamerz

Legacy Member
Ik heb het gevoel dat hier veel onzin staat, en dat niemand er uit raakt. Hier even mijn poging:)

1) Eerste probleem: sommigen raden MS-talen aan (zoals VB en C# of .NET). Als je leert programmeren kan je best beginnen met een taal die niet van MS is. Daarbij leert VB nogal slechte programmeergewoontes aan en is het niet direct een goeie taal. Daarbij komt dan nog eens dat het een taal is zonder goeie documentatie. Als je PHP (of Python, of Delphi) kent, weet je direct wat goeie documentatie is.

2) C++ (waar je géén C voor moet leren, het is zelfs af te raden) is een goeie taal, maar ook zeer bekend. Direct beginnen in C++ is *niet* goed. Je zou niet de eerste zijn die stopt omdat ze denken dat programmeren te moeilijk is. Een taal zoals Delphi is een goeie beginnerstaal. Het is niet van MS, kan (via kylix) ook op linux gebruikt worden, en geeft voor beginners het belangrijkste voordeel van VB: makkelijk GUI's maken (knoppen, tekstvakken ed.).

3) Scriptingtalen. Veel onderschat. PHP is een enorm goeie taal voor online applicaties (maar is niet echt goed in OO, wel beter vanaf versie 5). Als je echt wil programmeren met een scripttaal, kijk dan eens naar Python. Het is een van de beste (zoniet de beste) scriptingtaal die je als programmeur wil leren: zowel websites als programma's zijn ermee te maken, en het is volledig cross-platform én gratis.

3) The right tool for the right job. Simpel gezegd: online: PHP. Games online: Java. Programma's: Delphi (mijn advies voor beginners). Het heeft geen zin om Java te leren als je wil .exe's maken. Er bestaan wel compilers voor java, maar ze zijn niet echt goed. Daarbij: java niet 100% cross-platform, is nogal traag en vraagt veel geheugen.

4) OO. Object orientated programmeren, hier een toverwoord blijkbaar :) Als je OO wil leren, goed. Maar dat voegt nog een stuk toe aan je leerproces. Als je het toch doet, download BlueJ. Op school (1e toegepaste informatica) werken we daarmee. Zeer geschikt om OO te leren, en ondertussen ook java. Je kan er echter geen programma's mee maken, enkel basisklassen. In die zin is het dan ook goed, omdat je echt verplicht bent te denken in OO.

5) Programmeren is een algemene vaardigheid. Als je de basisstructuren (if, while, for, switch) kent, kan je zeer veel. Het is dan enkel nog een kwestie van de syntax van een taal leren. Mijn labomaat en ik zitten in labo java enorm ver voor op de anderen, gewoon omdat we kunnen programmeren. Dat het dan in java is (wat geen van de twee al kon) maakt niet veel verschil.

Heh, een hele brok :) Om nu nog wat hapklaar advies te geven: exe's maken: Delphi. Online (databases enzo) PHP.

Krueger

Legacy Member
Hellsgamerz zei:
2) C++ (waar je géén C voor moet leren, het is zelfs af te raden) is een goeie taal, maar ook zeer bekend. Direct beginnen in C++ is *niet* goed. Je zou niet de eerste zijn die stopt omdat ze denken dat programmeren te moeilijk is. Een taal zoals Delphi is een goeie beginnerstaal. Het is niet van MS, kan (via kylix) ook op linux gebruikt worden, en geeft voor beginners het belangrijkste voordeel van VB: makkelijk GUI's maken (knoppen, tekstvakken ed.).

Met het grootste deel van uw "uitzetting" ben ik wel akkoord, maar het maken van een GUI met VB of met c++ vindek toch niet echt vergelijkbaar van niveau. Met VB is het wat tekenen, dubbelklikken op hetgene ge hebt getekend, en wat zeer vanzelfsprekende code toevoegen. Bij c++ komt der toch al wat meer bij kijken.
Als ge daarom echt zeer simpele dingskes met een GUI wilt maken, zou ik toch nog steeds VB durven aanraden boven andere programmeertalen.

Hellsgamerz

Legacy Member
Dat is wat ik probeer duidelijk te maken (alhoewel ik toegeef dat mijn uitleg niet echt duidelijk is). Dat is het grootste probleem dat mensen hebben met C++, als ze iets maken gebruikt het altijd de console. Er zijn echter al toolkits (wxWidgets is wellicht een van de beste) die ook GUI's kunnen maken. Combineer dit met een IDE (VisualWx) en je kan al snel VB benaderen qua snelheid van het maken van de GUI.

Tyfius

Legacy Member
Hellsgamerz zei:
1) Eerste probleem: sommigen raden MS-talen aan (zoals VB en C# of .NET).

C# is idd ontwikkeld door MS, maar is wel geregistreerd en heeft dus een ansii standaard waar MS niet veel aan kan aanpassen. .NET is gewoon het platform waarop het werkt, maar werkt ook perfect onder linux(mono). Voor je gui heb je hoofdzakelijk 2 mogelijkheden:
- Windows Form Designer
- GTK#

Zelf raad ik GTK# aan, je code is perfect corss platform (unix,windows,mac) en het staat al jaren voor op windows. Windows werkt nog steeds met een pixelbepaling voor de gui, gtk maakt gebruik van tabellen. Beetje vergelijkbaar met html.

C# is zeker geen moeilijke taal, ook niet als je nog nooit iets van programeren gezien hebt. En het leert je direct mooi OO programeren zonder veel moeite.

Maar ik moet je wel gelijk geven, PHP is een zeer krachtige taal om er alles mee te leren. Het bevat een uitgebreide documentatie, vele voorbeelden, grote community, ... bijna elke iets of wat coder kan trouwens php...

Boris Barowski

Legacy Member
hallo, nog is even een klein vraagje.

is er een manier op C++ te laten samenwerken met een database ?
liefst mysql ofzo, maar iets anders is even goed.

'schakel over naar vb(a)' is geen optie :)
B.

killgore

Legacy Member
Boris Barowski zei:
hallo, nog is even een klein vraagje.

is er een manier op C++ te laten samenwerken met een database ?
liefst mysql ofzo, maar iets anders is even goed.

'schakel over naar vb(a)' is geen optie :)
B.
mysql en andere sql-talen hebben complete API's om met c(++) te werken :). Hoe denk je anders dat php, een taal die uiteindelijk door een programma, geschreven in C, wordt omgezet, met mysql e.d. omgaat?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan