diff options
Diffstat (limited to 'tr-tr')
| -rw-r--r-- | tr-tr/brainfuck-tr.html.markdown | 86 | ||||
| -rw-r--r-- | tr-tr/objective-c-tr.html.markdown | 320 | ||||
| -rw-r--r-- | tr-tr/php-tr.html.markdown | 7 | 
3 files changed, 412 insertions, 1 deletions
| diff --git a/tr-tr/brainfuck-tr.html.markdown b/tr-tr/brainfuck-tr.html.markdown new file mode 100644 index 00000000..a6f6f078 --- /dev/null +++ b/tr-tr/brainfuck-tr.html.markdown @@ -0,0 +1,86 @@ +--- +language: brainfuck +filename: brainfuck-tr +contributors: +    - ["Prajit Ramachandran", "http://prajitr.github.io"] +translators: +    - ["Haydar KULEKCI", "http://scanf.info/"] +lang: tr-tr +--- + +Brainfuck son derece minimal bir programlama dilidir. (Sadece 8 komut) ve  +tamamen Turing'dir. + +``` +"><+-.,[]" (tırnak işaretleri hariç) karakterleri dışındaki her karakter  +gözardı edilir. + +Brainfuck is represented by an array with 30,000 cells initialized to zero +and a data pointer pointing at the current cell. + +There are eight commands: ++ : Geçerli hücrenin değerini bir artırır. +- : Geçerli hücrenin değerini bir azaltır. +> : Veri işaretçisini bir sonraki hücreye hareket ettirir(sağdaki hücreye). +< : Veri işaretçisini bir önceki hücreye hareket ettirir(soldaki hücreye). +. : Geçerli hücrenin ASCII değerini yazdırır (örn: 65 = 'A'). +, : Bir girdilik karakteri aktif hücre için okur. +[ : Eğer geçerli hücredeki değer sıfır ise, ]ifadesine atlar.  +    Diğer durumlarda bir sonraki yönergeye geçer. +] : Eğer geçerli hücredeki değer sıfır ise, bir sonraki yönergeye geçer.  +    Diğer durumlarda, [ ifadesine karşılık gelen yönergelere döner. + +[ ve ] bir while döngüsü oluşturur. Açıkça, dengeli olmalıdırlar. + +Basit bir Brainfuck programına göz atalım.  + +++++++ [ > ++++++++++ < - ] > +++++ . + +Bu program 'A' karaterini ekrana basar. İlk olarak, #1'inci hücre 6'ya artırılır. +#1'inci hücre döngü için kullanılacaktır. Sonra, ([) döngüsüne girilir ve  +#2'inci hücreye hareket edilir. #2'inci hücre 10 kez artırılır, #1'inci hücreye  +geri dönülür. #1 hücresini bir azaltır. Bu döngü 6 kez gerçekleşir. (Bu 6 kez  +azaltmak demektir, #1 hücresi 0 değerini alır ve bu noktada ] ifadesini atlar). + +Bu noktada, biz #1 hücresindeyiz, değeri şu anda 0 ve #2 hücresinin değeri  +60'tır. Biz #2 hücresine hareket diyoruz ve bu hücreyi 5 defa artırıyoruz. +#2'nin şu anki değeri 65 olur. Sonra #2 hücresinin ASCII karşılığını  +yazdırıyoruz. 65 değerinin ASCII karşılığı 'A'dır. Ekrana 'A' yazılacaktır.  + + +, [ > + < - ] > . + +Bu program kullanıcıdan bir girdi okur, ve karakteri bir diğer hücreye yazdırır, +ve daha sonra aynı karakteri ekrana yazdırır. + +, ifadesi kullanıcıdan karakteri #1 hücresine okur. Sonra bir döngü  +başlar. #2 hücresine hareket edilir, #2 hücresinin değeri bir artırılır, #1  +hücresine geri dönülür, ve #1 hücresinin değer bir azaltılır. Bu #1 hücresinin +değeri 0 olana kadar devam eder ve #2 hücresi #1'in eski değerini tutar. Çünkü  +biz #1 hücresindeki verileri döngü süresince #2 hücresine taşıyoruz, ve sonunda +#2 hücresinin ASCII değerini yazdırıyoruz. + +Boşluk karakteri sadece okunabilirliği artırmak içindir. Aşağıdaki gibi de  +yazabilirsiniz. + +,[>+<-]>. + + +Bu uygulamanın ne yaptığına bakalım: + +,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >>   + +Bu program 2 sayı alır, ve birbiri ile çarpar. + +Özetle, ilk olarak iki girdi alır. Sonra, #1 hücresinde şarta bağlı harici bir  +döngü başlar. Sonra #2 ye hareket edilir, ve içerde #2 hücresine bağlı bir döngü +daha başlar ve #3 hücresinin değerini artırır. Ama, Bir problem vardır: iç  +döngünün sonunda #2'inci hücrenin değeri 0 olacaktır. Bunu çözmek için #4  +hücresinin de değerini yükseltiyoruz, ve sonra #4 hücresinin değerini #2'ye  +kopyalıyoruz. +``` + +İşte Brainfuck. Zor değil değil mi? Eğlenmek için kendi programınızı  +yazabilirsiniz, veya farklı bir dilde Brainfuck yorumlayıcısı yazabilirsiniz. +Yorumlayıcı oldukça basittir, ama mazoşist iseniz, Brainfuck içerisinde bir  +Brainfuck yorumlayıcısı yazmayı deneyebilirsiniz. diff --git a/tr-tr/objective-c-tr.html.markdown b/tr-tr/objective-c-tr.html.markdown new file mode 100644 index 00000000..854d70f6 --- /dev/null +++ b/tr-tr/objective-c-tr.html.markdown @@ -0,0 +1,320 @@ +--- +language: Objective-C +contributors: +    - ["Eugene Yagrushkin", "www.about.me/yagrushkin"] +    - ["Yannick Loriot", "https://github.com/YannickL"] +filename: LearnObjectiveC-tr.m +translators: +    - ["Haydar KULEKCI", "http://scanf.info/"] +lang: tr-tr +--- + +Objective-C Apple tarafından, OSX ve iOS işletim sistemleri ve onların +kendi çatıları olan Cocoa ve Cocoa Touch için kullanılan bir programlama dilidir. +Genel açamlı, object-oriented bir yapıya sahip programlama dilidir. C  +programlama diline Smalltalk stilinde mesajlaşma ekler.   + +```cpp +// Tek satır yorum // işaretleri ile başlar + +/* +Çoklu satır yorum bu şekilde görünür. +*/ + +// #import ile Foundation başlıklarını projeye import edebiliriz.  +#import <Foundation/Foundation.h> +#import "MyClass.h" + +// Progarmınızı girişi bir main fonksiyonudur ve bir integer değer döner. +int main (int argc, const char * argv[]) +{ +    // Programdaki bellek kullanımını kontrol etmek için autorelease bir  +    // oluşturuyoruz. Autorelease bellekte kullanılmayan değerlerin kendi  +    // kendini silmesi demektir. +    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; +  +    // NSLog konsola bir satırlık bilgi yazdırmak için kullanılır. +    NSLog(@"Hello World!"); // "Hello World!" değeri yazdırılır. +  +    /////////////////////////////////////// +    // Tipler & Değişkenler +    /////////////////////////////////////// +     +    // Basit Tanımlamalar +    int myPrimitive1  = 1; +    long myPrimitive2 = 234554664565; +     +    // Nesne Tanımlamaları +    // strongly-typed nesne tanımlaması için karakter değişken isminin önüne  +    // * karakteri konulur. +    MyClass *myObject1 = nil;  // Strong typing +    id       myObject2 = nil;  // Weak typing +    // %@ bir nesnedir. +    // 'description' objelerin değerlerinin gösterilmesi için bir düzendir. +    NSLog(@"%@ and %@", myObject1, [myObject2 description]);  +            // "(null) and (null)" yazdırılacaktır. +     +    // Karakter Dizisi (String) +    NSString *worldString = @"World"; +    NSLog(@"Hello %@!", worldString); // "Hello World!" yazdırılacaktır. +     +    // Karakterler +    NSNumber *theLetterZNumber = @'Z'; +    char theLetterZ            = [theLetterZNumber charValue]; +    NSLog(@"%c", theLetterZ); + +    // Tamsayılar +    NSNumber *fortyTwoNumber = @42; +    int fortyTwo             = [fortyTwoNumber intValue]; +    NSLog(@"%i", fortyTwo); +     +    NSNumber *fortyTwoUnsignedNumber = @42U; +    unsigned int fortyTwoUnsigned    = [fortyTwoUnsignedNumber unsignedIntValue]; +    NSLog(@"%u", fortyTwoUnsigned); +     +    NSNumber *fortyTwoShortNumber = [NSNumber numberWithShort:42]; +    short fortyTwoShort           = [fortyTwoShortNumber shortValue]; +    NSLog(@"%hi", fortyTwoShort); +     +    NSNumber *fortyTwoLongNumber = @42L; +    long fortyTwoLong            = [fortyTwoLongNumber longValue]; +    NSLog(@"%li", fortyTwoLong); + +    // Kayan Noktalı Sayılar (Floats) +    NSNumber *piFloatNumber = @3.141592654F; +    float piFloat           = [piFloatNumber floatValue]; +    NSLog(@"%f", piFloat); +     +    NSNumber *piDoubleNumber = @3.1415926535; +    piDouble                 = [piDoubleNumber doubleValue]; +    NSLog(@"%f", piDouble); + +    // BOOL Değerler +    NSNumber *yesNumber = @YES; +    NSNumber *noNumber  = @NO; + +    // Dizi objeleri +    NSArray *anArray      = @[@1, @2, @3, @4]; +    NSNumber *thirdNumber = anArray[2]; +    NSLog(@"Third number = %@", thirdNumber); // "Third number = 3" yazdırılır + +    // Dictionary objeleri +    NSDictionary *aDictionary = @{ @"key1" : @"value1", @"key2" : @"value2" }; +    NSObject *valueObject     = aDictionary[@"A Key"]; +    NSLog(@"Object = %@", valueObject); // "Object = (null)" yazıdılır + +    /////////////////////////////////////// +    // Operatörler +    /////////////////////////////////////// +     +    // Operatörler C dilindeki gibi çalışır. +    // Örneğin: +    2 + 5; // => 7 +    4.2f + 5.1f; // => 9.3f +    3 == 2; // => 0 (NO) +    3 != 2; // => 1 (YES) +    1 && 1; // => 1 (Logical and) +    0 || 1; // => 1 (Logical or) +    ~0x0F; // => 0xF0 (bitwise negation) +    0x0F & 0xF0; // => 0x00 (bitwise AND) +    0x01 << 1; // => 0x02 (bitwise left shift (by 1)) + +    /////////////////////////////////////// +    // Kontrol Yapıları +    /////////////////////////////////////// + +    // If-Else ifadesi +    if (NO) +    { +        NSLog(@"I am never run"); +    } else if (0) +    { +        NSLog(@"I am also never run"); +    } else +    { +        NSLog(@"I print"); +    } + +    // Switch ifadesi +    switch (2) +    { +        case 0: +        { +            NSLog(@"I am never run"); +        } break; +        case 1: +        { +            NSLog(@"I am also never run"); +        } break; +        default: +        { +            NSLog(@"I print"); +        } break; +    } +     +    // While döngü ifadesi +    int ii = 0; +    while (ii < 4) +    { +        NSLog(@"%d,", ii++); // ii++, ii değişkenini kullanıldıktan  +                             //sonra yerinde artırır. +    } // =>        "0,"  +      //           "1," +      //           "2," +      //           "3," yazdırılır + +    // For döngü ifadesi +    int jj; +    for (jj=0; jj < 4; jj++) +    { +        NSLog(@"%d,", jj++); +    } // =>        "0,"  +      //           "1," +      //           "2," +      //           "3," yazdırılır +      +    // Foreach ifadesi              +    NSArray *values = @[@0, @1, @2, @3]; +    for (NSNumber *value in values) +    { +        NSLog(@"%@,", value); +    } // =>        "0,"  +      //           "1," +      //           "2," +      //           "3," yazdırılır + +    // Try-Catch-Finally ifadesi +    @try +    { +        // İfadelerinizi buraya yazın +        @throw [NSException exceptionWithName:@"FileNotFoundException" +                            reason:@"Sistemde Dosya Bulunamadı" userInfo:nil]; +    } @catch (NSException * e) +    { +        NSLog(@"Exception: %@", e); +    } @finally +    { +        NSLog(@"Finally"); +    } // =>        "Exception: Sistemde Dosya Bulunamadı" +      //           "Finally" +      // yazdırılacaktır +  +    /////////////////////////////////////// +    // Objeler +    /////////////////////////////////////// +     +    // Bellekten bir alan ayırmak ve objeyi burada oluşturmak bir obje örneği  +    // oluşturalım. Bir obje allocate ve init aşamalarını bitirmeden tam olarak +    // işlevsel değildir. +    MyClass *myObject = [[MyClass alloc] init]; +     +    // Objective-C nesne yönelimli programlama modelinin temelinde objelere  +    // mesaj gönderme vardır. +    // Objective-C'de bir method çağırılmaz, ona bir mesaj gönderilir. +    [myObject instanceMethodWithParameter:@"Steve Jobs"]; + +    // Programda kullanılan bellek temizlenir +    [pool drain]; +     +    // Program Sonu +    return 0; +} + +/////////////////////////////////////// +// Sınıflar ve Fonksiyonlar +/////////////////////////////////////// + +// Sınıfınızı (MyClass.h) header dosyasında tanımlayın: + +// Sınıf tanımlama yapısı: +// @interface ClassName : ParentClassName <ImplementedProtocols> +// { +//    Üye değişken (member variable) tanımlaması; +// } +// -/+ (type) Method tanımlaması; +// @end +@interface MyClass : NSObject <MyCustomProtocol> +{ +    int count; +    id data; +    NSString *name; +} +// getter ve setter için otomatik oluşturulmuş gösterim. +@property int count; +@property (copy) NSString *name; // Copy the object during assignment. +@property (readonly) id data;    // Declare only a getter method. + +// Metodlar ++/- (return type)methodSignature:(Parameter Type *)parameterName; + +// "+" class metodları içindir ++ (NSString *)classMethod; + +// "-" instance metodu içindir +- (NSString *)instanceMethodWithParmeter:(NSString *)string; +- (NSNumber *)methodAParameterAsString:(NSString*)string andAParameterAsNumber:(NSNumber *)number; + +@end + +// Metodların implementasyonlarını (MyClass.m) dosyasında yapıyoruz: + +@implementation UserObject + +// Obje bellekten silineceği (release) zaman çağırılır +- (void)dealloc +{ +} + +// Constructor'lar sınıf oluşturmanın bir yoludur +// Bu varsayılan bir constructor'dur ve bir obje oluşturulurken çağrılır. +- (id)init +{ +    if ((self = [super init])) +    { +        self.count = 1; +    } +    return self; +} + ++ (NSString *)classMethod +{ +    return [[self alloc] init]; +} + +- (NSString *)instanceMethodWithParmeter:(NSString *)string +{ +    return @"New string"; +} + +- (NSNumber *)methodAParameterAsString:(NSString*)string andAParameterAsNumber:(NSNumber *)number +{ +    return @42; +} + +// MyProtocol içerisinde metod tanımlamaları +- (void)myProtocolMethod +{ +    // ifadeler +} + +@end + +/* + * Bir `protocol` herhangi bir sınıf tarafından implement edilen metodları tanımlar  + * `Protocol`ler sınıfların kendileri değildir. Onlar basitçe diğer objelerin  + * implementasyon için sorumlu oldukları bir arayüz (interface) tanımlarlar.  + */ +@protocol MyProtocol +    - (void)myProtocolMethod; +@end + + + +``` +## Daha Fazla Okuma + +[Vikipedi Objective-C](http://tr.wikipedia.org/wiki/Objective-C) + +[Objective-C Öğrenme](http://developer.apple.com/library/ios/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/) + +[Lise Öğrencileri için iOS: Başlangıç](http://www.raywenderlich.com/5600/ios-for-high-school-students-getting-started) diff --git a/tr-tr/php-tr.html.markdown b/tr-tr/php-tr.html.markdown index c5576fd7..3db437cf 100644 --- a/tr-tr/php-tr.html.markdown +++ b/tr-tr/php-tr.html.markdown @@ -146,6 +146,11 @@ echo $associative['One']; // 1 yazdıracaktır.  $array = ['One', 'Two', 'Three'];  echo $array[0]; // => "One" +// Dizinin sonuna bir eleman ekleme +$array[] = 'Four'; + +// Diziden eleman silme +unset($array[3]);  /********************************   * Çıktı @@ -692,7 +697,7 @@ $cls = new SomeOtherNamespace\MyClass();  Referans ve topluluk yazıları için [official PHP documentation](http://www.php.net/manual/) adresini ziyaret edin. -Gncel en yi örnekler için [PHP Usulüne Uygun](http://kulekci.net/php-the-right-way/) adresini ziyaret edin. +Güncel en yi örnekler için [PHP Usulüne Uygun](http://kulekci.net/php-the-right-way/) adresini ziyaret edin.  Eğer bir paket yöneticisi olan dil kullandıysanız, [Composer](http://getcomposer.org/)'a bir göz atın. | 
