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.
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 gerekiriş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. İÇİNDELatince 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 fazlaeylem 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ı
ö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ı programC++ 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ımlarprogramlar. 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.HBellek 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ıkC'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ümbiç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ştirve 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ınverilen 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 |
Ö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.
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()
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
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
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
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.