N sanal algoritmalar ve veri yapıları. SHAD'den "Arama algoritmaları ve veri yapıları" kursu

  • 21.06.2019

Kitap, bireysel kullanım için modern yerli ve yabancı mikrobilgisayarlar hakkında kısa bilgiler sağlar. Kişisel bilgisayarlar (PC'ler), ev tipi mikro ve mikro bilgisayarlar (Electroiika-60, Elektronika-, DZ-28, Iskra-226, diyalog hesaplama kompleksleri DVK-1, DVK-2, vb) anlatılmaktadır. ... BASIC'te programlamanın temelleri özetlenmiştir. Bir PC'deki hesaplamalar için genel matematiksel, algoritmik ve yazılıma dikkat edilir. Referans kitabı, temel sayısal yöntemlerin uygulanmasını, özel işlevlerin çoğunun hesaplanmasını ve çeşitli bilim ve bilim alanlarında bir dizi pratik problemin çözümünü sağlayan BASIC'te (300'den fazla program) kapsamlı bir uygulamalı program kitaplığı içerir. teknoloji.

Mühendisler, bilimsel ve teknik çalışanlar ve teknik kolej öğrencileri için.

Dyakonov V.P. Kişisel bilgisayarlar için BASIC dilinde algoritmalar ve programlar hakkında referans kitabı: El kitabı. - Moskova. Yayınevi Bilim. Bölüm ed. fiz.-mat. yak., 1989. - 240 s. - ISBN 5-02-014530-0.

Önsöz
rehber nasıl kullanılır
Bölüm 1. Kişisel bilgisayarların temel özellikleri ve yetenekleri
§ 1.1. Modern kişisel bilgisayar türleri ve yetenekleri
§ 1.2. Cep kişisel bilgisayarları (Cep Bilgisayarları)
§ 1.3. Orta sınıfın kişisel bilgisayarları (Ev Bilgisayarları)
§ 1.4. Profesyonel bilgisayarlar ve kişisel bilgi işlem mikrosistemleri
§ 1.5. Kişisel bilgisayarların çevresel donanımları

Bölüm 2. BASIC - kişisel bilgisayarlar için ana programlama dili
§ 2.1. BASIC dilinin alfabesi ve temel operatörleri
§ 2.2. Temel dil değişiklikleri
§ 2.3. Aritmetik ve cebirsel işlemler, hesap makinesi modu
§ 2.4. BASIC dilinde temel programlama
§ 2.5. BASIC dilinde programlamanın özel sorunları
§ 2.6. BASIC dilinin bir sürümünden diğerine programların çevirisi

Bölüm 3. Temel hesaplamalar için algoritmalar ve programlar
§ 3.1. Gerçek sayılarla işlemler
§ 3.2. Karmaşık sayılar ve değişkenlerle işlemler ve fonksiyonlar
§ 3.3. Kuvvet polinomlarının ve kesirli rasyonel fonksiyonların hesaplanması
§ 3.4. Ortogonal Polinomların Hesaplanması
§ 3.5. matris işlemleri
§ 3.6. Faktöriyellerin ve kombinatoriklerin hesaplanması
§ 3.7. Koordinat dönüşümleri ve vektör analizi

Bölüm 4. Temel sayısal yöntemlerin uygulanması için algoritmalar ve programlar
§ 4.1. Lineer denklem sistemlerini çözme
§ 4.2. Enterpolasyon ve ekstrapolasyon
§ 4.3. Doğrusal olmayan ve aşkın denklemleri çözme
§ 4.4. Doğrusal olmayan denklem sistemlerini çözme
§ 4.5. Gerçek ve karmaşık katsayılı cebirsel denklemleri çözme
§ 4.6. Bir ve çok değişkenli fonksiyonların ekstremumlarını arayın
§ 4.7. Sayısal farklılaşma ve duyarlılık katsayılarının hesaplanması
§ 4.8. Belirli integrallerin hesaplanması
§ 4.9. Özel bir formun belirli integrallerinin hesaplanması
§ 4.10. Diferansiyel denklem sistemlerini çözme
§ 4.11. harmonik sentez
§ 4.12. Matrislerin özdeğerlerinin ve vektörlerinin hesaplanması

Bölüm 5. Spektral, istatistiksel, korelasyon ve regresyon analizi
§ 5.1. Ayrık Fourier dönüşümüne dayalı spektral analiz
§ 5.2. Spektral analizin özel türleri
§ 5.3. İstatistiksel analiz ve histogramların hazırlanması
§ 5.4. Monte Carlo Yönteminin Uygulanması
§ 5.5. Korelasyon analizi
§ 5.6. Regresyon analizi (fonksiyonların en küçük kareler uyumu)
§ 5.7. Deneme Verilerini Düzeltme

Bölüm 6. Özel fonksiyonların hesaplanması
§ 6.1. Özel fonksiyonları hesaplama yöntemleri
§ 6.2. İntegral üstel fonksiyonlar
§ 6.3. İntegral sinüs ve kosinüs
§ 6.4. Gama İşlevleri (Tamamlanmamış dahil)
§ 6.5. Bessel işlevleri (değiştirilmiş olanlar dahil)
§ 6.6. havadar fonksiyonlar
§ 6.7. Fresnel integralleri
§ 6.8. eliptik integraller
§ 6.9. Struve, Unger ve Weber'in İşlevleri
§ 6.10. hipergeometrik fonksiyonlar
§ 6.11. Dilogaritma
§ 6.12. Kelvin fonksiyonları
§ 6.13. Debye ve Sievert fonksiyonları
§ 6.14. Olasılık İntegrali ve İlgili Fonksiyonlar
§ 6.15. Bazı istatistiksel fonksiyonlar

Bölüm 7. Teknik ve ekonomik hesaplamalar için uygulamalı programlar
§ 7.1. Tipik elektrik hesaplamaları
§ 7.2. Endüktif elemanların hesaplanması
§ 7.3. Kapasitif elemanların ve kapasitörlerin hesaplanması
§ 7.4. İletim hatlarının ve Gecikmelerin Hesaplanması
§ 7.5. Amplifikatör hesaplama
§ 7.6. Aktif filtrelerin hesaplanması
§ 7.7. Doğrusal olmayan ve temel elektronik cihazların hesaplanması
§ 7.8. Mekanik ve termodinamikte hesaplamalar
§ 7.9. Mali ve ekonomik hesaplamalar

Ek 1. Elektronika-DZ-28 mikrobilgisayarına dayalı bir program hazırlama sisteminin çalışması için hazırlık
Ek 2.

Mikrobilgisayar tabanlı program hazırlama sistemleri için hata numaraları ve içerikleri Elektronika-DZ-28
Ek 3. PC FX-702P'nin iş için hazırlanması
Ek 4. PC FX-702P için hata numaraları ve içerikleri
Ek 5. Bazı sayısal özel uygulama yöntemlerinin yazılım uygulaması
§ A5.1. Gerçek köklerinden bir polinomu çizmek
§ A5.2. Matris ters çevirme, determinant hesaplama ve farklı serbest terim vektörleri ile lineer denklem sistemlerinin çözümü
§ A5.3. Bir lineer denklem sisteminin yansıma yöntemiyle çözümü
§ A5.4. Basit yinelemeler yöntemiyle bir lineer denklem sistemini çözme
§ A5.5. Bir lineer denklem sisteminin Seidel yöntemiyle çözümü
§ A5.6. Üstbelirlenmiş bir matrisle bir lineer denklem sistemini çözme
§ A5.7. Dejenere matrisli bir lineer denklem sisteminin normal çözümünün yaklaşık hesaplanması
§ A5.8. Basit yinelemeler yöntemiyle doğrusal olmayan bir denklem sistemini çözme
§ A5.9. Analitik olarak belirlenmiş bir transfer karakteristiğine sahip doğrusal olmayan bir sistemin harmonik harekete tepki spektrumunun hesaplanması
§ A5.10. 16 tür eşleştirilmiş bağımlılık için regresyon y (x)
§ A5.11. Spline uyumu, enterpolasyon ve ekstrapolasyon
§ A5.12. Matris operatörü yazılım paketi
§ A5.13. Chebyshev'e göre fonksiyonların yaklaşıklığı
bibliyografya
Konu dizini

ÖNSÖZ

Ekonomide, endüstride, bilimde ve teknolojide, eğitim alanında ilerleme, artık büyük ölçüde bilgisayar teknolojisinin muazzam tanıtımına bağlıdır. Nüfusun "bilgisayar okuryazarlığını" artırma görevinin bir devlet ve siyasi görev haline gelmesi tesadüf değildir. Çözümü, yeni nesil bilgi işlem tesislerinin yoğun gelişimi sayesinde mümkündür - bireysel kullanım için mikro bilgisayarlar veya kişisel bilgisayarlar (PC).

Halihazırda ülkemizde, bu tür on binlerce bilgisayar kullanımda - bireysel kullanım için yerli masaüstü bilgisayar mikro sistemlerinden (bir mikrobilgisayar Electronics-60, Electronics-DZ-28, Electronics-TZ-59, Iskra-226'ya dayanarak) , vb.) ve diyalog bilgi işlem sistemlerinden (DVK-1, DVK-2, DVK-3) yabancı cep bilgisayarlarına (Cep Bilgisayarları FX-702P, PC-1211, RS-1500, vb.) Agat, Elektronica-BK-0010 vb. gibi ucuz ve seri üretilen ev bilgisayarlarının (Ev Bilgisayarları) üretimine hakim olunmaktadır.

Ancak şimdiye kadar bu tür bilgisayarlardan oluşan mevcut filo bile yeterince verimli kullanılmamaktadır. Bunun temel nedeni, bilgisayar kullanıcılarının çoğunlukla bilgisayar ve hesaplamalı matematik alanında profesyonel olmayan kişiler olmasıdır. Bilgisayarların çalışmasına, dillere ve programlamanın temellerine, çeşitli sayısal yöntemlere yeterince aşina değiller. Bir PC'nin kişisel kullanımının özelliklerini dikkate alan tüm bu konuların aynı anda ele alınacağı neredeyse hiçbir literatür yoktur. Pek çok PC, kullanıcılara çok kısa (ve profesyonel) açıklamalarla ve genellikle uygulama kitaplıkları olmadan sağlanır. Sonuç olarak, bilgisayar genellikle kullanıcının masasında gizemli olasılıkları henüz açıklanmayan bir "kara kutu"ya dönüşür.

Referans kitabı, yukarıda belirtilen geniş PC kullanıcıları kategorisine odaklanmıştır. Hazırlanmasında, SSCB'de kişisel bilgisayar kullanımının mevcut aşamasının özgüllüğü, yani kişisel bilgisayarların esas olarak rutin bilimsel, teknik, istatistiksel ve ekonomik sorunların çözümünü otomatikleştirmek için kullanılması dikkate alındı. Bu nedenle referans kitabının sınırlı hacmini dikkate almakla birlikte oyun sorunlarına, günlük hayatta PC kullanımına ve karmaşık bilgi problemlerinin çözümüne (grafik işleme, metin düzenleme vb.) . Bu tür uygulamaların tanımı, uzman literatürün konusu olmalıdır.

Yapı açısından, el kitabı, yazarın programlanabilir mikro hesaplayıcılar (PMC) üzerindeki hesaplamalara ayrılmış daha önce yayınlanmış kitabına benzer. Ayrıca, test durumlarının önemli bir kısmı korunmuştur. Yazara göre bu, PMK kullanıcılarının toplu kategorisinin yeni, çok daha güçlü bir bilgisayar teknolojisine - kişisel bir bilgisayara - hakim olmasını kolaylaştıracak.

Referans kitabı, yerli ve yabancı PC'lerin ana türlerini, çevresel ekipmanlarını ve ana programlama dilini - BASIC'i kısaca açıklar.Basitten genişletilmiş olanlara, sembolik değişkenleri işlemek için komutlar, dolaylı adresleme için komutlar içeren bir dizi tipik BASIC sürümü dikkate alınır. ve komplo. BASIC'te programlamanın temelleri ve programların BASIC'in bir sürümünden diğerine çevirisi verilmektedir.

Referans kitabındaki ana dikkat, öncelikle bilimsel, teknik ve istatistiksel hesaplamalar için tasarlanmış genel uygulamalı matematiksel, algoritmik ve bilgisayar yazılımının tanımına verilir. Buna kıyasla, algoritmaların tanımı önemli ölçüde genişletildi ve çözülmekte olan görevlerin karmaşıklığı artırıldı. Bu nedenle, referans kitabı, lineer ve diferansiyel denklem sistemlerini (entegrasyon adımının otomatik seçimi olanlar dahil), belirli bir doğrulukla sayısal entegrasyon, gerçek ve karmaşık katsayılarla tüm polinom köklerini hesaplama, vb. Özel fonksiyonlar için evrensel programları açıklar. . Son bölüm, bilim ve teknolojinin bazı özel alanlarındaki problemleri çözmek için bir dizi uygulama sunar. Tabii ki, bu programlar bu tür sorunların tüm çeşitliliğini tüketmiyor. Kişisel bilgisayarların tüm yeteneklerini kullanırken, uzay aracı tasarımına kadar karmaşık bilimsel ve teknik sorunları çözebilirler.

Referans kitabı, üniversitelerin ve teknik okulların bilimsel ve teknik çalışanları, mühendisleri, teknisyenleri ve öğrencilerine yöneliktir. İlk kez böyle bir başvuru kılavuzu hazırlandığından, yazar kitabın eksikliklerinin olmadığının farkındadır ve içeriğiyle ilgili tavsiye ve yorumlar için minnettar olacaktır. Yazar, hakem, Teknik Bilimler Doktoru, Profesör S. V. Cheremnykh, Teknik Bilimler Adayı, Doçent T. A. Samoilova, T. A. Kalaeva ve yazara programların ve el yazmalarının hazırlanmasında yardımcı olan tüm meslektaşlarına derin şükranlarını sunar. Kitap için öneriler şu adrese gönderilmelidir: 117071 Moskova V-71, Leninsky Prospect, 15. "Nauka" yayınevinin fiziksel ve matematiksel literatürünün ana baskısı.

V.P.Dyakonov

Kitap indirmek için Dyakonov V.P. Kişisel bilgisayarlar için BASIC dilinde algoritmalar ve programlar el kitabı. "Bilim" yayınevi, Moskova, 1989

Bu kitap, Talep Üzerine Baskı teknolojisi kullanılarak siparişinize uygun olarak üretilecektir. Turing ödüllü Niklaus Wirth'in klasik ders kitabında, algoritmaların geleneksel konuları özenle seçilmiş örnekler üzerinde özenle işlenir - sıralama ve arama, özyineleme, dinamik veri yapıları. Rusçaya çeviri yeniden yapıldı, tüm muhakeme ve programlar kontrol edildi ve düzeltildi, örneklerin bazıları, mantıklarını olabildiğince açıklığa kavuşturmak için yazarla uyumlu olarak revize edildi. Örnek gösterim şimdi Oberon / Bileşen Pascal'dır - eski Pascal'ın en mükemmel düz çizgi soyundan. Tüm programlar test edilmiştir ve Oberon'un popüler sürümü olan Blackbox sisteminde çalışmaktadır ve sistem ve ek materyallerle birlikte ekteki CD'deki kaynak kodunda mevcuttur. Kitaptaki materyalin çoğu, yalnızca profesyonel programcılar için değil, aynı zamanda işlerinde programlamayı aktif olarak kullanan diğer uzmanlar için de algoritmalar hakkında gerekli minimum bilgidir. Kitap bir öğretim yardımcısı olarak kullanılabilir ...

Yayıncı: "DMK Press" (2010)

biyografi

Niklaus Wirth, 15 Şubat 1934'te Zürih'in (İsviçre) eteklerinde Winterthur'da doğdu. Ebeveynler - Walter ve Hedwig Wirth. Niklaus'un babası bir okul öğretmeniydi.

Çocukken, Niklaus Wirth uçak modellemeye ve füze yapımına düşkündü, elektronik ve yazılım kontrol sistemlerine olan tutku, modeller için uzaktan kumanda cihazlarının geliştirilmesiyle başladı. İsviçre Federal Teknoloji Enstitüsü'nün (ETH) Elektronik Fakültesi'ne girdi ve burada dört yıl içinde elektrik mühendisliği diploması aldı. Eğitimine Laval Üniversitesi'nde (,) devam etti ve bir derece aldı. Daha sonra, Profesör Husky'nin rehberliğinde Euler programlama dili - dil aracılığıyla genişletme konusundaki tezini savunduğu (ABD) davet edildi.

Wirth'in tezi, programlama dillerinin geliştiricileri topluluğu tarafından fark edildi ve aynı 1963'te, daha sonra olacak olan Algol dili için yeni bir standart geliştiren Algol Standardizasyon Komitesi IFIP'ye (Uluslararası Bilişim Federasyonu) davet edildi. Wirth ile birlikte, komitede, orijinal dilin eksikliklerinden arınmış ve minimum gerçekten gerekli fonlarla desteklenmiş, orta derecede değiştirilmiş bir Algol versiyonunun geliştirilmesine ilişkin bir çizgiyi savundu. Wirth ve Hoare komiteye Algol-W (W - Wirth'ten) dilini sundular, ki bu tam olarak Algol'ün yeniden işlenmesiydi, ancak destekle karşılaşmadı. Komitenin çalışmasının tamamlanmasının ardından, Wirth, Algol-68'i eleştirenlerden biri oldu ve güvenilirlik eksikliğinden ve aşırı fazlalıktan söz etti. Buna paralel olarak, Wirth yıllarca asistan olarak çalıştı. Jim Wales ile birlikte, IBM / 360 mimarisiyle ilgili bir dizi sisteme bağlı özelliğin tanıtıldığı, algol benzeri bir dil olan platformda programlama amaçlı PL / 360 dilini geliştirdi ve uyguladı.

Şu anda, klasik Wirth üçlemesinin tamamı öğrencileri tarafından dile çevrildi ve Web'den şu şekilde indirilebilir:

Notlar (düzenle)

Bağlantılar

  • N. Virt'in "İyi Fikirler: Aynadan Bir Bakış" makalesinin çevirisi

ALGORİTMALAR + VERİ YAPILARI = PROGRAMLAR

"Sistematik Programlama" kitabının çevirisinden Sovyet okuyucularına aşina olan tanınmış bir İsviçreli sistem programlama uzmanının monografisi. Tanıtım. " (Moskova: Mir. 1977). Ana algoritmaların tanımını ve analizini, program oluşturma yöntemlerini içerir. Kitap aynı zamanda bilgisayar yazılımı problemlerinde Pascal dilinin kullanımına yönelik bir rehber olarak da kullanılabilir.

Bilgisayar yazılımı konusunda uzmanlaşmış araştırmacılar, öğretmenler, yüksek lisans öğrencileri ve öğrenciler için.

Çeviri editörünün önsözü

Önsöz

1. Temel veri yapıları

1.1. Tanıtım

1.2. Veri için tip kavramı

1.3. Basit veri türleri

1.4. Standart basit tipler

1.5. Sınırlı porsuk

1.6. diziler

1.7. Kayıtlar

1.8. Varyant kayıtları

1.9. Bir çok

1.10. Dizileri, Kayıtları ve Kümeleri Temsil Etme

1.11. seri dosyası

Egzersizler

Edebiyat

2. Sıralama

2.1. Tanıtım

2.2. Dizileri Sıralama

2.3. Sıralı dosyaları sırala

Egzersizler

Edebiyat

3. Özyinelemeli algoritmalar

3.1. Tanıtım

3.2. Özyineleme ne zaman kullanılmamalıdır

3.3. Özyinelemeli programlara iki örnek

3.4. Geri izleme algoritmaları

3.5. Sekiz Kraliçe Problemi

3.6 Sürdürülebilir evlilik sorunu

3.7. Optimal seçim problemi

Egzersizler

Edebiyat

4. Dinamik bilgi yapıları

4.1. Özyinelemeli veri türleri

4.3. Doğrusal Listeler

4.4. Ağaç yapıları

4.5. Güçlü dallanan ağaçlar

4.6. Anahtar dönüşümler (takımyıldız)

Egzersizler

Edebiyat

5. Dil yapısı ve çevirmenler

5.1. Dilin tanımı ve yapısı

5.2. Tekliflerin analizi

5.3. Sözdizimsel bir grafik oluşturma

5.4. Belirli bir için bir ayrıştırma programı oluşturma

sözdizimi

5.5. Tabloya dayalı bir dilbilgisi programı oluşturma

5.6. Bir BNF'yi kontrol eden bir veri yapısına dönüştürme

ayrıştırma

5.7. PL / 0 programlama dili

5.8. PL / 0 için ayrıştırma programı

5.9. Sözdizimi hatalarından kurtarma

5.10. PL / 0 işlemci

5.11. ekip oluşturma

Egzersizler

Edebiyat

Ek Bölüm A

Çok sayıda ASCII karakteri

Ek B

Pascal sözdizimi diyagramları

program dizini

Işaretçi

program dizini

1.1. İki 30'un güçlerini hesaplama

2.6. Kabuk Sıralaması 89

1.2. Tarayıcı 42

2.7. eleme 93

1.3. gerçek sayı 63 okuma

2.8. Yığın Sıralaması 95

1.4. Gerçek sayı 65 baskı

2.9. Bölüm 97

sıralama

basit

2.10. Hızlı Sıralama 99

kapanımlar 79

2.11. Swift'in özyinelemeli olmayan versiyonu

sıralama

ikili

100 sıralama

kapanımlar 80

2.12. kth elementini bulma 105

2.3. Basit seçime göre sırala 82

2.13. Basit birleştirmeye göre sırala

sıralama yöntemi

kabarcık

2.! 4. Doğala göre sırala

2.5. Sıralama çalkalayıcı 86

birleştirme 121

2.15. Dengeli sıralama

4.6. Optimum ağaç yapısı

birleşme 126

arama 274

2.16. Çok fazlı sıralama 138

4.7. Ara, dahil et ve sil

2.17. İlk serinin dağılımı

B ağacı 290

bir piramit kullanarak 145

Bina

3.1. Hilbert eğrileri 157

geçmek

3.2. Sierpinski Eğrileri 161

kullanarak

3.3. Şövalyenin hamlesi 167

yayılır 308

3.4. Sekiz kraliçe (tek çözüm)

gramer

örnek 5 334'ten sözdizimi

3.5. Sekiz Kraliçe (Tüm Çözümler) 174

gramer

3.6. Sürdürülebilir Evlilikler 180

dil (5.12) 343

3.7. Optimal örnek 184

5.3. Dil çevirmeni (5.13) 345

4.1. Liste 204

5.4. PL / 0 için ayrıştırma

4.2. Topolojik Sıralama 218

Bina

ideal olarak

5.5. PL / 0 için ayrıştırma

dengeli ağaç 227

hata kurtarma ile

4.4. Dahil Etme Araması 236

Bina

5.6. PL / 0 380 için Çevirmen

çapraz referans 240

Adelson-Velsky 248

Işaretçi

Basit bir seçim 81

Adres 44, 48

Basit Değişim 83

mutlak 374

piramit 90

Temel 374

Bölünmüş 96

dönüş 374

Doğal birleşme ile 115

göreli 374

Çok fazlı 137 birleştirme

ALGOL-60 17, 320

basit 109

B-ağacına dahil etme algoritması 285

Dengeli N -

BB-ağacında 296

seyahat 122

Dengeli bir ağaca 254

B-ağacından kaldırma 288

Listeye ekle 200

Dengeli ahşap

n. faktöriyelin hesaplanması

Sıralama çalkalayıcı 85

324 ayrıştırılıyor

Özyinelemeli algoritmalar 9

Doğrusal görüntüleyici 203

dönüş 9, 168

medyan 103'ü bul

Sıralama algoritmalarının analizi 79,

Ağaç İşleme 233

80, 82, 85, 88, 94, 100, 113

Çalılar oluşturun 300

Dengeleme 288

Dahil etme türleri

veri bankaları 58

ikili 79

Davul manyetik 57

basit 78

Bariyer 79, 203, 233

azalan artış

BB-ağacı bkz. B-ağacı ikili dosyası

(Kabuk sıralaması) 87

B ağacı 282

B-ağacı ikili 295

- - simetrik 298 Latin harfleri 24 Tampon 54

Bayer 282, 289, 295, 298

Kayıtlardaki varyantlar 35 Ağacın ağırlığı 264 Dal 223

Dön 9, 168, 325

Voltaire 13

Hata düzeltme 373 Patent süresi 58 Seçici değişiklik 28 Hizalama 46 İfade 17

dizin 27

Ağaç yüksekliği 220

Gauss 169 Hilbert 156

Ağaç derinliği 220 Yatay dağılım 134

267

10, 328 ayrıştırılıyor

aşağı bağlantı 323

- - hedef odaklı 328 Tanıma grafiği 328

- sözdizimsel 328

- - deterministik 332 Sütun 19 Veri 11

Dijkstra 7, 12

Ahşap 10, 19, 219

AVL dengeli 248

ikili 223

dejenere 220

- mükemmel dengeli 226

- sözlükbilim 238

en iyi 263

Arama 231

- çok dallanma 223

91 sıralar

- sipariş edilen 220

Fibonacci 249 2-3 ​​​​ahşap 295

Bağımlılık şeması 361 Mantıksal ayrılma 23 Manyetik diskler 57 Ayırıcı tipi 36 Yol uzunluğu 220

Ağırlıklı 261

Harici 220

- - dahili 220 Seri erişim 53

düz 58

- rastgele 25 İleriye bak 55, 68 Liste başlığı 314

Sürdürülebilir Evlilik Sorunu 174

- yaklaşık sekiz kraliçe 169

Şövalyenin Hareketi 164

- en uygun seçim 182

- medyanı bulma 103

- okul takvimi oluşturmak

Kayıt 8, 31, 48

- seçeneklerle 36 Klipsiz kayıt 377

Infix 230

Polonya 377

Sonek 230

Yapay zeka 163 Yineleme 9, 99, 154 Harita (endeksler) 123, 128 Nicelik 105

Anahtar 76, 303

Anahtar dönüştürme 303 Değişken uzunluklu anahtarlar 318

Kırbaç 77, 86, 134, 144, 264

Halkalar 19 Birleştirme 51, 52, 54 Sabit 17 Yapıcı 20

32 kayıt

dizi 26

Bağlam bağımlılığı 322 Çatışma 304 Çatışma çözümü 304 Mantıksal bağlaç 23 Koordinatlar 15, 31, 36

Kartezyen 15, 36 Ağaç kökü 220

Görev faktörü 312

- bellek kullanımı 46

Hilbert Eğrisi 156

Sierpinski 158

Çalılar 299

248, 249

Manyetik 108

Ağaç yaprağı 220

Lauryn 77 Lukasiewicz 377 McVity 179 McCraith 289

mantis 15

Dizi 19, 25, 44

Matrix 29 Machine PL / 0 373 Medyan 101, 103 Metakarakterler 320

yarı yarıya 28

kabarcık 84

- dağınık tablolar 307 Birleşimleri ayarlar 40

Kavşak 40

Fark 40

Ek 40

- çarpma 40 Takım 15, 19, 38 Ayar derecesi 38

Aksesuar seti 40

306

Gösterim 52 Taşma alanı 306 Ağaç geçişi 229

Seçenek 37 operatörü

- bağlantılar 34, 286

Prosedürler 190

koşullu 190

29. döngü

190 parametresi ile

Önsöz ile 190 Boole işlemleri 23

54'ten fazla dosya

ilişki 40

- dönüşüm 20 G/Ç İşlemleri 62 İşlem 17, 18, 19 Açıklama 17

Örnekleme kare kanunu 307

Doğrusal 306

Açık adresleme 306 Kuyruk 198 Kaynaklanan hatalar 373

373 programı hafızası

operasyonel 295

Pascal 8, 11, 16, 19, 62

Tampon değişkeni 55 Değişkenler 17, 23 Liste yeniden sıralama 209 Piramit 91

PL / 0 331, 349 PL / 1 20

Alt ağaç 223 Arama ikili dosyası 28 - listelenmiş 202

Medyan 103

- 233 dahil ahşap için

- listede kendi kendini organize etme

Alan 48 Özellik alanı 36

B ağacı siparişi 282

Kısmi 211

- sayılar 15 Sıra 16, 19, 52 Soydan gelen 220 Kademeli iyileştirme 11, 67, 344 İkame kuralları 320

Jeneratörler 320

Grafik Çizimi 329

kukla 132

Panik Yapmayın Kuralı 363

Sierpinski 158

Teklifler 319

Basamak 23, 40, 319

Dönüşüm (türler) 24

Başlangıç ​​320

Anahtarlar 303

boş 24

Operasyon Öncelikleri 40

Dış Semboller 363

Ödev 19, 21, 189

Yenilemeler 363

Boş hat sorunu 326

Terminal dışı 320

çalışma programı 373

Terminal 320

Tablo Tahrikli 328

Valiler 393

eleme 92

Tarayıcı 40, 341

olmadan bir karakter ileriye bak

Füzyon 109

dönüş 323

iki fazlı 115

109'u geç

Doğal 115

Liste 201

kademeli 149

Prosedür 190

Çok yollu 122

Dış yol 222

Tek fazlı 110

Dahili 220

basit 109

Sıra 15, 44

Dengeli 110, 122

okul programı 41

Üç bantlı 109

Cümle tanıma 322

44 numara

Dağıtım yatay 134

Frekans sözlüğü 203

Dinamik bellek 51, 193

Hafıza Kelimesi 44

303 Planı

Rastgele Erişim 25

tekrarlanan 318

Ofset 48, 374

Gerçekleşme 47, 50

eşyordamlar 144

Komut adres kaydı 374

Sıralama 9, 74, 77

Takımlar 374

Hızlı 96

Yığın 374'ün Üstleri

Kapanımlar 77

düzenleme 67

İkili 80

Özyineleme 9, 99, 150

basit 78

Dolaylı 151

Dış 75

düz 151

Dahili 75

SBB ağacı 298

seçim 77

Dinamik bağ 374

basit 81

57. bölüm

diziler 75

mantık 58

Kabarcık Yöntemi 84

fiziksel 58

Değişim 83

basit 83

Seçici 20, 37

piramit 91

32 kayıt

Birleşme ile 109

Dizi 26 Seri 115

çok fazlı 128

Maksimum 115

basit 109

kukla 132

Ahşap 89 tarafından

topolojik 211

Ambalaj 47, 49

esnek 79

Seviye 220

Dosyalar 75

Dosya 14, 19, 53

şela88

58 indekslendi

i-sıralama 88

57 kademeli

Liste 10, 198

Kişisel 14

Çift yönlü 315

Doğrudan erişim 58

döngüsel 314

Kukla Öğe 79

karşılaştırma 19

Floyd 92

Dizi sıralama yöntemleri 105

Fibonacci ağaçları 249

Sayılar 131

Yığın 99, 374

Sabitleme 378

Sayı dizisi 49

Backus-naurov form 320

Mevcut 69

Infix 377

Dinamik veri yapıları 10

Sonek 377

Karmaşık 8, 51

Euler formülü 247

temel 8

fonksiyon 17

arboreal 219

Ackermann188

Yapılandırma Teknikleri 19

Dönüşümler 24

Program çizelgeleri 56

Planlar 304

Dağınık masa 307

Siparişler 75

Planlar 305

faktöriyel 150

Tabloya Dayalı Programlar

karakteristik 49

Hanoi 186 Kuleleri

266

Sahne 7, 8, 12, 96, 103

hu 266

Temel tip 18

Merkez 267

Veri 17

zincir 115

normal 26

skaler 19

Arap rakamları 15, 24

Bileşik 30

İkili! 5

Standart 19

Roma 15

dizinler 26

Gerçek sayılar 15

özyinelemeli 314

karmaşık 31

Çevirmen 10, 17, 40, 319

Doğal 150

40 yayın

kayan nokta 15

Ahşaptan çıkarma 241

faktöriyel 153

Listeden 200

15 ile hedefler

İç ahşap düğüm 220

harmonik sayısı 83

Özel 222

Kardinal 18, 20, 39, 49, 50

179

Okunabilir giriş 59

91

İşaretçiler 10

Schenker sıralama 85

Yürüteç 263

Sezgisel 267 Euler

Eğitim projelerimizin müfredatını oluşturma sürecinde, disiplinlerin her birinde çalışma için önerilen özel kitapların bir listesini derledik - tüm çalışma süresi için toplamda 100'den fazla başlık. Kısa yorumlar eşliğinde bu listeyi saklamayacağız ve size sunmayacağız. Bu kadar çok bilgiyi bir makaleye sığdırmak zordur, bu nedenle Teknopark tarafından önerilen literatür taraması dört bölüme ayrılmıştır - dönem sayısına göre, öğrenciler tarafından önerilen küçük bir faydalı kitap ilavesiyle. Yorumlardaki ek ilginç okuma materyallerine bağlantılar sadece kabul edilir.

İlk dönem öğrencilerin bilgilerini "hizalamak" için tasarlanmıştır. Algoritmalar ve veri yapıları, C++ programlama gibi disiplinleri ve web teknolojileri üzerine bir genel bakış kursu içerir. İnceleme bu konulardaki kitaplarla başlayacak. Sunulan kitapların çoğu, temel kavramların bir koleksiyonu olan eskimeyen "klasikler" ile ilgilidir.

Web teknolojileri

Victor ve Natalya ortaklaşa 22'den fazla eğitim kursu oluşturdu ve geliştirdi, uzun yıllar boyunca Moskova Devlet Teknik Üniversitesi MIREA'da bir ders dersi verdiler. N.E. Bauman'ın yanı sıra Bilgi Teknolojileri Merkezi'nde.

“Bilgisayar ağları” kitabı. İlkeler, Teknolojiler ve Protokoller ”, Rusya Federasyonu Eğitim Bakanlığı tarafından önerilmektedir. Yayın, bilgisayar ağları oluşturma ilkeleri hakkında temel bilgi edinmek, yerel ve küresel ağların geleneksel ve gelecekteki teknolojilerinin özelliklerini anlamak, büyük kompozit ağlar oluşturma ve bunları yönetme yollarını incelemek isteyenler için uygundur.

Cricket Lee, Berkeley'deki California Üniversitesi'nden mezun oldu. Mezun olduktan sonra, dokuz yıl çalıştığı Hewlett-Packard'da bir iş buldu. 1997'de bir DNS danışmanlık ve eğitim şirketi olan Acme Byte & Wire'ı kurmak için HP'den ayrıldı. Cricket, bir yıl boyunca Verisign Global Kayıt Hizmetleri için DNS Ürünleri Direktörü olarak görev yaptı. Mart 2003'te, bir DNS ve DCHP cihaz şirketi olan Infoblox'a katıldı ve burada başkan yardımcılığına terfi etti.

Paul Albitz, Wisconsin Üniversitesi'nden lisans ve Purdue Üniversitesi'nden yüksek lisans derecesine sahiptir. HP-UX 7.0 ve 8.0 için BIND sürümlerinde Hewlett-Packard'da çalıştı. hp.com alanını yönetmek için kullanılan araçları yarattı.

DNS ve BIND, sistem yöneticileri için İncil gibidir. İçindeki materyal basit, erişilebilir bir dilde sunulmaktadır. Bu yayın BIND 9.3.2 ve BIND 8.4.7'ye ayrılmıştır. BIND 9.3.2, güvenlik geliştirmelerini ve IPv6 desteğinin yanı sıra ENUM, SPF ve ülkeye özgü alan adlarının kullanımını içerir.

Burada, DNS'nin nasıl çalıştığı, alan adı alanının yapısı, ad sunucularının nasıl kurulacağı ve yapılandırılacağı, DNS istemci kitaplığı işlevlerini kullanarak nasıl programlanacağı ve çok daha fazlası hakkında bilmeniz gereken tüm bilgileri bulacaksınız.

Kitap: Ölümlüler için SQL

Yazar, öğretmen ve danışman Martin Graber, onlarca yıl önce Yapılandırılmış Sorgu Dili'ne bugün hala SQL öğrenmeyi kolaylaştıran eksiksiz bir giriş hazırladı. Ölümlüler için SQL, standart SQL'e bir referansın yanı sıra standart olmayan SQL'in genel özelliklerinin bir tanımını sağlayan herhangi bir yapılandırılmış sorgu dili uygulamasına yönelik bir kılavuzdur.

Kitap, birden çok tabloya eşzamanlı sorgular, alt sorgular ve karmaşık sorgular oluşturma gibi gelişmiş tekniklerin kullanılması yoluyla bileşik veri tablolarıyla çalışmanın verimliliğini artırmaya yardımcı olacaktır. Bu yayının yardımıyla ilişkisel veritabanı yönetiminde pratik beceriler kazanabilirsiniz.

Kitap: İlişkisel Veritabanı Temelleri
Jennifer Widom, Jeffrey D. Ullman

Jennifer Widom, Stanford Üniversitesi'nde bilgisayar bilimi ve elektrik mühendisliği alanında yardımcı doçenttir ve heterojen ve yarı yapılandırılmış veritabanları (DB'ler), veri depolama yöntemleri ve aktif veri tabanı sistemlerinde araştırmalara aktif olarak katkıda bulunmaktadır.

Jeffrey D. Ullman, Stanford Üniversitesi'nde profesör ve veritabanı teorisinin kurucularından biridir. Daha sonra veritabanı teorisinin önde gelen araştırmacıları haline gelen tüm nesil yüksek lisans öğrencilerinin bilimsel süpervizörü olarak görev yaptı. Derleyiciler, hesaplama teorisi ve veritabanları hakkındaki ders kitapları eğitim standardı olarak kabul edilir.

"İlişkisel Veritabanlarının Temelleri" kitabı, veritabanlarını inceleyen herkes için faydalı olacaktır. Geleneksel veritabanı tasarım yöntemi olan SQL2, SQL3, ODMG, ODL/OQL standartlarını inceler ve SQL programlamanın birçok yönünü analiz eder.

SQL3'te özel görünümler, bütünlük kısıtlamaları, tetikleyiciler, işlemler, bilgi güvenliği ve özyineleme sorunları erişilebilir bir dilde açıklanmıştır.

Kitap: JQuery. Gelişmiş JavaScript İçin Kapsamlı Bir Kılavuz "
Yazarlar: Beer Beebo, Yehuda Katz

Beer Beebo, 30 yılı aşkın programlama deneyimine sahip bir web geliştiricisidir. jQuery in Action, Ajax in Practice, Ajax: Prototype and Scriptaculous Libraries in Action kitaplarının ortak yazarı.

Yehuda Katz, The New York Times, Allure Magazine, Architectural Digest, Yoga Journal için web siteleri tasarladı. jQuery proje çekirdek ekibinin üyesi, Merb'in (Ruby on Rails'e bir alternatif) geliştirilmesine katkıda bulundu.

JQuery. Gelişmiş JavaScript için Kapsamlı Bir Kılavuz ", HTML belgelerinin nasıl taranacağını, olayları ele almayı, web sayfalarınıza Ajax desteği eklemeyi, animasyonları oynatmayı, diğer araçlarla, platformlarla etkileşim kurmayı açıklayan web uygulamaları geliştirme çerçevesi için gerçekten derinlemesine bir referans kılavuzudur. ve jQuery için eklenti oluşturma yöntemleri. Kitap, JavaScript ve Ajax'a zaten aşina olanlar için hazırlanmıştır.

Kitap: "Python Öğrenmek"

Python'un ne olduğunu az da olsa biliyorsanız, Mark Lutz size tanıdık geliyor. Dünyanın önde gelen Python uzmanlarından biridir, en eski ve en popüler yayınların yazarıdır. Lutz, Python'u 20 yılı aşkın bir süredir kullanmakta ve popüler hale getirmekte, zamanının çoğunu dil üzerine kitap öğretmek ve yazmakla geçirmektedir.

"Python Öğrenme" nin dördüncü baskısı, dilde temel nesne türlerini, bunlarla nasıl oluşturulacağını ve bunlarla nasıl çalışılacağını içerir ve ayrıca modüllerle ve ek nesne yönelimli araçlarla - sınıflarla çalışma yöntemlerini içerir. Modellerin açıklamalarını ve istisna işleme talimatlarını sağlar ve geliştirme araçlarına genel bir bakış sağlar.

