WEBVTT

00:05.980 --> 00:11.280
Evet arkadaşlar, şimdi hesaplamanın aktarımını gösteren program örneğini inceleyelim.

00:11.290 --> 00:16.560
Yani sol tarafta birinci varlık ve sağ tarafta ikinci varlık var.

00:16.570 --> 00:21.820
Şimdi, önceki ders videosunda tartıştığımız gibi, birinci varlık iki değişkenin sahibidir.

00:21.820 --> 00:23.770
Bu A ve B, değil mi?

00:25.270 --> 00:28.360
Varlık iki ise hesaplamanın sahibidir.

00:28.990 --> 00:36.760
Nihai amaç, birinci varlığın iki varlığın sahip olduğu hesaplamayı kullanarak iki tamsayı A ve B'nin

00:36.790 --> 00:44.770
çarpımını hesaplamak ve sonucu varlığın sahip olduğu yerel depolamada saklamak istemesidir.

00:44.770 --> 00:45.380
İki.

00:45.400 --> 00:46.180
Doğru.

00:46.690 --> 00:53.770
Yani bu, iki elması olan ve meyve suyu öğütücüsü olmayan birinin komşusuna gidip ondan bir meyve suyu öğütücüsü

00:53.770 --> 01:00.310
ödünç almasına ve komşusunun meyve suyu öğütücüsünü kullanarak elmalarının suyunu çıkarmasına

01:00.310 --> 01:01.780
benzer.

01:01.780 --> 01:08.290
Ancak tek fark, o meyve suyunun sizin tarafınızdan içilmemesi, ancak sonunda bir meyve suyu partisi veren

01:08.290 --> 01:10.480
komşunuz olmasıdır, değil mi?

01:10.690 --> 01:11.410
Umarım öyledir.

01:11.410 --> 01:13.200
Bu aptalca bir örnek değil.

01:13.210 --> 01:19.810
Her neyse, şimdi birinci varlığa, yani birinci iş parçacığına ait olan bu iki tamsayının çarpımını

01:19.810 --> 01:22.870
hesaplamak için tartışmamıza devam edelim.

01:22.900 --> 01:29.020
Yapılması gereken ilk şey, ikinci iş parçacığı olan ikinci varlığın hesaplamasını

01:29.290 --> 01:33.010
varlığa kaydettirmekle sorumlu olmasıdır.

01:33.010 --> 01:39.520
Bir Şimdi burada birinci varlığın işlev işaretçisini gösteren bir değişkene sahip olduğunu görebilirsiniz.

01:39.520 --> 01:40.320
Değil mi?

01:40.330 --> 01:45.130
İşlev işaretçileri hiçbir şey değildir, ancak işlevlerin adresini saklayan işaretçilerdir.

01:45.250 --> 01:49.120
Böylece bu fonksiyon işaretçisinin prototipinin çok basit olduğunu görebilirsiniz.

01:49.120 --> 01:52.840
İki tamsayı kabul eder ve bir tamsayı döndürür.

01:52.870 --> 01:53.560
Doğru.

01:53.560 --> 01:58.780
Dolayısıyla bu fonksiyonun prototipi, bu hesaplama fonksiyonunun prototipi olan çarpma fonksiyonu

01:58.780 --> 02:00.100
ile tam olarak eşleşir.

02:00.100 --> 02:00.700
Değil mi?

02:01.000 --> 02:08.080
Dolayısıyla, bir numaralı adım olarak, hesaplama işlevini varlığa kaydettirmek, sonunda bir

02:08.080 --> 02:13.690
elma suyuna sahip olmak isteyen ikinci varlığın sorumluluğundadır.

02:13.690 --> 02:20.770
Burada kayıt, hesaplama işlevinin kullanım için bir varlığa verilmesi anlamına gelir.

02:20.800 --> 02:21.610
Değil mi?

02:21.610 --> 02:28.270
Birinci adımdan sonra, bu fonksiyon işaretçisi değişkeni bir adrese sahip olacaktır,

02:29.050 --> 02:32.840
diyelim ki f e, d, bu fonksiyonun adresidir.

02:32.870 --> 02:33.590
Değil mi?

02:34.090 --> 02:40.300
Dolayısıyla, birinci adımda, birinci varlık hesaplamayı varlıktan başarıyla ödünç aldıktan sonra

02:40.300 --> 02:43.270
hesaplama transferini gerçekleştirin.

