Presentation laddar. Vänta.

Presentation laddar. Vänta.

10. Elementen i strukturerad programmering Sekvens Selektion Iteration.

Liknande presentationer


En presentation över ämnet: "10. Elementen i strukturerad programmering Sekvens Selektion Iteration."— Presentationens avskrift:

1 10. Elementen i strukturerad programmering Sekvens Selektion Iteration

2 Sekvens

3 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 En sekvens beskriver något som kan delas upp i en bestämd tidsföljd, t.ex Kulturnyheterna Regionala nyheter Filmkrönikan eller Gomorron Sverige Klappar på kredit kan bli dyr affär, Svensk hockey på hal is? Julkalendern med Allrams höjdarpaket Gomorron Sverige Boktips för barn Är Rumänien redo för EU? Möt männen bakom Hipphipp! Om barn Alla sinnen tillåtna! Sekvens

4 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44 public class JSPTest { public static void Main () { int a = 2; int b = 3; int c = 4; a = a + b + c; b = a + b + c; c = a + b + c; System.Console.WriteLine("a = " + a); System.Console.WriteLine("b = " + b); System.Console.WriteLine("c = " + c); } Sekvens

5 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 FlödesdiagramJSP bearbetning Program Sekvens

6 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66 FlödesdiagramJSP Skriv ut ”Hello World!” Hello Start Stopp Sekvens, exempel public class Hello { public static void Main () { System.Console.WriteLine(“Hello World!"); }

7 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77 AreaTest Inmatning Skriv ledtext Läs radie area=PI * radie*radie Skriv area BeräkningUtskrift Sekvens

8 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88 Sekvens AreaTest Skriv ledtext Läs radie area = pi * radie * radie Skriv area Slut

9 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99 public class AreaTest { public static void Main () { System.Console.WriteLine("Ange radie: "); double radie = double.Parse( System.Console.ReadLine() ); double area = * radie * radie; System.Console.WriteLine("area = " + area); } Sekvens

10 Selektion

11 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 Relationsoperatorer ==Lika med !=Inte lika med (Skilt från) >Större än >=Större än eller lika med

12 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 12 Booleska operatorer ! inte || eller && och

13 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 13 ! (ICKE) && (OCH) || (ELLER) a b a && ba || b !a ss s s f sf f s f fs f s s ff f f s Booleska (logiska) operatorer Om…

14 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 14 FlödesdiagramJSP bearbetning Program o villkor sant falskt bearbetning (villkor) Selektion - if

15 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 15 Flödesdiagram Start Stopp Är antal=2? sant falskt Skriv ut "OK, det stämde!" Sätt antal = 2 JSP antalkoll SelektionsTest Skriv ut "OK, det stämde!" Sätt antal = 2 o (antal = 2) Selektion - if, exempel

16 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 16 public class IfTest { public static void Main () { int antal = 2; if (antal == 2) { System.Console.WriteLine(“OK, det stämde!"); } Sekvens

17 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 17 FlödesdiagramJSP bearbetning Program o bearbetning o (villkor = sant)(villkor = falskt) villkor sant falskt bearbetning Selektion – if-else

18 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 18 JSP antalkoll SelektionsTest Skriv "OK, det stämde!" Läs in antal (antal = 2) Skriv ”Nej, det blev fel!” oo Flödesdiagram Start Stopp Är antal=2? sant falskt Skriv "OK, det stämde!" Läs in antal Skriv ”Nej, det blev fel!” Selektion – if-else, exempel

19 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 19 public class IfTest { public static void Main () { int antal = int.Parse( System.Console.ReadLine() ); if (antal == 2) { System.Console.WriteLine(“OK, det stämde!"); } else { System.Console.WriteLine(“Nej, det blev fel!"); } Sekvens

20 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 20 Flödesdiagram Start Stopp sant falskt Skriv "OK, det stämde!" Läs in antal Skriv ”Utanför intervallet!” JSP antalkoll SelektionsTest3 Skriv "OK, det stämde!" Läs in antal (antal = 1 eller 2) Skriv ”Utanför intervallet!” o o antal = 1 eller 2? Selektion – if-else, exempel

21 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 21 public class IfTest { public static void Main () { int antal = int.Parse( System.Console.ReadLine() ); if (antal == 1 || antal == 2) { System.Console.WriteLine(“OK, det stämde!"); } else { System.Console.WriteLine(“Utanför intervallet!"); } Selektion – if-else

22 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Villkorsoperatorn Villkorsoperatorn i C/C++/Java/C#: villkor ? resultat om sant : resultat om falskt ; Kommer ni ihåg Excel? Exempel: int a = 23; string b = a >= 10 ? “större” : “mindre” ; System.Console.WriteLine( b ); villkor resultat om sant resultat om falskt (Nu har vi nämnt villkorsoperatorn, men använd hellre if-satser…  )

23 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 23 if - else int a = 23; string b = a >= 10 ? “större” : “mindre” ; System.Console.WriteLine( b ); int a = 23; string b = null; if (a >= 10) { b = “större”; } else { b = “mindre” ; } System.Console.WriteLine( b ); Kan lika gärna (hellre?) använda en if-else-sats: Villkorsoperatorn i C/C++/Java/C#:

24 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 24 CompareTo Används för att jämföra strängar. Uttrycket s1.CompareTo(s2) ger följande resultat: <0 om s1 är mindre än s2 =0 om s1 är lika med s2 >0 om s1 är större än s2 Tecken för tecken jämförs

25 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 25 CompareTo ett exempel string s1 = ”Bo”; string s2 = ”Hans”; if( (s1.CompareTo(s2)) > 0 ) { System.Console.Write(”Bo”); } else { System.Console.Write(”Hans”); } Vad skrivs ut??

26 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 26 JSP bearbet- ning Program o bearbet- ning o (alt 1)(alt 2) bearbet- ning o (alt 3) Flödesdiagram villkor Alternativ 1 Alternativ 2 Alternativ 3 bearbetning Selektion – if-else/switch

27 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 27 FlödesdiagramJSP SwitchTest Läs in antalAntal-koll Skriv ut ”Nu är det galet igen” Skriv ut ”OK, det stämde” Skriv ut ”Hmm, så ska det inte vara” (antal = 1)(antal = 2) ooo Start Stopp antal ? Läs in antal Skriv ut ”Nu är det galet igen” Skriv ut ”OK, det stämde” Skriv ut ”Hmm, så ska det inte vara” 12 annat Selektion – if-else/switch

28 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 28 public class SwitchTest { public static void Main () { int antal = int.Parse( System.Console.ReadLine() ); switch ( antal ) { case 1 : System.Console.WriteLine(“Nu är det galet igen!"); break; case 2 : System.Console.WriteLine(“OK, det stämde!"); break; default : System.Console.WriteLine(“Hmm, så ska det inte vara!"); break; } Sekvens – switch

29 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 29 public class IfTest { public static void Main () { int antal = int.Parse( System.Console.ReadLine() ); if (antal == 1 ) { System.Console.WriteLine(“Nu är det galet igen!"); } else if (antal == 2) { System.Console.WriteLine(“OK, det stämde!"); } else { System.Console.WriteLine(“Hmm, så ska det inte vara!"); } Sekvens – if-else

30 Iteration

31 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 31 Flödesdiagram villkor sant falskt bearbetning JSP Stomme bearbetning (villkor) * Iteration

32 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 32 Flödesdiagram JSP WhileLoop summa=0 Tal-bearbetning summa = summa + talantal = antal +1Läs in tal (tal <> 999) antal =0Läs in talTalstomme * medel = summa / antal Skriv ut medel Start Stopp tal = 999 Läs in tal antal = antal +1 summa = summa + tal falskt summa = 0 Skriv ut medel Medel = summa / antal sant Läs in tal antal = 0

33 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 public class WhileLoop { public static void Main () { double summa = 0; int antal = 0; int tal = int.Parse( System.Console.ReadLine() ); while ( tal != 999 ) { summa = summa + tal; antal++; tal = int.Parse( System.Console.ReadLine() ); } double medel = summa / antal; System.Console.WriteLine(“Medel = “ + medel); } Iteration – while

34 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 34 Iterationen i exemplet Inläsning av tal iteration... Inläsning av tal (tal är inte 999) * - Standarditeration Initiering av uttrycket för villkoret iteration... Förändring av uttrycket för villkoret (villkor) * -... Ett återkommande mönster

35 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 35 villkor Initiering av uttrycket för villkoret … falskt sant Förändring av uttrycket för villkoret … tal = 999 Inläsning av tal … falskt sant Inläsning av tal Ett återkommande mönster

36 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 36 JSP Stomme bearbetning (villkor) * Flödesdiagram villkor sant falskt bearbetning Iteration – do-while

37 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 37 FlödesdiagramJSP Start Stopp fortsätt Läs in fortsätt Sätt fortsätt till ’n’ y n Skriv ut datum DoLoop Sätt fortsätt till ’n’ (fortsätt = y) * Skriv ut datumLäs in fortsätt Iteration – do-while, exempel

38 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 38 Flödesdiagram villkor x ggr bearbetning JSP Stomme bearbetning (x ggr) * Iteration - for

39 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 39 JSP - initiering loopslut (villkor) - bearbet- ning - * Flödesdiagram villkor bearbet- ning loopslut initiering Iteration – vad for gör – egentligen…

40 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 40 JSP bearbet- ning (100 ggr) - - * Flödesdiagram bearbetning 100 ggr Iteration – men ibland kan vi uttrycka for enklare…

41 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 41 JSP (för varje x i y) Stomme Bearbetning * Flödesdiagram villkor Bearbetning för varje x i y Iteration - foreach

42 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 42 Iteration – break, continue

43 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 43 JSP Directories Directories (nod, nivå) Skapa en sträng indent med längden nivå Skriv ut indent och DirectoryInfo Inparametrar: rot, av typen DirectoryInfo nivå, heltal v = rot.GetDirectories() Rekursiv Iteration * (för varje nod i v) Rekursiva metoder

44 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44 Flödesdiagram Stopp Directories Inparametrar: rot av typen DirectoryInfo nivå, heltal Directories (nod, nivå + 1) Skapa en sträng indent med längden nivå Skriv ut indent och DirectoryInfo v = rot.GetDirectories() villkor för varje nod i v Rekursiva metoder

45 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 45 Fällor •Har du nollställt de variabler du använder innan du går in i en ny iteration? •Tänk särskilt på vad det är för värden i de variabler som ingår i olika villkor. •I synnerhet i villkorssatser för iterationer, eftersom du annars kan hamna i en oändlig loop! •Skrivbordstesta!

46 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 46 JSP r = ar = b Inparametrar: a och b (heltal) oo (a > b) Flödesdiagram a > b Max Inparametrar: a och b (heltal) Max returnera r Returnera r r = ar = b Diagram för metoder

47 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 47 JSP Max Returnera aReturnera b Inparametrar: a och b (heltal) oo (a > b) Flödesdiagram a > b Returnera b Start Max Returnera a Inparametrar: a och b (heltal) Diagram för metoder

48 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 48 JSPFlödesdiagram Main z = Max(x, y) Inläsning av tal x Inläsning av tal y Skriv ut z Inläsning av tal x Inläsning av tal y Skriv ut z z = Max(x, y) Stopp Start Main Diagram för metoder

49 Fler exempel

50 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 50 Statlig inkomstskatt •Definiera problemet (Ur ” Dags att deklarera ” ): ” Om din beskattningsbara f ö rv ä rvsinkomst ä r l ä gst 100 kr men h ö gst kr, betalar du 200 kr i statlig inkomstskatt. Om din beskattningsbara f ö rv ä rvsinkomst ä r h ö gre ä n kr, betalar du statlig inkomstskatt med 200 kr plus 25% av den del som ö verstiger kr. ”

51 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 51 Statlig inkomstskatt •Planera för lösningen •Vid körning av programmet skall man ges tillfälle att mata in den beskattningsbara förvärvsinkomsten. •När användaren matat in den aktuella inkomsten skall den statliga inkomstskatten skrivas ut, föregången av texten ”Den statliga skatten blir:” •Vi förutsätter att den inmatade inkomsten är ett heltal. •Man ska kunna göra godtyckligt många beräkningar utan att behöva starta programmet igen. För att markera avslutning ska ett negativt belopp matas in.

52 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 52 Strukturerad Programmering [>= 0] Start Slut Mata in inkomst Skriv ut skatt [< 0] inkomst Beräkning

53 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 53 Strukturerad Programmering skatt = 0 [>= 0 and < 100] skatt = 200skatt = % [>= 100 and < ] [>= ] Start inkomst Slut Beräkning

54 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 54 Strukturerad Programmering skatt = 0 [>= 0 and < 100] skatt = 200skatt = % [>= 100 and < ] [>= ] Start Slut Mata in inkomst Skriv ut skatt [< 0] inkomst

55 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 Statlig inkomstskatt Start Kolla inkomst Mata in inkomst Skriv ut skatt negativ Avsluta [negativt tal] o ingen Skatt = 0 [< 100] o låg Skatt = 200 [>= 100och < ] o hög Skatt = % [> ] o * Tills inkomst < 0

56 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 56 Strukturerad Programmering •Pseudokod: REPETERA Läs in inkomst OM inkomst skatt = * (inkomst ) ANNARS OM inkomst >= 100 skatt = 200 ANNARS skatt = 0; OM-SLUT Skriv ut "Den statliga skatten blir: " + skatt LOOP-SLUT

57 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 57 Strukturerad Programmering int skatt, inkomst; while (true) { Console.Write("Ange den beskattningsbara inkomsten: "); inkomst = int.Parse( Console.ReadLine() ); if (inkomst ) { skatt = (int) ( * (inkomst )); } else if (inkomst >= 100) { skatt = 200; } else { skatt = 0; } Console.WriteLine("Den statliga skatten blir: " + skatt); }

58 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 58 Strukturer - poster class Bok { public string titel; public string författare; public float pris; } class BokTest { public static void Main ( ) { Bok programmeringsbok = new Bok(); programmeringsbok.titel = ”C# från grunden”; System. Console.WriteLine (programmeringsbok.titel); }

59 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 59 Strukturer - poster class Bok { public string titel; public string författare; public float pris; } Även poster kan beskrivas med strukturdiagram * Bok författare titel Bibliotek pris class Bibliotek { public Bok[] böcker; } Vad är den totala inköpssumman för alla böckerna?

60 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 60 pris Strukturer - poster * Bok Skriv ut summa summa = 0 summa = summa + pris Vad är den totala inköpssumman för alla böckerna? Som du ser följer vi helt enkelt den struktur som redan finns! (Så länge det finns böcker) Summering Bibliotek Vi börjar med att renodla vad vi behöver använda i algoritmen.

61 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 61 Strukturer - poster class Bok { public string titel; public string författare; public float pris; } Vad är den totala inköpssumman för alla böckerna? class Bibliotek { public static void Main() { Bok[] böcker = new Bok[2]; double summa = 0; böcker[0] = new Bok( ); böcker[0].titel = "AAA"; böcker[0].författare = "AAA"; böcker[0].pris = 100; böcker[1] = new Bok( ); böcker[1].titel = "BBB"; böcker[1].författare = "BBB"; böcker[1].pris = 200; for (int i = 0; i < böcker.Length; i++) { summa = summa + böcker[i].pris; } System.Console.WriteLine(summa); }

62 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 62 Strukturerad Programmering •Pseudokod (exempel ”studenterna”): skriv ut rubrik sätt räknare till 0 läs in 1:a studentens resultat REPETERA så länge studentens resultat är större än eller lika med 0 läs in studentens namn skriv ut namn och resultat OM totalpoäng är mindre än 60 lägg 1 till räknaren OM-SLUT läs in studentens resultat REPETERA-SLUT skriv ut antalet underkända studenter

63 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 63 Strukturerad Programmering •Pseudokod (exempel ”studenterna”): start Skriv rubrik antal = 0 Läs 1.a resultat A A >= 0 Läs namn Skriv namn, poäng resultat < 60 Läs resultat Skriv antal start antal = antal + 1 falskt sant falskt

64 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 64 Strukturerad Programmering •Pseudokod (exempel ”studenterna”): Start Skriv rubrik antal = 0 Bearbeta alla Skriv antal Bearbeta * en student Läs resultat resultat? Skriv namn, resultat Läs namn antal o = antal + 1 o ---- Läs resultat

65 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 65 Strukturerad Programmering class Student { public string namn; public int poäng; } class Studentpoäng { public static void Main ( ) { int antal; Student student = new Student(); Console.WriteLine(”Skriv ut antalet underkända studenter”); antal = 0; Console.Write("Ange studentens resultat"); student.poäng = int.Parse( Console.ReadLine() ); while (student.poäng >= 0) { Console.Write("Ange studentens namn"); student.namn = Console.ReadLine(); Console.WriteLine(student.namn + ” ” + student.poäng); if (student.poäng < 60) antal++; Console.Write("Ange studentens resultat"); student.poäng = int.Parse( Console.ReadLine() ); } Console.WriteLine("antalet undergända studenter är = " + antal); }


Ladda ner ppt "10. Elementen i strukturerad programmering Sekvens Selektion Iteration."

Liknande presentationer


Google-annonser