1 / 65

10. Elementen i strukturerad programmering

10. Elementen i strukturerad programmering. Sekvens Selektion Iteration. Sekvens. Sekvens. En sekvens beskriver något som kan delas upp i en bestämd tidsföljd, t.ex 19.00 Kulturnyheterna 19.10 Regionala nyheter 19.30 Filmkrönikan eller 06.00 Gomorron Sverige

Download Presentation

10. Elementen i strukturerad programmering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 10. Elementen i strukturerad programmering Sekvens Selektion Iteration

  2. Sekvens

  3. Sekvens En sekvens beskriver något som kan delas upp i en bestämd tidsföljd, t.ex 19.00 Kulturnyheterna 19.10 Regionala nyheter 19.30 Filmkrönikan eller 06.00 Gomorron Sverige 06.45 Klappar på kredit kan bli dyr affär, 06.50 Svensk hockey på hal is?   07.15 Julkalendern med Allrams höjdarpaket 07.30 Gomorron Sverige 07.49 Boktips för barn 08.10 Är Rumänien redo för EU? 08.20 Möt männen bakom Hipphipp! 09.30 Om barn 10.00 Alla sinnen tillåtna!

  4. Sekvens 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); } }

  5. Program bearbetning bearbetning Sekvens JSP Flödesdiagram

  6. Hello Skriv ut ”Hello World!” Sekvens, exempel JSP Flödesdiagram Start Skriv ut ”Hello World!” Stopp public class Hello { public static void Main () { System.Console.WriteLine(“Hello World!"); } }

  7. Sekvens AreaTest Inmatning Beräkning Utskrift area=PI * radie*radie Skriv ledtext Läs radie Skriv area

  8. Sekvens AreaTest Skriv ledtext Läs radie area = pi * radie * radie Skriv area Slut

  9. Sekvens public class AreaTest { public static void Main () { System.Console.WriteLine("Ange radie: "); double radie = double.Parse( System.Console.ReadLine() ); double area = 3.1415 * radie * radie; System.Console.WriteLine("area = " + area); } }

  10. Selektion

  11. Relationsoperatorer == Lika med != Inte lika med (Skilt från) > Större än >= Större än eller lika med < Mindre än <= Mindre än eller lika med

  12. Booleska operatorer ! inte || eller && och

  13. Booleska (logiska) operatorer !(ICKE) && (OCH) || (ELLER) Om… a b a && b a || b !a s s s s f s ff s f f s f s s fff f s

  14. villkor sant bearbetning falskt Program bearbetning Selektion - if JSP Flödesdiagram (villkor) o

  15. Sätt antal = 2 Är antal=2? sant Skriv ut "OK, det stämde!" falskt Selektion - if, exempel JSP Flödesdiagram SelektionsTest Start Sätt antal = 2 antalkoll (antal = 2) o Skriv ut "OK, det stämde!" Stopp

  16. Sekvens public class IfTest { public static void Main () { int antal = 2; if (antal == 2) { System.Console.WriteLine(“OK, det stämde!"); } } }

  17. Selektion – if-else JSP Flödesdiagram villkor sant Program falskt (villkor = sant) (villkor = falskt) bearbetning bearbetning o o bearbetning bearbetning

  18. Selektion – if-else, exempel JSP Flödesdiagram Start SelektionsTest Läs in antal Läs in antal antalkoll Är antal=2? sant Skriv "OK, det stämde!" (antal = 2) falskt o o Skriv ”Nej, det blev fel!” Skriv "OK, det stämde!" Skriv ”Nej, det blev fel!” Stopp

  19. Sekvens 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!"); } } }

  20. Selektion – if-else, exempel JSP Flödesdiagram SelektionsTest3 Start Läs in antal Läs in antal antalkoll sant antal = 1 eller 2? (antal = 1 eller 2) o o Skriv ”Utanför intervallet!” Skriv "OK, det stämde!" Skriv "OK, det stämde!" falskt Skriv ”Utanför intervallet!” Stopp

  21. Selektion – if-else 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!"); } } }

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

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

  24. CompareToCompareTo 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. 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. Selektion – if-else/switch JSP Flödesdiagram villkor Program Alternativ 1 bearbetning Alternativ 2 bearbetning (alt 3) (alt 1) (alt 2) o o o bearbet-ning bearbet-ning bearbet-ning Alternativ 3 bearbetning

  27. Selektion – if-else/switch JSP Flödesdiagram Start SwitchTest Läs in antal Läs in antal Antal-koll antal? 1 2 annat (antal = 1) (antal = 2) o o o Skriv ut ”Nu är det galet igen” Skriv ut ”OK, det stämde” Skriv ut ”Hmm, så ska det inte vara” Skriv ut ”Nu är det galet igen” Skriv ut ”OK, det stämde” Skriv ut ”Hmm, så ska det inte vara” Stopp

  28. Sekvens – switch 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; } } }

  29. Sekvens – if-else 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!"); } } }

  30. Iteration

  31. Iteration JSP Flödesdiagram Stomme falskt villkor (villkor) sant bearbetning * bearbetning

  32. JSP WhileLoop summa=0 antal =0 Läs in tal Talstomme medel = summa / antal Skriv ut medel Tal-bearbetning * (tal <> 999) summa = summa + tal antal = antal +1 Läs in tal Flödesdiagram Start tal = 999 Medel = summa / antal Skriv ut medel sant summa = 0 falskt antal = 0 Läs in tal summa = summa + tal Stopp antal = antal +1 Läs in tal

  33. Iteration – while 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); } }

  34. Ett återkommande mönster Standarditeration Iterationen i exemplet Initiering av uttrycket för villkoret - Inläsning av tal - iteration * iteration * (villkor) (tal är inte 999) ... Förändring av uttrycket för villkoret ... ... Inläsning av tal

  35. Ett återkommande mönster Initiering av uttrycket för villkoret Inläsning av tal villkor tal = 999 sant sant falskt falskt … … Förändring av uttrycket för villkoret Inläsning av tal …

  36. Iteration – do-while Flödesdiagram JSP Stomme bearbetning villkor sant * bearbetning (villkor) falskt

  37. Iteration – do-while, exempel JSP Flödesdiagram Start Sätt fortsätt till ’n’ DoLoop Sätt fortsätt till ’n’ Skriv ut datum (fortsätt = y) * Läs in fortsätt Skriv ut datum Läs in fortsätt fortsätt y n Stopp

  38. Iteration - for JSP Flödesdiagram Stomme villkor (x ggr) x ggr bearbetning * bearbetning

  39. Iteration – vad for gör – egentligen… JSP Flödesdiagram - initiering initiering - * - villkor (villkor) bearbet-ning loopslut bearbet-ning loopslut

  40. Iteration – men ibland kan vi uttrycka for enklare… JSP Flödesdiagram - (100 ggr) * - 100 ggr bearbet-ning bearbetning

  41. Iteration - foreach JSP Flödesdiagram Stomme villkor * (för varje x i y) Bearbetning för varje x i y Bearbetning

  42. Iteration – break, continue

  43. Rekursiva metoder JSP Inparametrar: rot, av typen DirectoryInfo nivå, heltal Directories Skapa en sträng indent med längden nivå Skriv ut indent och DirectoryInfo v = rot.GetDirectories() Rekursiv Iteration (för varje nod i v) * Directories (nod, nivå)

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

  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. Diagram för metoder JSP Flödesdiagram Max Inparametrar: a och b (heltal) Inparametrar: a och b (heltal) Max a > b returnera r r = a r = b (a > b) o o r = a r = b Returnera r

  47. Diagram för metoder JSP Flödesdiagram Inparametrar: a och b (heltal) Start Max Inparametrar: a och b (heltal) Max a > b (a > b) o o Returnera a Returnera b Returnera a Returnera b

  48. Diagram för metoder JSP Flödesdiagram Inläsning av tal x Start Main Main Inläsning av tal y z = Max(x, y) Inläsning av tal x Inläsning av tal y z = Max(x, y) Skriv ut z Stopp Skriv ut z

  49. Fler exempel

  50. Statlig inkomstskatt • Definiera problemet (Ur ”Dags att deklarera”): ”Om din beskattningsbara förvärvsinkomst är lägst 100 kr men högst 209 100 kr, betalar du 200 kr i statlig inkomstskatt. Om din beskattningsbara förvärvsinkomst är högreän 209 100 kr, betalar du statlig inkomstskatt med 200 kr plus 25% av den del som överstiger 209 100 kr.”

More Related