pascalda procedure

Kodla Büyü

cinefil

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,159
pascal programlama dilinde parametreli procedurede farklı tipte iki tane veri alıp veren değişkeni nasıl yazacağız çünkü örneğin
procedure ornek(var a:string;y:integer);

gibi örnekte hem a hem de y değişkenleri değer alıp verebilmesini istiyorum ama parantez içindeki 'var' kendisinden sonraki ilk noktalı virgüle kadar geçerli olabiliyor ve bu 'var' a değişkenine değer alıp verebilme yeteneği kazandırıyor ancak y değişkeninin de değer alıp verebilmesi gerekiyor... bunu nasıl sağlayacağım... yardım edebilirseniz çok sevinirim :)
 
hocam senin istediğin şeyin VB. karşılığını biliyorum ama pascalda nasıl yapılır onu bilmiyorum.
vb de değeri byval veya byref olarak prosedür içine alabiliyorsun.
byvalda, sadece değer giriyor ve içeride değiştiremiyorsun,
byrefde değişkeni prosedür içinde değiştirebiliyorsun.
bunun pascal karşılığını araştır.
pointer kullanarak belki çözülebilir.
 
cinefil' Alıntı:
pascal programlama dilinde parametreli procedurede farklı tipte iki tane veri alıp veren değişkeni nasıl yazacağız çünkü örneğin
procedure ornek(var a:string;y:integer);

gibi örnekte hem a hem de y değişkenleri değer alıp verebilmesini istiyorum ama parantez içindeki 'var' kendisinden sonraki ilk noktalı virgüle kadar geçerli olabiliyor ve bu 'var' a değişkenine değer alıp verebilme yeteneği kazandırıyor ancak y değişkeninin de değer alıp verebilmesi gerekiyor... bunu nasıl sağlayacağım... yardım edebilirseniz çok sevinirim :)
............
program toplama;
uses wincrt;
var n,m : integer; {global (genel) değişkenler}
PROCEDURE topla(a,b: integer);
var
toplam : integer; {yerel değişken}
begin
toplam := a+b;
writeln(a,' + ',b,' = ',toplam);
end;
Begin
writeln('Lütfen iki tamsayı giriniz : ');
readln(m,n);
...................
yeterli olmuştur sanırım
...................
topla(n,m);
End.
 
systran' Alıntı:
hocam senin istediğin şeyin VB. karşılığını biliyorum ama pascalda nasıl yapılır onu bilmiyorum.
vb de değeri byval veya byref olarak prosedür içine alabiliyorsun.
byvalda, sadece değer giriyor ve içeride değiştiremiyorsun,
byrefde değişkeni prosedür içinde değiştirebiliyorsun.
bunun pascal karşılığını araştır.
pointer kullanarak belki çözülebilir.
hımm araştırırım ama pascalda bildiğim kadarı ile pointer falan yok... yardım için teşekkürler..
 
Hocam epey unutmuşum pascalı ama kitaba gözattım pascalda pointer var...

Bilmiyorum kitap aldınız mı ama bulabilirseniz Sürat yayınlarının Pascal ve Program Geliştirme Kitabı güzel bir kaynaktı ve halen elimdedir, öneririm...
 
BaRBaRYaN' Alıntı:
cinefil' Alıntı:
pascal programlama dilinde parametreli procedurede farklı tipte iki tane veri alıp veren değişkeni nasıl yazacağız çünkü örneğin
procedure ornek(var a:string;y:integer);

gibi örnekte hem a hem de y değişkenleri değer alıp verebilmesini istiyorum ama parantez içindeki 'var' kendisinden sonraki ilk noktalı virgüle kadar geçerli olabiliyor ve bu 'var' a değişkenine değer alıp verebilme yeteneği kazandırıyor ancak y değişkeninin de değer alıp verebilmesi gerekiyor... bunu nasıl sağlayacağım... yardım edebilirseniz çok sevinirim :)
............
program toplama;
uses wincrt;
var n,m : integer; {global (genel) değişkenler}
PROCEDURE topla(a,b: integer);
var
toplam : integer; {yerel değişken}
begin
toplam := a+b;
writeln(a,' + ',b,' = ',toplam);
end;
Begin
writeln('Lütfen iki tamsayı giriniz : ');
readln(m,n);
...................
yeterli olmuştur sanırım
...................
topla(n,m);
End.
hocam sizin yaptığınız programda topla prosedurunda iki tane integer değişkeni var ama parametreli değil ayrıca benim dediğim iki tane parametreli değişken olacak ve birisi integer birisi string olacak... örneğin
procedure ornek(var sayi:integer;ad:string)

yukarıda yazdığım değişkenlerden sayi değişkeni değer alıp gönderebilir fakat ad değişkeni veri alıp gönderemez çünkü bir değişkenin değer alıp gönderebilmesi için bir sonraki noktalı virgüle kadar var bloğunun içinde olması lazım... örneğin sizin yaptığınız örnekten yola çıkarsak:
PROCEDURE topla(var a,b: integer); (buraya var ekledim a ile b değişkenleri değer alıp gönderebilsinler diye ama a ile b değişkenlerini var bloğunun içinde araya virgül koyarak tanımlayabiliyorum ama 'ad' isminde veri alıp gönderebilen bir string değişken daha ekelemk istersem işler karışıyor çünkü örneğin:
PROCEDURE topla(var a,b: integer;ad:string); oluyor AMA var bloğu ile noktalı virgül dışında kalıyor... bundan dolayı da a ve b gibi dışarıya veri gönderemiyor ama mesela şöyle olsa ad değişkeni dışarıya veri gönderebilir:
PROCEDURE topla(var ad:string;a,b: integer); (ama bu sefer de a ve b değişkenleri dışarıya veri gönderemez çünkü noktalı virgülden sonra yazılmıştır...
umarım soruyu iyi anlatabilmişimdir...
 
s_kajmeran' Alıntı:
Hocam epey unutmuşum pascalı ama kitaba gözattım pascalda pointer var...

Bilmiyorum kitap aldınız mı ama bulabilirseniz Sürat yayınlarının Pascal ve Program Geliştirme Kitabı güzel bir kaynaktı ve halen elimdedir, öneririm...
hımm pascalda pointer olduğunu ilk defa duydum (yada hiç rastgelmedim) sağolun araştıracağım.. kitap tavsiyesi için teşekkürler...
 
systran' Alıntı:
http://en.wikipedia.org/wiki/Pascal_(programming_language)
gerçekten de varmış... ömer akgöbeğin kitabına baktım yoktu... demek ki kitapda anlatmamış... neyse yeni bişey öğrenmiş oldum sayende sağol :+1:
 
Geri
Üst