Menghitung kecepatan dari pelari yang mengikuti perlombaan
lari setelah melewati garis finish dengan data awal pelari berikut :
Nomor
punggung
|
Nama
|
Jam
|
Menit
|
Detik
|
23
|
Okte
|
3
|
45
|
33
|
70
|
Cahya
|
1
|
30
|
38
|
Dengan data di atas maka buatlah program untuk mengurutkan
dengan melihat jumlah waktu tercepat.
Jika program berjalan dengan benar maka hasilnya akan
seperti di bawah ini yang menunjukkan waktu tercepatnya yang menunjukkan pelari
cahya yang memiliki jumlah waktu yang paling cepat.
Nomor
punggung
|
Nama
|
Jam
|
Menit
|
Detik
|
Jumlah
waktu
|
70
|
Cahya
|
1
|
30
|
38
|
5438
|
23
|
Okte
|
3
|
45
|
33
|
13533
|
untuk bisa memecahkan kasus tersebut maka program yang harus di buat mempergunakan beberapa cara yaitu:
- Struct
Struct di pergunakan untuk
memasukkan isi dari data yang di butuhkan dalam program seperti nama, nomer,
jam, menit ,detik dan jumlah .
2. Sorting
Metode sorting di pergunakan untuk
membandingkan data yang sudah terdapat dalam penyimpanan sementara.
dalam menghitung jumlah watu yang diperoleh oleh pelari tersebut maka kita harus mengkalkulasikan perhitungan tersebut kedalam detik agar terdapat kesamaan sehingga terdapat rumus jumlah = ( jam x 3600 ) + ( menit x 60 ) + ( detik x 1 )
maka coding dalam program tersebut adalah :
#include <stdio.h>
#include <stdlib.h>
struct tabel
{
char nama[10];
int nomer;
int jam;
int menit;
int detik;
int jumlah;
}data[20], swap;
int main()
{
int a,i,jml,b,j;
printf("masukkan jumlah pelari: ");
scanf("%d",&jml);
for(i=0;i<jml;i++)
{
printf("masukkan Nama ke-%d: ",i+1);
scanf("%s",&data[i].nama);
printf("masukkan nomer ke-%d: ",i+1);
scanf("%d",&data[i].nomer);
printf("masukkan jam ke-%d: ",i+1);
scanf("%d",&data[i].jam);
printf("masukkan menit ke-%d: ",i+1);
scanf("%d",&data[i].menit);
printf("masukkan detik ke-%d: ",i+1);
scanf("%d",&data[i].detik);
data[i].jumlah=(data[i].jam*3600+data[i].menit*60+data[i].detik*1);
printf("\n______________________________________\n");
};
for(a=0;a<jml-1;a++)
{
for(b=0;b<jml-1;b++)
{
if
(data[b].jumlah > data[b+1].jumlah) {
swap =
data[b];
data[b] = data[b+1];
data[b+1] = swap;
}
}
}
printf("Nama \t\tNomer \tjam \tmenit \tdetik \t jumlah \n");
for(j=0;j<jml;j++)
{
printf("%s \t\t%d \t%d \t%d \t%d
\t%d\n",data[j].nama,
data[j].nomer,data[j].jam,data[j].menit,data[j].detik,data[j].jumlah);
}
printf("\n______________________________________\n");
}
program di atas setelah di running akan menunjukkan gambar seperti di bawah ini
sebagai contoh jumlah terdapat 2 pelari
masukkan data pelari ke satu dan kedua
jika data sudah inputkan semua maka hasil dari program adalah sebagai berikut
Selamat Mencoba :)






0 komentar:
Posting Komentar