Presentation laddar. Vänta.

Presentation laddar. Vänta.

Algoritmer och loopar Algoritmer, beräkningsbarhet

Liknande presentationer


En presentation över ämnet: "Algoritmer och loopar Algoritmer, beräkningsbarhet"— 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. r= m mod n (heltalsresten då man delar m med n). Gå till 2. Om r=0 så är sgd=n annars gå till 3. Sätt m=n. Gå till 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
Beräkningsbara Inte beräkningsbara Hanterliga Ohanterliga

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 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 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++; } 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; } return n;


Ladda ner ppt "Algoritmer och loopar Algoritmer, beräkningsbarhet"

Liknande presentationer


Google-annonser