Menü
Bedava
giriş
ana  /  internet / Modüler program yapısı. Program Yapısı: Blok Blok Yapısı

Modüler program yapısı. Program Yapısı: Blok Blok Yapısı

Her PS programını geliştirmeye başlamak, bunun olduğu akılda tutulmalıdır. büyük sistemBu nedenle, bunu basitleştirmek için önlemler almanız gerekir. Bunun için program, yazılım modülleri olarak adlandırılan parçalar tarafından geliştirilmiştir. Bu programlama yöntemi modüler programlama denir.

Modül, belirli bir değeri olan ve diğer yazılım modüllerinden çevrimdışı belirtilen işlem işlevleri sağlayan bir programın bağımsız bir parçasıdır. Her bir yazılım modülü, diğer program modüllerinden ayrı olarak programlanmış, derlenir ve hata ayıklanır ve böylece fiziksel olarak diğer yazılım modülleriyle ayrılmıştır. Her yazılım modülü dahil edilebilir farklı programlarKullanımı için kullanılan kullanım koşulları yapılması durumunda yapılır. Şunlar. İyi düşünülmüş modül, programlamada çoğaltmayı önler.

Herhangi bir PS'nin rahatlık için tasarlanmış kendi yapısı vardır:

  • 1. Geliştirme
  • 2. Programlama
  • 3. Hata ayıklama
  • 4. Değişiklikler

Ayrıca, PS'nin yapılandırılması sağlar:

  • 1. İşçi tarafından işleri dağıtın, indirmelerini ve gerekli geliştirme süresini sağlar
  • 2. Tasarım işinin takvim grafiklerini oluşturun ve PI oluşturma sürecinde bunları koordine edin.
  • 3. İşgücü maliyetlerini ve tasarım çalışmalarının maliyetini kontrol edin.

PS'yi oluştururken, çoğalla birlikte kullanılan modüller tahsis edilir, zamanlama ve işgücü maliyetlerinin bir bütün olarak azaltıldığı gibi zamanlama ve işgücü maliyetlerinin azaldığı.

Bazı PS standart prosedür kütüphanelerinden, işlevlerinden, nesnelerin ve veri işleme yöntemlerinden hazır modülleri kullanın.

Tipik yapı PS:

belayer Hata Ayıklama Yazılımı Modülü

Masa. Modül türleri

Modül Özellikleri:

  • 1. Bir giriş ve bir çıktı - girişte, program modülü belirli bir kaynak veri kümesi alır, veri işleme gerçekleştirir ve sonucu döndürür.
  • 2. İşlevsel tamamlama - Modül, her bir işlevi tam olarak uygulamak için bir işlem listesi gerçekleştirir.
  • 3. Mantıksal Bağımsızlık - Modülün sonucu yalnızca kaynak verilerine bağlıdır ve diğer modüllerin çalışmasına bağlı değildir.
  • 4. Diğer yazılım modülleriyle zayıf bilgi bağlantıları - Mümkünse modüller arasındaki bilgi alışverişi en aza indirilmelidir.
  • 5. Boyut ve karmaşıklıkta öngörülebilir.

Her modül bir modül spesifikasyonu ve gövdesinden oluşur.

Şartname - Modül Kullanım Kuralları.

Vücut, işleme işlemini uygulamanın bir yoludur.

Modüler Programlama Prensibi PS:

  • 1. Fonksiyonların Kompozisyonunun Tanımı ve Bağlantısı
  • 2. Bu işlevleri uygulayan bir dizi yazılım modülünün tanımı

Bir algoritma yaparken, dikkate alınması gerekir:

1. Her modül daha yüksek bir modül yürütmek için çağrılır ve çalışmayı bitirir, modüle neden olan kontrolü döndürür.

Programın yapısını geliştirme yöntemleri.

Programın modüler bir yapısı olarak, tartışmalı dalları olan ağaçlar da dahil olmak üzere bir ağaç yapısı kullanmak gelenekseldir. Ağacın düğümlerinde, modüller yerleştirilir ve oklar, modüllerin (yani, geldiği modülün metninde) modüllerin metninde, girdiği modüle bir bağlantı var).

