Ladda ner presentationen
Presentation laddar. Vänta.
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;
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.