C# İle biLGİsayar programlama temelleri (C# Programlama Kitabı) Svetlin Nakov & Co



Yüklə 3,36 Mb.
səhifə2/31
tarix03.11.2017
ölçüsü3,36 Mb.
#28822
1   2   3   4   5   6   7   8   9   ...   31

0.27.2 Bölüm 1: Programlamaya Giriş



"Programlamaya Giriş" Bölümü’nde, programlamanın temel terminolojisine göz atacağız ve ilk programımızı yazacağız. Programlama nedir sorusuna kendimizi alıştıracağız ve bilgisayarlar ve programlama dilleri ile bağlantı kuracağız. Kısaca yazılım geliştirmenin ana aşamalarını gözden geçireceğiz, C# dilini, .NET platformu ve yazılım geliştirmede kullanılan farklı Microsoft teknolojilerini tanıtacağız. C# programlama için gereken yardımcı araçları inceleyeceğiz ve ilk bilgisayar programımızı yazmak için C# dilini kullanarak derleyeceğiz ve komut satırını ve bunun yanı sıra Microsoft Visual Studio tümleşik geliştirme ortamını kullanarak çalıştıracağız. .NET Platformu için dokümantasyon olarak düşünülmüş MSDN Kitaplığı’na kendimizi alıştıracağız, bu dilin yetenekleri ile ilgili çalışmamızda bize yardımcı olacaktır.
Teodor Bozhikov ve Svetlin Nakov tarafından düzenlenen bölüm Pavel Donchev tarafından yazılmıştır. Bölümün içeriği "Java ile Programlamaya Giriş" kitabının Luchesar Cekov tarafından yazılmış çalışmalarına biraz dayanmaktadır. Atanas Valchev tarafından İngilizce’ye çevrilmiştir.

0.27.3 Bölüm 2: Temel Türler ve Değişkenler
"Temel Türler ve Değişkenler" Bölümü’nde, C# temel türleri ve değişkenlerinin ne oldukları ve onlarla nasıl çalışılacağını inceleyeceğiz. Öncelikle, veri türleri üzerinde duracağız – tamsayı türleri, gerçek kayan nokta türleri, Boole, karakter türleri, dizeler ve nesne türleri. Değişkenlerin ne oldukları ve özellikleri hakkında devam edeceğiz, değişkenlerin bildirimi, onlara değer ve ilk değer atanması. C# veri türlerinin ana kategorilerini tanıtacağız – değer ve referans türleri. Son olarak, kalıp deyimler üzerinde duracağız – kalıp deyimlerin ne oldukları ve çeşitleri hakkında.
Nikolay Vasilev tarafından düzenlenen bölüm Veselin Georgiev ve Svetlin Nakov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Hristo Todorov ve Svetlin Nakov tarafından yazılmış çalışmalarına dayanmaktadır. Lora Borisova tarafından İngilizce’ye çevrilmiştir (Angel Angelov ve Hristo Radkov tarafından düzenlenmiştir).

0.27.4 Bölüm 3: İşleçler ve İfadeler
"İşleçler ve İfadeler" Bölümü’nde, C# işleçlerini ve çeşitli veri türleri üzerinde gerçekleştiren işlemleri tanıtacağız. İşleçler arası öncelikleri açıklığa kavuşturacağız ve işleçlerin türlerini aldıkları argüman sayısı ve yaptıkları işlem sayımına göre tanıyacağız. Tür zorlamalarının neden gerekli olduğunu ve nasıl çalışmak gerektiğini inceleyeceğiz. Son olarak, ifadeleri açıklayacağız ve nasıl kullanılacağını anlatacağız.
Marin Georgiev tarafından düzenlenen bölüm Dilyan Dimitrov ve Svetlin Nakov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Lachezar Bozhkov tarafından yazılmış çalışmalarına dayanmaktadır. Angel Angelov tarafından İngilizce’ye çevrilmiştir (Martin Yankov ve Hristo Radkov tarafından düzenlenmiştir).

