11 Aralık 2013 Çarşamba

Pascal Programlama - 5

Merhaba,

Bu yazımda Pascal Programlamada döngüler konusunu inceleyeceğiz.

Döngüler, diğer programlama dillerinde olduğu gibi Pascal içinde çok önemlidir. Döngüler sayesinde daha kapsamlı programlar yazmaya başlayacağız.

Program yazarken tekrarlanması gereken işlemler için döngüler kullanılmaktadır.
Üç adet döngü inceleyeceğiz. Bunlar; For, While ve Repeat döngüleri

For Döngüsü:
for dögü değişkeni:=başlangıç değeri to bitiş değeri do
    begin
        {kod satırları}
    end;

For döngüsü kullanımı yukarıda görüldüğü gibidir. Döngü değişkeni başlangıç değerinden bitiş değerine kadar artar ve her defasında istenilen işlemler yapılmaktadır. 

for dögü değişkeni:=başlangıç değeri downto bitiş değeri do
    begin
        {kod satırları}
    end;

Buradaki for kullanımda ise, başlangıç değeri bitiş değerine kadar azalır ve her defasında istenilen işlemler yapılmaktadır.

Repeat Döngüsü:

Aşağıda görüldüğü gibi istenilen şart sağlanana kadar işlemler devam eder.

repeat
    {kod satırları}
until (şart);

Repeat döngüsünde birden fazla satır için begin-end yazılmasına gerek yoktur. 

While Döngüsü:

Aşağıda görüldüğü gibi istenilen şart sağlanana kadar işlemler devam eder.

while (şart) do
    begin
        {kod satırları}
    end;

While Ve Repeat Döngüsü Arasındaki Farklar:

  • Repeat döngüsünde şart yanlış olduğu sürece, While döngüsünde ise şart doğru olduğu sürece döngü devam etmektedir.
  • Repeat döngüsünde şart sonda kontrol edilir. Bu yüzden şartın doğru ya da yanlışlığına bakılmaksızın bir defa işlem yapılır ve şart sağlanmış ise döngü bitirilir. While döngüsünde ise şart döngüden önce kontrol edildiği için şart sağlanmıyorsa işlem yapılmadan döngü bitirilir. 

Şimdi faktöriyel hesaplayan programın farklı döngü çeşitleri ile yapılış örneklerinin kodları paylaşacağım. 

Program, girilen sayının faktöriyelini hesaplayıp, repeat döngüsü yardımıyla kullanıcının cevabına göre programı devam ettirmektedir.

uses crt;
var
    fakto    :extended;
    i,num    :integer;
    x        :char;
begin
    repeat
        clrscr;
        write('Bir Sayi Girin:');
        readln(num);
        
        fakto:=1;
            for i:=2 to num do
                begin
                    fakto:=i*fakto;
                end;
        writeln(num,'!=',fakto);
        writeln('devam edeyim mi?(e/h)');
        readln(x);
    until ((x='h') or (x='H'));
end.

uses crt;
var
    fakto    :extended;
    i,num    :integer;
    x        :char;
begin
    repeat
        clrscr;
        write('Bir Sayi Girin:');
        readln(num);
        
        fakto:=1;
            for i:=num downto 2 do
                begin
                    fakto:=i*fakto;
                end;
        writeln(num,'!=',fakto);
        writeln('devam edeyim mi?(e/h)');
        readln(x);
    until ((x='h') or (x='H'));
end.

uses crt;
var
    fakto    :extended;
    i,num    :integer;
    x        :char;
begin
    repeat
        clrscr;
        write('Bir Sayi Girin:');
        readln(num);
        
        fakto:=1;
        i:=1;
            while (i<=num) do
                begin
                    fakto:=i*fakto;
                    i=i+1;
                end;
        writeln(num,'!=',fakto);
        writeln('devam edeyim mi?(e/h)');
        readln(x);
    until ((x='h') or (x='H'));
end.




Hiç yorum yok: