Pascal sıfırdan mükemmele öğrenme. Pascal programlama dili (Turbo Pascal). Ders vermek. İfadeleri yaz, yaz, oku, oku

  • 06.04.2019

2. baskı. - St.Petersburg: 2011. - 320İle birlikte.

Bu kitap bir ders kitabı değil, tüm okul çocuklarının bilgisayar bilimi derslerinde aşina olduğu Pascal programlama diline hakim olma konusunda bir yardımcıdır. üzerine derslerden oluşmaktadır. Pratik konular programlama ve problem çözme. Sayısız örnek, bir algoritmanın nasıl geliştirileceğini daha iyi anlamanıza, yazmanıza izin verir. kendi programı, metnini doğru biçimde biçimlendirin. İpuçları ve notlar, okuyucunun önemli ayrıntılara dikkat etmesine yardımcı olur. tuzaklar ve programları daha verimli bir şekilde yazın. Kitap, okuldaki uzun yıllara dayanan deneyime sahip bilgisayar bilimleri öğretmenleri tarafından hazırlanmıştır. pratik iş. İkinci baskı, kayıtlar, dinamik değişkenler, yığın, sıra ve listeler hakkında birkaç yeni bölüm ekler. Programlamadaki en zor konulardan biri de, özyinelemeli algoritmaların oluşturulmasıdır.

Biçim: pdf(2011, 2. baskı, 320s.)

Boyut: 14,5 MB

İzleyin, indirin: docs.google.com

İçerik
İkinci baskıya önsöz 15
Giriş 16
yayıncıdan 16
KONU 1. Nasıl yazılır basit bir program Pascal 17'de
Ders 1.1. Ekranda bir mesaj görüntüleme 18
Ders 1.2. Bu program bilgisayara nasıl yerleştirilir 19
Yaratılışın aşamaları bilgisayar programı 20
Ders 1.3. Ekrandaki metni biçimlendirme 28
Bulgular 34
Güvenlik soruları 34
KONU 2: Sayıları eyleme geçirme 36
Ders 2.1. Basitten başlayalım: tamsayılar 37
Değişken kavramı 38
Tamsayı türü. atama operatörü. Ekran çıkışı 38
Tamsayı 40 türü ile işlemler
Standart özellikler tür Tamsayı 42
Tamsayı Değişkenleri Nasıl Temsil Edilir?
bilgisayar belleğinde 43
Ders 2.2. 45 numaralı çalışmaya reel sayılar ekliyoruz
Gerçek veri tipinin tanımı (gerçek) 45
Gerçek Değişkenler için Kayıt Formatları 46
Gerçek işlemler 46
Gerçek 47 gibi standart işlevler
Kayıt matematiksel ifadeler 48
Gerçek türdeki değişkenler bilgisayar belleğinde nasıl temsil edilir 50
Ders 2.3. Tamsayı ve gerçek tür değişkenleri nasıl birleştirilir 51
Tür dönüştürme 51
Gerçekleştirilen Eylemlerde Öncelik Kuralları 52
Verilerle ilgili eylemler farklı şekiller 53
Ders 2.4. Veri girişi ve çıkışı 56
Klavyeden değişken girme 57
Güzel ekran çıktısı 57
Değerleri ayarlama değişken sensör rastgele sayılar 61
Ders 2.5. Bir programda sabitlere neden ihtiyaç duyulur? 62
Bulgular 64
Güvenlik soruları 64
KONU 3. Sembollerle çalışmayı öğrenme 66
Ders 3.1. Bir bilgisayar sembolleri nasıl anlar 67
kod ASCII tablosu 67
Char tipinin tanımı ve standart özellikler 68
Ders 3.2. Char tipi bir sıra tipidir! 70
Bulgular 71
Güvenlik soruları 72
KONU 4. George Boole ve mantığı 73
Ders 4.1. Bir türe daha ihtiyacımız var - boole! 74
Boole veri türü (Boole) 75
İlişkisel İşlemler 75
Boole G/Ç 76
Ders 4.2. Mantıksal (boolean) işlemler 76
Mantıksal çarpma (bağlaç) 76
Mantıksal toplama (ayrılma) 77
XOR (modül 2 ilavesi) 77
Mantıksal olumsuzlama (ters çevirme) 78
Başvuru mantıksal işlemler program 78'de
Mantık Önceliği 80
Sonuçlar 81
Güvenlik soruları 81
KONU 5. Durumun analizi ve komutların yürütülme sırası 82
Ders 5.1. Algoritmada Durum Kontrolü ve Dallanma 83
if ifadesinin tam ve eksik formu 84
Program tasarlama 86
Ders 5.2. İfade blokları 88
Ders 5.3. Bir dizi koşulda dallanma (vaka bildirimi) 92
Bulgular 96
Güvenlik soruları 96
KONU 6. Tekrarlanan eylemler 98
Ders 6.1. Şebeke döngü için 99
Sayaç artışı 100 olan ifade için Sayaç artışı 101 olan ifade için
Ders 6.2. Sayaçlı döngüleri kullanma 101
Bir döngü içinde döngü 102
iz 103
105 serisinin toplamını hesaplama
Bulgular 108
Güvenlik soruları 109
KONU 7. Koşullu Döngüler 110
Ders 7.1. 111 ön koşullu döngü
Ön koşul 111 ile döngü açıklaması
Sonsuz bir serinin toplamının yaklaşık olarak hesaplanması 112
Bir sayıyı belirtilen tamsayı gücüne yükseltme 115
Ders 7.2. Son koşullu döngü 119
120 son koşullu döngü açıklaması
Tekrar ve while döngülerini kullanma 120
Seçim Göreliliği while ifadeleri ve tekrar 123
Bulgular 129
Güvenlik soruları 129
KONU 8. Diziler - yapılandırılmış tip veri 131
Ders 8.1. Aynı türdeki verileri tablo şeklinde depolama 132
133 dizileriyle çalışmak için temel adımlar
Pascal 133'te bir dizinin açıklaması
Bir dizi doldurma rastgele numaralar ve diziyi ekranda görüntüleme 134
oluşturma özel tip veri 137
Arama maksimum eleman dizi 140
Verilen özelliklere sahip bir dizinin elemanlarının toplamını ve sayısını hesaplama 144
Ders 8.2. Dizi arama 148
Bayrak Kullanarak Dizinin Negatif Elemanı Olup Olmadığını Belirleme 148
Bir Dizinin Negatif Elemanları Olup Olmadığını Sayılarını Hesaplayarak Belirleme 149
Negatif dizi elemanının sayısını bulma 150
Ders 8.3. 2B diziler 154
Bulgular 156
Güvenlik soruları 157
KONU 9. Yardımcı algoritmalar. prosedürler ve fonksiyonlar. Yapılandırılmış programlama 1 58
Ders 9.1. Yukarıdan aşağıya bir algoritma tasarlama 159
Yardımcı algoritmaları kullanan pratik problem 160
Ders 9.2. İşlevle çalışma örneği: Maksimum öğeyi bulma 167
Bulgular 168
Güvenlik soruları 169
KONU 10. Nasıl çalışılır karakter dizileri 170
Ders 10.1. Karakter dizileriyle çalışma: String 171 yazın
Dize değişkeni açıklaması 171
Temel Dize Eylemleri 172
Ders 10.2. 173 dizeleriyle çalışmak için bazı Pascal işlevleri ve prosedürleri
Kitaplık Dize Rutinlerini Kullanma 173
Sonuçlar 175
Güvenlik soruları 175
KONU 11. 176 parametreli prosedürler ve fonksiyonlar
Ders 11.1. Basit örnekler 177 parametreli alt programları kullanma
177 parametreli en basit prosedürler
resmi ve gerçek parametreler 179
179 parametreli en basit fonksiyonlar
Ders 11.2. Parametreleri geçmenin yolları 181
Sonuçlar 183
Güvenlik soruları 184
KONU 12. Dosyalar: çalışmanızı bir sonraki sefere kadar kaydetme 185
Ders 12.1. Metin dosyası 186 ile nasıl çalışılır
186 okumak için bir dosya açma
Yazmak için dosya açma 188
Ders 12.2. koruma iki boyutlu dizi sayılar Metin dosyası 192
Sayısal Verileri Bir Metin Dosyasına Kaydetme 192
Bir metin dosyasına sayı dizisini kaydetme 192
Bir dosyanın sonuna bilgi ekleme 196
Sonuçlar 197
Güvenlik soruları 197
Konu 13. Grafik çalışma modu. Grafik 199 modülü
Ders 13.1. Grafik modunu aç 200
Grafiklerle çalışmanın özellikleri 200
Video bağdaştırıcısının grafik moduna geçiş 201
Ders 13.2. Graph 203 modülünün olanaklarını keşfetmeye devam ediyoruz
Graph 203 modülünü kullanarak çizgi çizme
Graph 205 modülünü kullanarak daire çizme
Sonuçlar 206
Güvenlik soruları 207
Konu 14. Programın doğal seyrini değiştiren operatörler 208
Ders 14.1. Koşulsuz atlama operatörünü kullanma 210'a git
Ders 14.2. Bir döngünün akışını değiştiren ifadeler 213
break ifadesi 213
devam ifadesi 214
Sonuçlar 215
Güvenlik soruları 215
Konu 15. Verilerin Gruplandırılması: Kayıtlar 216
Ders 15.1. Veri türü kaydının açıklaması 218
Ders 15.2. 220 kayıtları ne zaman ve nasıl akıllıca kullanılır?
Kendi Veri Türünüzü Oluşturma - Giriş 220
Kayıt dizisi 220
221 ekleme operatörü ile
Veri Yapısı Seçim Örneği 223
Giriş kayıtları 224
Sonuçlar 225
Kontrol soruları ve görevleri 225
Konu 16. Dinamik değişkenler 226
Ders 16.1. Bellek ayırma 227
Ders 16.2. Adresler 229
Ders 16.3. İşaretçiler 230
Bireysel değişkenlere işaretçiler 230
232 değişken bloklarına işaretçiler
Ders 16.4. Dinamik Bellek Tahsisi 232
Yeni ve Bertaraf 233
Diziler için Dinamik Bellek Tahsisi 235
GetMem ve FreeMem 236
Dinamik Olarak Oluşturulan Bir Dizinin Öğelerine Erişim 237
dizi değişken uzunluk 238
Bulgular 241
Güvenlik soruları 242
Konu 17. Dinamik veri yapıları. Yığın 244
Ders 17.1. 245 veri tipini tanımlayalım
Ders 17.2. Yığın oluşturma ve temel yığın işlemleri 247
Yığına Öğe Ekleme (Push) 248
Yığından bir öğe çıkarma (Pop) 251
Yığının boş olup olmadığını kontrol etme (StacklsEmpty) 252
Ders 17.3. Yığın kullanımı 253
Dizi 255 ile Yığın Programlama
Sonuç 256
Kontrol soruları ve görevleri 256
Konu 18. Dinamik veri yapıları. Sıra 258
Ders 18.1. Çalışma prensibi ve veri tipinin açıklaması 259
Ders 18.2. Temel Kuyruk İşlemleri 261
Kuyruğa öğe ekleme (EnQueue) 261
Bir Kuyruktan Öğe Alma (DeQueue) 263
Boşluk için kuyruk kontrolü (QueuelsEmpty) 264
Ders 18.3. Kuyruk 264'ü Kullanma
Dizi 267 ile Kuyruk Programlama
Sonuçlar 269
Güvenlik soruları 269
Konu 19. Dinamik veri yapıları. Tek yönlü liste 270
Ders 19.1. Veri türünün tanımı ve nasıl çalıştığı 271
Ders 19.2. Tek Bağlantılı Liste ile Temel İşlemler 272
Bir listenin tüm öğelerini sırayla görüntüleme 272
Bir öğeyi listeye yerleştirme 273
Listeden bir öğeyi kaldırma 275
Ders 19.3. Liste İşleme 276
Neden tek bağlantılı bir liste kullanıyorsunuz 278
Sonuçlar 280
Güvenlik soruları 280
Konu 20. Özyineleme 281
Ders 20.1. İlke 282 açıklaması
Ders 20.2. Hanoi Kuleleri 285
Ders 20.3. Yinelenen bir alt programın yapısı 287
Ders 20.4. Yinelenmeyen bir sorunun yinelenen çözümüne bir örnek 288
Ders 20.5. Yinelenen bir sorunun yinelenen çözümüne bir örnek 289
Sonuçlar 291
Güvenlik soruları 291
Ek 1 Akış Şeması Öğeleri 292
Ek 2 Görevler 295
Tamsayı. Tanım. Giriş. Çözüm. İşlemler 296
Gerçek. Tanım. Giriş. Çözüm. İşlemler ve işlevler 296
Gerçek. İfade yazma ve değerlendirme 297
Karakter. Tanım. Giriş. Çözüm. Fonksiyonlar 298
Boole. İfade yazma 298
Boole. İfade değerlendirmesi 299
eğer. Basit karşılaştırmalar. Min/maks/ortalama 300
eğer. 300 parametreli denklemler ve eşitsizlikler
için. 300 transfer
için. Döngü Sayacı Hesaplamaları 301
için. Karşılaştırmalı kaba kuvvet 302
while-tekrar. Ara 302
while-tekrar. 303 sıra
Grafik Sanatları. Düz 303
Grafik Sanatları. Daireler 304
Diziler. Doldurma, çekme, miktar/miktar 305
Diziler. permütasyon 305
Diziler. Ara 306
Diziler. 307 çek
Diziler. Yüksek 307
307 parametresi olmayan alt programlar
Teller. Bölüm I 308
Teller. Bölüm II 309
Parametreli alt programlar. Bölüm I 309
Parametreli alt programlar. Bölüm II 310
Parametreli alt programlar. Bölüm III 310
Dosyalar 311
Tek yönlü liste 312
özyineleme 313

Kitabın ilk baskısının yayınlanmasından sonra, meslektaşlarımız ve öğrencilerimiz, ilk baskıya en çok çalışılan ve talep edilen veri yapıları hakkında bilgi ekleme talebiyle bizimle giderek daha sık iletişime geçmeye başladılar. Bu baskıya kayıtlar, dinamik değişkenler, yığın, kuyruk ve listeler hakkında birkaç bölüm ekledik. Ayrıca programlamadaki en zor konulardan biri olan özyinelemeli algoritmalar oluşturmaya çalıştık.
Uygulamada, çeşitli konular için birçok seçenek içeren ödev koleksiyonunu bırakmaya karar verdik. Bunun yerine, uygulamaya çok sayıda koyduk tematik ödevler, 5-8 görevlik bloklar halinde düzenlenmiştir. Her bloktaki görevler basitten karmaşığa doğru sıralanmıştır. Bunları organize etmek için derslerimizde kullanırız. pratik alıştırmalar teorik materyali birleştirirken (bir ders - bir blok).
Yazarlar, en iyi öğrencilerinden biri olan Güvenlik Bölümü Doçenti'ne en derin şükranlarını sunarlar. bilgi sistemi SPbGUAP, Doktora Destek için Evgeny Mihayloviç Linsky, birçok faydalı ipuçları ve kitabın ikinci baskısındaki çalışmalarda büyük yardım.

Bu kitap bir ders kitabı değil, tüm okul çocuklarının bilgisayar bilimi derslerinde aşina olduğu Pascal programlama diline hakim olma konusunda bir yardımcıdır. Programlama ve problem çözmenin pratik konuları üzerine konuşmalardan oluşur. Sayısız örnek, bir algoritmanın nasıl geliştirileceğini, kendi programınızı nasıl yazacağınızı ve metnini nasıl doğru biçimde biçimlendireceğinizi daha iyi anlamanıza olanak tanır. İpuçları ve notlar, okuyucuların dikkatini önemli ayrıntılara çeker, tuzaklardan kaçınır ve programları daha verimli bir şekilde yazar.
Kitap, uzun yıllar pratik çalışma konusunda geniş deneyime sahip okul bilişim öğretmenleri tarafından yazılmıştır.

Programlama dili nedir? Bir bilgisayarın çözdüğü herhangi bir problem, bir dizi komut olarak yazılır. Böyle bir diziye program denir. Komutlar, elbette, dilde temsil edilmelidir. bilgisayar anlaşılır. Böyle bir dil Pascal programlama dilidir. İsviçreli profesör Nikolaus Wirth tarafından öğrencilere programlamayı öğretmek için özel olarak geliştirilmiştir. Dilin özellikleri aynı zamanda yapısını da içerir. Yani, program kolayca daha basit, kesişmeyen bloklara bölünür ve bu da sırayla daha da fazlasına bölünür. basit bloklar. Ayrıca programlamayı kolaylaştırır. 1979'da dil standart olarak onaylandı. Wirth, hesap makinesinin mucidi Fransız bilim adamı Blaise Pascal'ın adını verdi. Pascal dili basit, mantıklı ve etkilidir. Tüm dünyaya yayılmıştır. Konuşmalarımız şunlara dayanıyor somut örnekler programlar. Uzun teorik açıklamalar yoktur, bu nedenle programların metinlerindeki yorumları dikkatlice okumak son derece gereklidir!
Böylece, Pascal'daki ilk programla ilk sohbete hemen başlıyoruz;