Programın modüler yapısı, bu programı oluşturan bir dizi modül belirtimi içermelidir. Yazılım modülü spesifikasyonu şunları içerir:

  • 1. Kullanılan programlama diline bir temyiz yapmasına izin veren girişlerinin sözdizimi özellikleri
  • 2. İşlevsel Modül Şartnamesi (bu modül tarafından gerçekleştirilen tüm fonksiyonların açıklaması).

Programın yapısını geliştirmek için farklı yöntemler vardır. Genellikle 2 yöntem kullanılır:

  • 1. Yükselen Yöntem
  • 2. Aşağı doğru gelişim yöntemi

Yükselen yöntem.

İlk önce bir ağaç şeklinde bir ağacın modüler bir yapısı oluşturun. Ardından, program modülleri de, düşük seviye modülleriyle başlayarak, böyle bir şekilde programlanabilecek tüm modüller programlanacak şekilde programlanacak şekilde programlanmıştır. Tüm program modülleri programlandıktan sonra, programlamalarının yapıldığı aynı (artan) bir şekilde, ilke olarak alternatif test ve hata ayıklama. İlk bakışta, programı geliştirmek için böyle bir prosedür oldukça doğal görünüyor: Her programlama modülü, doğrudan programlanan alt modüller aracılığıyla ve test ederken zaten hata ayıklanan modülleri kullanırken eksprese edilir. Tavsiye edilmedi, çünkü:

  • 1. Herhangi bir modülü programlamak için, bunlar tarafından kullanılan metinler hiç gerekli değildir - bunun için, modülün yalnızca belirtilen her bir modülün (doğru bir çekiciliği yapmamızı sağlayan bir hacimde) ve Test etmek için bunları simülatörlerle (fiş) değiştirmek mümkündür.
  • 2. Biraz ölçüde her program bunun için bazı dahili, ancak kavramsal bütünlüğünü belirleyen ve gelişimi sürecinde oluşturulduğunu belirleyen modülleri (uygulama ilkeleri, varsayımlar, veri yapıları vb.) İçin küresel düşünceler. Yükselen gelişme ile, düşük seviyeli modüller için bu küresel bilgiler henüz belli değil, bu yüzden bunları yeniden programlamak için çok sık gereklidir.
  • 3. Testin arttığında, her modül için (kafa hariç), test modülü için bilgi ortamının gerekli durumunu hazırlamalı ve gerekli çekiciliği üretmek için bir ana bilgisayar programı oluşturmanız gerekir. Bu, büyük miktarda "hata ayıklamayı" programlamaya yol açar ve aynı zamanda modüllerin testlerinin, çalışma programında gerçekleştirilecekleri koşullar altında tam olarak yapıldığını garanti etmemektedir.

Aşağı gelişim yöntemi.

İlk önce bir ağaç şeklinde bir ağacın modüler bir yapısı oluşturun. Ardından, program modülleri de modülün kendisinden başlayarak programlanmıştır. Üst düzey (Kafa), başka bir modülü programlamaya, yalnızca modül zaten programlanmışsa, belirtilen. Tüm program modülleri programlandıktan sonra, alternatif testler ve aynı (alçakgönüllü) bir şekilde hata ayıklama.

Olumlu taraflar

  • 1. Bu programın geliştirilmesi sırasına göre, gerekli tüm küresel bilgiler zamanında oluşur, yani. Programlama modülleri ortadan kaldırıldığında son derece hoş olmayan yanlış hesaplama kaynağı.
  • 2. Azalan test programı tarafından üretilen önemli ölçüde kolaylaştırılmış ve test modülleri. İlk program, tüm test programını temsil eden programın baş modülüdür ve bu nedenle bu programın gerçekleştirileceği bilgi ortamının "doğal" durumu ile test edilmektedir. Aynı zamanda, kafayı kaldırabilecek tüm modüller simülatörleri ile değiştirilir. Modülün simülatörü, basit bir yazılım fragmanı sinyalidir, programın uygun şekilde çalışması için gerekli olan giriş parametreleri işlemiyle ve gerekirse, uygun uygun sonuçtan önce gerekirse, giriş parametrelerinin işlemi ile ilgilidir. . Kafayı ve ardından herhangi bir modülün test edilmesini ve hata ayıklamasını tamamladıktan sonra, modüllerden birinin test edilmesine geçiş şu an varsa simülatörler tarafından temsil edilir. Bunu yapmak için, test için seçilen modülün simülatörü, bu modülün kendisi ile değiştirilir ve test için seçilen modüllerin simülatörleri görünebilir. Ek olarak, bu tür her modül, program yapıldığında bu modüle referansın zamanından kaynaklanan bilgi ortamının "doğal" durumlarıyla test edilecektir. Böylece, "hata ayıklama" programlama büyük hacmi, modül programında kullanılan yeterince basit simülatörlerin programlanmasıyla değiştirilir. Ek olarak, simülatörler, simülatörler tarafından verilen gerekli sonuçları belirterek test seçim işlemi için uygun bir şekilde kullanılır.

Düşünülen yöntemler klasik olarak adlandırılır. Bunlarda, programın modüler ağaç yapısı programlama modülleri öncesi geliştirilmelidir. Bununla birlikte, bu yaklaşım bir dizi itiraza neden olur: programın programlamasının programın yapısını oldukça doğru ve anlamlı bir şekilde geliştirmek için geliştirilebilmesi muhtemel değildir.

Program geliştirme için yapıcı ve mimari yaklaşımlar ile modüler yapı, modüllerin programlama işlemi sırasında oluşturulur.

Yapıcı Yaklaşım (DownLink Değişikliği)

Programın modüler ağaç yapısı modülün programlama işlemi sırasında oluşur. Öncelikle, programın bir bütün olarak özelliklerine dayanarak, baş modülünü programlamıştır, programın özellikleri aynı anda baş modülünün özellikleridir, çünkü ikincisi, programın işlevlerini yerine getirme sorumluluğunu üstlenir. Kafa modülünü programlama işleminde, bu program oldukça büyükse, kafa modülünün programlandığı açısından dahili fonksiyonlar tahsis edilir. Bu, her bir özellik için, fragmanını uygulayan programın özelliklerinin daha sonra bazı alt yapı modülleri tarafından temsil edilebileceği anlamına gelir. Burada ayrıca, seçilen fonksiyonun yürütülmesi için de yükümlülüğün kafasını (belki de yalnızca) modülünü aldığını, böylece seçilen işlevin özellikleri aynı anda bu desteğin baş modülünün özellikleridir. Programın baş modülünde, seçilen fonksiyona hitap etmek için, belirtilen alt alanın baş modülüne, oluşturulan spesifikasyonuna uygun olarak dönüştürülür. Böylece, bir program geliştirmenin ilk adımında (baş modülünü programlarken), ağacın üst kısmı, örneğin, Şekil 2'de gösterilmiştir. 7.1.

İncir. 7.1.

Seçilen başka bir modülü programlarken benzer eylemler yapılır. şu anki durum Programın ağacı, belirtilen numaradan, ancak henüz programlanmış modüllerden değil. Sonuç olarak, program ağacının bir sonraki deformasyonu, örneğin, Şekil 2'de gösterilmiştir. 7.2.

Mimari yaklaşım (yukarı bağlantı modifikasyonu)

Programın modüler yapısı, modülün programlama işlemi sırasında oluşturulur. Ancak aynı zamanda gelişimin bir başka amacı ayarlanmıştır: kullanılan programlama dili seviyesinin iyileştirilmesi ve belirli bir programın gelişimi değil. Bu, her biri bu alandaki farklı görevleri çözerken kullanılabilecek ve bu işlevleri gerçekleştiren bireysel yazılım modülleri programlanmış olarak, her biri belirli bir nesne alanı için tipik fonksiyonların tahsis edildiği anlamına gelir. Bu tür fonksiyonların seçim süreci, belirli bir konu alanındaki problem çözme deneyiminin birikimi ve genelleştirilmesiyle ilişkili olduğu için, genellikle ayrı modüller tarafından ayrılacak ve uygulanacak ve daha sonra daha önce seçilen işlevleri kullanan modüller tarafından tahsis edilmek üzere tahsis edilir. yavaş yavaş ortaya çıkıyor. Bu modül seti, belirli bir konu alanının geliştirilmesinde, yapıcı bir yaklaşım çerçevesinde, bu modüllerin bazıları kabul edilebilir olabileceği gerçeğine dayanarak oluşturulmuştur.

Bu, modüler alt seviye yapıların pratiğinde önceden hazırlanmış ve kanıtlayarak, belirli bir program geliştirmenin işgücü maliyetlerinin azaltılmasını mümkün kılar. Bu tür bu yapılar farklı belirli programlarda tekrar tekrar kullanılabildiğinden, mimari yaklaşım, programlamada çoğaltmayı mücadele etmenin bir yolu olarak kabul edilebilir. Bu bağlamda, mimari yaklaşım dahilinde oluşturulan yazılım modülleri genellikle bu tür modüllerin parametrelere ayarlayarak uygulanabilirliğini arttırmak için parametrelendirilir.

İncir. 7.2.

Aşağı doğru uygulama yöntemi. Programlanan her modül, başka bir modülün programlanmasına geçmeden hemen önce test edilmeye başlar.

Kural olarak, prosedürler ve işlevler, prosedürler ve fonksiyonların bölümlerinde bulunur, yani programlara veya diğer alt yordamlara gömülürler. Böyle bir yatırımla, alt yordamın açıklaması bloğun bileşenidir ve alt rutinin kendisi bir blok içerir, ardından dış kavramlarını girebilirsiniz ve İç blok.

Harici birim, alt yordamın yatırıldığı bir bloktur. İç blok alt yordamın kendisidir. Bu alt program için dış bloklarda bulunan tüm açıklamalar, bu alt rutini oluşturan bloğa küresel olarak denir. İç bloğun bulunduğu tüm açıklamalar yerel olarak adlandırılır. Yuvalama seviyeleri kavramını girebilirsiniz. Prosedürlerin ve fonksiyonların açıklamasında iki veya daha fazla alt yordamı açıklarsa, bu alt programların bir yuvalama seviyesinin alt programlarını söylüyorlar. Dış blokla ilgili olarak, içlerdir. Alt programlar kendileri ile ilgili olarak, bir iç içe geçme düzeyi olduğundan, harici veya iç şartları kullanamayız. Bir alt rutin, dış bloğun prosedürlerinin ve işlevlerinin açıklamalarının açıklamalarına gömülürse, başka bir alt rutinin aynı bölümde bulunduğu, bu alt yordamları farklı yuvalama seviyelerinden bahsediyoruz. En iç altprogramm olan üçüncü blok için, gömülü olan her iki blok da dış olacaktır. Bu alt programın iç içe geçme seviyesi 2. İkinci blok için, üçüncü blok içsel olacaktır ve birincisi haricidir. İkinci bloğun (1) yuvalama seviyesi 1. İlk blok için (harici) ikinci ve üçüncü bloklar dahili olacaktır. İlk bloğun iç içe geçme seviyesi, yani. Bu birim ana programdır.

Örneğin, dilin yazarı tarafından önerilen blokların yapısını düşünün (Şek.16.16). Burada, programın yedinci bölümünde, iki alt yordam b ve c gömülüdür. Subroutine D'teki alt yordamda D.

İncir. 16.16. - Blok Yapısı Örneği

Açıklamaların kapsamında anlayacağız. Etiketlerin açıklamaları yalnızca açıklandıkları blok operatörleri bölümünde geçerlidir. Diğer tüm açıklamalar, yalnızca tanımlandıkları bloğun içinde değil, aynı zamanda bu birime gömülü olan tüm iç bloklarda (yuvalama derinliğinden bağımsız olarak) hareket eder. Ortaya çıkabilecekleri gibiydi küresel ve yerel açıklamalar arasındaki çatışmalarÇeşitli kavramlar farklı bloklarda adlandırılabildiğinden. Bu tür çatışmaların gerçekleşmemesi için, aşağıdaki kural alınır - yerel açıklamalarda tanımlanan tüm adlar, Global Açıklamalarda açıklanan çakışan isimlerin eylemlerini iptal eder. İncirde. 16.17 Blokların bir örneğinden seviyelere kadar konumunu göstermektedir. Burada, ok çizgileri, küresel açıklamaların eylemini gösterir. Bu yüzden G bloğunda, D, B, A'yı dış blokların açıklamaları vardır.

