Dil cc. Herhangi bir problem alanındaki bir problemi çözmek için, izin veren komutların olması gereken bir program yazmak gerekir.

  • 11.05.2019

TEMELLER C

Tanıtım

Bölüm 1. C dilinin temelleri

1.1. Alfabe

1.2. Temel C yapıları

1.3. Giriş çıkış.

1.3.1. Çıktı

1.4. Temel tipler C verisi

1.4.1. tanımlayıcılar.

1.4.2. Yazılan sabitler

1.4.3. Değişkenler

1.4.3.1. Tamsayı türleri

1.4.3.2. Gerçek türleri

1.4.3.3. Karakter türleri

1.4.4. Veri türü dizesi

1.4.5. Yapılar

1.4.5.1. diziler

1.4.5.2. Kayıtlar

1.4.6 Değişkenlerin kapsamı ve ömrü

1.5. Temel Operatörler

1.6. önişlemci

1.7. Programlar. Fonksiyonlar

1.8. işaretçiler

1.9. İşaretçiler ve İşlevler

1.10. Dosyalar

1.11. İlave fonksiyonlar Si

1.11.1. Dönüştürme işlevleri

Dönüştürme işlevleri karakter dizileri: atoi (), atof (). 37'ler.

1.11.3. Dizelerle çalışan işlevler

1.12. C programlamanın özellikleri

1.12.1. Modüller. Çok modlu programlama

1.12.2. Bellek modelleri

1.12.3. DOS ve Windows Programlama

1.12.4. Assembly dilini C programlarında kullanmak

Bölüm 2. C dilini kullanma örnekleri

2.1. sıralama

2.2. özyinelemeli algoritmalar

2.3. "Hanoi Kuleleri" yarışması

Bölüm 3. C++ Temelleri

3.1. C++ ve C arasındaki farklar

3.2. C++ ile Nesne Yönelimli Programlama

3.2.1. sınıflar

3.2.2. Aşırı yükleme fonksiyonları

3.2.3. yapıcılar

3.2.4. Yıkıcılar

3.2.5. parametreli yapıcılar

3.2.6. Mirasa giriş

3.2.7. Sanal fonksiyonlar

3.2.8. Nesne işaretçileri

Bölüm 4. C++ Builder Programlamanın Temelleri

4.1. C++ Builder'ın Özellikleri

4.2. VCL bileşenleri. Özellikler. Gelişmeler. yöntemler

4.2.1. Bileşen türleri

4.2.2. VCL sınıf hiyerarşisi

4.3. C++ Builder'da dosya yapısı

4.4. Görsel Bileşenler (VCL)

4.5. Programlar, olay yönetimi, istisnalar

4.6. Windows programları için hata ayıklama stratejisi

4.7. Program Geliştirmede VCL Bileşenlerini Kullanma

4.8. Grafik bileşenleri.

4.9. Multimedya

4.10. hareketli grafikler

4.11. nesne teknolojisi OLE2

4.12. DLL'ler.

4.13. Görsel bileşenlerin geliştirilmesi

4.14. CGI Programlamaya Giriş

3.15. Veritabanı programlama.

3.16. Paketler

Çözüm

Edebiyat

Ek N1

Tanıtım

1804'te Fransız mucit Joseph Marie Jacquard, "yazılım kontrollü" bir dokuma tezgahı yarattı. Makineyi kontrol etmek için birbirine bant şeklinde bağlanmış delikli kartlar kullanıldı. Makinenin "okuma cihazının" ahşap pimleri, delikli karttaki deliklerin konumuna göre, istenen deseni elde etmek için hangi ipliklerin kaldırılması ve hangilerinin indirilmesi gerektiğini belirledi.

1890'da Amerika Birleşik Devletleri'nde, mucit Herman Hollerith elektromekanik bir hesaplama makinesi geliştirdi - ABD nüfus sayımının sonuçlarıyla tabloları derlemek için delikli kartlarla kontrol edilen bir tablolayıcı kullanıldı. Hollerith'in tablolama firması daha sonra International Business Machines Corporation (IBM) oldu.

1936'da Cambridge Üniversitesi'nde 25 yaşındaki bir öğrenci olan Alan Turing, çözülebilir herhangi bir matematiksel veya mantıksal problemi çözmek için uygun varsayımsal bir cihaz ("Turing makinesi") olarak kabul eden "Hesaplanabilir Sayılar Üzerine" bir makale yayınladı - prototipi. programlanabilir bir bilgisayar.

1941'de Alman mühendis Konrad Zuse, çalışan bir Z3 bilgisayarı yaptı. İkili sistem hesaplaşma. Programlar delikli teybe kaydedildi.

1945'te fizikçi John Mauchly ve mühendis Prosper Eckert, tamamen elektronik araba"Enik". Programı ayarlamak için binlerce anahtarı manuel olarak ayarlamak ve kontak panelinin soketlerine yüzlerce fiş takmak gerekiyordu.

1 Haziran 1945'te, Macar-Amerikalı matematikçi John von Neumann tarafından Edvak Makinesi Üzerine Bir Ön Rapor, bilgisayar talimatlarını kendi dahili belleğinde saklama kavramını içeren bir rapor gönderildi.

21 Haziran 1948'de Manchester Üniversitesi'nde (İngiltere), Mark-1 makinesinde, makinenin belleğinde depolanan dünyanın ilk programı yürütüldü - belirli bir sayının en büyük faktörünün aranması.

1949'da Maurice Wilkes liderliğinde Edsack bilgisayarı oluşturuldu. Edsak'ın tasarımcıları, her makine talimatının bir büyük harfle temsil edildiği ve alt rutinlerin bellekte belirli bir yere ayarlanmasını otomatikleştirdiği bir anımsatıcı notasyon sistemi getirdi. Maurice Wilkes, anımsatıcı diyagramı ve alt program kitaplığını montaj sistemi olarak adlandırdı - bu nedenle "birleştirici" kelimesi.

1949'da Philadelphia'da (ABD), John Mauchly'nin önderliğinde, programlama dilinin ilk ilkel tercümanı olan "Kısa Kod" oluşturuldu.

1951'de Amerikalı programcı Grace Hopper, Remington Rand firmasında ilk yayın programını geliştirdi. Hopper buna derleyici dedi.

1957 yılında, FORmula TRANslation (FORmula TRANslation), New York'ta Madison Avenue'deki IBM genel merkezinin 20. katında doğdu. Geliştirme ekibi, 30 yaşındaki matematikçi John Backus tarafından yönetildi. Fortran, "gerçek" üst düzey dillerin ilkidir.

1972'de 31 yaşında bir uzman sistem programlama firmadan Bell laboratuvarları Dennis Ritchie, C programlama dilini geliştirdi.

1984 yılında Fransız matematikçi ve saksofoncu Philippe Kahn, Borland International'ı kurdu.

C, başlangıçta Unix işletim sistemi için bir programlama dili olarak tasarlandı.

Kısa süre sonra uygulama yapan programcılara yayılmaya başladı. 70'lerin sonlarında, CP / M işletim sistemi için Mikrobilgisayarlar için C çevirmenleri geliştirildi.

IBM PC'nin ortaya çıkmasından sonra, C derleyicileri ortaya çıkmaya başladı (şimdi bu bilgisayar için 20'den fazla var).

1983 yılında Amerikan Standartlar Enstitüsü (ANSI), C dili standardını oluşturmak için X3J11 Teknik Komitesini kurdu. Borland'ın piyasaya çıkan C++ dili, standardın gereksinimlerinin çoğuna uymaktadır.

Özünde C, bir işlev dilidir. C programlama, fonksiyonlar yazılarak ve kütüphane fonksiyonları çağırılarak gerçekleştirilir. Çoğu fonksiyon, diğer operatörlerde kullanılabilecek bazı değerler döndürür.

C dilinin birçok avantajı arasında başlıcaları not edilmelidir:


Çok yönlülük (neredeyse tüm mevcut bilgisayarlarda kullanılır);

Kodun kompaktlığı ve çok yönlülüğü;

Program yürütme hızı;

Dil esnekliği;

Yüksek yapılandırılmışlık.


Bölüm 1. C dilinin temelleri

1.1. Alfabe

Dil alfabesi aşağıdaki karakterlerden oluşur:

Latince büyük harf ve küçük harf A'dan Z'ye harfler, a-z ve alt çizgi. 0'dan 9'a kadar rakamlar. Özel karakterler + - * / = > < . ; , : { } () # $.

Boşluk, sekme, satır besleme, satır başı karakterlerine boşluk denir.

Bir C++ programı, kaynak metnini temsil eden bir ACSII karakter dizisidir.

1.2. Temel C yapıları

Düşünmek basit program ekrana "Bilgisayardan selamlar" ifadesini yazdırma

#Dahil etmek

// program

printf ("Bilgisayardan selamlar\ n");

Programın yapısını düşünün

#include komutu programımızda stdio.h dosyasını içerir. Dosya, G / Ç işlevleri hakkında bilgi içerir.

stdio.h adlı bir dosya G/Ç bilgilerini içerir.

# sembolü, programı çevirmeden önce, içindeki stdio.h dosyasındaki işlevleri dahil etmenin gerekli olduğunu gösterir - bu, bazı işlemleri gerçekleştiren sözde ön işlemedir. ön işleme Derlemeden önce programın metni.

Ana () satırı, programın her zaman başladığı işlevin adını içerir. Boş parantezler bunun bir fonksiyon olduğunu gösterir, ancak parametresi yoktur.

// sembollerini yorumlar takip eder (bir satır için), ( / * ve * / arasındaki sembollere yorum da denir).