0.27.5 Bölüm 4: Konsol Giriş ve Çıkış
"Konsol Giriş ve Çıkış" Bölümü’nde, veri girişi ve çıkışı için bir araç olarak konsola aşina olacağız. Konsolun ne olduğunu, ne zaman ve nasıl kullanıldığını, konsola erişmek için geliştirilen birçok programlama dillerine ait kavramları açıklayacağız. Kullanıcı etkileşimi için bazı C# özelliklerini tanıtacağız ve giriş-çıkış işlemleri için ana akımları, Console.In, Console.Out ve Console.Error, Console sınıfını ve çeşitli biçimlerde veri yazdırmak için biçim dizelerinin kullanımını inceleyeceğiz. Bir metni sayıya nasıl dönüştüreceğinizi göreceksiniz (ayrıştırma), çünkü C# sayıları bu şekilde girilir.
Svetlin Nakov tarafından düzenlenen bölüm Iliyan Murdanliev tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Boris Valkov tarafından yazılmış çalışmalarına dayanmaktadır. Lora Borisova tarafından İngilizce’ye çevrilmiştir (Dyanko Petkov tarafından düzenlenmiştir).

0.27.6 Bölüm 5: Koşullu İfadeler
"Koşullu İfadeler" Bölümü’nde, durumlara bağlı olarak farklı eylemleri yürütmek için kullanabileceğiniz C# koşullu ifadelerini ele alacağız. Koşullu işleçlerin sözdizimini açıklayacağız: Çeşitli örneklerle if ve if-else ve seçim kontrolü olan switch işlecinin pratik uygulamalarını açıklayacağız. Koşullu ifadelerin iç içe ya da diğer türlerini kullanırken daha iyi bir programlama tarzı elde etmek için takip edilmesi gereken en iyi uygulamalar üzerinde duracağız.
Marin Georgiev tarafından düzenlenen bölüm Svetlin Nakov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Marin Georgiev tarafından yazılmış çalışmalarına dayanmaktadır. George Vaklinov tarafından İngilizce’ye çevrilmiştir (Momchil Rogelov tarafından düzenlenmiştir).
0.27.7 Bölüm 6: Döngüler
"Döngüler" Bölümü’nde, bir kod parçasını tekrar tekrar yürütebileceğiniz döngü mekanizmalarını inceleyeceğiz. Koşullu tekrarların (while ve do-while döngüleri) nasıl uygulandığını ve for döngüleri ile nasıl çalışılacağını tartışacağız. Bir döngü tanımlamak, yapılandırmak ve anahtar uygulamalarından bazıları için çeşitli yollarla örnekler verilecektir. Son olarak, birbiri içinde birden çok döngünün nasıl kullanılacağını (iç içe döngüler) göreceğiz.
Svetlin Nakov tarafından düzenlenen bölüm Stanislav Zlatinov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Rumyana Topalska tarafından yazılmış çalışmalarına dayanmaktadır. Angel Angelov tarafından İngilizce’ye çevrilmiştir (Lora Borisova tarafından düzenlenmiştir).

0.27.8 Bölüm 7: Diziler
"Diziler" Bölümü’nde, aynı tür elemanlar ile çalışmak için bir araç olan dizileri tanıtacağız. Ne olduklarını, nasıl bildirileceklerini, oluşturulacaklarını ve elemanlarına nasıl erişim sağlanacağını anlatacağız. Tek boyutlu ve çok boyutlu dizileri inceleyeceğiz. Bir dizi elemanları üzerinden yineleme yapmak, standart girdiden okumak ve standart çıktıya yazmak için çeşitli yollar öğreneceksiniz. Örnek olarak dizileri kullanarak çözebileceğiniz birçok alıştırma vereceğiz, ve onların ne kadar yararlı olduğunu göstereceğiz.
Radoslav Todorov tarafından düzenlenen bölüm Hristo Germanov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Mariyan Nenchev tarafından yazılmış çalışmalarına dayanmaktadır. Boyan Dimitrov tarafından İngilizce’ye çevrilmiştir (Radoslav Todorov ve Zhelyazko Dimitrov tarafından düzenlenmiştir).

