Odvisnost konstante ravnotežja. Premik kemijskega ravnovesja

Kemijsko ravnovesje je stanje reverzibilne kemijske reakcije.

aA+ b B= c C+ d D,

pri katerem se koncentracije reaktantov v reakcijski zmesi skozi čas ne spreminjajo. Označeno je stanje kemijskega ravnovesja konstanta kemijskega ravnotežja:

Kje C i– koncentracija sestavin v ravnovesje popolna mešanica.

Ravnotežno konstanto lahko izrazimo tudi z ravnotežnimi molskimi deleži X i komponente:

Za reakcije, ki potekajo v plinski fazi, je ravnotežno konstanto priročno izraziti z ravnotežnimi parcialnimi tlaki P i komponente:

Za idealne pline P i = C i RT in P i = X i P, Kje p je skupni tlak, torej K P, K C in K X so povezani z naslednjim razmerjem:

K P = K C (RT) c+d–a–b = K X P c+d–a–b. (9.4)

Ravnotežna konstanta je povezana z rG o kemična reakcija:

(9.5)

(9.6)

spremeniti rG oz r F v kemijski reakciji pri danih (ne nujno ravnotežnih) parcialnih tlakih P i ali koncentracije C i komponente je mogoče izračunati z enačbo izoterme kemijske reakcije (van't Hoffove izoterme):

. (9.7)

. (9.8)

Po navedbah Le Chatelierjevo načelo, če se na sistem, ki je v ravnotežju, izvaja zunanji vpliv, se bo ravnotežje premaknilo tako, da se bo učinek zunanjega vpliva zmanjšal. Tako povečanje tlaka premakne ravnovesje v smeri zmanjšanja števila molekul plina. Dodajanje katere koli reakcijske komponente ravnotežni zmesi premakne ravnotežje v smeri zmanjšanja količine te komponente. Zvišanje (ali znižanje) temperature premakne ravnovesje v smeri reakcije, ki se pojavi z absorpcijo (sproščanjem) toplote.

Kvantitativno odvisnost konstante ravnotežja od temperature opisuje enačba izobare kemijske reakcije (van't Hoffove izobare)

(9.9)

in izohore kemijske reakcije (van't Hoffove izohore)

. (9.10)

Integracija enačbe (9.9) ob predpostavki, da r H reakcija ni odvisna od temperature (kar velja v ozkih temperaturnih območjih), daje:

(9.11)

(9.12)

Kje C – integracijska konstanta. Tako je odvisnost ln K P od 1 /T mora biti linearen, naklon ravne črte pa je – r H/R.

Integracija znotraj K 1 , K 2 in T 1, T 2 daje:

(9.13)

(9.14)

Z uporabo te enačbe lahko izračunamo, če poznamo konstante ravnotežja pri dveh različnih temperaturah r H reakcije. Skladno s tem vedenje r H reakcije in konstanto ravnotežja pri eni temperaturi, lahko izračunate konstanto ravnotežja pri drugi temperaturi.

PRIMERI

CO (g) + 2H 2 (g) = CH 3 OH (g)

pri 500 K. f G o za CO(g) in CH 3 OH(g) pri 500 K so enake –155,41 kJ. mol –1 in –134,20 kJ. mol –1 oz.

rešitev. G o reakcije:

r G o= f G o(CH3OH) – f G o(CO) = –134,20 – (–155,41) = 21,21 kJ. mol –1.

= 6.09 10 –3 .

Primer 9-2. Konstanta ravnotežja reakcije

enako K P = 1,64 10 –4 pri 400 o C. Kolikšen skupni tlak je treba uporabiti za ekvimolarno zmes N 2 in H 2, da se 10 % N 2 spremeni v NH 3? Plini veljajo za idealne.

rešitev. Pustimo, da mol N 2 reagira. Potem

N 2 (g) + 3H 2 (g) = 2NH 3 (g)
Originalna količina 1 1
Ravnotežna količina 1– 1–3 2 (Skupaj: 2–2)
Ravnotežni molski delež:

torej K X = in K P = K X . p –2 = .

Če zamenjamo = 0,1 v nastalo formulo, imamo

1.64 10 –4 =, kje p= 51,2 atm.

Primer 9-3. Konstanta ravnotežja reakcije

CO (g) + 2H 2 (g) = CH 3 OH (g)

pri 500 K je enako K P = 6,09 · 10 –3. Reakcijsko mešanico, sestavljeno iz 1 mol CO, 2 mol H 2 in 1 mol inertnega plina (N 2), segrejemo na 500 K in skupni tlak 100 atm. Izračunajte sestavo ravnotežne zmesi.

rešitev. Pustimo, da reagira mol CO. Potem

Zobnik) + 2H 2 (g) = CH3OH (g)
Prvotna količina: 1 2 0
Ravnotežna količina: 1– 2–2
Skupaj v ravnotežni mešanici: 3–2 mol komponent + 1 mol N 2 = 4–2 mol
Ravnotežni molski delež

torej K X = in K P = K X . P–2 = .

Tako je 6,09 10 –3 = .

Če rešimo to enačbo, dobimo = 0,732. V skladu s tem so molski deleži snovi v ravnotežni zmesi enaki: = 0,288, = 0,106, = 0,212 in = 0,394.

Primer 9-4. Za reakcijo

N 2 (g) + 3H 2 (g) = 2NH 3 (g)

pri 298 K K P = 6,0 10 5, a f H o(NH 3) = –46,1 kJ. mol –1. Ocenite vrednost konstante ravnovesja pri 500 K.

rešitev. Standardna molska entalpija reakcije je

r H o= 2f H o(NH 3) = –92,2 kJ. mol –1.

V skladu z enačbo (9.14) =

Ln (6,0 10 5) + = –1,73, od koder je K 2 = 0.18.

Upoštevajte, da konstanta ravnotežja eksotermne reakcije pada z naraščajočo temperaturo, kar ustreza Le Chatelierjevemu načelu.

NALOGE

  1. Pri 1273 K in skupnem tlaku 30 atm v ravnotežni mešanici
  2. CO 2 (g) + C(tv) = 2CO (g)

    vsebuje 17% (po prostornini) CO 2 . Kolikšen odstotek CO 2 bo vseboval plin pri skupnem tlaku 20 atm? Pri kakšnem tlaku bo plin vseboval 25 % CO 2?

  3. Pri 2000 o C in skupnem tlaku 1 atm se 2 % vode disociira na vodik in kisik. Izračunajte konstanto ravnotežja reakcije
  4. H 2 O (g) = H 2 (g) + 1/2O 2 (g) pod temi pogoji.

  5. Konstanta ravnotežja reakcije
  6. CO(g) + H 2 O (g) = CO 2 (g) + H 2 (g)

    pri 500 o C je enako K str= 5,5. Na to temperaturo smo segreli zmes, sestavljeno iz 1 mol CO in 5 mol H 2 O. Izračunajte molski delež H 2 O v ravnotežni mešanici.

  7. Konstanta ravnotežja reakcije
  8. N 2 O 4 (g) = 2NO 2 (g)

    pri 25 o C je enako K str= 0,143. Izračunajte tlak, ki se bo vzpostavil v posodi s prostornino 1 liter, v katero smo pri tej temperaturi dali 1 g N 2 O 4.

  9. 3-litrsko posodo, ki je vsebovala 1,79 10 –2 mol I 2, smo segreli na 973 K. Izkazalo se je, da je tlak v posodi v ravnovesju 0,49 atm. Ob predpostavki, da so plini idealni, izračunajte konstanto ravnotežja pri 973 K za reakcijo
  10. I 2 (g) = 2I (g).

  11. Za reakcijo
  12. pri 250 o C rG o = –2508 J mol –1. Pri katerem skupnem tlaku bo stopnja pretvorbe PCl 5 v PCl 3 in Cl 2 pri 250 o C 30 %?

  13. Za reakcijo
  14. 2HI(g) = H 2 (g) + I 2 (g)

    ravnotežna konstanta K P = 1,83 10 –2 pri 698,6 K. Koliko gramov HI nastane, ko 10 g I 2 in 0,2 g H 2 segrejemo na to temperaturo v trilitrski posodi? Kakšni so parcialni tlaki H 2, I 2 in HI?

  15. 1-litrsko posodo, ki je vsebovala 0,341 mol PCl 5 in 0,233 mol N 2, smo segreli na 250 o C. Izkazalo se je, da je skupni tlak v posodi pri ravnotežju 29,33 atm. Ob predpostavki, da so vsi plini idealni, izračunajte konstanto ravnotežja pri 250 o C za reakcijo, ki poteka v posodi.
  16. PCl 5 (g) = PCl 3 (g) + Cl 2 (g)

  17. Konstanta ravnotežja reakcije
  18. CO (g) + 2H 2 (g) = CH 3 OH (g)

    pri 500 K je enako K P = 6,09 · 10 –3. Izračunajte skupni tlak, potreben za proizvodnjo metanola z 90-odstotnim izkoristkom, če sta CO in H2 vzeta v razmerju 1:2.

  19. Pri 25 o C f G o(NH 3) = –16,5 kJ. mol –1. Izračunaj rG reakcije tvorbe NH 3 pri parcialnih tlakih N 2, H 2 in NH 3 enakih 3 atm, 1 atm oziroma 4 atm. V katero smer bo spontano potekala reakcija v teh pogojih?
  20. Eksotermna reakcija
  21. CO (g) + 2H 2 (g) = CH 3 OH (g)

    je v ravnovesju pri 500 K in 10 barih. Če so plini idealni, kako bodo na izkoristek metanola vplivali naslednji dejavniki: a) povečanje T; b) napredovanje p; c) dodajanje inertnega plina pri V= konst; d) dodajanje inertnega plina pri p= konst; e) dodajanje H2 at p= konst?

  22. Konstanta ravnotežja plinskofazne reakcije izomerizacije borneola (C 10 H 17 OH) v izoborneol je 0,106 pri 503 K. Zmes 7,5 g borneola in 14,0 g izoborneola smo dali v 5-litrsko posodo in hranili pri 503 K, dokler ni doseženo ravnovesje. Izračunajte molske deleže in mase borneola in izoborneola v ravnotežni zmesi.
  23. Ravnotežje v reakciji
  24. 2NOCl(g) = 2NO(g) + Cl 2 (g)

    nastavljeno na 227 o C in skupni tlak 1,0 bar, ko je parcialni tlak NOCl 0,64 bar (sprva je bil prisoten samo NOCl). Izračunaj r G o za reakcijo. Pri katerem skupnem tlaku bo parcialni tlak Cl 2 enak 0,10 bara?

  25. Izračunajte skupni tlak, ki ga je treba uporabiti za zmes 3 delov H 2 in 1 dela N 2, da dobimo ravnotežno zmes, ki vsebuje 10 % prostornine NH 3 pri 400 o C. Konstanta ravnotežja za reakcijo
  26. N 2 (g) + 3H 2 (g) = 2NH 3 (g)

    pri 400 o C je enako K = 1.60 10 –4 .

  27. Pri 250 o C in skupnem tlaku 1 atm se PCl 5 z reakcijo disociira za 80 %.
  28. PCl 5 (g) = PCl 3 (g) + Cl 2 (g).

    Kakšna bo stopnja disociacije PCl 5, če v sistem dodamo N 2, tako da je parcialni tlak dušika 0,9 atm? Skupni tlak se vzdržuje na 1 atm.

  29. Pri 2000 o C za reakcijo
  30. N 2 (g) + O 2 (g) = 2NO (g)

    K p = 2,5 · 10 –3. Ravnotežna mešanica N 2, O 2, NO in inertnega plina pri skupnem tlaku 1 bar vsebuje 80 % (po prostornini) N 2 in 16 % O 2. Koliko volumskih odstotkov je NO? Kakšen je parcialni tlak inertnega plina?

  31. Izračunajte standardno entalpijo reakcije, za katero je konstanta ravnotežja
    a) se poveča za 2-krat, b) zmanjša za 2-krat, ko se temperatura spremeni iz 298 K na 308 K.
  32. Odvisnost konstante ravnotežja reakcije 2C 3 H 6 (g) = C 2 H 4 (g) + C 4 H 8 (g) od temperature med 300 K in 600 K opisuje enačba

