INTRODUKTION TILL PROGRAMMERING

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

INTRODUKTION TILL PROGRAMMERING
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Programstruktur: C för enchipsdatorer
Funktioner och programorganisation
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Operatorer.
2D1311 Programmeringsteknik med PBL
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
Föreläsning 4 Python: mera om funktioner och parametrar
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Programmering B PHP Lektion 2
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. 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; }
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Programmeringsteknik för Media1 & K1
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
Grundläggande programmering
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer:
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Programmeringsteknik för K och Media
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Python.
Föreläsning 3: Booleans, if, switch
Presentationens avskrift:

INTRODUKTION TILL PROGRAMMERING Föreläsning 4 (27.11.2007) INNEHÅLL: Referenstyper Tabeller Strängar Operatorer: tilldelning Operatorer: upp- och nedräkning Repetitionssatser: do-satsen Repetitionssatser: for-satsen Jonny Karlsson 27.11.2007

Referenstyper En referenstyp kan vara en arraytyp, klasstyp eller gränssnittyp. Dessa typer behandlas i vissa viktiga avseenden annorlunda än de primitiva datatyperna (de datatyper vi lärt oss hittils dvs. int, float osv.). En referenstyps värde kallas för objekt Referenstyperna kan i princip bli hur många som helst eftersom de kan skapas av programmeraren själv. Jonny Karlsson 27.11.2007

Tabeller Är en variant av referenstyp (arraytyp). Används för att lagra en mängd olika variabler av samma datatyp i datorns minne. Brukar även kallas för vektorer eller ”arrays” En tabell kan behövas när man vill göra ett program som skall beräkna t.ex. medeltalet av ett visst antal värden. Tabeller behövs även vid lagring av teckensträngar i datorns minne. En tabells värden eller element brukar man kalla för medlemmar. Jonny Karlsson 27.11.2007

Tabeller Deklaration av en tabell int [ ] a; eller int a [ ]; Detta deklarerar variabeln a som är en tabell av typen int. Variabeln a är egentligen en referens till en array och specificerar ingen längd på arrayen. Jonny Karlsson 27.11.2007

Tabeller Att skapa tabeller Till skillnad från primitiva datatyper (t.ex. int) måste en tabell skapas (liksom andra referenstyper) innan ett värde kan tilldelas en medlem. a = new int[10]; En tabell med plats för 10 värden av typ int skapasoch a knyts till denna array. new är ett nyckelord som används för att skapa nya objekt. Jonny Karlsson 27.11.2007

Tabeller Skillnaden mellan variabler av primitiv typ och referenstyp: x = 360; //värdet 360 skrivs in i variabeln x dvs. den plats i minnet som betecknas //med x a = new int[10] //En tabell med plats för 10 heltal skrivs ej in i a, utan a tilldelas en //referens/pekare/handtag till tabellen som finns på en helt annan //plats i minnet Variablen a ovan berättar alltså på vilken plats i minnet tabellen finns. Variabeln a är alltså i detta fall en referenstyp och a-variabelns värde, dvs referensvärdet till minnesplatsen, är ett objekt Jonny Karlsson 27.11.2007

Tabeller När man skapar en tabell med nyckelordet new initialiseras automatiskt alla medlemmar av tabellen till ett visst värde. Exempel: int tab[] = new int[5]; //alla 5 medlemmarna i tabellen tab initialiseras till 0. Samma //gäller även andra tabeller av numerisk typ. Längden på en tabell kan i programkoden fås med: tab.length; //tab.length skulle i exemplet ovan ha värdet 5 Jonny Karlsson 27.11.2007

Tabeller Tilldelning av värden åt tabellmedlemmar En tabells medlemmar kan tilldelas värden på följande sätt: float tabell[]; //deklarerar en tabell av typen float tabell = new float[4]; //skapar en tabell med 4 medlemmar tabell[0] = 1.5; //första platsen/medlemmen i tabellen får värdet 1.5 tabell[1] = 22.89; //andra ’’ får värdet 22.89 tabell[2] = 11.4; //andra ’’ får värdet 11.4 tabell[3] = 48.96; //andra ’’ får värdet 48.96 OBS! första platsen i en tabell är 0 och inte 1 Ovanstående programkod skulle resultera i följande tabell  En viss tabellmedlem betäcknas med- och är åtkomlig m.h.a. ett indexvärde.  index värde 1.5 1 22.9 2 11.4 3 48.96 Jonny Karlsson 27.11.2007

Strängar Definierar en ändling följd av tecken. (teckensträng) I Java ugör strängar en klass kallad String. Klassen String innehåller en samling metoder för att manipulera strängar (en del av dessa tas upp lite senare) String är också liksom tabeller en referenstyp Jonny Karlsson 27.11.2007

Strängar En sträng deklareras enligt följande: String s; En sträng deklareras och initialiseras: String s2 = ”Kalle Anka”; En sträng tilldelas ett värde: s2 = ”Musse Pigg”; Jonny Karlsson 27.11.2007

