7- Turbo Pascal Programlamada Alt Programlar (Procedure)

Benzer belgeler
ALT PROGRAMLAR BÖLÜM Giriş Alt Programlar Hakkında Genel Bilgiler

Bölüm 9. Altprogramlar ISBN

Fonksiyonlar (Altprogram)

3- Turbo Pascal Programlamada Giriş Çıkış İşlemleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Pascal Programlama Dili (2. hafta)

24 Mart İlgili Modül/ler : Transfer. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

Pascal Programlama Dili

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

PROGRAMLAMA TEMELLER. C Program Yap s

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

PASCAL PROGRAMLAMA DİLİ YAPISI

Bölüm 10. Altprogramların gerçeklenmesi ISBN

BİLG Dr. Mustafa T. Babagil 1

Internet Programming II

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

Göstericiler (Pointers)

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

NESNEYE YÖNELİK PROGRAMLAMA

AKINSOFT Market Otomasyonu. IBM POS Genius. Yardım Dosyası. Sayfa 1

Bu sisteme uygun veri girişi ve veri entegrasyonu İşletme Defter modülünden yapılabilmektedir.

Algoritma ve Akış Diyagramları

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

Bilgisayar Programlama

Fen ve Mühendislik Uygulamalarında MATLAB

UNIT PROGRAMLAR BÖLÜM 13

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Algoritmalar ve Programlama. Algoritma

Algoritma ve Akış Diyagramları

C Programlama Dilininin Basit Yapıları

SİSTEM BİRİMİ VE EKRAN KOMUTLARI

Katma Değer Vergisi Beyannamesinin (2) ekinde verilen Katma Değer Vergisi Kesintisi Yapılanlara Ait Bildirim, Muhasebe IV modülünden hazırlanabilir.

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

PROGRAMLAMAYA GİRİŞ DERS 2

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Hesapların Belirlenmesi Bölümünde Kayıtlı Gelen Entegrasyon Tablosu Dosyaları Listesi

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Uygulama İş Akış Kaydında Koşul Tanımlamaları

BİL-142 Bilgisayar Programlama II

Ekran 1: Ziraat Bankasından alınan Excel formatındaki ZIRAATBANKASI.XLS isimli dosya

Özyineleme (Recursion)

ALGORİTMA VE PROGRAMLAMA II

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

KAYITLAR BÖLÜM Giriş

YUVARLAMA FARKI KAPATMA

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

STORED PROCEDURE LER (Saklı Yordamlar)

VERİ TABANI ve YÖNETİMİ

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

ENROUTEPLUS TA YAPILMASI GEREKENLER

ELN1001 BİLGİSAYAR PROGRAMLAMA I

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

9 Ekim Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Cari II

KDV kısım numaraları Pos cihazındaki KDV departman numaralarına göre tanımlandıktan sonra F2-Kaydet butonu ile bu bölüm kayıt edilir.

Sunum İçeriği. Programlamaya Giriş

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

PASCAL ARŞİVİ BÖLÜM Giriş. 7.2 Sistem Birimi ve Katarlar Chr

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

C PROGRAMLAMA D İ L İ

ECZACI İSKONTOSU UYGULAMASI

Yığın MİKROİŞLEMCİ SİSTEMLERİ. Yığın. Örnek MİB için Yığın. Yığma İşlemi. Çekme İşlemi

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Bilgisayar Programlama. 1.Hafta

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Program ile birlikte 4 adet örnek Excel dosyası ve bu dosyaları transfer etmekte kullanılan örnek dizaynlar verilmektedir.

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

WebInstaller. 1. Kurulum Đçin Gereksinimler

Bölüm 9. Altprogramlar ISBN

TEKRARLAMA DEYİMLERİ BÖLÜM Giriş. 9.2 For-Do

Pointer Kavramı. Veri Yapıları

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

EXCEL 2007 ELEKTRONİK ÇİZELGE

18 Haziran Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Muhasebe

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

Koordinat Dönüşümleri (V )

Datasoft Yazılım Genel Muhasebe Programı Defter Dökümleri Kılavuzu

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

BİL-142 Bilgisayar Programlama II

FİŞ NUMARASI DÜZENLEMESİ

FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI

Transkript:

