Presentation laddar. Vänta.

Presentation laddar. Vänta.

DA7351 Programmering 1 Föreläsning 1, Introduktion Presentation av kursen Vad är programmering? Problemlösning, en del av programmeringskunskapen. Lite.

Liknande presentationer


En presentation över ämnet: "DA7351 Programmering 1 Föreläsning 1, Introduktion Presentation av kursen Vad är programmering? Problemlösning, en del av programmeringskunskapen. Lite."— Presentationens avskrift:

1 DA7351 Programmering 1 Föreläsning 1, Introduktion Presentation av kursen Vad är programmering? Problemlösning, en del av programmeringskunskapen. Lite om java och utvecklingsmiljöer Ett första program

2 DA7351 Programmering 1 Vad är programmering? Det finns många svar på den frågan, beroende på vilken infallsvinkel man har på ämnet och hur man uppfattar frågan. Här nedan är några förslag på svar. Hur ser din uppfattning ut? Sammanfaller den med någon av de nedanstående alternativen? Att ge instruktioner till en maskin så att den utför det man vill Del av att utveckla programvara Kreativ problemlösande verksamhet

3 DA7351 Programmering 1 Programmering 1 Kursansvariga: Rolf Axelsson och Kristina von Hausswolff Hemsida: Föreläsningar: cirka 27 st Laborationer/Övning cirka 20 st Projekt, i slutet på kursen om cirka 2 p Tentamen 17/12

4 DA7351 Programmering 1 Kursplan DA7351 Syfte Kursen syftar till att ge grundläggande kunskaper och färdigheter inom programmering av datorer och skall ge erfarenhet av problemanalys, problemlösning, implementering, samt dokumentation av programvara. Vidare ger kursen kunskaper och färdigheter inom strukturerad programmering och objektorienterad programmering. Mål Studenten skall efter genomgången kurs behärska konstruktion, analys och implementering av objektorienterade datorprogram vilket bygger på de verktyg som getts i kursen. Kursen skall ge erfarenhet av att konstruera programvara i projekt. Innehåll Problemlösningsstrategier Formell och informell logik som hjälpmedel vid utformande av algoritmer Strukturerad och objektorienterad programmeringsmetodik Strukturerad programmering bland annat innehållande sekvenser, selektionen, iterationer och metoder Objektorienterad programmering, bland annat innehållande klass, arv, gränssnitt, abstrakt klass, polymorfism och relationer mellan klasser Språkspecifika tillämpningar

5 DA7351 Programmering 1 Kurslitteratur Tänkande som beräkning en inledning till data- och kognitionsvetenskap av Janlert, Lars-Erik Häftad. Studentlitteratur AB, Sverige, 1999 (ISBN ).Janlert, Lars-Erik Java How To Program av Deitel, Paul J., Deitel, Harvey M. Paperback. Pearson Higher Education, Sverige, 2003 (ISBN )Deitel, Paul J. Deitel, Harvey M.

6 DA7351 Programmering 1 Problemlösning Hur ser vi problemet? Vilka strategier har vi för att lösa problemet? Hur vet vi att lösningen är korrekt? Exempel på problem. Aktivitetsdiagram (se Tänkandet som beräkning s , 83-97)

7 DA7351 Programmering 1 Att göra ett program Uppgiftsformulering, vad är det för uppgift som ska lösas? Formulera uppgiften i termer av vad en dator kan utföra. Avgränsa problemet, vad är en del av uppgiften? Vad ingår inte? Algoritmkonstruktion, vilka algoritmer är de mest lämpliga för detta problem? Konstruera strukturen på programmet och skriv ner så kallad pseudokod. Detta är kreativ problemlösning. Verifikation, kontrollera att algoritmen verkligen löser problemet t.ex. genom att kontrollera viktiga specialfall. Kodning, översätt pseudokoden till ett programmeringsspråk t.ex. Java Validering, kontrollera att programmet är korrekt. Dokumentation, beskriva din lösning både i löpande text, med hjälp av UML och som kommentarer i programmet (t.ex. javadoc). Underhåll, åtgärda buggar, förbättra och lägg till funktionalitet.

8 DA7351 Programmering 1 Olika problem På de följande sidorna finna tre olika problem. Vilken lösning har de? Hur angriper du problemen? Vilka problemlösnings strategier har du? Är någon av dessa problem mer lämpliga att lösa med hjälp av ett datorprogram? Hur skulle ett sådant program se ut?

9 DA7351 Programmering 1 Problem eller uppgift En dominobricka täcker två intilliggande rutor på ett schackbräde. Är det möjligt att lägga ut 31 brickor så att två motstående hörn av brädan blir kvar otäckta?

10 DA7351 Programmering 1 Handelsresandeproblemet En handelsresande ska resa till ett antal städer. Han ska besöka varje stad en gång och börja i samma stad som han slutade i. Man känner till avståndet mellan alla städerna. I vilken ordning ska hon besöka städerna för att minimera den totala reslängden?

11 DA7351 Programmering 1 NOG- problem Antalet sjukskrivna ökade kraftigt på ett företag p.g.a. en epidemi. Hur många personer var anställda vid företaget? (1)Antalet sjukskrivna ökade med 124 personer i samband med epidemin. (2)Under epidemin utgjorde antalet sjukskrivna 11,2 procent av antalet antalet anställda. Tillräcklig information för lösningen erhålls A i (1) men ej i (2) B i (2) men ej i (1) C i (1) tillsammans med (2) D i (1) och (2) var för sig E ej genom de båda påståendena

12 DA7351 Programmering 1 Aktivitetsdiagram Ett sätt att beskriva en algoritm eller ett flöde i ett program är med hjälp av ett aktivitetsdiagram. Aktivitetsdiagrammet är ett av nio diagram som ingår i UML-standaren. UML är ett standardiserat sätt att beskriva datorprogram/system som användas både vid konstruktion och dokumentering. I kursen kommer aktivitetsdiagram främst att användas för att beskriva algoritmer.

13 DA7351 Programmering 1 Aktivitetsdiagram (Activity diagram) De olika symbolerna som ingår i aktivitetsdiagram: Activity (beskriver en aktivitet) Transition with guard (en övergång från en aktivitet till en annan med ett vilkor som måste vara uppfyllt för att övergången får ske.) Synchronization bar (fork, join) (för att markera att detta sker samtidigt) Decision or merge (ett vägskäl eller en ihopslagning för att kunna välja olika vägar beroende på ett val) Start marker (aktiviteten börjar) Stop marker (ett av kanske flera möjliga avslutningar)

14 DA7351 Programmering 1 Aktiviteten ”att fika”

15 DA7351 Programmering 1 Aktiviteten att låna böcker

16 DA7351 Programmering 1 Programmering i Java I denna kurs kommer vi att programmera i programmeringsspråket Java. Utvecklingmiljön kan man välja själv men NetBeans 4.0 finns i labbsalarna. (Java, How to program, femte upplagan kapitel 1 (1.15 kursivt) och )

17 DA7351 Programmering 1 Java lite historia Java är ett programspråk som utvecklats av Sun Microsystem under ledning av James Gosling. Det blev allmänt tillgängligt Från början var tanken med Java att det skulle användas i olika typer av elektronik som brödrostar eller diskmaskiner. 1995: Från början var kanske Java mest känt som ett slags programspråk som man använder på Internet för att skapa häftiga effekter på webbsidor. Javaprogrammet kan t.ex. generera ljud och rörliga bilder eller låta användaren kommunicera med programmet med hjälp av mus och tangentbord. Men Java är ett fullfjädrat programspråk. Med Java kan man, liksom t.ex. C++ och C#, skapa fullständiga applikationsprogram som inte alls behöver köras i en webbläsare.