ln K = –1.04 –1088 /T +1.51 10 5 /T 2 .

Enačbe izobar, izohor, Van't Hoffovih reakcij in Planckove enačbe

Skoraj vedno je treba preiti iz enih reakcijskih pogojev v druge. Če želite to narediti, morate poznati odvisnost ravnotežnih konstant od temperature in tlaka. Poznavanje ravnotežnih konstant pri različnih temperaturah in tlakih širi zmožnosti kemijskega tehnologa pri napovedovanju rezultatov procesa.

Odvisnost konstante ravnotežja od temperature dobimo z diferenciacijo reakcijske izoterme glede na temperaturo pod pogojem, da so tlaki v kp neodvisni od temperature

Dobimo izraz

če vse člene te enačbe delimo s T, izrazimo člen skozi d∆G/dT. Nadomestimo ga v diferencirani izraz izoterme

Nastala enačba se imenuje Van't Hoffova reakcijska izobara. Popolnoma enak pristop se uporablja za izpeljavo izohore reakcije, pri kateri se uporabi sprememba Helmholtzeve energije, sestava sistema pa se izrazi s koncentracijami. Izohorski izraz ima obliko

kjer sta ∆Н in ∆U termodinamični toplotni učinek.

Da bi dobili odvisnost ravnotežne konstante od tlaka, uporabimo nekoliko drugačen pristop. k P in k s nista odvisna od tlaka. Iz razmerja med ravnotežnimi konstantami, izraženimi na različne načine (6), je jasno, da je konstanta k n odvisna od tlaka: k n = k P ∙ P -∆ n