0.27.9 Bölüm 8: Sayısal Sistemler
"Sayısal Sistemler" Bölümü’nde, çeşitli sayı sistemleri ve bunların sayı gösterimi ile çalışmak için var olan araçlara bir göz atacağız. Sayıların ondalık, ikili ve onaltılı sayı sistemleri ile temsil edilmesine özellikle önem vereceğiz, çünkü bilgisayar, iletişim ve programlamada yaygın olarak kullanılmaktadır. Buna ek olarak, sayısal verileri bir bilgisayarda kodlama yöntemlerini ve kodlama türlerini, yani işaretli büyüklükler, bir’in tümleyeni, iki’nin tümleyeni ve ikili kodlanmış ondalıkları açıklayacağız.

Mihail Stoynov tarafından düzenlenen bölüm Teodor Bozhikov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Petar Velev ve Svetlin Nakov tarafından yazılmış çalışmalarına dayanmaktadır. Atanas Valchev tarafından İngilizce’ye çevrilmiştir (Veselina Raykova tarafından düzenlenmiştir).



0.27.10 Bölüm 9: Metotlar
"Metotlar" Bölümü’nde, programlamada altyordamların ayrıntılarını bileceğiz.  Bu altyordamlara C# dilinde yöntemler deniyor. Ne zaman ve neden yöntemlerin kullanılacağını açıklayacağız; yöntemlerin nasıl bildirileceğini göstereceğiz ve bir yöntemin imzası nedir açıklayacağız. Özel bir yöntemi nasıl oluşturacağımızı ve daha sonra kullanmak için nasıl çağrılacağını öğreneceğiz ve metotlarda parametreleri nasıl kullanacağımızı ve bir metottan sonuç döndürmeyi göstereceğiz. Son olarak, metotlar ile çalışırken bazı yerleşik uygulamaları tartışacağız. Tüm bunlar detaylı bir şekilde açıklanan örneklerle ve ekstra alıştırmalar ile pekiştirilmiş olacak.
Radoslav Todorov ve Nikolay Vasilev tarafından düzenlenen bölüm Yordan Pavlov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Nikolay Vasilev tarafından yazılmış çalışmalarına dayanmaktadır. Ivaylo Dyankov tarafından İngilizce’ye çevrilmiştir (Vladimir Amiorkov ve Franz Fischbach tarafından düzenlenmiştir).

0.27.11 Bölüm 10: Özyineleme
"Özyineleme" Bölümü’nde, özyineleme ve uygulamalarını tanıtacağız. Güçlü bir programlama tekniği olan özyinelemeyi kullanan bir yöntem kendi kendisini çağırır. Özyineleme sayesinde kolayca farklı yapılandırma kombinasyonlarını çıkarabileceğimiz karmaşık kombinasyon problemlerini çözebiliriz. Özyinelemenin doğru ve yanlış kullanımlarından pek çok örnek göstereceğiz ve sizi bunların nasıl yararlı olabileceğine ikna edeceğiz.
Svetlin Nakov tarafından düzenlenen bölüm Radoslav Ivanov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Radoslav Ivanov ve Svetlin Nakov tarafından yazılmış çalışmalarına dayanmaktadır. Vasya Stankova tarafından İngilizce’ye çevrilmiştir (Yoan Krumov tarafından düzenlenmiştir).
0.27.12 Bölüm 11: Nesneleri Oluşturma ve Kullanma
"Nesneleri Oluşturma ve Kullanma" Bölümü’nde, nesne yönelimli programlamanın temel kavramlarını öğreneceğiz – sınıflar ve nesneler – ve .NET Platformu’nun standart kütüphanelerinden sınıfları nasıl kullanacağımızı açıklayacağız. Bazı sık kullanılan sistem sınıfları üzerinde duracağız ve bunların örnekleri (nesneleri) nasıl oluşturacağınızı ve kullanacağınızı göstereceğiz. Bir nesnenin özelliklerine nasıl erişileceğini, kurucuların nasıl çağrılacağını ve sınıflarda statik alanlar ile nasıl çalışılacağını tartışacağız. Son olarak, "ad alanları" üzerinde odaklanacağız – bize nasıl yardımcı olurlar, nasıl dahil edilir ve nasıl kullanılırlar.
Stefan Staev tarafından düzenlenen bölüm Teodor Stoev tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Teodor Stoev ve Stefan Staev tarafından yazılmış çalışmalarına dayanmaktadır. Vasya Stankova tarafından İngilizce’ye çevrilmiştir (Todor Mitev tarafından düzenlenmiştir).