18 DA7351 Programmering 1 Egenskaper hos Java Java är plattformsoberoende. Med plattform menas ett visst operativsystem som kör på en viss typ av dator. Windows XP på en PC är t. ex. en plattform. Linux på en PC är en annan plattform. Java innehåller verktyg för att generera grafiska användargränssnitt. Man kan alltså med hjälp av Java skriva grafiska program, dvs sådana program som använder fönster, menyer, knappar etc, för att kommunicera med användaren. Java är objektorienterat. Java bygger helt på den objektorienterade principen för att konstruera program. Java gör det möjligt att skriva parallella program. Java stödjer nämligen s.k. multitrådar. Detta innebär att javaprogrammet kan beskriva flera aktiviteter som pågår samtidigt. Java kan användas på Internet.

19 DA7351 Programmering 1 Några nacktdelar med Java Att köra ett java program går lite långsammare än att köra motsvarande program i t.ex. C++. Detta för att java program (t.ex Welcome.java ) ej kompileras till en körbara fil (exe-fil) utan till s.k. bytekod (t.ex. Welcome.class). För att dessa klass filer ska kunna exekveras (köras) behövs en tolkare som är specifikt för ett operativsystem (interpretator). Själva tolkningen gör att java är långsammare än kompilerade program i C++ som kan köras direkt (dock fungerar de bara på ett specifikt operativsystem). Java har många standardklasser som man bör sätta sig in i och använda. De finns i Javas API (Application Program Interface) och vi använder J2SE (Java 2 Standard Edition). Javas API innehåller dock oerhört många klasser så det är endast möjligt att använda en mindre del av dem utan att ta del av dokumentation. Då det var meningen att Java främst skulle använda grafik i sin kommunikation med användaren är inte klasser för att kommunicera med tangentbordet så utbygga (därför ska vi använda extra-paketet, finns på kurssidan).

20 DA7351 Programmering 1 Java (IDE) Ett modernt integrerat programutvecklingssystem, ett s.k. IDE (Integrated Development Environment) brukar erbjuda programmeraren en miljö där det finns alla hjälpmedel man behöver för att utveckla program. Det finns sådana system även för Java. JDK1.0, JDK1.0.2, JDK1.1, JDK1.2,JDK1.3, JDK1.4.2, JDK 1.5 JBuilder X eller JBuilder2005 (www.borland.com) Microsoft Visual J++ JCreator NetBeans 4.0 eller 4.1 Open Source från Sun(www.netbeans.org)

21 DA7351 Programmering 1 Java (JDK) Sun har utvecklat så kallade JDK (Java Development Kit) som är programpaket som innehåller de olika program och klassbibliotek som man behöver för att utveckla och köra javaprogram. Dessa klassbibliotek går under samlingsnamnet Java API (Application Programming Interfaces). JDK är allmänt tillgängligt på internet. I denna kurs kommer JDK att användas. Vid installation av NetBeans 4.0 följer JDK med.

22 DA7351 Programmering 1 Programmeringspråk Ett programmeringsspråk är ett antal regler (syntax) och dess betydelser (semantik) i vilket en programmerare kan uttrycka sig och ge instruktioner till en dator. Prpgrammerare skriver text i programmeringsspråket som översätts av en kompilator till något en dator kan förstå. Det finns olika nivåer (typer) av programmering språk. Man delar ofta in programmeringspråk i fyra typer: –Maskinkod, den kombination av ettor och nollor som datorn förstår –Assemblerkod, varje kombination av ettor och nollor motsvaras av ett ord (assemblerinstruktioner) –Högnivåspråk, varje rad motsvarar ett stort antal assemblerinstruktioner, t.ex. Java, C, C++, Ada, … –Fjärde generationens språk (4GL), kraftfulla språk som är anpassade till ett speciellt applikationsområde oftast olika typer av databasapplikationer