İçerik
giriş 7
teşekkürler 7
yayıncıdan 8
KONU 1. Pascal 9'da basit bir program nasıl yazılır
Ders 1.1. Ekranda mesaj göster 10
Ders 1.2. Bu program bilgisayara nasıl yerleştirilir? on bir
Bilgisayar programı oluşturma aşamaları 12
1. Pascal 14 ortamını başlatın
2. Düzenleme 16 Penceresinde Çalışmak
3. Programı diskteki bir dosyaya kaydetme 19
4. Derleyiciyi Çalıştırma 20
5. Koşu programı 21
6. Programın sonuçlarını görüntüleme 21
7. Pascal 22 ortamından çıkın
Ders 1.3. Ekrandaki metni biçimlendirme 22
Bulgular 28
Güvenlik soruları 28
KONU 2. Sayısal veriler nasıl işe koyulur 30
Ders 2.1. Basitten başlayalım: tamsayılar 31
Değişken kavramı 32
Tamsayı türü. atama operatörü. Ekran çıkışı 32
Tamsayı 34 ile işlemler
Tamsayı 36 türünün standart işlevleri
Tamsayı türü değişkenler bilgisayar belleğinde nasıl temsil edilir 38
Ders 2.2. Gerçek sayıları eyleme geçirmek 39
Gerçek veri türünün açıklaması (Gerçek) 40
Gerçek Değişkenler için Kayıt Formatları 40
Gerçek işlemler 41
Real 41 tipi standart fonksiyonlar
Matematik İfadeleri Yazma 43
Gerçek değişkenler bellekte nasıl temsil edilir?
bilgisayar 45
Ders 2.3. Tamsayı ve Gerçek Tip Değişkenler Nasıl Birleştirilir 46
Tür dönüştürme 46
Gerçekleştirilen Eylemlerde Öncelik Kuralları 47
Farklı veri türleri üzerindeki eylemler 47
Ders 2.4. Veri girişi ve çıkışı 51
Klavyeden değişken girme 52
Güzel ekran çıktısı 52
Rastgele Sayı Üreteci ile Değişken Değerleri Ayarlama 55
Ders 2.5. Bir programda sabitlere neden ihtiyaç duyulur? 57
Bulgular 59
Güvenlik soruları 60
KONU 3. Sembollerle çalışmayı öğrenme 61
Ders 3.1. Bir bilgisayar sembolleri nasıl anlar 62
ASCII kod tablosu 62
Karakter Türü Açıklama ve Standart İşlevler 63
Ders 3.2. Char tipi bir sıra tipidir! 64
Bulgular 66
Güvenlik soruları 67
KONU 4. George Boole ve mantığı 68
Ders 4.1. Bir türe daha ihtiyacımız var - boole! 69
Boole veri türü (Boole) 70
İlişki İşlemleri 70
Boole G/Ç 71
Ders 4.2. Mantıksal (boolean) işlemler 71
Mantıksal çarpma (bağlaç) 72
Mantıksal toplama (ayrılma) 72
XOR (modül 2 ilavesi) 73
Mantıksal olumsuzlama (ters çevirme) 74
Programda mantıksal işlemlerin uygulanması 74
Mantık Önceliği 76
Bulgular 77
Güvenlik soruları 78
KONU 5. Durumun analizi ve komutların yürütülme sırası 79
Ders 5.1. Algoritma 80'de Durum Kontrolü ve Dallanma
if ifadesinin tam ve eksik formu 81
Program tasarlama 84
Ders 5.2. İfade blokları 85
Ders 5.3. Bir dizi koşulda dallanma (vaka bildirimi) 90
Bulgular 94
Güvenlik soruları 95
KONU 6. Tekrarlanan eylemler 96
Ders 6.1. for-loop-ifadesi 97
artan sayaçlı deyim için 97
sayaç 99'un sıralı azalmasıyla ifade için
Ders 6.2. Sayaç 99 ile döngüleri kullanma
100. döngüde döngü
iz 101
Bir serinin toplamını hesaplama 103
Bulgular 107
Güvenlik soruları 108
KONU 7. Koşullu Döngüler 109
Ders 7.1. 110 ön koşullu döngü
110 ön koşullu döngü açıklaması
Sonsuz bir serinin toplamının yaklaşık hesaplanması 111
Belirtilen Tamsayı Gücüne Sayı Girme 114
Ders 7.2. 118 son koşullu döngü
Son koşul 119 ile döngü açıklaması
Tekrar ve while döngülerini kullanma 119
while ve tekrar ifadelerinin seçiminin göreliliği 123
Bulgular 129
Güvenlik soruları 129
KONU 8. Diziler - yapılandırılmış veri türü 131
Ders 8.1. Aynı türdeki verileri tablo şeklinde depolama 132
133 dizileriyle çalışmak için temel adımlar
Pascal 133'te bir dizinin açıklaması
Bir diziyi rastgele sayılarla doldurma ve diziyi ekranda görüntüleme 134
Özel bir veri türü oluşturma 137
Bir dizinin maksimum elemanını bulma 141
Verilen özelliklere sahip dizi elemanlarının toplamını ve sayısını hesaplama 146
Ders 8.2. Dizi arama 148
Bayrak Kullanarak Dizinin Negatif Elemanı Olup Olmadığını Belirleme 149
150 sayısını hesaplayarak bir dizinin negatif elemanlar içerip içermediğini belirleme
Bir Dizideki Negatif Eleman Sayısını Bulma 152
Ders 8.3. 2B diziler 156
Bulgular 158
Güvenlik soruları 159
KONU 9. Yardımcı algoritmalar. prosedürler ve fonksiyonlar. Yapılandırılmış programlama 160
Ders 9.1. Yukarıdan aşağıya bir algoritma tasarlama 161
Yardımcı algoritmaları kullanan pratik problem 162
Ders 9.2. Bir fonksiyonla çalışma örneği: maksimum elemanı bulma 169
Bulgular 171
Güvenlik soruları 171
KONU 10. Karakter dizileriyle nasıl çalışılır 1 72
Ders 10.1. Karakter dizileriyle çalışma: String 1 73 yazın
173 dize değişkeninin açıklaması
Temel Dize Eylemleri 174
Ders 10.2. 175 dizeleriyle çalışmak için bazı Pascal işlevleri ve prosedürleri
Kitaplık Dize Rutinlerini Kullanma 175
Bulgular 177
Güvenlik soruları 178
KONU 11. 179 parametreli prosedürler ve fonksiyonlar
Ders 11.1. 180 Parametreli Alt Programları Kullanmanın Basit Örnekleri
180 parametreli en basit prosedürler
Resmi ve gerçek parametreler 182
183 parametreli en basit fonksiyonlar
Ders 11.2. Parametreleri geçmenin yolları 184
Sonuçlar 187
Güvenlik soruları 187
KONU 12. Dosyalar: çalışmanızı bir sonraki sefere kadar kaydetme 189
Ders 12.1. Bir metin dosyasıyla nasıl çalışılır 190
190 okumak için bir dosya açma
Yazmak için dosya açma 193
Ders 12.2. İki boyutlu bir sayı dizisini bir metin dosyasına kaydetme 196
Sayısal Verileri Metin Dosyasına Kaydetme 196
Bir metin dosyasına sayı dizisini kaydetme 197
Dosyanın sonuna bilgi ekleme 201
Sonuçlar 202
Güvenlik soruları 203
KONU 13. Grafik çalışma modu. Grafik 204 modülü
Ders 13.1. Grafik modunu aç 205
Grafiklerle çalışmanın özellikleri 205
Video bağdaştırıcısının grafik moduna geçiş 206
Ders 13.2. Graph 208 modülünün olanaklarını keşfetmeye devam ediyoruz
Graph 209 modülünü kullanarak çizgi çizme
Graph 210 modülünü kullanarak daire çizme
Sonuçlar 212
Güvenlik soruları 212
KONU 14. Programın doğal seyrini değiştiren operatörler 213
Ders 14.1. Koşulsuz atlama operatörünü kullanma goto 215
Ders 14.2. Bir döngünün akışını değiştiren ifadeler 218
break ifadesi 2.19
devam ifadesi 220
Sonuçlar 220
Güvenlik soruları 221
Ek 1 Akış Şeması Öğeleri 222
Ek 2. Ödev 224
Bölüm 2 için görevler 224
4. bölüm için görevler 227
6-7. bölümler için görevler 229
Bölüm 8 için görevler 236
Alfabetik dizin 254

Bu yazıda size dil ile çalışmanın temel ilkelerini anlatacağım. paskal. Burada yayınlanan bilgiler acemi programcılar için basit ve anlaşılırdır. Bu makalenin sonunda, Pascal hakkında temel bilgilere sahip olacaksınız ve ileri işlemöğrenmek, olabileceğinden çok daha kolay olacaktır.

paskal- en iyilerinden biri bilinen diller programlama. 1968 - 1969'da İsviçreli bilim adamı Niklaus Wirth tarafından yaratıldı, adını Fransız matematikçi ve fizikçi Blaise Pascal'dan aldı ve bugüne kadar programlama öğretmek için kullanılıyor.

1. İşe hazırlık

Böylece, programlamayı öğrenmeye ve bunun için en uygun dil olan Pascal ile başlamaya karar verdiniz. Başlamak için derleyiciyi satın almanız (indirmeniz) gerekir.

Ve bu tam olarak nedir "derleyici"? BT özel program, program kodunu okur ve ardından makine diline çevirir. Yani, aslında, tüm programlama dilleri bir bilgisayarla “iletişim kurmanın” bir yoludur ve derleyici “konuşmamızı” anlaşılır bir dile çevirmeye yardımcı olur.

Pascal için birçok derleyici vardır, bunların en ünlüleri şunlardır: Pascal ABC, Ücretsiz Pascal, Pascal ABC.NET, Turbo Pascal. Tüm bu programlar kendi yollarıyla iyidir, ancak kişisel olarak (yazar) benim için Pascal ABC (veya Pascal ABC.NET) çok uygundur, çünkü çok uygun bir arayüze, ayrıntılı yardıma ve hatta özel bir görev koleksiyonuna sahiptir. yeni başlayanlar için hazırlanmıştır.

2. Başlarken

Pekala, derleyici penceresi önümüzde açık. Temiz, beyaz (veya mavi?) bir sayfa. İlk programlarımız burada doğacak. Çalışmaya başlamadan önce Pascal dilinin üç bileşenin birleşimi olduğunu unutmayın: alfabe, sözdizimi (dil nesnelerini yazma kuralları) ve anlambilim (bu nesneleri kullanma kuralları).
Pascal alfabesi şunlardan oluşur:
  1. büyük harf ve Küçük harfler Latince: A...Z, a...z;
  2. Rakam: 0...9;
  3. Özel karakterler: + - * / =< >.,:; ‘ # () ( ) ve bunların kombinasyonları: “>=” “
Sözdizimi ve anlambilimin görevi, programın bir bölümünü doğru bir şekilde yazmak ve yapısını doğru bir şekilde oluşturmaktır, aksi takdirde programımız doğru çalışmayacaktır (veya hiç çalışmayacaktır!).
Muhtemelen en ilginç kısma gelmek için can atıyorsunuz, bu yüzden şimdi ilk programlarınızı yazmaya çalışacağız.

