Gå til innhold

Program for C++ (Borland C++ v.4.5?)


Anbefalte innlegg

Skrevet

Har tatt for meg litt programmering i C++ nå.

Har lest ca. 15 sider med grunnleggende informasjon om språket, og nå blir det nevnt et program som heter Borland C++ v.4.5.

 

Har søkt litt på google.com, men kom fram alt for mange resultater...

Så trenger en link til programmet, evt. nyere hvis det ikke er noe stort annerledes oppsett på dette...? Var også nevnt noe om at v4.0 var er DOS-basert versjon eller noe sånt. Kan man kjøre de nyere inne på selve OS'et? (I mitt tilfelle, Windows XP Professional.)

 

Før jeg går noe videre tror jeg at det er viktig å ha programmet klart, siden de neste delene av boken er eksempler og koder man kan prøve.

 

// zalo

Videoannonse
Annonse
Skrevet
Dev-cpp er et greit ide å programmere i på windows maskiner.

 

Japz, stemmer Dev-Cpp er et finfint IDE, brukte det mens jeg pløyde igjennom boken "Grunnleggende Programmering i C++" av Leirvik/Ljosand.

Det gikk greit, selv om boken er skrevet med M$ Visual Cpp i bakhodet. måtte bare tenke selv, bitte litt :o , gikk nesten helt fint det også! :D

Skrevet

Programmet virker ok, boken jeg har er litt eldre...

 

Ser ikke ut til at noen av eksemplene her i boken virker...

F.eks.

 #include <iostream.h>

void main()

  {

  int Tall;

  Tall = 66;

  cout << "nVariabelens verdi er: " << Tall;

  }

 

Og denne, enda enklere:

 #include <iostream.h>

void main()

  {

  cout << "nBlaBlaBla";

  cout << "nBlaBlaBla";

  cout << "nBlaBlaBla";

  }

 

Er det noen forandringer i språket/programmet jeg bør være obs på?

- Som sagt er boken litt gammel... Veldig gammel... (Lånte på biblioteket i første omgang.)

Btw, skal det være noe mellomrom mellom "main" og "()", eller mellom parentesene evt.?

(Kan ikke kompilere fordi koden har noen error'er står det..)

Skrevet

Heter det ikke int main() da? og int main(void) i C99.

Er det c++ eller c du programmer? husk at c++ kilde skal ha endelsen .cpp, mens c skal ha endelsen .c for at kompileren skal kunne skille de fra hverandre.

Skrevet

I følge boken er det C++ og Objektorientert programmering. Og akkurat dette eksemplet var gjort som "Console Application", for C++ tror jeg.

Skrevet

zalo: Jeg er usikker. Eksemplene du ga oss er riktige og funger problemfritt. Dev-C++ er i tillegg visstnok en veldig god kompilator; i hvert fall blant de som er gratis. Jeg tror ikke noen av kompilatorene til Borland er gratis, så jeg anbefaler deg å bruke Dev-C++, hvis du bare for saker og ting til å virke.

 

Som sagt vet jeg ikke hva som er galt, men du kan i hvert fall begynne med å erstatte:

 

#include <iostream.h>

 

med

 

#include <iostream>

using namespace std;

 

Er ikke akkurat noen tipp-topp C++ programmerer selv, så jeg tør ikke gi ut noen forklaring, men bare gjør det. #include <iostream.h> er visstnok historie. Og det er derfor forståelig at iostream.h er brukt i boka di, ettersom den er gammel.

 

Men hvilke problemer oppstår? Står det ikke hva som er galt?

 

Heter det ikke int main() da? og int main(void) i C99.

Hvordan forklarer jeg dette? "Void" er i hvert fall den verdien funksjonen main() skal returnere, men void tar ingen verdier, sånn som int og float, for eksempel. Skulle han brukt "int", måtte han ha gjort det slik:

 

#include <iostream> 

using namespace std;

int main() 

{ 

  int Tall; 

  Tall = 66; 

  cout << "nVariabelens verdi er: " << Tall;

  return 0;

}

Her returnerer main() verdien 0, og du vil ikke merke noe forskjell i dette programmet. Så void er fint. :)

Skrevet

Standardsignaturen for main er int main(), med void skal du ikke kunne returnere noe som helst (altså udefinert returverdi). Kompilatoren kan implisitt sette 0 som returverdi, men spytter gjerne ut en advarsel på kjøpet.

Skrevet
Standardsignaturen for main er int main(), med void skal du ikke kunne returnere noe som helst (altså udefinert returverdi). Kompilatoren kan implisitt sette 0 som returverdi, men spytter gjerne ut en advarsel på kjøpet.

Riktig. Tør jeg spørre om du vet svaret på zalos spørmsål, ettersom du ikke akkurat høres uvitende ut? :p

Skrevet

Nja, jeg vet ikke. Kan virke som kompilatoren reagerer på void main? I så fall er det sannsynligvis en advarsel, og ikke en error. Og moralen er: Kjøp en noenlunde a jour bok.