0.27.13 Bölüm 12: İstisnai Durum İşleme
"İstisnai Durum İşleme" Bölümü’nde, nesne yönelimli programlama ve özellikle C# dilindeki istisnai durumları tanıyacaksınız. try-catch cümlesini kullanarak istisnai durumları nasıl yakalayacağınızı, çağrılan yöntemlere onları nasıl geçireceğinizi ve throw deyimini kullanarak standart, özel veya yakalanan istisnai durumları nasıl atacağınızı öğreneceksiniz. Kullanımlarına dair örnekler vereceğiz, istisnai durum türlerine ve .NET Platformu’nda oluşturulan istisnai durum hiyerarşisine bakacağız. Son olarak, istisnai durumları kullanmanın avantajlarına ve bunların belirli durumlara nasıl uygulanacağına bakacağız.
Radoslav Kirilov tarafından düzenlenen bölüm Mihail Stoynov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Luchesar Cekov, Mihail Stoynov ve Svetlin Nakov tarafından yazılmış çalışmalarına dayanmaktadır. Dimitar Bonev ve George Todorov tarafından İngilizce’ye çevrilmiştir (Doroteya Agayna tarafından düzenlenmiştir).
0.27.14 Bölüm 13: Dizeler ve Metin İşleme
"Dizeler ve Metin İşleme" Bölümü’nde, dizeleri tanıtacağız: C# dilinde nasıl uygulandığını ve metin içeriğini nasıl işleyebileceğimizi. Metin işlemek için farklı yöntemler üzerinde ayrıntılı olarak duracağız; ve geçirilen parametrelere göre alt dizeleri ayıklamayı, anahtar kelimeler için nasıl arama yapılacağını, bunun yanı sıra ayırıcı karakterleri kullanarak bir dizenin nasıl bölüneceğini öğreneceğiz. Düzenli ifadeler hakkında yararlı bilgiler vereceğiz ve belirli bir örüntü ile eşleşen veriyi nasıl ayıklayacağımızı öğreneceğiz. Son olarak, konsolda metin içeriğinin daha şık ve sıkı biçimlendirmesini elde etmek için gerekli yöntemler ve sınıflara, sayılar ve tarihlerin baskısını almak için çeşitli yollara bir göz atacağız.
Radoslav Todorov tarafından düzenlenen bölüm Veselin Georgiev tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Mario Peshev tarafından yazılmış çalışmalarına dayanmaktadır. Vesselin Georgiev tarafından İngilizce’ye çevrilmiştir (Todor Mitev ve Vladimir Amiorkov tarafından düzenlenmiştir).

