Berikut ini adalah pertanyaan dari Putri67961 pada mata pelajaran TI untuk jenjang Sekolah Menengah Pertama
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Berikut program yang dapat digunakan untuk mendata hasil pertandingan lompat tinggi yang kemudian diurutkan berdasarkan tinggi lompatan:
Yang pertama, initialisasi integer i untuk looping dapat dilakukan di dalam for loop itu sendiri:
- for(int i=0; i<n; i++){
Agar kumpulan angka dapat tersimpan maka bisa menggunakan vector karena relatif lebih mudah untuk digunakan. Untuk menambah elemen pada vector dapat melakukan push_back(elemen).
Untuk mengurutkan berdasarkan tinggi lompatan dapat menggunakan fungsi sortyang telah tersedia di<algorithm>. Namun pengurutan ini dapat mengacaukan nomor urut peserta (yang bergantung pada index vector). Dalam hal menempel skor yang ada dengan nomor peserta dapat menggunakan pair<int, int> yang mana elemen pertama menyimpan skor dan elemen yang kedua menyimpan nomor urut peserta (asumsi bahwa nomor urut dimulai dari 1). Dengan demikian, nomor peserta akan "terurut" dengan skor peserta.
Pembahasan:
- Implementasi atau penerapan paling minimal sebagai berikut:
#include <vector>
#include <iostream>
#include <algorithm> // untuk sort()
#include <utility> // untuk pair
using namespace std;
int main() {
// nomor peserta
int n;
cin >> n;
vector<pair<int, int>> hasilPertandingan;
for (int nomorPeserta = 1; nomorPeserta <= n; nomorPeserta++) {
int skor;
cin >> skor;
hasilPertandingan.push_back({skor, nomorPeserta});
}
sort(hasilPertandingan.begin(), hasilPertandingan.end());
for (auto &hasil : hasilPertandingan) {
cout << "Peserta nomor urut " << hasil.second << ": " << hasil.first << endl;
}
return 0;
}
- Contoh masukan 1:
4
50 200 20 10
- Contoh keluaran 1:
Peserta nomor urut 3: 10
Peserta nomor urut 4: 20
Peserta nomor urut 1: 50
Peserta nomor urut 2: 200
- Contoh masukan 2:
10
110 50 13 64 62 80 5 1 0 53
- Contoh keluaran 2:
Peserta nomor urut 9: 0
Peserta nomor urut 8: 1
Peserta nomor urut 7: 5
Peserta nomor urut 3: 13
Peserta nomor urut 2: 50
Peserta nomor urut 10: 53
Peserta nomor urut 4: 62
Peserta nomor urut 5: 64
Peserta nomor urut 6: 80
Peserta nomor urut 1: 110
Pada penerapan di atas, data akan diurutkan dari bawah ke atas (ascending). Untuk dapat mengurutkan tinggi ke rendah (descending) dapat menggunakan reverse iterator rbegin() dan rend().
Pelajari lebih lanjut :
Materi tentang solusi dari kekacauan (chaos) pada prinsip sinkronisasi pada link yomemimo.com/tugas/47391687
#BelajarBersamaBrainly
#SPJ4
Semoga dengan pertanyaan yang sudah terjawab oleh mhamadnoval1 dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Mon, 06 Feb 23