diş telleri() bir programın veya işlevin gövdesinin başlangıcını ve sonunu işaretleyin. Ayrıca birden çok program ifadesini bir blokta birleştirmek için kullanılırlar.

printf ("Bilgisayardan selamlar \ n") satırı, standart C yazdırma işlevini içerir. Parantez içine alınmış karakter dizisi (argüman) iletilecek bilgidir. printf fonksiyonları() bizim ana işlev ana (). İşlev tamamlandığında, kontrol geri dönecektir. orijinal program... \ n karakteri - bir satır beslemesini belirtir Yeni hat yazdırdıktan sonra.

Aşağıdaki örneği düşünün - metreyi santimetreye dönüştürmek için bir program yazın.

#Dahil etmek

#Dahil etmek

printf ("M? \ n");

printf ("% d M, % d cm \ n içerir", I, J);

Bu program iki tamsayı değişkeni I ve J tanımlar.

scanf işlevi tanıtıldı ("% d", & I); hangi girmenizi sağlar ondalık sayı klavyeden ve değeri I değişkenine atayın, ardından J = 100 * I; Hesaplama devam ediyor 4.

Sonraki satır printf ("% d M, % d cm \ n içerir", I, J); ifadesini yazdırır. İlk %d (d bir tamsayı değişkendir) I değeri ile değiştirilir, ikinci %d ise J değeri ile değiştirilir.

getch () işlevi, ekrandaki görüntüyü dondurmanıza izin verir ve işi tamamlamak için herhangi bir karakter gerektirir.

Başka bir örneğe bakalım. Bir fonksiyon yazalım ve programımızdan çağıralım.

#Dahil etmek

#Dahil etmek

printf ("Beni mi aradın? \ n");

printf ("Yönetici işlevini çağırıyorum. \ n");

printf ("Evet. Hangi öğrencinin uyuduğunu görün ve uyandırın. \ n");

C++ programlama dilinin temelleri ve incelikleri. pratik görevler ve testler. Programlamayı öğrenmek ister misin? O zaman doğru yerdesin. Programlama deneyiminiz olsun ya da olmasın, bu eğitimler farklı geliştirme ortamlarında C++ programları oluşturmaya, derlemeye ve hata ayıklamaya başlamanıza yardımcı olacaktır: Görsel stüdyo, Kod :: Bloklar, Xcode, Eclipse ve diğer IDE'ler. Bol örnek ve ayrıntılı açıklamalar... Hem yeni başlayanlar (aptaller) hem de daha gelişmiş olanlar için mükemmeldir. Her şey en baştan en ince ayrıntısına kadar anlatılıyor. Bu (200+) öğreticiler, yalnızca C++'da değil, diğer dillerde de programlamayı anlamada size iyi bir temel / temel sağlayacaktır. Ve tamamen ücretsiz!

Tek ihtiyacın olan bir arzu, öğrenme arzusu. Burada bulabileceğiniz diğer her şey.

+20 karma repost için ve teşekkürler!

Bölüm # 0. Tanıtım. işin başlangıcı

Bölüm 1. C++ Temelleri

Bölüm 2. C++'da Değişkenler ve Temel Veri Tipleri

Bölüm 3. C++'da Operatörler

Bölüm 4. C++'da kapsam ve diğer değişken türleri

Bölüm: Otomasyon ve Bilgi Teknolojileri

TEMELLER C

Tanıtım

Bölüm 1. C dilinin temelleri

1.1. Alfabe

1.2. Temel C yapıları

1.3. Giriş çıkış.

1.3.1. Çıktı

1.4. C dilinin temel veri türleri

1.4.1. tanımlayıcılar.

1.4.2. Yazılan sabitler

1.4.3. Değişkenler

1.4.3.1. Tamsayı türleri

1.4.3.2. Gerçek türleri

1.4.3.3. Karakter türleri

1.4.4. Veri türü dizesi

1.4.5. Yapılar

1.4.5.1. diziler

1.4.5.2. Kayıtlar

1.4.6 Değişkenlerin kapsamı ve ömrü

1.5. Temel Operatörler

1.6. önişlemci

1.7. Programlar. Fonksiyonlar

1.8. işaretçiler

1.9. İşaretçiler ve İşlevler

1.10. Dosyalar

1.11. Ek C fonksiyonları

1.11.1. Dönüştürme işlevleri

Karakter dizilerini dönüştürmek için işlevler: atoi (), atof (). 37'ler.

1.11.3. Dizelerle çalışan işlevler

1.12. C programlamanın özellikleri

1.12.1. Modüller. Çok modlu programlama

1.12.2. Bellek modelleri

1.12.3. DOS ve Windows Programlama

1.12.4. Assembly dilini C programlarında kullanmak

Bölüm 2. C dilini kullanma örnekleri

2.1. sıralama

2.2. özyinelemeli algoritmalar

2.3. "Hanoi Kuleleri" yarışması

Bölüm 3. C++ Temelleri

3.1. C++ ve C arasındaki farklar

3.2. C++ ile Nesne Yönelimli Programlama

3.2.1. sınıflar

3.2.2. Aşırı yükleme fonksiyonları

3.2.3. yapıcılar

3.2.4. Yıkıcılar

3.2.5. parametreli yapıcılar

3.2.6. Mirasa giriş

3.2.7. Sanal fonksiyonlar

3.2.8. Nesne işaretçileri

Bölüm 4. C++ Builder Programlamanın Temelleri

4.1. C++ Builder'ın Özellikleri

4.2. VCL bileşenleri. Özellikler. Gelişmeler. yöntemler

4.2.1. Bileşen türleri

4.2.2. VCL sınıf hiyerarşisi

4.3. C++ Builder'da dosya yapısı

4.4. Görsel Bileşenler (VCL)

4.5. Programlar, olay yönetimi, istisnalar

4.6. Windows programları için hata ayıklama stratejisi

4.7. Program Geliştirmede VCL Bileşenlerini Kullanma

4.8. Grafik bileşenleri.

4.9. Multimedya

4.10. hareketli grafikler

4.11. OLE2 Nesne Teknolojisi

4.12. DLL'ler.

4.13. Görsel bileşenlerin geliştirilmesi

4.14. CGI Programlamaya Giriş

3.15. Veritabanı programlama.

3.16. Paketler

Çözüm

Edebiyat

Ek N1


Tanıtım

1804'te Fransız mucit Joseph Marie Jacquard "yazılım kontrollü" bir dokuma tezgahı yarattı. Makineyi kontrol etmek için birbirine bant şeklinde bağlanmış delikli kartlar kullanıldı. Makinenin "okuma cihazının" ahşap pimleri, delikli karttaki deliklerin konumuna göre, istenen deseni elde etmek için hangi ipliklerin kaldırılması ve hangilerinin indirilmesi gerektiğini belirledi.

1890'da Amerika Birleşik Devletleri'nde, mucit Herman Hollerith elektromekanik bir hesaplama makinesi geliştirdi - ABD nüfus sayımının sonuçlarıyla tabloları derlemek için delikli kartlarla kontrol edilen bir tablolayıcı kullanıldı. Hollerith'in tablolama firması daha sonra International Business Machines Corporation (IBM) oldu.

1936'da Cambridge Üniversitesi'nde 25 yaşındaki bir öğrenci olan Alan Turing, çözülebilir herhangi bir matematiksel veya mantıksal problemi çözmek için uygun varsayımsal bir cihaz ("Turing makinesi") olarak kabul eden "Hesaplanabilir Sayılar Üzerine" bir makale yayınladı - prototipi. programlanabilir bir bilgisayar.

1941'de Alman mühendis Konrad Zuse, ikili sayı sistemini kullanan çalışan bir Z3 bilgisayarı yaptı. Programlar delikli teybe kaydedildi.

1945'te fizikçi John Mauchly ve mühendis Prosper Eckert, Pennsylvania Üniversitesi'ndeki (ABD) Teknoloji Enstitüsü'nde tamamen elektronik bir Eniak makinesi yaptı. Programı ayarlamak için binlerce anahtarı manuel olarak ayarlamak ve kontak panelinin soketlerine yüzlerce fiş takmak gerekiyordu.

1 Haziran 1945'te, Macar-Amerikalı matematikçi John von Neumann tarafından Edvak Makinesi Üzerine Bir Ön Rapor, bilgisayar talimatlarını kendi dahili belleğinde saklama kavramını içeren bir rapor gönderildi.

21 Haziran 1948'de Manchester Üniversitesi'nde (İngiltere), Mark-1 makinesinde, makinenin belleğinde depolanan dünyanın ilk programı yürütüldü - belirli bir sayının en büyük faktörünün aranması.

1949'da Maurice Wilkes liderliğinde Edsack bilgisayarı oluşturuldu. Edsak'ın tasarımcıları, her makine talimatının bir büyük harfle temsil edildiği ve alt rutinlerin bellekte belirli bir yere ayarlanmasını otomatikleştirdiği bir anımsatıcı notasyon sistemi tanıttı. Maurice Wilkes, anımsatıcı diyagramı ve alt program kitaplığını montaj sistemi olarak adlandırdı - bu nedenle "birleştirici" kelimesi.

1949'da Philadelphia'da (ABD), John Mauchly'nin önderliğinde "Kısa Kod" oluşturuldu - programlama dilinin ilk ilkel tercümanı.

1951'de Amerikalı programcı Grace Hopper, Remington Rand firmasında ilk yayın programını geliştirdi. Hopper buna derleyici dedi.

1957 yılında, FORmula TRANslation (FORmula TRANslation), New York'ta Madison Avenue'deki IBM genel merkezinin 20. katında doğdu. Geliştirme ekibi, 30 yaşındaki matematikçi John Backus tarafından yönetildi. Fortran, "gerçek" üst düzey dillerin ilkidir.

