ÖVNINGSUPPGIFT

Uppgift 4 - Matematiska beräkningar i Java: modulus

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


Nyckelord: Datatyp, Variabel, Deklarera, Modulus

Matematiska beräkningar i Java: modulus

I denna uppgift ska vi testa att utföra beräkningar med modulus. Modulus är "resten" av en division när ett tal har blivit dividerat med ett annat. I Java, anger man modulusoperatorn med ett procenttecken (%).

I följande uppgift utgår vi från följande variabler:

int a = 2;
int b = 6;
int c = 7;

Utgå sedan från programmet:

public class DatatyperUppgift4 {
    public static void main(String[] args) {
        int a = 2;
        int b = 6;
        int c = 7;
    }
}

Utför modulus mellan två tal i Java

  1. Börja med att utföra och skriva ut beräkningen c modulus a. Vad blir utskriften?
  2. Fortsätt sedan att utföra och skriva ut beräkningen b modulus a. Vad blir utskriften?
  3. Avslutningsvis, utför beräkningen c modulus c. Vad blir utskriften?

Jämnt eller udda tal med modulus

4. Hur kan man med modulus avgöra om ett heltal är jämnt eller udda?

Ledtråd

I Java, använder man operatorn modulus med ett procenttecken (%). Exempelvis är 11%3 = 2 eftersom 11/3 = 3 med resten 2.

Lösning

Svar:

public class DatatyperUppgift4 {
    public static void main(String[] args) {
        int a = 2;
        int b = 6;
        int c = 7;

        System.out.println(c % a);
        System.out.println(b % a);
        System.out.println(c % c);
    }
}

Utskriften blir:

1
0
0

Förklaring: 

Modulus beräknar ut resten av en division. I Java anger man operatorn modulus med ett procenttecken.

Man kan enkelt avgöra om ett tal är udda eller jämnt genom att utnyttja modulus-operatorn:

int remainder = heltal % 2;

Om tal % 2 == 0 är talet jämnt. Om resten är skild från noll är talet udda. För negativa udda tal är resten i Java −1, inte 1.

        System.out.println(0 % 2);
        System.out.println(1 % 2);
        System.out.println(2 % 2);
        System.out.println(3 % 2);
        System.out.println(4 % 2);
        System.out.println(5 % 2);
        System.out.println(6 % 2);
        System.out.println(7 % 2);
        System.out.println(8 % 2);
        System.out.println(9 % 2);
        System.out.println(10 % 2);

vilket ger utskriften:

0
1
0
1
0
1
0
1
0
1
0