Skrevet

http://www.simtel.net/product.download.mir...rs.php?id=17456

 

her kan du laste ned Dev-C++ 4.x dersom du bruker versjon 5.x, 4.x er mere stabil enn versjon 5.x, da 5.x er stadig under utbedring. (beta)

 

Dev-C++ er forresten IKKE en kompilator, men derimot et IDE (Integrated Development Enviroment) som kan nyttegjøre seg av forskjellige C++ -kompilatorer, jeg bruker den som kalles "Mingw-konverteringen av GCC (Gnu Compiler Collection)" under Win 98, og har ingen problemer med å kompilere hverken:

 


#include <iostream.h> 

void main() 

  { 

  int Tall; 

  Tall = 66; 

  cout << "nVariabelens verdi er: " << Tall; 

  } 

 

 

eller:

 

#include <iostream.h> 

void main() 

  { 

  cout << "nBlaBlaBla"; 

  cout << "nBlaBlaBla"; 

  cout << "nBlaBlaBla"; 

  } 

 

Jeg mistenker feilen for å ligge annensteds enn i koden...

Skrevet
Heter det ikke int main() da? og int main(void) i C99.

Hvordan forklarer jeg dette? "Void" er i hvert fall den verdien funksjonen main() skal returnere, men void tar ingen verdier, sånn som int og float, for eksempel. Skulle han brukt "int", måtte han ha gjort det slik:

 

Har bare erfaring i vanlig C, mere spesifikt C99, og der må man da i hvert fall bruke int main(void) som deklarasjon for main-funksjonen.

 

Uansett er det jo bare syntaks, void er vel "the big nothing" - et ord som beskriver intet. enten vil det fungere med ordet, eller uten, alt ettersom hvilken versjon man kompilerer på.

 

C++ har visst her en fin snarvei som sløyfer behovet for return-linja med mindre man trenger en return verdi. Men kanskje likeså greit å gjøre det på gamle måten ettersom man kommer til å trenge funksjoner med return-verdier "further down the line", og da finnes det jo ihvertfall kosmetiske grunner for at main-funksjonen skal ha samme oppbygning, og kanskje til og med vil det gjøre det enklere i starten å ha det innlært.

 

edit:

 

on topic: Hvis du kunne copy-paste feilmeldingene du får hadde det jo det vært en hjelp. Videre anbefaler jeg Dev-CPP 4.0 på det varmeste. Mindre "bjeller og fløyter" enn 5'ern. Er lite behov for et så avansert IDE før du en gang i fremtiden kaster deg over ett eller annet stort prosjekt.

 

Enda videre vil jeg osgå anbefale deg en nyere bok. Og ta en liten titt på å bytte ut iostream.h med stdio.h og dermed cout/cin med printf/scanf. Litt vanskeligere å bruke i starten, men mulighetene er mye større. Jeg tok overgangen tidlig, og det gikk helt fint.

 

Lykke til :)

Skrevet

Ifølge C++ standarden *skal* main returnere en int. Men du trenger ikke returnere noe verdi...


int main()

{

return 0;

}





//dette er også ok

int main()

{

}

 

Det står også at alle kompilatorer skal akseptere følgende main definisjoner:

 

int main();

int main(int argc, char *argv[]);

 

Men standarden er også åpen for andre parametre, men disse blir da implementasjonsavhengige og kan ikke garanteres å være portable.

Skrevet

Jeg snakket litt med selveste zalo over MSN. Se her:


void main() {} // funker ikke

int main() {return 0;} // funker ikke

int main() {} // funker

Og slik tror jeg det hadde seg, merkelig nok, i Dev-C++, mens alle fungerer i VC++. Han var visst ikke helt kjent med Dev-C++, så noen feilmelding kunne han ikke gi meg, men den merket visst den første "bracketen": '{'. Ikke vet jeg. :)

Skrevet
Jeg snakket litt med selveste zalo over MSN. Se her:


void main() {} // funker ikke

int main() {return 0;} // funker ikke

int main() {} // funker

Og slik tror jeg det hadde seg, merkelig nok, i Dev-C++, mens alle fungerer i VC++. Han var visst ikke helt kjent med Dev-C++, så noen feilmelding kunne han ikke gi meg, men den merket visst den første "bracketen": '{'. Ikke vet jeg. :)

 

Den andre skal selvfølgelig fungere. Det er bare den første som ikke fungerer. Hvis den andre ikke fungerer har du gjort noe feil. Nummer to og tre er faktisk helt like i og med at hvis du ikke returnerer en verdi fra main, vil den automatisk returnere 0.

 

Merk at noen gamle kompilatorer krever at du returnerer en verdi fra int main() (f.eks. VC++ 6.x).

Skrevet

Ok. Det var da ikke helt jeg som hadde problemet, men, hvis du leser tråden. Synes bare det var rart at karen ikke fikk ekempel nummer to til å fungere, og det er det jo. Men bare la oss regne med at jeg gjorde noe feil da jeg ba ham prøve de forskjellige tingene. :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...