1972'de Bell Laboratuarlarında 31 yaşındaki sistem programcısı Dennis Ritchie, C programlama dilini geliştirdi.

1984 yılında Fransız matematikçi ve saksofoncu Philippe Kahn, Borland International'ı kurdu.

C, başlangıçta Unix işletim sistemi için bir programlama dili olarak tasarlandı.

Kısa süre sonra uygulama yapan programcılara yayılmaya başladı. 70'lerin sonlarında, CP / M işletim sistemi için Mikrobilgisayarlar için C çevirmenleri geliştirildi.

IBM PC'nin ortaya çıkmasından sonra, C derleyicileri ortaya çıkmaya başladı (şimdi bu bilgisayar için 20'den fazla var).

1983 yılında Amerikan Standartlar Enstitüsü (ANSI), C dili standardını oluşturmak için X3J11 Teknik Komitesini kurdu. Borland'ın piyasaya çıkan C++ dili, standardın gereksinimlerinin çoğuna uymaktadır.

Özünde C, bir işlev dilidir. C programlama, fonksiyonlar yazılarak ve kütüphane fonksiyonları çağırılarak gerçekleştirilir. Çoğu işlev, diğer operatörlerde kullanılabilecek bazı değerler döndürür.

C dilinin birçok avantajı arasında başlıcaları not edilmelidir:


Çok yönlülük (neredeyse tüm mevcut bilgisayarlarda kullanılır);

Kodun kompaktlığı ve çok yönlülüğü;

Program yürütme hızı;

Dil esnekliği;

Yüksek yapılandırılmışlık.


Bölüm 1. C dilinin temelleri

1.1. Alfabe

Dil alfabesi aşağıdaki karakterlerden oluşur:

Büyük harf ve küçük harf Edebiyat A-Z, a-z ve alt çizgi. 0'dan 9'a kadar rakamlar Özel karakterler + - * / =>

Boşluk, sekme, satır besleme, satır başı karakterlerine boşluk denir.

Bir C++ programı, kaynak metnini temsil eden bir ACSII karakter dizisidir.

1.2. Temel C yapıları

Ekrana "Bilgisayardan merhaba" ifadesini yazdırmak için basit bir program düşünün

// program

printf ("Bilgisayardan selamlar");

Programın yapısını düşünün

C - programı
# Önişlemci yönergeleri
Ana
operatörler
İşlev 1 ()
operatörler
İşlev n ()
operatörler
Açıklamalar
Atamalar
Fonksiyonlar
Yönetmek
Boş

#include komutu programımızda stdio.h dosyasını içerir. Dosya, G / Ç işlevleri hakkında bilgi içerir.

stdio.h adlı bir dosya G/Ç bilgilerini içerir.

# sembolü, programı çevirmeden önce, stdio.h dosyasındaki işlevlerin dahil edilmesi gerektiğini gösterir - bu, derlemeden önce program metninin bazı ön işlemlerini gerçekleştiren ön işleme işlemi olarak adlandırılır.

Ana () satırı, programın her zaman başladığı işlevin adını içerir. Boş parantezler bunun bir fonksiyon olduğunu gösterir, ancak parametresi yoktur.

// sembollerini yorumlar takip eder (bir satır için), ( / * ve * / arasındaki sembollere yorum da denir).

Kıvrımlı parantezler (), bir programın veya işlevin gövdesinin başlangıcını ve sonunu işaretler. Ayrıca birden çok program ifadesini bir blokta birleştirmek için kullanılırlar.

printf ("Bilgisayardan selamlar") satırı, standart C yazdırma işlevini içerir. Parantez içine alınmış karakter dizisi (argüman), main () ana işlevimizden printf () öğesine iletilen bilgidir. İşlev tamamlandığında, kontrol orijinal programa geri dönecektir. Sembol - yazdırıldıktan sonra yeni bir satırda satır beslemesini belirtir.

Aşağıdaki örneği düşünün - metreyi santimetreye dönüştürmek için bir program yazın.

printf ("% d M, % d cm içerir", I, J);

Bu program iki tamsayı değişkeni I ve J tanımlar.

scanf işlevi tanıtıldı ("% d", & I); bu, klavyeden bir ondalık sayı girmenize ve değeri I değişkenine atamanıza, ardından J = 100 * I komutuyla; Hesaplama devam ediyor 4.

Sonraki satır printf ("% d M, % d cm içerir", I, J); ifadesini yazdırır. İlk %d (d bir tamsayı değişkendir) I değeri ile değiştirilir, ikinci %d ise J değeri ile değiştirilir.

getch () işlevi, ekrandaki görüntüyü dondurmanıza izin verir ve işi tamamlamak için herhangi bir karakter gerektirir.

Başka bir örneğe bakalım. Bir fonksiyon yazalım ve programımızdan çağıralım.

printf ("Beni mi aradın?");

printf ("Gözetmen işlevini çağırıyorum.");

printf ("Evet. Hangi öğrencinin uyuduğunu görün ve uyandırın.");

İlk olarak, süpervizör () işlevini tanımlıyoruz ve ardından süpervizör () komutunu kullanarak ana programda buna atıfta bulunuyoruz. Sonuç olarak, bir diyalog alırız:

Denetleme işlevini çağırıyorum.

Beni aradın mı?

Evet. Hangi öğrencinin uyuduğunu görün ve onları uyandırın.

1.3 G / Ç
Herhangi bir sorunu çözmek için sorun alanı Aşağıdakilere izin veren komutların olması gereken bir program yazmak gerekir:
- veri depolama için alan ayırın;

İlk verileri girin;

İlk verileri algoritmaya göre işleyin;

Baskı çıktısı.

C, bu eylemleri gerçekleştirmek için gereken işlevleri içerir. Tüm fonksiyonları örneklerle ele alacağız ve I/O fonksiyonları ile başlayacağız.

1.3.1. Çıktı

Çıktı ekrana, yazıcıya, sabit sürücüye (disketler), bağlantı noktasına yapılır. Şimdi ekran fonksiyonlarına bir göz atalım.

printf işlevi bu amaç içindir. Biçim: printf ([, arg1], ...).

Biçim bir dizedir ikili alıntı hangi ekranda görüntülenir. Yazdırmadan önce printf, argümanın belirtimlerine göre dizgedeki tüm nesneleri değiştirir. Örneğin, printf ("% d M, % d cm içerir", I, J); Biçim dizesindeki % d, bağımsız değişkenin belirtimidir.

Argüman belirtimleri bir yüzde karakteri (%) ve veri türünü belirten tek bir harfle başlar.

Spesifikasyonda kullanılan % d, bazı tam sayıların beklendiğini gösterir. Aşağıda, yaygın olarak kullanılan diğer birkaç biçim belirtimi verilmiştir:

-% d tamsayı;

-% u işaretsiz tamsayı;

-% ld uzun bir tamsayıdır;

-% p işaretçi değeri;

-% f kayan nokta sayısı;

-% e üstel biçimde kayan nokta sayısı;

-%c karakteri;

-% s dizesi;

-% x onaltılık biçimde tamsayı.

Alan genişliğini ayarlayabilirsiniz, örneğin % 6d -alan genişliği 6.

Değer, toplam alan genişliği 6 olacak şekilde sağa kaydırılarak yazdırılacaktır (öndeki boşluklar).

Gerçek sayıların formatı için, kesirli bir kısım belirtebilirsiniz, örneğin, % 8.4f - 8 genişliğinde bir alan, ondalık kısım 4.

Biçim dizesinin sonuna şu karakterleri koyabilirsiniz:

satır çevirisi;

f (biçim çevirisi veya ekran temizleme)

(sekme)

xhhh (hhh 1 ila 3 onaltılık basamak içerdiğinde, hhh ASCII karakterini ekleyin)

Çıktı için şu işlevleri kullanabilirsiniz: puts ve putchar.

Puts işlevi, dizeyi ekrana yazdırır. Örneğin:

koyar ("Merhaba öğrenci");

putchar işlevi ekrana bir karakter yazdırır.

1.3.2 Giriş

C'deki giriş, çoğunlukla klavyeden, bir dosyadan ve bir bağlantı noktasından yapılır.

scanf işlevi printf işlevine benzer. Biçimi scanf ([, arg1], ...) şeklindedir. Scanf, printf ile aynı biçim belirteçlerini kullanır. Scanf'in bir özelliği olduğuna dikkat edilmelidir: biçim dizesini izleyen argümanlar değerler değil adresler olmalıdır (karakter değişkenleri için geçerli değildir). Örneklerde daha önce, bir tamsayı girerken fonksiyonun aşağıdaki gibi yazıldığını gördük:

scanf ("% d", & a);

Scanf adreslerini geçen & -adres işlemi.

Birden çok değişkeni virgülle ayırarak girerken formatın içinde virgül kullanabilirsiniz. Örnek:

scanf ("% d, % d", & a, & b);

Şimdi girebilirsiniz, örneğin 23.56.

Birkaç kelimeden oluşan bir karakter dizisi girmenin zorlukları vardır - yalnızca ilk boşluğa kadar olan veriler girilecektir. Bu sorunu çözmek için get işlevi var.

printf ("Adın ne:");

printf ("Merhaba% s", isim);

Get işlevi, Enter tuşuna basılana kadar yazılanları okur.

C++'da I/O sadece fonksiyonlar kullanılarak değil, işlemler kullanılarak da yapılabilir. Çıkış işlemi>.

Ekran formatı: cout

Klavye giriş formatı: cin

I/O işlemlerini kullanırken iostream.h dosyasını programınıza dahil etmelisiniz.

Birkaç değerin G / Ç mümkündür (bir boşlukla ayrılmış).


1.4 C dilinin temel veri türleri