7- Turbo Pascal Programlamada Alt Programlar (Procedure) Alt programların ana programda yapacağımız ek işlevleri üstlendiğinden daha önceki bölümde bahsetmiştik. Alt programlar genelde ana program bloğu içerisinde kullanılan program parçacıkları olarak bilinir. Uzun bilgisayar programlarında kodların karmaşası ve tekrar kullanılamamasından dolayı alt programlar önem kazanmıştır. Yapısal bilgisayar programlama dillerinde ana program sadece alt programların çağrıldığı veya parametrelerine değer geçirme yeri olarak tasarlanmalıdır. Altprogramlar ve fonksiyonlar yukarıdan aşağı (top-down) tasarım ilkelerine uymalıdır. Altprogramlar ayrı dosyalar halinde yazıldıklarına tekrar kullanılabilme şansına sahiptir. Yazılan bir dosya işleme altprogram veya fonksiyonu dışarıdan çağrılma yöntemleri ile tekrar kullanılabilme olanağına sahiptir. Altprogramlar Turbo Pascal bilgisayar programlama dilinde Procedure olarak bilinir. Temel yazım kuralları Procedure içinde geçerlidir. Her alt program bir pascal bilgisayar programında olduğu gibi değişken tanımlama, sabit ve dosya işlemlerini tanımlandığı blokları barındırabilir. Alt programlar fonksiyonlarda olduğu gibi geri dönüş tiplerine de sahip olan ve olmayan iki ayrı tiptedir. Geri dönüş tipine sahip şeklinde yazılan procedure ler parametreli procedure lerdir. Geri dönüş tipi olmayan Procedure ler parametresiz procedure lerdir. Parametreleri ana program ile alt programlar arasında ver taşımak için kullandığımızı hatırlayalım. Altprogramlarda en önemli işlemlerden birisi değişkelerin tanımlanma yeri ve şeklidir. Global değişkenler olarak bilinen genel değişkenler ana program içerisinde ve alt programlar (proedure) içerisinde kullanılan değişken tipleridir. Bu tip değişkenler ana programda tanımlanır ve alt programlarda da kullanılırlar. Global değişkenler tanımlandıkları ana program içerisinden alt programlara geçirilerek kullanılır ve sonuçlar ana programa tekrar aynı değişken içerisinde geri gönderilir. 87

Lokal (yerel) değişkenler sadece alt programlarda (Procedure) tanımlanan değişkelerdir. Bu tip değişkenler alt programlarda işlenir ve ana programa aktarılmaz. Ana programa aktarmak gerektiğinde tanımlanan global değişkenler ile aktarılırlar. 7.1 Parametre Almayan Procedure ler Parametresiz procedure ler de alt programda kullanılacak olan değişkenler ana programın içerisinde kullanılan değişkenlerdir. Altprogramlarda kullanılan tüm değişkenler ve sabitler ana program bloğunda tanımlanmıştır. Değişkenler kullanıldıktan sonra içerisinde değerler saklanır. Bu tür altprogramlarda Procedure ismini yazmak yeterlidir. Parametre ihtiyacı olmadığından ana programdan çağrıldığında ayrıca değişken atamadan veya ayırmadan procudure çalışır çalışması sona erdiğinde program kaldığı yerden çalışmaya devam eder. Parametresiz alt program (Procedure) tanımlarken aynen bir pascal bilgisayar programı yazıyormuş gibi tanımlamaları yaparız. Alt programların (Procedure) en çok kullanılan değişkenleri global (genel) değişkenlerdir. Bu değişken tiplerinin kullanılmasının nedeni alt programlara gönderilecek olan değişkenlerin tanımlamaları genelde ana program bloğu içerisinde yapılır. Alt programlar normal program gibi düşünüldüğünden mutlaka ve end bloğu kullanılmalıdır. Procedure deney; Değişken_tanımlama; parametresiz alt programlara bir örnek verelim. Bu örnekte iki değişken alt programlar yardımı ile programa girsin ardından iki değişken sayı birbiri ile çarpılsın daha sonra ekrana yazdırılsın. Programda kullanılacak olan değişkenler gerçel tipte olsun. Genelde bu tip çarpma işlemlerinde 88

değişkenler tam sayı tipinde seçilirler. Biz bu örnekte gerçel olanı kullanmaya çalışalım. Program deneme; USES CRT; var x,y,z: real; Procedure deg_gir; writeln( İlk sayıyı girin ); readln(x); writeln( İkinci sayıyı girin ); readln(y); Procedure carp; Z:= x*y; Procedure deg_yaz; writeln( İki sayının çarpımı, z, dir ); readln; {ana program blogu} Clrscr; Writeln( Bu program iki sayıyı carpar ); Deg_gir; Carp; Deg_yaz; End. Programdan görüldüğü gibi değişkenler genel olarak yani global tanımlanmıştır. Bu değişkenler alt programlara ana program bloğu 89

içerisinden çağrılmakta ve değerler yine bu global tipte değişkenler ile geri gönderilmektedir. Ana program bloğunda alt programların çağrılma yöntemlerine bakacak olursak burada sadece alt programları (Procedure) adları yazılmıştır. Alt programlar kullanacakları değişkeleri ana program ile ortak kullandığından tekrar alt program içerisinde herhangi bir tanımlama yapılmamıştır. Program çalışmaya başladığında ana programdan alt program olan Procedure deg_gir yardımı ile değişkenleri çağırmakta ve ilk olarak değişkenlerin değerlerinin girilmesi sağlanmaktadır. Daha sonra diğer alt program olan Procedure carp ile girilen değişken değerleri çarpılmakta ve sonuç ana programda tanımlanan z değişkeni ile ana programa aktarılmaktadır. Aktarılan bu değişken değeri Procedure programı ile ekrana yazdırılmaktadır. deg_yaz alt 7.2 Parametre Alan Procedure ler Parametreli altprogramlar (Procedure) ana program ile alt program arasında değişkelerin değerlerinin aktarıldığı yapılardır. Bu tip yapılarda değişken değerleri tek yönlü ve iki yönlü aktarılmaktadır. Tek yönlü aktarımlarda değişkenlerin değerleri alt programa gönderilir ve sonuç değeri olarak aktarılacak olan parametre içerisinde değer aktarılır. Alt programda tanımlanan parametrelerin değerleri yine alt programda tanımlanan değişkenlerin ile ana programa gönderilir. Parametre olarak gönderilen değişken değerlerinin sıralanmasına dikkat etmek gereklidir. Kullanılan parametrelerin değerlerinin değişken değerlerine aktarılmasında sıralama esası geçerlidir. Değişkenlere hangi değer aktarılacak ise parametrelerde o sıra takip edilir. Parametre olarak kullanılan değişkenlerden alt program içerisinde kullanılarak geri değer göndermesi isteniyor ise alt programın başında tanımlanmalıdır. Bu tip alt program tanımlanmasına iki yönlü aktarım denir. Genel olarak parametreli alt program tanımlanması aşağıdaki gibi yapılmaktadır. Alt program isim_1 parametresiz olarak yazılan alt program 90

(Procedure) yapısındadır. Bu alt programda ana program bloğundan alt programa herhangi bir değer gönderilmemektedir. Ana programdan çağrılan Procedure isim_1 alt programı sadece kendi içerisinde yazılı olan komutları çalıştıracak ve sonunda ana program çalışmaya kaldığı yerden devam edecektir. Bu tip alt programda ana program yanında alt program içerisindeki değişken tanımlamaları kullanılmamaktadır. Procedure isim_1( değişken_param: değişken_tipi); Değişken_tanımlama; Tek yönlü değer aktarımlı procedur lerde değer tanımında olduğu gibi ana programdan prosedüre veya procedure den ana programa doğrudur. Alt program Procedure isim_2 ana programdan aktarılan parametreler alt programda işlenecek ve ana programa alt programdaki parametreler ile geri gönderilecektir. Bu tanımlamada ana programda tanımlanan değişken listesi de kullanılmaktadır. Eğer ana programda kullanılan bir değişken var ise Procedure tanımlanırken parametre listesinde bu değişkende tanımlanmalıdır. Procedure isim_2( var değişken_param: değişken_tipi); Değişken_tanımlama; İstatistikte kullanılan ortalama ve ortalamanın varyansını hesaplayan Turbo Pascal alt programı aşağıdaki gibi yazılabilir. Bu alt programda 91

PROCEDURE avevar(data: glnparray; n: integer; VAR ave,svar: real); var j: integer; s: real; ave := 0.0; svar := 0.0; for j := 1 to n do ave := ave+data[j]; ave := ave/n; for j := 1 to n do s := data[j]-ave; svar := svar+s*s svar := svar/(n-1) Procedure lerde fonksiyonlar gibi değer aktarılacağı zaman fonksiyondan gönderilecek olan değer fonksiyon adı olmaz. Aktarılacak olan değer veya değer kümesi alt programın parametre listesinde tanımlanır. i) Tek Yönlü Değer aktarımlı Alt Programlar Bu tip alt programlarda değerler ana programdan alt programa doğru veya alt programdan ana programa doğrudur. Alt programda kullanılacak olan değişkenler ana programdan işlenerek veya işlenmesi için alt programa gönderilir. İşlenmiş veya işlenecek olan değişkenler alt programın 92

çağrılmasından sonra işlenir veya işlenmiş şekilde ana programa gönderilir. Procedure yazılırken eğer ana programdan Procedure değer aktarılacak ise alt program (Procedure) aşağıdaki gibi yazılır. Procedure Procudure_adi(değiş_listesi : değişken_tipi);. Eğer alt programdan (Procedure) ana programa değer aktarılacak ise alt program (Procedure) aşağıdaki gibi yazılır. Görüldüğü gibi aktarılacak olan parametreler VAR değişken parametre bildirimi ile ana programa aktarılacak değişkenler tanımlanır. Procedure Procudure_adi(VAR değiş_listesi: değişken_tipi);. Bu tip bildirimli alt programlara yazılacak olan basit bir örnek aşağıdaki gibidir. Bu örneklerde çağrılacak olan değerler ve parametre listesine dikkat etmek gerekir. Procedure carpma(x,y:integer); carp:=x*y; writeln( İşlemin Sonucu,carp); Alt programdan ana program değer aktarmak için yazılacak olan örnek ise aşağıdaki gibi olur. Bu alt programda görüldüğü gibi değişken parametre tanımlaması yapılarak değer aktarılmıştır. Alt programların parametre 93

