Jaffe Skrevet 22. januar 2007 Del Skrevet 22. januar 2007 Jeg skriver guiden min her, før jeg poster den i "Bruker-guider"-forumet. Innføring i programmeringsspråket C Det er mange som vil lære seg å programmere, og da spesiellt i utbredte språk som C, C++, Java, og Visual Basic. Det første man som regel får til svar dersom man spør om hvordan man kan lære et nytt programmeringsspråk, er å lese en bok. Dette er i og for seg det aller beste, dersom man allerede har bestemt seg for at man vil lære språket. Men det er ikke alltid man er helt sikker -- noen ganger vil man bare prøve seg på språket for å se om det er noe man eventuelt vil fortsette med. I slike tilfeller, er det bare tungvint å leie seg en bok om språket, da en bok er mye mer nøye på ting og går grundigere til verks, noe som gjør det vanskelig å få et helhetsinntrykk av språket. I denne guiden/innføringen, forventer jeg at du kan grunnleggende databehandling. Det er også et stort pluss om du kan programmerings- eller scriptspråk som batch, PHP, HTML o.l. fra før. Noen ord om C C er et svært utbredt språk, som kan brukes til det meste. Selv om språket ble oppfunnet på slutten av 70-tallet, har det beholdt populariteten, og er enda i dag et av de mest brukte programmeringsspråkene. Mye av populariteten skyldes den enkle, men kraftfulle syntaksen (skrivemåten / grammatikken), utbredelsen (C-kode kan kjøres på svært mange operativsystem og maskiner), og kraften til språket (man kan gjøre mye med C, som ellers er vanskelig i mange andre språk). C opererer på et lavere nivå enn mange andre språk. Det vil si at C-kode er nærmere maskinkode enn det kode i mange andre språk er. Dette gjør at programmer skrevet i C ofte er svært raske, men samtidig gjør det at mange oppgaver er overført til programmereren, altså deg. Et eksempel er sammenligning av strenger. I Python kan man enkelt sammenligne to strenger ved å bruke sammenligningsoperatøren ==: if "streng" == "streng" Dette går ikke i C, noe du vil forstå senere. I C må man bruke en egen funksjon for dette, som sammenligner bokstav for bokstav i hver streng. Noe slik: if (strcmp("streng", "streng") == 0) Dette er ikke like direkte forståelig som Python-koden. Dette er dog en følge av å være et "lavnivåspråk" som C på mange måter er. (Ikke bry deg om at du ikke forstår kodesnutten over -- dette var kun et eksempel for de som kan programmere i et eller annet språk fra før.) C og C++ Det er mange som lurer på forskjellen mellom C og C++. I bunn og grunn, er forskjellen at C++ er en "oppgradert" versjon av C. Det er lagt til nye funksjoner i språket som objektorientering, og dermed også en del oppdaterte måter å gjøre forskjellige oppgaver på (som input og output). C-kode kan stort sett blandes med C++-kode uten problemer. Det er dog større forskjeller når det gjelder å lære C og C++. Lærer man C++, er læreverket som regel mer rettet mot det C++ har å by på -- altså i hovedsak objektorientering -- som man ikke har i C. Det betyr altså at når man først har lært C++, må man lære en del nytt for å bruke C, selv om språkene er ganske like. At C++ blir kalt en oppdatert versjon av C, betyr ikke at C er utgått. Det er mange som foretrekker C fremfor C++, og i noen tilfeller er det ikke alltid det gunstigste alternativet å velge C++. C++ er altså ikke en ny versjon som erstatter C, men en selvstendig versjon med en del nye tillegg. Hva du trenger Før du kan starte å programmere i C, må du ha en kompilator, og eventuelt en teksteditor. For Windows-brukere, anbefaler jeg brukervennlige Dev-C++, som er både kompilator og teksteditor i en og samme pakke. Bruker du Linux, har du som regel allerede en C-kompilator inne, nemlig GCC. Fyr opp konsollen og skriv inn "gcc" for å sjekke dette. Det du trenger i tillegg, er en teksteditor med syntaks-farging (farging av forskjellige ord i kildekoden, så den blir lettere å lese). Her har du mye å velge i, og de fleste teksteditorer som Emacs, gedit, kate, osv. har dette. Mac-brukere kan laste ned Xcode fra Apples nettsider, som er en ypperlig teksteditor og kompilator for bl.a. C. Vi begynner Det første vi skal ta for oss, er det klassiske eksempelet "Hello, world!", eller "Hallo verden" på norsk. Jeg forventer ikke at du skal forstå noe av det -- vi skal gå gjennom det etter hvert. CODE #include <stdio.h> int main() { printf("Hallo, verden!\n"); return 0; } Skriv dette inn i teksteditoren, lagre, og kompiler programmet. I Dev-C++ trenger du bare gå på Execute -> Compile (eller trykke F9). Dette vil lage en ny .EXE-fil med samme navn som kildefilen. For å kjøre programmet, åpner du CMD, navigerer til stedet er du lagret kildefila (og der programmet ble lagret), og kjører programmet. I Linux, åpner du konsollen og navigerer deg til stedet der du lagret kildekoden, og skriver: gcc kildekode.c GCC vil nå lage en ny fil som heter a.out. Du kan kjøre denne som et vanlig program: ./a.out I Mac kan du bruke Xcodes egne kompilator, men jeg anbefaler at du bruker Xcode som editor, og lagrer koden som en .C-fil, og kompilerer med GCC akkurat på samme måte som i Linux. Så, hva betyr denne koden da? Jeg kan ta en gjennomgang: #include <stdio.h> Her sier vi til kompilatoren at vi vil inkludere filen "stdio.h" i koden vår. Stdio.h inneholder funksjonsdefinisjoner for fundamentale funksjoner som printf (les om den nedenfor). Siden vi bruker printf-funksjonen, må vi inkludere stdio.h. Ellers vil ikke kompilatoren kjenne igjen ordet "printf" som et gyldig navn på noe. Merk at # foran include sier at det er et kompilatordirektiv, altså noe som har med hvordan kompilatoren skal håndtere koden. int main() Her definerer vi en funksjon ved navn main. Jeg skal ikke ta noe om funksjoner i detalj nå, men la oss si det slik at main er den funksjonen programmet alltid starter i, og må være med i programmet. De to klammene, { og }, definerer en programblokk. Alt mellom { og } regnes som del av main-funksjonen. printf("Hallo verden!\n"); return 0; Disse to linjene kalles uttrykk, og er det vi bruker mest i C. I andre språk kaller man dem gjerne for kommandoer eller instruksjoner. I C skal alle uttrykk skilles fra hverandre ved hjelp av semikolon. Husk derfor alltid å skrive ; etter hvert uttrykk! La oss se på printf først. Som sagt over, er printf, i likhet med main, en funksjon. Denne funksjonen har vi ikke laget selv, men den er definert i stdio.h, som vi inkluderte i starten av programmet. I korte trekk, tar printf en streng (serie med bokstaver), i vår kode "Hallo verden!\n", og viser den på skjermen. Men du la kanskje merke til "\n" på slutten av strengen. "\n" betyr "new line" og gjør at markøren på skjermen flyttes et hakk ned til neste linje. Dette er nødvendig for at kommandlinja ikke skal komme rett etter "Hallo verden", men på linja nedenfor. Det siste uttrykket, return 0, gjør at programmet avsluttes. Det avslutter main-funksjonen, og returnerer verdien 0 til operativsystemet. 0 betyr at alt gikk greit. Lenke til kommentar
Anbefalte innlegg