1.4.1 Tanımlayıcılar

Sabitlere, veri türlerine, değişkenlere ve işlevlere atanan adlara tanımlayıcılar denir. C, tanımlayıcı oluşturmak için aşağıdaki kurallara sahiptir: bir harf (a ... z, A ... Z) veya bir alt çizgi (_) ile başlamalı, tanımlayıcının geri kalanı harfler, alt çizgiler ve / veya rakamlar olmalıdır ( 0 ... 9 ).

1.4.2 Yazılan Sabitler

C, bir değere atanan bir ad olan sabitleri kullanır. Ad tanımlayıcı herhangi bir uzunlukta olabilir, ancak ilk 32 karakter tanınır. Tanımlayıcı bir Latin harfi veya bir alt çizgi karakteri ile başlar, sonraki karakterler sayılar, Latin harfleri ve alt çizgiler olabilir.

C derleyicisi, büyük ve küçük harfleri farklı karakterler olarak ele alır.

Yazılan sabitler şunlardır: tamsayı, kayan nokta, karakter sabitleri ve karakter dizileri.

Sabitler bir tamsayı ondalık, sekizlik veya onaltılık sayı olarak temsil edilir.

Sabitlerin tanımı const anahtar sözcüğüyle başlar, ardından tür ve değer, örneğin const int Nalog = 2 ile başlar.

1.4.3 Değişkenler

Değişken, program yürütme sırasında değeri değişebilen adlandırılmış bir değerdir. Değişken belirli bir tiptedir.


1.4.3.1 Tamsayı türleri

Tamsayılar, tamsayı türleri ile temsil edilir. tamsayı türü temsiline bağlı olan genel bir türdür işletim sistemi ve işlemci türü.

Ana tam sayı türlerini ele alalım:

Basit bir örneğe bakalım.

const int Nalog = 2;

Symma = Stavka * Nalog;

printf ("Symma naloga =% d", Symma);

Örnek, bir tamsayı türünde bir sabit ve iki değişken bildirir.

1.4.3.2 Gerçek türler

Numaraları kaydetmek için kesirli kısım gerçek tip kullanılır.

C++'da aşağıdaki temel gerçek sayı türleri vardır:

Aşağıdaki örneği düşünün.

const float Nalog = 0.7;

Symma = Stavka * Nalog;

printf ("Symma naloga =% 8.4f", Symma);

V bu örnek gerçek tip Symma değişkeni ile temsil edilir.

1.4.3.3 Karakter türleri

Karakter türü -Char bir karakter tutacak şekilde tasarlanmıştır, bu nedenle boyutu bir bayttır.

Bir örnek düşünelim:

printf ("A = %c B = %c", A, B);

printf ("C = %c", C);

Bu örnekte, A değişkenine 'D ^ değeri atanır, B değişkenine' değer atanır! ^, Ve C değişkenine '* ^ karakterinin değeri atanır.

1.4.4 Veri türü dizisi

C'de bir karakter dizisini temsil etmek için char türündeki diziler kullanılır.

Bir örneğe bakalım.

karakter A; / * uzunluk 256 karaktere kadar olabilir * /

strcpy (A, "IBM PC Pentium");

strcpy (B, "Windows 95");

strcpy(C, ""); / * değişkeni temizle * / printf ("A =% s", A);

printf ("B = %s", B);

printf ("C = %s", C);

Bu örnekte, A, B, C karakterlerinden oluşan üç karakter dizisi vardır.

Komutla, örneğin, strcpy (A, "IBM PC Pentium"); A satırı, IBM PC Pentium metnini içerir.

Bu örneğe ek olarak, dizeleri tanımlamak için bir karakter işaretçisi kullanabilirsiniz. Örnek:

msg = "Merhaba öğrenci";

Mesajın önündeki yıldız işareti, mesajın bir karaktere işaret ettiği anlamına gelir - yani. msg bir sembolün adresini saklayabilir. Ancak bu, semboller için bellek ayırmaz.

msg = "Merhaba, öğrenci" komutu, bu satırın başlangıç ​​adresini - (P karakterinin adresi) msg ​​değişkenine atar. Puts (msg), satırın sonunu belirten boş bir karakterle karşılaşana kadar karakterleri yazdırır.

1.4.5 Yapılar

Bellekte bulunan bir dizi ilgili veri bir yapıdır. C'de şu yapılar dikkate alınır: diziler, kayıtlar ve bunların kombinasyonları.

1.4.5.1 Diziler

Adlandırılmış homojen veri koleksiyonuna dizi denir. Dizinin her elemanı ayrı bir alan hafızaya sahiptir ve kendi numarasına sahiptir (sıfırdan başlayarak).

Bir örneğe bakalım.

B = 10; B = 20; B = 30;

printf ("B = %d", B);

printf ("B = %d", B);

printf ("B = %d", B);

printf ("B = %d", B);

Ele alınan örnekte, dört tamsayı öğesinden oluşan bir B dizisi tanımlanmıştır. Dizi elemanları, sıradan değişkenlerde olduğu gibi manipüle edilebilir.

var çok boyutlu diziler, Örneğin:

Dizi A -iki boyutlu dizi(dört satır ve üç sütundan oluşur):

Dizi A, dört boyutlu bir dizidir.

İki boyutlu bir diziyle çalışmanın bir örneğini ele alalım.

B = 1.2; B = 1.3;

printf ("B = %4.2f B = %4.2f B = %4.2f", B, B, B);

printf ("B = %4.2f B = %4.2f B = %4.2f", B, B, B);

1.4.5.2 Kayıtlar

Dizilerden farklı olarak, bir kayıt, çeşitli türlerdeki verileri saklamanıza izin verir. Yazma, struct anahtar sözcüğünden sonra başlar. Bir örnek düşünün - kayıt, öğrencilerle ilgili bilgileri depolar: soyadı, doğum yılı, grup numarası.

