+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

Storlek: px
Starta visningen från sidan:

Download "+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet."

Transkript

1 Uppgift 1 Ett programmeringsparadigm är i grund och botten ett sätt att arbeta, ett sätt att möta problem. Det finns flera olika paradigm där varje paradigm har sina egna styrkor och svagheter. Det som huvudsakligen kännetecknar ett programmeringsparadigm är hur koden struktureras och skrivs. Som jag har skrivit tidigare är alltså ett paradigm ett tillvägagångssätt, ett sätt att strukturera ett program, ett sätt att möta ett problem och till slut lösa detta. Värt att nämna är att olika problem ställer olika krav på utvecklaren, utvecklaren bör således välja ett paradigm lämpat för problemets domän. Vid val av programmeringsparadigm måste programmeraren veta vilket problem som skall lösas. När detta är klart kan denne fråga sig vilket verktyg och tillvägagångssätt som är bäst för att lösa problemet. För ett mindre problem skulle det procedurella paradigmet kunna vara lämpligt, för ett större projekt där detsutom flera utvecklare ansvarar för skapandet projektet bör med största sannolikhet det objektorienterade paradigmet väljas. Det procedurella paradigmet kännetecknas huvudsakligen av att dela upp problem i mindre delproblem, fokusera på problemet och skapa en effektiv problemlösnings strategi. Ett stort problem delas ner i mindre problem som tillsammans kan lösa det stora problemet utvecklaren har ställts inför. I procedurell programmering arbetar man med ett tydligt hurperspektiv, hur ska problemet angripas och hur ska det lösas. Med hjälp av funktioner och procedurer kan utvecklaren effektivt att dela upp olika delproblem i mindre segment som tillsammans löser det stora problemet. Approachen som används vid procedurell programmering kalls för 'Top down' - approach. Det procedurella paradigmet har precis som andra paradigm ett antal styrkor och brister. Det jag anser är fördelar med paradigmet är följande: +Återanvändbar kod Kod som har skrivits tidigare går att använda i andra program med enkelhet. Procedurella program delas upp i delprogram, dessa kodsegment går ofta att implementera i andra projekt, ibland utan större modifiering. Om en utvecklare till exempel behöver en funktion som sorterar en array med 100 värden skulle en sorteringsalgoritm kunna kopieras över från ett existerande projekt till det nya projektet. +Bra kontroll på kodflödet Det går med lätthet att hålla bra koll på kodflödet i procedurella program. +Enkel felsökning Felsökning sker enkelt i det procedurella paradigmet. Programkoden är uppdelad i delar som var för sig ansvarar för delproblem. Om något i dessa delproblem(funktioner/procedurer) inte skulle fungera som det är tänkt går det snabbt och enkelt att identifiera var den felande länken finns och där efter åtgärda dem. +Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet. +Lättförståeligt Går med enkelhet att sätta sig in i vad programmet gör och vilket problem det förväntas att göra. -Lämpar sig inte för större projekt När en utvecklare behöver utveckla ett större projekt lämpar sig inte detta paradigmet. Större möjlighet till struktur krävs för att utvecklaren på ett effektivt sätt skall kunna ta sig an problemet som denne har ställts inför. -Brist på struktur Med detta menar jag främst avsaknaden av klasser och objekt. Skall en programmerare till exempel med programkod representera tre hus, dessa hus har fyra fönster, två dörrar och två våningar. Dessa egenskaper skall beskrivas. Hade programmeraren valt det objektorienterade paradigmet hade dessa egenskaper kunna definieras genom tre objekt som är instanser av en klass med dessa attribut. I det procedurella paradigmet skulle programmeraren vara tvungen att deklarera variabler för varje hus och dess egenskaper. Detta skulle direkt medföra mycket mer kod, större yta att göra del och mindre kontroll. Det objektorienterade paradigmet består av olika objekt som tillsammans bildar ett funktionellt program. De olika objekten byggs upp med hjälp av klasser. De olika klasserna interagerar med varandra för att utgöra den funktionalitet som önskas av utvecklaren / användaren. I det objektorienterade paradigmet arbetar man med en 'bottom up' approach, att med hjälp av objekt tillsammans bygga upp ett fullständigt program. Man måste tydligt fråga sig själv Vad ska vi lösa när det kommer till objektorienterad programmering. +Struktur Programkoden kan struktureras upp på ett effektivt och logiskt sätt. Med hjälp av klasser kan programmeraren lätt strukturera upp programmet på ett effektivt sätt. Strukturen inom detta paradigmet står i tydlig kontrast mot det procedurella paradigmet där klasser inte existerar enligt paradigmets regler och riktlinjer. Om en programmerare skulle vilja ha två ett spel med två tärningar skulle båda dessa tärningars egenskaper behöva definieras två gånger med det procedurella paradigmet medans man bara skulle behöva göra det en gång med det objektorienterade paradigmet. -Komplexitet. Programmets komplexitet ökar med det objektorienterade paradigmet. Det kan vara svårare att få en helt överskådlig blick över programkoden. Med införandet av klasser och objekt sker givetvis en komplexifiering av programkoden. -Klassehierarkier kan bli väldigt stora Klasshierarkier kan bli väldigt stora och beroende av varandra. Således kan det bli väldigt svårt att hitta fel i koden och ställa dem till rätta.

2 Det deklarativa paradigmet har en tydlig vad-approach, vad skall utföras. Detta används tex inom databas programmering. Till exempel, vad skall utföras? Hämta data från en tabell sorterat efter ett ID-nummer. Ett antal sanningar deklareras om problemdomänen, en mekanism tar emot förfrågningar om problemdomänen och beräknar svar på dessa frågor. Deklarationer byggda på logik används, som visar resultat på en funktion, inte hur det ska utföras. -Inte möjligt på samma sätt att definiera funktioner. -Brister i funktiondefinition. +Bra i databas-sammanhang. +Tydlig vad approach för problemhantering. +Vad som förväntas av en funktion, inte hur. Två språk som associeras med det procedurella paradigmet: BASIC och C. F, De tre olika konstruktionerna sekvens, selektion och iteration är byggstenar som frekvent används inom programmering. Det är dessa som huvudsakligen gör det möjligt att programmera och är således vitala för ett procedurellt programmeringsspråk(och andra paradigm för den delen). En sekvens är en steg för steg operation, att man metodiskt går igenom programkoden. Man skulle kunna beskriva en sekvens som en serie instruktioner som utförs en efter en. Selektion innebär att man gör vägval i programmet, tex, om värde 1 är större än 0 skall programmet utföra en viss algoritm, i annat fall skall programmet utföra något annat. Selektion är en väldigt viktig byggsten i programmering, oavsett vilket paradigm det gäller. Det är med hjälp av selektion vi gör våra vägval i programmet. I vissa fall vill vi att ett stycke kod skall upprepas ett visst antal gånger. Det är i detta skedet iteration kommer till användning. Det innebär helt enkelt att programmet upprepar ett visst antal gånger beroende på användarens krav som kommer att evalueras. 2, Analys, i den här fasen fastställs det vilket problem det är som skall lösas. Vilken funktionalitet programmet skall ha. De dolda antaganden som finns i programmet specificeras här. Det är i det här skedet som en kravspecifikation för projektet tas fram. Dolda antaganden, problem som ska lösas, krav från kundens sida, vad finns det för lösning på problemet, vilken input kommer programmet att få och slutligen vilken output kommer programmet att ha. Design, i det här skedet tas en systembeskrivning fram. Vilken plattform skall mjukvaran köras på, algoritmer som skall användas, vilket programmeringsspråk skall användas, vilka delsystem. Vad behövs och hur skall detta utföras? Allt detta sammantaget skall resultera i en systembeskrivning. Implementation, i detta skedet sker själva programmeringen av mjukvaran. Ut efter systembeskrivningen och kravspecifikationen är det programmeraren / programmerarnas uppgift att utveckla mjukvara som uppfyller de krav och specifikationer som har satts i tidigare skeden. Efter att denna fasen avslutas skall det finnas programkod och eventuellt testprotokoll. Testing, i det här skedet kompileras programmet och testas. Debugging kan även ske i den här fasen. Har allt skett godtyckligt är utvecklingen i stort sätt färdig. Betalning sker. Resultat från den här fasen skall vara ett testprotokoll. Kund får godkänna programmet. De moment som ingår i designfasen är analysera problemet som utvecklaren har ställts inför och hur dessa skall lösas. Identifiera delproblem Vilka delproblem existerar och måste lösas? Detta är en fråga som en utvecklare måste ställa sig själv för att kunna lösa det befintliga problemet. Den här punkten kan likställas med att identifiera de punkter som måste finnas till hands för att programmet i helhet ska kunna fungera önskvärt. I den här fasen identifieras de olika delproblemen som existerar och krav specificeras. Identifiera vilken plattform mjukvaran skall köras på? Att veta vilken plattform mjukvaran förväntas användas på är av den yttersta vikten då vissa begränsningar kan existera hos olika typer av hårdvara samt inkompatibilitet mellan diverse operativsystem. Utan att veta detta skulle det över huvud taget inte gå att utveckla mjukvara på ett rimligt sätt. En bra liknelse är att bygga en bil för att köra på vatten. Vilket programmeringsspråk skall användas? Det här kan jämföras med att välja rätt verktyg för jobbet. Beroende på vilken uppgift man ställs inför bör rätt språk väljas. Åter igen kommer jag använda mig av en liknelse: man hamrar inte i en spik med en skruvmejsel. Det går, men det är inte effektivt. Den här punkten handlar om att välja det verktyg som lämpar sig bäst för jobbet. Vilka algoritmer kan / skall användas? Detta handlar om att välja lösningar i programkoden som är effektiva för ändamålet. Om tex en array med heltal behöver

