Latihan - Memformat output desimal

Selesai

Dalam latihan ini, Anda akan menghitung GPA akhir dan memodifikasi output konsol untuk mencapai format pelaporan yang diinginkan. GPA sama dengan jumlah total poin nilai dibagi dengan jumlah total jam kredit.

Menghitung GPA akhir

  1. Di Editor .NET, temukan pernyataan Console.WriteLine() yang digunakan untuk menampilkan informasi kursus.

  2. Hapus kode berikut dari latihan sebelumnya:

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

    Karena Anda telah memverifikasi nilai Anda sudah benar, baris ini tidak lagi diperlukan.

  3. Buat baris kode kosong di atas pernyataan Console.WriteLine().

  4. Pada baris kode kosong yang Anda buat, untuk menginisialisasi variabel yang akan menyimpan GPA akhir, masukkan kode berikut:

    decimal gradePointAverage = totalGradePoints/totalCreditHours;
    
    
  5. Luangkan waktu sejenak untuk mempertimbangkan jenis data yang Anda pisahkan.

    Ketika Anda ingin hasil perhitungan pembagian menjadi nilai desimal, baik dividen atau pembagi harus berjenis desimal (atau keduanya). Saat Anda menggunakan variabel bilangan bulat dalam perhitungan, Anda perlu menggunakan operator transmisi untuk mengonversi bilangan bulat untuk sementara menjadi desimal.

  6. Untuk mengambil nilai desimal dari divisi, perbarui kode Anda sebagai berikut:

    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    
  7. Navigasi ke pernyataan Console.WriteLine() terakhir dan buat baris kode kosong baru setelah pernyataan terakhir.

  8. Untuk menampilkan GPA akhir, masukkan kode berikut:

    Console.WriteLine($"Final GPA: {gradePointAverage}");
    
  9. Untuk melihat hasilnya, pilih Jalankan.

    Bandingkan output aplikasi Anda dengan output berikut:

    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
    

Memformat output desimal

Anda mungkin telah memperhatikan bahwa hasil desimal berisi lebih banyak digit daripada GPA standar. Dalam tugas ini, Anda akan memanipulasi nilai GPA desimal sehingga hanya tiga digit yang ditampilkan.

Pada akhirnya, Anda ingin menampilkan digit pertama GPA, titik desimal, diikuti oleh dua digit pertama setelah desimal. Anda dapat mencapai format ini dengan menggunakan variabel untuk menyimpan digit terkemuka dan berikutnya, lalu mencetaknya bersama-sama menggunakan Console.WriteLine(). Anda dapat menggunakan operasi matematika yang Anda pelajari untuk mengekstrak digit terkemuka dan berikutnya.

Catatan

Saat melanjutkan perjalanan pengembang, Anda akan menemukan operasi bawaan yang dapat menerapkan pemformatan secara otomatis ke data Anda. Untuk saat ini, ini adalah kesempatan besar untuk memerkuat apa yang telah Anda pelajari sejauh ini.

  1. Navigasikan ke bagian atas pernyataan Console.WriteLine().

  2. Buat baris kode kosong di atas pernyataan Console.WriteLine().

  3. Pada baris kode kosong yang Anda buat, untuk menginisialisasi variabel yang akan menyimpan digit terdepan DARI GPA, masukkan kode berikut:

    int leadingDigit = (int) gradePointAverage;
    
    

    Perhatikan bahwa untuk mengekstrak digit awal dari desimal, Anda mentransmisiannya ke nilai bilangan bulat. Ini adalah metode yang sederhana dan dapat diandalkan karena melemparkan nilai pecahan tidak akan pernah membulatkan hasilnya. Artinya jika GPA adalah 2,99, transmisi nilai desimal ke int akan menghasilkan 2.

  4. Untuk menginisialisasi variabel yang akan menyimpan dua digit pertama setelah desimal, masukkan kode berikut:

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

    Pada paruh pertama operasi ini, Anda memindahkan satu tempat desimal ke kanan dan melemparkannya ke bilangan bulat. Pada paruh kedua, Anda menggunakan operator sisa, atau modulo, untuk mendapatkan sisa pembagian sebesar 10, yang mengisolasi digit terakhir dalam bilangan bulat. Berikut contohnya:

    Misalkan gradePointAverage = 2.994573 Kemudian, melakukan operasi pada nilai-nilai ini akan menghasilkan langkah-langkah berikut:

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

    Dan nilai firstDigit yang dihasilkan adalah 9.

    Selanjutnya, Anda akan menerapkan operasi yang sama untuk mengambil digit kedua.

  5. Pada baris kode kosong baru, masukkan kode berikut:

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

    Dalam baris ini, Anda memindahkan dua tempat desimal dan menggunakan operator modulo untuk mengambil digit terakhir.

  6. Untuk memperbaiki output IPK akhir, perbarui pernyataan Console.WriteLine() terakhir sebagai berikut:

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

Periksa Pekerjaan Anda

Dalam tugas ini, Anda akan menjalankan kode dan memverifikasi bahwa output sudah benar.

  1. Periksa apakah kode Anda mirip dengan yang berikut ini:

    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. Untuk menjalankan kode Anda dan menampilkan output yang diformat, pilih Jalankan.

  3. Untuk memverifikasi bahwa kode Anda berfungsi seperti yang diharapkan, bandingkan output aplikasi Anda dengan output berikut:

    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
    

    Jika kode Anda menampilkan hasil yang berbeda, Anda harus meninjau kode untuk menemukan kesalahan Anda dan membuat pembaruan. Jalankan kode lagi untuk melihat apakah Anda telah memperbaiki masalah. Lanjutkan memperbarui dan menjalankan kode Anda hingga kode Anda menghasilkan hasil yang diharapkan.

Penting

Pastikan untuk tidak menghapus kode apa pun yang telah Anda tulis sejauh ini. Anda akan membangun kode ini di latihan berikutnya.