İncir. 16.17. - Seviyelerdeki blokların yeri ve küresel açıklamalar

Özellikle alt yordamlara erişimi düşüneceğiz. Herhangi bir alt yordam çağrılabilir:

    açıklandığı blok operatörlerinden;

    operatörlerin kendisinden (doğrudan özyineleme);

    herhangi bir iç alt rutinin operatörleri bölümünden buna göre (dolaylı özyineleme);

    bu alt yordamın, daha önce aynı blokta tarif edilen herhangi bir alt programın operatörlerinin bölümünden.

Bu kurallar aşağıdaki gibi yeniden düzenlenebilir - herhangi bir alt program arayabilir:

    bunun alt yordamları bölümünde açıklanan herhangi bir alt program;

    kendini (doğrudan özyineleme);

    buna göre tüm harici alt programlar (dolaylı özyineleme);

    altprogramlar daha önce aynı yuvalama düzeyinde açıklanmıştır.

Blokların (alt yordamların) örneğin etkileşimi, Şekil 2'de gösterilmektedir. 16.18.

İncir. 16.18 - Bloklar arasındaki etkileşimin bir örneği

Burada, ok çizgileri, yürütme için alt yordamları çağırma olasılığını göstermektedir (oklar aramanın yönünü gösterir). Örneğin, programdan, yalnızca yedinci bölüme yatırılan C'deki alt programlar ve C'lik alt programlara neden olabilir. SUBROUTINE F, SUBROUTINE F (doğrudan özyineleme), gömülü (dolaylı özyineleme) ve alt programın E (aynı seviyede ve daha önce tarif edildiği) alt yordamını C'den. S Programları A, BLOUTINES B ve C alt yordamlarından kaynaklanabilir. Tablo 16.9 bloklar arasındaki tüm etkileşimleri listeler. Burada, ana algoritma, alt rutin çağrısının yapıldığı bir bloktur, yardımcı algoritma denilen alt rutindir.

Tablo 16.9.Bloklar arasındaki etkileşimin bir örneği

Programın modüler yapısı

Uygulamayı basitleştirmek için, güvenilirliğini ve verimliliğini geliştirmek, modüler bir yaklaşım uygular. Modüllerin bölünmesi, bu gelişimi kolaylaştıran, daha küçük fonksiyonel bloklar için görevi kırmanıza olanak sağlar. Bu yaklaşımı sistemin geliştirilmesine uygulamak, kolayca genişleyebilirsiniz fonksiyonellik Etkileyen bireysel modüller kaynak Diğer. Karmaşıklığı azaltmak yazılım, Modülleri küçük ve daha bağımsız hale getirmek gerekir. Modülleri daha bağımsız hale getirmek için iki yöntemi uygulayabilirsiniz:

Modüllerin iç bağlantılarının amplifikasyonu;

Modüller arasındaki ilişkiyi zayıflatmak.

Bu yapı, program modüllerinin fonksiyonel bağımsızlığını sağlamak için kullanılır. Modüllerin fonksiyonunun maksimum ayrılması. Bundan dolayı, modüllerin iç bağlılığı artar ve dış kavramaları zayıflar.

Program modülleri, belirli bir veri setini işleyen yöntemler içerdiği için güçlü bir iç bağlantıya sahiptir ve işlevsel amaçlarına sahipler.

Kütüphanenin modüler yapısı, Şekil D.1'deki Ek D'de, Şekil D.2'deki görselleştirici olarak sunulmaktadır.

Test yapmak

Hata ayıklama yazılımının tüm aşamalarında, test en fazla zaman alıcı ve pahalıdır. Tipik test yazılımı oluştururken, toplam zamanın yaklaşık% 40'ı ve toplam yazılım maliyetinin% 40'ından fazlası vardır.