Programın yapısı şöyle görünür:

Program "program adı"; - program başlığı;
(Not: satırın sonuna noktalı virgül konur, tamamında değil, çoğunda)
Kullanımlar (kütüphane adı); veren kütüphaneler buraya bağlı Ek özellikler programlar oluştururken;
Etiket (etiket adı); burada, gerekirse, gitmenizi sağlayan etiketler yazılır. farklı yerler programlar (daha sonra onlar hakkında);
Const burada değişkenleri sabit bir değerle belirtiriz, örneğin, p=3.14;
Var burada tüm değişkenleri virgülle ayırarak listeliyoruz ve ardından veri tipini belirliyoruz (Örnek: Var: K, L, M: tamsayı; N, O: gerçek; (birkaç tür varsa));
Başla (burada noktalı virgül yok)
Ardından programın ana bloğu gelir;
son. – programın sonu (işleç parantezleri değil, programın sonu olmadıkça, bir noktanın “bitişinden” sonra gereklidir).

3. İlk programların oluşturulması

Artık programın temel yapısına aşinasınız. Yukarıdaki bölümlerden sadece "Var", "Başlangıç" ve "bitiş" bölümlerinin zorunlu olduğu, geri kalanının ise görevin yürütülmesi sırasında gerekli olması halinde kullanılabileceği belirtilmelidir.

Derleyici pencerenizi açın ve aşağıdaki satırları girin:

Program Programma1;
başlamak
son.

"Çalıştır" düğmesini tıklayın. Hiçbir şey olmuyor? Yani programımız “boş” olduğu için ne yapması gerektiğini belirtmedik, dolayısıyla hiçbir şey olmadı. Genellikle Pascal dilinde yazılmış bir programın çalışma prensibi üç aşamadan oluşur: veri girişi - veri işleme - veri çıkışı. Şimdi "write" operatörünü tanıyalım. Geçiş yapmadan sadece veri çıkışı için hizmet eder. Yeni hat. Bunu uygulamaya çalışalım, böylece programımızı biraz daha karmaşık ve ilginç hale getirelim:

Program Programma1;
başlamak
write("paskal");
son.

Aslında bu şekilde uygulanır. Kesme işaretleri arasında, herhangi bir düzende herhangi bir metin girebiliriz ve program çalıştırıldıktan sonra çıktı penceresinde (veya Komut satırı sahip olduğunuz derleyiciye bağlı olarak). AT bu durum, "Pascal" kelimesi görünmelidir.

3.1. İfadeleri yaz, yaz, oku, oku
Şimdi veri girişi hakkında konuşalım. Yazma operatörünü zaten gördük, ancak başkaları da var. Örneğin Writeln, verileri yeni bir satırla çıktılamak için kullanılır. Ne için? Örneğin, bir değişkene bir değer vermek için:

Program Programma1;
varA:tamsayı;
başlamak
writeln("A="); oku); (değeri girin ve onu A değişkenine "ekleyin")
yaz(A); (A değişkeninin değerini çıktılayın)
son.

Gördüğünüz gibi, her bir eylemi kısaca açıkladım. kıvırcık parantezler. Buna yorum denir. Gelecekte, onları açıklamalar için de kullanacağım.
Bu örnekte, atamak için değer değişkeni klavyeden girildiğinde read ifadesi kullanılır. Yürütüldüğünde, dizeyi A değişkenine okuduğunu görüyoruz. Diğer ifade, readln, farklı çalışıyor. Kullanarak hemen girebiliriz istenen satır, ve bir değişkene okunacaktır:

Program Programma1;
varA:tamsayı;
başlamak
readln(A);
write("A= ",A); (satır şöyle görünecek: "A =" girilen değer A " ")
son.

Artık veri girişi hakkında biraz bilgi sahibi olduğunuza göre, verinin ne olabileceğinden ve nasıl işleneceğinden bahsedelim.

3.2. Pascal'daki veri türleri
Bu makaleyi okurken, muhtemelen birkaç kez anlamadığınız bir tam sayıya rastlamışsınızdır. Programın temel yapısını dikkatlice inceledikten sonra, bunun bir veri türü olduğunu muhtemelen anladınız. Ama bu ne anlama geliyor? Buna daha yakından bakalım.

Klavyeden girilen veya bir dosyadan okunan ilk veriler değişkenlerde saklanır ve bunlar da sırayla depolanır. rasgele erişim belleği. Veri türü, ne tür verilerin saklanabileceğini ve ne kadar RAM alacağını belirler. Veri türleri tamsayı ve gerçektir.

Tamsayı veri türleri (tamsayılar için):
- bayt
Bu tür bir değerin bellek boyutu 1 bayttır. için değer aralığı bu türden: 0 ila 255.
- kelime
Bu tür değerler zaten 2 bayt bellek kaplar ve değer aralığı zaten daha büyüktür: 0'dan 65535'e.
- tamsayı (bize zaten tanıdık geliyor)
Değerler ayrıca 2 bayt bellek kaplar, aralık aynı boyuttadır, ancak zaten ve negatif sayılar: -32786…32787.
-LongInt
Tür değeri tarafından işgal edilen bellek miktarı 4 bayttır. Değer aralığı, veri türünün adına tam olarak karşılık gelir: -2147483648'den 2147483647'ye
- KısaInt
Tür değeri 1 bayt bellek tüketir, aralık nispeten küçüktür: -128…127.

Gerçek veri türleri (ile sayılar için kesirli kısım):
-Gerçek
Türün değeri tarafından işgal edildi - 6 bayt. Sayı önemli rakamlar- 11-12. (önemli rakamlar kesin rakamlardır, yani yuvarlanmamıştır). Tip değeri aralığı: 2.9*10-39 ila 1.7*1038.
-Çift
Tür değerinin boyutu 8 bayttır. Anlamlı basamak sayısı 15-16'dır. Aralık: 5.0*10324…1.7*10308.
- Genişletilmiş
10 bayt alır. Anlamlı basamak sayısı 19-20'dir. Aralık: 3.4*10-4932…1.1*104932.
Bunlara ek olarak, karakter türü veri türü (char) ve hatta değişkenleri yalnızca doğru veya yanlış değerleri alabilen mantıksal bir veri türü (boolean).

Bu nedenle, veri girişi ve çıkışı hakkında zaten çok şey öğrendik. Şimdi en zor kısma geçelim - veri işleme.

3.3. Veri işleme. Matematiksel işlemler. Şartlar. mantıksal işlemler
Programa nasıl veri girileceğini zaten öğrendik, şimdi onları nasıl işleyeceğimizi öğrenmeye çalışacağız. Bu durumda işe yarayacak ilk ve en önemli şey atama operatörüdür. Şu şekilde ifade edilir: ":=" ve bir değişkene değer atamak için kullanılır. Örnekler: A:=1,5; B:=2+A. Artık atama operatörüne aşina olduğumuza göre, Pascal'ın matematiksel işlemlerine bakabiliriz:
  1. Ekleme (+);
  2. Çıkarma (-);
  3. Çarpma işlemi (*);
  4. Bölüm (/);
  5. tamsayı bölümü(div) - bölümün tamsayı kısmını döndürür (Örnek: 10 div 3 = 3);
  6. Modulo (mod) – sadece moduloyu döndürür (Örnek: 5 mod 2 = 1);
