Archief - [PROG][C] Array

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.

brutus

Legacy Member
We zijn pas bezig met C en ik ben er wat mee aan het experimenteren, ik probeer een array van 20 getallen weer te geven, die getallen moeten zich tussen 2 waardes bevinden, maar dat gedeelte lukt niet echt! Weet ieman raad?

#include <stdio.h>

main(){


int getal,teller,ar[20];

for(teller = 0;teller<20;){
getal = rand();
if (100 >=getal && getal <= 200 ){
ar[teller] = getal;
teller = teller + 1;}}
for (teller=0;teller<20;teller++){
printf("%d\n",ar[teller]);}}


greetz Brutus

killgore

Legacy Member
trouwens, je hebt het niet meer nodig, maar eh:
Code:
ar[teller] = getal;
teller = teller + 1;
Kan korter geschreven worden als:
Code:
ar[teller++]=getal

KeaTs

Legacy Member
damn, k vond de fout niet. Want hoewel ge rand ni ideaal gebruikt, zou t wel moeten werken. Fout is dus duidelijk

Code:
if (100 >=getal && getal <= 200 )

maar je had t al gevonden :p

Krueger

Legacy Member
Toch eigenlijk spijtig dat er naast het coderen, ook niet deftig wordt geleerd hoe te debuggen. Hoeveel logische fouten hier niet al zijn gepasseerd, die zeer eenvoudig oplosbaar zijn moest men gewoon eens door de code steppen.

KeaTs

Legacy Member
ja, volledig mee eens. Heb deze code gewoon gec/p in een nieuw projectje, debug gestart en dan zie je zowiezo direct waar de fout zit. Granted, hier moetet wel op t zicht zien, moja, k had der over gekeken :p

En zelfs mensen die al geleerd hebben hoe te debuggen, vitale tools als conditional breakpoints of data breakpoints leren veel mensen nooit kennen, en da's een groot gemis.

killgore

Legacy Member
Krueger zei:
Toch eigenlijk spijtig dat er naast het coderen, ook niet deftig wordt geleerd hoe te debuggen. Hoeveel logische fouten hier niet al zijn gepasseerd, die zeer eenvoudig oplosbaar zijn moest men gewoon eens door de code steppen.

Ik ga dat eens aanhalen op onze opleidingscomissie, ze zijn vakken nu aan het hervormen en naar opmerking over dat men geen "goede" code maar enkel technische, onleesbare code leert schrijven is toch al geluisterd.

KeaTs zei:
En zelfs mensen die al geleerd hebben hoe te debuggen, vitale tools als conditional breakpoints of data breakpoints leren veel mensen nooit kennen, en da's een groot gemis.

Ik heb die door u leren kennen :D.

Tyfius

Legacy Member
Niet alle scholen gebruiken ook debuggers die dergelijke zaken ondersteunen. Ik heb op school leren C programmeren met SourceEdit en Cygwin. In de zoektocht naar gratis C IDE's waren wij al blij dat wij konden beschikken over een simpele vorm van breakpoints.

Tegenwoordig ben ik ook verwend aan Visual Studio en alle debugger opties.

Daedie

Legacy Member
KeaTs zei:
En zelfs mensen die al geleerd hebben hoe te debuggen, vitale tools als conditional breakpoints of data breakpoints leren veel mensen nooit kennen, en da's een groot gemis.

Nu ben ik wel nieuwsgierig eigenlijk :unsure:. Dat is me ook redelijk onbekend. hebt ge daar een link van? ^^

Tyfius

Legacy Member
Bij grotere IDE's (Eclipse, Visual Studio,...) kan je rechtsklikken op een breakpoint en dan krijg je in VS bvb een menuke. Stel dat ge een for loop hebt die tot 1000 telt en ge wilt bij 854 effectief breaken stelt ge een condition in waarbij uw for counter == 854 en dan stopt die daar pas.

KeaTs

Legacy Member
En nog leuker zijn Data Breakpoints ( in visual studio ). In uw breakpoints venster doe je New Breakpoint -> Data Breakpoint. Dan geef je een memory adress op ( mag in termen van een variabele zijn als die op dat moment in scope is, vb &m_nNumber ) + de size in bytes. De compiler gaat dan breaken telkens iemand dat geheugen wijzigt. Hééél handig als er ergens een var verandert en je weet niet waardoor of op welk moment ( simpele aanroepen in complexe systemen, overflows, ... )

killgore

Legacy Member
Tyfius zei:
Niet alle scholen gebruiken ook debuggers die dergelijke zaken ondersteunen. Ik heb op school leren C programmeren met SourceEdit en Cygwin. In de zoektocht naar gratis C IDE's waren wij al blij dat wij konden beschikken over een simpele vorm van breakpoints.

Tegenwoordig ben ik ook verwend aan Visual Studio en alle debugger opties.

visual c++ 2005 EE is gratis en ondersteunt ansi C en ansi C++ en is zowat beste gratis IDE die je atm kan krijgen.

Tyfius

Legacy Member
killgore zei:
visual c++ 2005 EE is gratis en ondersteunt ansi C en ansi C++ en is zowat beste gratis IDE die je atm kan krijgen.
Visual C++ IDE 2005 en 2008 indersteunen C89. Vrij vervelend als je cursussen hebt die C99 based zijn want er zijn wel een aantal verschillen die je het leven een pak makkelijker maken.

Daarnaast was die er ook nog bijlange niet toen ik C kreeg. VS.NET 2003 was er pas :)

killgore

Legacy Member
Tyfius zei:
Visual C++ IDE 2005 en 2008 indersteunen C89. Vrij vervelend als je cursussen hebt die C99 based zijn want er zijn wel een aantal verschillen die je het leven een pak makkelijker maken.

Daarnaast was die er ook nog bijlange niet toen ik C kreeg. VS.NET 2003 was er pas :)

Als ge .c code als C++ compileert kom je afaik hetzelfde effect uit als C99.

Maar tzou wel kunnen dat die niet volledig geïmplementeerd is, als ik modernere faciliteiten nodig heb schakel ik toch automatisch over op 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.
Terug
Bovenaan