Vzemimo logaritem tega izraza in ga nato diferencirajmo glede na P:

Upoštevajte, da je d ln k р /d P = 0 po pogoju; d ln P/d P = 1/P od koder dobimo d ln do N /d P = - ∆n/P; Δn najdemo iz Clapeyron-Mendelejevove enačbe in jo zapišemo za dve stanji v obliki PΔV = ΔnRT. Od tod izrazimo ΔV in ga nadomestimo v diferencirani izraz konstante ravnotežja
k n dobimo Planckovo enačbo, ki izraža odvisnost ravnotežne konstante od tlaka

Izohorne enačbe, reakcijske izobare in Planckova enačba imajo napovedno vrednost in so zelo zanimive za tehnologe. Te enačbe so kvantitativna značilnost Le Chatelierjevega principa ravnotežnega premika. To načelo je mogoče formulirati na naslednji način: »Če na sistem v ravnovesju vplivamo od zunaj in spremenimo katerega od pogojev, ki določajo ravnotežni položaj, se bo v sistemu okrepila smer, zaradi česar bo oslabljen zunanji vpliv, ravnotežni položaj pa se bo premaknil v isto smer." Najpogosteje so pogoji, ki določajo ravnotežni položaj, temperatura, tlak in koncentracija.



Ponazorimo napovedni pomen izpeljanih enačb kot kvantitativne značilnosti principa premika ravnotežja na primeru sinteze amoniaka: N 2 + 3H 2 ↔ 2NH 3 - ∆H

Zapišimo enačbo izobare

Predpostavimo, da je ta sistem segret ΔH<0. Правая часть урав­нения изотермы уменьшится (∆Н/RT 2)<0, значит левая часть тоже уменьшится: (d ln к р /d P)<0 (она может уменьшиться за счет уменьшения к р).

Ravnotežna konstanta za sintezo amoniaka ima obliko She

se lahko zmanjša zaradi zmanjšanja tlaka reakcijskih produktov in povečanja tlaka izhodnih snovi. To pomeni, da se pri segrevanju ta eksotermna reakcija premakne proti endotermnemu procesu razgradnje amoniaka. Ta rezultat je bil pridobljen na podlagi analize Van't Hoffove izobare. Lahko je pokazati, da se ujema z napovedjo Le Chatelierjevega načela. Podoben rezultat lahko dobimo z uporabo Planckovih enačb za analizo te reakcije, pri čemer upoštevamo, da je tlak P inverzna vrednost 1/V prostornine. Učence prosimo, da ta dejanja izvajajo samostojno.

Odvisnost konstante ravnotežja reakcije od temperature je mogoče opisati z izobarno enačbo kemijske reakcije (van't Hoffova izobara):

in izohore kemijske reakcije (van't Hoffove izohore):

Tukaj Δ H in Δ U- toplotni učinek reakcije, ki se pojavi pri konstantnem tlaku ali konstantnem volumnu. Če Δ H> 0 (toplotni učinek je pozitiven, reakcija je endotermna), potem je temperaturni koeficient konstanten

ravnotežje je tudi pozitivno, to pomeni, da z naraščajočo temperaturo konstanta ravnotežja endotermne reakcije narašča, ravnotežje se premakne v desno (kar je povsem skladno z Le Chatelierjevim načelom).

Konstanta ravnotežja in konstanta hitrosti reakcije

Za reverzibilno kemijsko reakcijo se lahko konstanta ravnotežja izrazi s konstantami hitrosti prednjih in povratnih reakcij, ki temeljijo na dejstvu, da sta v ravnotežju hitrosti prednjih in povratnih reakcij enaki. Na primer za elementarno reverzibilno kemijsko reakcijo prvega reda

enostavno je pokazati, da:

Kje k 1 je konstanta hitrosti reakcije naprej in k 2 - vzvratno. Ta pomemben odnos predstavlja eno od "stičnih točk" med kemijsko kinetiko in kemijsko termodinamiko.

Metode za izračun konstante ravnotežja

Računske metode za določanje ravnotežne konstante reakcije se običajno zmanjšajo na izračun na tak ali drugačen način standardne spremembe Gibbsove energije med reakcijo ( ΔG 0 ), in nato z uporabo formule:

Ne smemo pozabiti, da je Gibbsova energija funkcija stanja sistema, to pomeni, da ni odvisna od poti procesa, od reakcijskega mehanizma, ampak je določena le z začetnim in končnim stanjem sistema. . Torej, če neposredno določitev ali izračun ΔG 0 ker so nekatere reakcije iz neznanega razloga težke, lahko izberete vmesne reakcije, za katere ΔG 0 znana ali jo je mogoče zlahka določiti in katere seštevek bo dal zadevno reakcijo (glej Hessov zakon). Kot take vmesne reakcije se pogosto uporabljajo zlasti reakcije tvorbe spojin iz elementov.

Entropijski izračun spremembe Gibbsove energije in ravnotežne konstante reakcije

Metoda izračuna entropije ΔG reakcija je ena najpogostejših in najprimernejših. Temelji na razmerju:

ali v skladu s tem za standard Gibbsove spremembe energije:

Tukaj ΔH 0 pri konstantnem tlaku in temperaturi je enak toplotnemu učinku reakcije, katerega metode izračuna in eksperimentalne določitve so znane - glej na primer Kirchhoffovo enačbo:

Med reakcijo je treba pridobiti spremembo entropije. To težavo je mogoče rešiti na več načinov, npr.

Glede na toplotne podatke - na podlagi Nernstovega termičnega izreka in z uporabo informacij o temperaturni odvisnosti toplotne kapacitete udeležencev reakcije. Na primer za snovi, ki so v normalnih pogojih v trdnem stanju:

kjer je S 0 = 0 (Planckov postulat) in nato v skladu s tem

.

(tukaj je indeks sol iz angleškega solid). Pri neki dani temperaturi T:

Pri snoveh, ki so pri normalni temperaturi tekoče ali plinaste, ali na splošno pri snoveh, ki so podvržene faznemu prehodu v temperaturnem območju od 0 (ali 298) do T, je treba upoštevati spremembo entropije, povezano s tem faznim prehodom. .

Za idealne pline - z metodami kvantne statistike.

Z uporabo različnih empiričnih in polempiričnih metod za to pogosto zadošča majhna količina začetnih podatkov. Na primer, za trdne anorganske snovi je entropijo mogoče oceniti s formulo

kjer sta A in B tabelarični konstanti, odvisni od vrste zadevne spojine, M je molekulska masa.

Torej, če so znane temperaturne odvisnosti toplotne kapacitete, se lahko izračuna po formuli:

Nekoliko poenostavljeno različico te formule dobimo, če upoštevamo, da je vsota toplotnih kapacitet snovi neodvisna od temperature in enaka vsoti toplotnih kapacitet pri 298 K:

In še bolj poenostavljen izračun se izvede z enačenjem vsote toplotnih kapacitet na nič:

Prehod iz na konstanto ravnovesja se izvede po zgornji formuli.

Le Chatelier-Brownovo načelo(1884) - če na sistem, ki je v stabilnem ravnotežju, vplivamo od zunaj, spreminjamo kateri koli od ravnotežnih pogojev (temperatura, tlak, koncentracija), se procesi v sistemu, katerih cilj je kompenzacija zunanjega vpliva, okrepijo.

Henri Le Chatelier (Francija) je formuliral to termodinamično načelo gibljivega ravnovesja, ki ga je kasneje posplošil Karl Braun

Oglejmo si splošno obratno reakcijo

Eksperimentalne študije kažejo, da v stanju ravnovesja velja naslednje razmerje:

(oglati oklepaji označujejo koncentracijo). Zgornje razmerje je matematični izraz zakona množičnega delovanja ali zakona kemijskega ravnovesja, po katerem je v stanju kemijskega ravnovesja pri določeni temperaturi produkt koncentracij reakcijskih produktov v potencah, eksponentih

ki so enaki ustreznim koeficientom v stehiometrični reakcijski enačbi, deljeni s podobnim produktom koncentracij reaktantov v ustreznih potencah, predstavlja konstantno vrednost. To konstanto imenujemo konstanta ravnovesja. Za reakcije v raztopinah je značilno izražanje konstante ravnotežja v koncentracijah produktov in reagentov.

Upoštevajte, da desna stran izraza za konstanto ravnotežja vsebuje samo koncentracije topljencev. Ne sme vključevati nobenih izrazov, povezanih s čistimi trdnimi snovmi, čistimi tekočinami ali topili, ki sodelujejo v reakciji, saj so ti izrazi stalni.

Pri reakcijah, ki vključujejo pline, je ravnotežna konstanta izražena s parcialnimi tlaki plinov in ne z njihovimi koncentracijami. V tem primeru je konstanta ravnotežja označena s simbolom.

Koncentracijo plina lahko izrazimo v smislu njegovega tlaka z uporabo enačbe stanja idealnega plina (glej razdelek 3.1):

Iz te enačbe sledi

kjer je koncentracija plina, ki jo lahko označimo kot [plin]. Ker je - konstantna vrednost, lahko to zapišemo pri določeni temperaturi

Izrazimo konstanto ravnotežja za reakcijo med vodikom in jodom v parcialnih tlakih teh plinov.

Enačba za to reakcijo ima obliko

Zato je konstanta ravnotežja te reakcije podana z

Naj opozorimo, da koncentracije ali parcialni tlaki produktov, to je snovi, ki so navedene na desni strani kemijske enačbe, vedno tvorijo števec, koncentracije ali parcialni tlaki reaktantov, to je snovi, ki so navedene na levi strani kemikalije. enačbe vedno tvorijo imenovalec izraza za konstanto ravnotežja.

Merske enote za konstanto ravnovesja

Ravnotežna konstanta je lahko razsežna ali brezrazsežna količina, odvisno od vrste njenega matematičnega izraza. V zgornjem primeru je konstanta ravnotežja brezrazsežna količina, ker imata števec in imenovalec ulomka enake dimenzije. Sicer pa ima konstanta ravnotežja razsežnost, izraženo v enotah koncentracije ali tlaka.

Kakšna je dimenzija konstante ravnotežja za naslednjo reakcijo?

Zato ima dimenzijo (mol-dm-3)

Torej je razsežnost obravnavane konstante ravnotežja ali dm3/mol.

Kakšna je dimenzija konstante ravnotežja za naslednjo reakcijo?

Ravnotežna konstanta te reakcije je določena z izrazom

Zato ima dimenzijo

Torej je dimenzija te ravnotežne konstante: atm ali Pa.

Heterogena ravnovesja

Doslej smo podali samo primere homogenih ravnovesij. Na primer, pri reakciji sinteze vodikovega jodida sta produkt in oba reaktanta v plinastem stanju.

Kot primer reakcije, ki vodi do heterogenega ravnovesja, upoštevajte toplotno disociacijo kalcijevega karbonata

Ravnotežna konstanta te reakcije je podana z

Upoštevajte, da ta izraz ne vključuje nobenih izrazov, povezanih z dvema trdnima snovema, vključenima v reakcijo. V danem primeru ravnotežna konstanta predstavlja disociacijski tlak kalcijevega karbonata. Kaže, da če kalcijev karbonat segrevamo v zaprti posodi, potem njegov disociacijski tlak pri določeni temperaturi ni odvisen od količine kalcijevega karbonata. V naslednjem razdelku bomo izvedeli, kako se konstanta ravnotežja spreminja s temperaturo. V obravnavanem primeru disociacijski tlak preseže 1 atm le pri višji temperaturi, da bi dioksid

No, začenjamo prehajati k bistvu. Morali bi že razumeti, kaj je spremenljivka in kako uporabljati pogoje v svojih programih. Upam, da je res tako, sicer je vse ostalo brezpredmetno za branje.

Ko sem govoril o spremenljivkah, sem izpustil še eno vrsto spremenljivk. Ta spremenljivka za razliko od ostalih shranjuje svojo vrednost ves čas izvajanja programa. Zažene se ob deklaraciji in je ni mogoče spremeniti v nadaljnji kodi. Ta spremenljivka se imenuje konstantna.

Čemu služijo konstante? Za trajno shranjevanje informacij. Kolikor ne bi rad dajal matematičnih primerjav, so najbolj očitne. Ne pozabite na fiziko - gravitacijska konstanta, temperatura v Kelvinih, Fahrenheitih itd. Vse to so stalnice. Pravzaprav smo nekoč deklarirali takšno spremenljivko in pozabili na njen pomen ter nadomestili njeno ime v programu. se lahko vprašate, zakaj ne morete uporabiti preproste spremenljivke za shranjevanje takih informacij? Ampak zato, ker lahko tej spremenljivki dodelite drugačno vrednost, ne pa tudi konstanti.

Poglejmo sintakso, nato pa bom podal vizualni primer.

V C je bila konstanta določena z direktivo # opredeliti

#define PI 3.14 // PI bo zdaj vseboval 3.14

To direktivo je mogoče najti v številnih trenutnih programih, vendar je zastarel pristop. V C++ je bil predstavljen nov modifikator konst.

Const float PI=3,14;\

Const float PI=3,14; int _tmain(int argc, _TCHAR* argv) ( setlocale (0,""); //nastavi privzeti jezik (ruščina) int S,R=21; //površina in polmer kroga S=PI*R*R ; sistem ("pavza"); //preprečiti zapiranje okna return 0;

Kjerkoli imenujemo to spremenljivko, bo povsod enaka 3,14. Zelo priročno, kajne? Mimogrede, za poskus poskusite v programu dodeliti nekaj vrednosti PI. Poglejte, kako reagira prevajalnik.

No, na koncu lahko glede konstant povem, da lahko kot konstanto uporabite aritmetični izraz.

Const PROIZV=23*12; // zdaj imamo v konstanti številko 276

Zapomnite si tudi eno pravilo - Imena stalnic naj bodo vedno zapisana z velikimi tiskanimi črkami! To bo olajšalo tudi vaše življenje, saj ko naletite na pravilno oblikovano konstanto, boste takoj razumeli, da je konstanta.

Skupaj s konstantami se pogosto uporabljajo v programiranju prenosi. V svojem bistvu je niz konstant. Potrebni so za omejitev obsega vrednosti spremenljivke. To je lahko dan v tednu, mesec, spol (mož ali žena) itd. Naštevanja se še posebej pogosto uporabljajo pri pisanju iger.

No, zdaj pozabimo na to, kar sem napisal zgoraj in si oglejmo naštevanje kot primer.

Naštevanja morajo biti deklarirana zunaj glavne funkcije. Bistvo je, da je programersko definirana vrsta. In takšne tipe, skupaj s strukturami in razredi, je treba deklarirati, po možnosti v ločenem modulu. A vse to si bomo ogledali veliko kasneje. Tukaj je opisano, kako je naštevanje deklarirano:

enum mesec (jan, februar, marec, april, maj, junij, julij, avgust, sept, okt, nov, dec);

Naštevanje se začne s ključno besedo enum, nato z imenom naštevanja ( to ni spremenljivka!!!), nabor vrednosti pa je naveden v oklepajih.

Zdaj lahko uporabimo deklarirano vrsto v našem programu:

Int main () (Mesec curMonth=junij; // zdaj //julij je shranjen v spremenljivki curMonth)

Kaj mislite, kaj je shranjeno v spremenljivki curMonth? Če mislite, da je junij, se motite. Naštevanje je številski tip in je implicitno pretvorjeno v int. Številčenje se začne od 0. Če to vemo, lahko domnevamo, da curMonth vsebuje številko 5. Z drugimi besedami, tej spremenljivki bi lahko dodelili namesto imena meseca njen numerični analog v interpretaciji številčenja in imeli bi prav.

Seveda primer z mesecem ali dnevom v tednu ni najbolj jasen. Vendar morate razumeti, da je spremenljivka lahko omejena na obseg vrednosti. Poskusite, dodelite curMonth vrednost, ki ni enum, in poglejte, kaj vas pokliče prevajalnik J.

Toda pri programiranju, na primer pod Windows, bomo pogosto naleteli na številčenja in konstante. Tukaj boste popolnoma razumeli priročnost njihove uporabe.

Zdaj pa se vrnimo k našemu primeru in poglejmo, kaj lahko še spremenimo. Mesece štejemo od ena, ne od nič. Iz naše kode lahko vidite, da je juniju 100 dodeljena vrednost 5, ne 6. No, v oštevilčevanju lahko nastavite svoje lastno številčenje.

Janu sem izrecno dodelil vrednost 1. Prevajalnik bo sam dodelil potrebne vrednosti preostalim mesecem. Seveda lahko vse naredite ročno, vendar v tem nima smisla.

In končno. Spremenljivko je mogoče deklarirati tudi pri podajanju oštevilčenja:

Enum mesec (jan=1, februar, marec, april, maj, junij, julij, avgust, sept, okt, nov, dec) ta mesec;

Potem je to spremenljivko že mogoče uporabiti v programu. Tam jih lahko objavite veliko. Toda osebno mi ta metoda ni všeč, saj menim, da je nekoliko zmedena. Navsezadnje ne programiramo v C, ampak v C++.

Cast

Tukaj natančno preberite. Dejstvo je, da C++ slovi po aritmetičnih napakah v izračunih. Ne, vse izračuna pravilno, vendar je rezultat izračuna zelo odvisen od vrste spremenljivke. Programer, ki se odloči dodeliti količnik deljenja tipu int, morda pogosto ne bo dobil želenega rezultata. Dejstvo je, da jezikovni prevajalnik izvaja implicitne pretvorbe tipov.

Tukaj je primer. Izračunati moramo plačo zaposlenega. Urno postavko poznamo. Nato to vrednost pomnožimo s številom opravljenih ur in dobimo želeni rezultat. Tukaj je vse preprosto. Toda predstavljajte si direktorja, ki zaposli delavca in ne ve, koliko naj ga plača. Nato vzame plačo za regijo in jo deli s številom ur.

Int zarp, ura, vel; vel=22320; // plača v mestu je 22.320 rubljev uro=22 * 8; //število ur je 22 delovnih dni * 8 urni delovni dan zarp=vel / ura; // naša ura cout<<"Час работника стоит =" <

Program nam bo dal številko 126 rubljev. To nam ustreza, vendar je enostavno vzeti kalkulator in izračunati, da je v resnici številka 126,8. In če zaposleni ni užaljen zaradi te pomanjkljivosti, so takšne napake v izračunih nesprejemljive. Kaj se je zgodilo?

zarp je celo število in shrani samo vrednost celega števila. Delni del bo zavržen. Z drugimi besedami, treba je bilo uporabiti dvojni tip, ki bi shranil ulomek. Toda tukaj je situacija nekoliko bolj zanimiva. Prevajalnik začasno dodeli dvojni tip spremenljivkam hour in vel, kot da bi razširil njihov pomen. Morda se tega ne zavedamo, čeprav je pomembno razumeti. Prevajalnik, ki naleti na večji tip, dodeli njegov operand manjšemu tipu. To je vse pravilo.

Vendar si predstavljajte situacijo, ko paranoičen programer zaman zapravlja pomnilnik (se spomnite, da je dvojni tip 2-krat večji od int?) in poskuša povsod dodeliti točno ta tip. Da, dobi natančno vrednost, pri čemer žrtvuje nekaj zmogljivosti (operacije z frakcijskimi tipi so počasnejše kot s celimi tipi, vendar to ni več pomembno), vendar se umetno spravljate v kot. Pa se vrnimo k našemu direktorju, ki še sam ne ve, koliko bi moral plačati za svoje delo. Recimo, da mu je skrben računovodja dal urno vrednost 132,12 rubljev. Takoj mu boste dodelili dvojno vrednost, začeli računati in tulili, ko se bodo povsod pojavili drobiži. No, ni nam jih treba dati zaposlenemu!

V tem primeru, če ste naredili takšno napako, lahko naredite eksplicitno zasedbo. V C je bilo narejeno takole:

(cast type) izraz

(int)vel; // umetno pretvorjen tip v celo število.

V C++ je Stroupstrup predstavil novo transformacijo. Tukaj je njegov opis:

statična _ zasedba <тип>(izraz)

Transformacije veljajo za znak slabega programskega okusa. Če imate preveč konverzij, potem morate najverjetneje spremeniti vse vrednosti v programu.

Vendar se transformacije pogosto uporabljajo v OOP. Zaenkrat se ne bomo zadrževali, z vajo boste takoj razumeli.

Torej, pojdi malo počivat. Naslednja lekcija bo težja in veliko bolj pomembna. Pohitim, da vas razveselim - od te osnove je ostalo nekaj lekcij in začeli bomo z običajnim programiranjem.