Selasa, 10 Juli 2012

Tugas Pascal Algoritma Pemprograman


Program Validasi_Password;
uses wincrt;
const password='abc123';
var
sandilewat:string;
sah:boolean;
count:integer;
begin
count:=1;
sah:=false;
while (not sah) and (count<=3) do
read(sandilewat);
if sandilewat=password then
sah:=true
else
count:=count+1;
end.

Program KombinasiFaktorial;
uses wincrt;
var
fn,fk,kombinasi:real;
i,n,k,j:integer;
begin
writeln('-------============Program Kombinasi Faktorial===========--------');
writeln;
write('Masukkan bilangan n =');readln(n);
write('Masukkan bilangan k =');readln(k);
fn:=1;
fk:=1;
i:= 1;
while (i<= k) do
begin
fn:=fn*i;
i:= i+1;
end;
j:=1;
while (j<= k) do
begin
fk:=fk*(n-j+1);
j:= j+1;
end;
kombinasi:=fk/fn;
write('n kombinasi k = ');writeln(kombinasi:0);
writeln('-------=================Program Selesai==================--------');
writeln;
end.

Program kombinasi_faktorial2;
uses wincrt;
var
fn,fk,fn_k,Kombinasi:real;
i,n,k:integer;
begin
writeln('-----------------------------------------------------------------');
writeln('-------============Program Kombinasi Faktorial===========--------');
writeln('-----------------------------------------------------------------');
writeln;
write('Masukkan bilangan n =');readln(n);
write('Masukkan bilangan k =');readln(k);
fn:=1;
fk:=1;
fn_k:=1;
while (i= 2) and (2<= n) do
fn:=fn*i;
while (i = 2) and (2<= k) do
fk:=fk*i;
while (i= 2) and (2<= (n-k)) do
fn_k:=fn_k*i;
kombinasi:=fn/(fk*fn_k);
writeln(n,' Kombinasi ',k, ' = ',Kombinasi:0:0);
writeln('-----------------------------------------------------------------');
writeln('-------=================Program Selesai==================--------');
writeln('-----------------------------------------------------------------');
writeln;
end.

Program FaktorPrima;
uses wincrt;
var
z, i, prima: integer;
c: char;
y, t: boolean;
begin
writeln('=====================================================================');
writeln('++++++++++++++++++++++Program Faktor Prima+++++++++++++++++++++++++++');
writeln('=====================================================================');
writeln;
t := false;
while not t do
begin
write ('Masukkan angka yang anda inginkan: ');
readln (z);
for i := 1 to 11 do
begin
 case i of
   1  : prima := 2;
   2  : prima := 3;
   3  : prima := 5;
   4  : prima := 7;
   5  : prima := 11;
   6  : prima := 13;
   7  : prima := 17;
   8  : prima := 19;
   9  : prima := 23;
   10 : prima := 29;
   11 : prima := 31;
   end;
   repeat
   if (z mod prima = 0) then
   begin
      z := z div prima;
      write (prima, ' x ');
      end;
      until (z mod prima <> 0);
    end;
 if z mod prima <> 0 then
 write (z);
  writeln;
  write ('Mau coba lagi? (ya/tidak):  ');
  writeln('** (anda ketikan y untuk ya dan t untuk tidak )**');
  readln (c);
  case c of
  'y': t := false;
  't': t := true;
  end;
end;
writeln('++++++++++++++++++++++      Selesai       +++++++++++++++++++++++++++');
writeln('++++++++++++++++++++++        dan         +++++++++++++++++++++++++++');
writeln('+++++++++++++++++++      Terima Kasih       +++++++++++++++++++++++++');
end.

program bilangan_prima;
uses wincrt;
var
x,y: integer;
p: boolean;
begin
writeln('========================+++++++++++++++++++++++=======================');
writeln('                         Program Bilangan Prima');
writeln('========================+++++++++++++++++++++++=======================');
writeln;
writeln;
write('2 ');
for x := 3 to 100 do
begin
p := true;
for y := 2 to x-1 do
begin
if (x mod y) = 0 then
begin
p := false;
end;
end;
if p then write(x, ' ');
end;
readln;
writeln;
writeln;
writeln('========================+++++++++++++++++++++++=======================');
writeln('                         SELESAI');
writeln('========================+++++++++++++++++++++++=======================');
end.