0.27.15 Bölüm 14: Sınıfları Tanımlama
"Sınıfları Tanımlama" Bölümü’nde, özel sınıfları nasıl tanımlayabileceğimizi ve bir sınıfın elemanlarının neler olduğunu göstereceğiz. Sınıfların veri alanlarını, kurucularını ve özelliklerini bildirmeyi öğreneceğiz ve yöntemin ne olduğunu yine hatırlayacağız, ancak metotlar ve bunların erişim değiştiricileri hakkındaki bilgimizi genişleteceğiz. Kurucuların özellikleri üzerinde odaklanacağız ve program nesnelerinin yığın (dinamik bellek) içinde nasıl var olduklarını ve alanlarının nasıl ilk değer atayarak başlatıldığını detaylı olarak açıklayacağız. Son olarak, sınıfın statik elemanlarının ne olduğunu – veri alanları (sabitler dahil), özellikler ve metotları – ve bunların nasıl kullanılacağını açıklayacağız. Bu bölümde, genel özellikleri olan türleri, dökümlü türleri ve iç içe sınıfları da tanıtacağız.
Bu bölüm Nikolay Vasilev, Svetlin Nakov, Mira Bivas ve Pavlina Hadjieva tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Nikolay Vasilev tarafından yazılmış çalışmalarına dayanmaktadır. Radoslav Todorov, Yoan Krumov, Teodor Rusev ve Stanislav Vladimirov tarafından İngilizce’ye çevrilmiştir (Vladimir Amiorkov, Pavel Benov ve Nencho Nenchev tarafından düzenlenmiştir). Bu bölüm kitaptaki en geniş bölümdür, yani sizin için yüksek kalite standardında hazırlanması için birçok yazar katkıda bulunarak üzerinde çalıştı.

0.27.16 Bölüm 15: Metin Dosyaları
"Metin Dosyaları" Bölümü’nde .NET Platformu’ndaki metin dosyaları ile çalışmayı tanıtacağız. Bir dosyayı kesintisiz olarak iletmenin ne olduğunu, amacını ve nasıl kullanıldığını açıklayacağız. Bir metin dosyasının ne olduğunu ve metin dosyalarındaki verilerin nasıl okunacağını ve yazılacağını açıklayacağız ve metin dosyaları ile çalışırken özel durumları yakalamanın ve işlemenin en iyi uygulamalarını ayrıntılı olarak sunacağız. Doğal olarak, tüm bunları bir sürü örnekler ile uygulayarak görselleştireceğiz ve göstereceğiz.
Stanislav Zlatinov tarafından düzenlenen bölüm Radoslav Kirilov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Danail Alexiev tarafından yazılmış çalışmalarına dayanmaktadır. Nikolay Angelov tarafından İngilizce’ye çevrilmiştir (Martin Gebov tarafından düzenlenmiştir).

0.27.17 Bölüm 16: Doğrusal Veri Yapıları
"Doğrusal Veri Yapıları" Bölümü’nde, programlamada bazı temel veri gösterimlerini ve doğrusal veri yapılarını tanıtacağız, çünkü çoğu kez belirli bir sorunu çözmek amacıyla, bir dizi eleman ile çalışmamız gerekir. Örneğin, bu kitabı okumak için ardışık olarak her sayfayı okumak zorundayız, yani sayfaları oluşturan her bir elemanı atlamadan dikkatle incelemek zorundayız. Belirli bir problem için bazı veri yapılarının diğerine göre nasıl daha verimli ve kullanışlı olabileceğini göreceğiz. Sonra "liste", "yığıt" ve "kuyruk" doğrusal yapılarını ve onların uygulamalarını inceleyeceğiz ve bu yapıların bazı uygulamalarının detaylarını tanıyacağız.
Dilyan Dimitrov ve Svetlin Nakov tarafından düzenlenen bölüm Tsvyatko Konov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Tsvyatko Konov ve Svetlin Nakov tarafından yazılmış çalışmalarına dayanmaktadır. Vasya Stankova tarafından İngilizce’ye çevrilmiştir (Ivaylo Gergov tarafından düzenlenmiştir).
0.27.18 Bölüm 17: Ağaçlar ve Grafikler
"Ağaçlar ve Grafikler" Bölümü’nde, ağaç-benzeri diye anılan veri yapılarına, yani ağaçlara ve grafiklere bakacağız. Bu yapıların özelliklerinin bilinmesi modern programlama için önemlidir. Bu yapıların her biri gerçek hayat problemlerinin modellenmesi ve onların yardımı ile verimli olarak çözülebilmesi için kullanılmaktadır. Ağaç-benzeri veri yapılarının ne olduğunu ayrıntılarıyla inceleyeceğiz ve onların birincil avantajları ve dezavantajlarını göstereceğiz. Aynı zamanda, onların pratik kullanımını gösteren örnek uygulamalar ve alıştırmalar vereceğiz. Ayrıca, ikili ağaçlar, ikili arama ağaçları ve dengeli ağaçları ve daha sonra "grafik" veri yapısını, grafiklerin türlerini ve bunların kullanımını dikkatle inceleyeceğiz. .NET Platformu’nun hangi parçalarının ikili arama ağaçlarından faydalandığını göstereceğiz.
Iliyan Murdanliev ve Svetlin Nakov tarafından düzenlenen bölüm Veselin Kolev tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Veselin Kolev tarafından yazılmış çalışmalarına dayanmaktadır. Kristian Dimitrov ve Todor Mitev tarafından İngilizce’ye çevrilmiştir (Nedjaty Mehmed ve Dyanko Petkov tarafından düzenlenmiştir).

