Laman

Tugas Pemrograman Dasar


Soal I
Buatlah sebuah program secara modular untuk membuat kartu hasil studi mahasiswa ( pada semester tertentu dengan matakuliah sebanyak 5 matakuliah, sks, dan huruf mutu diinput melalui keyboard ).


uses crt;
var
s : array [1..5] of integer;
hm : array [1..5] of char;
n : array [1..5] of integer;
i,JS,hms,hmn : integer;
IP : real;
u : char;

procedure header;
begin
write ('Nama Mahasiswa : ');
readln;
write ('Kelas : ');
readln;
write ('Semester : ');
readln;
end;






procedure mata_kuliah;
begin
for i:=1 to 5 do
begin
write ('Matakuliah ',i,': ');readln;
gotoxy (40,(4+i));
write ('SKS : ');readln (s[i]);
gotoxy (60,(4+i));
write ('HM:');readln (hm[i]);
end;
end;

procedure Jumlah_SKS;
begin
JS:=(s[1]+s[2]+s[3]+s[4]+s[5]);
writeln ('Jumlah SKS : ',JS);
end;

procedure conversi;
begin
for i:=1 to 5 do
begin
if upcase(hm[i])='A' then
n[i]:=4
else if upcase(hm[i])='B' then
n[i]:=3
else if upcase(hm[i])='C' then
n[i]:=2
else if upcase(hm[i])='D' then
n[i]:=1
else
n[i]:=0;
end;
end;

procedure hn;
begin
hmn:=(n[1]+n[2]+n[3]+n[4]+n[5]);
end;

procedure HxS;
begin
hms:=((s[1]*n[1])+(s[2]*n[2])+(s[3]*n[3])+(s[4]*n[4])+(s[5]*n[5]));
writeln('HM x SKS : ',hms);
end;

procedure IPK;
begin
IP:=hmn/5;
writeln('IP : ',IP:0:2);
end;

procedure garis;
begin
writeln('==================================================================');
end;




begin
repeat
clrscr;
header;
garis;
mata_kuliah;
garis;
Jumlah_SKS;
conversi;
hn;
HxS;
IPK;
writeln('apakah anda akan mengecek KHS lagi? [y/t]');
readln(u);
until upcase(u)='T';
end.


Hasil Output :










Soal II
Buatlah sebuah program sevara rekrusif untuk menjumlahkan semua bilangan asli mulai dari 1 sampai 10!

uses crt;
function jumlahnya (angka:integer):integer;
begin
if angka=1 then
jumlahnya:=1
else
jumlahnya:=angka+jumlahnya(angka-1);
end;

procedure IBA(var bil:integer);
begin
repeat
clrscr;
write('masukan bilangan:');
readln(bil);
until(bil>0);
end;

var
ba: integer;

begin
IBA (ba);
writeln('jumlah semua bilangan dari satu sampai ',ba,' adalah ',jumlahnya(ba));
readln;
end.

Hasil Output:










Soal III
Buatlah sebuah program untuk mencari hasil perkalian 2 buah bilangan bulat positif dengan menggunakan konsep penjumlahan.
program perkalian_sederhana;
uses crt;
var
c : char;

function perkalian (x,y: integer) : integer;
begin
if (y=0) then
perkalian:=0
else
perkalian:= x+perkalian (x,y-1);
end;


var
a,b: integer;

begin
repeat
clrscr;
writeln ('selamat datang di program perkalian ala firhat ');
writeln ('silahkan masukan bilangan yang akan anda kalikan!');
readln (a);
gotoxy(5,3);
write ('x ');readln(b);
gotoxy(10,3);
writeln (' = ',perkalian(a,b));
writeln;
writeln;
writeln('mau mencoba lagi??? [y/t]');
readln(c);
until upcase(c)='T';
end.



Soal IV
Buatlah sebuah program untuk mencari hasil pembagian 2 buah bilangan bulat positf dengan menggunakan konsep pngurangan. Syaratnya adalah bilangan pertama habis dibagi oleh bilangan kedua!

program pembagian_sederhana;
uses crt;
var
c : char;

function bagi (x,y: integer) : integer;
begin
if (x=0) then
bagi:=0
else
bagi:= x-bagi (x-1,y-1);
end;

var
a,b: integer;

begin
repeat
clrscr;
writeln ('selamat datang di program pembagian ala firhat ');
writeln ('silahkan masukan bilangan yang akan anda bagi!');
readln (a);
gotoxy(5,3);
write (': ');readln(b);
gotoxy(10,3);
writeln (' = ',bagi(a,b));
writeln;
writeln;
writeln('mau mencoba lagi??? [y/t]');
readln(c);
until upcase(c)='T';
end.

0 komentar:

Posting Komentar

Pengikut

Keep In Touch...


ShoutMix chat widget
Powered By Blogger

GosuBlogger