Sabtu, Januari 03, 2009

hasil kali dan rata-rata 2 bil desimal

program rerata_desimal;
uses wincrt;
var
i:integer;
a,b:string;
angka1,angka2:real;
rata, kali:real;
begin
write ('input angka pertama(input angka pecahan dengan koma): ');readln(a);
write ('input angka kedua(input angka pecahan dengan koma):');readln(b);
a[pos(',',a)]:='.';
b[pos(',',b)]:='.';
writeln(a); writeln(b);
val(a,angka1,i);
val(b,angka2,i);
kali:=angka1*angka2;
rata:=(angka1+angka2)/2;
writeln ('hasil perkalian = ',kali:5:2);
writeln ('hasil rata-rata =', rata:5:2);
end.

program untuk tgl besok, jika yg d input tgl hr ini

program hitung_tanggal;
Uses wincrt;
Var
TglSkrg,BlnSkrg,ThnSkrg,TglBsk,BlnBsk,ThnBsk : Integer;
Lagi : char;
Begin
Lagi:= 'Y';
While (Lagi='Y') or (Lagi='y') do
Begin
Clrscr;
Repeat
Write(' Tanggal Hari ini : '); Readln(TglSkrg);
Until TglSkrg > 0;
Write(' Bulan Hari ini : '); Readln(BlnSkrg);
Write(' Tahun Hari ini : '); Readln(ThnSkrg);

If ((TglSkrg<=30) And ((BlnSkrg=1) Or (BlnSkrg=3) Or (BlnSkrg=5) Or (BlnSkrg=7) Or (BlnSkrg=8)
Or (BlnSkrg=10) Or (BlnSkrg=12)))
Or ((TglSkrg<=29) And ((BlnSkrg=4) Or (BlnSkrg=6) Or (BlnSkrg=9) Or (BlnSkrg=11)))
Or ((TglSkrg<=27) And (BlnSkrg=2)) Then
Begin
TglBsk:=TglSkrg+1;
BlnBsk:=BlnSkrg;
ThnBsk:=ThnSkrg;
Writeln; Writeln;
Write(' Tanggal Sekarang : ',TglSkrg,'-',BlnSkrg,'-',ThnSkrg);
Writeln;
Write(' Tanggal Besok : ',TglBsk,'-',BlnBsk,'-',ThnBsk);
End
Else
If ((TglSkrg=31) And ((BlnSkrg=1) Or (BlnSkrg=3) Or(BlnSkrg=5) Or (BlnSkrg=7) Or (BlnSkrg=8)
Or (BlnSkrg=10)))
Or ((TglSkrg=30) And ((BlnSkrg=4) Or (BlnSkrg=6) Or (BlnSkrg=9) Or (BlnSkrg=11))
Or ((TglSkrg=28) And (BlnSkrg=2))) Then
Begin
TglBsk:=1;
BlnBsk:=BlnSkrg+1;
ThnBsk:=ThnSkrg;
Writeln; Writeln;
Write(' Tanggal Sekarang : ',TglSkrg,'-',BlnSkrg,'-',ThnSkrg);
Writeln;
Write(' Tanggal Besok : ',TglBsk,'-',BlnBsk,'-',ThnBsk);
End
Else
If (TglSkrg=31) And (BlnSkrg=12) Then
Begin
TglBsk:=1;
BlnBsk:=1;
ThnBsk:=ThnSkrg+1;
Writeln; Writeln;
Write(' Tanggal Sekarang : ',TglSkrg,'-',BlnSkrg,'-',ThnSkrg);
Writeln;
Write(' Tanggal Besok : ',TglBsk,'-',BlnBsk,'-',ThnBsk);
End
Else
Begin
Writeln; writeln;
Write(' Tanggal yang diinputkan salah');
End;

writeln; writeln;
Write ('Akan proses lagi [Y/T] ? '); Readln(Lagi);
End;
End.

hitung selisih waktu

program selisih_jam;
uses wincrt;
type jam = record
hh : longint;
mm : longint;
ss : longint;
end;
var
j1, j2, j3 : jam; {j1 -> jam awal, j2 -> jam akhir, j3 -> j2 - j1 }
totaldetik1, totaldetik2, selisihdetik : integer;
sisa : integer; {untuk bantu nampung sisa pembagian}
begin
writeln ('PROGRAM HITUNG SELISIH WAKTU');
writeln ('====================================');
writeln ('Ketentuan : Waktu akhir lebih besar dari waktu awal');
writeln;
write ('Jam Awal: '); read (j1.hh);
write ('Menit Awal: '); read (j1.mm);
write ('Detik Awal: '); read (j1.ss);
writeln;
write ('Jam Akhir: '); read (j2.hh);
write ('Menit Akhir: '); read (j2.mm);
write ('Detik Akhir: '); read (j2.ss);

{Sekarang konversi masing masing jam ke total detik}
totaldetik1 := (j1.hh * 3600) + (j1.mm * 60) + j1.ss;
totaldetik2 := (j2.hh * 3600) + (j2.mm * 60) + j2.ss;

{Sekarang hitung selisih total detik}
selisihdetik := totaldetik2 - totaldetik1;

{Sekarang mengkonversi selisih detik ke dalam jam, menit dan detik}
j3.hh := selisihdetik div 3600;
sisa := selisihdetik mod 3600;
j3.mm := sisa div 60;
j3.ss := sisa mod 60;
writeln;
writeln('Durasi waktunya adalah: ', j3.hh, ':', j3.mm, ':', j3.ss);
end.

cek tahun kabisat

program cek_kabisat;
uses wincrt;
var
tahun, a, b, c : integer;
begin
writeln ('PROGRAM MENENTUKAN TAHUUN KABISAT ATAUKAH BUKAN');
writeln ('========================================================');
write ('Masukkan tahun: '); read (tahun);
if (tahun mod 4 = 0) and (tahun mod 100 <> 0) then write ('Tahun ', tahun, ' adalah Kabisat')
else
if (tahun mod 400 = 0) then write ('Tahun ', tahun, ' adalah Kabisat juga')
else
write ('Tahun ', tahun, ' bukan tahun Kabisat')
end.

konversi nilai menjadi huruf mutu







Berikut ini adalah program untuk mengkonversi nilai yang di inputkan menjadi huruf mutu, dengan ketentuan nilai sebagai berikut:

Jika nilai input > 83, maka mutu A
Jika 63 < nilai input <= 83, maka mutu B
Jika 53 < nilai input <=63, maka mutu C
Jika 37 < nilai input <=53, maka mutu D
Jika <=37, maka mutu F

Inputan : nilai
Output : huruf mutu



program huruf_mutu;
uses wincrt;
var
nilai : integer;
huruf : string;
begin
write('Masukkan Nilai: '); readln(nilai);
write('Mutu');

if (nilai<= 100) and (nilai>83) then write('A')
else
if (nilai<= 83) and (nilai>63) then write('B')
else
if (nilai<= 63) and (nilai>53) then write('C')
else
if (nilai<= 53) and (nilai>37) then write('D')
else
if (nilai<= 37) then write('E');
end.