Ek materyaller:

  • Python'u Zor Yoldan Öğrenin 3. Sürüm, Python'a başlamak ve başlamak için iyi kurslar içerir: http://learnpythonthehardway.org/.
  • Django'da veya programlamada yeni misiniz? Django hakkında bilmeniz gereken her şey: http://www.djbook.ru/rel1.7/
  • Yeni başlayanlar için basit ve öğrenmesi kolay materyaller içeren siteler oluşturmaya yönelik bir eğitim: www.htmlbook.ru.

Algoritmalar ve veri yapıları

Kitap: "Bilgisayar Bilimi. Kuruluş tanıtımı. Bölüm I"

Bilişim alanında Leibniz Ödülü'nü kazanan seçkin Alman bilim adamı Manfred Boy'un dört ciltlik baskısının I. Cildi, temel bilgi kavramlarına ve bilgi işlemenin çeşitli biçimlerine ayrılmıştır. Manfred, algoritmaların (sınıflandırma, açıklama ve yürütme dahil), programlama tekniklerinin, makine yönelimli dil öğelerinin ayrıntılı bir açıklamasını verir. Kitap, bilgilerin sunumu ve işlenmesi hakkında kapsamlı açıklamalar içermektedir.

Kitap: “Cebirsel Algoritmalar. Alıştırmalar ve çözümlerle "
Yazarlar: Claude Kitte, Patrice Noden

İki Fransız matematikçi, formüllerle dolu bir kitapta, "Ne, nasıl hesaplanabilir?" sorusuna yanıt veriyor. Yazarlar, ana ilham kaynağı olarak "Programlama Sanatı"ndan (daha sonra kesinlikle bahsedeceğiz) bahsediyorlar. Aralarındaki benzerlikler kesinlikle görülebilir.
Kitap, bilgisayar cebirini uygulayan ve okuyan herkese tavsiye edilebilir. Matematiksel nesnelerin hesaplanmasıyla ilgili en kapsamlı kitabı bulmak zor.

Kitap: "Algoritmalar ve veri yapıları"

Genellikle bu tür insanlar hakkında şöyle derler: tanıtıma ihtiyaçları yoktur. Yine de Niklaus Wirth'in bir bilim adamı, mühendis, Turing Ödülü sahibi, dünyanın en ünlü programlama dili teorisyenlerinden biri, Pascal, Modula-2, Oberon dillerinin yaratıcısı olduğunu kısaca belirteceğiz.

Wirth'in eğitimde yapılandırılmış programlama üzerine kitapları zorunlu bir standart olarak kabul edilir.

"Algoritmalar ve Veri Yapıları", programcılar için gerekli minimum algoritma bilgisini veren bir masaüstü el kitabıdır. Kitap, sıralama, arama, özyineleme ve dinamik veri yapıları gibi geleneksel algoritma konularını detaylandırıyor.

Kitap: "Veri yapıları ve algoritmalar"
Alfred W. Aho, John E. Hopcroft, Jeffrey D. Ullman

Alfred Aho, yorumlanmış C-benzeri betik dili AWK'nın yaratıcılarından biri, bilgisayar biliminin çeşitli yönleri üzerine çok sayıda yayın ve kitabın yazarı ve ortak yazarı olan Kanadalı bir bilgisayar bilimcisidir.

John Hopcroft, Turing Ödülü sahibi, bilgisayar biliminin teorik yönleri, özellikle algoritmaların analizi ve grafik teorisi üzerine araştırmacı olan Amerikalı bir bilim adamıdır.

Jeffrey Ullman, bilgi teknolojisi alanında tanınmış bir araştırmacıdır ve derleyiciler, hesaplama teorisi ve veritabanları üzerine "klasik" ders kitaplarının yazarlarından biridir.

Tahmin edebileceğiniz gibi, böyle bir yazar üçlüsü yalnızca modern yazılım geliştirme metodolojisinin temellerini kapsayan temel bir çalışma kılavuzu sağlayabilir. Kitap sizden derin bilgi gerektirmez - en azından bazı üst düzey programlama dillerini (örneğin Pascal) anlamak yeterlidir.

Kitabın:
“C. Kısım 1-5'teki temel algoritmalar. Analiz. Veri yapıları. Sıralama. Arama. Grafik Algoritmaları "
"C++'da Algoritmalar"