typedef yapı A (

strcpy (B.Fio, "Ivanow G.I."); B. Tanrı = 1977;

printf ("Fio =% s", B.Fio);

printf ("Tanrı =% d", B.Tanrı);

Ele alınan örnekte, kayıt aşağıdaki yapıya sahiptir:

struct A (/ * Bir kayıt adı) * /

karakter Fio; / * 1 kayıt alanı * /

int Tanrı; / * 2 kayıt alanı * /

typedef anahtarı yapılara bir isim verir.

Örnek aşağıdaki gibi yeniden yazılabilir.

typedef yapısı (

strcpy (B.Fio, "Ivanow G.I.");

printf ("Fio =% s", B.Fio);

printf ("Tanrı =% d", B.Tanrı);

printf ("Gruppa =% d", B.Gruppa);

Örnekte, bir kaydı ele aldık, ancak gerçek hayatta bir grupta tek bir öğrenci olamaz, bu nedenle diziyi ve kaydı birleştirebilir ve bir dizi kayıt oluşturabiliriz. Bir örneğe bakalım.

typedef yapı A (

WGruppa.Tanrı = 1977;

WGruppa.Gruppa = 384;

WGruppa.Tanrı = 1978;

WGruppa.Gruppa = 384;

printf ("Fio2 =% s", WGruppa.Fio);

printf ("Tanrı2 =% d", WGruppa.Tanrı);

printf ("Gruppa2 =% d", WGruppa.Gruppa);

Başlangıçta, yapı A'yı tanımladık ve daha sonra WGruppa yapısını 12 yapı B girişinden oluşan bir dizi olarak bildirirken kullandık.

Şimdi adresleme için dizi elemanının numarasını ve alan adını belirtmeliyiz.

Bir kayıt başka bir kayıt içerdiğinde, örneğin yukarıda tartışılan öğrenci kaydına bir adres eklemek gibi seçenekler vardır. Örnek.

typedef struct Adres (

char Street_Nd_Kw; );

typedef yapı A (

Adres D_addr; );

strcpy (WGruppa.Fio, "Ivanow G.I.");

WGruppa.Tanrı = 1977;

WGruppa.Gruppa = 384;

strcpy (WGruppa.D_addr.City, "Shadrinsk"); strcpy (WGruppa.D_addr.Street_Nd_Kw, "Lenina 10 kw.1");

strcpy (WGruppa.Fio, "Petrow R.G.");

WGruppa.Tanrı = 1978;

WGruppa.Gruppa = 384;

strcpy (WGruppa.D_addr.City, "Kataisk"); strcpy (WGruppa.D_addr.Street_Nd_Kw, "Akulowa 1 kw.2");

printf ("Fio1 =% s", WGruppa.Fio);

printf ("Tanrı1 =% d", WGruppa.Tanrı);

printf ("Gruppa1 =% d", WGruppa.Gruppa);

printf ("Şehir =% s", WGruppa.D_addr.City);

printf ("Fio2 =% s", WGruppa.Fio);

printf ("Tanrı2 =% d", WGruppa.Tanrı);

printf ("Gruppa2 =% d", WGruppa.Gruppa);

printf ("Şehir =% s", WGruppa.D_addr.City);

printf ("Sokak =% s", WGruppa.D_addr.Street_Nd_Kw);

1.4.6 Değişkenlerin kapsamı ve ömrü

Kapsamlarına göre C değişkenleri üç gruba ayrılabilir:

1. Değişken, programın tüm modüllerinde (dosyalarında) tanımlanır. Böyle bir değişken, extern anahtar sözcüğü kullanılarak tanımlanır. Bu değişken programdaki tüm noktalarda görünür olacaktır. Böyle bir değişken tüm program için globaldir.

2. Tüm fonksiyonların metinlerinden önce modüllerden (dosya) birinde tanımlanan bir değişken. Böyle bir değişken için global olacak bu modülün, yani bu modüldeki tüm noktalarda kullanılabilir.

3. Verilen fonksiyonda tanımlanan değişken. Bu değişken sadece bu fonksiyon içinde kullanılabilir. Bu değişkeni yerel olarak adlandıracağız.

Ömürlerine göre, tüm değişkenler iki gruba ayrılabilir:

1.Programın çalışması sırasında yaşayan değişkenler.

2. Fonksiyondan çıktıktan sonra değişkenler yok edilir.

Global değişkenler, yaşam süresi açısından ilk tiptedir. Fonksiyondan çıkıldığında yerel değişkenler yok edilir. Yerel bir değişkeni uzun ömürlü yapmak istediğimizde statik kelimesi kullanılır. Bu tip yerel değişkenler, fonksiyonun ilk çağrıldığı andan programın sonuna kadar yaşar. Ancak, görünürlük açısından bu değişkenler yerel kalır. Statik int i = 0; Değişkenin, fonksiyona ilk girişte sıfır olarak başlatıldığı, ancak fonksiyona sonraki girişlerde, üzerinde gerçekleştirilen eylemlere bağlı olarak değerinin kaydedildiği anlamına gelir.

Modern C derleyicileri, programı performansını mümkün olduğunca optimize edecek şekilde çevirir. Bir optimizasyon tekniği, değişkenleri mümkün olduğunda bellek konumları yerine kayıtlarda depolamaktır. Belirli bir değişkenin kayıtlarda saklanmasını yasaklamak istediğiniz durumlarda, volatile değiştiricisi kullanılır. Sonuç olarak değişkenin değiştirilebileceği varsayılırsa böyle bir ihtiyaç ortaya çıkabilir. dış etki(örneğin kesintiler).

Ve son bir açıklama. Dinamik olarak tahsis edilen hafıza, onu nereye tahsis ederseniz edin, siz onu serbest bırakana kadar yaşar.

1.5 Temel operatörler

Atama işlemi.

en genel operasyon bir atamadır, örneğin c = a / b. C'de atama eşittir işareti = ile gösterilir, burada eşittir işaretinin sağındaki değer soldaki değişkene atanır. Sıralı atamaları kullanmak da mümkündür, örneğin: c = a = b.

Aritmetik operatörler.

C çalışır aşağıdaki gruplar Aritmetik işlemler:

1.İkili: toplama (+), çıkarma (-), çarpma (*), bölme (/), tamsayı bölümü(%) (için int türünde kalanını almak).

2.Tekli: tekli artı (+), tekli eksi (-), adresleme (&), dolaylı adresleme (*), bellek tipinin boyutunu belirleme (sizeof).

3.Mantıksal: ve (&&), veya (!!), değil (! =).

4. İlişkiler:

a) eşittir (==), eşit değildir (!>);

b) küçük (), küçük veya eşit (=);

5. Artışlar (++) ve azalışlar (-). Örneğin, i ++, i = i + 1 anlamına gelir ve i--, i = i-1 anlamına gelir.

6. Bitsel işlemler - bitler üzerinde işlem yapmanızı sağlar.

7. Birleşik işlemler. Turbo-C'de, çok sayıda işlem içeren ifadeler yazmak için kısaltmalar vardır:

a = a + b; a + = b'ye indirgenir;

a = a - b; a - = b'ye indirgenir;

a = a * b; a * = b olarak kısaltılmıştır;

bir = a / b; a / = b'ye indirgenir;

a = a%b; a% = b'ye indirgenir;

8.Adres işlemleri:

1. Adres belirleme işlemi (&) 2. Adresleme işlemi (*).

& işlemi verilen değişkenin adresini döndürür; X bir int değişkeniyse, & X bu değişkenin (bellek konumu) adresidir. Öte yandan, msg, char'ın bir göstergesiyse, * msg, msg'nin gösterdiği karakterdir. Bir örnek düşünelim:

msg = "Merhaba";

printf ("X =% d & X = %p", X, & X);

printf ("* msg =% c msg =% p", * msg, msg);

İlk fonksiyonda yazdırıldığında, iki değer yazdırılır: X 7 değeri ve X adresi (derleyici tarafından atanır). İkinci işlev ayrıca iki değer yazdırır: msg (P) ile gösterilen karakter ve o karakterin adresi olan msg değeri (ayrıca derleyici tarafından atanır).

C'deki işlemlerin önceliği, matematikteki işlemlerin önceliğine karşılık gelir.

Virgül operatörü.

İçeride bulunan birden çok ifadeyi düzenlemek için parantez virgül operatörü kullanılır. Parantez içindeki ifade soldan sağa doğru değerlendirilir ve ifadenin tamamı en son değerlendirilen değere göre değerlendirilir. Örneğin:

(X = Y, Y = getir ())

X değerini Y'ye atar, ardından klavyeden girilen karakteri okur ve Y'de saklar. Sonuç olarak tüm ifadenin sonucu klavyeden girilen karakterin değeri olacaktır.

Kontrol operatörleri.

If ... operatörü, koşula bağlı olarak programın bir veya başka bir dalını yürütmeyi mümkün kılar. Operatörün sözdizimi aşağıdaki gibidir:

if koşul ifadesi1 başka bir ifade2;

Koşul, mantıksal bir doğru veya yanlış değerle sonuçlanmalıdır. Koşul doğruysa, İfade1 yürütülür. Koşul yanlışsa Expression2 yürütülür.

Operatörün kısaltılmış bir versiyonu var:

Eğer koşul ifadesi1

Örnek. Girilen sayının haftanın bir günü olup olmadığını belirleyin, yani. sayının 1 ile 7 arasında olup olmadığı.

printf ("Hata% d", A);

else printf ("OK% d", A);

A 7 yürütülürse koşul ifadesi (A 7) TRUE değerini döndürür - bu durumda printf ("Error", A); dalı yürütülür, aksi takdirde printf ("OK", A); dalı yürütülür.

If ifadesini yazmanın başka bir çeşidi daha vardır ... Örnek:

y = (t> 0)? t * 10: t-10; / * ise t> 0 y = t * 10 ise y = t-10; * /

printf ("OK% d", y);

V bu seçenek operatörün görünümü yorumlarda gösterilir.

switch ... case operatörü, bir değişkeni analiz etmek ve değerine bağlı olarak belirli eylemleri gerçekleştirmek gerektiğinde kullanılır. Bir örneğe bakalım. Latin alfabesinin harfleri klavyeden girilir. Mektuba bağlı olarak, belirli eylemleri gerçekleştirin.

durum "c": printf ("smoll% c", A); kırmak; / * bloktan çık * /

durum "G": printf ("büyük %c", A);

varsayılan: printf ("Hata% c", A);

Bu örnekte, c girilirse, printf ("smoll% c", A); büyük harfler F veya G, ardından printf ("big% c", A); yürütülür, dikkate alınan karakterlerden hiçbiri girilmezse, printf ("Error% c", A); yürütülür.

Bir dizi komutu birden çok kez tekrarlamak için do ... while ifadesini kullanabilirsiniz. Bir örneğe bakalım.

printf ("Zifra?");

printf ("Hata% d", A);

) while (! (A == 9);

printf ("OK% d", A);

Klavyeden bir sayı girilir. printf ("Error% d", A); ifadesi yürütülür. Ardından analiz gelir - sayı 9 olsun veya olmasın, değilse, döngü gövdesi tekrar yürütülür:

printf ("Zifra?");

printf ("Hata% d", A).

Sayı 9 ise, printf ("OK% d", A) yürütülür; ve döngü biter.

do ... while operatörünün ana özelliği, do ve while deyimleri arasında yer alan döngünün gövdesinin en az bir kez çalıştırılmasıdır, yani. ilk olarak, döngünün gövdesi yürütülür ve ardından koşul analiz edilir.

Böylece, söz konusu operatörün anlamı şu şekildedir: "Koşul doğru olana kadar döngünün gövdesini yürütün."

while ... operatörü, do ... while'ın aksine, önce koşulu analiz eder ve ardından döngünün gövdesini yürütür.

printf ("Zifra?");

printf ("Hata% d", A);

printf ("OK% d", A);

Bu örnekte, A değişkeni başlatılmıştır: = 0 ;. Bu yapılır çünkü önce 9 olsun ya da olmasın analiz yapılır. Değilse, döngü gövdesi yürütülür. Söz konusu operatörün anlamı aşağıdaki gibidir:

"Koşul doğruyken, döngünün gövdesini yürütün."

for ... operatörü, döngü gövdesinin kaç kez çalıştırılması gerektiği bilindiğinde kullanılır, ancak bu operatör Pascal'dan çok daha esnektir. Bir örneğe bakalım.

printf ("Zifra% d", A);

Bu örnekte A, döngü sayacının durumunu saklar. Başlangıçta A: = 1. printf ifadesi ("Zifra% d", A) yürütülür. Ayrıca, A'nın değeri bir artırılır. Analiz devam ediyor A

Bir sonraki örnekte, seçeneği göz önünde bulundurun açıklama için... değişkenin başlangıç ​​değeri son değerinden büyük olduğunda ve değişken döngü sırasında bir azalır.

(A = 5; A> = 1; A--) / * A-- için A = A-1 * /

printf ("Zifra% d", A);

for ... ifadesinin birçok modifikasyonu vardır, örneğin:

Boş ifade - zaman gecikmesi için:

; / * boş operatör * /

Farklı bir adım kullanma:

Değişkenleri değiştirme:

İki değişkenin başlatıldığı ve her birinin döngü boyunca yinelendikten sonra değiştirildiği bir örnek düşünün:

Goto ifadesi, kontrolü programın herhangi bir satırına aktarmanıza izin verir. Bunun için bir etiket kullanılır. Örnek.

label_1: / * etiket * / printf ("?");

if (A! = "y") label_1'e git; )

Döngüyü bir koşulda kesmek için break ifadesini kullanabilirsiniz. Örnek.

i (A == "y") ara;

Devam ifadesi, döngü yinelemesini kesmek ve bir sonraki yinelemeye gitmek için kullanılır. Örnek.

(A == "y") devam ederse;

printf ("% c çalışır", A);

Geri dönüş () ve çıkış () ifadeleri de programı kesmek için kullanılır.

1.6. önişlemci

C dilinin ön işlemcisi, çeviriye başlamadan önce, ana programdan ayrı olarak yazılmış program parçalarının programa dahil edilmesini sağlar.

#Yönergeyi tanımla.

#define yönergesi programın herhangi bir yerinde görünebilir ve verdiği tanım programın başından sonuna kadar geçerlidir.

#define OTWET TRI * TRI

#define OT printf ("CEVAP % d.", OTWET)

#define jd cin >> C;

Programı çalıştırdıktan sonra şunları elde edersiniz:

CEVAP 9

Programın ilk satırında, TRI bir makro tanımıdır ve 3'e eşittir, burada 3 değiştirme dizesidir.

İkinci satırda, OTWET makrosu TRI * TRI vb. bir yedek dizeye sahiptir. Her satırın üç bölümü vardır. Birincisi #define yönergesi, ardından makro tanımı. Makrolar, içlerinde boşluk içermemelidir. Son olarak, makroyu temsil eden bir dize ("yedek dize" olarak adlandırılır) vardır. Önişlemci programdaki makrolardan birini bulduğunda, onu yeni bir dizeyle değiştirir. Makro tanımından son değiştirme dizisine giden bu işleme "makro genişletme" denir.

#Yönergeyi dahil et.

Önişlemci #include yönergesini "tanıdığında", sonraki dosya adını arar ve onu geçerli programa dahil eder. Yönerge iki biçimde gelir:

#include dosya adını köşeli parantez içinde

#include "my.h" dosya adını çift tırnak içine alın

Köşeli parantezler, önişlemciye bir veya daha fazla standart sistem dizininde bir dosya aramasını söyler. Alıntılar ona önce çalışma dizinine bakmasını ve ardından "standart" yerlere bakmasını söyler.

Yönergeler: #undef, #ifdef, #else, #endif

Bu yönergeler, daha önceki tanımları askıya almanıza izin verir.

#undef yönergesi, adlandırılmış bir makronun en son tanımını geçersiz kılar.

#undef TRI / * TRI artık tanımsız * /

#define F 10 / * F, 10 olarak yeniden tanımlandı * /

#undef F / * F yine 5'tir * /

#undef F / * F artık tanımsız * /

Başka bir örneğe bakalım.

#include "otw.h" / *, OTW tanımlıysa yürütülür * /

#include "w.h" / *, OTW tanımlı değilse yürütülür * /

ifdef yönergesi, sonraki bir OTW tanımlayıcısının önişlemci tarafından belirlenmesi durumunda, sonraki tüm yönergelerin #else veya #endif'in ilk oluşumuna kadar yürütüleceğini belirtir. Programda #else olduğunda, tanımlayıcı belirtilmemişse #else ile #endif arasındaki program çalışır.

1.7 Programlar. Fonksiyonlar

Daha önce tartıştığımız gibi, bir C programı, önişlemci direktifleri ve ana anahtar kelime ile başlayan bir kök segmente sahiptir.

Programın sık kullanılan bölümleri işlevlerde vurgulanır. Her işlev ayrıca önişlemci yönergeleri ve bir ad ve parantez () ile başlar.

Bir merdiven çizim programı örneğine bakalım.

printf("| ---- |");

printf("| ---- |");

printf("| ---- |");

Şimdi bu programı Lestniza fonksiyonunu kullanarak yazalım.

printf("| ---- |");

Programdan da görebileceğiniz gibi, fonksiyon üç kez çağrılır. Bu eksikliğin üstesinden gelmek için programı yeniden ele alacağız ve resmi ve olgusal argümanları sunacağız:

Lestniza (int B) / * B resmi bir argümandır * /

printf("| ---- |");

Lestniza (3); / * 3 -gerçek argüman * /

Bu işlevde B, resmi bir argümandır (for to operatörünün son değeri). Buna belirli bir değer atamak için, ana programda çağrıldığında işleve iletilen asıl argüman kullanılır.

Bir fonksiyona birkaç parametre iletilirse, fonksiyonda yazıldığı sırayla iletilmelidirler.

Bir sayının karesini alma örneğini kullanarak değerini döndüren bir fonksiyon düşünün.

yüzer Kwadrat (yüzer A)

printf ("Kwadrat =% 8.2f", Kwadrat (B));

Örnekte görebileceğiniz gibi - fonksiyonun adı Kwadrat - bir sayının karesini hesaplar. satırında printf ("Kwadrat =% 8.2f", Kwadrat (B)); bu işlev çağrılır - değer (girilen sayı) girişe verilir ve sonuç olarak sonucu alırız - dönüş komutuyla programa döndürülen sayının karesi.

Dönüş komutu olmadan değer döndüren bir işlevle çalışmak için başka bir seçenek düşünelim.

Kwadrat (yüzer A, yüzer * B)

printf ("Kwadrat =% 8.2f", D);

1.8. işaretçiler

İşaretçi, verinin değerini değil adresini içeren bir değişkendir. İşaretçi kullanılır:

1. Bağımsız yapıların birbirleri ile haberleşmesi için.

2. İçin dinamik tahsis hafıza.

3. Erişmek için çeşitli unsurlar yapılar.

Aşağıdaki programı göz önünde bulundurun:

printf ("Doğrudan Z değeri:% d", Z);

printf ("Bir işaretçi aracılığıyla elde edilen Z değeri:% d", * Y);

printf ("Adres alarak Z adresi:% p", & Z);

printf ("Bir işaretçi aracılığıyla Z adresi:% p", Y);

Bu örnekte Y, bir tamsayı değişkenine işaretçidir ve adresini içerir. Sırasıyla &, Z değişkeninin değerinin bulunduğu adresi almanızı sağlar.Bu programda:

Z değişkeninin adresi Y'ye atanır;

Z'ye 100 tamsayı değeri atanır;

& operatörü, adresi almanızı sağlar,

Z değerinin yerleştirildiği yer.

Programın sonucu:

Doğrudan Z değeri: 100

Bir işaretçi aracılığıyla elde edilen Z değeri: 100

Adresi alarak Z adresi: 85B3: 0FDC

İşaretçi aracılığıyla Z adresi: 85B3: 0FDC

İşaretçiler, optimal bellek tahsisi için de kullanılır.

Bir dizi char tipine yönelik bir işaretçi örneğini ele alalım.

karakter * dizi; / * karakter değişkenine işaretçi * /

str = (char *) malloc (10);

strcpy (str, "Merhaba");

printf ("Dize % s", str);

İlk olarak char * str; bir işaretçi olan str türü oluşturuldu tür değişkeni char (* "işaretçi" anlamına gelir). str = (char *) malloc (10); komutuyla; str değişkeni (dize türü) için 10 bayt bellek ayırın. strcpy komutuyla (str, "Merhaba"); gerçekleştirilir - "str ile gösterilen hafıza alanına" Merhaba " karakter dizesini yazın. printf (" String is% s ", str ) komutunda str'nin gösterdiğini ekrana yazdırın. Serbest komut (str); str ile gösterilen belleği boşaltır.

Daha fazlasını düşünün karmaşık örnek işaretçi kullanarak bir kayda erişme.

); / * kaydın sonu * /

