Gå til innhold

Bone's Offisielle C++ hjelpetråd


Anbefalte innlegg

Videoannonse
Annonse

Det første som slår meg er om du har sagt til kompilatoren at den må ta en titt i installasjonsdirektivet til dx.

 

Men er det ligger under

Project properties->configuration properties->c/c++->general->Additional include Directory.

 

PS:Hvis du ikke har gjort det har du nok ikke satt at den skal lete i libraries(mulig lib) direktivet til DX heller.

 

Ellers så håper jeg at du snakket om DX SDK.

 

En liten rart ting: Du bruker d3d8.h, er ikke det d3d v8 header? Mulig jeg tar feil, men..

 

Så får du ha lykke til

Lenke til kommentar
  • 2 uker senere...

Er det noen hurtigkomandoer i windows for og markere hele linja slik at den kan kopieres og raskt limes inn på neste linje. Hvis ikke, er det noen slike komandoer i visual studio. Driver og lærer meg litt om de forskjellige konteinerenne, og er irriterende når jeg skal ha test.push_front(666) og enda en push front på neste linja, eller noe lignende. Kan vel være greit i andre tilfeller også. Er stress og strekke meg etter musa hele tiden.

Lenke til kommentar
  • 1 måned senere...
Fintes det noen kompilatoerer eller modder som har retteprogram alla word har. Sånn att det slår till og retter vanlig engelsk, norske osv. ord når det er i komentar felt eller i stringer og slikt?

7464032[/snapback]

 

Vel kompilatoren er det programmet som gjør om c/c++ koden til maskin kode så den detekterer bare syntaks feil å lignende.

IDE er det programmet du som regel bruker til å skrive koden og de fleste programmer har støtte for plug-in.

 

Etter en litt googling fant jeg denne

Delphi Spell Checker 1.21

 

lykke til og god jul

Lenke til kommentar
  • 3 uker senere...

Er det noen som kan forklare hva som skjer her?

 

Recursivity.

Recursivity is the property that functions have to be called by themselves. It is useful for many tasks, like sorting or calculate the factorial of numbers. For example, to obtain the factorial of a number (n!) the mathematical formula would be:

 

n! = n * (n-1) * (n-2) * (n-3) ... * 1more concretely, 5! (factorial of 5) would be:

 

 

5! = 5 * 4 * 3 * 2 * 1 = 120and a recursive function to calculate this in C++ could be:

 

 

// factorial calculator
#include <iostream>
using namespace std;

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

int main ()
{
 long number;
 cout << "Please type a number: ";
 cin >> number;
 cout << number << "! = " << factorial (number);
 return 0;
}

* Kilde: http://www.cplusplus.com/doc/tutorial/functions2.html *

 

Notice how in function factorial we included a call to itself, but only if the argument passed was greater than 1, since otherwise the function would perform an infinite recursive loop in which once it arrived to 0 it would continue multiplying by all the negative numbers (probably provoking a stack overflow error on runtime).

 

This function has a limitation because of the data type we used in its design (long) for more simplicity. The results given will not be valid for values much greater than 10! or 15!, depending on the system you compile it.

 

Eg forstår det sånn delvis, men ikkje heilt korleis den går fram når den kaller funksjonen om igjen...

Lenke til kommentar
Er det noen som kan forklare hva som skjer her?

 

Recursivity.

Recursivity is the property that functions have to be called by themselves. It is useful for many tasks, like sorting or calculate the factorial of numbers. For example, to obtain the factorial of a number (n!) the mathematical formula would be:

 

n! = n * (n-1) * (n-2) * (n-3) ... * 1more concretely, 5! (factorial of 5) would be:

 

5! = 5 * 4 * 3 * 2 * 1 = 120and a recursive function to calculate this in C++ could be:

7617313[/snapback]

 

vel n er et tall som kan være det meste i dette tilfellet 5

Funksjonen factorial får et tall så ser det etter om det er større enn 1 hvis det er det så kaller den på seg selv med a-1 så factorial får nå 4

 

For vær gang funksjonen kaller på seg selv så trekker den fra 1 og ganger det med det tallet det selv fikk, men returnerer 1 hvis taller ikke er større enn 1.

 

Notice how in function factorial we included a call to itself, but only if the argument passed was greater than 1, since otherwise the function would perform an infinite recursive loop in which once it arrived to 0 it would continue multiplying by all the negative numbers (probably provoking a stack overflow error on runtime).

 

This function has a limitation because of the data type we used in its design (long) for more simplicity. The results given will not be valid for values much greater than 10! or 15!, depending on the system you compile it.

 

Eg forstår det sånn delvis, men ikkje heilt korleis den går fram når den kaller funksjonen om igjen...

7617313[/snapback]

 

Jeg er litt usikker på hva du lurer på i teksten over, men den enkleste måten å forstå rekursjon på er å tenke at det ikke er rekusjon. Bare tenk at det er hvilke som helst annen funksjon.

 

funksjonen ganger tallet det fikk (a) med tallet som blir returnert fra funksjonen som blir kjørt med a-1.

Lenke til kommentar
  • 1 måned senere...

Sliter med Dev-C++, den tvinger på en del merkelig syntax synes jeg. Ta en titt på denne koden.

Klikk for å se/fjerne innholdet nedenfor
#include <iostream>

#include <fstream>

#include <string>

 

using namespace std;

 

void init()

{

 

ifstream Maps;

Maps.open ( "tracks" );

 

if ( Maps.is_open() ) {

// Do something here ..

} else {

cout << "Unable to open file!";

}

 

 

 

Maps.close();

 

}

 

int main()

