Menü
Bedava
kayıt
ev  /  bellenim/ Moskova Devlet Baskı Sanatları Üniversitesi. Programın blok yapısı

Moskova Devlet Baskı Sanatları Üniversitesi. Programın blok yapısı

Yukarıda belirtildiği gibi, fonksiyon gövdesi olabilir engellemek veya bileşik operatör. Engellemek bir dizi nesne ve işleç tanımının nasıl içerebileceği iç içe bloklar ve ardından harici ve yerel bloğa göre değişkenler ve küresel program fonksiyonlarının dışında tanımlanan değişkenler.

Niteliklere ek olarak isim ve tip nesne, iki özellik daha var - kapsam ve ömür tarafından tanımlanan depolama sınıfı (bellek) varsayılan olarak veya programcı tarafından ayarlanır. Kapsam (görünürlük) olduğu program metninin bir parçasıdır. görmek ve belki kullanılmış bu nesne... Çevreleyen blokta açıklanan değişkenler, iç içe blokların dışındadır ve bunları bir istisna dışında kapsamlarına dahil eder - dahili değişken var bir önceliküstünde isimsiz harici kapatılarak değişkendir ve dahili bir değişkenin türü bile geçersiz kılınabilir.

Ömür Bir nesnenin (değişken veya işlev) değerinin gerçekleştiği zaman aralığıdır. mevcut Programın bir bölümünde kullanmak için. Bir değişkenin ömrü olabilir yerel veya küresel... nesne, s küreselömür boyu, kendisine ayrılmış bir belleğe ve tüm program yürütme süresi boyunca belirli bir değere sahiptir. İçin yerel nesne öne çıkıyor yeni her blok girildiğinde hafıza alanı ve Özgür bırakılmış bloktan çıkarken, nesnenin değeri kayıp... Biçimsel parametreler de dahil olmak üzere fonksiyonda açıklanan değişkenler, yerel kapsam. Programdaki işlevlerin kendileri harici birbirleriyle ilişkili ve sahip küreselömür boyu, yani programın tüm yürütme süresi boyunca var olurlar.

Bir C programı, biçimlendirilen ve harici belleğe şu şekilde yazılan ayrı bir program modülüdür. Orijinal dosya“.c” uzantısıyla, örneğin, myprog.c.

Program modülünün yapısı ve nesnelerinin kapsamı aşağıdaki şema ile gösterilebilir:

/ * Global Nesneler ve Açıklamalar * / / * Kapsam * /

Önişlemci yönergeleri küresel makrolar

fonksiyon prototipleri

tür açıklamaları

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

fonksiyon başlığı yerel

(blokun dış değişkenleri;

operatörler;

{ iç ünite ben yuvarlak

diğer işlevlerin açıklamaları

/ * programın sonu * /

Örnek. Aynı ada sahip değişkenlerle iç içe blokları kullanma.

programı:

(int i = 2; / * i - harici blok değişkeni * /

int sayı = 0; / * say - harici değişken * /

while (sayım<= i) /* цикл внешнего блока */

(int = 0; / * i - iç bloğun yerel değişkeni * /


saymak ++; / * döngü sayacı * /

printf (“Bir döngüde: say =% d; i = % d \ n”, say, i);

/ * iç bloğun sonu, dış bloğun i değişkenine geri dön * /

printf (“Döngü dışı: say = % d, i = % d”, say, i);

Program sonucu:

Döngüde sayı = 1 i = 0

Döngüde sayı = 2 i = 0

Döngü sayısı = 3 ben = 0

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

programcı yapabilir Açıkça bellek (depolama) sınıfı belirteçlerini kullanarak kapsam ve yaşam boyu niteliklerini ayarlayın: için değişkenler(otomatik - yerel, kayıt - kayıt, statik - statik, harici - harici) ve için fonksiyonlar(statik, dış).

Depolama sınıfı otomatik (varsayılan) ve kayıt olan değişkenler, yerel hem kapsam hem de kullanım ömrü açısından blokta. Otomatik sınıfı olan değişkenler için, bellek yığında (geçici bellek) ve kayıt sınıfıyla - boş işlemci kayıtlarından birinde tahsis edilir.

Statik sınıfa sahip değişkenler için bellek, veri segmentinde (programın statik belleği) tahsis edilir, çünkü yığında değil Tut değeri çıkış bloktan. eksikse açık bu tür değişkenlerin başlatılması, daha sonra varsayılan 0'a ayarlanmıştır. Başlatma gerçekleştirilir bir kez ve tekrar bloğa girerken tekrarlamaz. Statik sınıfının nesneleri yerel kapsam (blok) ve küreselömür (program yürütme süresi).

Örnek... Statik değişkenleri kullanma.

programı:

geçersiz örnek (int c); / * fonksiyon prototipi * /

void ana () / * ana işlev * /

(int sayısı; / * yerel blok değişkeni * /

for (sayım = 9; sayım> = 5; sayım - = 2) / * sayaç döngüsü * /

örnek (sayım); / * işlev çağrısı * /

void örneği (int c) / * fonksiyon başlığı * /

(int f = 1; / * yerel değişken * /

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

printf (“c =% d, f =% d, stat =% d \ n”, c, f, stat);

durum ++; / * statik değişkeni değiştir * /

Program sonuçları: c = 9, f = 1, durum = 1

c = 7, f = 1, durum = 2

Modüler program yapısı

Uygulamayı basitleştirmek, güvenilirliğini ve verimliliğini artırmak için modüler bir yaklaşım benimsenmiştir. Modülerleştirme, bir görevi daha küçük işlevsel bloklara ayırmanıza olanak vererek geliştirmeyi kolaylaştırır. Bu yaklaşımı sistem tasarımına alarak kolayca genişletebilirsiniz. işlevsellik etkilemeden bireysel modüller kaynak diğerleri. Karmaşıklığı azaltmak için yazılım, modülleri daha küçük ve daha bağımsız hale getirmeniz gerekiyor. Modülleri daha bağımsız hale getirmek için iki yöntem uygulanabilir:

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

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

Bu yapı, program modüllerinin işlevsel bağımsızlığını sağlamak için kullanılır, yani. modüllerin fonksiyonlarının maksimum ayrımı. Bu, modüllerin dahili bağlantısını arttırır ve harici yapışmalarını zayıflatır.

Program modülleri, belirli bir veri kümesini işleyen yöntemler içerdiklerinden ve kendi işlevsel amaçlarına sahip olduklarından, güçlü bir iç tutarlılığa sahiptir.

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

Test yapmak

Yazılım hata ayıklamanın tüm aşamaları arasında test etme, en çok zaman alan ve pahalı olanıdır. Tipik yazılım geliştirmede test, toplam sürenin yaklaşık %40'ını ve toplam yazılım maliyetinin %40'ından fazlasını oluşturur.

Yazılımın güvenilirliğini artırmak için test yapılması gerekir, aksi takdirde gereksizdir. Hataları ortadan kaldırarak güvenilirliği artırabilirsiniz. Bu nedenle, programın doğruluğunu kanıtlamak için test yapmak anlamsızdır. Test, hataları belirleyebilir, düzeltebilir ve böylece yazılımın güvenilirliğini artırabilir.

Projenin uygulanması sırasında, her sınıf kapsamlı testlere tabi tutuldu, bu sırada program metninin resmi bir analizi yapıldı, bu da programlamanın erken aşamalarında çok sayıda hatanın tespit edilmesini ve programın doğruluğunu kontrol edilmesini sağladı. belirli test veri setlerini kullanarak. Aynı zamanda, ilk verilerin her bir kombinasyonunun yanı sıra, her bir ilk veri seti için sonuçların gerekli sonuca uygunluğu kontrol edildi.

belgeleme

teknik görev

Birçok proje peyzaj kullanımını gerektirir. Bu yazılım paketi, üç boyutlu bir manzara oluşturmanıza ve bunu monitör ekranında görüntülemenize olanak tanır.

6.1.1 Geliştirmenin amacı

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

6.1.2 Bir program veya yazılım ürünü için gereksinimler

Kullanıcı için uygulama aşağıdaki yetenekleri sağlamalıdır:

1) minimum ve maksimum yükseklikler, harita boyutları, dağların dikliği gibi girdi verilerini girme yeteneği;

2) peyzaj üretimi;

3) üçüncü taraf programlarda kullanım için manzarayı kaydetme;

4) resmin ekranda görüntülenmesiyle elde edilen sonucun gösterimi.

6.1.3 Güvenilirlik gereksinimleri

Yazılım paketi, izin verilen değerler aralığına ait türlere uygunluk ve yapısal doğruluğa uygunluk açısından giriş bilgilerini kontrol etmelidir, ayrıca görselleştirici, ekipmanın gerekli teknik ve uygunluğa uygunluğunu kontrol etmelidir. yazılım... Hata olması durumunda, bilgilendirici teşhis mesajlarının görüntülenmesi olasılığını sağlayın.

6.1.4 Teknik araçların bileşimi ve parametreleri için gereklilikler

Programın minimum çalışması için şunlara ihtiyacınız vardır: Kişisel bilgisayar, 2 GB rasgele erişim belleği, 50 MB boş sabit disk alanı; klavye fare.

İçin optimum performans uygulamalar en az 3 GB RAM'e ihtiyaç duyar.

6.1.5 Bilgi ve yazılım uyumluluğu için gereklilikler

Program, Windows 7 ve üzeri işletim sistemlerinde çalışmalıdır; DirectX 11; Görsel c++ 2015; ... ağ çerçevesi 4.5 ve üstü.

6.1.6 Yazılım dokümantasyonu için gereklilikler

Programın belgeleri, bir kullanım kılavuzu, kütüphane ile çalışmak için belgeler içermelidir.

Kullanici rehberi

Program shell.exe dosyası çalıştırılarak başlatılır, başlattı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... Yükseklik haritasını bmp formatında kaydetmek için "bmp olarak kaydet" düğmesini kullanın. "Obj olarak kaydet" düğmesi, araziyi obj formatında kaydetmek için kullanılabilir. "Görüntüle" düğmesine tıklandığında, üç boyutlu olarak görülebilecek görselleştirici başlatılacaktır, Şekil 6.2'de sunulmaktadır.

Şekil 6.1 - Program penceresi


Şekil 6.2 - Program penceresi

"Ayarlar" menüsünü çağırın, programı görselleştirme için yapılandırmak için "program ayarları" düğmesini kullanabilirsiniz. "Oluşturma ayarları" düğmesini kullanarak oluşturucuyu özelleştirebilirsiniz.

Görselleştiricideki hareket, w, a, s, d klavyesindeki ileri, sol, sağ, geri yönlere karşılık gelen düğmeler tarafından gerçekleştirilir.

Kamera fare tarafından kontrol edilir.

Kütüphane belgeleri

Kütüphane ile çalışmak için, LandscapeGenerator.dll dosyasını projenize dahil etmeniz gerekmektedir. Proje, LandscapeGenerator sınıfının bir örneğini bildirmelidir. Sınıf, genişlik, uzunluk, minimum ve maksimum yükseklik, dağlık, arazi oluşturma, araziyi bitmap olarak döndürme, obj ve bmp formatında arazi kaydetme gibi arazi parametrelerini değiştirmek için aşağıdaki yöntemleri içerir.

Daha önce, İnternette, adanmış olduğu tablo düzeni türü yaygındı. Bununla birlikte, zamanla, bir site yapısı oluşturmaya yönelik bu yaklaşım modası geçmiş ve yerini bir blok düzeni almıştır.

Blok ve tablo düzeni arasındaki farklar

Tablo düzeni, sayfa içeriğinin etiketin içinde olduğunu ima ediyorsa

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

Blok düzeni, tablo düzeninin dezavantajlarından yoksundur - arama motorları daha iyi indekslenir, kodu çok geniş değildir ve bloklar

"Katmanlar" olarak adlandırılmaya çok düşkün olan, başlangıçta evrensel, yani "her şey için" olarak düşünülmüş, oysa
tablo verilerini görüntülemek için kullanmanız gereken bir tablodur ve başka bir şey değildir.

Blok düzeninin göze çarpan tek dezavantajı, üzerinde yapılan sitelerin tarayıcılarda farklı şekillerde görüntülenebilmesidir. Bundan kaçınmak için, "çapraz tarayıcı" düzenini, yani herhangi bir tarayıcı tarafından eşit olarak görüntülenmesini sağlamanız gerekir.

Blok düzeninin özü

V grafik düzenleyici bir site düzeni oluşturulur: sayfanın hangi alanının (başlık, alt, kenar çubuğu, ana içerik) yer alacağı ve ne kadar alan çekileceği, resim ve arka planların hazırlandığı işaretlenir.

Sayfanın her bölümü kendi bloğuna yerleştirilir

: sitenin üst kısmı - birincide, menü - ikincide, içerik - üçüncüde vb. Her blok HTML kullanılarak içerikle doldurulur ve ayrıca CSS işaretlemesi kullanılarak konumlandırılır ve biçimlendirilir.

Son HTML belgesi, bir bloklar topluluğudur.

içeriği ile. Tasarım genellikle sayfaya bir etiketle bağlı ayrı bir CSS dosyasında bulunur. veya en azından bir kapta