Dokumentacija za rad s knjižnicom. Moskovsko državno sveučilište tiskarske umjetnosti Struktura programa: blok

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Modularna struktura programa

Kako bi se aplikacija pojednostavila, povećala njena pouzdanost i učinkovitost, koristi se modularni pristup. Modularizacija vam omogućuje razbijanje zadatka na manje funkcionalne cjeline, što olakšava razvoj. Koristeći ovaj pristup razvoju sustava, možete jednostavno proširiti funkcionalnost pojedinačnih modula bez utjecaja na izvorni kod drugih. Kako bi se smanjila složenost softvera, potrebno je module učiniti malima i neovisnijima. Kako biste module učinili neovisnijima, možete koristiti dvije metode:

Ojačavanje unutarnjih veza modula;

Slabljenje odnosa između modula.

Ova se struktura koristi kako bi se osigurala funkcionalna neovisnost programskih modula, tj. maksimalno odvajanje funkcija modula. Zahvaljujući tome povećava se unutarnja povezanost modula i slabi njihova vanjska kohezija.

Programski moduli imaju snažnu unutarnju koherentnost, budući da sadrže metode koje obrađuju određeni skup podataka i imaju svoju funkcionalnu svrhu.

Modularna struktura knjižnice prikazana je u Dodatku E na slici E.1, vizualizator na slici E.2.

Testiranje

Od svih faza otklanjanja pogrešaka softvera, testiranje je najdugotrajnije i najskuplje. Prilikom izrade tipičnog softvera, testiranje zauzima oko 40% ukupnog vremena i više od 40% ukupne cijene softvera.

Testiranje je potrebno kako bi se poboljšala pouzdanost softvera, inače nije potrebno. Pouzdanost se može poboljšati uklanjanjem grešaka. Stoga je testiranje radi dokazivanja ispravnosti programa besmisleno. Testiranjem se mogu identificirati pogreške, ispraviti ih i time povećati pouzdanost softvera.

Tijekom provedbe projekta svaka je klasa bila podvrgnuta temeljitom testiranju, pri čemu je provedena formalna analiza programskog teksta, koja je omogućila prepoznavanje velikog broja grešaka u ranim fazama programiranja, te provjeru ispravan rad programa korištenjem određenih testnih skupova podataka. Istovremeno je kontrolirana svaka kombinacija izvornih podataka, kao i usklađenost rezultata za svaki izvorni skup podataka sa traženim rezultatom.

Dokumentacija

Tehnički zadatak

Mnogi projekti zahtijevaju korištenje krajolika. Ovaj programski paket omogućuje stvaranje trodimenzionalnog krajolika i njegovo prikazivanje na zaslonu monitora.

6.1.1 Svrha razvoja

Programski paket je dizajniran za generiranje i prikaz pejzaža.

6.1.2 Zahtjevi za program ili softverski proizvod

Za korisnika, aplikacija mora pružiti sljedeće mogućnosti:

1) mogućnost unosa ulaznih podataka, kao što su minimalna i najveća visina, dimenzije karte, strmina planine;

2) generiranje krajolika;

3) spremanje pejzaža za korištenje u programima trećih strana;

4) demonstracija dobivenog rezultata prikazivanjem slike na ekranu.

6.1.3 Zahtjevi pouzdanosti

Softverski paket mora provjeriti usklađenost ulaznih informacija s tipom, pripadnost rasponu prihvatljivih vrijednosti i usklađenost sa strukturnom ispravnošću; osim toga, vizualizator mora provjeriti usklađenost opreme prije pokretanja s potrebnim hardverom i softverom. U slučaju grešaka omogućiti prikaz informativnih dijagnostičkih poruka.

6.1.4 Zahtjevi za sastav i parametre tehničke opreme

Za minimalno funkcioniranje programa potrebno je: osobno računalo, 2 GB RAM-a, 50 MB slobodnog prostora na tvrdom disku; tipkovnica, miš.

Za optimalan rad aplikacije potrebno je minimalno 3GB RAM-a.

6.1.5 Zahtjevi za informacijsku i softversku kompatibilnost

Program mora raditi pod Windows 7 ili novijim operativnim sustavima; DirectX 11; Visual c++2015; .Net Framework 4.5 i noviji.

6.1.6 Zahtjevi za softversku dokumentaciju

Dokumentacija za program mora sadržavati korisnički priručnik i dokumentaciju za rad s knjižnicom.

Korisnički vodič

Program se pokreće pokretanjem datoteke shell.exe, nakon pokretanja vidjet ćete prozor prikazan na slici 6.1.

Pozovite izbornik "datoteka", možete upotrijebiti gumb "očisti" da biste vratili podatke na standardne vrijednosti. Pomoću gumba "Spremi kao bmp" pohranite kartu visina u bmp formatu. Pomoću gumba "Spremi kao obj" možete spremiti pejzaž u formatu obj. Klikom na gumb “View” pokrenut će se vizualizator u kojem ga možete vidjeti u tri dimenzije, prikazano na slici 6.2.

Slika 6.1 - Prozor programa


Slika 6.2 - Prozor programa

Pozovite izbornik "postavke"; pomoću gumba "postavke programa" možete konfigurirati program za vizualizaciju. Pomoću gumba "Postavke vizualizacije" možete konfigurirati vizualizator.

Kretanje u vizualizatoru vrši se pomoću gumba na tipkovnici w, a, s, d, koji odgovaraju smjerovima naprijed, lijevo, desno, natrag.

Kamerom se upravlja pomoću miša.

Dokumentacija za rad s knjižnicom

Za rad s bibliotekom morate povezati datoteku LandscapeGenerator.dll s projektom. Morate deklarirati instancu LandscapeGenerator klase u svom projektu. Klasa sadrži sljedeće metode za promjenu parametara krajolika, kao što su širina, duljina, minimalna i maksimalna visina, brdovitost, generiranje terena, vraćanje krajolika kao bitmape, spremanje krajolika u obj i bmp formatu.

61.1K

Web stranice također imaju svoj kostur. Ali beskorisno je pitati liječnike o njegovim značajkama. I veterinari također nisu svjesni strukture mjesta. O tome znaju samo dizajneri izgleda. O njima ovisi struktura kostura budućeg resursa. A glavni način stvaranja kostiju njegovog kostura je raspored blokova.

Izgled web stranice je zanat za inicirane

Postoji nešto misteriozno u izgledu stranice. Ali to je dok se bolje ne upoznate s ovim zanatom. Započnimo našu posvetu:


Sljedeća faza razvoja web stranice nakon izrade izgleda je izgled. Zadatak layout dizajnera je prenijeti kostur buduće stranice u virtualni svijet pomoću html koda i css tablica. Jednostavno rečeno, prenesite dimenzije i proporcije resursa u oblik koji preglednik može razumjeti.

Tijekom procesa izgleda pomoću html koda, "kostur" stranice rastavlja se na dijelove. I koristeći css ( kaskadni stilski listovi) navedena je veličina njegovih "kosti", boja i položaj.

Postoji nekoliko vrsta rasporeda:

I. Tabularno - prije je bila glavna metoda izgleda. U rasporedu tablice, oznaka se koristi za postavljanje strukture stranice

i njegove podređene oznake. Izgled pomoću tablica omogućuje vam najproporcionalnije raspored svih elemenata dizajna jedan u odnosu na drugi. Ali u isto vrijeme, ovaj kod se pokazao previše opsežnim:


Također, glavni nedostaci tabličnog koda uključuju dugo vrijeme učitavanja i slabo indeksiranje sadržaja od strane tražilica.

Sadržaj stranice koja se temelji na tablici neće se prikazati dok se svi podaci ne učitaju. Block layout vam omogućuje da svaki učitani element prikažete zasebno.

Loše indeksiranje stranica tablice objašnjava se velikim razmacima između blokova teksta koji se nalaze u različitim ćelijama tablice.

Danas se tablični izgled rijetko koristi kao glavna metoda izrade web stranica. Sada se koristi samo za strukturiranje tabličnih podataka i sređivanje grafičkih slika.

II. Blokiranje je trenutno glavna metoda izgleda. Za razliku od tabelarnog izgleda, blok raspored ima brojne prednosti:

  • Odvajanje stila elementa od html koda;
  • Mogućnost preklapanja jednog sloja na drugom - ova značajka uvelike olakšava pozicioniranje elemenata.
  • Bolje indeksiranje od strane tražilica;
  • Velika brzina učitavanja stranice koja se sastoji od međusobno neovisnih elemenata;
  • Jednostavnost stvaranja vizualnih efekata ( padajući izbornici, popisi, opisi alata).

Glavni nedostatak rasporeda blokova je određena “ dvosmislenost» razumijevanje njegovog koda od strane različitih preglednika. Stoga se html stranice često moraju “doraditi” posebnim hackovima.

S pojavom rasporeda koji se temelji na blokovima, rođen je koncept "kompatibilnosti s više preglednika". Zbog razlika u prikazu istog elementa u različitim preglednicima, dizajneri izgleda moraju ubaciti cijele dijelove koda (hackove) u glavni html.

Hack je visoko specijaliziran i rješava problem netočnog prikaza u samo jednom pregledniku.

Glavni element koji se koristi u rasporedu blokova je oznaka

. Dio koda odvojen ovom oznakom naziva se sloj. Sve stilske odluke premještaju se izvan granica html koda u kaskadne listove stilova. Pristupa im se putem identifikatora ili css klasa:

Kako funkcionira raspored blokova?

Prije početka izgleda, gotov PSD izgled web stranice reže se u blokove (slojeve) u grafičkom uređivaču. Izrezane pozadinske slike smještene su u zasebnu mapu koja će biti priložena zasebno svakom sloju:


Na primjer, uzmimo ovaj izgled web stranice izrađen u Photoshopu. Prvo, u uređivaču teksta, koristeći div, postavljamo strukturu budućeg resursa i svakom sloju dodjeljujemo vlastiti id selektor. To rezultira sljedećom strukturom:

Zatim do gotove strukture stranice u html-u s linijom priložite css datoteku. Zatim mu dodajemo stilski opis svakog sloja, pozicioniranje u odnosu na druge elemente i njegove dimenzije.

Možete saznati više o svim svojstvima CSS-a iz tehničke dokumentacije za jezik.

Potpuni kod za primjer index.html je:

Primjer rasporeda blokova

Sadržaj



Sadržaj datoteke style.css:

tijelo (pozadina: #f3f2f3; boja: #000000; obitelj-fontova: Trebuchet MS, Arial, Times New Roman; veličina fonta: 12px; ) #spremnik (pozadina:#99CC99; margina: 30px automatski; širina: 900px; visina : 600px; ) #zaglavlje ( pozadina: #66CCCC; visina: 100px; širina: 900px; ) #navigacija ( pozadina: #FF9999; širina: 900px; visina: 20px; ) #izbornik ( pozadina: #99CC99; float: lijevo; width: 200px; height: 400px; ) #content ( background: #d2d0d2; float: right; width: 700px; height: 400px; ) #clear ( clear:both; ) #footer ( background: #0066FF; height: 80px; širina: 900px; )

Ovako izgleda naš primjer blok web stranice u prozoru preglednika.

Kao što je gore navedeno, tijelo funkcije može biti blok ili složeni operator. Blok kako zbirka opisa objekata i operatora može uključivati ugniježđeni blokovi, a zatim se pojavljuju vanjski I lokalni varijable u odnosu na blok, kao i globalno varijable opisane izvan programskih funkcija.

Osim atributa Ime I tip objekt ima još dva atributa - djelokrug I doživotno, definirano klasa pohrane (memorija) zadana ili određena od strane programera. Opseg (vidljivost) je dio programskog teksta u kojem mi vidimo i možda koristi se ovaj objekt. Varijable deklarirane u priključnom bloku vanjske su u odnosu na ugniježđene blokove i uključuju ih u opseg uz jednu iznimku - unutarnje varijabla ima prioritet iznad vanjski varijablu tako da je zatvorite, a čak se i tip interne varijable može nadjačati.

Doživotno je vremenski interval tijekom kojeg vrijednost objekta (varijable ili funkcije) dostupno za korištenje u nekom dijelu programa. Životni vijek varijable može biti lokalni ili globalno. Objekt, sa globalno vijek trajanja, ima dodijeljenu memoriju i određenu vrijednost tijekom cijelog vremena izvođenja programa. Za lokalni objekt je istaknut novi memorijsko područje svaki put kada se unese blok i oslobođeno pri izlasku iz bloka i vrijednost objekta gubi se. Varijable opisane u funkciji, uključujući formalne parametre, imaju lokalni djelokrug. Same funkcije u programu su vanjski u međusobnom odnosu i imaju globalno lifetime, odnosno postoje tijekom cijelog vremena izvođenja programa.

C program je zaseban programski modul koji je formatiran i zapisan u vanjsku memoriju kao izvorna datoteka s ekstenzijom ".c", na primjer, myprog.c.

Struktura programskog modula i opseg njegovih objekata mogu se prikazati sljedećim dijagramom:

/* Globalni objekti i opisi */ /* Opseg */

Direktive pretprocesora globalno makro definicije

prototipovi funkcija

opisi tipa

globalni opisi varijabli

zaglavlje funkcije lokalni

(vanjski blok varijable;

operateri;

(unutarnja jedinica l lokalni

opisi drugih funkcija

/* kraj programa */

Primjer. Korištenje ugniježđenih blokova s ​​varijablama istog imena.

Program:

( int i=2; /* i – vanjska blok varijabla */

int count=0; /* broj – vanjska varijabla */

dok (broji<= i) /* цикл внешнего блока */

( int=0; /* i – lokalna varijabla internog bloka */


brojati++; /* brojač petlji */

printf (“U petlji: count=%d; i=%d\n”, count, i);

/* kraj unutarnjeg bloka, povratak na varijablu i vanjskog bloka */

printf("Izvan petlje: count=%d, i=%d", count, i);

Rezultat programa:

U petlji broj=1 i=0

U petlji count=2 i=0

U petlji broj=3 i=0

Izvan petlje broj=3 i=2

Programer može očito postavite opseg i atribute životnog vijeka koristeći specifikatore klase memorije (pohrane): za varijable(auto - lokalni, register - registar, static - statički, extern - vanjski) i za funkcije(statičan, vanjski).

Varijable s klasom pohrane auto (zadano) i registar pripadaju lokalni u bloku te po opsegu i vijeku trajanja. Za varijable s klasom auto memorija se dodjeljuje na stogu (privremena memorija), a za varijable s klasom registara u jednom od slobodnih registara procesora.

Memorija za varijable sa statičnom klasom se dodjeljuje u podatkovnom segmentu (statička programska memorija), a ne na stogu, što ih čini uštedjeti njegova vrijednost na Izlaz iz bloka. Ako nedostaje eksplicitan inicijalizacija takvih varijabli, zatim zadano postavljaju se na 0. Izvodi se inicijalizacija jedan puta i ne ponavlja se pri novom unosu u blok. Objekti statike klase imaju lokalni opseg (blok) i globalno lifetime (vrijeme izvršenja programa).

Primjer. Korištenje statičkih varijabli.

Program:

void primjer(int c); /* prototip funkcije */

void main () /* glavna funkcija */

( int count; /* blok lokalne varijable */

za (broj=9; broj >= 5; broj -= 2) /* petlja brojača */

primjer(broj); /* poziv funkcije */

void primjer (int c) /* zaglavlje funkcije */

( int f=1; /* lokalna varijabla */

static int stat=1; /* statička varijabla */

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

stat++; /* mijenjanje statičke varijable */

Rezultati programa: c=9, f=1, stat=1

c=7, f=1, stat=2

prevodilac mora pokrenuti poruka o grešci kompilacija. Ovisno o tome pokazuje li identifikator na varijablu ili konstantu, prevodilac također mora poduzeti različite radnje.

Naziv u programu može biti jednostavan ili složen. Jednostavna imena uključuju imena varijabli, imena potprograma i imena tipova korisničkih podataka. Složeni naziv odnosi se na element neke strukture i napisan je kao jednostavan naziv nakon kojeg slijedi kvalifikacija imena ili operacije indeksiranja. Na primjer, izraz array1 odnosi se na treći element niza, a izraz record1.field2 se odnosi na vrijednost polja field2 strukture record1.

Da bi se manipuliralo podacima, specifični identifikatori rutine moraju se preslikati na određene podatkovne objekte. Ova se usporedba ponekad naziva asocijacijom. Kada se kreira aktivacijski zapis, uspostavljaju se mnoge asocijacije koje preslikavaju identifikatore na trenutne podatkovne objekte. Ovaj skup asocijacija definira referentno okruženje potprograma.

Referentno okruženje potprograma uključuje globalno referentno okruženje, lokalno referentno okruženje, ne-lokalno referentno okruženje i unaprijed definirano referentno okruženje.

Okruženje lokalnih referenci formirano je lokalnim varijablama, formalnim parametrima i potprogramima definiranim unutar tekuće potprograma.

Okruženje globalnih poveznica tvore asocijacije koje nastaju aktiviranjem glavnog programa. Nelokalno referentno okruženje sadrži i globalno referentno okruženje i skup asocijacija formiranih za varijable koje su kasnije dostupne u programu, ali još nisu stvorene.

Područje vidljivosti Asocijacija u potprogramu određena je uključivanjem te asocijacije u referentno okruženje potprograma. Štoviše, ako je bilo redefinicija globalni identifikator pomoću lokalnog identifikatora, tada je asocijacija za globalni identifikator isključena iz globalnog referentnog okruženja rutine.

Dinamičan područje vidljivosti svaka asocijacija određena je zbirkom aktivacijskih zapisa potprograma koji uključuju tu asocijaciju u referentnom okruženju potprograma.

Na isti podatkovni objekt može se pozivati ​​različitim imenima - na primjer, ako je identifikator globalne varijable dostupan u potprogramu i ista varijabla se prosljeđuje referencom kao formalni parametar potprogrami. Različiti identifikatori koji postoje u referentnom okruženju za povezivanje s istim podatkovnim objektom ponekad se nazivaju aliasima.

Korištenje aliasa može dovesti do raznih pogrešnih situacija. Osim toga, prisutnost pseudonima u potprogramu komplicira proces optimizacije koda koji izvodi kompilator. Na primjer, if, prilikom izvođenja niza od dvije naredbe

int1=5*x; int2=8*y;

Vrijednost varijable int1 se ne koristi nigdje u programu, tada se prilikom optimizacije programa može eliminirati prva izjava. Ali ako je varijabla int1 alias za varijablu y, tada će takva optimizacija dovesti do pogreške u izračunu, pa će stoga biti potrebne dodatne provjere.

Statički opseg odnosi se na dio programskog koda u kojem se identifikator odnosi na određeni objekt.

Statički područje vidljivosti definira objekt na koji se identifikator odnosi u programskom kodu, te dinamičku područje vidljivosti nastala od strane udruga stvorenih u vrijeme isporuke programa.

Programski jezici s blokovskom strukturom

U bloku- strukturirani jezici programiranje programa je napisano kao skup hijerarhijski ugniježđeni blokovi određenu strukturu.

Blok- strukturirani jezici programiranje se može podijeliti na strogo blok- strukturirani jezici i samo blokoviti strukturirani jezici.

U strogom bloku- strukturirani jezici Na početku svakog bloka nalazi se područje deklaracije, nakon kojeg slijedi dio koda. Drugim riječima, u strogo blok- strukturirani jezici programiranja, nije dopušteno deklarirati varijable bilo gdje u fragmentu koda.

Strogo blokirati- strukturirani jezici programski jezici uključuju ALGOL 60, Pascal, PL/I.

Svaki blok u blokovno strukturiranom programskom jeziku uvodi novo lokalno referentno okruženje.

Sljedeći primjer ilustrira strukturu blokova Pascal programa.

program Projekt1; postupak P1(); postupak P2(); (Ugniježđena procedura) var i:Integer; početi kraj; početak (šifra postupka P1) kraj; početak (projekt1 glavni programski kod) kraj.

U Object Pascalu, prema zadanim postavkama, aplikacije se stvaraju kao skup modula koji su povezani ključnom riječi uses. Sljedeći primjer ilustrira strukturu blokova Object Pascal programa, predstavljenog kao jedan modul.

Program Projekt2; (Pokretanje programa) koristi Windows, Poruke, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; ($R *.res) ($R *.dfm) (Ime DFM datoteke mora odgovarati nazivu modula (bloka). ) (Za dobivanje jednog modula u Object Pascal jeziku kada se automatski kreira aplikacija u Delphi okruženju, datoteku Unit1.dfm treba preimenovati u Project2.dfm i premjestiti kod modula Unit1.pas u modul Project2.pas) tip (Deklaracija novog prozora obrasca tipa TForm1) TForm1 = class( TForm) Button1: TButton; Gumb2: TButton; ListBox1: TListBox; Uredi1: TEdit; procedure Button1Click(Pošiljatelj: TObject); procedure Button2Click(Pošiljatelj: TObject); procedure ListBox1Click(Pošiljatelj: TObject); privatno ( Privatne izjave ) javno ( Javne izjave ) kraj; var (Početak područja deklaracije) Form1: TForm1; i: cijeli broj; procedure TForm1.Button1Click(Pošiljatelj: TObject); početak Edit1.Text:="Button1"; kraj; procedure TForm1.Button2Click(Pošiljatelj: TObject); var i:Integer; postupak P1(); (Ugniježđena procedura) var i:Integer; početak i:=5; Edit1.Text:= Edit1.Text+" i= " + IntToStr(i); kraj; početak Edit1.Text:="Button2"; i:=0; P1(); kraj; procedure TForm1.ListBox1Click(Pošiljatelj: TObject); početak Edit1.Text:="ListBox1"; kraj; start (Pokreni izvođenje programa) Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; kraj. Primjer 5.1. Blokovska struktura programa u jeziku Object Pascal

4.8. Blok struktura.

Jezik "C" nije jezik s blokovskom strukturom u smislu

le PL/1 ili algola; ne može opisati samo funkcije

unutar drugih.

S druge strane, varijable se mogu definirati pomoću

metoda strukturiranja blokova. Opisi varijabli (uklj.

inicijalizacija čaja) može slijediti lijevu vitičastu zagradu-

koji otvara bilo koji operator, a ne samo onaj s kojim

roj počinje tijelo funkcije. Ovako opisane varijable

odjednom, premješta sve varijable iz vanjskih blokova koji imaju

iste nazive, i ostaju definirani do odgovarajućeg

desna vitičasta zagrada. Na primjer, u

INT I; /* PROGLASI NOVO I */

ZA (I = 0; I< N; I++)

Opseg varijable I je "prava" grana

AKO; Ovo I nije ni na koji način povezano s bilo kojim drugim I u programu.

Blokovna struktura također utječe na opseg vanjskih

varijable. Ako su dati opisi

Pojava X unutar funkcije F odnosi se na unutarnju transformaciju

varijablu tipa DOUBLE, a izvan F - na vanjsku cjelobrojnu varijablu.

Isto vrijedi i za formalna imena parametara:

Unutar funkcije F, naziv X odnosi se na formalni parametar, i

ne na vanjsku varijablu.

4.9. Inicijalizacija.

Inicijalizaciju smo spomenuli mnogo puta do sada, ali

uvijek u prolazu, među ostalim pitanjima. Sada, nakon toga

budući da smo raspravljali o različitim klasama pamćenja, nalazimo se u ovom odjeljku

Sažmimo neka pravila vezana uz inicijalizaciju.

Ako nema eksplicitne inicijalizacije, tada vanjski i

tic varijablama se dodjeljuje vrijednost nula; automatski

U ovom slučaju fizičke i registarske varijable imaju neograničenost

podijeljene vrijednosti (smeće).

Jednostavne varijable (ne nizovi ili strukture) mogu se instancirati

kada ih opisujete, dodajte znak iza imena

jednakosti i konstantni izraz:

CHAR QUOTE = "\";

DUGI DAN = 60 * 24; /* MINUTA U DANU */

Za vanjske i statičke varijable provodi se inicijalizacija

Implementira se samo jednom, u fazi kompilacije. Automatski i

varijable registra se inicijaliziraju svaki put kada se prijavite

u funkciju ili blok.

U slučaju automatskih i registarskih varijabli, inicijalizacija

torus ne mora biti konstanta: zapravo može biti

bilo koji smisleni izraz koji može uključivati ​​određene

prethodno poznate količine pa čak i pozive funkcija. Na primjer,

inicijalizacija u programu binarnog pretraživanja iz poglavlja 3 mogla bi

bila bi zapisana u obrascu

INT VISOK = N - 1;

INT LOW, HIGH, MID;

Prema njegovom rezultatu, inicijalizacija automatskih promjena -

nyh su skraćenica za operatore dodjele.

Koji oblik preferirati uglavnom je stvar ukusa. mi obično

koristimo eksplicitne dodjele jer inicijalizacija u

manje uočljiv u opisima.

Automatski nizovi se ne mogu inicijalizirati. Vanjski

cija i statički nizovi mogu se inicijalizirati stavljanjem

Nakon opisa, popis u vitičastim zagradama

početne vrijednosti odvojene zarezima. Na primjer program

brojanje znakova iz 1. poglavlja, koje je počelo s

INT C, I, NBIJELO, NIŠTA;

NBIJELO = NIŠTA = 0;

ZA (I = 0; I< 10; I++)

Može se prepisati kao

INT NDIGIT = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

MAIN() /* BROJ ZNAMENKI, RAZMAK, OSTALO */

Ove inicijalizacije zapravo nisu potrebne, jer sve dodjele

dane vrijednosti su nula, ali dobar stil je napraviti ih

očito. Ako je broj početnih vrijednosti manji od navedenog

zadane veličine niza, tada se preostali elementi popunjavaju traženim

lyami. Navođenje previše početnih vrijednosti

je greška. Nažalost, ne postoji mogućnost

indikacija da se neka početna vrijednost ponavlja, i

ne možete inicijalizirati element u sredini niza bez ponovnog

brojevi svih prethodnih.

Postoji poseban način za nizove znakova

inicijalizacija; Umjesto vitičastih zagrada i zareza, možete koristiti

upotrijebi liniju:

CHAR PATTERN = “THE”;

Ovo je skraćenica za dužu, ali ekvivalentnu notaciju:

CHAR PATTERN = ("T", "H", "E", "\0" );

Ako je veličina niza bilo kojeg tipa izostavljena, prevoditelj to određuje

dijeli svoju duljinu brojeći broj početnih vrijednosti. U

u ovom konkretnom slučaju veličina je četiri (tri znaka

plus konačni \0).


Razlozi. Istodobno, filozofska apstrakcija jezika pokazuje se neraskidivo povezanom s glavnim temama i pokretima filozofije u cjelini. Točnije, rane faze tradicionalne AF analize običnog jezika bile su pod dubokim utjecajem filozofije J. E. Moorea, posebno njegove doktrine zdravog razuma, prema kojoj su pojmovi kao što su “čovjek”, “svijet”, “sebstvo,” “ vanjski svijet", "...

I drugim zemljama ZND-a, kao i olakšavanje pristupa ruskoj i svjetskoj kulturi i znanosti. Dakle, sudeći prema podacima našeg istraživanja, potražnja za ruskim jezikom u republici ostaje prilično visoka. Mnogi predstavnici moderne moldavske mladeži i dalje su, poput svojih očeva i djedova, privučeni ruskom kulturom, znanstvenim i tehničkim dostignućima Rusije. Ruski jezik ostaje jezik...

Slikovno verbalno-slogovno pisanje). Spomenici srednjeelamskog razdoblja (14-12. st. pr. Kr.) izrađeni su akadskim klinastim pismom. Spomenici novog elamitskog razdoblja potječu iz 8.-6. stoljeća. PRIJE KRISTA. Bio je službeni jezik u perzijskoj državi Ahemenida u 6.-4. stoljeću. pretpostavlja se da je, pod utjecajem staroperzijskog, preživio do ranog srednjeg vijeka. 7. Burushaski jezik Burushaski jezik (...

.../dijalekt), skitski, sogdijski, srednjoperzijski, tadžički, tajriški (jezik/dijalekt), tališki, tatski, horezmijski, khotanosak, šugnansko-rusanska skupina jezika, jagnobski, jazguljamski itd. Pripadaju indo- iranska grana indoeuropskih jezika. Područja rasprostranjenosti: Iran, Afganistan, Tadžikistan, neka područja Iraka, Turska, Pakistan, Indija, Gruzija, Ruska Federacija. Općenito...



reci prijateljima