Yazılımın güvenilirliğini artırmak için test gereklidir, aksi takdirde gerekmez. Hataları ortadan kaldırarak güvenilirliği artırabilirsiniz. Bu nedenle, anlamdan yoksun olan programın doğruluğunu kanıtlamak için test. Test etme hataları ortaya çıkarabilir, düzeltebilir ve böylece yazılımın güvenilirliğini artırabilirsiniz.

Projenin uygulanması sırasında, Programın metninin resmi bir analizini gerçekleştirirken, programlamanın erken aşamalarında çok sayıda hatayı tanımlamanın ve programın kullanımı için programın doğruluğunu doğrulamasını sağlayan her sınıf, her sınıf iyice test edildi. Bazı test veri kümeleri. Bu durumda, her kaynak verilerinin her bir kombinasyonu ve ayrıca istenen sonucu olarak ayarlanan her kaynak veri için sonuçların uyumu izlendi.

Belgeleme

Teknik görev

Pek çok proje için manzaraları kullanmanız gerekir. Bu yazılım paketi, üç boyutlu bir manzara oluşturmanıza olanak sağlar ve monitör ekranında gösterir.

6.1.1 Geliştirme Randevusu

Yazılım paketi manzaraları oluşturmak ve görüntülemek için tasarlanmıştır.

6.1.2 Program veya yazılımın gereksinimleri

Bir kullanıcı için, uygulama aşağıdaki özellikleri sağlamalıdır:

1) Minimum ve maksimum yükseklik, kartın boyutu, dağların taşlanması gibi giriş verilerini tanıtma olasılığı;

2) Peyzaj üretimi;

3) Peyzajın üçüncü taraf programlarında kullanmak için saklanması;

4) Resmin ekrandaki çıktılarla sonuçlanan sonucun gösterilmesi.

6.1.3 Güvenilirlik için Gereksinimler

İÇİNDE yazılım kompleksi Giriş bilgileri, kabul edilebilir değerler aralığına ve yapısal doğruluğun uygunluğuna ait olan türlere uygunluk için kontrol edilmelidir, ek olarak, görselleştirici gerekli tekniklere uygun olarak ekipmanları kontrol etmeli ve yazılım. Hata durumunda, bilgilendirici teşhis mesajlarının çıktı olasılığını sağlayın.

6.1.4 Teknik araçların kompozisyonu ve parametreleri için gereksinimler

Programın minimum işleyişi için gerektirir: kişisel bilgisayar, 2 GB rasgele erişim belleği, 50 MB boş disk alanı; Klavye fare.

İçin optimal iş Uygulamalar en az 3GB RAM RAM gerekir.

6.1.5 Bilgi ve Yazılım Uyumluluk Gereksinimleri

Program, Windows 7 ve üstünü çalıştıran çalışmalıdır; DirectX 11; Visual C ++ 2015; . Net çerçeve. 4.5 ve daha yüksek.

6.1.6 Yazılım Dokümantasyon Gereksinimleri

Program belgeleri, Kütüphane belgelerinin kullanım kılavuzunu içermelidir.

Kullanım kılavuzu

Program Shell.exe dosyasını başlatmaya başlar, başladıktan sonra, Şekil 6.1'de gösterilen pencereyi göreceksiniz.

"Dosya" menüsünü arayın, verileri sıfırlamak için "Temizle" düğmesini kullanabilirsiniz. standart değerler. "BMP olarak kaydet" düğmesini kullanarak, yükseklik haritasını BMP formatında kaydedin. "Obj olarak kaydet" düğmesini kullanarak, manzarayı OBJ formatında kaydedebilirsiniz. Üç boyutlu formda görebileceğiniz görselleştiriciyi başlatmak için "Görüntüle" düğmesine tıklayarak, Şekil 6.2'de gösterilir.

Şekil 6.1 - Program Penceresi


Şekil 6.2 - Program Penceresi

"Ayarlar" menüsünü arayın, programı görselleştirme için yapılandırmak için "Program Ayarları" düğmesini kullanabilirsiniz. "Görselleştirme Ayarları" düğmesini kullanarak, görselleştiriciyi yapılandırabilirsiniz.

