CaniasTroia

While Döngüsü

1) Fibonacci Sayısı: While döngüsü için ilk olarak Fibonacci sayısını üreten bir uygulama örneği yapacağız. Bunun için DEVT11 ekranını kullanacağız. DEVT11 ekranı açılır

Açılan ekranda aşağıda kod bloğu CODEBOX kısmına yazılır. Run butonuna basılarak kod çalıştırılır.

OBJECT: 
 INTEGER INTNBR1,
 INTEGER INTNBR2,
 INTEGER INTNBR3,
 STRING  STRNBR4,
 INTEGER INTMAX;

INTMAX = 150;
INTNBR1 = 1;
INTNBR2 = 1;
STRNBR4 = '';

WHILE 1 == 1 
BEGIN
	INTNBR3 = INTNBR1 + INTNBR2;

	IF INTNBR3 > INTMAX THEN
		BREAK;
	ENDIF;

	INTNBR1 = INTNBR2;
	INTNBR2 = INTNBR3;
	STRNBR4 = STRNBR4 + INTNBR3 + ';';
	STRINGVAR1=STRNBR4;
ENDWHILE;

Burada Integer tipinde INTNBR1, INTNBR2, INTNBR3, INTMAX ve Strıng tipinde STRNBR4, sayılarını tanımladık.maksimum sayı olarak 150 sayısını,başlangıç sayısı olarak da 1 sayısını atadık. While döngüsü içinde INTNBR3 sayısını sürekli olarak INTNBR2 sayısına INTNBR2 sayısınıda INTNBR1 sayısına atayarak. Fabunacci döngüsünü oluşturduk.Çıktıda alınan her sayısı ile bir önceki sayını toplamı bir sonraki sayıyı vermektedir. If döngüsü içindede bu işlemi 150 sayısını aşmayacak şekilde yapmasını sağladık .En son sayı olan 144 ile 89 un toplamı 150 sayısını aştığı için döngü durdu ve en son sayı olarak 144 sayısını elde ettik.

2) Faktöriyel: While döngüsü ile bir sayının faktöriyelini alan bir uygulama örneği yapacağız. Bunun için DEVT11 ekranında CODEBOX kısmına aşağıdaki kod bloğu yazılır.

OBJECT: 
 INTEGER INTNUM,
 INTEGER INTFAC,
 INTEGER INTIN,
 STRING STRNUM,
 STRING STRNUM2;

INTNUM = 5;
INTIN = 1;
INTFAC = 1;
STRNUM='';
STRNUM2='';

WHILE INTIN <= INTNUM 
BEGIN
	INTFAC =  INTFAC * INTIN;
	STRNUM=STRNUM+INTIN;

	IF INTIN < INTNUM THEN
		STRNUM=STRNUM+'*' ;
	ENDIF;

	STRNUM2=STRNUM+'='+INTIN+'!'+TOCHAR(10)+STRNUM+'='+INTFAC;
	STRINGVAR3=STRNUM2;
	INTIN = INTIN+ 1;
	SYNCHRONIZE;
	DELAY 1000;
ENDWHILE;

Burada integer tipinde INTNUM, INTFAC ve INTIN string tipinde STRNUM, STRNUM2 sayılarını tanımladık. INTNUM değerini faktöriyelini alcağımız sayı, INTFAC ve INTIN sayılarını başlangıç sayısı olan 1 olarak tanımladık STRNUM,STRNUM2 sayılarının başlangıç değeri olarak. boş alan olarak tanımladık. While döngüsü içinde başlangıç sayısını faktöriyelini alacağımız sayının değerine eşit olana kadar çalışmasını sağladık. STRNUM değerine her artan sayı değerini atadık ve aradaki çarpma işlemini çıktıya yansıtmak için ‘*’ sembolünü if koşulunda ekledik. STRNUM değerini, hesapladığımız INTFAC değerini ve aradaki işlem işaretlerini ekleyerek STRNUM2 değerine atadık. Stringvar3 bölümünde de STRNUM2 değerini atayarak yazdırdık. SYNCHRONIZE komutunu kullanarak her yaptığı adımı tek tek yazdırmasını DELAY 1000 komutunu kullanarak da her adımda 1 saniye beklemesini sağladık.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu