Kako postaviti pametne telefone i računala. Informativni portal

Varijable i uvjetni operator. Uvjetne varijable

Obavijest

Varijabilna Je količina koja ima ime i značenje. Varijable se deklariraju pomoću riječi var: var x = 12, y; Ovdje se uvode dvije varijable s imenima x i y, vrijednost 12 upisuje se u varijablu x, a varijabla y je nedefinirana, odnosno naredba trace trace (y); vratit će nedefinirano (nedefinirana vrijednost). Naredba trace (z) daje isti rezultat; jer varijabla z uopće nije poznata. Kako biste razlikovali postojeću varijablu od nepoznate, možete u nju upisati posebnu null vrijednost null: var y = null;

Ako tip varijable nije eksplicitno naveden, može poprimiti bilo koju vrijednost. Na primjer:

var x = 1; // broj x = "Ku-ku!" ; // niz x = false; // boolean

Međutim, prilikom deklariranja, bolje je eksplicitno navesti tip varijable. To omogućuje otkrivanje mnogih pogrešaka čak i prije nego što se program izvrši. Postoje tri jednostavne vrste:

  • Broj - broj;
  • String - niz;
  • Boolean je logička vrijednost.
Tip varijable je označen nakon njenog naziva odvojen dvotočkom var x: Broj = 0, y: String = "qq", b: Boolean = false; U varijablama tipa String možete pisati nizove znakova zatvorene u navodnike ili pojedinačne apostrofe: var s1: String = "qq1", s2: String = "qq2"; Booleove varijable uzimaju samo dvije vrijednosti: true i false: var b: Boolean = false; b = istina; b = (a U potonjem slučaju, b će biti istinit ako je uvjet desno od znaka jednakosti istinit.

Ako pokušate upisati vrijednost pogrešnog tipa u varijablu, dobit ćete poruku o pogrešci odmah kada se program prevede (to jest, kada se prevede u strojne kodove), a ne tijekom izvođenja. Na primjer, kod poput ovog izaziva pogrešku:

var x: Broj = 1; x = "Ku-ku!" ;

Promjenjiva vidljivost

Postoje tri vrste varijabli: Globalne varijable se deklariraju pomoću _global specifikacije: _global .x = 12; Imajte na umu da ovdje ne morate koristiti riječ var, takve se varijable tretiraju kao svojstva _global objekta. Varijabli x, koja je deklarirana gore, može se pristupiti iz bilo koje funkcije i iz koda bilo kojeg isječka jednostavno po imenu.

Ako u opsegu postoji nekoliko varijabli s istim imenom, prvo se traži lokalna varijabla, zatim varijabla trenutnog isječka, a tek onda globalna varijabla.

Varijable drugih isječaka su "nevidljive"; da biste se odnosili na njih, morate eksplicitno navesti roditeljski isječak:

Mc.x = 1; _korijen .x = 12; _roditelj .x = 123;

Zadatak

Za dodjelu nove vrijednosti varijabli koristite znak =. Lijevo od njega upišite naziv varijable, a desno - izraz: a = 4 * (c + 2) + 3 / (r - 4 * w) + d% 3; Znak * označava množenje, / znak označava dijeljenje, a % označava ostatak dijeljenja.

U izrazu se aritmetičke operacije izvode sljedećim redoslijedom:

  • radnje u zagradama;
  • množenje, dijeljenje i uzimanje ostatka (s lijeva na desno);
  • zbrajanje i oduzimanje (s lijeva na desno).
Ovaj red se zove prioritet(starost) aritmetičke operacije.

Nizovi znakova mogu se "spojiti" pomoću + operatora:

Ne = 20; s = "Vasya" + "otišao u šetnju." ; qq = "Objekat" + ne; Ako su u izraz uključeni podaci različitih tipova, dolazi do automatske konverzije u isti tip. Dakle, u zadnjem retku redak Object20 je upisan u varijablu qq.

Operateri ++ ( prirast, povećavajući varijablu za 1, i - ( dekrement, smanjujući varijablu za 1). Operateri

ja ++; k -; znači isto kao i = i + 1; k = k - 1; Postoji i stenografski zapis za aritmetičke operacije: a + = 20; b - = c - d; c * = a + b; d / = 2 * c; f% = 12; Ovaj kod se može zamijeniti sljedećim operatorima u "normalnom" obliku: a = a + 20; b = b - (c - d); c = c * (a + b); d = d / (2 * c); f = f% 12

Objekti

Objekt je nešto što ima svojstva i metode. U okolišu Bljesak postoje ugrađeni objekti (npr. Array, MovieClip, Key). Osim toga, možete izgraditi vlastite objekte: var car = new Object (); auto.v = 10; auto.god. = 1998; U okolišu Bljesak možete koristiti objektno orijentirano programiranje, odnosno kreirati vlastite klase objekata, obdariti ih svojstvima i metodama (vidi temu 13).

Glavna značajka objekata je takozvano referentno adresiranje. Odnosno, prilikom deklariranja

var obj = novi objekt (); varijabla obj ne pohranjuje sam objekt, već samo njegov adresa(referenca objekta). Stoga je operator dodjele obj2 = obj; ne stvara novi objekt u memoriji koji je kopija obj, već jednostavno kopira adresu prvog objekta u obj2. Nakon toga, obj i obj2 upućuju na isti objekt. Ako stvarno želimo izgraditi kopiju objekta čija je adresa pohranjena u obj, možemo učiniti sljedeće: var obj2 = new Object (); za (prop u obj) obj2 = obj; Ovdje petlja ponavlja sva svojstva prvog objekta i kopira ih u drugi. Varijabla prop (niz znakova) je naziv sljedećeg svojstva. Obj znači " svojstvo objekta obj čije je ime pohranjeno u prop».

TAU - teorija automatskog upravljanja

TS - tehnički sustav

OU - kontrolni objekt

UU - upravljački uređaj

SU - sustav upravljanja

IO - izvršni organ

IU - izvršni uređaj

D - senzor

OS - povratna informacija

PC - prijenosni omjer

PF - prijenosna funkcija

APFC - amplitudno-fazni frekvencijski odziv

Frekvencijski odziv - amplitudno-frekvencijska karakteristika

LFCH - logaritamska amplitudno-frekvencijska karakteristika

Fazno-frekvencijska karakteristika - fazno-frekvencijska karakteristika

2. Simboli osnovnih varijabli i funkcija

x(t) - ulazni signal CS elementa, izlazni signal OS i CS (kontrolirana vrijednost)

y(t) Je li izlazni signal CS elementa, ulazni signal OS (kontrolno djelovanje)

x s ( t) Je li utjecaj na podešavanje upravljačkog sustava

z(t) Je li ometajući učinak na upravljački sustav

(t) - signal greške (neusklađenost) u upravljačkom sustavu

1(t) - radnja u jednom koraku

(t) - jednostruko impulsno djelovanje

x m ,y m- amplitudske vrijednosti signala x(t) i y(t)

str - Laplaceov operator, operator diferencijacije

 - kružna frekvencija, operator Fourierove transformacije

x(str) - kontinuirana slika signala x(t) prema Laplaceu

x(j) - kontinuirani prikaz signala x(t) prema Fourieru

k - PC veza (ili veze veze)

W(str) - PF veza (ili veza veza)

W(j) - AFC veze (ili veza veza)

A() - AFC veze (ili veza veza)

 () - fazno-frekvencijska karakteristika veze (ili veze veza)

F ( R) - PF zatvorenog sustava upravljanja

h(t) - prijelazna funkcija (karakteristika) veze ili upravljačkog sustava

w(t) - impulsna (težina) funkcija (karakteristika) veze ili CS-a

UVOD

Teorija automatskog upravljanja (TAU)- znanstvena disciplina čiji su predmet informacijski procesi koji se odvijaju u sustavima upravljanja tehničkim i tehnološkim objektima. TAU otkriva opće obrasce funkcioniranja automatskih sustava različite fizičke prirode i na temelju tih obrazaca razvija principe izgradnje visokokvalitetnih sustava upravljanja.

Pri proučavanju upravljačkih procesa u TAU apstrahiraju od fizičkih i projektnih značajki sustava i umjesto stvarnih sustava razmatraju njihove adekvatne matematičke modele. Što točnije (potpunije) matematički model odgovara fizičkim procesima koji se odvijaju u stvarnom sustavu, to će projektirani sustav upravljanja biti savršeniji.

Glavne metode istraživanja na TAU-u su matematičko modeliranje, teorija običnih diferencijalnih jednadžbi, operativni račun i harmonijska analiza. Pogledajmo na brzinu svaki od njih.

Metoda matematičkog modeliranja, kombinirajući široku paletu metoda i tehnika za opisivanje i prezentaciju fizičkih objekata i pojava, može se uvjetno, shematski prikazati korištenjem najčešće korištene tehnike - grafičke slike jednostavnog objekta s jednim ulaznim signalom. x(t) i jedan izlazni signal y(t), u obliku pravokutnika (slika B. 1, a). Simbol A unutar pravokutnika znači neki matematički operator (funkcija, integral itd.) koji povezuje ulazne i izlazne signale koji se mijenjaju u vremenu.

Riža. U 1. Shematski prikaz matematičkih metoda korištenih u TAU-u

Teorija običnih diferencijalnih jednadžbi, usredotočujući se na fizičke aspekte i primjenu dobivenih rješenja, služi kao glavna metodološka osnova TAU-a, a same obične diferencijalne jednadžbe su najopćenitiji i najpotpuniji oblik matematičkog opisa elemenata i upravljačkih sustava. Diferencijalne jednadžbe povezuju vremenski promjenjive ulazne i izlazne varijable i njihove derivate. U najjednostavnijem slučaju, diferencijalna jednadžba ima oblik

dy(t)/dt=f[x(t),y(t)]. (U 1)

Metoda operativnog računa, koji se temelji na Laplaceovoj transformaciji

(U 2)

omogućuje vam algebriziranje diferencijalnih jednadžbi - idite na tzv. operatorske jednadžbe povezujući slike x(str) i Y(str) ulaznih i izlaznih signala kroz prijenosnu funkciju W(str) (slika B. 1, b)

W(str)=Y(str)/x(str). (AT 3)

Metoda harmonijske analize temelji se na Fourierovoj transformaciji poznatoj iz kolegija matematike koja ima oblik

(AT 4)

Pomoću Fourierove transformacije (V. 4), slike se pronalaze x(j) i Y(j) ulazni i izlazni signali x(t) i y(t) karakterizirajući frekvencijske spektre ovih signala. Slike Fourierovih signala su povezane (slika B. 1, v) prijenosna funkcija frekvencije

W(j) = Y (j) / X (j). (AT 5)

Sve četiri metode, ukratko prikazane gore, čine matematički aparat TAU-a. Na temelju toga razvijen je kompleks "vlastitih" metoda TAU-a, predstavljenih u ovom kolegiju.

TAU zajedno s teorijom konstrukcije i funkcioniranja elemenata upravljačkih sustava (senzora, regulatora, aktuatora) čini širu granu znanosti – automatizaciju. Automatizacija je pak jedna od grana tehničke kibernetike. Tehnička kibernetika proučava složene automatizirane upravljačke sustave za tehnološke procese (APCS) i poduzeća (APCS), izgrađene pomoću upravljačkih računala (CFM).

Tehnička kibernetika, uz biološka i socioekonomska, sastavni je dio kibernetike, koju je njezin utemeljitelj, američki matematičar N. Wiener, 1948. definirao kao znanost o upravljanju i komunikaciji u tehničkim sustavima i živim organizmima.

Prvi industrijski regulatori pojavili su se između 1765. i 1804. godine. (I. Polzunov, J. Watt, J. Jacquard).

Prve teorijske studije regulatora pojavile su se u razdoblju 1868-1893. (J. Maxwell, I. Vyshnegradsky, A. Stodola). Ruski znanstvenik i inženjer I.A.Vyshnegradskii proveo je niz znanstvenih studija u kojima su parni stroj i njegov regulator prvi put analizirani matematičkim metodama kao jedinstveni dinamički sustav. Djela A. A. Andronova, V. S. Kulebakina, I. N. Voznesenskog, B. V. Bulgakova, A. A. Feldbauma, B. N. Petrova, N. N. Krasova odigrala su važnu ulogu u formiranju ruske škole TAU. , AA Voronova, Ya. Z. Tsypkina, VS Pugache ...

Razvoj suvremene teorije upravljanja iz takozvane "klasične" teorije regulacije, temeljene na četiri gore navedene temeljne istraživačke metode TAU-a, te formiranje njezinih najnovijih metoda shematski su prikazani na sl. U 2.

Riža. U 2. Razvoj sadržaja i metodologije teorije upravljanja

Trenutno, TAU, zajedno s najnovijim dijelovima opće teorije upravljanja (operativno istraživanje, inženjering sustava, teorija igara, teorija čekanja), igra važnu ulogu u poboljšanju i automatizaciji upravljanja tehnološkim procesima i industrijama.

Možete pohraniti znanje o sugovornicima ili bilo koju drugu tekstualnu informaciju. Sada kada pišem predlošci može se koristiti 13 varijable s unaprijed određenom namjenom, te 100 "besplatno", koje vlasnici info mogu se koristiti po vlastitom nahođenju.
Varijable sa zadanom svrhom imaju "govorna" imena. Na primjer, % Korisničko ime- ovo je varijabla, dizajniran za pohranu imena sugovornika. Njezino ime koristi engleske riječi user ("user") i name ("name"). Takav varijable programeri ih aktivno koriste pri izradi baze podataka predlošci standardne informacije, na temelju čega sve običaj info.
Životni vijek takvih varijable nije ograničena, tj. njihove vrijednosti se pamte i pohranjuju između odvojenih razgovora.

Što piše u predlošcima Primjer dijaloga
Zapamti ime:
$ Moje ime je *
# Drago mi je. [% user_name = "[* 1]"]
Gost: Moje ime je Vasya
Inf: Nađite se jednom.
U odgovoru na infa prikazujemo ime sugovornika:
$ Zbogom, inf.
# Zbogom, [% user_name]
Gost: Zbogom, inf.
Inf: Zbogom Vasya.
Odgovor biramo ovisno o vrijednosti varijable % user_name:
$ Sjećate li se mog imena?
# (Naravno. Vi ste [% user_name].)
# (Ne. Nisi mi rekao svoje ime.)
Gost: Sjećaš li se mog imena?
Inf: Naravno. Ti si Vasya.
ili
Gost: Sjećaš li se mog imena?
Inf: Ne. Nisi mi rekao svoje ime.
Ne želimo više spremati ime sugovornika, resetujemo varijablu
$ Ti si budala.
# To je to, nisam više prijatelj s tobom, a zaboravio sam tvoje ime. [% user_name = ""]
Gost: Ti si budala.
Inf: To je to, nisam više prijatelj s tobom, a zaboravio sam tvoje ime.

Dodjela vrijednosti varijabli i nuliranje varijable

Dodijelite vrijednost varijabla ili ga možete resetirati u odgovorima infa.

Sintaksa:[% varijable = "vrijednost"]
Naredba za dodjelu varijabla uvijek okružen uglastim zagradama, koji su ovdje simboli usluge. Značenje varijabla uvijek pod navodnicima.
Primjeri dodjele vrijednosti:
$ Bavim se rock and rollom.
# Zavidim. INF-ovi ne mogu plesati [% var1 = "ples"]

$ * mrzim * plesati *
$ * ples * mrzim *
$ * ne pleši *
# Šteta je. Da sam čovjek, sigurno bih plesao. [% var1 = "ne voli plesati"]

$ Imam ** godina.
# Kul godina! [% user_age = "[* 1]"]

Primjer nuliranja varijabla :
$ Ne želim da pričaš o mojim godinama.
# Što god kažete [% user_age = ""]

Dodjela vrijednosti varijabli pomoću funkcije set

Funkcija set ("Argument1", "Argument2", "Argument3") zamjenjuje Argument2 umjesto njega i dodjeljuje njegovu vrijednost varijabli navedenoj u Argument1. Argument3 je prema zadanim postavkama prazan niz. Ako ga navedete osim praznog niza, tada se za postavljenu funkciju neće zamijeniti tekst, a bit će dodijeljena samo vrijednost varijable.

Na primjer,
$ moje ime je **
# Drago mi je što smo se upoznali, [@set ("user_name", "[@ (" [* 1] ")]")]!

Gost: moje ime je Vasya
Inf: Drago mi je, Vasya!

Ili:
$ moje ime je **
# Pamtit ću tvoje ime. [@set ("user_name", "[@ (" [* 1] ")]", "1")]

$ * što je * moje * ime *
# Vi ste [% user_name].

Gost: Moje ime je Lena
Inf: pamtit ću tvoje ime.
Gost: pa kako se ja zovem?
Inf: Ti si Lena.

Ispis vrijednosti varijable u odgovoru infa

Do inf"oglasio" značenje varijabla u odgovoru, samo ovo trebate napisati u odgovoru varijabla.
Sintaksa:[%varijable]
Uglate zagrade su obavezne.

Primjer:
$ Zbogom, robote!
# Zbogom [% user_name]!

Kako bi se logika mogla implementirati u program, koriste se uvjetni operatori. Konceptualno, ovi operatori se mogu predstaviti kao čvorne točke, dostižući koje program bira u kojem od mogućih smjerova će se kretati dalje. Na primjer, trebate odrediti sadrži li neka varijabla arg pozitivan ili negativan broj i prikazati odgovarajuću poruku na ekranu. Da biste to učinili, možete koristiti if naredbu (if), koja obavlja slične provjere.

U najjednostavnijem slučaju, sintaksa za dati if izraz je sljedeća:

ako (izraz)

Ako je vrijednost parametra "expression" "true", naredba se izvršava, inače je program preskače. Treba napomenuti da je "izraz" uvjetni izraz u kojem se provjerava neki uvjet. Stol 2.1 prikazuje varijante jednostavnih logičkih izraza if naredbe.

Tablica 2.1. Jednostavni Booleovi izrazi

Navedimo primjer korištenja if operatora grananja. Sljedeći program omogućuje određivanje predznaka unesene varijable.

Listing 2.1. Prvi program za određivanje predznaka unesenog broja.

#uključiti
int main ()
{
float x;
printf ("Unesite broj:");
scanf (“% f”, & x);
ako je (x> = 0)

Vrati 0;
}

Analiza zadanog programskog teksta pokazuje da se dva uvjetna operatora mogu zamijeniti jednim pomoću konstrukcije

ako (izraz)

što se tako tumači. Ako je "izraz" istinit, tada se izvršava "izjava1", u suprotnom se izvršava "izjava2". Prepišimo prethodno navedeni primjer određivanja predznaka broja pomoću ove konstrukcije.

Listing 2.2. Drugi program za određivanje predznaka unesenog broja.

#uključiti
int main ()
{
float x;
printf ("Unesite broj:");
scanf (“% f”, & x);
if (x printf (“Uneseni broj% f je negativan. \ n”, x);
drugo
printf (“Uneseni broj% f nije negativan. \ n”, x);

Vrati 0;
}

U prikazanim primjerima, nakon if i else naredbi, postoji samo jedna funkcija printf (). U slučajevima kada je potrebno napisati više od jednog operatora kada je uvjet ispunjen, moraju se koristiti vitičaste zagrade, tj. koristiti konstrukciju poput

ako (izraz)
{

}
drugo
{

Treba napomenuti da nakon ključne riječi else možete formalno staviti još jedan if uvjetni izraz, kao rezultat toga dobivamo još fleksibilniju konstrukciju uvjetnih prijelaza:

ako (izraz1)
inače ako (izraz2)
drugo

Listing 2.3 prikazuje program koji implementira posljednju uvjetnu granu konstrukciju.

Listing 2.3. Treći program za određivanje predznaka unesenog broja.

#uključiti
int main ()
{
float x;
printf ("Unesite broj:");
scanf (“% f”, & x);
if (x printf (“Uneseni broj% f je negativan. \ n”, x);
inače ako (x> 0)
printf (“Uneseni broj% f je pozitivan. \ n”, x);
drugo
printf (“Uneseni broj% f nije negativan. \ n”, x);

Vrati 0;
}

Do sada smo razmatrali jednostavne uvjete kao što je x && - logično I
|| - logično ILI
! - logično NE

Na temelju ove tri logičke operacije mogu se generirati složeniji uvjeti. Na primjer, ako postoje tri varijable exp1, exp2 i exp3, tada one mogu činiti logičke konstrukcije prikazane u tablici. 2.2.

Tablica 2.2. Primjer složenih logičkih izraza

Kao i operacije množenja i zbrajanja u matematici, logičke operacije I ILI NE, također imaju svoje prioritete. Operacija NE ima najveći prioritet, t.j. takva se operacija najprije izvodi. Operacija AND ima niži prioritet, a konačno operacija OR ima najniži prioritet. Ovi se prioriteti moraju uzeti u obzir pri izradi složenih uvjeta. Na primjer, stanje

if (4 6 || 5 je testiran na ovaj način. If 4 6 OR 5 if (4 6 || 5 if izraz olakšava pisanje programa u kojima trebate birati između malog broja mogućih opcija. Međutim, ponekad program treba odabrati jednu opciju od mnogih mogućih. Formalno, možete koristiti if else if ... else konstrukciju. Međutim, u mnogim slučajevima se ispostavi da je prikladnije koristiti naredbu C++ switch. sintaksa ovog operatora je sljedeća:

prekidač (varijabilan)
{
konstanta slučaja1:

Konstanta slučaja 2:

...
zadano:

Ovaj operator sekvencijalno provjerava jednakost varijable s konstantama iza ključne riječi case. Ako niti jedna od konstanti nije jednaka vrijednosti varijable, tada se izvršavaju naredbe iza riječi default. Naredba switch ima sljedeću posebnost. Pretpostavimo da je vrijednost varijable jednaka vrijednosti konstante1 i da se naredbe nakon ključne riječi prvog case izvršavaju. Nakon toga će se izvođenje programa nastaviti provjeravanjem varijable jednakosti konstante2, što često dovodi do nepotrebnog trošenja računalnih resursa. Da biste izbjegli ovu situaciju, trebali biste upotrijebiti naredbu break da premjestite program na sljedeći izraz nakon prebacivanja.

Listing 2.4 prikazuje primjer programiranja izraza uvjetnog prekidača.

Listing 2.4. Primjer korištenja naredbe switch.

#uključiti
int main ()
{
int x;
printf ("Unesite broj:");
scanf (“% d”, & x);
prekidač (x)
{
slučaj 1: printf (“Unesen broj 1 \ n”); prekid;
slučaj 2: printf (“Unesen broj 2 \ n”); pauza;
zadano: printf (“Unesen još jedan broj \ n”);
}
char ch;
printf ("Unesite znak:");
scanf ("% c", & ch);
prekidač (ch)
{
case 'a': printf ("Unesen je znak a \ n"); pauza;
case 'b': printf ("Unesen znak b \ n"); pauza;
zadano: printf (“Unesen je još jedan znak \ n”);
}
vrati 0;
}

Ovaj primjer pokazuje dva različita slučaja upotrebe naredbe switch. U prvom slučaju analizira se unesena znamenka, u drugom se analizira uneseni znak. Treba napomenuti da ovaj operator može napraviti izbor samo na temelju jednakosti svog argumenta s jednom od navedenih vrijednosti slučaja, t.j. provjera izraza kao što je x

Vrhunski povezani članci