Lecția 4 "valoarea constantă este constantă", disponibilă pentru toate programele

Pentru ce sunt constantele? Pentru stocarea informațiilor permanente. Cum n-aș vrea să dau comparații matematice, dar ele sunt cele mai evidente. Amintiți-vă fizica - constanta gravitațională, temperatura pentru Kelvin, Fahrenheit etc. Toate acestea sunt constante. De fapt, am declarat o dată o astfel de variabilă și am uitat de semnificația ei, înlocuind numele ei în program. puteți întreba, de ce nu utilizați o variabilă simplă pentru a stoca astfel de informații? Și pentru că această variabilă puteți atribui o valoare diferită, iar constanta nu.







Să ne uităm la sintaxă și apoi voi da un exemplu.

În C, constanta a fost definită de directiva #define

#define PI 3.14 // PI va conține acum 3.14

Această directivă se regăsește în multe programe actuale, dar aceasta este o abordare depășită. În C ++, a fost introdus un nou modifier, const,

const float PI = 3,14;

Acest modifier este recomandat să fie întotdeauna utilizat cu programele dvs. C ++.

const float PI = 3,14;

int _tmain (int argc, _TCHAR * argv [])

setlocale (0, »»); // setați limba implicită (engleză)

int S, R = 21; // zona și raza unui cerc

sistem ("pauză"); // astfel încât fereastra să nu se închidă

Oriunde suntem numiți această variabilă, va fi 3.14 pretutindeni. Foarte convenabil, nu-i așa? Apropo, de dragul experimentului încercați să atribuiți PI orice valoare în program. Vedeți modul în care compilatorul reacționează.

Ei bine și în concluzie cu privire la constante pot să spun că este posibil să folosim ca expresie aritmetică constantă.

const PROIZV = 23 * 12; // acum avem numărul 276 în constanță

În plus, rețineți o regulă - numele constantelor ar trebui întotdeauna să fie scrise cu majuscule! Acest lucru vă va simplifica și viața, pentru că atunci când întâlniți o constantă constantă, veți realiza imediat că aceasta este o constantă.

Pe lângă constante, enumerarea este folosită pe scară largă în programare. La baza ei, acesta este un set de constante. Acestea sunt necesare pentru a limita selecția variabilă a intervalului de valori. Aceasta poate fi o zi a săptămânii, o lună, un semn de sex (soț sau soție) etc. În special, numeroase enumerări găsesc aplicații în grapisanie.

Ei bine, să uităm acum ce am scris mai sus și să iau în considerare enumerarea prin exemplu.

Enumerările trebuie declarate în afara funcției principale. Faptul este că acest tip este determinat de programator. Și astfel de tipuri, alături de structuri și clase, ar trebui îmbinate, de preferință într-un modul separat. Dar vom lua în considerare toate acestea mult mai târziu. Iată cum este enumerată declarația:

Enum începe cu cuvântul cheie enum, apoi se specifică numele enumului (aceasta nu este o variabilă.). și un set de valori este indicat în paranteze.







Acum putem folosi tipul declarat în programul nostru:

Desigur, exemplul cu luna sau ziua săptămânii nu este foarte clar. Cu toate acestea, trebuie să înțelegeți că puteți limita variabila într-o gamă de valori. Încercați, setați CurMonth la o valoare diferită de enumerare și vedeți cum vă revizuiește compilatorul J.

Dar în programare, de exemplu în Windows, vom întâlni de multe ori enumerări și constante. Acolo înțelegi pe deplin tot confortul utilizării lor.

I-am atribuit în mod explicit lui Jan o valoare de 1. În lunile rămase, compilatorul însuși va atribui valorile necesare. Desigur, puteți pune totul în mână, dar nu are nici un rost.

Păi și în sfârșit. De asemenea, puteți declara o variabilă atunci când specificați o enumerare:

Apoi, această variabilă poate fi deja utilizată în program. Anunță că pot fi foarte multe. Dar personal nu-mi place această metodă, considerând-o puțin confuză. În final, nu programăm în C, ci în C ++.

Iată un exemplu. Trebuie să calculăm salariul angajatului. Știm viteza oră. Apoi multiplicați această valoare cu numărul de ore lucrate și obțineți rezultatul dorit. Aici totul este simplu. Dar imaginați-vă un director care angajează un angajat și nu știe cât trebuie să plătească. Apoi, el ia suma de salariu în regiune și o împarte în funcție de numărul de ore.

int zarp, ora, vel;

vel = 22320; // salariul din oraș este de 22.320 de ruble

oră = 22 * ​​8; // numărul de ore este de 22 de zile lucrătoare * 8 ore lucrătoare

zarp = vel / oră; // ora noastră

cout<<«Час работника стоит =» <

Programul ne va da o cifră de 126 de ruble. Este potrivit pentru noi, dar este ușor să luăm un calculator și să calculați că numărul este de fapt 126, 8. Și dacă angajatul nu se abate de la acest neajuns, atunci în calcule astfel de erori sunt inacceptabile. Ce sa întâmplat?

zarp este un număr întreg și îl stochează numai ca valoare întregă. Partea fracționată va fi eliminată. Cu alte cuvinte, a fost necesar să se folosească tipul dublu, care ar stoca fracțiunea. Și aici situația este ceva mai interesantă. Compilatorul alocă temporar ora variabilă și mărește tipul de dublu, ca și cum ar extinde valoarea. Nu putem ghici despre acest lucru, deși este important să înțelegem acest lucru. Compilatorul, atunci când întâlnește un tip mai mare, atribuie operandu-lui cu tipul unei valori mai mici. Aceasta este regula.

Cu toate acestea, imaginați-vă o situație în care un programator paranoic pierde memoria (vă amintiți că dublul este mai mare decât int de două ori) și încearcă să atribuiți acest tip peste tot. Da, el devine valoarea exactă, a sacrifica unele de performanță (operațiuni cu tipuri de fracționare sunt mai lente decât cu întregul, dar acum este irelevant), dar în mod artificial el însuși zagonyate într-un colț. Să ne întoarcem la directorul nostru, care nu știe cât ar trebui să plătească pentru munca sa. Să presupunem că un contabil scrupulos ia dat valoarea de o oră la 132.12 ruble. Atribuiți-i imediat valoarea dublă, calculați-vă și invitați-vă, atunci când peste tot vor fi monezi. Ei bine, nu trebuie să le dăm angajatului!

În acest caz, dacă ați făcut o astfel de greșeală, puteți face o exprimare explicită. În C sa făcut așa:

(int) vel; // a adus artificial tipul la întreg.

În C ++, Straupstrup a introdus o nouă transformare. Iată descrierea lui:

Se recomandă utilizarea acestuia, însă versiunea Sish este utilizată pe scară largă. În plus, mulți chiar nu știu despre această a doua versiune a transformării.

Transformările sunt considerate un semn de programare proastă. Dacă aveți prea multe conversii, atunci cel mai probabil trebuie să modificați toate valorile din program.

Cu toate acestea, cu POR transformările sunt adesea folosite. Urmează-le până când o vom face, tot cu o practică, vei înțelege totul odată.

Deci, du-te, ia o odihnă. Următoarea lecție va fi mai dificilă și mult mai importantă. Mă grăbesc să vă mulțumesc - există câteva lecții ale acestei fundații și vom începe să programăm normal.







Trimiteți-le prietenilor: