Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Studieanvisningar K2 King (läroboken) kapitel 2 E excercises, näst sist i varje kapitel P - programming projects, sist i varje kapitel Kompilera och kör ett helloworld-program (K2 E1,s33) Kompilera och kör enkelt program och resistorer från föreläsningen. Pröva att modifiera och experimentera med koden LEK! Frivilligt: Skumma snabbt igenom kapitel 1. Läs igenom kapitel 2 Speciellt 2.6 som vi inte pratat om men ni ska kunna! Gör K2 P1, P2, P3 (sid 33-34) Läs igenom kapitel 3, fastna inte på detaljer, har du sett dem nu hittar du tillbaka när du behöver dem Gör K3 E1, P1, P6 (sid 49-51)Observera att boken ibland inte tänkt sig att man ska programmera excercises men det är ändå oftast bästa sättet att göra dessa. Gör Cd-skiv-uppgiften som följer i denna föreläsning. Lös uppgiften steg för steg och kompilera hela tiden. Tjuvtitta på mina steg vid behov. Gör K4 E1, P1, P2 (sid 68, 71) Läs igenom kapitel 4 och kapitel 5 (hoppa över 83-90). Ha datorn redo och testprogrammera medans du läser så att du ser att du förstått. Skriv ett program som läser in två heltal i två variabler a och b med hjälp av scanf. Skriv kod som byter värdena så att a får värdet som lästs in till b och b får värdet som lästs in till a (tips: behövs en temporär variabel). Skriv ut a och b så att du ser att det fungerar. Gör K5 E1, E2, E9, P1, P4, P7
Föreläsning 3 Flödesscheman while for Datatyper Konvertering Skriv tre while-loopar som skriver ut följande: a) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, b) 10,9,8,7,6,5,4,3,2,1, c) 1, 2, 4, 8, 16, Skriv tre for-loopar som skriver ut ovanstående. Läs 6.1-6.3 (testa på datorn samtidigt som du läser) Gör om cd-skivsprogrammet så att användaren efter att ha fått reda på priset får frågan om hon vill göra ett nytt köp eller avsluta. Om användaren vill göra ett nytt köp ska programmet köra igen. På så sätt kan man göra valfritt antal köp innan programmet avslutar. Gör K6 P1, P2, P3 (sid 122-123) Skumma igenom 7.1 och 7.2. Läs om oktala och hexadecimala tal sid 128 ordentligt om du inte kan detta. Läs 7.3 sid 134-135 och 7.3 andra halvan av sid 139 Gör K7 P15 (fakultet: 4! = 1 2 3 4) Börja arbeta med laboration 1 V37 Tutorial 1 Problemlösning Måndag Gruppindelning efter första bokstav i efternamnet på KTH-social. Gör klart uppgifterna från tutorial 1 Gör klart laboration 1 Tutorial 2 switch break, (continue), goto Kommentarer Problemlösning Fredag 11 september Laboration 1 Onsdag Gör klart uppgifterna från tutorial 2 Boka redovisningstid senast 10 september kl 15.00 på Nicklas dörr
v38 Föreläsning 4 Arrays Slumptal sizeof bool i c99 Sortering Föreläsning 5 Funktioner Bibliotek (math) Lokala och globala variabler In- och ut-parametrar Arrays som inparametrar Top-downprogrammering Skriv ett program som läser in 10 siffror från användaren till en array och som sedan kontrollerar hur många åttor arrayen innehåller och skriver ut detta Skriv ett program som lagrar 2 slumptal i en array och sedan sorterar dessa Försök att förstå sorteringsalgoritmen och ändra sedan koden så att den sorterar med störst först Läs 7.6 och Boolean Values in C89, samt in C99 sid 85 i 5.2 Läs 8.1 som vi inte gått igenom men som ni ska kunna Gör K8 P1, P2, P3 Börja med att sätta dig in i programmet! Vad gör n%10? 234%10 ger 4 Vad gör n/=10? 234/=10 ger 23 Läs 8.2 och 8.3 (8.3 har vi inte heller gått igenom!) Gör K8 P7 Gör P9 om du hinner Svara på instuderingsfrågor Gör K9 E1, E2, E3. Skriv också ett huvudprogram som testar att dina funktioner fungerar som det är tänkt. Läs 9.1-9.5 Gå tillbaka till bubbelsorteringsprogrammet och försök dela upp det i funktioner på lämpligt sätt. Använd inga globala variabler. Läs första delen av 9.6 (sid 204-205) Skriv en fakultetsfunktion liknande den i boken (9.6) men lägg till en printf sats som skriver ut värdet på n. Anropa sedan funktionen från main och se hur den anropar sig själv. Gör K9 P6, P8 Läs kapitel 10, jobba igenom programexemplet i 10.5! Gör K10 P2 Svara på instuderingsfrågor Börja arbeta med laboration 2 Tutorial 3 Träning på att dela upp problem med funktioner Fredag Fortsätt arbeta med laboration 2 V39 Föreläsning 6 Reserv / repetition Avsluta laboration 2 Föreläsning 7 Pekare Adressoperatorn och värdeoperatorn Användning Array som parameter Gör K11 E1, E2, E3, E4, E6. Skriv också huvudprogram som testar att dina funktioner fungerar som det är tänkt. Lek gärna lite fritt med pekare. Läs11.1-11.4 Vi har medvetet skalat ner pekare till ett minimum då det är ett ganska svårt koncept när man är ny programmerare. Om du känner att du är redo är det jättebra att läsa lite mer, bland annat kapitel 12.
Fredag 25 september Laboration 2 V40 Föreläsning 8 Litteraler Strängar <string.h> Array av strängar Sortering av strängar Boka redovisningstid senast 24 september kl 15.00 på Nicklas dörr Gå igenom föreläsningen och programmera exemplen, glöm inte <string.h> och experimentera med koden. Försök fixa sorteringsfunktionen till vår array (hjälp finns efter denna sida men försök utan) Läs igenom 13.1-13.5 Hade du svårt med sorteringsfunktionen och/eller använde mycket hjälp gör K13 P1 Skriv en egen funktion som returnerar längden av en sträng. Om du läst kapitel 12 och står ut med det myckna användandet av pekare är det kul och nyttigt att läsa igenom 13.6 och programmera exemplen. Påbörja arbetet med laboration 3. Föreläsning 9 struct struct och funktioner Arrayer av structar En databas Läs igenom föreläsningen och programmera exemplen och experimentera Lägg till funktionen som skriver ut alla bilar i registret i vårt bilregisterprogram. Utskriften ska se ut enlig nedan: 1. Bil: Volvo, Årsmodell: 2011, Mil: 3000 2. Bil: Saab, Årsmodell: 2000, Mil: 5000 3. Bil: Fiat, Årsmodell: 1999, Mil: 40000 Ändra programmet så att det startar med en meny enligt nedan. Beroende vad man väljer anropas rätt funktion. Sedan får användaren en ny chans att välja ända tills han väljer avsluta. Registrera bilar Skriv ut alla bilar Avsluta Lägg till ett menyalternativ som är Öka mil där man ska kunna välja en bil genom att ange dess plats i registret och sedan kan öka antalet mil den har gått. Så för att öka fiatens mil ovan anger man 3. Gör K16 E10 Skumma igenom 16.1 Läs 16.2-16.3 tom halva sid389
V41 Föreläsning 10 Strömmar (streams) Binärfiler och textfiler fprintf fscanf Läsa in till bilregistret Skriva och läsa binärt i bilregistret Läs igenom föreläsningen och programmera exemplen och experimentera Lägg till funktionalitet som skriver ut alla bilar i registret i vårt bilregisterprogram till en textfil när man väljer avsluta. Lägg till så att man när bilregistret startar kan välja att ange en textfil som programmet läser in bilar från till arrayen. Se till att du matchar inläsningen med hur du skrev ut. Observera att alla bilar läses in först i körningen och alla bilar skrivs ut sist i körningen. Under resten av programmet förekommer ingen filhantering. Om du vill kan du göra en version av bilregistret som läser och skriver binärt Om du vill kan du skumma igenom kapitel 22. Det finns mycket användbart men också mycket som inte ingår och texten är något svårtillgänglig så det är ok att hoppa läsningen och fokusera på föreläsningsanteckningarna denna gång om man tycker att man har fullt upp med annat. Föreläsning 11 Stora program Tentamen Lab 3 V42 Föreläsning 12 Reserv Fredag 16 oktober Laboration 3 Skicka in lösning via KTH-social senast 15 september Boka redovisningstid senast 15 september kl 15.00 på Nicklas dörr V44 LAB1, TEN1, TEN2 se schema Nicklas Brandefelt