10 Elementen i strukturerad programmering Sekvens Selektion Iteration

  • Slides: 65
Download presentation
10. Elementen i strukturerad programmering Sekvens Selektion Iteration

10. Elementen i strukturerad programmering Sekvens Selektion Iteration

Sekvens

Sekvens

Sekvens En sekvens beskriver något som kan delas upp i en bestämd tidsföljd, t.

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! Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 3

Sekvens public class JSPTest { public static void Main () { int a =

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. Write. Line("a = " + a); System. Console. Write. Line("b = " + b); System. Console. Write. Line("c = " + c); } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 4

Sekvens JSP Flödesdiagram Program bearbetning Abelli, B. (2004). Programmeringens Grunder – med exempel i

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

Sekvens, exempel JSP Flödesdiagram Start Hello Skriv ut ”Hello World!” Stopp public class Hello

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

Sekvens Area. Test Inmatning Skriv ledtext Beräkning Läs radie area=PI * radie*radie Abelli, B.

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

Sekvens Area. Test Skriv ledtext Läs radie area = pi * radie Skriv area

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

Sekvens public class Area. Test { public static void Main () { System. Console.

Sekvens public class Area. Test { public static void Main () { System. Console. Write. Line("Ange radie: "); double radie = double. Parse( System. Console. Read. Line() ); double area = 3. 1415 * radie; System. Console. Write. Line("area = " + area); } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 9

Selektion

Selektion

Relationsoperatorer == != > >= < <= Lika med Inte lika med (Skilt från)

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

Booleska operatorer ! || && inte eller och Abelli, B. (2004). Programmeringens Grunder –

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

Booleska (logiska) operatorer ! (ICKE) Om… a b s s s f f &&

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

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

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

Selektion - if, exempel JSP Flödesdiagram Selektions. Test Sätt antal = 2 antalkoll (antal

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

Sekvens public class If. Test { public static void Main () { int antal

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

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

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

Selektion – if-else, exempel JSP Flödesdiagram Start Selektions. Test Läs in antalkoll sant Är

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

Sekvens public class If. Test { public static void Main () { int antal

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

Selektion – if-else, exempel JSP Flödesdiagram Selektions. Test 3 Läs in antal (antal =

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

Selektion – if-else public class If. Test { public static void Main () {

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

Villkorsoperatorn Kommer ni ihåg Excel? villkor resultat om sant resultat om falskt Villkorsoperatorn i

Villkorsoperatorn Kommer ni ihåg Excel? villkor resultat om sant resultat 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. Write. Line( b ); (Nu har vi nämnt villkorsoperatorn, men använd hellre if-satser… ) Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22

if - else Villkorsoperatorn i C/C++/Java/C#: int a = 23; string b = a

if - else Villkorsoperatorn i C/C++/Java/C#: int a = 23; string b = a >= 10 ? “större” : “mindre” ; System. Console. Write. Line( 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. Write. Line( b ); Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 23

Compare. To Används för att jämföra strängar. Uttrycket s 1. Compare. To(s 2) ger

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

Compare. To ett exempel string s 1 = ”Bo”; string s 2 = ”Hans”;

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

Selektion – if-else/switch JSP Flödesdiagram Program villko r Alternativ 1 Alternativ 2 (alt 1)

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

Selektion – if-else/switch JSP Flödesdiagram Start Switch. Test Läs in antal (antal = 1)

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

Sekvens – switch public class Switch. Test { public static void Main () {

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

Sekvens – if-else public class If. Test { public static void Main () {

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

Iteration

Iteration

Iteration JSP Flödesdiagram Stomme falskt villkor (villkor) bearbetning * sant bearbetning Abelli, B. (2004).

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

JSP While. Loop summa=0 Läs in tal antal =0 (tal <> 999) summa =

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

Iteration – while public class While. Loop { public static void Main () {

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

Ett återkommande mönster Iterationen i exemplet Standarditeration Initiering av uttrycket för villkoret (villkor) .

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

Ett återkommande mönster Initiering av uttrycket för villkoret villkor falskt Inläsning av tal sant

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

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

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

JSP Flödesdiagram Iteration – do-while, exempel Start Do. Loop Sätt fortsätt till ’n’ Skriv

JSP Flödesdiagram Iteration – do-while, exempel Start Do. Loop 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 y n Stopp Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 37

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

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

Iteration – vad for gör – egentligen… JSP Flödesdiagram initiering - (villkor) - bearbetning

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

Iteration – men ibland kan vi uttrycka for enklare… JSP Flödesdiagram - (100 ggr)

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

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

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

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

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

Rekursiva metoder JSP Inparametrar: rot, av typen Directory. Info nivå, heltal Directories Skapa en

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

Rekursiva metoder Flödesdiagram Directories Inparametrar: rot av typen Directory. Info nivå, heltal Skapa en

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

Fällor • Har du nollställt de variabler du använder innan du går in i

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! Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 45

Diagram för metoder JSP Flödesdiagram Inparametrar: a och b (heltal) Max a>b returnera r

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

Diagram för metoder JSP Flödesdiagram Inparametrar: a och b (heltal) Max Inparametrar: a och

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

Diagram för metoder JSP Flödesdiagram Inläsning av tal x Start Main Inläsning av tal

Diagram för metoder JSP Flödesdiagram Inläsning av tal x Start 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 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur Skriv ut z Stopp 48

Fler exempel

Fler exempel

Statlig inkomstskatt • Definiera problemet (Ur ”Dags att deklarera”): ”Om din beskattningsbara förvärvsinkomst är

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. ” Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 50

Statlig inkomstskatt • Planera för lösningen • Vid körning av programmet skall man ges

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. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 51

Strukturerad Programmering Start Mata in inkomst [>= 0] inkomst [< 0] Slut Beräkning Skriv

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

Strukturerad Programmering Beräkning Start inkomst [>= 0 and < 100] [>= 100 and <

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

Strukturerad Programmering Start Mata in inkomst [< 0] Slut [>= 0 and < 100]

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

Statlig inkomstskatt Start Tills inkomst < 0 Mata in inkomst * Kolla inkomst Skriv

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

Strukturerad Programmering • Pseudokod: REPETERA Läs in inkomst OM inkomst < 0 avbryt exekveringen

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

Strukturerad Programmering int skatt, inkomst; while (true) { Console. Write ("Ange den beskattningsbara inkomsten:

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

Strukturer - poster class Bok { public string titel; public string författare; public float

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

Strukturer - poster Även poster kan beskrivas med strukturdiagram class Bibliotek { public Bok[]

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

Strukturer - poster Vi börjar med att renodla vad vi behöver använda i algoritmen.

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

Strukturer - poster Vad är den totala inköpssumman för alla böckerna? class Bok {

Strukturer - poster Vad är den totala inköpssumman för alla böckerna? class Bok { public string titel; public string författare; public float pris; } 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. Write. Line(summa); } } Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 61

Strukturerad Programmering • Pseudokod (exempel ”studenterna”): skriv ut rubrik sätt räknare till 0 läs

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 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 62

Strukturerad Programmering • Pseudokod (exempel ”studenterna”): start A Skriv rubrik resultat >= 0 antal

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

Strukturerad Programmering • Pseudokod (exempel ”studenterna”): Start Skriv rubrik antal = 0 Bearbeta alla

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

Strukturerad Programmering class Student { public string namn; public int poäng; } class Studentpoäng

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. Write. Line(”Skriv ut antalet underkända studenter”); antal = 0; Console. Write("Ange studentens resultat"); student. poäng = int. Parse( Console. Read. Line() ); while (student. poäng >= 0) { Console. Write("Ange studentens namn"); student. namn = Console. Read. Line(); Console. Write. Line(student. namn + ” ” + student. poäng); if (student. poäng < 60) antal++; Console. Write("Ange studentens resultat"); student. poäng = int. Parse( Console. Read. Line() ); } Console. Write. Line("antalet undergända studenter är = " + antal); } } B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur Abelli, 65