Cvičení – formátování desetinného výstupu

Dokončeno

V tomto cvičení vypočítáte finální gpa a upravíte výstup konzoly tak, aby dosáhl požadovaného formátu generování sestav. GpA se rovná součtu celkových bodů známek vydělený součtem celkových hodin kreditu.

Výpočet konečného objektu zásad skupiny

  1. V editoru .NET vyhledejte příkazy Console.WriteLine(), které se používají k zobrazení informací o kurzu.

  2. Odeberte z předchozího cvičení následující kód:

    Console.WriteLine($"{totalGradePoints} {totalCreditHours}");
    

    Vzhledem k tomu, že jste ověřili správnost hodnot, tento řádek už není potřeba.

  3. Vytvořte prázdný řádek kódu nad příkazy Console.WriteLine().

  4. Na prázdném řádku kódu, který jste vytvořili, inicializujete proměnnou, která uloží konečnou zásadu zásad skupiny, zadejte následující kód:

    decimal gradePointAverage = totalGradePoints/totalCreditHours;
    
    
  5. Chvíli zvažte datové typy, které rozdělujete.

    Pokud chcete, aby výsledkem výpočtu dělení byla desetinná hodnota, musí být dělitel typu desetinné číslo (nebo obojí). Pokud ve výpočtu používáte celočíselné proměnné, je nutné pomocí operátoru přetypování dočasně převést celé číslo na desetinné číslo.

  6. Pokud chcete načíst desetinnou hodnotu z dělení, aktualizujte kód následujícím způsobem:

    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    
  7. Přejděte na poslední příkaz Console.WriteLine() a za posledním příkazem vytvořte nový prázdný řádek kódu.

  8. Pokud chcete zobrazit konečnou zásadu zásad skupiny, zadejte následující kód:

    Console.WriteLine($"Final GPA: {gradePointAverage}");
    
  9. Pokud chcete zobrazit výsledky, vyberte Spustit.

    Porovnejte výstup aplikace s následujícím výstupem:

    English 101 4 3
    Algebra 101 3 3
    Biology 101 3 4
    Computer Science I 3 4
    Psychology 101 4 3
    Final GPA: 3.3529411764705882352941176471
    

Formátování desetinného výstupu

Možná jste si všimli, že výsledek desítkového čísla obsahuje mnohem více číslic než standardní gpA. V tomto úkolu budete manipulovat s desetinnou hodnotou GPA, aby se zobrazily pouze tři číslice.

Nakonec chcete zobrazit první číslici GPA, desetinnou čárku následovanou prvními dvěma číslicemi za desetinnou čárkou. Tento formát můžete dosáhnout pomocí proměnných k uložení počátečních a koncových číslic a jejich následného tisku pomocí Console.WriteLine(). Matematické operace, které jste se naučili, můžete použít k extrahování počátečních a koncových číslic.

Poznámka:

Během další cesty vývojáře zjistíte integrované operace, které můžou automaticky použít formátování vašich dat. Prozatím je to skvělá příležitost k tomu, abyste si zvýšili, co jste se zatím naučili.

  1. Přejděte na začátek příkazů Console.WriteLine().

  2. Vytvořte prázdný řádek kódu nad příkazy Console.WriteLine().

  3. Na prázdném řádku kódu, který jste vytvořili, inicializujete proměnnou, která uloží úvodní číslici GPA, zadejte následující kód:

    int leadingDigit = (int) gradePointAverage;
    
    

    Všimněte si, že pokud chcete extrahovat počáteční číslici z desetinné čárky, přetypujete ji na celočíselnou hodnotu. Jedná se o jednoduchou a spolehlivou metodu, protože přetypování desetinné hodnoty nikdy nezaokrouhlí výsledek nahoru. To znamená, že pokud je GPA 2,99, přetypování desetinné hodnoty na hodnotu int bude výsledkem 2.

  4. Pokud chcete inicializovat proměnnou, která uloží první dvě číslice za desetinnou čárkou, zadejte následující kód:

    int firstDigit = (int) (gradePointAverage * 10) % 10;
    

    V první polovině této operace přesunete desetinné číslo o jedno místo doprava a přetypujete ho na celé číslo. Ve druhé polovině použijete operátor zbytek (modulo) k získání zbytku dělení číslem 10, který izoluje poslední číslici v celé hodnotě. Tady je příklad:

    Předpokládejme, že gradePointAverage = 2.994573 provedení operace s těmito hodnotami by vedlo k následujícím krokům:

    int firstDigit = (int) (2.994573 * 10) % 10;
    int firstDigit = 29 % 10;
    int firstDigit = 9;
    

    Výsledná hodnota firstDigit je 9.

    V dalším kroku použijete stejnou operaci k načtení druhé číslice.

  5. Na nový prázdný řádek kódu zadejte následující kód:

    int secondDigit = (int) (gradePointAverage * 100 ) % 10;
    

    Na tomto řádku přesunete desetinná místa a pomocí operátoru modulo načtete poslední číslici.

  6. Chcete-li opravit konečný výstup GPA, aktualizujte poslední příkaz Console.WriteLine() následujícím způsobem:

    Console.WriteLine($"Final GPA: {leadingDigit}.{firstDigit}{secondDigit}");
    

Kontrola práce

V této úloze spustíte kód a ověříte správnost výstupu.

  1. Zkontrolujte, jestli je váš kód podobný následujícímu:

    string studentName = "Sophia Johnson";
    string course1Name = "English 101";
    string course2Name = "Algebra 101";
    string course3Name = "Biology 101";
    string course4Name = "Computer Science I";
    string course5Name = "Psychology 101";
    
    int course1Credit = 3;
    int course2Credit = 3;
    int course3Credit = 4;
    int course4Credit = 4;
    int course5Credit = 3;
    
    int gradeA = 4;
    int gradeB = 3;
    
    int course1Grade = gradeA;
    int course2Grade = gradeB;
    int course3Grade = gradeB;
    int course4Grade = gradeB;
    int course5Grade = gradeA;
    
    int totalCreditHours = 0;
    totalCreditHours += course1Credit;
    totalCreditHours += course2Credit;
    totalCreditHours += course3Credit;
    totalCreditHours += course4Credit;
    totalCreditHours += course5Credit;
    
    int totalGradePoints = 0;
    totalGradePoints += course1Credit * course1Grade;
    totalGradePoints += course2Credit * course2Grade;
    totalGradePoints += course3Credit * course3Grade;
    totalGradePoints += course4Credit * course4Grade;
    totalGradePoints += course5Credit * course5Grade;
    
    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    int leadingDigit = (int) gradePointAverage;
    int firstDigit = (int) (gradePointAverage * 10 ) % 10;
    int secondDigit = (int) (gradePointAverage * 100 ) % 10;
    
    Console.WriteLine($"{course1Name} {course1Grade} {course1Credit}");
    Console.WriteLine($"{course2Name} {course2Grade} {course2Credit}");
    Console.WriteLine($"{course3Name} {course3Grade} {course3Credit}");
    Console.WriteLine($"{course4Name} {course4Grade} {course4Credit}");
    Console.WriteLine($"{course5Name} {course5Grade} {course5Credit}");
    
    Console.WriteLine($"Final GPA: {leadingDigit}.{firstDigit}{secondDigit}");
    
  2. Pokud chcete kód spustit a zobrazit formátovaný výstup, vyberte Spustit.

  3. Pokud chcete ověřit, že váš kód funguje podle očekávání, porovnejte výstup aplikace s následujícím výstupem:

    English 101 4 3
    Algebra 101 3 3
    Biology 101 3 4
    Computer Science I 3 4
    Psychology 101 4 3
    Final GPA: 3.35
    

    Pokud váš kód zobrazuje různé výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.

Důležité

Nezapomeňte odstranit žádný kód, který jste zatím napsali. Tento kód vytvoříte v dalším cvičení.