23 DA7351 Programmering 1 Hur programmerar man? Man skriver in programkoden (källkoden) med hjälp av en texteditor. Man sparar koden (som enbart består av text) i en fil, en s.k. källkodsfil. När man arbetar med Java ska filen alltid ha suffixet java, dvs. filnamn.java Man kompilerar (översätter) filen till ett format som datorn kan förstå. När man arbetar med Java översätts källkoden till ett format som kallas bytekod. Bytekoden lagras i en fil som kallas för klass-fil. Klass-filen ska alltid ha suffixet class, dvs. filnamn.class. Bytekoden interpreteras (tolkas) sedan av en virtuell maskin i datorn (alternativt kompileras till maskinkod som körs på datorn). Man testar programmet för att se om det fungerar som man hade tänkt sig. Om det inte fungerar som man hade tänkt sig letar man upp felet, ändrar i källkoden och testar igen.

24 DA7351 Programmering 1 Olika typer av fel Kompileringsfel –Dessa fel uppstår redan när man försöker att kompilera programmet, dvs. Javakompilatorn skriver ut ett felmeddelande. Ett vanligt exempel är att man han stavat fel på något ställe i källkoden eller glömt ett semikolon. Här kollar kompilatorn om syntaxen är korrekt. Exekveringsfel –Dessa fel uppstår när man exekverar (kör) programmet, det vill säga man får ett felmeddelande från Javainterpretatorn. Ett vanligt exempel är att man försöker dividera ett tal med noll (någonting delat med noll ger ett odefinierat resultat) Logiska fel –Dessa fel visar sig genom att programmet inte gör det man hade tänkt, det vill säga programmet kör utan felmeddelanden men resultatet blir inte det avsedda. Den här typen av fel är de som är svårast att hitta.

25 DA7351 Programmering 1 Java Applets och Java Applications Det finns två typer av Javaprogram: –Java Applets –Java Applications De Javaprogram som man hittar på olika hemsidor på Internet är nästan alltid Applets. Bytekoden till Applets- program byggs in i HTML-dokument och körs med hjälp av Webbläsaren (Netscape eller MS Explorer), dvs. Webbläsaren sköter interpreteringen (eller kompileringen) av bytekoden. Java Applications fungerar som mer traditionella datorprogram, och de körs med hjälp av den vanliga interpretatorn (som heter java.exe).

26 DA7351 Programmering 1 Getting Started with Java Programming A Simple Java Application Compiling Programs Executing Applications

27 DA7351 Programmering 1 A Simple Java Application Example //This program prints Hello, welcome to Java! public class Welcome { public void sayHello() { System.out.println(“Hello, welcome to Java!"); } public class StartWelcome { public static void main(String[] args) { Welcome application = new Welcome(); application.sayHello(); }

28 DA7351 Programmering 1 Ett enkelt Javaprogram (källkod) // Ett litet program som skriver ut texten: Java är skoj! public class JavaFun { public void print() { System.out.println("Java är skoj!"); } // här slutar metoden print } // här slutar klassen JavaFun // Ett klass för att skapa ett objekt av typen JavaFun och anropa // metoden print. public class StartJavaFun { public static void main(String[] args) { JavaFun funProg = new JavaFun(); funProg.print(); } // här slutar metoden main } // här slutar klassen StartJavaFun

29 DA7351 Programmering 1 Hur gör man för att köra programmet JavaFun 1.Skriv källkoden i en texteditor 2.Spara textfilerna under namnen JavaFun.java och StartJavaFun.java. 3.Kompilera java-filerna. På kursen kommer du förmodligen att använda JBuilder eller Netbeans. Men ungefär det här händer: Programmet javac.exe körs: javac JavaFun.java javac StartJavaFun.java 4.Programmet exekveras (körs) med programmet java.exe: java StartJavaFun 5.Resultat: utskrift av Java är skoj! på skärmen. Steg 2-5 görs av JBuilder eller NetBeans när man kör programmet.

30 DA7351 Programmering 1 Compiling Programs On command line –javac file.java

31 DA7351 Programmering 1 Att köra ett program i NetBeans


Ladda ner ppt "DA7351 Programmering 1 Föreläsning 1, Introduktion Presentation av kursen Vad är programmering? Problemlösning, en del av programmeringskunskapen. Lite."

Liknande presentationer


Google-annonser