Meny
Är gratis
registrering
Hem  /  Firmware/ Moscow State University of Printing Arts. Blockstruktur av programmet

Moscow State University of Printing Arts. Blockstruktur av programmet

Som nämnts ovan kan funktionskroppen vara blockera eller sammansatt operatör. Blockera hur uppsättningen beskrivningar av objekt och operatorer kan inkludera kapslade block, och sedan extern och lokal variabler med avseende på blocket, och global variabler som beskrivs utanför programfunktioner.

Förutom attributen namn och typ objekt, det finns ytterligare två attribut - omfattning och livstid definieras av lagringsklass (minne) som standard eller inställt av programmeraren. Omfattning (synlighet)Är en del av programtexten där ser och kanske Begagnade detta objekt... Variablerna som beskrivs i det bifogade blocket är utanför de kapslade blocken och inkluderar dem i deras omfattning med ett undantag - inre variabel har en prioritet ovan eponymous extern variabel genom att stänga den, och även typen av den interna variabeln kan åsidosättas.

LivstidÄr det tidsintervall under vilket värdet på ett objekt (variabel eller funktion) tillgängliga för användning i någon del av programmet. Livslängden för en variabel kan vara lokal eller global... Objekt global livslängd, har tilldelat minne och ett visst värde under hela programmets körningstid. För lokal objekt sticker ut ny minnesområde varje gång ett block matas in, och tillgängliga när du lämnar blocket, medan värdet på objektet Är försvunnen... Variablerna som beskrivs i funktionen, inklusive de formella parametrarna, har lokal omfattning. Själva funktionerna i programmet är extern i förhållande till varandra och har global livslängd, det vill säga de existerar under hela programmets körningstid.

Ett C-program är en separat programmodul som formateras och skrivs till externt minne som originalfil med tillägget ".c", till exempel myprog.c.

Programmodulens struktur och omfattningen av dess objekt kan representeras av följande diagram:

/ * Globala objekt och beskrivningar * / / * Omfattning * /

Preprocessor-direktiv en global makron

funktionsprototyper

typbeskrivningar

beskrivningar av globala variabler

funktionshuvud lokal