02:43.270 --> 02:50.350
İki Şimdi ikinci adımda, birinci varlık hesaplamanın doğru yapılması gereken verileri

02:50.350 --> 02:53.140
üretme sorumluluğuna sahiptir.

02:53.410 --> 02:59.410
Dolayısıyla, veri oluşturma adımları sadece A ve B değerlerinin doğru şekilde başlatılmasını içerir.

02:59.410 --> 03:04.150
İki sayıyı çarpmak için iki sayıya ihtiyacınız olduğu oldukça açıktır.

03:04.540 --> 03:08.800
Başka bir deyişle, hesaplama yapabilmek için girdiye ihtiyacınız vardır.

03:08.950 --> 03:16.900
Ve veriler bir varlık tarafından üretildikten sonra, bir varlık, iş parçacığından ödünç aldığı hesaplamayı

03:16.900 --> 03:19.300
kullanmaktan sorumludur.

03:19.330 --> 03:24.280
Çarpma işlemini gerçekleştirmek için iki tane, değil mi?

03:24.520 --> 03:27.850
Varlık üzerinde mevcut olan fonksiyon çarpımı.

03:27.850 --> 03:33.220
Biri hiçbir şey değildir, ancak basitçe varlıktan ödünç alınan hesaplamayı çağırır.

03:33.320 --> 03:34.640
İki sağ.

03:34.640 --> 03:42.260
Dolayısıyla bu işlev işaretçisi, A ve B girdileriyle bu belirli çarpma işlevini çağırır, doğru.

03:42.260 --> 03:48.680
Ve bu multiply fonksiyonunun iki tamsayının çarpımını hesapladığını ve sonucu ikinci varlığın sahip olduğu

03:48.680 --> 03:52.220
yerel depolama alanında sakladığını görebilirsiniz.

03:52.310 --> 03:53.150
Doğru.

03:53.690 --> 03:59.930
Dolayısıyla, bir önceki ders videosunda tartıştığımız hesaplama transferi modeli tam olarak bu programlama

03:59.930 --> 04:01.730
örneğiyle eşleştirilmiştir.

04:02.360 --> 04:07.940
Dolayısıyla dördüncü adım, sonuçların varlığın yerel deposunda saklanmasını içerir.

04:07.940 --> 04:16.340
İki Burada dikkat edilmesi gereken bazı noktalar, tüm bu hesaplamada herhangi bir veri akışı olmadığıdır.

04:16.370 --> 04:22.070
A ve B verileri hiçbir zaman bir bellek konumundan diğerine kopyalanmadı, değil mi?

04:22.070 --> 04:24.950
Yani kesinlikle veri akışı yok.

04:25.040 --> 04:30.020
Ve bu iletişim modeli genellikle tek yönlü bir iletişimdir, değil mi?

04:30.020 --> 04:35.390
Bu iletişim modelinde, iki numaralı varlığın yerel deposu sonunda

04:35.390 --> 04:37.190
sonuçla doldurulur.

04:37.190 --> 04:37.910
Doğru.

04:38.420 --> 04:43.820
Yani hesaplama birinci varlık tarafından yapılır, ancak sonunda sonuçlar varlığın yerel deposunda

04:43.820 --> 04:45.080
mevcuttur.

04:45.080 --> 04:45.740
İki.

04:45.830 --> 04:46.700
Doğru.

04:47.030 --> 04:51.560
İkinci varlık, sonunda tüm elma suyuna sahip olan komşunuzdur.

04:52.520 --> 04:59.420
Ve bu örneğe bakıp düşünürseniz, bu fonksiyon olan gerçek çarpan fonksiyonu ikinci

04:59.420 --> 05:05.330
varlığa aittir, ancak birinci varlık tarafından yürütülür, değil mi?

05:06.260 --> 05:10.720
Neden birinci varlık tarafından bir işlev işaretçisi aracılığıyla yürütülür.

05:10.730 --> 05:11.480
Doğru.

05:12.470 --> 05:18.650
Bu, hesaplama transferi modeliydi ya da başka bir deyişle, hesaplama transferini uygulamak için fonksiyon

05:18.650 --> 05:21.470
işaretçileri bu şekilde kullanılır.

05:21.770 --> 05:27.980
Hesaplama transferini uygulamak veya aynı sürecin iki iş parçacığı arasındaki iletişimi kurmak için fonksiyon

05:27.980 --> 05:34.160
işaretçilerinin nasıl kullanılabileceğini görmek için alıştırma olarak kısa bir ödev yapacağız.
