fonksiyona pointer adresi yollama

Başlatan z, 05 Ocak 2022, 22:20:19

z

05 Ocak 2022, 22:20:19 Son düzenlenme: 05 Ocak 2022, 22:52:17 z
Bir fonksiyona array adresi yollamak istiyorum ama beceremedim.

Yapmak istedigim

Global degiskenlerim

a: array [0..10] of real;
b: array [0..10] of real;
c: array [0..10] of real;

yazmak istedigim fonksiyon x[0]=x[1] islemini yapacak;

Fonksiyonu mesela a arrayi icin cagiracagim bunun icin fonksiyona a[0] adresi yollayacagim.

Bu is nasil yapilir?

Fonksiyonu ve nasil cagrilacagini yazabilirmisiniz.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

05 Ocak 2022, 23:13:50 #1 Son düzenlenme: 05 Ocak 2022, 23:15:25 z
Fonksiyona adres parametresini global degisken uzerinden bildirirsem sorum yok ama fonksiyona parametre yollamaya calisirsam bir turlu kabul ettiremiyorum.
Ayrica pointer degerini inc ve dec ile artirip azaltmak da hosuma gitmiyor.

Global degiskenle su sekilde cozdum.

a:array [0..10] of  real;

p:^real;

function Tasi():real;
{
    inc(p);            // Bu isleme gerek olmadan da yapabilmem lazim
    result:=p^;
    dec(p);            // Bu isleme gerek olmadan da yapabilmem lazim
    p^:=result;
}

Cagirirken;

        p:=@a;
        Tasi(); // p[0]=p[1]

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bu sekilde oldu ama inc ve dec'dan da kurtulmam lazim.

function Tasi(a: pointer):real;
var p: ^real;
begin
         p:=a;
         inc(p);
         result:=p^;
         dec(p);
         p^:=result;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        a[1]:=2.8;
        Tasi(@Ia);
end;
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Kılıç

06 Ocak 2022, 00:10:32 #3 Son düzenlenme: 06 Ocak 2022, 00:20:49 Kılıç
Edit
auto-reverse recording

Kılıç

auto-reverse recording

z

Cok basit sekilde hallettim. Pointera falan gerek kalmadi

function Tasi(var n: array of real):real;
begin
         n[0]:=n[1];
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        a[1]:=2.8;
        Tasi(a);
end;
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Kılıç

06 Ocak 2022, 00:24:32 #6 Son düzenlenme: 06 Ocak 2022, 00:41:51 Kılıç
Evet, fonksiyon parametresi önüne var kelimesi ekleyince Fonksiyon dışındaki değişken kastedilmiş oluyor. Bu sayede global değişken veya başka fonksiyon içindeki değişken kullanılabiliyor
auto-reverse recording

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.