180 likes | 327 Views
Stora program. t entamensdags och lab 3…. Kursutvärdering!. Moduler. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar: Programmets logiska struktur när man klumpar ihop funktioner som hör ihop (och ibland också struct-def och variabler)
E N D
Stora program tentamensdags och lab 3…
Moduler Större program delas normalt upp i flera filer/moduler vilket har flera fördelar: Programmets logiska struktur när man klumpar ihop funktioner som hör ihop (och ibland också struct-def och variabler) Man kan enkelt återanvända generisk kod (tänk på biblioteken vi använder) Man behöver inte kompilera om hela programmet när man ändrar i en modul
Ett enkelt exempel #include <stdio.h> #include "matte.h" intmain() { printf("arean:%.3f\n",cirkelarea(10)); return 0; } #ifndef MATTE_H_INCLUDED #define MATTE_H_INCLUDED double cirkelarea(double radie); #endif // MATTE_H_INCLUDED #include <math.h> #include "matte.h" double cirkelarea(double radie) { return M_PI*radie*radie; }
Codeblocks Go Next> Next> Finish Börja med att starta ett projektFile -> New -> Project…ConsoleapplicationCnamn Kompilera och kör!
Codeblocks forts Go Next> … v Finish v Skapa sedan en till källkodsfil:File -> New -> File…C/C++ sourceCmatte.cDebug Release
Codeblocks forts och tillhörande headerfil:gör samma sak men väljC/C++ header och namnge den matte.h
I shell gcc –c main.cskapar objektsfilen main.o gcc –c matte.cskapar objektsfilen matte.o gcc –o cirkelprogram main.omatte.olänkar ihop objektsfilerna till ett körbart program OBS att headerfilenmatte.h ligger i samma katalog!
Formalia och hur går det till på praktisk tentamen (TEN2) Träning inför praktisk tentamen Frågor inför teoretisk examen (TEN1) Frågor angående Lab 3
TEN2 Praktisk Tentamen Tentamen är 4h och 45min i datorsal Ni får ett speciellt användarnamn och lösenord Ni sparar alla filer på H:- spara ofta! Internet är avstängt Ni får ha med er boken utan anteckningar och en A4 med handskrivna anteckningar på ena sidan De fyra följande uppgifterna skulle kunna utgöra en tentamen
Exempeltentamen Skriv ett program som omvandlar km/h till m/s. Användaren ska kunna göra så många omvandlingar denne vill och sedan kunna avsluta Skriv en funktion som tar två strängar och returnerar hur många av bokstäverna i den första strängen som också finns i den andra strängen.Ex:comp("banan","arbete") ska returnera 3 eftersom b,a och a i banan finns i arbete comp("banan"," avlusa") ska returnera 2 eftersom a och a i banan finns i avlusa comp("rivas"," avlusa") ska returnera 3 eftersom v,a och s i rivas finns i avlusa Skriv också en main som testar funktionen. Exempel på main som testar funktionen: intmain(void) { printf("Antal: %d",comp("banan","arbete")); }
I det här programmet ska vi representera en rektangel med heltalssidor med en struct. • Skriv en funktion som som tar två heltal (längd och bredd) och returnerar en rektangel. • Skriv en funktion som tar en rektangel och returnerar arean som en int • Skriv en funktion som ökar en rektangels längd och bredd med ett • Skriv en funktion som tar två rektanglar och kontrollerar om längd och eller bredd är lika stora och i så fall returnerar den en ny rektangel som har formen av de två rektanglarna liggande bredvid varandra
Master MindI det här spelet slumpar datorn fram 4 siffror (0-9) på fyra positioner. Spelaren skall sedan gissa vilka siffror datorn har slumpat fram. Efter gissningen berättar datorn hur många siffror som var rätt siffra på rätt plats och hur många siffror som var rätt siffra men på fel plats. Sedan får spelaren gissa igen och så fortsätter spelet tills spelaren gissat rätt varvid denne gratuleras av programmet. Datorn slumpar fram fyra unika siffror och spelaren förväntas gissa fyra unika siffror.Så här skulle en körning där datorn slumpat fram siffrorna 3 7 1 0 se ut:Valkommen. Gissa fyra siffror(0-9) med mellanslag mellan siffrorna:0 2 6 3Du har 0 siffror ratt pa ratt plats och 2 siffror ratt pa fel plats. Gissa igen:2 7 4 0Du har 2 siffror ratt pa ratt plats och 0 siffror ratt pa fel plats. Gissa igen:2 3 1 0Du har 2 siffror ratt pa ratt plats och 1 siffror ratt pa fel plats. Gissa igen:3 7 1 0Grattis du gissade ratt på 4 gissningar!
Några övningsuppgifter till Skriv ett program som låter användaren spela ett kortparti 21 mot datorn. I ett 21-spel har kortfärgen ingen betydelse. Man får ett kort i taget och det gäller att komma så nära 21 som möjligt. Får användaren över 21 har denne förlorat. Om användaren är nöjd innan denne fått 21 spelar datorn och då vinner den som kommit närmast. Får användaren exakt 21 vinner denne direkt. I vår variant av spelet räknas essen alltid som 1 och vi bryr oss inte om vilka kort som gått utan man kan alltid få korten 1 tom 13 med samma sannolikhet (det är alltså teoretiskt möjligt att få 5 ess i rad).
Skriv ett program som låter en slumpa lotto-bollar med nummer 1-15. Användaren ska alltså få en slumpmässig siffra mellan 1 och 15 men aldrig samma siffra man tidigare fått:12For nasta boll tryck enter7For nasta boll tryck enter4For nasta boll tryck enter5For nasta boll tryck enter9For nasta boll tryck enter2For nasta boll tryck enter…
Frågor på laboration 3? Observera eventuella problem med textfiler om ni använder shared folder i linux i virtual box! Använd en annan folder och flytta säkerhetskopia till er shared folder ofta