listesinde değişken parametre olarak tanımlanmakta olduğunu unutmamak gerekiyor. Procedure carpma( VAR carp: integer); var x,y: integer; readln(x); readln(y); carp:=x*y; Görüldüğü gibi aktarılacak olan değer değişken listesinde tanımlanmıştır. Alt program (Procedure) içerisinde kullanılacak olan değerlerde alt program içerisinde değişken olarak tanımlanmıştır. Burada dikkat edilecek olan önemli bir nokta kullanılacak olan değişkenlerin ana program içerisinde genel değişken olarak tanımlanmaması gerekir. Eğer bu tip alt program içerisinde kullanılan değişkenler ana program içerisinde kullanılır ise değişkenlerin kullanımına ait hata kodu üretilecektir. Ek olarak her değişken tanımından önce mutlaka VAR değişken tanım bloğu kullanılmalıdır. ii) Çift Yönlü Değer aktarımlı Alt Programlar Alt program veya ana programda tanımlanan değişken listesi ile ana programdan alt programa veya tam tersi aktarımların yapıldığı alt program tanımlama yöntemidir. Bu tür tanımlamalarda ana programdan alt programa doğru değişken listesinden değer aktarımı yapılabilir. Genel tanımlamasına inceleyecek olursak bir önceki bölümde bahsedilen tanımlamaların birleşiminden oluşmuştur. Genel yöntem ana programda tanımlanan değişkenlerin kullanımına yönelik şekil farkı vardır. kullanılacak olan değişken ana programda tanımlanarak aktarılır. 94

Procedure Procudure_adi(VAR değiş_listesi : değişken_tipi, değişkenler: değişken_tipi);. Bu tip alt program tanımlamasına örnek verecek olursak aşağıdaki gibi bir önceki örneği derleyebiliriz. Procedure carpma( VAR carp: integer, x,y: integer); carp:= x*y; Görüldüğü gibi VAR carp tanımından ana programa aktarılacak değer tanımlanmıştır. Her değişkenden önce kullanılması gereken VAR değişken tanım bloğu burada değişken tanımından hemen önce kullanılmıştır. Bu tip alt program tanımlamaları değişkenlerin kontrolü açısından dikkatli yazılması ve değişkenlerin ile parametrelerin sıralama ve tiplerinin de dikkat ile belirlenmesi gerekmektedir. Bu alt programı inceleyecek olursak, VAR carp ile bir değişken tanımlanmasının yapıldığını görmekteyiz. Parametre olarak x,y:integer şeklinde tanımlanmış olan değer aktarım parametreleri alt program (Procedure) parametresidir. Alt programdan (Procedure) ana programa aktarılacak olan sonuç ise carp değişkeni içerisinde ana programa gönderilmektedir. Bir başak örnekte üçgenin alanını hesaplayan iki taraflı aktarım yapan alt program yazalım. Program ucgen_hesap; Var x,y: integer; sonuc:real; Procedure ucgen( VAR alan: real ; a,h: integer); 95

alan:= (a*h)/2; writeln( Üçgenin kenar uzunluğunu girin ); readln(a); writeln( Üçgenin h yüksekliğini girin ); readln(h); ucgen(sonuc, x,y); writeln( Üçgenin alanı, sonuc); end. Programda görüldüğü gibi ana program içerisinde kullanılacak olan değişkenler ile alt program içerisinde kullanılacak olan değişkenler ayrı tanımlanmıştır. Bu tanımlama sonucunda ana programda tanımlanan değişkenler alt programlara değer göndermekte kullanılmıştır. Alt program (Procedure) içerisinde kullanılan değişken ve parametreler alt program (Procedure) tanımlanırken bildirilmiştir. Procedure ucgen( VAR alan: real ; a,h: integer); alan:= (a*h)/2; Değişken olarak tanımlanan VAR alan :real; ana programdan gönderilen değişkeni alarak alt program (Procedure) içerisinde kullanmaktadır. Diğer a,h: integer tanımlanması ise alt programın (Procedure) parametre tanımlamasıdır. Ana program içerisinde ucgen(sonuc, x,y); yazımı ile alt program (Procedure) kullanılmıştır. Değişken değer ve parametre listesinde ana program için kullanılan tanımlamaları kullanıldığına dikkat etmek gereklidir. 96