Strängar Två strängar kan konkateneras/slås ihop med + operatorn: String str1 = ”Kalle”, str2 = ”Anka”; nystring = str1 + str2; //innehållet i nystring blir ”KalleAnka”; Två strängar kan jämföras på samma sätt som primitiva datatyper m.h.a. jämförelseoperatorn (==). Se exemplet nedan: String s = ”pelle”; String s2 = ”pelle”; If(s == ”pelle”) //denna if-sats blir ”true” if(s == s2) //denna if-sats blir ”true” If(s2 == ”ville”) //denna if-sats blir ”false”  Jonny Karlsson 27.11.2007

Operatorer: tilldelning =  Tilldelningsoperator Det som finns till höger om tilldelningsoperatorn utvärderas, och resultatet lagras i den variabel som finns till vänster om tilldelningsoperatorn. Exempel: a = a + b; //resultatet av a + b lagras i variabeln a Tilldelningssatsen ovan kan förenklas på följande sätt: a += b; //ger samma resultat som a = a + b Samma förenkling kan göras med samtliga aritmetiska operatorer: a -= b; //ger samma resultat som a = a - b a *= b; //ger samma resultat som a = a * b a /= b; //ger samma resultat som a = a / b Jonny Karlsson 27.11.2007

Operatorer: upp- och nedräkning ++  Uppräkningsoperator --  Nedräkningsoperator En uppräknings- eller en nedräkningsoperator placeras antingen före eller efter en operator/uttryck. ++heltal  Prefix heltal++  Postfix Nedräkningsoperatorn minskar en variabels värde med 1 och uppräkningsoperatorn ökar en variabels värde med 1 Jonny Karlsson 27.11.2007

Operatorer: upp- och nedräkning int helatal = 0; heltal = helatal - 1; //heltal har nu värdet -1 --heltal; //heltal har nu värdet -2 heltal = heltal + 1; //heltal har nu värdet -1 heltal++; //heltal har nu värdet 0 Jonny Karlsson 27.11.2007

Operatorer: upp- och nedräkning Det har betydelse om man använder prefix (operatorn före variabeln) eller postfix (operatorn efter variabeln). Följande satser ger olika resultat: (låt oss anta att heltal har värdet 1) //sats1: a = heltal++; //a får värdet 1 och heltal får värdet 2. (a tilldelas värdet i heltal och //först sen inkrementeras heltal med 1 //sats2: a = ++heltal; //a får värdet 2 och heltal får värdet 2. (heltal inkrementeras först //med 1 och sedan tilldelas variabeln a värdet i variabeln heltal Jonny Karlsson 27.11.2007

Repetitionssatser: do-satsen while(uttryck); do-satsen är likadan som while-satsen med den skillnaden att utrycket testas först efter utförd sats. I while-satsen testas uttrycket före utförd sats. { scanf(”%d”, &i); gör någåt med i; } while(i < 0);  Jonny Karlsson 27.11.2007

Repetitionssatser: for-satsen Är mycket användbar! Har följande allmänna form: for(uttyck1; utryck2; utryck3) sats; Satsen ovan är ekvivalent med följande while-sats: utryck1: while(uttryck2) { sats; uttryck3; } Jonny Karlsson 27.11.2007

Repetitionssatser: for-satsen for(uttyck1; utryck2; utryck3) sats; uttryck1 = Utförs allra först och endast en gång. Är ofta en initialisering av en variabel. uttryck2 = Jämförelseuttryck t.ex. (a < b). Om detta uttryck är sant utförs sats. Om detta uttryck är falskt hoppar programmet bort från for-satsen uttryck3 = Utförs alltid efter sats. Är vanligen en inkrementering av den variabel som initialiserats i uttryck1 Jonny Karlsson 27.11.2007

Repetitionssatser: for-satsen Exempel: programmet läser in 10 värden från tangentbordet och sparar dessa i tabell int tabell = new int[10]; int index; for(index = 0; index < 10; index = index+1) tabell[index] = input.readInt(); Exempel2: Se simulering av for-satsen Jonny Karlsson 27.11.2007

Problem 1 Gör ett Java-program som ritar en triangel av gångertecken enligt önskad höjd, se programkörningen nedan. Om använderan t.ex. anger höjden 4, skall programmet rita ut ett gångertecken på första raden,  2 gångertecken på andra raden, .... och 4 gångertecken på fjärde och sista raden. Lös problemet med for-satser! Se lösning Jonny Karlsson 27.11.2007

Problem 2 Gör ett Java-program som frågar efter N antal helatal. N måste vara ett heltal mellan 5 och 10. Om ett felaktigt värde ges ber programmet användaren mata in N pånytt (lös problemet med do-satsen). Sedan ber programmet användaren mata in N antal heltal och visar till slut heltalen på bildskärmen i omvänd ordning (använd for-satser vid inläsning och visning på bildskärmen). Jonny Karlsson 27.11.2007