Grundläggande programmering

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
INTRODUKTION TILL PROGRAMMERING
En genomgång av spelet: Dubbelkrig-Grön
Text och bild från wikipedia
hej och välkomna EKVATIONER Ta reda på det okända talet.
Programstruktur: C för enchipsdatorer
Funktioner och programorganisation
2D1311 Programmeringsteknik med PBL
Vill du lära dig kort division?
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.
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Text och bild från wikipedia
Programmering B PHP Lektion 2
Algebraiska uttryck Matematik 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Ali Ghodsi Variabler En variabel är en sorts behållare som man kan placera data i Man måste ange typ och namn för alla variabler.
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
Programmering B PHP Lektion 3
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.
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
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.
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 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Bråk Text och bild från wikipedia. Vad är bråk 1/3 5/8 1/27 3 _
Namnrum, räckvidd och rekursion Linda Mannila
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
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 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer:
2D1311 Programmeringsteknik med PBL
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 F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Anders Sjögren Deklarationsområde och funktioner.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
1 Matlab, föreläsning 1 Oktober MATLAB Perspektiv på materialdesign Lina Kjellqvist Rum: K324 Telefon:
-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.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Karlstads universitet Datavetenskap DAVA07/08 JE,MG,MG,PS Kontraktsprogrammering.
Föreläsning 3 Algoritm Grundstrukturer i en algoritm Sekvens Selektion Iteration Selektion - if-sats Selektion - if-else-sats Selektion - switch-sats jämförelseoperatorer.
Selektion jämförande och logiska operatorer
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Att räkna med bokstäver
STUDIETEKNIK.
Lars Madej  Talmönster och talföljder  Funktioner.
Lektion 4.
Python.
Iteration – Repetitionssats - while
Presentationens avskrift:

Grundläggande programmering

Problem Problem1 : Omvandla sekunder till timmar, minuter och sekunder Problem 2: Beräkna fakulteter (10! = 10*9*8.. ) Problem 3: Hitta det största talet

För att lösa problem 1 Vad är en variabel? Olika variabeltyper Heltalsoperationer

Talar om för kompilatorn att instruktionen slutar här Variabler Int x = 5; Variabelns värde Variabelns namn Variabelns typ. Int : heltal Talar om för kompilatorn att instruktionen slutar här Vi säger att variabeln x som är av typen heltal har tilldelats värdet 5

Variabeltyper Vi tar upp tre stycken olika typer: Heltal Flyttal Booleans

Variabelnamn Varje variabel måste ha ett (unikt) namn Namnet måste börja med en bokstav Namnet får endast innehålla bokstäver ,siffror och _ Å,Ä,Ö bör undvikas Bra namn beskriver variabeln

Variabelns värde Variabelns värde beror av dess typ Exempel: Int x = 5.2; EJ kompatibelt , 5.2 är inget heltal Int x = 5; Kompatibelt, x har tilldelats värdet 5

Variabelns värde Ett till exempel: double x = 5; Kompatibelt , x har tilldelats värdet 5. Talet 5 kan ses som både ett heltal och ett flyttal. Men vi måste vara försiktiga! Mer strax.

Räkneoperationer för heltal Det finns 5 stycken olika: + - * / %

Räkneoperationer för heltal Exempel på addition: Int x = 5; Hur skriver vi för att x ska ha tilldelats värdet 7 (vi måste addera till 2)? Så här? x + 2; NEJ För att x ska ha tilldelats värdet 7. måste vi använda tilldelningstecknet =

Räkneoperationer för heltal Fortsättning på exempel Så här? x = 2; Nästan Nu tilldelade vi x värdet 2. Men hur gör vi då? x = x + 2; Rätt Vi hämtar x sedan tidigare och lägger till 2 och sparar resultatet i x.

Räkneoperationer för heltal Slutsats? Här skiljer sig matematik och programmering! Från föregående exempel x = x + 2; Om vi läser det som en ekvation får vi att 0 = 2 ! Tilldelningstecknet är inte samma sak som matematikens likhetstecken

Räkneoperationer för heltal Testa din förståelse! Int x = 4; Int y = 3; x = y; y = y + x; Vad blev x? x = 3 Vad blev y? y = 6

Räkneoperationer för heltal Division Exempel Int x = 7/2; Vad blir det? 3.5 3 Det går inte därför 7/2 är inget heltal

Räkneoperationer för heltal Division Rättsvar : 3 3.5 är inget heltal. Dividerar vi heltal med heltal sparas bara heltalsdelen Divisionen retunerar ett heltal

Räkneoperationer för heltal Modulo % Modulo ger resten vid heltalsdivision Exempel: x = 8%4; Vad blev x? x = 0; Ett till exempel: x = 4%8;

Problem 1 Vi kan nu tillräckligt med programmering för att lösa första problemet! Vi har 36540 s , vi vill skriva det på formen: hh : min : sek

Lösningsförslag till Problem 1 int allaSekunder = 36540; int timmar = allaSekunder/3600; int minuter = (allaSekunder%3600)/60; int sekunder = (allaSekunder%3600)%60;

Räkneoperationer för flyttal Division Exempel: double x = 1/3; Vilket värde har x tilldelats? Divisionsoperatorn tror att vi är intresserade av heltalsdivsion.

Räkneoperationer för flyttal Division Hur gör vi en flyttalsdivision? double x = 1.0/3; 0.33333333…. Eller: double x1 = 1; double x2 = x1/3; x2 = 0.33333333….

