Agenda. Introducera det individuella projekt Multipla C-filer H-filer Introducera uppgifterna



Relevanta dokument
Varför behövs det? I Allegro finns t.ex. stöd för:

Programmeringsteknik med C och Matlab

Föreläsning 3. Programmering, C och programmeringsmiljö

Tentaupplägg denna gång

Jag rek. starkt att alla uppgraderar sin TomTom till version 5 eller högre då massor av nya funktioner och en betydande prestandaskillnad finns.

Datorlaboration 0, Programmering i C++ (EDAF30)

Tentaupplägg denna gång

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Barn på sjukhus FÖRBEREDELSETIPS FRÅN BARN- OCH UNGDOMSSJUKVÅRDEN, SUS

19. Skriva ut statistik

Sta. Sta. Sta. ulricaelisson.se. Scratch STARTA PROVA KODEN KÖR! TIPS. Rita en ny sprite. Eller välj en från mappen

Projektrapport EDA095

HI1024 Programmering, grundkurs TEN

Föreläsning 3. Programmering, C och programmeringsmiljö

Webbteknik för ingenjörer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Chapter 3: Using Classes and Objects

Övningar Dag 2 En första klass

Ändra, kopiera eller radera publikation (staff)

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Programmeringsuppgifter 1

Tentamen TEN1 HI

HI1024 Programmering, grundkurs TEN

Användarmanual HOIF.org

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

Kom igång med din SMART Board. Det praktiska

Föreläsning 6: Introduktion av listor

Editering, Kompilering och Exekvering av Javaprogram

LÄSLANDET - BOKSTÄVER OCH ORD

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Installation. Kvik kök

Blogga med wordpress. Lina Tannerfalk Wiberg

Semester och arbetstidsförkortning

Klassuppgift: Hinderrally

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Planering Programmering grundkurs HI1024 HT data

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

HP Photosmart 6220 Digital Camera Dock Användarhandbok

Förslag på lektionsupplägg: Dag 1- en lektionstimme

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

Selma Manual Utbildningsplan. Studentcentrum/Ladokgruppen

Att använda pekare i. C-kod

Bybladet. December 2015

A3-scanner. Svenska. Användarhandbok

Objektorienterad Programmering (TDDC77)

CSN-rapportering, gymnasiet

Användarmanual för nya funktioner

Valet 2010 på facebook!

TDP005, Projekt: Objekt-orienterade System. Laboration: Eclipse

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

kl Tentaupplägg

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.

Så här funkar det Tjäna pengar till klassen, klubben eller laget

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

LATHUND Att planera en mässa eller utställning

Användarmanual för ledare - ERC 2.0

Att komma igång. Föreläsning 1

Flexibel meny i Studentportalen

Han har tidigare hjälp mig som praktikant och fungerar bra, duktig och vill lära sig.

Routerinställning. Denna guide tar dig genom de enkla steg som behövs för att ställa in routern så den fungerar trådlöst.

Uppgift 1 (Oläsliga krypterade meddelanden)

LIA handledarutbildning 22/10. Att vara handledare

Valet 2010 på facebook!

Lärandefrågor uppföljande samtal. Framtagen av Funktionshinder, Hägersten-Liljeholmens Stadsdelsförvaltning, Stockholms stad.

Slutrapport för Pacman

Föreläsning 11. Giriga algoritmer

Bruksanvisning för hjälpbegäran

Hogia Redovisning & Revision AB. Anståndshantering Hogia Kund- och Uppdragshanterare

Att ordna en interaktiv diskussion för Raoul Wallenbergs dag

Hur man kompilerar och kör IT++-program med MinGW. 1 Sammanfattning. 2 Om dokumentet. 3 Om min konfiguration

Introduktion till arv

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Handbok KCM Tablet. Jörg Ehrichs Översättare: Stefan Asserhäll

Macromedia Flash MX 2004

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

VÄRDERINGSÖVNINGAR METOD 1

HI1024 Programmering, grundkurs TEN

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Välkommen till din loggbok!

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Instruktioner för dig som ska söka till Mattekollo 2016

Lotta Carlberg, workitsimple Alla rättigheter reserverade

Omtentamen i OOSU2, 21 augusti 2014

En guide till FirstClass

Installationsanvisning för kursens programvara på egen dator

Diskutera i ert lag. Innehåll. Vårt lag 3 Laganda 4 Fair Play 5 Självkänsla 6 Kost och sömn 7 Målsättning 8 Attityd 9 Doping 10

C++ Slumptalsfunktioner + switch-satsen

Datorlaboration 0, Programmering i C++ (EDA623)

Läs med oss. Interaktiv skrivtavla (IST) IST-kort Pojken och tigern.indd Manual digitalt lärarstöd till.

Objektorienterad programmering D2

Utbildning i marknadsföring Biografcentralen

Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg. Föreläsningar Lektioner Laborationer Projekt

MI Motiverande Samtal i UP Arbetsmaterial

Smarta lösningar för dig med aktiebolag. program och kunskap för dig som vill få ut mer av ditt företagande

Tentamen, EDAA20/EDA501 Programmering

Bruksanvisning. Daikin Altherma värmepump för bergvärme EGSQH10S18AA9W. Bruksanvisning Daikin Altherma värmepump för bergvärme.

IPv6 - varför skall jag bry mig?

Detta sätt lämpar sig bra om man bara kort vill kommentera den inlämnade uppgifter som helhet. Gör så här:

NetBeans 5.5. Avsikt. Projektfönster

Transkript:

Agenda Introducera det individuella projekt Multipla C-filer H-filer Introducera uppgifterna

Projektupptakt I kursen ingår PRO1, enskild programmeringsuppgift En större programmeringsuppgift som ni löser individuellt Slutförs bäst då du läst om och övat på structer och filer Kan påbörjas redan nu

Vad kan du göra nu? Bestäm dig för en uppgift Skissa på en lösning till problemet Papper och penna Diskutera med någon handledare på kursen Skriv koden till de funktioner som där din kunskap hittills är tillräcklig Testa funktionerna

CB-projekt med flera C-filer Hittills: flera funktioner Återanvändning: kopiera funktioner från en fil till en annan Ej helt tillfredsställande: bättre är att använda en och samma fil till flera program! För att förstå hur det kan vara möjligt tittar vi på bygg-processen.

Att bygga ett program Troligen använder du build i Code::Blocks för att sen kunna köra programmet som byggs C-fil Build exe-fil (program) Detta kommer att involverar en rad av program och programdelar Vi tittar nu närmare på detaljerna

Byggstegen med en C-fil C-fil Kompilator preprocess compiler o-fil (binär, ej exe) Länkare exe-fil (program) std-lib (printf etc.)

Övning Rätta felet i exempel 11 (hemsidan)

Byggstegen med flera C-filer C-fil Kompilator o-fil (binär, ej exe)...... C-fil Kompilator o-fil (binär, ej exe) Länkare exe-fil (program) std-lib (printf etc.)

Bygga med flera C-filer Som tidigare gäller att programmet måste innehålla exakt en funktion med namnet main Dvs. en av dina filer måste innehålla din main-funktion, de andra får inte göra det

Övning Ta fram koden till din inlupp2 Dela upp den så att det finns en funktion per C-fil Ignorera ev. varningar till att börja med Provkör För kommandoradsanvändare: gcc *.c

H-filer Vi vill inte ha några varningar! För att uppnå det använder vi header-filer (filer med ändelsen.h) En h-fil innehåller typiskt: Funktionsdeklaration för en viss h-fil Inkluderas i c-filer: den som den hör till Deklaration vs. definition? de som anropar den funktion som har deklarationen i h-filen använd #include slump.h (ej <slump.h>)

Övning (1) Gör en h-fil för var och en av c-filerna till din modifierade inlupp2. Inkludera resp. i rätt fil Funktionsdeklarationerna ska finnas bara i h- filer. Funktionsdefinitioner ska finnas bara i c-filer.

Övning (2) Funktionsnamnet till din summeringsfunktion finns nu i 3 filer: Deklaration i h-fil Definition i c-fil Anrop i annan c-fil Låtsas att du behöver lägga till en intparameter (som inte används) till summeringsfunktionen, men glöm att införa den ändringen i en av de tre filerna (testa alla 3 möjligheterna) och kompilera. Slutsats?

Projektuppgifterna Videobutiken (standardprojekt) Tetris-klon Masken-klon Egna ideer

Projekt videobutiken Data: För varje film: titel, år, längd För filmer inne: hylla För uthyrda filmer: låntagarens namn+telefonnummer; återlämningstid För butikens räkenskaper: Saldo. Filminköp 500kr, uthyrning 50kr Funktionalitet (tänk igenom innan: det ska vara lätt för användaren): Lista filmerna som är inne, resp. lista de uthyrda. Svara på var en film finns resp. när den väntas in igen. Efter att programmet stängts av och sedan sätts på ska alla tidigare tillägg och ändringar finnas kvar Rimlig hantering av indata som är så felaktiga att de kan skada registret eller krascha programmet (gäller data från användare och fil) Lägga in och ta bort film Registrera/avregistrera uthyrning Visa saldot Option: Implementera som länkad lista istället för fix storlek data

Projekt videobutiken Gör ett menybaserat program. En programkörning kan visa följande meny (den kan också se annorlunda ut, och det kan finnas undermenyer): 1. Skriva in ny film 2. Ta bort film 3. Spara hela filmregistret till fil 4. Hämta filmregister från fil 5. Registrera uthyrning 6. Avregistrera uthyrning 7. Lista uthyrda filmer 8. Lista tillgängliga filmer 9. Ändra filmtitel 10. Visa detaljer om en film med visst namn 11. Firmans saldo. 12. Avsluta Ditt val:

Projekt videobutiken Visa ditt förslag och förklara dina tankar till någon av oss handledare. Detta ska göras innan du börjar koda

Meny-styrt program Hittills: Ledtext till användaren (med printf) Vänta på input från användaren (med scanf) Använd indata i någon beräkning Repetera Menybaserat: Skriv ut en uppradning av numrerade alternativ till användaren Vänta på ett input från användaren (med scanf) Låt input utgöra ett val bland de uppradade alternativen Repetera

Menystyrt program Välkommen till pressbyrån! 1 - Köpa tidning 2 - Lämna in tips 3 - Hämta ut paket 4 - Köpa telefonkort 5 - Avsluta Ditt val:

Menystyrt program - kod printf( Välkommen till pressbyrån!\n ); printf( 1 - Köpa tidning\n ); printf( 2 - Lämna in tips\n ); printf( 3 - Hämta ut paket\n ); printf( 4 - Köpa telefonkort\n ); printf( 5 - Avsluta\n ); printf( Ditt val: );

Menystyrt program - kod scanf( %d, &choice); switch(choice) { case 1: // Tidning buy(some_data); break; case 2: // Tipset pools_coupon(some_data); break; case 3: // Paket get_parcel(some_data); break; case 4: // Mobile card buy(some_other_data); break; case 5: // Stop break; }

Menystyrt program Om man låter bli att belamra casen med en massa kod så utgör menyhanteringen en bra översikt över ditt program - använd funktioner! Ibland kan det finnas behov av ytterligare indata från användaren efter att ett val har gjorts Ev. kan ett sådan hanteras med en undermeny (som ev. kan repeteras).

Tetris Ny kloss faller med visst tidsintervall Slumpen styr klosstyp och rotation T.ex. piltangenter för att rotera, sidförflytta, eller släppa ner klossen Om fullt lager tas detta bort och ger poäng När det inte längre finns plats att lägga ut en ny kloss är spelet slut. Använd Allegro för grafiken Kan även göras textbaserad (curses) Extra: Olika nivåer

Masken Styrs med tangenter (t.ex. piltangenter) Växer med tiden Äter äpplen (slumvis placerade och värde) Dör om den biter sig själv eller krockar med kanten Kan inte åstadkommas med standard-c Du behöver använda ett tilläggsbibliotek, t.ex. Allegro eller curses Allegro om du vill göra riktig grafik curses för att istället simulera grafik med text

curses Ett tilläggsbibliotek för bättre textbaserad I/O Bättre textutskrift (färger, positionering mm) Bättre tangentbordsinput Windows: pdcurses finns på nätet Linux: ncurses finns vanligen förinstallerat Div. Howtos på nätet. En beskrivning på svenska för just masken och för Dev-C++ (bör kunna härledas till Code::Blocks). Finns på hemsidan.

Allegro Ett tilläggsbibliotek för spelrelaterad multimediautveckling Finns på nätet, inkluderar docs Är installerad på linux i labbsalarna Christer kommer att ge en introducerande föreläsning (gemensam för alla grupper) Bevaka hemsidan om du är intresserad Efter structer

Egen ide Föreslå en egen ide till handledare Efter en ev. diskussion avgörs om det är rimligt Lämna in en kort beskrivning som bekräftas efter ev. iteration

Varför ta upp projektet nu? Du behöver ta ställning till vad du vill göra När nya saker tas upp: försök tänk på hur detta relaterar till det projekt du tänker göra! Du kan börja tänka ut funktionaliteten redan nu (skriv!!) Beroende på uppgift kan du skriva delar av koden (funktioner kan testas i isolering!!!)