Tampilkan postingan dengan label algoritma. Tampilkan semua postingan
Tampilkan postingan dengan label algoritma. Tampilkan semua postingan
Senin, 30 Mei 2011
turbo pascal 1.5 - deret kelipatan x yang kurang dari y
program deretkelipatanxyangkurangdariy;
uses wincrt;
var
x,y,i:integer;
begin
write('X = ');readln(x);
write('Y = ');readln(y);
write('Deret = ');
i:=x;
while x<y do
begin
write(x,' ');
x:=x+i;
end;
end.
Rabu, 11 Mei 2011
turbo pascal 1.5 - larik 1



uses wincrt;
type
tipenama=array[1..100] of string;
tipenilai=array[1..100] of integer;
var
i,n,maks,min,jum:integer;
nama:tipenama;
nilai:tipenilai;
nama1,nama2:string;
ratarata:real;
begin
write('berapa jumlah data yang ingin diinputkan : ');readln(n);
clrscr;
writeln('======================================================');
writeln(' no nama nilai akhir ');
writeln('======================================================');
for i:=1 to n do
writeln(' ',i:2,' .......................... ..... ');
writeln('======================================================');
writeln('nilai terbesar : oleh ');
writeln('nilai terendah : oleh ');
writeln('nilai rata-rata : ');
jum:=0;
maks:=0;
min:=100;
for i:=1 to n do
begin
gotoxy(9,3+i);writeln(' ');
gotoxy(9,3+i);readln(nama[i]);
gotoxy(44,3+i);writeln(' ');
gotoxy(45,3+i);readln(nilai[i]);
if maks
maks:=nilai[i];
nama1:=nama[i];
end;
if min>nilai[i] then
begin
min:=nilai[i];
nama2:=nama[i];
end;
jum:=jum+nilai[i];
end;
ratarata:=jum/n;
gotoxy(20,5+n);writeln(maks);
gotoxy(33,5+n);writeln(nama1);
gotoxy(20,6+n);writeln(min);
gotoxy(33,6+n);writeln(nama2);
gotoxy(20,7+n);writeln(ratarata:0:2);
end.
Sabtu, 07 Mei 2011
turbo pascal 1.5 - perulangan bersarang 5
program segitigabintang; {program menampilkan karakter bintang menjadi piramyd sebanyak N baris}
uses wincrt;
var
i,j,N :integer;
begin
write('berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=1 to N do
write(' ');
write('*');
writeln;
for i:=N downto 2 do
begin
for j:=i downto 2 do
begin
write(' ');
end;
for j:=i to N do
begin
write('*');
end;
write('*');
for j:=i to N do
begin
write('*');
end;
writeln;
end;
end.
turbo pascal 1.5 - perulangan faktorial
program faktorial; {program menghitung nilai faktorial dari inputan N}
uses wincrt;
var
i,N,jumlah :integer;
begin
jumlah:=1;
write('inputkan suatu nilai : '); readln(N);
write('faktorial dari ',N,' adalah : ');
write('1');
for i:=2 to N do
begin
write(' x ',i);
jumlah:=jumlah*i;
end;
write(' = ',jumlah);
end.
turbo pascal 1.5 - perulangan bersarang 4
program segitigabintang; {program menampilkan karakter bintang sebanyak N baris}
uses wincrt;
var
i,j,N :integer;
begin
write(' berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=n downto 1 do
begin
for j:=1 to i do
begin
write(' ');
end;
for j:=i to N do
begin
write('*');
end;
writeln;
end;
end.
uses wincrt;
var
i,j,N :integer;
begin
write(' berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=n downto 1 do
begin
for j:=1 to i do
begin
write(' ');
end;
for j:=i to N do
begin
write('*');
end;
writeln;
end;
end.
turbo pascal 1.5 - perulangan bersarang 3
program segitigabintang; {program menampilkan karakter bintang sebanyak N baris}
uses wincrt;
var
i,j,N :integer;
begin
write(' berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=n downto 1 do
begin
for j:=i to n do
begin
write(' ');
end;
for j:=1 to i do
begin
write('*');
end;
writeln;
end;
end.
uses wincrt;
var
i,j,N :integer;
begin
write(' berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=n downto 1 do
begin
for j:=i to n do
begin
write(' ');
end;
for j:=1 to i do
begin
write('*');
end;
writeln;
end;
end.
turbo pascal 1.5 - perulangan bersarang 2
program segitigabintang; {program menampilkan karakter bintang sebanyak N baris}
uses wincrt;
var
i,j,N :integer;
begin
write('berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=n downto 1 do
begin
for j:=1 to i do
begin
write('*');
end;
writeln;
end;
end.
turbo pascal 1.5 - perulangan bersarang
program segitigabintang; {program menampilkan karakter bintang sebanyak N baris}
uses wincrt;
var
i,j,N :integer;
begin
write('berapa jumlah baris bintang : '); readln(N);
writeln;
for i:=1 to N do
begin
for j:=1 to i do
begin
write('*');
end;
writeln;
end;
end.
Microprosesor AVR Studio 4 - Contoh Program 3
Operasi Logika dan Pergeseran
.include"8535def.inc"
.org 0x0000
rjmp utama
utama:
ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16
ldi r16,0xff
out ddra,r16
ldi r16,0x00
out ddrc,r16
ulang:
in r16,pinc
mov r17,r16
swap r17
lsl r17
lsl r17
lsl r17
andi r17,0b10000000
mov r18,r16
swap r18
lsl r18
andi r18,0b01000000
mov r19,r16
swap r19
lsr r19
andi r19,0b00100000
mov r20,r16
lsl r20
andi r20,0b00010000
mov r21,r16
lsr r21
andi r21,0b00001000
mov r22,r16
swap r22
lsl r22
andi r22,0b00000100
mov r23,r16
swap r23
lsr r23
andi r23,0b00000010
mov r24,r16
swap r24
lsr r24
lsr r24
lsr r24
andi r24,0b00000001
or r17,r18
or r17,r19
or r17,r20
or r17,r21
or r17,r22
or r17,r23
or r17,r24
out porta,r17
rjmp ulang
KETERANGAN
Jika Saklar PinC0 ditekan maka Led di PortA7 menyala
Jika Saklar PinC1 ditekan maka Led di PortA6 menyala
Jika Saklar PinC2 ditekan maka Led di PortA5 menyala
Jika Saklar PinC3 ditekan maka Led di PortA4 menyala
Jika Saklar PinC4 ditekan maka Led di PortA3 menyala
Jika Saklar PinC5 ditekan maka Led di PortA2 menyala
Jika Saklar PinC6 ditekan maka Led di PortA1 menyala
Jika Saklar PinC7 ditekan maka Led di PortA0 menyala
Selasa, 26 April 2011
Microprosesor AVR Studio 4 - Contoh Program 2
PROGRAM MENYALAKAN LED DARI LSB KE MSB HINGGA SEMUA LED MENYALA, DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
ser r16 ; set register 16 jadi logika 1 semua
out porta, r16
clc ; carry di set jadi 0
ldi r17,0x01
ldi r18,0x09 ; untuk perulangan
ulangi:
cp r18, r17 ; bandingkan r18 dengan r17
brlo mulai ; juka r18 < r17, maka jump ke mulai (di set kondisi awal)
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
lsl r16 ; geser logika 0 ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
PROGRAM MENYALAKAN LED DARI MSB KE LSB HINGGA SEMUA LED MENYALA, DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
out porta, r16
clc ; carry di set jadi 0
ldi r17,0x01
ldi r18,0x09 ; untuk perulangan
ser r16 ; set register 16 jadi logika 1 semua
out porta, r16
clc ; carry di set jadi 0
ldi r17,0x01
ldi r18,0x09 ; untuk perulangan
ulangi:
cp r18, r17 ; bandingkan r18 dengan r17
brlo mulai ; juka r18 < r17, maka jump ke mulai (di set kondisi awal)
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
lsr r16 ; geser logika 0 ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
PROGRAM MEMATIKAN LED DARI LSB DAN BERPINDAH HINGGA KE MSB, DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
ldi r16, 0x00 ; set register 16 jadi logika 0 semua
out porta, r16 ; menyalin r16 kle porta (berarti semua porta dalam keadanaan menyala)
sec ; set carry menjadi berlogika 1
ulangi:
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
rol r16 ; rotasi logika nilai carry ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
PROGRAM MEMATIKAN LED DARI MSB DAN BERPINDAH KE LSB, DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
ldi r16, 0x00 ; set register 16 jadi logika 0 semua
out porta, r16 ; menyalin r16 kle porta (berarti semua porta dalam keadanaan menyala)
sec ; set carry menjadi berlogika 1
ulangi:
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
roR r16 ; rotasi logika nilai carry ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
PROGRAM MENYALAKAN LED DARI LSB DAN BERPINDAH HINGGA KE MSB DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
ldi r16, 0xFF ; set register 16 jadi logika 1 semua
out porta, r16 ; menyalin r16 kle porta (berarti semua porta dalam keadanaan menyala)
clc ; set carry menjadi berlogika 1
ulangi:
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
roL r16 ; rotasi logika nilai carry ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
PROGRAM MENYALAKAN LED DARI MSB DAN BERPINDAH HINGGA KE LSB DAN SETERUSNYA
.include"8535def.inc"
.org 0x0000
rjmp mulai
mulai:
ldi r16, 0xFF ; set register 16 jadi logika 1 semua
out porta, r16 ; menyalin r16 kle porta (berarti semua porta dalam keadanaan menyala)
clc ; set carry menjadi berlogika 1
ulangi:
out porta, r16 ; salin r16 ke port a (nilai r16 yang menjadikan led menyala)
roR r16 ; rotasi logika nilai carry ke lsb, dan msb masuk ke carry
dec r18 ; perulangan berkurang 1
rjmp ulangi ; jump ke ulangi
akhir:
rjmp akhir
Microprosesor AVR Studio 4 - Contoh Program
.include"8535def.inc"
.org 0x0000
rjmp pertama
pertama:
ldi r16,0xff
ldi r17,0x00
out portb,r17
out portc,r16
out portd,r17
in r18,porta
cp r18,r16
breq set1
cp r18,r17
breq set2
set3:
in r19,porta
cp r19,r16
breq set1
cp r19, r17
breq set2
in r18,porta
out portd, r18
rjmp set3
set1:
out portd,r17
out portb,r18
in r18,porta
cp r18,r16
brne pertama
rjmp set1
set2:
out portd,r17
out portc,r18
in r18,porta
cp r18,r17
brne pertama
rjmp set2
akhir:
rjmp akhir
Penjelasan.
- input dengan melihat keadaan PortA, apakah keadaannya high semua, low semua, atau tidak kedua duanya.
- jika PortA dalam keadaan High semua, maka kondisi di PortA akan disalin ke PortB
- jika PortA dalam keadaan Low semua, maka kondisi di PortA akan disalin ke PortC
- jika keadaan pada no.2 dan no.3 tidak terpenuhi, maka kondisi di PortA akan disalin ke PortD
- karena PortB akan diberikan nilai PortA yang berlogika High, maka sebelumnya kondisi default untuk PortB adalah Low
- karena PortC akan diberikan nilai PortA yang berlogika Low, maka sebelumnya kondisi default untuk PortC adalah High
- untuk PortD, diberikan kondisi default Low.
Minggu, 28 November 2010
Langganan:
Postingan (Atom)