{

 

init();

 

cout << "Welcome to Snake!" << endl;

system("pause");

 

}

Nekter å tro at det skal skrives slik. Hvordan er det vanlig å skrive i C++ "miljøene" ? Og hvordan navngir dere variabler/funksjoner?

 

Edit: Forumet fjerner all indetering, noe som ødelegger hele meningen, men det kommer frem om man siterer innlegget.

Endret av Jonas
Lenke til kommentar
Nekter å tro at det skal skrives slik. Hvordan er det vanlig å skrive i C++ "miljøene" ? Og hvordan navngir dere variabler/funksjoner?

7933787[/snapback]

 

Hvordan forventet du at det skulle skrives?

7934055[/snapback]

Jeg forventet hvertfall at åpne blokker skulle lukkes på samme måte. Det ville ikke Dev-C++, endte opp med å skru av alle fancy funksjoner. :roll:

Lenke til kommentar
Jeg forventet hvertfall at åpne blokker skulle lukkes på samme måte. Det ville ikke Dev-C++, endte opp med å skru av alle fancy funksjoner. :roll:

7934286[/snapback]

 

Jeg ser ingen åpne blokker der.. Kan du markere det du pastet med de spørsmål du måtte ha? Lettere å rydde opp i det da :)

Lenke til kommentar

- Den ene if-setningen slutter ikke med samme antall tabs som den begynte med. Hvis jeg manuelt fjerner to stk, slik at det blir korrekt, fjerner Dev-C++ automatisk den siste innrykket. Kan dette løses på en annen måte enn å skru av all fancy funksjonalitet?

- Hvordan skriver man IfElse-setninger? '} else {', eller på tre linjer?

- Når indeterer man?

- I VB kan man dele opp koder på flere måter, i forskjellige forms, moduler og klasser. Hvordan gjør man dette i C++? Man er vel ikke nødt til å skrive alt i èn og samme fil?

- Hvorfor kan jeg ikke skrive funksjoner etter main() uten å få declaration-error?

 

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

void init()
{
   
   ifstream Maps;
   Maps.open ( "tracks" );
   
   if ( Maps.is_open() ) {
        // Do something here ..
        } else {
               cout << "Unable to open file!";
               }
   
   
   
   Maps.close();
   
}

int main()
{
   
   init();
   
   cout << "Welcome to Snake!" << endl;
   system("pause");
   
}

Lenke til kommentar
...

- Hvordan skriver man IfElse-setninger? '} else {', eller på tre linjer?

7936542[/snapback]

 

C/C++ har ingen IfElse

 

Vel jeg vet ikke hvorfor du vil ha pakka det inn på 3 linjer, men her en en kode som ligner.

 

 

if (1==0)
{

}
else
{
if(1!=0)
{
 
}
else(9==1)
{

}
}

 

 

- I VB kan man dele opp koder på flere måter, i forskjellige forms, moduler og klasser. Hvordan gjør man dette i C++? Man er vel ikke nødt til å skrive alt i èn og samme fil?

7936542[/snapback]

 

Dette er grunnlegende spørsmål så jeg ville startet fra bunnen så finner du det ut.

Men ja du kan dele det opp i 2 typer filer.

 

Header filer(hpp,h): inneholder definisjonen av funksjoner og klasser og lignende.

Source filer(cpp,c): inneholder selve kildekoden.

Men det finnes untak.

 

- Hvorfor kan jeg ikke skrive funksjoner etter main() uten å få declaration-error?

7936542[/snapback]

 

Jeg tror du får problemer forde kompilatorer leser koden fra toppen og nedover slik at når den kommer til main så har den ikke sett funksjonene og vet ingenting om det som kommer etter main.

For å rette på dette vile jeg lest om header filer.

 

lykke til.

Lenke til kommentar
C/C++ har ingen IfElse

 

Vel jeg vet ikke hvorfor du vil ha pakka det inn på 3 linjer, men her en en kode som ligner.

Pakke det inn på tre linjer? :huh: Hvordan kan du skrive 'else' på mer enn tre linjer? Med IfElse mente jeg selvsagt If med else. Trodde det kom godt ut med det andre, og litt mer fordypende spørsmålet. Uansett, mente slik.

 

..
}
else
{
..

.. 
} else {
..

 

Og hvorfor har du to if-setninger i hverandre? Finnes det ingen annen måte, slik som man feks. har i VB?

If statement Then

    ' Kode

ElseIf statement Then

    ' Kode

Else

    ' Annen kode

End If

Dette er grunnlegende spørsmål så jeg ville startet fra bunnen så finner du det ut.

Jeg er vel strengt tatt på bunnen. Viste samtidig at man kunne dele opp koden, noe annet ville jo vært rart, er egentlig ute etter hvordan.

Lenke til kommentar

Nå datt jeg helt av hva dere surrer med, så jeg svarer bare litt ut av det blå:

 

C++ tar ingen hensyn til indenting, whitespace eller linjeskift. Hvis man har en "if" uten påfølgende krøllparentes, vil den neste setningen inkluderes i setningen. Følges "if"-setningen av en krøllparentes, vil alle påfølgende setninger inkluderes, inntil en avsluttende krøllparentes møtes. Eksempel: if(foo == 1) { doSomething(); doSomethingElse(); }

 

Hva if og IfElse (i VB) angår, så fungerer det enkelt og greit slik i C++:

if(kriterie)
{
 Gjør ditt og datt
}
else if(annet kriterie)
{
 Gjør annen ditt og datt
}
else
{
 Og hvis ingen kriterier møtes, gjør dette
}

Mitt forslag: kjøp en god C++-bok først som sist.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...