Algoritmaların altında yatan kavramların derinlemesine bir araştırması, Princeton Üniversitesi'nde profesör, algoritmalar üzerine çok sayıda bilimsel makale ve bir dizi ders kitabının yazarı olan Robert Sedgwick tarafından yapılmıştır. "C'de Temel Algoritmalar" bölümünde, digraflarda, digraflarda ve ağlarda arama, minimum yayılan ağaçların ve en kısa yolların inşası ve farklı özelliklere sahip ağlardaki akışların hesaplanması ayrıntılı olarak ele alınmaktadır. Algoritmaların performansına ve matematiksel türevlerine çok dikkat edilir.

"C++'da Algoritmalar", verilen bilgiler temel ve herhangi bir dilde programlamaya uygulanabilir olmasına rağmen, bu sefer C++'da yapılan algoritmaların ve veri yapılarının açıklamasının hem devamı hem de yeniden düşünülmesidir. Kitaba yeni algoritmalar, illüstrasyonlar, yorumlar vb. eklendi.

Kitap: "Java'da Veri Yapıları ve Algoritmalar"

Robert LaForet 30 yıldır programlama kitapları yazıyor. Kitapları aracılığıyla sayısız programcı nesne yönelimli programlama teknolojilerinde uzmanlaştı.
"Java'da Veri Yapıları ve Algoritmalar" kitabı, herhangi bir programlama dili bilgisi öğrenmek için yeterli olsa da, Java'da yürütülen örneklerle birlikte algoritma kullanmanın temellerine ayrılmıştır. Kitapta sıralama, soyut veri türleri, bağlantılı listeler, özyineleme, ağaç veri yapıları, karma, piramitler, grafikler gibi ayrıntılı konular yer almaktadır.

Kitap: Ayrık Analiz

Joseph Romanovsky, seçimimizdeki Rus yazarların nadir bir temsilcisidir. St. Petersburg Devlet Üniversitesi Yöneylem Araştırması Bölümü Profesörü, bu algoritmaların bilgisayar uygulaması da dahil olmak üzere optimizasyon problemlerini çözmek için bir dizi etkili algoritmanın yazarı, optimal programlama ve optimizasyon algoritmalarının bilgisayar programlaması hakkında popüler ders kursları yazdı.

El kitabı "Ayrık Analiz", Joseph Romanovsky'nin ders dersinin materyallerine dayanarak yazılmıştır. Matematiğin farklı dallarında ortaya çıkan ayrık analiz kavramları ile modern bilgisayar bilimi arasındaki ilişkiye odaklanır.

Kitap: “Somut matematik. Bilişimin Kuruluşu"
Yazarlar: Ronald Graham, Donald Erwin Knuth, Oren Patashnik

Algoritma analizinin matematiksel temellerini inceleyen, algoritmalar üzerine neredeyse bir "kategorik belge". "Somut Matematik" başlığı, kelimelerle ilgili bir oyun içerir: SÜREKLİ ve AYRIKLI. Kitap, geleneksel matematiksel analiz yöntemlerine benzeyen ayrık nesnelerle çalışmaya ilişkin materyaller sunar.

Kitap, resmi olmayan bir tarzda sunulan ve kitabın ilk editörlerinden Stanford öğrencilerinin "kenar boşluklarındaki notlar" ile birlikte sunulan çeşitli zorluk seviyelerinde 500'den fazla alıştırma içermektedir. Ayrık matematik ve bilgisayar bilimlerini öğrenen ve uygulayan herkese tavsiye ediyoruz.

Kitap: "Algoritmalar. İnşaat ve Analiz "
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Clifford Stein bir bilgisayar bilimi profesörüdür.

Ronald Lynn Rivest, RSA algoritmasının yazarlarından biri olan simetrik şifreleme algoritmaları RC2, RC4, RC'nin yazarı olan bir kriptograftır.

Charles Eric Leiserson, Massachusetts Teknoloji Enstitüsü'nde paralel, dağıtık hesaplama ve pratik uygulamaları teorisinde uzmanlaşmış bir profesördür.

Thomas Cormen bir profesördür ve Dartmouth Koleji'nde ders vermektedir ve aynı zamanda kurumda Program Yazma Direktörü olarak görev yapmaktadır.

“Algoritmalar” kitabı. Yapım ve Analiz” algoritmaları alanında temel bir çalışmadır. Programlamaya en azından biraz aşina olan herkesin anlayabileceği sözde kod örnekleri kullanır ve işlem ilkelerinin açıklamaları aşırı matematiksel titizlik olmadan verilir ve yalnızca temel bilgi gerektirir.

Bu kitabın ilk baskısı, profesyoneller için standart bir başvuru kılavuzu ve üniversiteler için bir çalışma kılavuzu haline geldi. Daha sonraki sürümler çok sayıda ekleme, birçok yeni alıştırma ve görev aldı. Üçüncü baskı, van Emde Boas Ağaçları ve çok iş parçacıklı algoritmalar içerir.

Kitap: “Programlama sanatı. Cilt 1-4"

Profesör Knuth, programlama üzerine dünyanın en saygın ve alıntılanan kitap yazarlarından biridir. Ayrıca temel algoritmalar ve hesaplamalı matematiğin yöntemleri hakkında dünyaca ünlü bir dizi kitap yazdı. Donald Knuth sayısız ödül ve ödül aldı ve 1996'dan beri bilişim temellerinin gelişimine yaptığı özel katkılardan dolayı kendi adına bir ödüle layık görüldü.

Programlama Sanatı, bilgisayar bilimlerinde kullanılan en önemli algoritmalar üzerine temel bir monografidir. Kitap, yüzyılın en iyi 12 fizik ve matematik monografından biri olarak kabul edilmektedir.

40 yılı aşkın bir süredir oluşturulan monografın ana özelliği, sunulan malzemenin olağanüstü kalitesi ve ayrıca incelenen konuların analiz derinliğidir.

Kitap: Analitik Kombinatorik
Yazarlar: Philippe Flajolet, Robert Sedgwick

Philippe Flajolet, analitik kombinatorik teorisini öneren bir Fransız bilim adamıdır. Araştırma makalelerinin çoğu, algoritmaların hesaplama karmaşıklığını analiz etmek için genel yöntemlere ayrılmıştır.

"Analitik Kombinatorik" kitabı, büyük birleşimsel yapıların özelliklerinin doğru nicel tahminlerinin olasılığını sağlama sorununa en yeni yaklaşımlardan biridir. Yazarlar (zaten aşina olduğumuz Robert Sedgwick dahil) gerekli temel matematiğin tam bir cildini sağlar ve ayrıca analitik kombinatorik teorisinin hem klasik hem de modern uygulamalarını dikkatlice değerlendirir. Kitapta açıklayıcı uygulama örnekleri, alıştırmalar ve notlar bulunmaktadır.

Kitap: "Programcılar için kombinatorik"

Witold Lipski, Polonyalı bir programlama uzmanı, Paris Üniversitesi'nde profesör ve doktora sahibidir. "Programcılar için Kombinatorik" kitabı, çok çeşitli kombinatoryal ve grafik-teorik algoritmaları kapsar. Algoritmaların açıklaması Pascal'da verilmiştir. Sunum stili - referans: problem ifadesi, çözümü için algoritma, yorumlar, karmaşıklık, örnekler.

