PROGRAM
pola3;
var
n,i,k :
byte
;
begin
readln(n,k);
for
i:=
1
to
n-
1
do
begin
if
(i
mod
k =
0
)
then
write
(
'*'
)
else
write
(i);
write
(#
32
);
end
;
if
((n
mod
k) =
0
)
then
write
(
'*'
)
else
writeln
(n);
end
.
mengapa anda melakukan looping hanya sampai n-1? mengapa tidak sekalian saja i:=1 to N, lalu perintah antara "END;" dan "END." dihilangkan?. bukannya sama saja?
BalasHapusmengapa anda melakukan looping hanya sampai n-1?
BalasHapus>itu karena kalo langsung output terakhir akan ada spasi {write(#32)}, nah cara mengatasinya pake n-1, lalu proses lagi sekali tanpa spasi, gitu...
lalu perintah antara "END;" dan "END." dihilangkan?
>END. dan END; itu beda! END. hanya untuk penutup program, artinya hanya pada akhir
>END; untuk penutup perintah
>END; dihilangkan karena tidak ada BEGIN setelah IF THEN, maka akan otomatis ditutup oleh ";"
contoh:
if ((n mod k) = 0) then
write('*')
else
writeln(n);
atau
if ((n mod k) = 0) then begin
write('*');
end else begin
writeln(n);
end;
sudah faham?
ini punya saya
BalasHapusprogram pattern;
var a,b,c:integer;
begin
readln(a,b);
for c:=1 to a do
if(c mod b=0)then write('* ')
else if(a=c)then write(c) else write(c,' ');
writeln();
end.
@ara :
BalasHapuskarena pada saat loping terakhir (ketika i=n-1) akan tercetak spasi terakhir , lalu pada baris ke 13, 14, 15, dan 16 akan dieksekusi nilai i yang terakhir, jika i habis dibagi dengan k maka yang tercetak "*" tetapi jika tidak habis maka yang tercetak adalah i(angka terakhir) dan setelah ini tidak ada lagi spasi yang tercetak.
@Alivan : terima kasih atas masukan nya, saya telah paham dengan program yang anda berikan dan lebih efektif dibanding dengan algoritma saya.
kok punya saya pas saya masukkan ke toki, jawabannya wrong answer ya? mohon bantuannya T_T
BalasHapusvar
x,y,i:integer;
begin
readln(x,y);
for i:= 1 to x do
begin
if (i mod y = 0) then
write('* ');
if (i mod y <> 0) and (i <> x) then
write(i,' ');
if (i = x) then
write (i);
end;
end.
thanks:)
karena pada program anda jika (i=x) sudah pasti dicetak bilangan, sementara
Hapusada kemungkinan keluaran digit terakhirnya bintang,
jadi di seleksi dulu kayak programnya si rio
mohon bantuannya kenapa punya sya error:
BalasHapusprogram pola3;
var
i,a,b : byte;
begin
read (a,b);
for i := 1 to a do
begin
if (i mod b <> 0) then
write (i) else
write (*);
if (i <> a) then write (' ');
end;
end.
keteranggan:
Compilation error time: 0 memory: 0 signal:0
prog.pas(13,4) Fatal: Unexpected end of file
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
kesalahannya ada di write(*); seharusnya write('*')
Hapuswrite(#32) itu apa maksudnya?
BalasHapus