Yukarıdakilere ek olarak, sayılarla çalışmak için bu tür işlemler ve işlevler de vardır:

Abs(x) - x'ten modülü döndürür;
sin(x) – x açısının sinüsü (radyan cinsinden);
cos(x) – x açısının kosinüsü (radyan cinsinden);
int(x) - x'in tamsayı kısmını döndürür;
rasgele(sayı) – 0'dan verilen bir rasgele sayı;
sqr(x), x'in karesidir;
kare(x) - Kare kök x;
inc(x) - x'i 1 artır;
dec(x) - x'i 1 azaltır.

Şartlar
Pascal'daki koşullar, özellikle program yürütme algoritması dallanmışsa çok önemli bir rol oynar. Koşul aşağıdaki gibi formüle edilmiştir:

Eğer (durum 1) ise (eylem 1 - ana) else (eylem 2 - alternatif)
(eğer - ise, o zaman - o zaman, başka - aksi halde)

Koşulları oluştururken mantıksal kullanırlar. operasyonlar ve, değil veya, xor:

Ve birkaç koşulu tek bir koşulda birleştiren bir işlenendir. Eylem, yalnızca listelenen tüm koşullar doğruysa yürütülür.
Usloviya programı;
var a:integer;
başlamak
readln(a);
eğer (2*2=4) ve (3+2=5) ise a:=a+1 else a:=a-1;
yaz(a);
son.

Bu örnekte, listelenen tüm koşulların doğru olduğunu görüyoruz, bu nedenle yalnızca gerçekleşen ilk eylem gerçekleştirilmiştir. En az bir koşul doğru değilse, ikinci eylem gerçekleştirilecektir.

Değil, tek parça koşulu olan mantıklı bir eylemdir. Koşul yanlışsa, ana eylem (ilk) gerçekleştirilir, doğruysa alternatif (ikinci).

Usloviya Programı;
varb:tamsayı;
başlamak
readln(b);
5=4 değilse b:=b+1 yoksa b:=b-1;
yaz(b);
son.

5=4 koşulu yanlıştır, bu nedenle ilk işlem gerçekleştirilecektir.

Yada yada) - mantıksal operatörçok parçalı bir durum için. En az bir koşul doğruysa ana eylem yürütülür.
Usloviya programı;
vard:tamsayı;
başlamak
readln(d);
(5=4+1) veya (5=4) ise d:=d+1 yoksa d:=d-1;
yaz(d);
son.

Koşullardan biri doğrudur, bu nedenle program ana eyleme geçecektir. Tüm koşullar doğruysa aynı şey olur. Koşullardan hiçbiri doğru değilse, alternatif bir işlem gerçekleştirilir.

Xor - bu operatörle, yalnızca bir koşul doğruysa ana eylem gerçekleştirilir. Birkaç koşul doğruysa veya hiçbiri yoksa, alternatif bir eylem gerçekleştirilecektir.

Usloviya Programı;
varn:tamsayı;
başlamak
readln(n);
eğer (6=4) xor (3=5-2) ise n:=n+1 yoksa n:=n-1;
yaz(n);
son.

(Not: Mantıksal işlemlerin önceliğinin matematiksel işlemlerden daha yüksek olduğunu unutmayın, bu nedenle, bazıları diğerleriyle birleştirilirse, programın yürütülmesi sırasında hata olmaması için matematiksel işlemlerin parantezlerle ayrılması istenir.)

Artık veri işlemenin temellerini biliyoruz. Bazıları hakkında konuşmak için kalır ek prosedürler, ve Pascal'da ileri eğitim sırasında bir kereden fazla kullanışlı olacak programı yönetme işlevleri.

3.4. Program Yönetimi için Prosedürler ve Fonksiyonlar
Biraz önce bahsettiğimiz etiketten bahsedelim. Bu prosedürün kullanımı çok kolaydır ve gerekirse programın herhangi bir bölümüne atlamanıza, aşağıdaki bölümlerden birine "atlamanıza" veya tam tersi şekilde önceki bölüme dönmenize izin verir. Etiket çok basit bir şekilde yazılır: ilk olarak, etiketler bölümünde etiketi tanımlarız (bkz. s. 3. Başlarken. Program yapısı) ve ardından atlama konumu belirtilir ve istenen operatör bir etiketle işaretlenir.

program etiketi;
etiket 1,2;
varA, B:tamsayı;
başlamak
readln(A);
2: eğer A=5 ise 1'e gidin; (2: - ilgili etikete atladıktan sonra yapılan işlem,)
A:=A+1; (goto - etikete git)
2'ye git;
1:yaz (A);
son.

Üzerinde bu örnek, program girilen sayıyı beşe eşit olana kadar 1 artırır. Burada etiketin hareketini takip edebiliriz.

Gecikme(zaman) - programı gecikmeli olarak durdurun, zaman tırnak içinde milisaniye cinsinden belirtilir.
Readkey - bir tuşa basmadan önce programı durdurun, fonksiyon değeri - basılan tuşun kodu.
Çıkış - prosedürün erken sonlandırılması.
Gecikme, okuma anahtarı ve işe çıkmak için crt modülünü eklemeniz gerektiğine dikkat edilmelidir (crt kullanır).

Ayrıca videoyu izleyin: Pascal sıfırdan - ilk program.

4. Sonuç

Bu makaleyi okuyarak, temel bilgi dile göre Pascal programlama. Erişilebilir ve anlaşılır formülasyonlarda, bu dille çalışmanın temel kavramları ve ilkeleri burada ortaya konmuştur. Artık mesele senin elinde. Bu bilgileri doğru kullanır ve öğrenmeye devam ederseniz paskal dili yakında mükemmel bir şekilde ustalaşabileceksiniz.

Pascal ile çalışmanın prensibini anladıktan sonra, diğer programlama dillerini öğrenebilecek ve gelecekte bu makaleyi okurken tanıştığınızdan daha “ciddi” programlar yazabileceksiniz. Öğrenmeye devam et! İyi şanlar!

2. baskı. - St.Petersburg: 2011. - 320İle birlikte.

Bu kitap bir ders kitabı değil, tüm okul çocuklarının bilgisayar bilimi derslerinde aşina olduğu Pascal programlama diline hakim olma konusunda bir yardımcıdır. Programlama ve problem çözmenin pratik konularına ayrılmış derslerden oluşur. Sayısız örnek, bir algoritmanın nasıl geliştirileceğini, kendi programınızı nasıl yazacağınızı ve metnini nasıl doğru biçimde biçimlendireceğinizi daha iyi anlamanıza olanak tanır. İpuçları ve notlar, okuyucunun önemli ayrıntılara dikkat etmesine, tuzaklardan kaçınmasına ve programları daha verimli yazmasına yardımcı olur. Kitap, okuldaki uzun yıllara dayanan pratik çalışma deneyimine sahip bilgisayar bilimleri öğretmenleri tarafından hazırlanmıştır. İkinci baskı, kayıtlar, dinamik değişkenler, yığın, sıra ve listeler hakkında birkaç yeni bölüm ekler. Programlamadaki en zor konulardan biri de, özyinelemeli algoritmaların oluşturulmasıdır.

Biçim: pdf(2011, 2. baskı, 320s.)

Boyut: 14,5 MB

İzleyin, indirin: docs.google.com

İçerik
İkinci baskıya önsöz 15
Giriş 16
yayıncıdan 16
KONU 1. Pascal 17'de basit bir program nasıl yazılır
Ders 1.1. Ekranda bir mesaj görüntüleme 18
Ders 1.2. Bu program bilgisayara nasıl yerleştirilir 19
Bilgisayar programı oluşturma aşamaları 20
Ders 1.3. Ekrandaki metni biçimlendirme 28
Bulgular 34
Güvenlik soruları 34
KONU 2: Sayıları eyleme geçirme 36
Ders 2.1. Basitten başlayalım: tamsayılar 37
Değişken kavramı 38
Tamsayı türü. atama operatörü. Ekran çıkışı 38
Tamsayı 40 türü ile işlemler
Tamsayı 42 türünün standart işlevleri
Tamsayı Değişkenleri Nasıl Temsil Edilir?
bilgisayar belleğinde 43
Ders 2.2. 45 numaralı çalışmaya reel sayılar ekliyoruz
Gerçek veri tipinin tanımı (gerçek) 45
Gerçek Değişkenler için Kayıt Formatları 46
Gerçek işlemler 46
Gerçek 47 gibi standart işlevler
Matematik İfadeleri Yazma 48
Gerçek türdeki değişkenler bilgisayar belleğinde nasıl temsil edilir 50
Ders 2.3. Tamsayı ve gerçek tür değişkenleri nasıl birleştirilir 51
Tür dönüştürme 51
Gerçekleştirilen Eylemlerde Öncelik Kuralları 52
Farklı Türlerdeki Verilere İlişkin Eylemler 53
Ders 2.4. Veri girişi ve çıkışı 56
Klavyeden değişken girme 57
Güzel ekran çıktısı 57
Rastgele Sayı Üreteci ile Değişken Değerleri Ayarlama 61
Ders 2.5. Bir programda sabitlere neden ihtiyaç duyulur? 62
Bulgular 64
Güvenlik soruları 64
KONU 3. Sembollerle çalışmayı öğrenme 66
Ders 3.1. Bir bilgisayar sembolleri nasıl anlar 67
ASCII kod tablosu 67
Karakter Türü Açıklama ve Standart İşlevler 68
Ders 3.2. Char tipi bir sıra tipidir! 70
Bulgular 71
Güvenlik soruları 72
KONU 4. George Boole ve mantığı 73
Ders 4.1. Bir türe daha ihtiyacımız var - boole! 74
Boole veri türü (Boole) 75
İlişkisel İşlemler 75
Boole G/Ç 76
Ders 4.2. Mantıksal (boolean) işlemler 76
Mantıksal çarpma (bağlaç) 76
Mantıksal toplama (ayrılma) 77
XOR (modül 2 ilavesi) 77
Mantıksal olumsuzlama (ters çevirme) 78
Programda mantıksal işlemlerin uygulanması 78
Mantık Önceliği 80
Sonuçlar 81
Güvenlik soruları 81
KONU 5. Durumun analizi ve komutların yürütülme sırası 82
Ders 5.1. Algoritmada Durum Kontrolü ve Dallanma 83
if ifadesinin tam ve eksik formu 84
Program tasarlama 86
Ders 5.2. İfade blokları 88
Ders 5.3. Bir dizi koşulda dallanma (vaka bildirimi) 92
Bulgular 96
Güvenlik soruları 96
KONU 6. Tekrarlanan eylemler 98
Ders 6.1. 99 için döngü ifadesi
Sayaç artışı 100 olan ifade için Sayaç artışı 101 olan ifade için
Ders 6.2. Sayaçlı döngüleri kullanma 101
Bir döngü içinde döngü 102
iz 103
105 serisinin toplamını hesaplama
Bulgular 108
Güvenlik soruları 109
KONU 7. Koşullu Döngüler 110
Ders 7.1. 111 ön koşullu döngü
Ön koşul 111 ile döngü açıklaması
Sonsuz bir serinin toplamının yaklaşık olarak hesaplanması 112
Bir sayıyı belirtilen tamsayı gücüne yükseltme 115
Ders 7.2. Son koşullu döngü 119
120 son koşullu döngü açıklaması
Tekrar ve while döngülerini kullanma 120
while ve tekrar ifadelerinin seçiminin göreliliği 123
Bulgular 129
Güvenlik soruları 129
KONU 8. Diziler - yapılandırılmış veri türü 131
Ders 8.1. Aynı türdeki verileri tablo şeklinde depolama 132
133 dizileriyle çalışmak için temel adımlar
Pascal 133'te bir dizinin açıklaması
Bir diziyi rastgele sayılarla doldurma ve diziyi ekranda görüntüleme 134
Özel bir veri türü oluşturma 137
140 dizisinin maksimum elemanını bulma
Verilen özelliklere sahip bir dizinin elemanlarının toplamını ve sayısını hesaplama 144
Ders 8.2. Dizi arama 148
Bayrak Kullanarak Dizinin Negatif Elemanı Olup Olmadığını Belirleme 148
Bir Dizinin Negatif Elemanları Olup Olmadığını Sayılarını Hesaplayarak Belirleme 149
Negatif dizi elemanının sayısını bulma 150
Ders 8.3. 2B diziler 154
Bulgular 156
Güvenlik soruları 157
KONU 9. Yardımcı algoritmalar. prosedürler ve fonksiyonlar. Yapılandırılmış programlama 1 58
Ders 9.1. Yukarıdan aşağıya bir algoritma tasarlama 159
Yardımcı algoritmaları kullanan pratik problem 160
Ders 9.2. İşlevle çalışma örneği: Maksimum öğeyi bulma 167
Bulgular 168
Güvenlik soruları 169
KONU 10. Karakter dizileriyle nasıl çalışılır 170
Ders 10.1. Karakter dizileriyle çalışma: String 171 yazın
Dize değişkeni açıklaması 171
Temel Dize Eylemleri 172
Ders 10.2. 173 dizeleriyle çalışmak için bazı Pascal işlevleri ve prosedürleri
Kitaplık Dize Rutinlerini Kullanma 173
Sonuçlar 175
Güvenlik soruları 175
KONU 11. 176 parametreli prosedürler ve fonksiyonlar
Ders 11.1. Parametrelerle Alt Programları Kullanmaya İlişkin Basit Örnekler 177
177 parametreli en basit prosedürler
Resmi ve gerçek parametreler 179
179 parametreli en basit fonksiyonlar
Ders 11.2. Parametreleri geçmenin yolları 181
Sonuçlar 183
Güvenlik soruları 184
KONU 12. Dosyalar: çalışmanızı bir sonraki sefere kadar kaydetme 185
Ders 12.1. Metin dosyası 186 ile nasıl çalışılır
186 okumak için bir dosya açma
Yazmak için dosya açma 188
Ders 12.2. İki boyutlu bir sayı dizisini bir metin dosyasına kaydetme 192
Sayısal Verileri Bir Metin Dosyasına Kaydetme 192
Bir metin dosyasına sayı dizisini kaydetme 192
Bir dosyanın sonuna bilgi ekleme 196
Sonuçlar 197
Güvenlik soruları 197
Konu 13. Grafik çalışma modu. Grafik 199 modülü
Ders 13.1. Grafik modunu aç 200
Grafiklerle çalışmanın özellikleri 200
Video bağdaştırıcısının grafik moduna geçiş 201
Ders 13.2. Graph 203 modülünün olanaklarını keşfetmeye devam ediyoruz
Graph 203 modülünü kullanarak çizgi çizme
Graph 205 modülünü kullanarak daire çizme
Sonuçlar 206
Güvenlik soruları 207
Konu 14. Programın doğal seyrini değiştiren operatörler 208
Ders 14.1. Koşulsuz atlama operatörünü kullanma 210'a git
Ders 14.2. Bir döngünün akışını değiştiren ifadeler 213
break ifadesi 213
devam ifadesi 214
Sonuçlar 215
Güvenlik soruları 215
Konu 15. Verilerin Gruplandırılması: Kayıtlar 216
Ders 15.1. Veri türü kaydının açıklaması 218
Ders 15.2. 220 kayıtları ne zaman ve nasıl akıllıca kullanılır?
Kendi Veri Türünüzü Oluşturma - Giriş 220
Kayıt dizisi 220
221 ekleme operatörü ile
Veri Yapısı Seçim Örneği 223
Giriş kayıtları 224
Sonuçlar 225
Kontrol soruları ve görevleri 225
Konu 16. Dinamik değişkenler 226
Ders 16.1. Bellek ayırma 227
Ders 16.2. Adresler 229
Ders 16.3. İşaretçiler 230
Bireysel değişkenlere işaretçiler 230
232 değişken bloklarına işaretçiler
Ders 16.4. Dinamik Bellek Tahsisi 232
Yeni ve Bertaraf 233
Diziler için Dinamik Bellek Tahsisi 235
GetMem ve FreeMem 236
Dinamik Olarak Oluşturulan Bir Dizinin Öğelerine Erişim 237
Değişken uzunluk dizisi 238
Bulgular 241
Güvenlik soruları 242
Konu 17. Dinamik veri yapıları. Yığın 244
Ders 17.1. 245 veri tipini tanımlayalım
Ders 17.2. Yığın oluşturma ve temel yığın işlemleri 247
Yığına Öğe Ekleme (Push) 248
Yığından bir öğe çıkarma (Pop) 251
Yığının boş olup olmadığını kontrol etme (StacklsEmpty) 252
Ders 17.3. Yığın kullanımı 253
Dizi 255 ile Yığın Programlama
Sonuç 256
Kontrol soruları ve görevleri 256
Konu 18. Dinamik veri yapıları. Sıra 258
Ders 18.1. Çalışma prensibi ve veri tipinin açıklaması 259
Ders 18.2. Temel Kuyruk İşlemleri 261
Kuyruğa öğe ekleme (EnQueue) 261
Bir Kuyruktan Öğe Alma (DeQueue) 263
Boşluk için kuyruk kontrolü (QueuelsEmpty) 264
Ders 18.3. Kuyruk 264'ü Kullanma
Dizi 267 ile Kuyruk Programlama
Sonuçlar 269
Güvenlik soruları 269
Konu 19. Dinamik veri yapıları. Tek yönlü liste 270
Ders 19.1. Veri türünün tanımı ve nasıl çalıştığı 271
Ders 19.2. Tek Bağlantılı Liste ile Temel İşlemler 272
Bir listenin tüm öğelerini sırayla görüntüleme 272
Bir öğeyi listeye yerleştirme 273
Listeden bir öğeyi kaldırma 275
Ders 19.3. Liste İşleme 276
Neden tek bağlantılı bir liste kullanıyorsunuz 278
Sonuçlar 280
Güvenlik soruları 280
Konu 20. Özyineleme 281
Ders 20.1. İlke 282 açıklaması
Ders 20.2. Hanoi Kuleleri 285
Ders 20.3. Yinelenen bir alt programın yapısı 287
Ders 20.4. Yinelenmeyen bir sorunun yinelenen çözümüne bir örnek 288
Ders 20.5. Yinelenen bir sorunun yinelenen çözümüne bir örnek 289
Sonuçlar 291
Güvenlik soruları 291
Ek 1 Akış Şeması Öğeleri 292
Ek 2 Görevler 295
Tamsayı. Tanım. Giriş. Çözüm. İşlemler 296
Gerçek. Tanım. Giriş. Çözüm. İşlemler ve işlevler 296
Gerçek. İfade yazma ve değerlendirme 297
Karakter. Tanım. Giriş. Çözüm. Fonksiyonlar 298
Boole. İfade yazma 298
Boole. İfade değerlendirmesi 299
eğer. Basit karşılaştırmalar. Min/maks/ortalama 300
eğer. 300 parametreli denklemler ve eşitsizlikler
için. 300 transfer
için. Döngü Sayacı Hesaplamaları 301
için. Karşılaştırmalı kaba kuvvet 302
while-tekrar. Ara 302
while-tekrar. 303 sıra
Grafik Sanatları. Düz 303
Grafik Sanatları. Daireler 304
Diziler. Doldurma, çekme, miktar/miktar 305
Diziler. permütasyon 305
Diziler. Ara 306
Diziler. 307 çek
Diziler. Yüksek 307
307 parametresi olmayan alt programlar
Teller. Bölüm I 308
Teller. Bölüm II 309
Parametreli alt programlar. Bölüm I 309
Parametreli alt programlar. Bölüm II 310
Parametreli alt programlar. Bölüm III 310
Dosyalar 311
Tek yönlü liste 312
özyineleme 313

Kitabın ilk baskısının yayınlanmasından sonra, meslektaşlarımız ve öğrencilerimiz, ilk baskıya en çok çalışılan ve talep edilen veri yapıları hakkında bilgi ekleme talebiyle bizimle giderek daha sık iletişime geçmeye başladılar. Bu baskıya kayıtlar, dinamik değişkenler, yığın, kuyruk ve listeler hakkında birkaç bölüm ekledik. Ayrıca programlamadaki en zor konulardan biri olan özyinelemeli algoritmalar oluşturmaya çalıştık.
Uygulamada, çeşitli konular için birçok seçenek içeren ödev koleksiyonunu bırakmaya karar verdik. Bunun yerine, uygulamaya 5-8 görevlik bloklar halinde düzenlenmiş çok sayıda tematik görev yerleştirdik. Her bloktaki görevler basitten karmaşığa doğru sıralanmıştır. Bunları derslerimizde teorik materyali pekiştirirken (bir ders - bir blok) uygulamalı dersler düzenlemek için kullanıyoruz.
Yazarlar, en iyi öğrencilerinden biri olan St. Petersburg Devlet Havacılık İdaresi Üniversitesi Bilgi Sistemleri Güvenliği Bölümü'nden Doçent Doktora'ya en derin şükranlarını sunarlar. Evgeny Mihayloviç Linsky'ye kitabın ikinci baskısındaki çalışmaları sırasında desteği, birçok faydalı ipucu ve büyük yardımı için teşekkür ederiz.