Kitap: "Algoritmalarda dizeler, ağaçlar ve diziler. Bilişim ve Hesaplamalı Biyoloji "

Profesör Dan Gasfield, California, Davis Üniversitesi'nde ders veriyor. İlgi alanları, kombinatoryal optimizasyon ile ilgili algoritmaların verimliliği üzerine araştırmaları içerir. Gasfield özellikle hesaplamalı moleküler biyolojide (özellikle biyoinformatik ve genomik) ortaya çıkan kombinatoryal problemlerle ilgilenmektedir.

Algoritmalarda Dizeler, Ağaçlar ve Diziler kitabı. Bilişim ve Hesaplamalı Biyoloji "sadece biyoloji ile ilgilenenlerin değil, aynı zamanda pratik bilgileri işlemek için modern algoritmalarla bağımsız olarak tanışmak isteyen herkesin ilgisini çekecektir.

Kitap: "Dizeler üzerinde hesaplamalar için yöntemler ve algoritmalar"

Profesör William F. (Bill) bilgisayar teknolojisinin iş dünyasında ve devlette kullanımı konusunda istişarelerde bulundu. Araştırmasının ana alanı kombinatoryal algoritmalardır.

"Dizelerde Hesaplama için Yöntemler ve Algoritmalar" kitabı, dize dizilerindeki kalıpları verimli bir şekilde hesaplayan temel algoritmaları ve yöntemleri açıklar. Bu algoritmalar ve yöntemler veri sıkıştırma, kriptografi, konuşma tanıma, bilgisayarla görme, hesaplamalı geometri, moleküler biyoloji vb. alanlarda kullanılmaktadır. Kitap, materyali netleştirmek ve genişletmek için 500'den fazla alıştırma içeriyor.

Kitap: "Programcılar için algoritmik numaralar"

Henry Warren, IBM'de 40 yılı aşkın deneyime sahiptir. Bir dizi askeri komuta kontrol sistemi ve SETL programlama dili projesinde çalıştı. 1973'ten beri Warren, IBM Araştırma Bölümü'nde derleyiciler ve bilgisayar mimarisiyle ilgilenmektedir.

Programcılar için Algoritmik Püf Noktaları kitabı, kitaplık ve derleyici geliştiricilerinin yanı sıra hızlı bir şekilde verimli kod oluşturmak isteyen herkes için son derece yararlı olacak birçok bilgisayar aritmetiği hilesi içerir. Kitap, bireysel bitler, baytlarla çalışma, çeşitli tamsayı işlevlerini hesaplama örnekleri içerir.

Kitap: "Programcılar için Ayrık Matematik"

Fedor Aleksandrovich Novikov - St. Petersburg Devlet Politeknik Üniversitesi Uygulamalı Matematik Bölümü ve St. Petersburg Devlet Bilgi Teknolojileri, Mekanik ve Optik Üniversitesi Programlama Teknolojileri Bölümü'nde Doçent. "Programcılar için Ayrık Matematik" ders kitabı, ayrık matematiğin ana bölümlerini belirler ve ayrık veri yapılarındaki en önemli algoritmaları tanımlar.

Kitap, Rusya Federasyonu Eğitim ve Bilim Bakanlığı tarafından "Bilişim ve Bilgisayar Mühendisliği" mezunları yetiştirme yönünde okuyan yüksek öğretim kurumlarının öğrencileri için bir ders kitabı olarak onaylandı.

Kitap: "Bir Mühendis için Ayrık Matematik"

Oleg Petrovich Kuznetsov - Rusya Bilimler Akademisi Kontrol Bilimleri Enstitüsü'nde Sektör Başkanı, Teknik Bilimler Doktoru. "Bir Mühendis için Ayrık Matematik" kitabı, küme teorisi, genel cebir, mantık, çizge teorisi, algoritmalar ve biçimsel sistemler teorisi ve otomata teorisinin temel kavramlarını sunar. Yayın, otomatik kontrol ve tasarım, bilgisayar teknolojisi, bilgi teknolojisi ve bilgi aktarımı alanında uzmanlaşmış mühendislerin ilgisini çekmektedir.

Gelişmiş C++ Programlama

Kitap: “Nesne yönelimli tasarım teknikleri. Tasarım desenleri "
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides tarafından

Erich Gamma, İsviçre merkezli bir programcı ve JUnit Java birim test çerçevesinin ve platformlar arası entegre yazılım geliştirme ortamının (Eclipse) lider geliştiricisidir. IBM için yazılım geliştirme (Jazz) için ölçeklenebilir bir açık kaynak platform projesinde çalıştı.

Programcı Richard Helm, şirketin yeni teknolojiler geliştiren araştırma merkezi olan IBM'de de çalıştı.

John Vlissides, Stanford Üniversitesi'nde ve 1991'den beri IBM Araştırma Merkezi'nde çalıştı. Nesne yönelimli teknolojiler, tasarım kalıpları ve yazılım modelleme üzerine birkaç kitap, birçok makale ve raporun yazarıdır.

Dörtlü Çete olarak bilinen yazarlar, dünyaya yaygın OOP sorunlarına zarif bir çözüm sundular. Kitap iki bölümden oluşuyor: ilk bölüm OOP'nin olanaklarını ve dezavantajlarını anlatıyor, ikinci bölüm 23 klasik tasarım modelini anlatıyor. Kitaptaki örnekler C++ ve Smalltalk programlama dillerinde yazılmıştır.

Ekip, tasarım desenlerini kullanma ilkelerini özetliyor ve bir katalog sunuyor. Kitap, karmaşık sistemlerin mimarisinde kalıpların rolünü göstermekte ve başvuru kitabında yer alan kalıpları kullanarak tasarımcının kendi uygulamalarını nasıl geliştirebileceğini göstermektedir.

Kitap: Şablonlarla Yeniden Düzenleme

Joshua Kerievsky, Industrial Logic'i kurdu, ancak onu, tasarım kalıplarının uygulanmasında profesyonel bir geliştiricinin deneyimini biriktiren bir kitabın yazarı olarak daha iyi tanıyoruz.

Kerievski, hem yetersiz hem de gereksiz tasarımdan kaçınmayı, kodun çalışabilirliğinin sürekli analizi için çaba göstermeyi, anlaşılmasını ve bakımını basitleştirmeyi öğretir. Yazar, hem kendisinin hem de diğer kişilerin deneyimlerine dayanarak, kodun yeniden düzenleme gerektiren çeşitli özelliklerini ayrıntılı olarak inceler, belirli bir durum için hangi yeniden düzenlemenin en uygun olduğunu açıklar ve mekaniklerini açıklar. Kitap 27 karmaşık yeniden düzenleme içeriyor.

Kirievsky, Fowler'ın Refactoring adlı kitabına atıfta bulunuyor. Mevcut kodun iyileştirilmesi ", bu nedenle program mimarisine kalıpları tanıtmanın yollarının daha iyi anlaşılması için" Şablonları kullanarak yeniden düzenleme "sonra okunması önerilir. Herhangi bir ek bilgiye ihtiyacınız yoktur ve tümü Java ile verilmiş olmasına rağmen, dilin karmaşık özelliklerini kullanmazlar. Kitap hem orta seviye programcılar hem de profesyoneller için faydalı olacaktır.

Kitap: “C++ Programlama Dili. Giriş dersi "
Yazarlar: Stanley B. Lippmann, Josie Lajoye, Barbara Mu

Stanley B. Lippmann, C++ geliştirmenin ilk aşamalarında Bell Lab'de Bjorn Stroustrup ile çalıştı. 2001'de Stanley Lippman, Microsoft'ta Visual C++'ın baş mimarı oldu. Ayrıca Emergent Game Technologies, NASA, Pixar ve 2kQubits için çalıştı.

Josie Lajoye, IBM Kanada'daki C++ derleyicisine katkıda bulunmuştur ve ayrıca ANSI / ISO'daki çekirdek C++ çalışma grubunu yönetmiştir.

Barbara Mu, yaklaşık 30 yıllık programlama deneyimine sahiptir. AT&T için 15 yıl çalıştı, Björn Stroustrup ile işbirliği yaptı ve birkaç yıl boyunca C++ geliştirme ekibine liderlik etti.

Bu uzmanların kitabı, açıkça "giriş kursu" alt başlığıyla sınırlı değildir, ancak dili öğrenmek için kapsamlı bir kılavuzdur. Kitap, hem önişlemci komutlarının ve başlık dosyalarının kullanımı dahil olmak üzere C++ programlarının yapısının temellerini hem de daha karmaşık yapıları (istisnalar, sınıflar, işlev ve sınıf şablonları, operatör aşırı yüklemesi, çoklu kalıtım vb.) kapsar.

