Föreläsning 3 Programmering, C och programmeringsmiljö
Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator eller annan hårdvara (mobil, dammsugare, brödrost, miniräknare) Ett strukturerat generellt sätt att lösa problem
Hur lär man sig att programmera? Övning övning övning programmering är ett hantverk! För att lära dig programmera måste du kunna läsa koden såsom en dator (kompilator) läser koden.
Programmeringsmiljö För att kunna programmera behöver vi editor för att skriva vår kod. kompilator kompilerar vår kod till ett körbart program Kompilatorn består ofta av flera program (preprocessor, kompilator, länkare) som skapar vårt körbara program i flera steg. Alla program man använder för att programmera (oftast fler än ovan, tex debugger) utgör ens programmeringsmiljö. I grundkursen ska vi använda editorn CodeLite. Den är inte bara en editor utan ger oss också möjlighet att kompilera våra program direkt i CodeLite och färgkodar vår text så att det blir lättare att läsa. Som kompilatorn ska vi använda gcc (eller mingw som windows-portningen heter). Det är den största open-source C-kompilatorn och har historiskt varit oerhört viktig för utvecklingen av fri programvara. Även om vi kan använda gränssnittet i CodeLite för att kompilera är det bra om ni kommer ihåg att kod bara är vanlig text som kan skapas i vilken editor som helst (tex notepad men inte program som word som gärna lägger till osynliga styrtecken). Textfilen låter man sedan kompilatorn översätta till maskinkod. Vi ska också lära oss att kompilera i cmd/terminalfönstret.
Installera CodeLite (förhoppningsvis har ni redan gjort detta) Mac användare kör och/eller installera xcode först. Gå in på https://codelite.org/ och ladda ner codelite (gratis) för ditt operativsystem. För windows får man installationsfilen zippad med 7-Zip som finns att ladda ner gratis om du inte redan har det (http://www.7-zip.org/). När du installerat programmet kör setup wizard och välj install MinGW (kompilatorn). Välj sedan scan for compiler.
Lägg till path-variabeln i windows (behövs inte på mac eller linux) Windows: Högerklicka på computer (den här datorn?) och välj properties. Välj advanced system and settings. Välj Environment variables (miljövariabler). Välj path-variablen och välj edit. Var noga så att du inte tar bort något som redan finns. Vi ska bara lägga till. Lägg till ett ; sist i raden och klipp sedan in sökvägen till gcc:. I min installation: ;C:\TDM-GCC-64\bin Öppna nu kommandotolken (cmd) och prova att skriva gcc. Om den klagar över att den saknar input-fil har vi lyckats: gcc: fatal error: no input files compilation terminated.
Hello World Är ett litet program som gör minsta möjliga för att testa att man har en fungerande programmeringsmiljö och att man förstår hur man använder den: #include <stdio.h> int main() { printf("hello World! \n"); return 0; } Ett litet första steg mot fantastiska program! Börja alltid med detta i en ny miljö och backa alltid hit om du har problem.
Vårt första C-program Börja med att skapa en katalog lokalt på din dator där du ska ha dina C-program. Kom ihåg att säkerhetskopiera denna katalog ofta. I Workspace View välj Explorer-mappen och dra sedan din nya katalog till Explorer-mappen. Välj nu File->New->Empty File Välj nu File->Save As och spara filen som hello.c i katalogen du skapat lokalt. Högerklicka på din katalog i Explorer-mappen och välj refresh. Du kan nu se filen i fönstret. Skriv in Helloworldkoden i filen och spara.
Kommandotolken Vi har nu skrivit ett första C-program. Programmet är vanlig text och kan inte förstås av processorn. Vi ska nu låta kompilatorn översätta vårt program till maskinkod (kompilera). Öppna kommandotolken i widows eller ett terminalfönster på mac och linux. Du kan i denna se exakt var i filträdet du befinner dig. Så här ser det ut för mig: C:\Users\bfelt> Jag vill då hoppa upp två steg C:\Users\bfelt>cd.. C:\Users>cd.. C:\> Vi befinner oss i roten och jag vill nu gå ner i min katalog för C-program. Först listar jag alla kataloger med dir (eller ls i power-shell eller terminalfönster). C:\>dir Nu vill vi gå ner i katalogen Cprogram C:\>cd Cprogram C:\Cprogram> Nu kan du skriva dir och se att din fil hello.c ligger här. Vi ska nu kompilera denna C:\CProgram>gcc hello.c -o hello.exe Om vi bara skriver gcc hello.c kommer den körbarafilen att heta a.exe. Obs att körbara filer på mac har extension.out. För att köra programmet skriver vi bara namnet med eller utan exe. C:\CProgram>hello.exe Hello World!
Kompilera i CodeLite Jag ser helst att ni kompilerar i cmd eller terminalen. På tentor kommer vi att använda linux. Den stora skillnaden för windows-användare blir att man använder ls istället för dir. Man kan också kompilera i miljön och fördelen då är att det blir likadant på tentan. Jag tänkte kort gå igenom hur man gör detta också. I workspace view välj workspace-mappen. Välj File->New->New Workspace och välj C++ Ge den ett namn och välj katalog Högerklicka på ditt workspace i workspacemappen och välj New->New Project Välj Console->Simple Executable (gcc) och välj Next Ge projektet ett namn och välj Next och sedan Finish. I projektet hittar du nu en main.c. Du kan öppna den i editorn genom att klicka på den. Antingen via Build->Build and Run project kan du kompilera och köra programmet eller med Ctrl-F9 När du vill skapa ett nytt program gör du ett nytt projekt i samma workspace.
Sekvens titta på klockan drick kaffe gå och lägg dig
Sekvens i C #include <stdio.h> int main() { printf("jag tittar pa klockan \n"); printf("jag dricker kaffe \n"); printf("jag gar och lagger mig \n"); return 0; }
Uppgift på sekvens Skriv ett program som skriver ut följande: * ** *** **** * * * ************* **********
Selektion n=14 sant n<10 falskt drick kaffe gå och lägg dig
Selektion i C #include <stdio.h> int main() { int n; n = 14; if(n<10) { printf("drick kaffe"); } else { printf("ga och lagg dig"); } return 0; }
Iteration n=1 n<10 falskt sant drick kaffe gå och lägg dig n=n+1
Iteration i C #include <stdio.h> int main() { int n; n=1; while(n<10) { printf("drick kaffe \n"); n=n+1; } return 0; }
Iteration i C #include <stdio.h> int main() { int n; n=1; while(n<10) { printf( varv: %d \n,n); n=n+1; } return 0; }
Input i C Vi ska nu skriva ett program som frågar hur gammal användaren är och sedan skriver ut hur gammal användaren var. Vi gör det rad för rad och kompilerar emellan.
Input i C #include <stdio.h> int main() { int alder; printf("hur gammal ar du?\n"); scanf("%d",&alder); printf("du ar alltsa: %d",alder); } return 0;
Laboration 3 För att bli godkänd på denna laboration visar du lärare eller assistent att du kan kompilera och köra ett C-program på din dator. Du är nu godkänd på laboration 3. Vad vi vill att du nu ska göra är: 1. Skriv ett program som frågar efter en siffra. Programmet ska nu svara om siffran är större än 50 eller inte. Kom ihåg att kompilera för varje rad du skriver. Prova att först bara skriva ut siffran användaren skrivit in så att du vet att du lyckats läsa in korrekt. Lägg nu till en if-sats så att du kan skriva ut om den är större än 50. Resultaten från dina versioner bör bli ungefär så här: v1: Skriv in siffra: v2: Skriv in siffra:7 v3: Skriv in siffra:9 Du skrev in 9 v4: Skriv in siffra:53 Storre an 50 v5: Skriv in siffra:33 Mindre an 50 2. Skriv ett program som med hjälp av while skriver ut siffrorna 1, 2, 3, ända till 100 på skärmen. 3. Skriv ett program som med hjälp av while skriver ut siffrorna 2, 3, 4,,13 på skärmen 4. Skriv ett program som med hjälp av while skriver ut 1, 3, 5, 7, 9 på skärmen