Görüntüleyicideki hareket, W, A, S, D, W, A, S, D, Talimatlar ileri, sol, sağa karşılık gelen düğmelerle gerçekleştirilir.

Kamera kontrolü fare tarafından yapılır.

Kütüphane Belgeleri

Kütüphaneyle çalışmak için, Landscapagenerator.dll dosyasını projenize bağlamanız gerekir. Projenin peyzaj generatör sınıfının bir örneğini bildirmesi gerekiyor. Sınıf, genişlik, uzunluk, minimum ve maksimum yükseklik, yatay, peyzaj üretimi, peyzaj geri dönüşleri gibi peyzaj parametrelerini değiştirmek için aşağıdaki yöntemleri içerir.

Yukarıda belirtildiği gibi, fonksiyonun gövdesi olabilir blok veya kompozit Operatör. Blok Nesnelerin ve operatörlerin bir dizi açıklaması olarak içerebilir yuvalanmış bloklar ve sonra görünür harici ve yerel Blokla ilgili olarak değişkenler küresel Programın dışında açıklanan değişkenler.

Niteliklere ek olarak isim vermek ve tip Nesne orada iki tane daha nitelik var - dürbün ve ömürTanımlanmış depolama sınıfı (hafıza)varsayılan veya bir programcı tarafından sordu. Kapsam (görünürlük)- Bu, programın metninin bir parçasıdır. görmek ve belki kullanılmış bu nesne. Kaplama bloğunda açıklanan değişkenler, iç içe geçmiş bloklar için haricidir ve bunları bir istisnada eylemlerinin alanına dahil eder - Değişken öncelik bitmiş aynı ek yük Değişken kapanır ve iç değişkenin türü bile geçersiz kılınabilir.

Ömür - Bu, nesnenin değerinin (değişken veya işlev) olduğu zaman aralığıdır. mevcut Programın bir kısmında kullanım için. Değişkenin ömrünün süresi olabilir lan veya küresel. Nesne, C. küresel Hayatın zamanı, bunun için dağıtılan bir hafıza ve program yürütme süresi boyunca belirli bir değere sahiptir. İçin yerel Nesne öne çıkıyor yeni Bloğa her girişte hafıza alanı ve Özgür bırakılmış Bloktan çıkarken, nesnenin değeri kaybeden. Resmi parametreler dahil olmak üzere fonksiyonlarda açıklanan değişkenler lan Dürbün. Programdaki fonksiyonlar haricibirbiriyle ilişkili ve küreselyaşam süresi, yani, tüm yürütme süresi programı boyunca vardır.

SI programı, verilen ve kaydedilen ayrı bir yazılım modülüdür. harici hafıza gibi orijinal dosya ".C" uzantısı ile, örneğin, myprog.c.

Program modülünün yapısı ve nesnelerinin çalışması alanı aşağıdaki şemaya sunulabilir:

/ * Küresel nesneler ve açıklamalar * / / * eylem alanı * /

Önişlemci yönergeleri küresel Makroşetik

İşlevlerin prototipleri

türlerin açıklamaları

küresel değişkenlerin açıklamaları

fonksiyon başlığı yerel