(externa variabler för blocket;

operatörer;

{ inomhusenhet l runda

beskrivningar av andra funktioner

/ * programslut * /

Exempel. Använda kapslade block med variabler med samma namn.

Program:

(int i = 2; / * i - extern blockvariabel * /

int count = 0; / * count - extern variabel * /

medan (räkna<= i) /* цикл внешнего блока */

(int = 0; / * i - lokal variabel för det interna blocket * /


räkna ++; / * cykelräknare * /

printf ("I en slinga: count =% d; i =% d \ n", count, i);

/ * slutet av det inre blocket, återgå till variabeln i för det yttre blocket * /

printf ("Ut ur loopen: count =% d, i =% d", count, i);

Programresultat:

I slingantalet = 1 i = 0

I slingantalet = 2 i = 0

I slingantalet = 3 i = 0

Utanför slingantalet = 3 i = 2

Programmeraren kan klart ställ in omfattning och livslängdsattribut med minnesklassspecifikationer (lagring): för variabler(auto - lokal, register - register, statisk - statisk, extern - extern) och för funktioner(statisk, extern).

Variabler med lagringsklass auto (standard) och register hänvisar till lokal i blocket både efter omfattning och livslängd. För variabler med autoklassen allokeras minne till stacken (temporärt minne) och med registerklassen - i ett av de lediga processorregistren.

Minnet för variabler med klassstatisk tilldelas i datasegmentet (programmets statiska minne) och inte i stacken, på grund av vilket de ha kvar dess värde till utgång från blocket. Om saknas explicit initiering av sådana variabler, alltså standard de är inställda på 0. Initiering utförs ett gånger och upprepas inte när man går in i blocket igen. Objekt av klass statisk har lokal omfattning (block) och global livslängd (programkörningstid).

Exempel... Använder statiska variabler.

Program:

void exempel (int c); / * funktionsprototyp * /

void main () / * huvudfunktion * /

(int count; / * lokal blockvariabel * /

för (antal = 9; antal> = 5; antal - = 2) / * räknarslinga * /

exempel (räkna); / * funktionsanrop * /

void exempel (int c) / * funktionshuvud * /

(int f = 1; / * lokal variabel * /

statisk int stat = 1; / * statisk variabel * /

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

stat ++; / * ändra statisk variabel * /

Programresultat: c = 9, f = 1, stat = 1

c = 7, f = 1, stat = 2

Modulär programstruktur

Ett modulärt tillvägagångssätt används för att förenkla applikationen, förbättra dess tillförlitlighet och effektivitet. Modularisering låter dig dela upp en uppgift i mindre funktionella block, vilket gör utvecklingen lättare. Genom att ta detta tillvägagångssätt för systemdesign kan du enkelt utöka funktionalitet enskilda moduler utan att påverka källa andra. För att minska komplexiteten programvara, måste du göra modulerna små och mer oberoende. Två metoder kan användas för att göra moduler mer oberoende:

Förstärkning av modulernas interna anslutningar;

Försvagar relationen mellan moduler.

Denna struktur används för att säkerställa programmodulernas funktionella oberoende, d.v.s. maximal separation av modulernas funktioner. Detta ökar modulernas interna anslutningsmöjligheter och försvagar deras externa vidhäftning.

Programmoduler har en stark intern koherens, eftersom de innehåller metoder som bearbetar en specifik uppsättning data och har sitt eget funktionella syfte.

Bibliotekets modulära struktur presenteras i bilaga E i figur E.1, och visualiseraren i figur E.2.

Testning

Av alla stadier av mjukvarufelsökning är testning den mest tidskrävande och dyraste. När man skapar typisk programvara står testning för cirka 40 % av den totala tiden och över 40 % av den totala mjukvarukostnaden.

Testning behövs för att förbättra programvarans tillförlitlighet, annars är det onödigt. Du kan förbättra tillförlitligheten genom att eliminera fel. Därför är det meningslöst att testa för att bevisa programmets korrekthet. Testning kan identifiera buggar, fixa dem och på så sätt förbättra programvarans tillförlitlighet.

Under genomförandet av projektet utsattes varje klass för grundliga tester, under vars utförande en formell analys av programtexten genomfördes, vilket gjorde det möjligt att upptäcka ett stort antal fel i de tidiga stadierna av programmering, och för att kontrollera programmets korrekthet med hjälp av vissa testdatauppsättningar. Samtidigt kontrollerades varje kombination av initiala data, såväl som överensstämmelsen mellan resultaten för varje initial datauppsättning till det önskade resultatet.

Dokumentera

Teknisk uppgift

Många projekt kräver användning av landskap. Detta programpaket låter dig skapa ett tredimensionellt landskap och visa det på skärmen.

6.1.1 Syfte med utveckling

Mjukvarupaketet är utformat för att generera och visa landskap.

6.1.2 Krav för ett program eller mjukvaruprodukt

För användaren måste applikationen tillhandahålla följande funktioner:

1) förmågan att ange indata, såsom lägsta och högsta höjder, kartdimensioner, bergs branthet;

2) generering av landskap;

3) spara landskapet för användning i tredjepartsprogram;

4) demonstration av resultatet som erhållits genom att visa bilden på skärmen.

6.1.3 Tillförlitlighetskrav

Mjukvarupaketet måste ha en kontroll av ingångsinformationen för överensstämmelse med typer, som tillhör intervallet av tillåtna värden och överensstämmelse med strukturell korrekthet, dessutom måste visualiseraren kontrollera utrustningen för överensstämmelse med de nödvändiga tekniska och programvara... I händelse av fel, sörj för möjligheten att visa informativa diagnostiska meddelanden.

6.1.4 Krav på sammansättning och parametrar för tekniska medel

För att programmet ska fungera så lite som möjligt behöver du: Personlig dator, 2 GB random access minne, 50 MB ledigt hårddiskutrymme; tangentbord, mus.

För optimal prestanda applikationer behöver minst 3 GB RAM.

6.1.5 Krav på information och programvarukompatibilitet

Programmet måste fungera under Windows 7 och högre operativsystem; DirectX 11; Visual c ++ 2015; ... Net Framework 4,5 och uppåt.

6.1.6 Krav på mjukvarudokumentation

Dokumentationen för programmet bör innehålla en användarmanual, dokumentation för att arbeta med biblioteket.

Användarguide

Programmet startas genom att köra filen shell.exe, efter start ser du fönstret som visas i figur 6.1.

Ring "fil"-menyn, du kan använda "rensa"-knappen för att återställa data till standardvärden... Använd knappen "Spara som bmp" för att spara höjdkartan i bmp-format. "Spara som obj"-knappen kan användas för att spara terrängen i obj-format. Genom att klicka på knappen "Visa" kommer visualiseraren att startas, där det kommer att vara möjligt att se den i tredimensionell form, den presenteras i figur 6.2.

Bild 6.1 - Programfönster


Bild 6.2 - Programfönster

Ring menyn "inställningar", du kan använda knappen "programinställningar" för att konfigurera programmet för visualisering. Med knappen "renderingsinställningar" kan du anpassa renderaren.

Rörelsen i visualizern utförs av knapparna på tangentbordet w, a, s, d, som motsvarar riktningarna framåt, vänster, höger, bakåt.

Kameran styrs av musen.

Bibliotekets dokumentation

För att arbeta med biblioteket måste du inkludera filen LandscapeGenerator.dll i ditt projekt. Projektet måste deklarera en instans av klassen LandscapeGenerator. Klassen innehåller följande metoder för att ändra terrängparametrar, såsom bredd, längd, minimum och maxhöjd, bergighet, terränggenerering, terrängretur som bitmapp, terrängsparande i obj- och bmp-format.

Tidigare, på Internet, var den tabellformade typen av layout utbredd, som den är tillägnad. Men med tiden blev denna metod för att skapa en webbplatsstruktur föråldrad och ersattes av en blocklayout.

Skillnader mellan blocklayout och tabelllayout

Om tabelllayouten antyder att sidinnehållet finns inuti taggen

, då är konceptet med blocklayout baserat på aktiv användning av universella taggar
i vilket innehåll placeras, inklusive andra taggar.

Blocklayouten saknar nackdelarna med tabelllayouten - sökmotorer den indexeras bättre, dess kod är inte så spretig, och blocken

, som är så förtjusta i att kallas "lager", var ursprungligen tänkt att vara universella, det vill säga "för allt", medan
är en tabell som du behöver använda för att visa tabelldata och inget mer.

Den enda märkbara nackdelen med blocklayout är att webbplatser som gjorts på den kan visas på olika sätt i webbläsare. För att undvika detta måste du göra layouten "cross-browser", det vill säga att den visas lika av alla webbläsare.

Kärnan i blocklayout

V grafisk redaktör en webbplatslayout skapas: det markeras var vilket område på sidan (huvud, botten, sidofält, huvudinnehåll) kommer att finnas och hur mycket utrymme som ska uppta, bilder och bakgrunder förbereds.

Varje del av sidan placeras i sitt eget block

: överst på webbplatsen - i den första, menyn - i den andra, innehåll - i den tredje, etc. Varje block är fyllt med innehåll med HTML, samt placerat och formaterat med CSS-markering.

Det slutliga HTML-dokumentet är en samling block

med innehåll inuti. Designen finns ofta i en separat CSS-fil kopplad till sidan med en tagg. , eller åtminstone i en behållare