Presentation laddar. Vänta.

Presentation laddar. Vänta.

Algoritmer och loopar Algoritmer, beräkningsbarhet Algoritmer och problemlösning med loopar (eller iterationer)

Liknande presentationer


En presentation över ämnet: "Algoritmer och loopar Algoritmer, beräkningsbarhet Algoritmer och problemlösning med loopar (eller iterationer)"— Presentationens avskrift:

1 Algoritmer och loopar Algoritmer, beräkningsbarhet Algoritmer och problemlösning med loopar (eller iterationer)

2 Beräkningsbarhet Vad är beräkningbarhet? Vad krävs av en anordning för att den ska kunna utföra beräkningar? Vad kan beräknas?

3 Algoritm Det är en ändlig uppsättning regler som bestämmer en följd av operationer som löser en specifik typ av uppgift som har följande kännetecken: Ändlighet Bestämdhet Indata Utdata Effektivitet (Donald Knuth)

4 Euklides algoritm Problem: Hitta den största gemensamma delare för två tal. smd(8,12)=4 Algoritm i 4 steg. 1.r= m mod n (heltalsresten då man delar m med n). Gå till 2. 2.Om r=0 så är sgd=n annars gå till 3. 3.Sätt m=n. Gå till 4. 4.Sätt n=r Gå till 1.

5 Turing maskiner Remsa Centralenhet (läsa, framåt,bakåt) Alfabete {a,b} Tillstånd { start, stopp,q1} Church Turings tes Allt som kan beräknas kan beräknas av en Turing maskin.

6 Stopp problemet Det finns inte någon algoritm som kan avgöra om en annan given algoritm med ett visst indata stannar eller går i evig loop.

7 Matematiskt väldef. problem Inte beräkningsbara Hanterliga Ohanterliga Beräkningsbara

8 Problem 1 En klass bestående av 10 studenter gjorde ett test bestående av flervals frågor och fick betyg från Givet studenternas betyg kan du räkna ut deras medelbetyg.

9 Algoritm 1 Sätt summa=0 Sätt betygsräknare=0 Så länge som betygsräknare är mindre än 10 läs in nästa betyg lägg till betyget till summan Sätt klassmedlet till summa/10 Skriv ut klassmedlet

10 En java implementation public void medel1(){ int summa, betyg; double medelbetyg; summa=0; for (int betygsräknare=0;betygsräknare<10;betygsräknare++){ betyg= Input.readInt("Vilket är betyget?"); summa=summa+betyg; } medelbetyg=(double)summa/10; Output.meddelande("Medelbetyget är "+medelbetyg); }

11 Problem 2 Gör ett klassmedels program som hanterar medel för ett okänt antal studenter varje gång det körs.

12 Algoritm 2 summa=0 räknare=0 Läs in det första betyget (kan vara -1) Så länge som användaren inte har angivigt -1 Lägg till betyget till summan Öka räknaren med ett Läs in det nästa betyget (kan vara -1) Om räknaren inte är lika med 0 Sätt medel=summa delat med räknare Skriv ut medel Annars skriv ut ” Inga betyg har skrivits in”

13 En java implementation public void medel2(){ int summa, betyg, räknare; double medelbetyg; summa=0; räknare=0; betyg= Input.readInt("Vilket är betyget? Du kan ange -1 om du vill avsluta"); while (betyg != -1){ summa=summa+betyg; räknare++; betyg= Input.readInt("Vilket är betyget? Du kan ange -1 om du vill avsluta"); } if (räknare != 0){ medelbetyg=(double)summa/räknare; Output.meddelande("Medelbetyget är "+Output.format(medelbetyg,0,2)); } else Output.meddelande("Inga betyg har skrivits in"); }

14 Java implementation av sgd public int sgd(int m,int n) { int r; r=m%n; while (r != 0){ m=n; n=r; r=m%n; } return n; }


Ladda ner ppt "Algoritmer och loopar Algoritmer, beräkningsbarhet Algoritmer och problemlösning med loopar (eller iterationer)"

Liknande presentationer


Google-annonser