Gronz Skrevet 27. mai 2005 Del Skrevet 27. mai 2005 Hei, har i lengre tid gått med planer om å lære meg et C-lignende språk, og har nå bestemt meg for å gjøre det. Men har to problemer: For det første, vet jeg ikke hvilket språk jeg bør lære meg. Står hovedsakelig mellom C#, Java, C++ og C, men er åpen for andre forslag. Har hørt mye bra om C#, og bruker selv flere Mono-programmer daglig, men så er det jo patentene, og vil helst ikke risikere å ha masse kunnskap om C# til ingen nytte. Java er vel ganske sakte (?), men kryssplatform. Kommer sannsynligvis etterhvert til å utvikle programmer for GNOME, så det er ikke så viktig at programmene kan kjøres på Windows eller Mac OS X. Prøvde å lære meg C++ for et halvt år siden eller so, men forsto ikke så godt konseptet med pointers (men de er vel like i andre C-lignende språk) og strings. C kan jeg litt av fra før, men sluttet å lære meg det pga. omtrent de samme grunnene som med C++ i tillegg til at det ikke er objekt-orientert. For det andre har jeg litt problemer med å finne gode bøker og nettsider der jeg kan lære meg språk. Har lånt noen Java, C++ og C-bøker på biblioteket, men synes ikke disse er særlig gode. De begynner veldig "rett på" ved for eksempel å vise et relativt avansert program og så forklare det, som jeg ikke trives veldig godt med. Kan Python og Pascal fra før. Takker for alle svar! Lenke til kommentar
☀ ❄ Skrevet 27. mai 2005 Del Skrevet 27. mai 2005 C++. Begrunnelsen finner du rundt om i diverse tråder ved å søke. Rask oppsummering: Raskt, veldesignet, kraftig, elegant og effektivt. Med et kryssplattformbibliotek er C++ like kryssplattform som Java (om ikke mer) med unntak av at du må kompilere for hver plattform, men det er generelt ikke noe problem. Accelerated C++ ansees som den beste boken for nybegynnere. Det lille jeg har kikket i den har vært svært lovende, og en bekjent av meg som holder på med å lære seg C++ går alltid med den under armen Lenke til kommentar
Gronz Skrevet 28. mai 2005 Forfatter Del Skrevet 28. mai 2005 Takk for svar Bør jeg lære meg C før jeg begynner på C++? Lenke til kommentar
Ernie Skrevet 28. mai 2005 Del Skrevet 28. mai 2005 Takk for svar Bør jeg lære meg C før jeg begynner på C++? Nei, det er liten vits å gjøre det. Lenke til kommentar
kattemat Skrevet 28. mai 2005 Del Skrevet 28. mai 2005 Hva har du lyst til å drive med? Lær deg C om du vil drive med lavnivå ting. Ellers lærer du deg C++. Folk som "kan" Java og/eller C# finnes det vel nok av allerede Lenke til kommentar
☀ ❄ Skrevet 28. mai 2005 Del Skrevet 28. mai 2005 Vær oppmerksom på at det er lettere å gå fra C++ til C enn omvendt. Om du kan C og skal lære C++ vil du ha problemer med å benytte deg av de avanserte elementene i språket, mens det vil være lettere å gå fra C++ til C (selv om du sannsynligvis vil savne mulighetene C++ byr på...). Lenke til kommentar
Gronz Skrevet 28. mai 2005 Forfatter Del Skrevet 28. mai 2005 Okei. Nå har jeg kjøpt "Accelerated C++". Kommer sikkert noen flere spørsmål etter hvert Lenke til kommentar
GenericName Skrevet 28. mai 2005 Del Skrevet 28. mai 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
Gronz Skrevet 6. juni 2005 Forfatter Del Skrevet 6. juni 2005 (endret) Okei. Nå har jeg kjøpt "Accelerated C++". Kommer sikkert noen flere spørsmål etter hvert Holder på å lage et veldig enkelt program som skal spørre brukeren et spørsmål og kjøre funksjoner avhengig av svar. Problemet er det ikke virker. Kompileringen går helt fint, men når programmet kjøres og jeg blir spurt dette spørsmålet, svarer jeg på det, men ingen ting skjer utenom at programmet stopper. Her er koden: #include <iostream> using namespace std; char hamlet[50]; class sentences { public: static int hello() { cout << "Goodbye,\n"; cout << "cruel world!\n"; }; static int goodbye() { cout << "Hello,\n"; cout << "world!\n"; }; }; int main() { cout << "Are you a positive or a negative person?\n>"; cin >> hamlet; if(hamlet == "negative") { sentences::goodbye(); } else if(hamlet == "positive") { sentences::hello(); }; }; Og (den viktigste delen av) strace-outputet: write(1, "Are you a positive or a negative"..., 41Are you a positive or a negative person? ) = 41 write(1, ">", 1>) = 1 fstat64(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe7000 read(0, positive "positive\n", 1024) = 9 _llseek(0, -1, 0xbffff678, SEEK_CUR) = -1 ESPIPE (Illegal seek) _llseek(0, -1, 0xbffff678, SEEK_CUR) = -1 ESPIPE (Illegal seek) munmap(0xb7fe8000, 4096) = 0 exit_group(0) Takker for alle svar! Endret 6. juni 2005 av Gimper Lenke til kommentar
Kjeksen Skrevet 6. juni 2005 Del Skrevet 6. juni 2005 her er en litt annen men nesten helt lik måte og løse det på. Istedenfor og bruke char, så bruker jeg string. Siden det er enklere og handtere. #include <iostream> #include <string> using namespace std; string hamlet; class sentences { public: int hello() { cout << "Goodbye,\n"; cout << "cruel world!\n"; } int goodbye() { cout << "Hello,\n"; cout << "world!\n"; } }; int main() { sentences s; cout << "Are you a positive or a negative person?\n>"; cin >> hamlet; if(hamlet == "negative") { s.goodbye(); } else if(hamlet == "positive") { s.hello(); } system("pause"); return 0; } jaja vet at system("pause"); suger Lenke til kommentar
Gronz Skrevet 7. juni 2005 Forfatter Del Skrevet 7. juni 2005 Takker, men fikk det til å virke på en annen måte (takk til Ratix og Zyp ). Må tydeligvis bruke strcmp. Ny kode: #include <iostream> using namespace std; char hamlet[50]; class sentences { public: static int hello() { cout << "Goodbye,\n"; cout << "cruel world!\n"; }; static int goodbye() { cout << "Hello,\n"; cout << "world!\n"; }; static int minusplusletter() { char x; char y; x = 'X'; y = 'D'; x = x - 1; y = y - 1; x = x + 1; y = y + 1; cout << x; cout << y << "\n"; }; }; int main() { cout << "Are you a positive or a negative person?\n>"; cin >> hamlet; if (strcmp(hamlet, "negative") == 1) { sentences::goodbye(); } else if (strcmp(hamlet, "positive") == 1) { sentences::hello(); } Har likevel et problem igjen. Koden virker når jeg skriver inn "positive", og teksten skrives til skjermen, men når jeg skriver "negative" skjer ingenting og programmet stoppes. Har prøvd å bytte om på "negative" og "positive" i if-loopen, men det hjelper ikke. Lenke til kommentar
GenericName Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
Dead_Rabbit Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 (endret) Utdrag fra "Linux Programmers Manual": STRCMP(3) Linux Programmer's Manual STRCMP(3) NAME strcmp, strncmp - compare two strings SYNOPSIS #include <string.h> int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, size_t n); DESCRIPTION The strcmp() function compares the two strings s1 and s2. It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2. Endret 7. juni 2005 av zirener Lenke til kommentar
GenericName Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
Dead_Rabbit Skrevet 7. juni 2005 Del Skrevet 7. juni 2005 Oka. Men husk at "strings" og "ting" er to forskjellige ting da! Lenke til kommentar
☀ ❄ Skrevet 8. juni 2005 Del Skrevet 8. juni 2005 (endret) Hvorfor gjøre det vanskelig, når man kan gjøre det enkelt? #include <iostream> #include <string> class sentences { public: static void hello() { cout << "Goodbye,\n"; cout << "cruel world!\n"; } static void goodbye() { cout << "Hello,\n"; cout << "world!\n"; } // minusplusletter() er irrelevant, og dermed fjernet }; int main() { using std::cout; using std::cin; using std::string; string hamlet; cout << "Are you a positive or a negative person?\n> "; cin >> hamlet; if (hamlet == "negative") { sentences::goodbye(); } else if (hamlet == "positive") { sentences::hello(); } } Vær oppmerksom på at strcmp() returnerer 0, ikke 1, når strengene er like. Edit 1: Rettet skrivefeil Edit 2: Endret returtype i medlemsfunksjonene fra int til void. Endret 8. juni 2005 av Myubi Lenke til kommentar
Gronz Skrevet 8. juni 2005 Forfatter Del Skrevet 8. juni 2005 Takker, skal teste. Lenke til kommentar
Kjeksen Skrevet 9. juni 2005 Del Skrevet 9. juni 2005 hmm..hvorfor bruke static isteden for og lage et objekt? Lenke til kommentar
☀ ❄ Skrevet 9. juni 2005 Del Skrevet 9. juni 2005 Fordi funksjonene er like for alle objektene, og fordi de ikke endrer medlemsdata. For øvrig ville vel det beste vært å ha to funksjoner i et namespace. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå