Tabung (ADT, Function, Sorting)
Tabung
- Menghitung luas
- Menghitung volume
- Mengurutkan luas dan volume dari yang terkecil
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// ADT Tabung
struct Tabung {
double jari_jari;
double tinggi;
double luas;
double volume;
};
// Fungsi menghitung luas tabung
double hitungLuas(double jari_jari) {
return 2 * 3.14 * jari_jari * jari_jari;
}
// Fungsi menghitung volume tabung
double hitungVolume(double jari_jari, double tinggi) {
return 3.14 * jari_jari * jari_jari * tinggi;
}
// Fungsi pencarian tabung berdasarkan luas terkecil
int cariLuasTerkecil(const vector<Tabung>& tabung) {
int indexTerkecil = 0;
double luasTerkecil = tabung[0].luas;
for (int i = 1; i < tabung.size(); i++) {
if (tabung[i].luas < luasTerkecil) {
luasTerkecil = tabung[i].luas;
indexTerkecil = i;
}
}
return indexTerkecil;
}
// Fungsi pencarian tabung berdasarkan volume terkecil
int cariVolumeTerkecil(const vector<Tabung>& tabung) {
int indexTerkecil = 0;
double volumeTerkecil = tabung[0].volume;
for (int i = 1; i < tabung.size(); i++) {
if (tabung[i].volume < volumeTerkecil) {
volumeTerkecil = tabung[i].volume;
indexTerkecil = i;
}
}
return indexTerkecil;
}
// Fungsi untuk mengurutkan tabung berdasarkan luas
bool compareLuas(const Tabung& a, const Tabung& b) {
return a.luas < b.luas;
}
// Fungsi untuk mengurutkan tabung berdasarkan volume
bool compareVolume(const Tabung& a, const Tabung& b) {
return a.volume < b.volume;
}
int main() {
int jumlahTabung;
vector<Tabung> tabung;
// Input jumlah tabung
cout << "Masukkan jumlah tabung: ";
cin >> jumlahTabung;
int i = 0;
do {
Tabung t;
cout << "\nTabung " << i + 1 << ":\n";
cout << "Masukkan jari-jari: ";
cin >> t.jari_jari;
cout << "Masukkan tinggi: ";
cin >> t.tinggi;
t.luas = hitungLuas(t.jari_jari);
t.volume = hitungVolume(t.jari_jari, t.tinggi);
tabung.push_back(t);
i++;
} while (i < jumlahTabung);
// Mengurutkan tabung berdasarkan luas terkecil
sort(tabung.begin(), tabung.end(), compareLuas);
// Menampilkan hasil pengurutan luas
cout << "\nHasil pengurutan berdasarkan luas terkecil:\n";
for (const auto& t : tabung) {
cout << "Luas: " << t.luas << ", Volume: " << t.volume << "\n";
}
// Mengurutkan tabung berdasarkan volume terkecil
sort(tabung.begin(), tabung.end(), compareVolume);
// Menampilkan hasil pengurutan volume
cout << "\nHasil pengurutan berdasarkan volume terkecil:\n";
for (const auto& t : tabung) {
cout << "Luas: " << t.luas << ", Volume: " << t.volume << "\n";
}
return 0;
}
Komentar
Posting Komentar