(harici blok değişkenleri;

operatörler;

(İç blok l oğal

diğer fonksiyonların açıklamaları

/ * Programın sonu * /

Misal.İç içe blokların aynı değişkenlerle kullanılması.

Program:

(int i \u003d 2; / * i - Değişken harici blok * /

İnt sayımı \u003d 0; / * Sayma - Harici Değişken * /

süre (saymak<= i) /* цикл внешнего блока */

(int \u003d 0; / * i - İç ünitenin yerel değişkeni * /


sayım ++; / * Döngü Metre * /

printf ("döngüde: sayım \u003d% d; i \u003d% d \\ n", sayım, i);

/ * İç ünitenin sonu, değişken i harici blok * / /

printf ("Döngü dışı: sayım \u003d% d, i \u003d% d", sayım, i);

Programın sonucu:

Döngü sayısında \u003d 1 i \u003d 0

Çevrim sayısında \u003d 2 i \u003d 0

Sayım sayısında \u003d 3 i \u003d 0

Dış döngü sayısı \u003d 3 i \u003d 2

Programcı olabilir açık Hafıza sınıfları (depolama) özellikleri kullanarak eylem ve ömür alanının özelliklerini belirleyin: için değişkenler (Otomatik - yerel, kayıt - kayıt, statik - statik, dış - dış) ve için fonksiyonlar (Statik, Extern).

Otomatik depolama sınıfına sahip değişkenler (varsayılan olarak kabul edilir) ve kayıt olun lan Blokta ve eylem alanında ve yaşam zamanında. Otomatik sınıfa sahip değişkenler için, yığın (geçici bellek) ve ücretsiz işlemci kayıtlarından birinde Kayıt sınıfı ile hafıza tahsis edilir.

Statik sınıfa sahip değişkenler için hafıza veri segmentinde (statik program hafızası) verilir ve yığında değil, kayıt etmek Değeri çıkış Bloktan. Eğer yoksa açık Bu değişkenlerin başlatılması, o zaman varsayılan 0 olarak yüklenirler. Başlatma yapılır bir Bir kez ve bloğa yeni bir girişle tekrarlanmadı. Statik sınıf nesneleri var lan kapsam (blok) ve küresel Ömür boyu (program yürütme süresi).

Misal. Statik değişkenleri kullanın.

Program:

geçersiz örnek (int c); / * Prototip işlevi * /

void Main () / * Ana İşlev * /

(İnt sayısı; / * Yerel blok değişkeni * /

İçin (Count \u003d 9; Count\u003e \u003d 5; Sayım - \u003d 2) / * Çevrim Sayaç * /

Örnek (sayı); / * Çağrı işlevi * /

geçersiz örnek (int c) / * fonksiyon başlığı * /

(int f \u003d 1; / * Yerel değişken * /

statik int stat \u003d 1; / * statik değişken * /

printf ("c \u003d% d, f \u003d% d, stat \u003d% d \\ n", c, f, stat);

stat ++; / * Statik değişkeni değiştir * /

Program Sonuçları: C \u003d 9, f \u003d 1, stat \u003d 1

c \u003d 7, f \u003d 1, stat \u003d 2

Önceden, internette bir tablo tipi katman yaygındı. Bununla birlikte, zamanla, sitenin yapısını oluşturma yaklaşımı modası geçmiştir ve bir blok katmanı değiştirmek için geldi.

Tablodan blok düzeni farklılıkları

Tablo katmanı, sayfanın içeriğinin etiketin içinde olduğu anlamına gelir.

, blok düzeni kavramı, evrensel etiketlerin aktif kullanımına dayanır.
İçeriğin diğer etiketleri de dahil olmak üzere yerleştirildiği içeride.

Blok katmanı tablolardan yoksundur - arama motorları Daha iyi endekslendi, kodu çok sallıyor değil ve bloklar

Kim "Katmanlar" olarak adlandırmayı sever, başlangıçta evrensel, yani "her şey için", oysa
- Bu, tablo verilerini görüntülemek için kullanmak istediğiniz ve daha fazla bir şey yok.

Tek somut eksi blok katmanı - üzerinde yapılan siteler tarayıcılarda farklı görüntülenebilir. Bunu önlemek için, "Crossvuster" düzeni yapmanız gerekir, yani, aynı gözlemci tarafından görüntülenir.

Blok'un Özü Worski

İÇİNDE grafik editörü Bir site düzeni oluşturulur: Hangi sayfa alanının (kapak, alt, yan panel, ana içeriğin) ne olacağını ve işgal edeceği, fotoğraflar, arka planlar hazırlanacak yer.

Sayfanın her kısmı bloğuna yerleştirilir

: Sitenin Üstü - İlk olarak, Menü - ikinci, içeriğe - üçüncü, vb. Her blok, HTML'nin içeriği ile doldurulur ve CSS Markup kullanılarak yürütülür.

Nihai HTML belgesi bir grup bloktur

İçeriden içeriği ile. Tasarım genellikle sayfa etiketine bağlı ayrı bir CSS dosyasında bulunur. veya en azından kabın içinde