ÖVNINGSUPPGIFT

Uppgift 12 - Summa av serie

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: For-loopen, Scanner

else-if satsen Java Python programmering kod

Uppgift 12 - Summa av serie

Skriv ett program som beräknar summan av följande serie där n anges av användaren.

1 + 1/2 + 1/3 + 1/4 + 1/5 + ... 1/n

Går seriens summa mot ett ändligt gränsvärde när n går mot oändligheten (ett riktigt stort tal)?

Ledtråd

Använd Scanner för att fråga användaren om ett nytt tal. Var noggrann med att använda dig av doubles när du gör de matematiska beräkningarna!

Svar
import java.util.Scanner;

public class Uppgift12 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Ange antal termer i talföljden: ");
        int number = scanner.nextInt();

        double sum = 0;
        for (int n = 1; n <= number; n++) {
            sum = sum + 1.0 / n;
        }

        System.out.println("Summan av talen i serien är: " + sum);
    }
}

Förklaring

Det kluriga med denna uppgift är (antagligen) att vara säker på att summeringen sum = sum + 1.0/n görs med doubles och inte ints.

Exempelvis, om vi istället skulle skrivit sum = sum + 1/n, hade uträkningen 1/n alltid resulterats i en int vilket hade gett fel resultat.

Om man skickar in ett stort värde, exempelvis 1000000, så hade värdet inte gått mot ett ändligt gränsvärde. Serien fortsätter alltså att växa i all oändlighet.

Fler uppgifter