yapı Öğrenci * A;

if ((A = (Student *) malloc (sizeof (Student))) == NULL)

printf ("Bellek yetersiz");

strcpy (A.Fio, "Ivanov");

printf ("Fio1% s Gruppa% d", A.Fio, A.Gruppa);

strcpy (A.Fio, "Petrow");

printf ("Fio2% s Gruppa% d", A.Fio, A.Gruppa);

Bir yapıya dolaylı bir işaretçi almak için bir işaretçi de kullanılabilir.

Poit bir yapıya işaretçi olsun ve bu eleman yapı modeli tarafından tanımlanan bir eleman olsun. Daha sonra point-> element, başvurulacak öğeyi tanımlar. Bir önceki örneğe bakalım.

struct Öğrenci (/ * Öğrenci kaydı * /

karakter Fio; / * kayıt alanı Fio * /

int Gruppa; / * Gruppa kayıt alanı * /

); / * kaydın sonu * /

Artık yapının alanlarına çeşitli şekillerde erişebiliriz. Eşdeğer aramalar:

Student.Gruppa = 236;

nokta-> Gruppa = 236;

bir tane not edelim önemli özellik C'deki işaretçiler Çevirmen, onunla aritmetik işlemlerde işaretçinin türünü otomatik olarak dikkate alır. Örneğin, i bir tamsayı (yani iki baytlık) değişken için bir işaretçiyse, o zaman i ++ gibi bir eylem, işaretçinin bir değil iki bayt artırıldığı anlamına gelir, yani. dizideki bir sonraki değişkene veya öğeye işaret edecektir. Bu nedenle dizi indeksleri yerine bir işaretçi kullanılabilir. Örneğin, A tamsayı türünde bir diziye işaretçiyse, A [i] yerine * (A + i) yazabilirsiniz. Ayrıca, indeksler yerine işaretçiler kullanmak, derleyicinin daha kompakt ve daha hızlı kod yazmasına olanak tanır.

1.9 İşaretçiler ve İşlevler

İşaretçiler, bir işleve resmi parametreler olarak da kullanılabilir. Bir örneğe bakalım.

