Øvelse – udfør matematiske handlinger

Fuldført

Nu, hvor du forstår det grundlæggende i addition og endnu vigtigere, implicit typekonvertering mellem numeriske datatyper og strengdatatyper, kan vi se på flere andre almindelige matematiske handlinger på numeriske data.

Udfør grundlæggende matematiske handlinger

Skriv kode for at udføre addition, subtraktion, multiplikation og division med heltal

  1. Vælg al den kode, du tidligere har skrevet i C#-kodeeditoren , og tryk på Delete eller Backspace for at slette den.

  2. Indtast følgende kode i C#-kodeeditoren:

    int sum = 7 + 5;
    int difference = 7 - 5;
    int product = 7 * 5;
    int quotient = 7 / 5;
    
    Console.WriteLine("Sum: " + sum);
    Console.WriteLine("Difference: " + difference);
    Console.WriteLine("Product: " + product);
    Console.WriteLine("Quotient: " + quotient);
    
  3. Kør koden. Du bør kunne se følgende output:

    Sum: 12
    Difference: 2
    Product: 35
    Quotient: 1
    

Som du kan se:

  • + er additionsoperatoren
  • - er subtraktionsoperatoren
  • * er multiplikationsoperatoren
  • / er divisionsoperatoren

Den resulterende kvotient af divisionseksempel er muligvis ikke det, du havde forventet. Værdierne efter decimaltegnet afkortes fra quotient , da den er defineret som en int, og int de kan ikke indeholde værdier efter decimaltegnet.

Tilføj kode for at udføre division ved hjælp af konstante decimaldata

Hvis divisionen skal fungere korrekt, skal du bruge en datatype, der understøtter brøkcifre efter decimaltegnet, f.eks decimal. .

  1. Slet koden fra de foregående trin, og indtast følgende kode i C#-kodeeditoren:

    decimal decimalQuotient = 7.0m / 5;
    Console.WriteLine($"Decimal quotient: {decimalQuotient}");
    
    
  2. Kør koden. Du bør kunne se følgende output:

    Decimal quotient: 1.4
    

Hvis dette skal fungere, skal kvotienten (til venstre for tildelingsoperatoren) være af typen decimal, og mindst et af de tal, der divideres, skal også være af typen decimal (begge tal kan også være en decimal type).

Her er to yderligere eksempler, der fungerer lige godt:

decimal decimalQuotient = 7 / 5.0m;
decimal decimalQuotient = 7.0m / 5.0m;

Følgende kodelinjer fungerer dog ikke (eller giver unøjagtige resultater):

int decimalQuotientA = 7 / 5.0m;
int decimalQuotientB = 7.0m / 5;
int decimalQuotientC = 7.0m / 5.0m;
decimal decimalQuotientD = 7 / 5;

Tilføj kode for at caste resultater af division med heltal

Hvad nu, hvis du ikke arbejder med konstantværdier? Med andre ord, hvad nu hvis du har brug for at opdele to variabler af typen int , men ikke ønsker, at resultatet afkortes? I dette tilfælde skal du udføre en datatype, der er kastet fra int til decimal. Casting er en type datakonvertering, der instruerer compileren i midlertidigt at behandle en værdi, som om den var en anden datatype.

Hvis du vil caste int til decimal, skal du tilføje operatoren cast før værdien. Du kan bruge navnet på datatypen omgivet af parenteser foran værdien til at caste den. I dette tilfælde skal du tilføje (decimal) før variablerne first og second.

  1. Slet koden fra de foregående trin, og indtast følgende kode i C#-kodeeditoren:

    int first = 7;
    int second = 5;
    decimal quotient = (decimal)first / (decimal)second;
    Console.WriteLine(quotient);
    
  2. Kør koden. Du bør kunne se følgende output:

    1.4
    

Seddel

Du har set tre anvendelsesmuligheder for parentesoperatoren: aktivering af metoden, rækkefølgen af handlinger og casting.

Skriv kode for at bestemme rest efter division med heltal

Operatoren % modulus fortæller dig resten af int divisionen. Det, du virkelig lærer af dette, er, om et tal kan deles af et andet. Dette kan være nyttigt under lange behandlingshandlinger, når du går gennem hundred- eller tusindvis af dataposter, og du vil give feedback til slutbrugeren, når hver 100 dataposter er blevet behandlet.

  1. Slet koden fra de foregående trin, og indtast følgende kode i C#-kodeeditoren:

    Console.WriteLine($"Modulus of 200 / 5 : {200 % 5}");
    Console.WriteLine($"Modulus of 7 / 5 : {7 % 5}");
    
    
  2. Kør koden. Du bør kunne se følgende output:

    Modulus of 200 / 5 : 0
    Modulus of 7 / 5 : 2
    

Når modulus er 0, betyder det, at udbyttet kan deles af divisoren.

Rækkefølgen af handlinger

Som du lærte i den forrige øvelse, kan du bruge symbolerne () som rækkefølgen af driftsoperatorer . Dette er dog ikke den eneste måde, rækkefølgen af handlinger bestemmes på.

I matematik er PEMDAS et akronym, der hjælper eleverne med at huske rækkefølgen af handlinger. Rækkefølgen er:

  1. P-arentheses (uanset hvad der er i parentesen udføres først)
  2. E-xponenter
  3. Multiplication og Division (fra venstre mod højre)
  4. Enddition og Subtraction (fra venstre mod højre)

C# følger samme rækkefølge som PEMDAS med undtagelse af eksponenter. Selvom der ikke er nogen eksponentoperator i C#, kan du bruge System.Math.Pow metoden . Modulet "Opkaldsmetoder fra .NET-klassebiblioteket ved hjælp af C#" indeholder denne metode og andre.

Skriv kode for at udføre C#'s rækkefølge af handlinger

  1. Slet koden fra de foregående trin, og indtast følgende kode i C#-kodeeditoren:

    int value1 = 3 + 4 * 5;
    int value2 = (3 + 4) * 5;
    Console.WriteLine(value1);
    Console.WriteLine(value2);
    

    Her kan du se forskellen, når du udfører de samme handlinger i en anden rækkefølge.

  2. Kør koden. Du bør kunne se følgende output:

    23
    35
    

Resumé

Her er, hvad du har lært indtil videre om matematiske operationer i C#:

  • Brug operatorer som +, -, *og / til at udføre grundlæggende matematiske handlinger.
  • Divisionen af to int værdier medfører afkortning af værdier efter decimaltegnet. Hvis du vil bevare værdier efter decimaltegnet, skal du konvertere divisoren eller dividenden (eller begge) fra int til et tal med flydende tal, f.eks decimal . først, så skal kvotienten også være af samme flydende taltype for at undgå afkortning.
  • Udfør en cast-handling for midlertidigt at behandle en værdi, som om den var en anden datatype.
  • Brug operatoren % til at registrere resten efter divisionen.
  • Rækkefølgen af handlingerne følger reglerne for akronymet PEMDAS.