Flyttal 1/3 = 0.33333… fortsätter med 3:or i all oändlighet. Innehåller vår variabel ett oändligt antal 3:or? Nej! För att lagra ett oändligt antal 3:or behöver vi ett oändligt stort minne att lagra de i.

Villkorssatser Om vi vill utföra instruktioner efter att ett villkor är uppfyllt använder vi oss av en villkorssats. Villkoren bygger på jämförelser mellan två värden

Villkorssatser Exempel: Vi vill ta ut pengar från banken men bara om vi har tillräckligt på kontot Låt uttag vara beloppet vi vill ta ut Låt saldo vara hur mycket vi har på kontot

Villkorssatser Int uttag = 100; Int saldo = 2000; If(uttag < saldo){ //Ta ut pengar }

Villkorssatser Uttag < saldo : Jämförelsen som sker Allting mellan { } är ett block. Här lägger vi in vad som ska ske om villkoret är uppfyllt

Villkorssatser Hur gör vi om vi vill tillåta uttag som även är lika stora som saldot? If(uttag <= saldo){ //Ta ut pengar } { } , är onödigt om vi bara har en rad kod

Jämförelser a >b a är större än b a < b a är mindre än b a >= b a är större än eller samma som b a <= b a är mindre än eller samma som b a == b a är samma som b a != b a är inte samma som b

Jämförelser Ett väldigt vanligt programmeringsmisstag: If ( a = b){ } Ser du något konstigt?

Jämförelser = Ett likhetstecken betyder tilldelning, alltså var satsen alltid sann! == Två likhetstecken används för att se om två variabler har samma värde

Jämförelser Ett till vanligt misstag: If (a == b); a = 2; Här avslutas villkorssatsen Det här ligger utanför villkorssatsen och sker oavsett om a == b

Flera jämförelser Vi kan ha flera villkor samtidigt. Exempel : Barn över sju år får gå på bio, och barn under sju år får gå på bio med vuxen Hur kan en villkorssats se ut?

Flera jämförelser If(barnAlder > 7 || barn_har_vuxen == true) //Får gå på bio

Flera jämförelser Vi kan kräva att två villkor, eller flera villkor ska vara uppfyllda Om maten är god och dyr så äter jag den Hur kan en villkorssats se ut?

Flera jämförelser If(isGod == true && isDyr == true) //ät

Else if, else Om vi vill göra något när if-satsen inte är uppfylld. Kan vi använda else if, eller else Else if Påbörjar en ny if-sats om föregående sats inte var sann Else inträffar när ingen if-sats är uppfylld.

Else if, else Exempel: If ( a == b){ //a och b är samma }else if( a > b){ //a är större än b }else{ //Inget av ovanstående (a < b) }

Nästlade if-satser Vi kan ha flera if-satser i varandra If( …. ){ } Tabba alltid koden!

Upprepningar Upprepar ett block kod så länge ett villkor är uppfyllt Olika sätt att upprepa: for while do while

For for(initiera variabel; villkor;stegning){ //kod som ska upprepas } Exempel: vi vill beräkna summan 1+2+3+4+5+6+7+8+9+10

For int summa = 0; for(int i = 1; i <= 10; i++){ summa += i; } i++;? samma som: i = i +1; summa += i; ? samma som: summa = summa + i;

While Satshuvudet består endast av ett villkor while (villkor){ //gör det här så länge villkoret är uppfyllt //Se till så att variablerna i villkoret ändras } While används när vi vill ha större kontroll över stegningen.

Problem 2 Beräkna fakulteter 10! = 10*9*8*7*6*5*4*3*2*1 0! = 1 Vi vill kunna beräkna en godtycklig fakultet

Lösningsförslag till Problem 2 int fakultet = 1; for(int i = 0; i < 0; i++){ fakultet *= i; }

Fältvariabler int[] a = new int[10]; Reservera plats för 10st värden En fältvariabel av typen heltal

Tilldelning av värden i fältvariabler För tal tilldelas värdet noll om inget annat har angivits Vi tilldelar värden genom att tala om vid vilket index värdet ska lagras Index börjar på 0 a[0] =3; Index

Tilldelning av värden i fältvariabler Ett exempel: int[] a = new int[10]; skapar en ny fältvariabel med 10 element, alla får värdet 0 a[0] =2; a[9] = 7; 2 7

Problem 3 Hitta det största talet i mängden: {2,9,8,11,6}

Lösningsförslag till problem 3 int[] a = new int[5]; a[0] = 2; a[1] = 9; a[2] = 8; a[3] = 11; a[4] = 6; int max = a[0]; for(int i=1;i<5;i++){ if(a[i]>max){ max = a[i]; }

Metoder Metoder kan ses som små mindre program designade för att lösa en specifik uppgift

Metoder Exempel: En metod talar om Dagens datum En annan metod ger dig Pi (3.1415..)

Metoder Kan vi göra egna metoder? JA!

Metoder Ex. Vi konstruerar en metod som ger oss arean av en cirkel. Men först måste vi förstå hur en metod använder sig av in- och utparametrar

Metoder inparametrar (frivilligt): variabler metoden kan använda sig av från ”utsidan” Utparametrar (frivilligt): det metoden returnerar när den är klar En metod kan bara använda sig av variabler definierade i sig själv, sina in-parametrar och andra metoder. *med frivilligt menas att det är tillåtet för metoder att vara utan inparametrar och eller även utparametrar.

Metoder public double cirkelArea(int radie){ return 3.141*radie*radie; } Returtyp Namn inparameter utparameter

Metoder Hur använder vi areametoden vi just gjorde? double r = 2; double area = cirkelArea( r );