-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
İki boyutlu diziler de argüman olarak bir fonksiyon içine gönderilebilir. İki boyutlu dizi bir C fonksiyonunun parametresiyse, bu durumda ilk boyut belirtilmez, sadece ikinci boyut belirtilir. Aşağıdaki örnekte de, sütunları sıralayan C fonksiyonu ile çağıran fonksiyon iç içe kullanılmıştır ve bu iki fonksiyon arasındaki iletişim referans yoluyla sağlanmıştır. Aynı zamanda burada kullanılan ilk dizi, gönderilen dizinin başlangıç adresidir.
Aşağıdaki mat_sort adlı fonksiyon, gönderilen iki boyutlu dizinin sütunlarını sıralıyor. Sıralanan dizi çağıran programda yazdırılıyor.
Bir Matrisin Sütunlarını Sıralayan C Fonksiyonu ve Çağıran Fonksiyon İle Birlikte Kullanılması:
#import <Foundation/Foundation.h>
void mat_sort(int x[][4],int m,int n);
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int a[3][4]={{2,1,7,3},{5,3,6,8},{4,7,9,1}};
int i,j;
mat_sort(a,3,4);
NSLog(@"\nSIRALANMIŞ MATRİS(SÜTUNLAR)\n\n");
for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
printf(" %i \t ",a[i][j]);
NSLog(@"\n");
}
[pool drain];
return 0;
}
void mat_sort(int x[][4],int m,int n)
{
int i,j,k,t;
for (j=0; j<n; j++)
{
for (i=0; i<m-1; i++)
{
for (k=i+1; k<m; k++)
{
if(x[i][j]>x[k][j])
{
t=x[i][j];
x[i][j]=x[k][j];
x[k][j]=t;
}
}
}
}
}
PROGRAMIN ÇIKTISI:
2 1 6 1
4 3 7 3
5 7 9 8
PROBLEM:
Aşağıdaki gibi bir matris oluşturan bir Objective C fonksiyonu yazalım ve çağıran program ile birlikte kullanalım:
Gördüğümüz gibi, matrisin ilk sütununda 0-90 arasındaki açılar (derece olarak) yerleştirilecek, ikinci sütuna bu açıların sinüsleri (sin 0,sin 30,sin 60 vb.) üçüncü sütuna da bunların kosinüsleri yerleştirilecektir.
Basit Trigonometrik Tabloyu Oluşturan Objective C Programının Kod Bloğu:
#include "math.h"
void trig(double t[][3],int m);
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
double x[4][3];
int i,j;
trig(x,4);
NSLog(@"\n ACI\t SIN \t COS\n");
for (i=0; i<4; i++)
{
for (j=0; j<3; j++)
NSLog(@" %f\t ",x[i][j]);
NSLog(@"\n");
}
[pool drain];
return 0;
}
void trig(double t[][3],int m)
{
int i;
double s;
s=0;
for (i=0; i<m; i++)
{
t[i][0]=s;
s=s+30;
t[i][1]=sin(t[i][0]*3.14159/180);
t[i][2]=cos(t[i][0]*3.14159/180);
}
}
PROGRAMIN ÇIKTISI:
AÇI SİN COS
0.000000 0.000000 1.000000
30.000000 0.500000 0.866026
60.000000 0.866025 0.500001
90.000000 1.000000 0.000001