program romawi;
uses wincrt;
var a,b,c,d,e,f,g,h,i,j,k,x:integer;
begin
writeln(' *                Program Untuk Penulisan Angka Romawi                *');                            
write  (' * Masukan nilai :  ');read(x);
a:=x mod 10;
b:=((x mod 100)-(x mod 10))div 10; 
c:=((x mod 1000) - (x mod 100))div 100;
d:=((x mod 10000) - (x mod 1000))div 1000;
write  (' * Angka romawi  :  ');
if x>3999 then write('Input tidak boleh lebih dari 3999')
 else if x<0 then write('Input tidak boleh negatif') else
begin
case d of
1: write('M');
2: write('MM');
3: write('MMM');
end;
 case c of
1: write('C');
2: write('CC');
3: write('CCC');
4: write('CD');
5: write('D');
6: write('DC');
7: write('DCC');
8: write('DCCC');
9: write('CM');
end;
 case b of
1: write('X');
2: write('XX');
3: write('XXX');
4: write('XL');
5: write('L');
6: write('LX');
7: write('LXX');
8: write('LXXX');
9: write('XC');
end;
 case a of
1: write('I');
2: write('II');
3: write('III');
4: write('IV');
5: write('V');
6: write('VI');
7: write('VII');
8: write('VIII');
9: write('IX');
end;
end;
end.


program romawi2;
uses wincrt;
var a,b,c,d,x:integer;
begin
write  ('  Masukan angka :  ');
read(x);
a:=x mod 10;
b:=((x mod 100)-(x mod 10))div 10; 
c:=((x mod 1000) - (x mod 100))div 100;
d:=((x mod 10000) - (x mod 1000))div 1000;
writeln;
write  ('  Angka romawi  :  ');
if x>3999 then write('maksimal 3999')
 else if x<0 then write('minimal 0') else
begin
case d of
1: write('M');
2: write('MM');
3: write('MMM');
end;
 case c of
1: write('C');
2: write('CC');
3: write('CCC');
4: write('CD');
5: write('D');
6: write('DC');
7: write('DCC');
8: write('DCCC');
9: write('CM');
end;
 case b of
1: write('X');
2: write('XX');
3: write('XXX');
4: write('XL');
5: write('L');
6: write('LX');
7: write('LXX');
8: write('LXXX');
9: write('XC');
end;
 case a of
1: write('I');
2: write('II');
3: write('III');
4: write('IV');
5: write('V');
6: write('VI');
7: write('VII');
8: write('VIII');
9: write('IX');
end;
 end;
  end.



program faktor_bilangan_prima;
uses wincrt;
var m:integer;
begin
writeln;
writeln('Program mencari bilangan faktor dengan bilangan prima');
writeln;
writeln('Masukan angka yang anda inginkan : ');
read(m);
repeat
if m mod 2 = 0 then
begin
m:=m div 2;
write('2 ');
end
else;
until m mod 2 <> 0 ;

repeat
if m mod 3 = 0 then
begin
m:=m div 3;
write('3 ');
end
else;
until m mod 3 <> 0 ;

repeat
if m mod 5 = 0 then
begin
m:=m div 5;
write('5 ');
end
else;
until m mod 5 <> 0 ;

repeat
if m mod 7 = 0 then
begin
m:=m div 7;
write('7 ');
end
else;
until m mod 7 <> 0 ;

repeat
if m mod 11 = 0 then
begin
m:=m div 11;
write('11 ');
end
else;
until m mod 11 <> 0 ;

repeat
if m mod 13 = 0 then
begin
m:=m div 13;
write('13 ');
end
else;
until m mod 13 <> 0 ;

repeat
if m mod 17 = 0 then
begin
m:=m div 17;
write('17 ');
end
else;
until m mod 17 <> 0 ;

repeat
if m mod 19 = 0 then
begin
m:=m div 19;
write('19 ');
end
else;
until m mod 19 <> 0 ;

repeat
if m mod 23 = 0 then
begin
m:=m div 23;
write('23 ');
end
else;
until m mod 23 <> 0 ;

repeat
if m mod 29 = 0 then
begin
m:=m div 29;
write('29 ');
end
else;
until m mod 29 <> 0 ;

repeat
if m mod 31 = 0 then
begin
m:=m div 31;
write('31 ');
end
else;
until m mod 31 <> 0 ;

repeat
if m mod 37 = 0 then
begin
m:=m div 37;
write('37 ');
end
else;
until m mod 37 <> 0 ;

repeat
if m mod 41 = 0 then
begin
m:=m div 41;
write('41 ');
end
else;
until m mod 41 <> 0 ;

repeat
if m mod 47 = 0 then
begin
m:=m div 47;
write('47 ');
end
else;
until m mod 47 <> 0 ;
writeln('                   Terima Kasih');
end.

0 komentar:

Posting Komentar