Takas işlevi, int verilerine işaretçiler olarak iki resmi parametre x ve y bildirir. Bu, takas işlevinin tamsayı değişkenlerinin (değerlerinin değil) adresleriyle çalıştığı anlamına gelir. Bu nedenle, çağrı sırasında adresleri işleve geçirilen veriler işlenecektir. ana () işlevi takası çağırır.

takas (int * x, int * y)

wr = * x; * x = * y; * y = wr;

printf ("Öyleydi: i = % d, j = % d", i, j);

printf ("Şimdi: i = % d, j = % d", i, j);

Programın yürütülmesinden sonra i ve j değerleri değiştirilir. İşaretçiler bellekten tasarruf etmelerine rağmen, çok daha fazla CPU zamanı kullandıklarına dikkat edilmelidir.

Böylece, C dilinin ana unsurları göz önünde bulundurulur.

1.10 Dosyalar

Dosya, bazı ortamlarda kaydedilen bir veri koleksiyonudur. Bir dosya oluşturabilir, ona veri yazabilir, verileri silebilir, verileri güncelleyebilir, veri ekleyebilirsiniz. Dosya G/Ç, doğrudan veya sıralı erişim yöntemleri kullanılarak gerçekleştirilir.

Önce sıralı erişim moduna bir göz atalım.

G / Ç arabelleğe alınır. Bu, programın arabelleğe yazdığı ve okuduğu anlamına gelir; arabellek ve dosya arasındaki veri alışverişi, arabellek dolduğunda veya dosya kapatıldığında veya programdan çıkmadan önce gerçekleşir.

printf ("Kaynak dosya");

printf ("Çıktı dosyası");

if ((in = fopen (n1, "rt")) == NULL)

printf ("Kaynak dosya açılamıyor"); dönüş 1;

if ((out = fopen (n2, "wt")) == NULL)

printf ("Çıktı dosyası açılamıyor"); dönüş 1;

while (! feof (in))

fputc (fgetc (giriş), çıkış);

Dize DOSYA * giriş, * çıkış; iki dosyaya bir işaretçi tanımlar. Dosya adı m.b. herhangi - bizim durumumuzda, kaynak dosya in, çıktı ise çıktı.

V Sonraki satır karakter n1, n2; dosya adlarını depolamak için iki değişken n1 ve n2 tanımlayın. Sonraki dört satır, girdi ve çıktı dosyasının adlarını girmenize ve bu adları n1 ve n2 değişkenlerine atamanıza izin verir. Bir dosyayla çalışmaya başlamadan önce dosyanın açık olması gerekir. Bunu yapmak için, ilk parametrenin dosya adını içerdiği ve ikincisinin - çalışma türü, örneğin "rt" - dosyayı okuduğu fopen () işlevi vardır.

in = fopen (n1, "rt" komutu, n1 değişkeninde saklanan dosyanın okuma için açılmasına neden olur ve program, in işaretçisini bu dosyaya döndürür, bu (işaretçi) sembolleri okurken kullanacağımız (işaretçi) Eğer dosya mevcut değilse, fp değeri NULL, fprintf (stderr, "Çıkış dosyası açılamıyor"); return 1; yürütülecek ve programdan çıkılacaktır.

out = fopen işlevi benzer şekilde çalışır (n2, "wt", ancak şimdi çıkış dosyası çıktıdır ve işin türü "wt" dosyaya yazıyor).

Bu komut, n2 değişkeninde yazılı ada sahip bir dosya oluşturur.

Bir dosyadan okuma fgetc (in) çağrılarak yapılır. in işaretçisiyle ilişkili dosyadan bir karakter okunur.

Fputc (fgetc (giriş), çıkış); okunan karakter dosyaya yazılır. Dosyanın tamamındaki bilgileri okumak için while (! Feof (in)) yapısını kullanın.

fputc (fgetc (giriş), çıkış);

feof (in) işlevi, son konumdaysa sıfır olmayan bir değer, aksi takdirde sıfır döndürür. Sıfırla karşılaşılıncaya kadar, veriler Kaynak dosyası izin gününde okunur ve yazılır.

fclose() işlevi çağrıldığında dosya kapatılır. Dosya yazmak için açılmışsa, bu dosyayla ilişkili ara belleğin içeriği çıkarılır. İşaretçi ve dosya arasındaki bağlantı koptu.

Benzer şekilde, fgetc (string, n, fp) işlevi, fp ile ilişkili dosyadan bir dize okur ve onu dizeye yerleştirir. Karakterler, bir "" karakteri alınana veya dosya tükenene kadar veya (n-1) karakterleri okunana kadar okunur.

Doğrudan erişim modu daha esnektir, çünkü dosyadaki herhangi bir kayda doğrudan erişmenizi sağlar. Doğrudan erişim dosyası için minimum kayıt bir bayttır. Aşağıda, bir kaydı olan doğrudan erişim dosyası durumunu ele alacağız. bayta eşit... Bu dosyalara ikili dosyalar denir. Doğrudan erişim dosyaları, üzerinde depolanan büyük miktarda bilgi ile çalışması gereken programlar yazarken vazgeçilmezdir. harici cihazlar... DBMS'nin işlenmesi, doğrudan erişim dosyalarına dayanmaktadır.

Doğrudan erişim dosyalarıyla çalışmanın ana hükümlerini kısaca özetleyelim.

1). Doğrudan erişim dosyasındaki her giriş numaralandırılmıştır. Kayıtlar 0'dan N-1'e kadar numaralandırılmıştır; burada N, dosyadaki kayıt sayısıdır. İçin ikili dosya N, dosyanın bayt cinsinden uzunluğuyla aynıdır. İçin açık dosya girişlerden biri geçerli - işaretçinin şu şekilde ayarlandığı söyleniyor bu giriş... İşaretçiyi lseek işlevini kullanarak hareket ettirebilirsiniz.

2). Açılırken (veya bir dosya oluşturulurken), işaretçi otomatik olarak başlangıca (giriş 0) yerleştirilir. Okuma veya yazma işlemleri gerçekleştirirken, işaretçi otomatik olarak son okunan (yazılan) kaydı geçer.

3). chsize işlevini kullanarak dosyanın boyutunu (artırma veya azaltma) değiştirebilirsiniz. Dosya boyutu büyüdükçe 0 kodla doldurulmuş girdiler eklenir.

Aşağıda dosyalarla çalışmayı gösteren bir program bulunmaktadır.

int h; / * oluşturulacak dosya tanımlayıcı * /

char * s = "Bu satır dosyaya yerleştirilecektir";

karakter tutkunu; / * dosyadan okumak için arabellek * /

Fmode = O_BINARY; / * ikili dosyalarla çalışma * /

if ((h = create ("proba.txt", S_IREAD | S_IWRITE)) == - 1) / * dosya oluştur * /

printf ("Dosya açılamadı!");

yaz (h, s, strlen(s)); / * s dizesini dosyaya yaz * /

ara (h, 4, SEEK_SET); / * dosyanın başından itibaren dördüncü bayt * /

tampon = 0; / * satırın sonunu işaretleyin * /

kapat (h); / * dosyayı kapat * /

printf ("% s", tampon); / * okunan satırı yazdır * /

Programımız tamamen yorumlanmıştır, bu nedenle oldukça kısa bir açıklama sunuyoruz. Program bir doğrudan erişim dosyası oluşturur ve oraya bir dizi bayt (dize) yazar. Ayrıca, bu dizenin alt dizisine doğrudan dosyada doğrudan bir başvuru vardır. Programın metnini ayrıştırırken okuyucuları bazı noktalara çekelim:

1. Dosya oluşturma hatası işleme. Gerçekten de, bir dosyayı açmak başarılı olmayabilir ve iyi bir program bu tür durumlarla başa çıkmalıdır.

2. Dosya başarıyla açılırsa, dosyaya erişmek için kullanılabilecek bir tanımlayıcı (benzersiz bir numara) atanır.

3. Son olarak, bir dizenin ancak sonunda bir kod olduğunda dize olacağını unutmayın.

İster programlamada yeni olun, ister diğer dillerde kapsamlı programlama deneyimine sahip olun, bu eğitimler herkes içindir! Bu materyal en temelden en karmaşık yapılara kadar C/C++ dillerini öğrenmek isteyenler için.

C++ bir programlama dilidir, bu programlama dilini bilmek bilgisayarınızı kontrol etmenizi sağlar. en yüksek seviye... İdeal olarak, bilgisayarın istediğinizi yapmasını sağlayabilirsiniz. Sitemiz, C++ programlama diline hakim olmanıza yardımcı olacaktır.

Kurulum / IDE

C++ öğrenmeye başlamadan önce yapmanız gereken ilk şey, bir IDE - entegre bir geliştirme ortamına (programlama yapacağınız program) sahip olduğunuzdan emin olmaktır. Bir IDE'niz yoksa, burası tam size göre. karar verdiğinde bir IDE seçerek, kurun ve basit projeler oluşturma alıştırması yapın.

C++ diline giriş

C++, bilgisayara ne yapacağını söyleyen bir dizi komuttur. Bu komut dizisine genellikle kaynak veya sadece kod. Komutlar ya "işlevler" ya da " anahtar kelimeler". Anahtar kelimeler (C/C++ ayrılmış kelimeler) dilin temel yapı taşlarıdır. Fonksiyonlar karmaşık yapı taşlarıdır çünkü daha fazla terimle yazılırlar. basit fonksiyonlar- bunu aşağıda gösterilen ilk programımızda göreceksiniz. Bu işlev yapısı, bir kitabın içeriğine benzer. İçindekiler, kitabın bölümlerini gösterebilir, kitaptaki her bölümün paragraflardan oluşan kendi içindekiler tablosu olabilir, her paragrafın kendi alt paragrafları olabilir. C++ pek çok şey sağlasa da ortak işlevler ve Ayrılmış kelimeler kullanabileceğiniz, yine de kendi işlevlerinizi yazmanız gerekir.

Programın başlangıcı nerede? C++'daki her programın bir işlevi vardır, buna ana işlev veya ana işlev denir, programın yürütülmesi bu işlevle başlar. Ana fonksiyondan diğer fonksiyonları da çağırabilirsiniz, bizim tarafımızdan yazılmış olmaları veya daha önce belirtildiği gibi derleyici tarafından sağlanmış olmaları önemli değildir.

Peki bu Standart Özelliklere nasıl erişirsiniz? Erişmek için standart fonksiyonlar derleyiciyle birlikte verilirse, önişlemci yönergesini - #include kullanarak başlık dosyasını eklemeniz gerekir. Neden etkilidir? bir örnek görelim çalışma programı:

#Dahil etmek << "Моя первая программа на С++\n"; cin.get(); }

Programın unsurlarını ayrıntılı olarak ele alalım. #include, derleyiciye yürütülebilir dosyayı oluşturmadan önce iostream başlık dosyasındaki kodu programımıza koymasını söyleyen bir önişlemci yönergesidir. Başlık dosyasını programa bağlayarak programınızda kullanabileceğiniz birçok farklı fonksiyona erişebilirsiniz. Örneğin, cout operatörü bir iostream gerektirir. std ad alanını kullanan satır; derleyiciye std standart kitaplığının parçası olan bir grup işlevi kullanmasını söyler. Bu satır aynı zamanda programın cout gibi ifadeleri kullanmasına da izin verir. Noktalı virgül, C++ sözdiziminin bir parçasıdır. Derleyiciye bunun komutun sonu olduğunu söyler. C++'da çoğu komutu tamamlamak için noktalı virgül kullanıldığını daha sonra göreceksiniz.

Programın bir sonraki önemli satırı int main()'dir. Bu satır derleyiciye main adında bir fonksiyon olduğunu ve fonksiyonun int tipinde bir tamsayı döndürdüğünü söyler. Kıvrımlı parantezler (ve) bir fonksiyonun başlangıcını (ve bitişini) belirtir. Kıvrımlı parantezler diğer kod bloklarında kullanılır, ancak bunlar her zaman aynı anlama gelir - sırasıyla bloğun başı ve sonu.

C++'da cout nesnesi metni görüntülemek için kullanılır (C çıkışı olarak telaffuz edilir). Sembolleri kullanır<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Bir sonraki komut cin.get()'dir. Bu, bir girdi veri akışından veri okuyan ve ENTER tuşuna basılmasını bekleyen başka bir işlev çağrısıdır. Bu komut, ENTER tuşuna basılana kadar konsol penceresinin kapanmasını engeller. Bu size programın çıktısını görmeniz için zaman verir.

Ana fonksiyonun sonuna gelindiğinde (kıvrık küme ayracı kapatıldığında), programımız işletim sistemi için 0 döndürecektir. Bu dönüş değeri önemlidir, çünkü onu analiz ederek, işletim sistemi programımızın başarıyla tamamlanıp tamamlanmadığına karar verebilir. 0 dönüş değeri başarı anlamına gelir ve otomatik olarak döndürülür (ancak yalnızca int veri türü için diğer işlevler manuel olarak bir değer döndürmenizi gerektirir), ancak başka bir şey döndürmek istersek, örneğin 1, bunu yapmak zorunda kalırdık. manuel olarak.

#Dahil etmek ad alanı std kullanarak; int ana () (cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Malzemeyi birleştirmek için program kodunu IDE'nize yazın ve çalıştırın. Program başladıktan ve sonucu gördükten sonra, cout deyimiyle biraz deneyin. Bu, dile alışmanıza yardımcı olacaktır.

Programlarınız hakkında yorum yapmayı unutmayın!

Sadece kendiniz için değil, başkaları için de daha net hale getirmek için koda yorumlar ekleyin. Derleyici, kodu yürütürken yorumları yok sayar; bu, gerçek kodu tanımlamak için herhangi bir sayıda yorumun kullanılmasına izin verir. Bir yorum oluşturmak için, derleyiciye satırın geri kalanının bir yorum olduğunu söyleyen // veya / * ve ardından * / kullanın. Programlamayı öğrendiğinizde, programın çalışmasının sonucunun nasıl değiştiğini görmek için kodun belirli bölümlerine yorum yapabilmekte fayda var. Yorumlama tekniğini detaylı olarak okuyabilirsiniz.

Tüm bu değişken türleri ile ne yapmalı?

Bazı değişken türlerinin gereksiz olduğu göründüğünde, birden çok değişken türüne sahip olmak bazen kafa karıştırıcı olabilir. Bazı değişkenler diğerlerinden daha fazla bellek gerektirdiğinden, doğru değişken türünü kullanmak çok önemlidir. Ayrıca, bellekte saklanma biçimleri nedeniyle, kayan nokta sayıları, kayan nokta ve çift veri türleri "kesin değildir" ve tam bir tamsayı değerinin saklanması gerektiğinde kullanılmamalıdır.

C++ da Değişken Tanımlamak

Bir değişken bildirmek için sözdizimi türünü kullanın<имя>; ... İşte bazı değişken bildirim örnekleri:

İç sayı; karakter karakteri; kayan nokta num_float;

Bir satırda aynı türden birden fazla değişken tanımlamak mümkündür, bunun için her birinin virgülle ayrılması gerekir.

Int x, y, z, d;

Yakından baktıysanız, bir değişken bildiriminin her zaman noktalı virgül tarafından takip edildiğini görmüş olabilirsiniz. Kural hakkında daha fazla ayrıntı - "değişkenleri adlandırma hakkında" yapabilirsiniz.

C ++'da değişkenleri bildirirken yaygın hatalar

Tanımlamadığınız bir değişkeni kullanmayı denerseniz, programınız derlenmez ve bir hata mesajı alırsınız. C++'da tüm dil anahtar sözcükleri, tüm işlevler ve tüm değişkenler büyük/küçük harfe duyarlıdır.

Değişkenleri Kullanma

Artık bir değişkeni nasıl tanımlayacağınızı biliyorsunuz. İşte bir değişkenin kullanımını gösteren örnek bir program:

#Dahil etmek ad alanı std kullanarak; int ana () (int sayı; cout<< "Введите число: "; cin >> sayı; cin.ignore (); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Şimdi bu programa bir göz atalım ve kodunu satır satır inceleyelim. int anahtar sözcüğü, sayının bir tam sayı olduğunu söyler. cin >> işlevi değeri sayıya okur, kullanıcının girilen sayıdan sonra enter tuşuna basması gerekir. cin.ignore (), bir karakteri okuyan ve onu yok sayan bir işlevdir. Girişimizi programa düzenledik, bir sayı girdikten sonra ENTER tuşuna basıyoruz ki bu da giriş akışına geçiliyor. Buna ihtiyacımız yok, bu yüzden atıyoruz. Değişkenin bir tamsayı türünde bildirildiğini, kullanıcı bir ondalık sayı girmeye çalışırsa, kesileceğini (yani sayının ondalık kısmı yoksayılacağını) unutmayın. Örnek programı çalıştırdığınızda, ondalık bir sayı veya bir karakter dizisi girmeye çalışın, yanıt giriş değerine bağlı olacaktır.

Bir değişkenden yazdırırken tırnak işaretleri kullanılmadığını unutmayın. Tırnakların olmaması, derleyiciye bir değişken olduğunu ve bu nedenle programın değişkenin adını çalışma zamanındaki değeriyle değiştirmek için değişkenin değerini kontrol etmesi gerektiğini söyler. Aynı satırdaki birden fazla vardiya operatörü iyidir ve çıktı aynı sırada yapılacaktır. Her birine farklı bir kaydırma operatörü vererek dize değişmezlerini (tırnak dizeleri) ve değişkenleri ayırmanız gerekir.<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Değerleri değiştirme ve karşılaştırma

Tabii ki, hangi veri türünü kullanırsanız kullanın, değişkenler, değerlerini değiştirme yeteneği olmadan çok az ilgi çekicidir. Aşağıdakiler, değişkenlerle birlikte kullanılan operatörlerden bazılarıdır:

  • * çarpma işlemi,
  • - çıkarma,
  • + ekleme,
  • / Bölüm,
  • = atama,
  • == eşitlik,
  • > daha fazlası,
  • < меньше.
  • ! = eşit olmayan
  • > = büyük veya eşit
  • <= меньше или равно

Sonucu soldaki bir değişkene atamak için, atama işaretinin sağında matematiksel işlevleri gerçekleştiren operatörler kullanılmalıdır.

İşte bazı örnekler:

A = 4 * 6; // satır yorumu ve noktalı virgül kullanın, a eşittir 24 a = a + 5; // orijinal değerin toplamına eşittir ve beş a == 5 // beş atanmaz, 5 olup olmadığı kontrol edilir

Koşullar ve döngüler gibi yapılarda genellikle == kullanacaksınız.

A< 5 // Проверка, a менее пяти? a >5 // a'nın beşten büyük olup olmadığını kontrol edin? a == 5 // a'nın beş olup olmadığını kontrol et? a! = 5 // Kontrol et ama beşe eşit değil mi? a> = 5 // a'nın beşten büyük veya eşit olup olmadığını kontrol edin? a<= 5 // Проверка, a меньше или равно пяти?

Bu örnekler karşılaştırma işaretlerinin kullanımı hakkında çok net değil, ancak seçim operatörlerini incelemeye başladığımızda bunun neden gerekli olduğunu anlayacaksınız.