Salam...,
Kita
akan bahas tetang perintah Loop a Loop pada pemograman pascal. Dalam banyak
kasus dalam pemrograman, kita perlu mengulang proses. Dalam hal ini, kita perlu
perintah loop. Pascal memahaminya, oleh karena ituPascal menyediakan tiga jenis
loop:
- For ... to ... do
- While ... do
- Repeat ... until
1. For ... to ... do
Syntax
:
For
variable := fromwhat to what do
begin
:
:
statements / commands
:
:
end;
Contoh:
Misalkan i adalah bilangan bulat
For
i:=1 to 5 do
begin
writeln(i);
if i=5 then writeln('Finished !');
end;
Ini menghasilkan 1, 2, 3, 4, 5, maka pesan 'Finished!'.
Anda melihat bahwa di dalam blok begin-end, Anda bisa menambahkan perintah yang
Anda inginkan. Jika hanya ada satu perintah di dalamnya, Anda dapat menghilangkan
begin..end. Misalkan Anda menghilangkan jika i = 5 ..., sehingga dalam
begin..end kita tambahkan writeln (i);. Kita bisa menghilangkan begin..end
tersebut, maka menjadi:
For
i:=1 to 5 do
writeln(i);
Jika
kita ingin menghitung mundur i, dari 5 ke 1, kita hanya mengubah menjadi downto
:
For
i:=5 downto 1 do
writeln(i);
Bagaimana
jika kita ingin melangkah lebih dari satu, yaitu 1, 3, 5, 7, 9, ...? BASIC
memberikan langkah bagaimana tentang Pascal? Nah, dalam hal ini, Pascal TIDAK
memberikan seperti itu, tetapi jika Anda kreatif, Anda dapat melakukannya. Hal
ini berlaku untuk langkah fraksional juga. NAMUN, Pascal tidak termasuk fitur
khusus. Periksa ini:
{
Suppose c is a char variable }
For
c:='A' to 'Z' do write(c,' ');
kita
dapat menulisnya :
For c:='Z' downto 'A' do write(c,' ');
Kita
bahkan dapat menulis ini: (Misalkan b adalah boolean):
For
b:=false to true do writeln(b);
2. While...do
jika
Anda telah belajar BASIC, Anda akan menemukan While… Do dalam Pascal cukup sama
dengan WHILE ... end. Perintahnya adalah:
While
conditions do
begin
:
(statements / commands)
:
end;
Sebelum kita masuk blok begin..end, pertama
cek apakah kondisi (s) “satisfied”.
Jika tidak, itu hanya melewatinya, atau menjalankan setiap perintah dalam
begin..end. Ketika mencapai akhir, ia akan mengecek kondisi lagi. Jika “satisfied”,
maka loop lagi. Jika tidak, pergi keluar. Ini berjalan dan terus. Logikanya
seperti ini:
For example :
i:=1;
While i<6 do
begin
writeln(i);
i:=i+1;
end;
Anda
juga dapat menggabungkan kondisi dengan AND, OR, XOR atau. Jika Pascal tidak
menyediakan langkah seperti BASIC, Anda dapat mengubah untuk menjadi sementara
yang memiliki lebih banyak fleksibilitas.
3. Repeat ... Until.
The
syntax is :
Repeat
:
statements / commands
:
Until
condition;
Berbeda
While...do, Repeat...Until tidak
memeriksa kondisi pada awalnya. Itu hanya memasuki blok dan melakukan sesuatu
di dalam. Repeat...Until tidak
memerlukan begin...end. kemudian memeriksa apakah kondisi “satisfied “ atau
tidak. If SO, berhenti. Itulah perbedaan ketiga dari While...do. Jika tidak, loop
kembali. Jadi, logikanya seperti ini:
Contoh
:
(uses
crt first)
Repeat
Until Keypressed;
OR
:
i:=1;
Repeat
writeln(i);
i:=i+1;
Until
i>5;
Dalam
While...do dan Repeat...until ada kesempatan untuk mendapatkan loop tak
terbatas. Cukup memberikan kondisi yang mustahil. Tapi ingat, bahwa ini juga
kelemahan jika kita tidak menggunakannya dengan hati-hati.
contoh:
While 2<4 do
begin
(bla bla bla ...)
end;
(2
selalu kurang dari 4, jadi While...do mendapatkan Pengulangab tak terbatas )
Atau
Repeat
(bla la bla…)
Until 3>5;
End ;
(3
tidak pernah bisa melebihi 5, jadi Repeat...until tidak ada )
Atau
mungkin saja :
While true do
begin
(bla bla bla ...)
End;
Atau
Repeat
( blab
la bla…)
Until
False;
End;
(Hannya
menghasilkan efek yang sama seperti contoh sebelumnya: loop tak terbatas )
Mungkin
juga sekumpulan pengulangan, For dalam sebuah For , sebuah While dalam While yang lain. Dan bahkan
sekumpulan Loop pada satu Form dalam Form yang lain, seperti sebuah For dalam
Repeat...Until, Contoh :
Repeat
:
For ... do
begin
:
end;
:
Until
...;
Hal
ini sangat legal.
Bagaimana
jika saya ingin menyelamatkan di tengah loop? Mudah, gunakan Break. contoh:
begin
for i:=1 to 10 do
begin
writeln(i);
if i=5 then break;
end;
writeln('Finished !');
end.
Akan
menghasilkan ;
1
2
3
4
5
Break
berarti keluar dari loop arus. Hal ini juga dapat diterapkan pada while...do dan
repeat...until
Bagaimanadengan
sekumpulan loop ? Break hanya berlaku pada blok begin...end. Lihat program di
bawah ini :
begin
for i:=1 to 4 do
begin
for j:=1 to 5 do
begin
writeln(i,' ',j);
if j=3 then break;
end;
writeln('Next i loop');
end;
writeln('Finished !');
end.
Akan
menghasilkan :
1 1
1 2
1 3
Next
i loop
2 1
2 2
2 3
Next
i loop
3 1
3 2
3 3
Next
i loop
4 1
4 2
4 3
Next
i loop
Finished
!
Contoh lainnya :
begin
for i:=1 to 5 do
begin
for j:=1 to 3 do
begin
writeln(i,' ',j);
end;
if i=2 then break;
end;
writeln('Finished !');
end.
Akan
menghasilkan :
1 1
1 2
1 3
2 1
2 2
2 3
Finished
!
Break
hanya melakukan fungsinya dalam lingkup (begin...end ) Bagaimana jika saya
ingin melewatkan malah berhenti pada Loop ? gunakan Continue ganti Break. ganti semua Break pada contoh dengan Continue
dan lihat apa yang terjadi.
Demikian sedikit penjelasan tentang pemakaian perintah Units dalam pemograman Pascal, silahkan anda kembangkan lagi.
Salam ...,
No comments:
Post a Comment