0.27.19 Bölüm 18: Sözlükler, Karma Tabloları ve Kümeler
"Sözlükler, Karma Tabloları ve Kümeler" Bölümü’nde, sözlük ve kümeler gibi daha karmaşık veri yapılarını, buna ilaveten karma tablolar ve dengeli ağaçları kullanarak bunların uygulamaları analiz edeceğiz. Karma tablolarının ve karma fonksiyonunun ne demek olduğunu ve neden programlamanın o kadar önemli parçaları olduğunu detaylarıyla açıklayacağız. “Çarpışmalar” kavramını ve karma tabloları uygularken çarpışmaların nasıl oluşabileceklerini tartışacağız. Onları çözmek için çeşitli yaklaşımlar önereceğiz. “Küme” soyut veri yapısına bakacağız ve bir sözlük yada dengeli ağaç ile nasıl gerçekleştirilebileceğini açıklayacağız. Günlük pratikte bu veri yapılarının uygulamalarını gösteren örnekler vereceğiz.
Tsvyatko Konov ve Svetlin Nakov tarafından düzenlenen bölüm Mihail Valkov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Vladimir Tsanev (Tsachev) tarafından yazılmış çalışmalarına dayanmaktadır. George Mitev ve George K. Georgiev tarafından İngilizce’ye çevrilmiştir (Martin Gebov ve Ivaylo Dyankov tarafından düzenlenmiştir).

0.27.20 Bölüm 19: Veri Yapıları ve Algoritma Karmaşıklığı
"Veri Yapıları ve Algoritma Karmaşıklığı" Bölümü’nde, şimdiye kadar öğrendiğimiz veri yapılarını, temel işlemler (ekleme, arama, silme, vb.) için performanslarına dayalı olarak karşılaştıracağız. Belirli durumlara en uygun veri yapıları için öneriler vereceğiz. Bir kümeyi, bir karma tablo, bir dizi, bir dinamik dizi, bir karma tablo veya dengeli ağaç kullanarak uygulamanın ne zaman daha iyi ve tercih edilebilir olduğunu açıklayacağız. Bu yapıların her biri için .NET Platformu’nda bir uygulama vardır. Biz sadece belirli bir veri yapısını ne zaman kullanmamız gerektiğini öğrenmek zorundayız ki böylece verimli ve güvenilir bir kaynak kodu yazabilelim.
Veselin Kolev tarafından düzenlenen bölüm Nikolay Nedyalkov ve Svetlin Nakov tarafından yazılmıştır. Tüm bölümün içeriği "Java ile Programlamaya Giriş" kitabının Svetlin Nakov ve Nikolay Nedyalkov tarafından yazılmış çalışmalarına dayanmaktadır. George Halachev ve Tihomir Iliev tarafından İngilizce’ye çevrilmiştir (Martin Yankov tarafından düzenlenmiştir).

Yüklə 3,36 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   31




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin