• Programın tipik yapısı. C dilinde yazılmış bir programın genel yapısı nasıldır?

    Ders #1

    Konu: C++ dili ile tanışma. Operatörler ve Veri Tipleri

    Plan

    3. Değişkenler ve türleri

    4. Operatörler ve matematiksel fonksiyonlar

    5. C++'da G/Ç operatörleri

    6. C++ dilinde örnek program

    1. C++ programlama dilinin gelişim tarihi

    C dilinin özelliklerini ve nesne yönelimli programlamayı birleştiren C++ dili, 90'lı yıllarda ana programlama dillerinden biri haline geldi ve 21. yüzyılın başında bu kadar sağlam bir şekilde kalmaya devam ediyor. C++ dili, programların verimliliği, kompaktlığı, yürütme hızı ve taşınabilirliği gibi nitelikleri C dilinden miras almıştır. C++ dili, nesne yönelimli programlamadan, modern programlama problemlerinin artan karmaşıklığıyla başa çıkmak için yeni bir programlama metodolojisi aldı. İyileştirilmiş şablonlar gibi dil özellikleri de C++ diline başka bir yeni programlama metodolojisi getiriyor: Genel Programlama. Bu üçlü miras, C++ dili için hem bir nimet hem de bir lanettir. Dili çok güçlü ama aynı zamanda karmaşık hale getirirler; bu da programcıların daha fazlasını öğrenmesi gerektiği anlamına gelir.

    Son birkaç on yılda, bilgisayar teknolojisi şaşırtıcı bir hızla gelişti. Programlama dilleri de önemli bir evrim geçirdi. 1970'lerde, C ve Pascal gibi programlama dilleri, buna çok ihtiyaç duyan bir alana düzen getiren bir yapısal programlama çağının başlamasına yardımcı oldu. C dili, programcıya yapısal programlama için gerekli araçları sağlamanın yanı sıra kompakt, hızlı programların oluşturulmasını ve donanım adresleme becerisini, örneğin bilgisayardaki iletişim bağlantı noktalarını ve sürücüleri kontrol etme becerisini sağladı. manyetik diskler. Bu nitelikler, C'nin 1980'lerde baskın programlama dili olmasına yardımcı oldu. Ancak bu yıllarda yeni bir programlama modeli ortaya çıktı: SmallTalk ve C++ gibi dillerde somutlaşan nesne yönelimli programlama veya OOP.

    C dili

    Bell Laboratuvarları çalışanı Ken Thompson, 1969'da başka yazılım sistemleri oluşturmak için B (bi) dilini geliştirdi. Ancak, bu dil, bağımsız oluşturulmasına izin vermeyen yorumlandı. yürütülebilir dosyalar. Yine de, bu dil C dilinin öncülüydü.

    1970'lerin başında, Bell Laboratories'den Denis Ritchie, UNIX işletim sistemini geliştiriyordu. Bu işi yapmak için, Ritchie'nin donanımı verimli bir şekilde yönetebilen ve kompakt, hızlı çalışan programlar oluşturabilen özlü ve yetenekli bir programlama diline ihtiyacı vardı. Geleneksel olarak, programcıların bu tür ihtiyaçları, bilgisayarın dahili makine diliyle yakından ilişkili olan birleştirme dili tarafından karşılanırdı. Ancak, montaj dili bir dildir düşük seviye, yani belirli bir işlemciye (veya bilgisayara) bağlıdır. Bu nedenle, bir montaj dili programının farklı bir bilgisayara aktarılması gerekiyorsa, o zaman başka bir montaj dilinde yeniden yazılması gerekir.

    UNIX işletim sistemi, çeşitli bilgisayar türlerinde (veya platformlarda) çalışacak şekilde tasarlanmıştır. Ve bu dilin kullanımını içeriyordu yüksek seviye. Üst düzey dil, donanıma özgü değil, sorun çözücüdür. Derleyici adı verilen özel programlar, yüksek seviyeli bir dildeki bir programı belirli bir bilgisayarın dahili dilindeki bir programa çevirir. Böylece her platform için ayrı bir derleyici kullanılarak aynı üst düzey dil programı farklı platformlarda çalıştırılabilir. Ritchie'nin, düşük seviyeli bir dilin verimliliği ve donanım erişilebilirliği ile yüksek seviyeli bir dilin daha genel doğası ve taşınabilirliğini birleştiren bir dile ihtiyacı vardı. Bu nedenle, mevcut programlama dili B'yi temel alan Ritchie, C dilini geliştirmiştir.Dilin yazarlarının Ritchie ve Thompson olduğu genel olarak kabul edilmektedir.

    Zamanımızın en büyük programlama dilleri gibi C dili de prosedüreldir.

    C++ dili

    Nesne yönelimli teknolojinin gelişmesiyle birlikte standart C dilinin yetenekleri artık yeterli değildi. Sonuç, C++ diliydi.

    C dili gibi C++ dili de Bell Laboratories'in buluşudur. Yazar Bjarni Stroustrup bu dili 80'lerin başında geliştirdi. Kendi sözleriyle, "C++ dili, öncelikle arkadaşlarımla benim, montaj dili, C veya çeşitli modern üst düzey dillerde programlama yapmak zorunda kalmamamız için tasarlandı. Ana hedefi, bireysel programcıların iyi programlar yazmasını daha kolay ve eğlenceli hale getirmekti.

    Stroustrup, C'yi C++'a dayandırdı çünkü C özlüydü, sistem programlama için çok uygundu, yaygın olarak bulunuyordu ve UNIX işletim sistemiyle yakından ilgiliydi. C++ dilinin nesne yönelimli kısmı, Simula67 modelleme dilinin etkisi altında ortaya çıkmıştır. Stroustrup, C dilini önemli ölçüde değiştirmeden OOP öğelerini C diline ekledi.

    C++ adı, C dilinin bir değişkenin değerine bir ekleyen ++ artırma operatöründen gelir. C++ adı, bu dilin C'nin geliştirilmiş (++) bir sürümü olduğunu ima eder.

    genel programlama

    Genel programlama, C++ dili tarafından desteklenen başka bir programlama paradigmasıdır. OOP ile ortak bir amacı vardır - program kodlarının yeniden kullanımını basitleştirmek. Bununla birlikte, OOP verilere odaklanırken, genel programlama algoritmalara odaklanır. Ve farklı bir kapsamı var. OOP, büyük projeler geliştirmek için bir araçtır, jenerik programlama ise verileri sıralamak gibi genel görevleri gerçekleştirmek için araçlar sağlar. Jenerik terimi, veri türünden bağımsız olarak program kodunun oluşturulması anlamına gelir. C++'da veri var çeşitli tipler– tamsayılar, kesirli sayılar, semboller, karakter dizileri, çeşitli türlerdeki verilerden oluşan kullanıcı tanımlı karmaşık yapılar. Örneğin, farklı türlerdeki verileri sıralamak istiyorsanız, genellikle her tür için ayrı bir sıralama işlevi oluşturursunuz. Genel programlama, dili, genel (yani tanımsız) bir veri türü için bir kez işlev yazmanıza ve ardından onu çeşitli gerçek veri türleri için kullanmanıza izin verecek şekilde genişletir. Bu, C++ dil şablonları tarafından sağlanır. (Başlangıç)

    2. C++ programının yapısı

    Bir C++ programı, işlevler adı verilen ayrı ayrı bloklardan oluşturulur. Kural olarak, program bir dizi büyük göreve ayrılır ve ardından bu görevleri gerçekleştirmek için ayrı işlevler geliştirilir.

    Çoğu C++ programı şöyle görünür:

    başlık dosyası bağlantı bölümü

    program başlığı (işlev)

    işlev gövdesi

    program başlığı

    Bir C++ programı, işlevler adı verilen bir veya daha fazla modülden oluşur. Programın yürütülmesi main() adlı bir işlevle başlar, dolayısıyla programın bu adla bir işlevi olmalıdır. Bir programın böyle bir işlevi yoksa, tam bir program yoktur; bu durumda derleyici, main() işlevinin tanımlanmadığını gösterir.

    Böyle bir işlevin açıklaması, program başlık bölümünde gerçekleştirilir ve şu şekilde yazılır:

    C++ derleyicisinin büyük/küçük harfe duyarlı olduğu gerçeğini göz önünde bulundurmak önemlidir. Bu nedenle, farklı bir durumda yazılan bir işlev adı (örneğin: Main() veya MAIN()) geçersiz olarak kabul edilecektir.

    Başlık bağlantı bölümü

    C++ programları için yürütülebilir kod oluştururken, tıpkı C programlarında olduğu gibi, bir önişlemci kullanılır. Bu, ana derlemeden önce kaynak dosyayı işleyen bir programdır. Bu önişlemciyi çağırmak için özel bir şey yapmanız gerekmez. Program derlendiğinde otomatik olarak başlar.

    Her C++ programının öncelikle şöyle bir yönergesi vardır:

    #katmak

    Bu yönerge, önişlemcinin iostream dosyasının içeriğini programa eklemesine neden olur. Bu, bir önişlemci için tipik bir eylemdir: içine metin ekleme veya değiştirme kaynak kodu derlemeden önce.

    #include yönergesi, iostream dosyasının içeriğinin kaynak dosyanın içeriğiyle birlikte derleyiciye iletilmesine neden olur. Temelde, iostream dosyasının içeriği programdaki #include satırının yerini alır. . Kaynak dosya değiştirilmez, ancak kaynak dosyadan ve iostream dosyasından oluşturulan birleştirilmiş dosya, derlemenin bir sonraki adımında işlenir.

    iostream gibi dosyalara, içerme dosyaları (çünkü diğer dosyalara dahil edilirler) veya başlık dosyaları (dosyanın başına dahil oldukları için) denir. C++ derleyicileri, her biri farklı bir araç ailesini destekleyen birçok başlık dosyasıyla birlikte gelir. C başlık dosyalarının geleneksel olarak bir dosya türünü adıyla tanımlamanın en kolay yolu olan bir h uzantısı vardır. Örneğin, math.h başlık dosyası çeşitli C++ matematik işlevlerini destekler.

    Başlık dosyaları, Turbo C++ geliştirme ortamının Dahil Et klasöründe bulunur. Programı başlatırken, dahil edilen başlık dosyası olmadığını belirten bir hata alırsanız, onu Turbo C++ ortamında yapılandırmanız gerekir. Bunu yapmak için Seçenekler - Dizinler komutunu çalıştırın, Dizinleri Dahil Et alanına ..\INCLUDE ve Kitaplık Dizinleri alanına ..\LIB yazın.

    işlev gövdesi

    Fonksiyonun gövdesi bilgisayar için talimatlar içerir, örn. fonksiyonun gerçekte ne yaptığını tanımlar.

    Fonksiyonun gövdesi şöyle görünür:

    değişkenlerin tanımı;

    operatörler;

    Gördüğünüz gibi, fonksiyonun gövdesi kaşlı ayraçlar içindedir. Değişkenlerin tanımı dersin bir sonraki bölümünde tartışılacaktır.

    Bir operatör, bir bilgisayar için bir talimattır. Kaynak kodunu anlamak için derleyicinin bir ifadenin ne zaman bitip diğerinin ne zaman başladığını bilmesi gerekir. Bazı programlama dilleri deyim ayırıcılar kullanır. Pascal'da bir ifade diğerinden noktalı virgülle ayrılır. Bazı durumlarda, Pascal'da noktalı virgül atlanabilir, örneğin iki ifade arasında gerçek bir ayrım olmadığında, END sözcüğünden önceki bir ifadeden sonra. Ancak C++ dilinde olduğu gibi C dilinde de ayırıcı yerine sonlandırıcı (işaretçi) kullanılır. Sonlandırıcı, bir ifadenin sonunu işaretleyen noktalı virgüldür; ifadeler arasında bir ayırıcı olmaktan ziyade bir ifadenin parçasıdır. Pratik sonuç, C++'da noktalı virgülü asla atlayamayacağınızdır.

    RETURN 0 komutu, fonksiyonun sona erdiğini ve çağıran programa geri döndüğünü gösterir. main() ana işlevinde bu komut atlanabilir.

    Program metinlerinde yorumların kullanılmasına izin verilir. C++'da yorumlar çift eğik çizgi (//) ile gösterilir. C++ programlarında, /* ve */ arasına alınmış C dilindeki yorumları kullanabilirsiniz.

    Bir C yorumu satır sonlandırıcı ile değil */ ile bittiği için birkaç satır devam edebilir. Programlar bu iki yorum türünden birini veya her ikisini kullanabilir. (Başlangıç)

    Statik ve yerel değişkenler, diziler, işaretçiler, işlevler vb. gibi C , gerçek bilgisayarların mimarisine mümkün olduğunca yakındır. Yani, bir işaretçi sadece bir hafıza adresidir, bir dizi bitişik bir hafıza alanıdır, yerel değişkenler donanım yığınında bulunan değişkenlerdir, statik değişkenler statik bellek. AC programcısı, yazdığı programın herhangi bir mimaride nasıl çalışacağına dair her zaman oldukça iyi bir fikre sahiptir. Başka bir deyişle, C dili programcıya bilgisayar üzerinde tam kontrol sağlar.

    Başlangıçta, C dili yazmak için Assembler'ın yerini alacak şekilde tasarlandı. işletim sistemleri. C yüksek seviyeli, mimariden bağımsız bir dil olduğundan, işletim sistemi metni bir platformdan diğerine kolayca taşınabilirdi. Neredeyse tamamı C dilinde yazılan ilk işletim sistemi, Unix sistemi. Günümüzde kullanılan neredeyse tüm işletim sistemleri C ile yazılmıştır. Ayrıca yazılım araçları, işletim sistemi geliştiriciler sağlar Uygulama programları(API - Uygulama Programı Arayüzü olarak adlandırılır), C dilinde sistem işlevleri kümeleridir.

    Ancak C dilinin kapsamı işletim sistemlerinin geliştirilmesi ile sınırlı değildi. C dilinin metin ve görüntü işleme programlarında, bilimsel ve mühendislik hesaplamalarında çok uygun olduğu ortaya çıktı. C tabanlı nesne yönelimli diller, pencereli ortamlarda programlama için harikadır.

    Bu bölümde sadece C dilinin (ve kısmen C++) temel kavramları sunulacaktır. Bu, kitaplar ve .

    C yerine C++ derleyicisini kullanacağız. Gerçek şu ki, C dili neredeyse tamamen C ++'a dahil edilmiştir, yani. normal bir C programı geçerli bir C++ programıdır. "Normal" kelimesi, geçmişten kalan başarısız yapıları içermediği anlamına gelir. erken sürümler C ve şu anda kullanılmıyor. C++ derleyicisi, C derleyicisine göre tercih edilir çünkü daha sıkı hata kontrolüne sahiptir. Ek olarak, nesne yönelimli programlama ile ilgili olmayan bazı C++ yapıları çok uygundur ve aslında C dilinde bir gelişmedir. Bunlar, her şeyden önce, yorumlar // , yerel değişkenleri yalnızca bloğun başında değil, programın herhangi bir noktasında tanımlayabilme ve ayrıca önişlemcinin #define operatörünü kullanmadan sabitleri ayarlama yeteneğidir. Temelde C dilinin kapsamında kalarak C++'ın bu özelliklerini kullanacağız.

    Bir C programının yapısı

    Herhangi biri yeterli büyük program C'de (programcılar terimi kullanır proje) dosyalardan oluşur. Dosyalar, C derleyicisi tarafından bağımsız olarak çevrilir ve ardından görev oluşturucu programı tarafından birleştirilir ve yürütülmeye hazır bir program içeren bir dosya elde edilir. C program metinlerini içeren dosyalara denir. ilk.

    C'de iki tür kaynak dosya vardır:

    • başlık veya h dosyaları;
    • uygulama dosyaları veya C dosyaları.

    Başlık dosyası adları " .h " uzantısına sahiptir. Uygulama dosya adları, C dili için " .c " ve C++ dili için " .cpp ", " .cxx " veya " .cc " uzantılarına sahiptir.

    Ne yazık ki, C dilinden farklı olarak, programcılar C++ programlarını içeren dosyalar için tek bir dosya adı uzantısı üzerinde anlaşamadılar. Başlık dosyaları için " .h " uzantısını ve uygulama dosyaları için " .cpp " uzantısını kullanacağız.

    başlık dosyaları sadece açıklamaları içerir. Her şeyden önce, bunlar fonksiyon prototipleridir. Fonksiyon Prototipi fonksiyon adını, dönüş tipini, argümanlarının sayısını ve tiplerini tanımlar. İşlev metninin kendisi h-dosyasında yer almaz. Ayrıca, h dosyaları harici değişkenlerin, sabitlerin, yeni türlerin, yapıların vb. adlarını ve türlerini tanımlar. Genel olarak, h dosyaları yalnızca şunları içerir: arayüzler, yani diğer programcılar tarafından (veya daha önce aynı programcı tarafından) yazılmış programları kullanmak için gereken bilgiler. Başlık dosyaları yalnızca diğer programlar hakkında bilgi sağlar. Başlık dosyalarını çevirirken kural olarak hiçbir nesne oluşturulmaz. Örneğin, bir başlık dosyasında şunları yapamazsınız: tanımlamak küresel değişken. Açıklama dizesi

    x tamsayı değişkenini tanımlamak bir hatadır. Bunun yerine açıklamayı kullanın

    x değişkeninin uygulama dosyasında (bilinmeyen) bir yerde tanımlandığı anlamına gelir. Extern (harici) kelimesi yalnızca bilgileri raporlar harici bir değişken hakkında, ancak bu değişkeni tanımlamaz.

    Uygulama dosyaları veya C-dosyaları, fonksiyon metinlerini ve global değişkenlerin tanımlarını içerir. Basitçe söylemek gerekirse, C dosyaları programların kendisini içerirken, h dosyaları yalnızca programlar hakkında bilgi içerir.

    Kaynak metinlerin başlık dosyaları ve uygulama dosyaları şeklinde temsil edilmesi, modüler yapıya sahip büyük projeler oluşturmak için gereklidir. Başlık dosyaları, modüller arasında bilgi iletmek için kullanılır. Uygulama dosyaları, bağımsız olarak geliştirilen ve derlenen ve yürütülebilir bir program oluşturmak için birleştirilen ayrı modüllerdir.

    Uygulama dosyaları, başlık dosyalarında yer alan açıklamaları içerebilir. Başlık dosyalarının kendileri de diğer başlık dosyalarını kullanabilir. Başlık dosyası, #include önişlemci yönergesi kullanılarak eklenir. Örneğin, standart G/Ç işlev açıklamaları satıra dahildir

    #katmak

    (stdio - standart giriş / çıkış sözcüklerinden). h-dosyası adı yazılır açılı ayraçlar eğer bu h-

    Dilin bileşimi Herhangi bir doğal dildeki metinde dört
    temel öğeler: semboller, kelimeler, deyimler ve cümleler.
    Benzer öğeler algoritmik dilde bulunur:
    Bir dilin alfabesi ya da sembolleri bölünmez temel işaretlerdir.
    dildeki tüm metinlerin yazıldığı.
    Lexeme, bir dilin bağımsız bir dili olan en küçük birimidir.
    Anlam.
    Bir ifade, bazı değerleri hesaplamak için bir kural tanımlar.
    Bir işleç, bazı eylemlerin tam açıklamasını belirtir.
    Karmaşık bir eylemi tanımlamak için bir dizi gereklidir
    operatörler. Operatörler bir bileşikte birleştirilebilir
    deyim veya blok (C++ dilinde bir blok
    kıvrık ayraçlar ( ) içine alınmış bir dizi ifade).
    Bu durumda, tek bir ifade olarak ele alınırlar.
    Dilin her öğesi sözdizimi ve anlambilim tarafından tanımlanır.
    Sözdizimsel tanımlar, yapım kuralları oluşturur
    dilin unsurları ve anlam bilimi bunların anlamlarını ve kurallarını belirler.
    kullanmak.
    Tek bir algoritma, bir dizi açıklama ve
    operatörler algoritmik bir dilde bir program oluşturur.

    Program yürütme süreci

    Bir programı çalıştırmak için çevirmeniz gerekir
    işlemcinin anlayabileceği bir dile - makine kodlarına. Bu
    süreç birkaç aşamadan oluşur:
    Program önce önişlemciye iletilir.
    bağlanır metin dosyaları, bir açıklama içeren
    Programda kullanılan öğeler.
    Sonuç tam metin program girer
    belirteçleri vurgulayan ve ardından temel alan derleyici
    dilin grameri ifadeleri ve operatörleri tanır,
    bu sözlüklerden inşa edilmiştir. Derleyici daha sonra algılar
    sözdizimi hataları ve hiçbiri yoksa derlemeler
    nesne modülü.
    Bağlayıcı veya bağlayıcı, üretir
    nesneye bağlanan programın yürütülebilir modülü
    modül diğer nesne modülleri. program ise
    birkaç kaynak dosyadan, bunlar tarafından derlenir
    ayrı ayrı ve bağlantı aşamasında birleştirilir.
    Yürütülebilir modül .exe uzantısına sahiptir ve
    yürütme için başlatıldı.

    C++ dil alfabesi

    C alfabesi şunları içerir:
    Latin alfabesinin büyük ve küçük harfleri (A,B,...,Z, a, b,..., z) ve ve
    vurgulamak;
    basamak: 0,1,2,3,4,5,6,7,8,9
    özel karakterler: " , () | () * + - / % \ ; " . :?< = >_ ! & # görüntülenemeyen karakterler ("genelleştirilmiş boşluk karakterleri"),
    sözcükleri birbirinden ayırmak için kullanılır (örneğin boşluk,
    sekme durağı, atla Yeni hat).
    Alfabedeki karakterlerden
    dil sözcükbirimleri oluşturulur:
    tanımlayıcılar;
    anahtar (ayrılmış) kelimeler;
    operasyon işaretleri;
    sabitler;
    ayırıcılar (parantez, nokta, virgül, boşluk karakterleri).
    Belirteç sınırları, diğer belirteçlerle tanımlanır, örneğin
    ayırıcılar veya işlem işaretleri.

    tanımlayıcılar

    Tanımlayıcı, program nesnesinin adıdır. İÇİNDE
    Latince tanımlayıcılar kullanılabilir
    harfler, sayılar ve alt çizgiler. büyük harf ve
    küçük harfler farklıdır. ilk karakter
    tanımlayıcı bir harf veya işaret olabilir
    alt çizgi. burada:
    tanımlayıcı anahtar kelimelerle eşleşmemelidir
    kullanılan standardın kelimeleri ve isimleri
    dil nesneleri;
    tanımlayıcıların bir karakterle başlatılması önerilmez
    alt çizgi;
    Tanımlayıcılar herhangi bir uzunlukta olabilir, ancak
    derleyici en fazla 31 karakteri dikkate alır.
    tanımlayıcının başlangıcı;
    Tanımlayıcı örnekleri:
    KOM_16, size88, _DK, ZAMAN, zaman

    anahtar kelimeler

    Anahtar kelimeler, sahip olan ayrılmış tanımlayıcılardır.
    derleyici için özel değer. Sadece kullanılabilirler
    tanımlandıkları anlamda. Liste anahtar kelimeler C++ verilir
    masa:
    INT
    ÇAR
    BATMADAN YÜZMEK
    ÇİFT
    YAPI
    BİRLİK
    UZUN
    KISA
    İMZASIZ
    OTO
    YAPI
    DOĞRU
    DIŞ
    KAYIT OLMAK
    TİPEDEF
    STATİK
    GİT
    GERİ DÖNMEK
    BOYUTU
    KIRMAK
    DEVAM ETMEK
    EĞER
    GEÇERSİZ
    YENİ
    BAŞKA
    İÇİN
    YAPMAK
    SIRASINDA
    ANAHTAR
    DAVA
    VARSAYILAN
    GİRİŞ
    VE
    YAPI
    TİPEDEF
    BOOL

    operasyon işaretleri

    Operasyon işareti bir veya daha fazla
    eylem sembolleri
    işlenenler üzerinde. iç işaret
    boşluklara izin verilmez.
    Operasyonlar unary'ye ayrılır,
    sayı olarak ikili ve üçlü
    ilgili işlenenler.

    Basit veri türleri

    Veri türü şunları tanımlar:
    bellekteki verilerin dahili gösterimi
    bilgisayar;
    olabilecek değerler kümesi
    bu türdeki değerleri kabul edin;
    olabilecek operasyonlar ve fonksiyonlar
    bu türdeki değerlere uygulanır.
    C++ dili altı standart tanımlar
    temsil edilecek basit veri türleri
    tamsayı, gerçek, karakter ve
    mantıksal değerler.

    Veri tipleri
    Tip belirteçleri şunları içerir:
    karakter
    - simgesel;
    çift ​​- gerçek çift duyarlıklı kayan nokta;
    kayan nokta - gerçek kayan nokta;
    int - tamsayı;
    uzun
    - artan uzunlukta tam sayı (uzun tam sayı);
    kısa - azaltılmış uzunluk tamsayı (kısa tamsayı);
    imzalı - imzalı, yani işaretli tamsayı (en önemli bit,
    ikonik);
    imzasız - imzasız, yani işaretsiz tamsayı (en önemli bit değil
    ikonik olarak kabul edilir).
    geçersiz
    - değer eksikliği;
    bool - boolean (yalnızca true ve false değerlerini alabilir.
    false'un dahili gösterimi 0'dır (sıfır).
    Diğer tüm değerler doğru olarak yorumlanır.)
    Sabitleri tanımlamak için önce const hizmet kelimesini kullanın.
    açıklama yazın. Örneğin, sabit kayan nokta g=9,8;

    10. Bir C programının yapısı

    Bir C++ programı
    bir veya daha fazla işlev. fonksiyonlardan biri
    main() olarak adlandırılmalıdır. bundan
    işlev programı yürütmeye başlar ve
    bu işlev, gerektiği gibi,
    diğer fonksiyonlar çağrılır.
    En basit fonksiyon tanımı aşağıdaki formata sahiptir:
    dönüş_türü adı ([ parametreler ])
    {
    işlev gövdesini oluşturan ifadeler
    }
    Kural olarak, işlev bazılarını hesaplamak için kullanılır.
    değerler, bu nedenle işlev adından önce türü gelir. Eğer
    işlev bir değer döndürmemelidir, geçersiz tür belirtilir.
    burada:
    – Fonksiyonun gövdesi kaşlı ayraçlar içine alınır.
    – Fonksiyonlar iç içe olamaz.
    – Her ifade noktalı virgülle biter (hariç
    bileşik operatör).

    11. Bir C programının yapısı

    Bir program birkaç modülden (kaynak dosyalar) oluşabilir ve kural olarak,
    önişlemci yönergelerini içerir. içeren bir program yapısının bir örneği
    ana, f1 ve f2 işlevleri:
    Önişlemci yönergeleri
    Açıklamalar
    int ana()
    {
    ana fonksiyon operatörleri
    }
    int f1() (
    f1 fonksiyonunun işleçleri
    }
    int f2() (
    f2 işlevinin işleçleri
    }
    /* Basit bir program örneği */
    #katmak
    int ana()
    {
    printf("Merhaba Dünya!");
    0 dönüşü;
    }

    12. C stili G/Ç işlevleri

    Temel C stili G/Ç işlevleri:
    int scanf (const char* format...) // giriş
    int printf(const char* format...) // çıktı
    Dizeye göre keyfi sayıda değerin biçimlendirilmiş giriş ve çıkışını gerçekleştirirler.
    biçim. Biçim dizesi, akışa (ekrana) veya
    girişte akıştan (klavyeden) istenir ve ile başlayan dönüştürme özellikleri
    giriş ve çıkış sırasında belirli değerlerle değiştirilen % işareti.
    #katmak
    int ana() (
    int ben;
    printf("Bir tam sayi girin\n");
    scanf("%d", &i);
    printf("%d sayisini girdiniz, tesekkürler!", i);
    0 dönüşü; )
    Bu programın ilk satırı, program metnine ekleyen bir önişlemci yönergesidir.
    başlık dosyası , programda kullanılan giriş/çıkış fonksiyonlarının açıklamasını içerir. Tüm
    önişlemci yönergeleri # işaretiyle başlar.
    Üçüncü satır, i adlı bir tamsayı türü değişkenin açıklamasıdır.
    Dördüncü satırdaki printf işlevi Enter an integer istemini yazdırır ve içinde yeni bir satıra atlar.
    \n kaçış sırasına göre.
    scanf işlevi, klavyeden girilen tamsayıyı i değişkeninde saklar ve aşağıdaki ifade yazdırılır
    dönüştürme belirtimini o sayının değeriyle değiştirerek içerdiği dizeyi tarayın.

    13. C++ stilinde G/Ç işlevleri

    Kütüphaneyi kullanan aynı program
    C++ sınıfları :
    #katmak
    ad alanı std kullanarak;
    int ana()
    {
    int ben;
    cout<< "Введите целое число\n";
    cin >> ben;
    cout<< "Вы ввели число" << i << ", спасибо!"; return 0;
    }

    14. Standart Kitaplıklar

    C dili, formda zengin desteğe sahiptir.
    yapabileceğiniz 450'den fazla işlev ve makro kitaplık yordamı
    çözmek için C programlarınızdan arayın
    G/Ç dahil çok çeşitli görevler
    düşük ve yüksek seviye, ile çalışmak
    satırlar ve dosyalar, bellek ayırma,
    süreç yönetimi, dönüşüm
    veriler, matematiksel hesaplamalar ve
    daha fazla.

    15. Önişlemci Yönergeleri

    İlk aşama önişlemci olarak adlandırılır.
    derleyici. Önişlemci Talimatları
    direktifler denir. Onlar zorunda
    # karakteri ile başlayın, önünde
    satır yalnızca boşluk içerebilir
    semboller.
    Tam yol belirtilmemişse bir dosya arayın,
    standart kataloglarda tutulur
    dahil dosyalar. köşeli yerine
    köşeli parantezler, tırnak işaretleri (" ") kullanılabilir
    - bu durumda, dosya için arama yapılır.
    kaynak dosyayı içeren dizin ve
    o zaman zaten standart dizinlerde.
    Başlık dosyaları genellikle
    uzantı.h .

    16. Önişlemci Direktifi #include

    Kitaplıkları bağlamak için şunu kullanın:
    Önişlemci direktifi
    # [dosya adını] dahil et
    #include yönergesi<имя_файла>ekler
    o noktaya kadar belirtilen dosyanın içeriği
    yazıldığı kaynak dosya.
    Örneğin:
    #katmak
    #include "mylib.h"

    17. #önişlemci yönergesini tanımlayın

    #define yönergesi, metinde bir ikame tanımlar
    programlar. belirlemek için kullanılır
    sembolik sabitler.
    Sembolik sabit tanım formatı:
    #define name substitution_text /*Tüm oluşumlar
    adlar değiştirme metniyle değiştirilir */
    Örnekler:
    #M 1000'i tanımla
    #define Vasia “Vasili İvanoviç”

    18. Bazı Standart Kitaplıklar

    ALLOC.H
    Bellek yönetimi işlevlerinin açıklaması
    (tahsis, yeniden tahsis, vb.)
    BIOS.H
    Kullanılan çeşitli işlevlerin açıklaması
    BIOS alt programlarına erişim (temel
    G/Ç sistemi).
    CONIO.H Kullanılan çeşitli fonksiyonların açıklaması
    DOS I/O rutinlerine erişim
    klavyeler.
    GRAPHICS.H Grafik fonksiyon prototiplerini içerir.
    MATH.H Matematiksel işlemlerin prototiplerinin açıklamasını içerir.
    fonksiyonlar
    STDIO.H için gerekli türleri ve makroları tanımlar.
    standart G/Ç paketi. Ayrıca tanımlar
    standart giriş/çıkış akışları stdin, stdout ve
    G/Ç alt programlarını açıklar.
    STDLIB.H Bazı genel amaçlı yordamları açıklar:
    dönüştürme, arama, sıralama ve diğerleri için alt programlar.
    STRING.H
    Çeşitli dizi işleme rutinlerini açıklar ve
    hafıza çalışması.

    19. PRINTF biçimi çıktı işlevi

    En yaygın olanı zaten kullandık
    C'deki çıktı işlevi printf altyordamıdır. O
    amaç ekrana bilgi yazmaktır.
    Biçimi hem basit hem de esnektir:
    printf(<строка формата>, <объект>, <объект>, ...);

    20. SCANF biçimi giriş işlevi

    Etkileşimli giriş modu için muhtemelen kullanılabilir
    çoğu durumda, scanf işlevi. scanf, tanımı gereği bir giriş işlevidir
    printf'e eşdeğer; formatı şöyle görünür:
    taramak(<строка формата>,<адрес>,<адрес>,...)
    Ancak, scanf'in çok önemli bir farkı vardır: izleyen nesneler
    biçim dizesi adresler olmalıdır, değerler değil. Örneğin, içinde
    Program aşağıdaki çağrıyı içerir:
    scanf("%d %d", &a, &b);
    Bu çağrı, programa sizden girdi beklemesi gerektiğini söyler.
    boşlukla ayrılmış iki ondalık (tamsayı) sayı; ilk vasiyet
    a'ya ve ikincisi b'ye atanır. Burada işlemi kullandığımıza dikkat edin
    a ve b adreslerini scanf'e geçirmek için adresler (&).

    21. Diziyi biçimlendir

    Biçim dizesi, başlayan dizedir.
    ve çift tırnak ile biter ("bunun gibi");
    printf'in amacı bu satırı ekrana yazmaktır. Önce
    printf çıktısı, ekstra olan her şeyin yerini alır
    göre sıralanmış nesneler
    belirtilen biçim özellikleri ile
    hattın kendisi. Bir printf deyimi örneği:
    printf(“ d= %f \n",d);

    22. Biçim dizesi

    Biçim dizesindeki %f, biçim belirtimidir. Tüm
    biçim belirtimleri yüzde işaretiyle (%) başlar ve
    (genellikle) ardından türü belirten tek bir harf gelir
    veriler ve nasıl dönüştürüleceği.
    Spesifikasyonda kullanılan %f, bekleneni söylüyor
    bazı gerçek sayılar İşte yaygın olarak kullanılan diğer birkaç biçim özelliği:
    - %u işaretsiz tamsayı
    - %ld uzun tamsayı
    - %p işaretçi değeri
    - %d tamsayı
    - Üstel formda %e kayan noktalı sayı
    - %c karakter
    - %s dizi
    - Onaltılık biçimde %x veya %X tamsayı.

    23. Diziyi biçimlendir

    Alan genişliğini içine koyarak ayarlayabilirsiniz.
    % ve harf arasında, örneğin ondalık alan
    genişlik 4 %4d olarak verilmiştir. değer olacak
    sağa kaydırılmış yazdırılır (önünde
    boşluk), dolayısıyla toplam alan genişliği 4'tür.
    Veya örneğin %6.2f şu anlama gelir:
    gerçek bir sayı için 6 pozisyon tahsis edildi,
    ve 2 - kesirli kısmın altında.
    Bir % işareti yazdırmak istiyorsanız, %% girin.

    24. Biçim dizesi

    \n bir dizgede bir biçim belirtimi değildir, ancak
    (tarihsel nedenlerle) olarak kullanılmış
    kaçış dizisi ve temsil eder
    bir dizeye eklenen özel bir karakter. Bu durumda
    \n yeni satırın başına bir karakter ekler, yani
    satırın çıktısı alındıktan sonra, imleç yeni satırın başına gider
    çizgiler.
    - \f (biçim çevirisi veya ekranı temizle)
    - \t (sekme)
    - \b (geri al<-)
    - \xhhh (ASCII kodlu karakteri girin hhh, burada hhh
    1 ila 3 onaltılık basamak içerir)
    Bir ters eğik çizgi yazdırmanız gerekirse, o zaman
    sokmak \\.

    25. Bir C programı örneği

    #katmak
    #katmak
    ana()
    {
    kayan nokta x1,y1,x2,y2;
    printf("İki sayi giriniz: ");
    scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
    float d = sqrt(güç((x2-x1),2)+güç((y2-y1),2));
    printf("d= %f \n", d);
    }

    26. Diğer çıkış fonksiyonları PUTS, PUTCHAR

    Size yardımcı olabilecek iki çıktı işlevi daha vardır.
    ilgi alanı: koyar ve putchar. Puts işlevi, bir dizi çıktısı verir.
    ekrana gelir ve çıktıyı yeni satır karakteriyle sonlandırır.
    Örnek bir program düşünün:
    #katmak
    ana()
    {
    puts("Merhaba, VKI NSU öğrencisi");
    }
    Satırın sonunda \n'nin atlandığını unutmayın; bu gerekli değil, çünkü
    kendini koyar bu karakteri ekler.
    Tersine, putchar işlevi tek bir karakter yazar.
    ekrana gelir ve \n eklemez. putchar(ch) şuna eşittir:
    printf("%c",ch).

    27. GETS, GETCH işlevleri

    ana()
    {
    karakter ismi ;
    printf("Adiniz nedir: ");
    scanf("%s",isim);

    }
    Bir soyadı ve bir ad girerseniz, yalnızca soyadı görüntülenir. Çünkü
    girişin sonunu taramak için ad sinyallerinden sonra girdiğiniz boşluk
    çizgiler.
    Gets işlevini kullanarak bu sorunu çözebilirsiniz.
    ana()
    {
    karakter ismi ;
    printf("Adiniz nedir: ");
    alır(isim);
    printf("Merhaba, %s\n", isim);
    }

    28. GETS, GETCH işlevleri

    #katmak
    #katmak
    ana()
    {
    clrscr();
    karakter ismi ;
    printf("Adiniz nedir: ");
    alır(isim);
    printf("Merhaba, %s\n", isim);
    getch();
    }
    Burada getch fonksiyonu herhangi bir karakterin girilmesini bekler.
    Getch işlevi klavyeden tek bir karakteri yayınlamadan okur.
    ekrana (scanf ve gets'in aksine). sahip olmadığına dikkat edin
    parametre. İşlevi sembolik bir değişkene atarsak, o zaman
    basılan karakterin değerini alacaktır.
    Örneğin: c=getch();

    29. Atama işlemi

    En yaygın işlem atamadır,
    örneğin, p=a/b veya ch = getch(). C'de
    atama tek bir karakterle gösterilir
    eşitlik (=); işaretin sağındaki değer ise
    soldaki değişkene eşitlik atanır.
    Sıralı da kullanabilirsiniz
    atamalar, örneğin: toplam=a= b. Çok
    durumlarda, atama sağda yapılır
    sola, yani b, a'ya atanacak;
    sırayla toplama atanacak, yani hepsi
    üç değişken aynı değeri alacaktır (ve
    yani başlangıç ​​değeri b).

    30. Aritmetik işlemler. artış. azalma.

    C, olağan aritmetik işlemler kümesini destekler:
    - çarpma işlemi (*)
    - bölüm (/)
    - bölümün kalanının belirlenmesi (%)
    - ekleme (+)
    - çıkarma (-)
    Bir değişkenin değerini bir artırmak için artışı (++) kullanın,
    eksiltme (--) birer birer azaltmak için.
    Bu yüzden:
    x++; // x'i birer birer artır
    y--; // y'yi birer birer azalt
    Sonek ve önek işlemlerine örnekler:
    bir=2;
    bir=2;
    x=18-2*a++;
    x=18-2*(++a);
    Biz:
    bir=3
    bir=3
    x=14
    x=12

    31. Birleşik işlemler

    Aşağıda bazı ifade örnekleri verilmiştir
    ve bunları azaltmanın yolları:
    bir = bir + b a += b olarak kısaltılmıştır;
    bir = bir - b; a -= b olarak kısaltılmıştır;
    bir = bir * b; a *= b olarak kısaltılmıştır;
    bir = bir / b; a /= b olarak kısaltılmıştır;
    a = a %b; a %= b'ye düşürüldü;

    32. Örnek 1

    için dört çarpma kullanarak X3 ve X10 hesaplayın
    verilen X tamsayı değeri.
    #katmak
    int x,x2,x3,x5,x10;
    ana() (
    printf("\n X^3 ve X^10 hesaplama programı\n");
    puts("X değerini giriniz");
    scanf("%i",&x);
    x2=x*x;
    x3=x*x2;
    x5=x2*x3;
    x10=x5*x5;
    printf("%i üzeri 3 = %i \n",x,x3);
    printf("%i üzeri 10 = %i",x,x10);
    }

    33. Örnek 2

    Radyan cinsinden bir açı verildi. Bir açının sinüsünü ve kosinüsünü hesaplayın.
    #katmak
    #katmak
    kayan Açı, Sonuç1, Sonuç2;
    ana()
    {
    printf("\n sin ve cos açisini hesaplayan program\n");
    puts("Açı değerini radyan olarak ayarlayın");
    scanf("%f",&Açı);
    Sonuç1=sin(Açı);
    Sonuç2=cos(Açı);
    printf("Açının sinüsü %f \n",Sonuç1);
    printf("Açının kosinüsü %f'dir",Sonuç2);

    C dilinde yazılmış herhangi bir program, bir araya getirildiği temel modüller olan bir veya daha fazla "işlevden" oluşur.

    Basit bir C programının yapısına bir örnek:

    Genel form

    Örnek

    Önişlemci yönergeleri

    #katmak

    # N 10 tanımla

    ana işlev adı

    ana işlev gövdesinin başlangıcı

    değişken ve dizi bildirimleri

    intx=1; karakterstr[N];

    program ifadeleri

    koyar("Girmek İsim");

    alır(str);

    printf("\n %s, %d misafirimsiniz!",str,x);

    Ana işlev gövdesinin sonu

        1. Önişlemci yönergeleri

    Derleyicinin parçası, adı verilen bir programdır. önişlemci. Önişlemci, programı üst düzey bir dilden makine diline çevirmeden önce çalışır ve ön dönüşümünü gerçekleştirir. Her önişlemci yönergesi bir # (sayı) karakteriyle başlar ve tüm satırı kapsar. Bir satıra sığmayan yönergeler bir sonraki satırda devam ettirilebilir. Satır devam karakteri, devam eden satırdaki ters eğik çizgi karakteridir (\).

    En sık kullanılan yönerge, bir programa dosya eklemektir.

    # katmak < isim>

    Nerede isim program metninde bulunan dosyanın adıdır.

    Bu yönerge denir ikame direktifi . Derleyiciye onu dosyayla değiştirmesini söyler. isim. Dosya isim başlık denir. Programda kullanılan veri ve işlevlerin bildirimlerini içerir. Örneğin, direktif dahil

    # katmak < matematik. H>

    programda sin x, cos x, ln x gibi standart matematiksel fonksiyonları kullanmanıza izin verecektir. Standart matematiksel fonksiyonların listesi aşağıda verilecektir.

    Direktif

    # katmak < stüdyo. H>

    programın standart giriş-çıkış fonksiyonlarını kullanmasına izin verir.

    Yaygın olarak kullanılan bir başka yönerge de tanım yönergesidir.

    #S1 S2'yi tanımla

    Nerede S1, S2- karakter dizileri.

    Önişlemci, program metninde bir dizi karakter arar. S1 ve dizeyle değiştirir S2 . Örneğin, direktif dahil

    # tanımlamak P printf

    klavyede bir harf yazmanıza izin verir P bir kelime yerine printf.

    Bu değiştirme, metin dizileri (değişmez değerler), karakter sabitleri ve yorumlar içinde gerçekleştirilmez, örn. direktif eylemi # tanımlamak tırnak işaretleri, kesme işaretleri ile ayrılmış ve yorumların içinde yer alan metinler için geçerli değildir.

        1. Ana işlev

    Her C programı bir işlev bildirimi içermelidir ana(), buna ana işlev denir . Tipik olarak, bu işlevin parametresi yoktur ve herhangi bir değer döndürmez. kelimesi bu gerçeği belirtmek için kullanılır. geçersiz. Bu nedenle, ana işlevin adını içeren satır genellikle şöyle görünür:

    geçersiz ana (geçersiz)

    geçersiz ana()

        1. Değişkenler ve diziler

    Bir dizi, ortak bir ada sahip aynı türdeki değişkenler grubudur. Bir değişkenin veya dizinin adı bir tanımlayıcıdır - karakterlerden oluşan bir dizi:

    a - z, A - Z, 0 - 9,_(alt çizgi),

    ve ilk karakter rakam olamaz. Latin alfabesinin küçük ve büyük harfleri farklı karakterler olarak algılanır. C dilinin işlevsel sözcükleri, bir değişkenin veya dizinin adı olarak kullanılamaz. C dilinin ana işlev sözcükleri Ek'te verilmiştir.

    Dizi öğeleri, sayıları (dizinler) ile ayırt edilir. Dizin yalnızca negatif olmayan tamsayı değerleri alabilir. İndeks, dizi adından sonra köşeli parantez içinde yazılır. Birkaç indeks olabilir. Bu durumda, her dizin kendi köşeli parantezleri içinde yazılır.

    C dilinde çeşitli türlerde değişkenler ve diziler kullanılabilir. Her veri türü, belirli sayıda bayt bellek kaplar ve belirli bir aralıktan değer alabilir. Bu belleğin miktarı ve buna bağlı olarak C dilinin farklı uygulamalarında kabul edilen değerlerin aralığı değişebilir. C dilinin belirli bir uygulaması için belirli bir türdeki değişken tarafından işgal edilen bellek bayt sayısı, işlem kullanılarak belirlenebilir. boyutu(tip). Örneğin, tamsayı türündeki bir değişken için ayrılan bellek miktarını aşağıdaki gibi belirleyebilirsiniz:

    k = sizeof(int);

    printf(“ Bir tür değişken altındaint%d bayt bellek ayırdı”,k);

    Bu yönergelerde, üç ana değişken ve dizi türü dikkate alınır, kullanılan bellek miktarının tipik değerleri ve değer aralığı verilir (Tablo 1):

    tablo 1

    Tür Belirleyici (Anahtar Kelime)

    Anlam

    Boyut

    bellek (bayt)

    Değer aralığı

    Tam sayı

    32768 . . . +32767

    2147483648 . . . +2147483647

    Geçerli

    Gerçek tip numarası

    3.4ּ10 -38 . . . 3.4ּ10 38

    (modül)

    Simgesel

    128 . . . +127

    Tip değişkenine daha yakından bakalım karakter. Tablodan görülebileceği gibi. 1, tip değişkeni karakter bir bayt bellek kaplar. Bir bayt bellek, aralığından işaretsiz bir tamsayı veya [–128, 127] aralığından işaretli bir tamsayı içerebilir. Bu sayı 256 karakterden birinin kodudur. Belirli bir koda karşılık gelen sembol, kullanılan kod tablosu tarafından belirlenir. Böylece, bir tür değişkenin değeri karakter bir tamsayı olarak veya kodu bu sayıya eşit olan bir karakter olarak kabul edilebilir.

    Lütfen bu sitede AdBlock'u duraklatın.

    Umarım bilgisayarınıza bazı IDE'ler yüklemişsinizdir ve orada programları nasıl derleyeceğinizi öğrenmişsinizdir. O zaman değilse

    C dilinde yazılmış tüm programların ortak bir yapısı vardır. Bu derste bahsedeceğimiz şey. Bir önceki adımda yazdığımız ilk programımız bu konuda bize yardımcı olacaktır.

    Basit bir haritayı dolduralım. Şu anda programların var olduğunu biliyoruz, ancak bunların içeride nasıl düzenlendiğini bilmiyoruz. Bu nedenle, haritamız bu şekilde görünecektir.

    Şekil.1 Harita "C programlarının yapısı." İlk seviye.

    Kurs boyunca bu haritaya geri döneceğiz, onu iyileştireceğiz, yeni öğeler ve bloklarla tamamlayacağız.

    Şimdi dikkat. korkma! Aşağıda üç basit programın kaynak kodu bulunmaktadır. Göreviniz, onlara dikkatlice bakmak ve kodlarında bir kalıp (her programda ortak olan bir şey) bulmaya çalışmaktır.

    Listeleme 1. Program 1. "Merhaba Dünya!"

    #katmak

    Liste 2. Program 2

    int main(void) ( int a, b, c; a = 5; b = 10; c = a+b; dönüş 0; )

    Liste 3. Program 3

    #katmak int main(void) ( FILE *fp; fp = fopen("input.txt", "w"); fprintf(fp, "Bu Sparta!"); fclose(fp); dönüş 0; )

    Dersin devamını ve bu sorunun doğru cevabını izlemek için zaman ayırın. Önce kendinize cevap vermeye çalışın. Bundan sonra, "Devamını izle!"

    Yani cevap şudur: Yukarıdaki tüm programlarda aşağıdaki yapı vardır:

    Listeleme 4. Herhangi bir C programının ana işlevi ana işlevdir.

    int main(void) ( dönüş 0; )

    Bu nasıl bir tasarımdır. Bu, ana işlevin bildirimidir. C ile yazılmış her programın böyle bir işlevi vardır: Büyük veya küçük bir program, bir bilgisayar oyunu veya sizin tarafınızdan veya Bill Gates tarafından yazılmış bir "Merhaba Dünya!" programı - eğer program C ile yazılmışsa. -- bir ana işlevi vardır. . Bu, tabiri caizse, programımızın ana işlevidir. Bir programı çalıştırdığımızda, kendimizi programın ana işlevini çalıştırıyormuş gibi düşünebiliriz.

    Bir saniye duralım. C dilindeki programların yapısı hakkında zaten bir şeyler bulmuş gibiyiz. Herhangi bir C programı bir ana işlev içermelidir. Bu gerçeği "C Programlarının Yapısı" bilgi haritamızda gösterelim.

    Şekil.2 Harita "C programlarının yapısı." ana işlev.

    Artık harita, ağzı açık boşluğuyla bizi rahatsız etmiyor. Araştırmamıza devam edelim.

    Biraz da ana fonksiyondan ve genel olarak fonksiyonlardan bahsedeyim.

    İşlev adından önce, İngilizce'den "bütün" olarak çevrilen tamsayı kelimesinin kısaltması olan int gelir. Böyle bir gösterim, ana işlev işini tamamladığında çağıran programa bir tamsayı döndürmesi gerektiği anlamına gelir (bizim durumumuzda bu işletim sistemidir). Genellikle ana işlev için bu, işletim sistemine bildiren sıfır sayısıdır: "Her şey yolunda diyorlar. Olay olmadı."

    Bilgisayar ekranınızda hiç hata mesajı gördünüz mü? Genellikle "Program çöktü ... falan filan ... Kod -314" gibi bir şey yazarlar. İşte yaklaşık olarak aynı. Aradaki fark, sorunlar ortaya çıktığında işletim sistemi bunu bize bildirir ve her şey yolunda olduğunda bizi bir daha rahatsız etmez.

    Fonksiyon adından sonra parantez içinde boşluk kelimesi yazılır. Genel olarak, işlev bağımsız değişkenleri genellikle parantez içinde yazılır, ancak bizim durumumuzda, boşluk parantez içinde yazıldığında, bu, işlevin bağımsız değişkeni olmadığı anlamına gelir. Başka bir deyişle, ana işlevin çalışmaya başlaması için dışarıdan herhangi bir ek girdiye ihtiyacı yoktur. Tüm bunlardan daha ayrıntılı olarak bahsedeceğiz, ancak şimdilik, işlev argümanları yerine geçersiz kelimesinin, bu işlev için hiçbir argüman gerekmediği anlamına geldiğini unutmayın.

    Kıvrık parantezlerin içinde ana işlevin açıklaması bulunur, yani. bu işlevin tam olarak ne yapması gerektiği.

    Kapanan kaşlı ayraçtan önce dönüş komutunu görüyoruz. İşlevden değer döndürmekten sorumlu olan bu komuttur. Onlar. bakın, program bu noktaya geldiyse, o zaman her şey yolundaydı ve hiçbir hata oluşmadı, bu da sıfır değerini döndürebileceğiniz anlamına gelir.

    Neden tam olarak sıfır diye sorabilirsiniz. Ve şeytan bilir! Genelde yaptıkları gibi. Prensip olarak 100 veya -236 gibi başka bir tamsayı döndürebilirsiniz. Bir tamsayı olduğu sürece. int'i hatırladın mı? Bu nedenle, bütün.

    Böylece ana işlevi bulduk. Bir dakika daha. Kıvrımlı ayraçlarla yazılanlara genellikle "işlev gövdesi" (veya işlev açıklaması) denir ve ilk kısım, kıvrık parantezlerden önceki kısım, işlev başlığı olarak adlandırılır.

    İlk "Merhaba Dünya" programımıza geri dönelim ve neyin ne olduğunu görelim.

    Listeleme 5. "Merhaba Dünya" programı

    #katmak int main(void) ( printf("Merhaba Dünya!\n"); 0 döndür; )

    Bu programda artık anladığımız bir şey var. Sadece iki satır belirsiz kaldı, sırayla gidelim.

    Listeleme 6. Dahil etme direktifi

    #katmak

    Bu satır derleyiciye bir mesajdır. # karakteri ile başlayan bu mesajlara derleyici direktifleri denir. Kelimenin tam anlamıyla: "stdio.h dosyasını bağlayın". Derleme sırasında bu satır yerine stdio.h dosyasının içeriği eklenecektir. Şimdi biraz bu dosyadan bahsedelim. stdio.h (STanDart Giriş Çıkışından), giriş ve çıkışla ilgili çeşitli standart işlevleri açıklayan bir başlık dosyasıdır.

    Makul bir soru ortaya çıkıyor, "Bu satırı neden yazmamız gerekiyor? Bu dosyayı buraya neden eklememiz gerekiyor?" Bu, programımızda standart printf () ekran çıktı işlevini kullanabilmemiz için gereklidir.

    Mesele şu ki. Bir şeyi programımızda kullanmadan önce onu tanımlamamız gerekir. Durumu hayal edin, sizden bir avize getirmeniz istendi ama ne olduğunu bilmiyorsunuz. Ne yapılacağı belli değil.

    Derleyici de öyle. Bir fonksiyonla karşılaştığında programın başında (en başından programda kullanıldığı ana kadar) onun açıklamasını (yani ne yapması gerektiğini ve ne anlama geldiğini) arar. Bu nedenle, printf() işlevi stdio.h dosyasında açıklanmıştır. Bu yüzden bağlıyoruz. Fakat onu bağladığımızda derleyici printf() fonksiyonunu bulabilecektir, aksi halde hata verecektir.

    Bu arada, bilgi haritamızı tamamlamanın zamanı geldi. Ana işlevden önce, bir blok daha ekleyelim, başlık dosyalarını bağlamak için blok.

    Şekil.3 Harita "C programlarının yapısı." Başlık dosyaları bağlantı bloğu.

    Programımıza devam edelim.

    Listeleme 7. printf() işlevi

    Printf("Merhaba Dünya!\n");

    Bu satırda, ekrana görüntülemek için standart printf() işlevini çağırıyoruz. Bu en basit durumda, ekranda görüntülenmesi gereken tırnak içinde yazılmış bir dize olan bir parametreyi iletiyoruz, bizim durumumuzda bu Hello, World! \N Ama bir dakika, bu nedir\n? Program başladığında ekranda \n yoktu. O zaman bunu buraya neden yazdık? Bu dizi, bir sonraki satıra gitme komutu olan özel bir karakterdir. MS Word'de Enter tuşuna basmak gibi. Bu tür birkaç özel karakter vardır, hepsi "\" karakteri - bir ters eğik çizgi kullanılarak yazılır. Bu özel karakterlere kontrol karakterleri denir. Sonra onları sana göstereceğim. Aksi takdirde çift tırnak içinde yazdığınız tam olarak ekranda görünecektir.

    Bu arada, her C komutunun ";" ile bittiğini unutmayın. (noktalı virgül). Rusça'da cümlenin sonundaki nokta gibi. Normal bir dilde cümleleri nokta ile ayırırız, C programlama dilinde ise komutları birbirinden noktalı virgül ayırır. Bu nedenle, noktalı virgül zorunludur. Aksi takdirde derleyici yemin eder ve hata verir.

    Bir işlevi çağırmak için adını yazmalı ve kendisine iletilen parametreleri parantez içinde belirtmelisiniz. Bir fonksiyon bir veya daha fazla parametreye sahip olabilir. Veya hiç parametre olmayabilir, bu durumda parantez içinde hiçbir şey yazmanıza gerek yoktur. Örneğin, yukarıda printf() işlevini çağırdık ve ekrana yazdırılacak dize olan bir parametreyi ilettik.

    Bu arada, iyi bir tavsiye. Ana işlev her programda her zaman mevcut olduğundan ve kelimenin tam anlamıyla her programda ekranda bir şey görüntülememiz gerektiğinden, her seferinde aynı şeyi yazmamak için hemen aşağıdaki boşlukla bir dosya oluşturmanızı öneririm.

    Listeleme 8. C programları için standart şablon.

    #katmak int main(void) ( dönüş 0; )

    Hepsi bu kadar. Bu ilk ders tamamlanmış sayılabilir. Hayır olmasına rağmen, bir şey daha var.

    Bu derste en önemli olan şey elbette programın genel yapısıdır. Ancak ek olarak, ekranda rastgele metinlerin nasıl görüntüleneceğini öğrendik. Görünüşe göre hiçbir şey öğrenmemişler ama bu bile örneğin 8 Mart'ta annenize küçük bir hediye yapmak için yeterli.


    Kartpostal programının kaynak kodu bu dersin kaynak kodları ile birlikte arşivdedir. Deney! Başaracaksın.