C++ geliştikçe kitap da buna göre güncellenir. Temel kavramlara ek olarak, kitabın yeni versiyonu, okuyucunun dilin özelliklerini derinlemesine tanımadan önce bile kendi programlarını oluşturmasına izin veren en etkili teknikleri sağlar.

Kitap: "STL. Cep Kılavuzu "

Ray Lishner, Delphi topluluğunda öncelikle Secrets of Delphi 2, Hidden Paths of Delphi 3 ve Delphi Informant, Dr. Dobb "s Journal". Ama biz onun kitaplarından bir başkasını öneriyoruz - "STL. Pocket Reference." Bu gerçekten C++ Standard Library'nin bir alt kümesine bir referanstır. Kitap, modern STL kütüphanesini - algoritmaları, yineleyicileri ve kapsayıcıları açıklar. C++ Standart Kitaplığının yanı sıra bir dizi başka öğe STL'yi oluşturan işlevlerin, sınıfların ve şablonların kısa bir özetini sağlar.

Kitap: “Mükemmel kod. Usta sınıfı"

Steve McConnell bir programcı, editör ve yazılım geliştirme uzmanıdır. Yılın En İyi Yazılım Geliştirme Kitabı dalında iki kez Jolt Mükemmellik Ödülü'nü aldı. Endüstri üzerindeki etkisi açısından Bill Gates ve Linus Torvalds ile karşılaştırıldı.

McConnell'in en ünlü eseri Code Perfect'dir. Gerçek programlama sanatını gösteren yüzlerce örnek içeren kitap, yazılım geliştirmede istisnai olarak okuryazarlık ilkelerini teşvik ediyor. Yazar, ticari yazılım geliştirme ve akademik araştırma deneyimini mükemmel kod oluşturmak için bir metodolojide sentezlemiştir.

Code Perfect, her programcının okuması gereken bir kitaptır. Ve bunu birkaç kez yapmanız tavsiye edilir.

Kitap: “C++ ve STL. Başvuru Kılavuzu "
David R. Musser, Gilmer J. Durge, Atul Seini

David R. Musser öğretim görevlisidir, kuruluşundan bu yana STL ile birlikte çalışmaktadır: kütüphanenin ilk uygulaması onun doğrudan katılımıyla geliştirilmiştir. Ayrıca STL'nin ANSI / ISO C++ standardına dahil edilmesi için çalıştı.

Toltec Software Services Inc.'in Başkanı Gilmer J. Durge, General Electric Kurumsal Ar-Ge'sinde yedi yıl da dahil olmak üzere C ++ uygulamaları geliştirme konusunda geniş deneyime sahiptir.

Atul Seini, C ++ ile geliştirilmiş yüksek hızlı mesajlaşma yazılımı üreticisi Fiorano Software Inc.'in başkanıdır. STL'nin ticari potansiyelini ilk gören o oldu ve şirketine kütüphaneyi daha C++ standardına girmeden satmasını teklif etti.

“C ++ ve STL” kitabı. Başvuru Kılavuzu ”kısa bir eğitim, kitaplığın her bir öğesinin ayrıntılı açıklamaları ve çok sayıda örnek içerir. Kitap, yineleyicilerin, genel algoritmaların, kapsayıcıların, işlevsel nesnelerin vb. kapsamlı bir tanımını içerir. Ayrıca STL'nin diğer nesne yönelimli programlama teknikleriyle nasıl entegre edileceğini de açıklar.

Kitabın:
"C ++ ile karmaşık sorunları çözme"
"C++'da Yeni Zorluklar"
"C + Programlama Standartları"

Herb Sutter, köklü bir C++ uzmanıdır. Microsoft'a Visual C ++ .NET Platform Evangelist olarak katıldı ve C ++ / CLI Yazılım Mimarı pozisyonuna ulaştı. 10 yıl boyunca ISO C++ standardizasyon komitesinin organizatörü ve sekreteriydi. Uzun yıllar boyunca, Haftanın Gurusu adlı bir dizide düzenli olarak C++ ile ilgili önemsiz olmayan sorunları yayınladı. Sutter daha sonra ilk iki kitabı olan Solving Complex Problems in C++'da birçok problemin genişletilmiş versiyonlarını yayınladı.

Oldukça derin bir dil bilgisine sahip bir okuyucu için tasarlanmış üç kitabını aynı anda öneriyoruz. C ++ 'da modern tasarım ve programlama yöntemleri, görevler ve çözümleri şeklinde düşünülür. Kitaplar, C++ geliştirmede uzun yıllara dayanan deneyime odaklanmaktadır: belirli yöntemler, teknikler ve programlama deyimleri dikkate alınır, oluşturulan yazılımın maksimum güvenilirliğini, güvenliğini, performansını ve sürdürülebilirliğini sağlaması gereken tasarım konusuna özel önem verilir. .

Kitap: "C++'da Algoritmalar"

Yukarıda Robert Sezhdvik'ten bahsetmiştik. C++'daki algoritmalar, ağ bağlantısı, devre tasarımı, çizelgeleme, işlem işleme ve kaynak sağlama gibi çeşitli uygulamalarda giderek daha önemli hale gelen temel algoritmaları, veri yapılarını, sıralama ve aramayı ve grafik algoritmalarını kapsar.

Kitap, dizileri, bağlantılı listeleri, dizileri, ağaçları ve diğer temel veri yapılarını detaylandırır. Okuyucunun dikkati soyut veri tiplerine (ADT), modüler programlamaya, OOP ve C++ sınıflarına, sıralama, seçim için 100'den fazla algoritmaya, bir öncelik kuyruğunun ADT uygulamalarına ve bir sembol tablosunun ADT uygulamalarına (arama için) odaklanmıştır. ) verilmiştir.

Kitabın:
"C++ programlama dili"
"Programlama. C ++ kullanmanın ilkeleri ve uygulaması "

Dilin yazarı tarafından ders kitapları olmadan C ++ hakkında bir kitap koleksiyonu hayal etmek imkansızdır. Bjorn Stroustrup bir efsanedir ve C++ Programlama Dili alanında en çok okunan kitaplardan biridir. Stroustrup'un kitapları, teknik yazımdaki rakipsiz mükemmellikleriyle tanınır. Bu, dil yetenekleri açısından koşulsuz bir kuraldır.

"The C++ Programming Language" kitabının ilk baskısı 29 yıl önce çıktı. İkincisi 1991'de, üçüncüsü 1997'de yayınlandı. Üçüncü baskının geliştirilmiş ciltli versiyonuna Özel Baskı adı verildi ve üçüncü baskının önceki baskılarından iki ek ek (Yerelleştirme ve İstisna Güvenliği ve Standart kitaplık "), hakkında 1 bin düzeltme ve açıklamanın yanı sıra güncellenmiş bir alfabetik dizin. Kitabın C++ 11'i içeren dördüncü baskısı 2013 yılında çıktı.

Eğer bir C++ programcısıysanız, bu kitabı hemen okumalısınız.

Kitap: Yeniden düzenleme. Mevcut kodun iyileştirilmesi "
Yazarlar: Martin Fowler, Kent Beck, John Brant, William Updike, Don Roberts

Programcı Kent Beck, aşırı programlama ve test odaklı geliştirme gibi yazılım geliştirme metodolojileri oluşturmuştur. Yazılım tasarım modellerinin tanıtılmasında, test odaklı bir geliştirme metodolojisinin oluşturulmasında ve Smalltalk'ın ticari kullanımında öncülerden biridir. Erich Gamma ile birlikte JUnit test çerçevesini yarattı.

William Updike doktora tezini nesne yönelimli ortamları yeniden düzenleme üzerine yazdı (Illinois Üniversitesi'nde), bu konu hakkındaki ilk büyük yayının temelini oluşturdu.

Kitap “Yeniden Düzenleme. Mevcut kodun iyileştirilmesi ”yeniden düzenleme sürecinden bahseder, kodu iyileştirmek için derinlemesine çalışma ilkelerini açıklar. Kitap, her biri Java'daki örneklerle sahada test edilmiş kod dönüştürme motivasyonunu ve tekniğini açıklayan 70'den fazla yeniden düzenleme tekniği içerir.

Tüm geliştiriciler için "Okunmalı".

Kitap: Eksiksiz C++ Referansı

Schildt, C standartlarını benimseyen ANSI komitesinin ve C++ standartlarını benimseyen ISO komitesinin üyesi olan bir yazar, bilim adamı ve programcıdır. Little C yorumlayıcısının yazarı, özyinelemeli bir yukarıdan aşağıya ayrıştırıcı örneğidir.

Complete C++ Reference, ANSI / ISO standardına uyan dilin tüm anahtar sözcüklerini, işlevlerini, sınıflarını ve özelliklerini içerir. Temeli - C dili de dahil olmak üzere dilin tüm yönlerini kapsar.