3 sorteras är inte bubble-algoritmen den mest effektiva sorteringsalgoritmen tillgänglig. Som sagt, det handlar om att implementera det som är det bästa för problemet i sig. Arbetet i den här fasen skall resultera i en systembeskrivning där resultatet av de olika underpunkterna sammanställs som i sig innehåller svaret på de identifierade delproblemen, vilka systemkrav som existeras vad gällande plattform, vilket programmeringsspråk som skall användas samt användandet av algoritmer. Programmet ska vara väl strukturerat rent kodmässigt. Koden bör vara lättläst och enkel att jobba med. Med detta menar jag att utvecklaren i fråga använder sig av funktioner, procedurer och även klasser om paradigmet tillåter användandet av detta. Detta tillåter en bättre läsbarhet och förståelse av koden. Detta är fördelaktigt om man skall fortsätta utveckla ett program. Kod skall vara indenterad för att man lätt skall kunna läsa programkoden. Läsbarheten blir avsevärt försämrad ifall programmeraren inte använder sig av indentering. I de allra flesta fall helt oläslig. Detta leder givetvis till utvecklingen sker mindre effektivt i framtiden. Programkoden skall inte bestå av fulhack eller fulkod, detta försämrar för framtida utvecklare av programmet. Koden skall vara lättläst, spaghettikod får inte existera då detta är i stort sätt omöjligt att arbeta med som ny programmerare i projektet. Skulle fulhack existera riskerar det även att försämra programmets pålitlighet då de inte alltid kan anses vara pålitliga. Koden bör vara väl dokumenterad och kommenterad för att man lätt skall kunna sätta sig in i vad aktuella algoritmer utför för funktion. Utan väl uppbygd dokumentation är det som utomstående svårt, om inte omöjligt att sätta sig in i en annan utvecklares tänk och sätt att bygga program. Om man är tvungen att arbeta med ett stort projekt och dokumentation inte finns tillgänglig kan det i värsta fall ta mer tid att sätta sig in i programmet än att skriva om det från scratch. Top down approach bygger på att man bryter ner problemet i mindre bitar som tillsammans möjliggör en lösning av problemet i fråga. Man bryter alltså ner ett problem i mindre delproblem tills det problemet löses av alla de mindre delprogrammen som representeras av funktioner och procedurer. Detta anses vara en effektiv problemslösningsstategi. Man har ett tydligt fokus på problemet i fråga. Den här approachen används flitigt inom det procedurella rogrammeringsparadigmet. Bottom up approach bygger på att man bygger upp ett större program av subsystem. Dessa subsystem kommer agera som delar av det stora programmet i helhet. Den här approachen används inom objektorienterad programmering. Skillnaden mellan dessa är att man i Top Down specifierar och identifierar de olika delproblemen som existerar och när detta är gjort kan arbetet att bygga programmet inledas. I Bottom up är det i stort sätt det motsatta. Man börjar i stort sätt direkt att börja bygga sina subsystem som tillsammans utgör det större programmet. I bottom up blir återanvändningen av kod bättre än i top down. Klasser går att återanvända i större utsträckning. Rapid prototyping innebär att man snabbt tar fram modeller för ett projekt och har en bra kontakt med kund. Man bör tidigt försöka påvisa för kunden vad som händer med projektet. Det kan lätt bli fel så att börja om kan lätt ske. Detta är dock något som ingår i modellen. Dock sker arbetet och modelleringen snabbt. Kontakten med kunden är viktigt då de är närvarande i framtagandet av modeller och avgör om dessa är godkända eller ej. 3 Det är viktigt att arbeta på ett strukturerat sätt för att ha bra koll på vad som sker i projektet och vad som behöver göras. Att arbeta från livscykelmodellen är av vikt. Att man först identifierar vilka krav som existerar, vad programvaran förväntas utföra, vilka delproblem som behöver lösas. Har man kommit underfund med det kan man skriva programmet på ett effektivt sätt. Problem kan lösas systematiskt. När detta väl har skett kommer arbetet att skötas mycket enklare. Har man dokumenterat projektet väl kommer man lätt kunna återgå till det ifall fel skulle uppstå och man kan ställa eventuella fel till rätta. Struktur är viktigt för att man som programmerare skall kunna jobba på ett effektivt sätt och producera korrekt och funktionell mjukvara. Detta innefattar även fall av debugging. Utan korrekt skriven mjukvara kommer processen att felsöka koden försvåras avsevärt. Syntaktiska fel innebär att något i programkoden är fel och programmet kan således inte kompileras. Det kan till exempel vara att en rad inte har blivit avslutat korrekt, eller att man helt enkelt har stavat fel vid något tillfälle. Exekveringsfel innebär att något går fel under programmets körning. Programmet kan tex försöka använda minne som inte tillhör programmet och ett segmenteringsfel uppstår.

4 Semantiska fel innebär att programmeraren har tänkt fel när programmet skrevs. Koden i sig kan vara rätt men utfallet blir helt fel vilket resulterar i att programmet inte fungerar önskvärt. Det kan till exempel vara fel i en uträkning av ett värde som genererar ett felaktigt resultat. Använder sig av metoden divide an conquer, i stort sätt eliminerar man tal som skiljer sig från det talet man letar efter. Man kollar först på talet som ligger i mitten av arrayen. Är det sökta talet mindre eliminerar man allt som är större än. Är det sökta talet större eliminerar man allt som är mindre. Är talet vi söker lika med talet i mitten av talserien har vi hittat det talet vi söker. På så sätt kan man söka igenom en talserie effektivt. Den här metoden är en väldigt effektiv sökmetod, dock förutsätter den att talföljden är sorterad. Genom att dela upp programkoden i funktioner kan man uppnå en större struktur av programmet. Denna struktur gör att man enklare kan utföra de delproblem som existerar. Det blir väldigt mycket enklare att arbeta om man vet att varje funktion fyller sin uppgift och gör det väl. Då kan man på ett effektivt strukturera upp programmet så det utför de steg man förväntar sig att det ska göra. Koden kommer även bli mycket renare om man väljer att använda sig av funktioner. Utan funktioner blir man tvungen att skriva sin kod i en enda stor härva. Denna härva kan lätt bli oöverskådlig, eventuella fel blir svåra att hitta så debugging kommer att ske ineffektivt. Om man är flera som arbetar på ett projekt kan man enkelt dela upp arbetet. Den ena utvecklaren kan tex bli tilldelad en funktion medans en annan utvecklare skriver en annan. Sedan implementeras dessa funktioner i huvudprogrammet. Kommentarer kan hjälpa till vid läsning och förståelsen av kod. Allt för ofta händer det att tex funktions funktionalitet glöms av och koden måste gås igenom för att komma på vad kodsegmentet utför. En kommentar kan beskriva funktionen och dess definition. Kommentarer kan även användas för att påminna en utvecklare om var denne avslutade arbetet senaste och var utvecklaren bör påbörja sitt arbete. Kommentarer kan även beskriva vad som krävs för att funktioner skall funka korrekt om en annan utvecklare bestämmer sig för att ändra i programmet. 4, Att strukturera data på ett ändamålsenligt sätt innebär att man använder skriver kod på ett sätt så man inte har onödiga variabler eller funktioner i programmet. Att överflödig kod undviks helt enkelt. Har man en funktion som utför en viss funktion behövs det med största sannolikhet inte en till funktion som utför en väldigt snarlik process eller rent av samma, då är det med största sannolikhet bättre att man använder sig av den befintliga funktionen för sitt syfte. Samma tänk kan användas vid användandet av variabler. En programmerare skulle kunna använda en variabel för att lagra ett visst värde för att sedan lagra ett uppdaterat värde av det ursprungliga värdet i en ny variabel. Detta är inte optimalt då programmeraren istället skulle utgå från den ursprungliga variabeln för att spara det nya värdet. Att använda olika datatyper är nödvändigt vid utveckling av mjukvara. Beroende på vilket beteende som eftersökt bör en korrekt datatyp väljas. Om ett program till exempel skall fråga efter en användares personnummer kan vi till exempel inte ha ett heltal eller int då den datatypen inte hanterar bindes-tecken som kommer att behövas när man matar in sitt personnummer(yyyymmdd-xxxx). Detsutom allokerar de olika datatyperna olika mycket minne. Att använda rätt typ kan då även optimera programmets resurskonsumption. Att använda olika datatyper blir således nödvändigt för att vi skall få ett funktionellt program. En array kan liknas vid en byrålåda som har flera olika lådor där information kan sparas. Detta kan vara väldigt användbart ifall man skulle vilja spara flera olika värden av samma typ på ett och samma ställe. En array kan ha flera element där varje element får ett index. Vi kan spara ett värde i varje element och nå det genom att kalla på arrayen och det index för elementet vi vill komma åt. Som jag skrev tidigare i punkten är detta väldigt användbart ifall man vill spara flera värden på ett ställe och slippa deklarera flera olika variabler för att spara de värdena. tal1 initieras och tilldelas värdet 5. tal2 initieras och tilldelas värdet 10 Pekare initieras och tilldelas värdet av Tal2 Tal1 tilldelas värdet av tal1 + tal2 pekartal tilldelas värdet av pekartal + pekartal, i och med att det pekar mot tal2 tilldeleas alltså tal2 värdet av tal2 + tal2. skriv ut tal1 och ny rad, skriv ut tal2 och ny rad, skriv ut pekartal och ny rad. Det som kommer att skrivas ut är 15 för tal 1, 20 för tal2 och 20 för pekartal. Fel 1: #include <iostream> Fel 2: string namn; Fel 3:

5 cout << "Välkommen till Casion 2012 " << "Vad heter du?" << endl; Fel 4: f( nummer < 18 ) { cout << "Du är för ung för att spela det här spelet" << endl; else { cout << "Du är välkommen, men tyvärr har vi stängt idag." << endl; Fel 5: return "Hej då"; Fel 6: saknas på slutet. Rättat kod nedan: #include <iostream> using namespace std; int main() { string namn; int nummer; cout << "Välkommen till Casion 2012 " << "Vad heter du?" << endl; cin >> namn; cout << "Hej " << namn << endl; cout << "Hur gammal är du? "; cin >> nummer; cout << "Du är " << nummer << endl; if( nummer < 18 ) { cout << "Du är för ung för att spela det här spelet" << endl; else { cout << "Du är välkommen, men tyvärr har vi stängt idag." << endl;

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

1 Klasser och objektorientering Vad är objektorientering?

1 Klasser och objektorientering Vad är objektorientering? 1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning

Läs mer

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 20 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 20 Internminne

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs . TDIU01 (725G67) - Programmering i C++, grundkurs Program, datatyper och IO Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/14 Struktur på ett C++-program Köra ett program Variabler

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 21 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 21 Internminne

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5 Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

Kursplanering för EE3D i kursen Programmering 1, 100p.

Kursplanering för EE3D i kursen Programmering 1, 100p. Kursplanering för EE3D i kursen Programmering 1, 100p. Tidplan Kursstart 2013-08-22 - Kursslut 2014-06-03 Datum/Period Kursinnehåll/Moment Sidhänvisning Vecka 34 Kursintroduktion Vecka 35 Allmänt om Java,

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock

Läs mer

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande: Programmering PRR Programmering Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik,

Läs mer

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5 Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

TDP004. Minne och pekare. Eric Elfving Institutionen för datavetenskap

TDP004. Minne och pekare. Eric Elfving Institutionen för datavetenskap TDP004 Minne och pekare Eric Elfving Institutionen för datavetenskap 1 / 23 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 23 Internminne - RAM Datorns internminne (RAM,

Läs mer

SKOLFS. beslutade den -- maj 2015.

SKOLFS. beslutade den -- maj 2015. SKOLFS Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj

Läs mer

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med

Läs mer

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20 Programdesign Välj datastruktur så programmet blir så enkelt som möjligt. Välj algoritm så programmet blir lättläst, robust och effektivt. Analysera programmet för att få en bra metod. Överväganden vid

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

Programdesign. Dokumentera. Dokumentera

Programdesign. Dokumentera. Dokumentera Programdesign Dokumentera Välj datastruktur så programmet blir så enkelt som möjligt. Välj algoritm så programmet blir lättläst, robust och effektivt. Analysera programmet för att få en bra metod. Överväganden

Läs mer

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

Läs mer

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar Vi kommer att behöva hantera samlingar av objekt - Har oftast använd Array (fält) - Bra om

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Föreläsning 10. Pekare (Pointers)

Föreläsning 10. Pekare (Pointers) Föreläsning 10 Pekare (Pointers) Dagens kluringar int a=5; int f(int b) a--; b++; return b; int main() int a=3; printf("%d,",f(a)); printf("%d",a); return 0; int f(int a) if(a==1) return a; else return

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2015-03-17 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt. 1 Samlingar 1.1 Frekvenstabell En Integer är icke-muterbar (precis som String, Float, Boolean et.c.). Ickemuterbarhet har många fördelar, men en nackdel är att ett helt nytt objekt måste skapas när ett

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

Läs mer

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering.

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering. KAPITEL 8 Klasser Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering. 169 Hittills: Enkel datatyp: double, int, char Operationer: förutbestämda, t ex +,

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Frekvenstabell över tärningskast med C#

Frekvenstabell över tärningskast med C# Instruktion Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Innehåll Du ska följa steg för steg -instruktionen i

Läs mer

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT TIDAA Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

TDDC76 Programmering och datastrukturer

TDDC76 Programmering och datastrukturer TDDC76 Programmering och datastrukturer Arv, polymorfi och objektorienterad programmering Oskar Holmström Institutionen för datavetenskap Agenda 1 Pekare 2 Arv 3 Statisk bindning 4 Polymorfi 5 Destruktorer

Läs mer

Sammansatta datatyper Generics: Parametrisk polymorfism

Sammansatta datatyper Generics: Parametrisk polymorfism jonas.kvarnstrom@liu.se 2017 Sammansatta datatyper Generics: Parametrisk polymorfism Listor och arrayer 2 Enligt TDDD73: Många språk har både listor och arrayer även Java och Python! Exakta definitioner

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

Objektorienterad konstruktion

Objektorienterad konstruktion Analys - Objektorienterad konstruktion Vad är objektorientering?» Ett sätt att angripa programmeringsproblem» Ett sätt att tänka när man programmerar Vad innebär objektorientering?» Att uppmärksamheten

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data 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

Läs mer

Anteckningar 1: Grundläggande saker

Anteckningar 1: Grundläggande saker UPPSALA UNIVERSITET Institutionen för lingvistik och filologi Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv11/pst1/ Programmering för språkteknologer I Anteckningar 1: Grundläggande saker 1 Programmering

Läs mer

TDIU01 Programmering i C++

TDIU01 Programmering i C++ TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista

Läs mer

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

Föreläsning 3. Programmering, C och programmeringsmiljö 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

Läs mer

Funk%oner. Vad är det och hur definierar vi en Top- down- programmering lokala globala variabler void och flera inparametrar

Funk%oner. Vad är det och hur definierar vi en Top- down- programmering lokala globala variabler void och flera inparametrar Funk%oner Vad är det och hur definierar vi en Top- down- programmering lokala globala variabler void och flera inparametrar OBS! Till nästa gång läs igenom problemlösning 1 och skissa på lösningar! Problemlösning

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

1 Funktioner och procedurell abstraktion

1 Funktioner och procedurell abstraktion 1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Skizz till en enkel databas

Skizz till en enkel databas Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil

Läs mer

C++ Lektion Tecken och teckenfält

C++ Lektion Tecken och teckenfält C++ Lektion Tecken och teckenfält Teori Hittills har alla variabler du jobbat med varit olika typer av tal, men du kan också deklarera variabler som håller bokstavstecken. Denna variabeltyp kallas för

Läs mer

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Lektion C2 Villkor Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Du gör ofta val i livet, och valet du gör får olika konsekvenser och följder.

Läs mer

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

Läs mer

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap Hur man programmerar TDDC66 Datorsystem och programmering Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2014-09-05 Översikt Problemlösning: Hur ska man tänka? Datatyper Listor (forsätter

Läs mer