Ovisnost konstante ravnoteže. Pomak kemijske ravnoteže

Kemijska ravnoteža je stanje reverzibilne kemijske reakcije.

aA+ b B= c C+ d D,

kod kojih nema promjena koncentracija reaktanata u reakcijskoj smjesi tijekom vremena. Karakterizira se stanje kemijske ravnoteže konstanta kemijske ravnoteže:

Gdje C i– koncentracija komponenti u ravnoteža savršena mješavina.

Konstanta ravnoteže također se može izraziti u obliku ravnotežnih molnih udjela X i komponente:

Za reakcije koje se odvijaju u plinovitoj fazi, prikladno je izraziti konstantu ravnoteže u smislu ravnotežnih parcijalnih tlakova P i komponente:

Za idealne plinove P i = C i RT I P i = X i P, Gdje P je ukupni pritisak, dakle K P, K C I K X povezani su sljedećim odnosom:

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

Konstanta ravnoteže povezana je s rG o kemijska reakcija:

(9.5)

(9.6)

Promijeniti rG ili r F u kemijskoj reakciji pri zadanim (ne nužno ravnotežnim) parcijalnim tlakovima P i odnosno koncentracije C i komponente se mogu izračunati pomoću jednadžbe izoterme kemijske reakcije (van't Hoffove izoterme):

. (9.7)

. (9.8)

Prema Le Chatelierov princip, ako se vanjski utjecaj izvrši na sustav koji je u ravnoteži, tada će se ravnoteža pomaknuti tako da se smanji učinak vanjskog utjecaja. Dakle, povećanje tlaka pomiče ravnotežu prema smanjenju broja molekula plina. Dodavanje bilo koje reakcijske komponente u ravnotežnu smjesu pomiče ravnotežu prema smanjenju količine te komponente. Povećanje (ili smanjenje) temperature pomiče ravnotežu prema reakciji koja se događa s apsorpcijom (oslobađanjem) topline.

Kvantitativna ovisnost konstante ravnoteže o temperaturi opisana je jednadžbom izobare kemijske reakcije (van't Hoffove izobare)

(9.9)

I izohore kemijske reakcije (van't Hoffove izohore)

. (9.10)

Integriranje jednadžbe (9.9) pod pretpostavkom da r H reakcija ne ovisi o temperaturi (što vrijedi u uskim temperaturnim područjima), daje:

(9.11)

(9.12)

Gdje C – integracijska konstanta. Dakle, ovisnost ln K P od 1 /T mora biti linearna, a nagib ravne linije je – r H/R.

Integracija unutar K 1 , K 2, i T 1, T 2 daje:

(9.13)

(9.14)

Pomoću ove jednadžbe, poznavajući konstante ravnoteže na dvije različite temperature, možemo izračunati r H reakcije. Prema tome, znajući r H reakcije i konstantu ravnoteže na jednoj temperaturi, možete izračunati konstantu ravnoteže na drugoj temperaturi.

PRIMJERI

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

na 500 K. f G o za CO(g) i CH 3 OH(g) pri 500 K jednaki su –155,41 kJ. mol –1 i –134,20 kJ. mol –1 odnosno.

Riješenje. idi 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 .

Primjer 9-2. Konstanta ravnoteže reakcije

jednak K P = 1,64 10 –4 pri 400 o C. Koliki ukupni tlak treba primijeniti na ekvimolarnu smjesu N 2 i H 2 da 10% N 2 prijeđe u NH 3? Plinovi se smatraju idealnima.

Riješenje. Neka mol N2 reagira. Zatim

N 2 (g) + 3H 2 (g) = 2NH3 (g)
Izvorna količina 1 1
Ravnotežna količina 1– 1–3 2 (Ukupno: 2–2)
Ravnotežni molni udio:

Stoga, K X = I K P = K X . P –2 = .

Zamjenom = 0,1 u dobivenu formulu, imamo

1.64 10 –4 =, gdje P= 51,2 atm.

Primjer 9-3. Konstanta ravnoteže reakcije

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

na 500 K jednako je K P = 6,09 · 10 –3. Reakcijska smjesa koja se sastoji od 1 mol CO, 2 mol H 2 i 1 mol inertnog plina (N 2) zagrijava se do 500 K i ukupnog tlaka od 100 atm. Izračunajte sastav ravnotežne smjese.

Riješenje. Neka mol CO reagira. Zatim

CO(g) + 2H 2 (g) = CH3OH (g)
Izvorna količina: 1 2 0
Ravnotežna količina: 1– 2–2
Ukupno u ravnotežnoj smjesi: 3–2 mol komponente + 1 mol N 2 = 4–2 mol
Ravnotežni molni udio

Stoga, K X = I K P = K X . P–2 = .

Dakle, 6,09 10 –3 = .

Rješavanjem ove jednadžbe dobivamo = 0,732. Prema tome, molni udjeli tvari u ravnotežnoj smjesi jednaki su: = 0,288, = 0,106, = 0,212 i = 0,394.

Primjer 9-4. Za reakciju

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

na 298 K K P = 6,0 10 5, a f H o(NH 3) = –46,1 kJ. mol –1 . Procijenite vrijednost konstante ravnoteže pri 500 K.

Riješenje. Standardna molarna entalpija reakcije je

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

Prema jednadžbi (9.14), =

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

Imajte na umu da konstanta ravnoteže egzotermne reakcije opada s porastom temperature, što odgovara Le Chatelierovom principu.

ZADACI

  1. Pri 1273 K i ukupnom tlaku od 30 atm u ravnotežnoj smjesi
  2. CO 2 (g) + C(tv) = 2CO(g)

    sadrži 17% (volumenski) CO 2 . Koliki će postotak CO 2 biti sadržan u plinu pri ukupnom tlaku od 20 atm? Pri kojem će tlaku plin sadržavati 25% CO 2?

  3. Pri 2000 o C i ukupnom tlaku od 1 atm, 2% vode disocira na vodik i kisik. Izračunajte konstantu ravnoteže reakcije
  4. H2O (g) = H2 (g) + 1/2O2 (g) pod ovim uvjetima.

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

    na 500 o C jednaka je K str= 5,5. Smjesa koja se sastoji od 1 mol CO i 5 mol H 2 O zagrijana je na tu temperaturu. Izračunajte molni udio H 2 O u ravnotežnoj smjesi.

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

    na 25 o C jednaka je K str= 0,143. Izračunajte tlak koji će se uspostaviti u posudi obujma 1 litre u koju je pri toj temperaturi stavljeno 1 g N 2 O 4 .

  9. Posuda od 3 litre koja sadrži 1,79 10 –2 mol I 2 zagrijana je na 973 K. Pokazalo se da je tlak u posudi u ravnoteži 0,49 atm. Pretpostavljajući da su plinovi idealni, izračunajte konstantu ravnoteže pri 973 K za reakciju
  10. I 2 (g) = 2I (g).

  11. Za reakciju
  12. na 250 o C rG o = –2508 J mol –1. Pri kojem će ukupnom tlaku stupanj pretvorbe PCl 5 u PCl 3 i Cl 2 pri 250 o C biti 30%?

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

    konstanta ravnoteže K P = 1,83 10 –2 pri 698,6 K. Koliko grama HI nastaje kada se 10 g I 2 i 0,2 g H 2 zagrije na tu temperaturu u posudi od tri litre? Koliki su parcijalni tlakovi H 2, I 2 i HI?

  15. Posuda od 1 litre koja sadrži 0,341 mol PCl 5 i 0,233 mol N 2 zagrijana je na 250 o C. Ukupni tlak u posudi u ravnoteži iznosi 29,33 atm. Pod pretpostavkom da su svi plinovi idealni, izračunajte konstantu ravnoteže na 250 o C za reakciju koja se odvija u posudi
  16. PCl 5 (g) = PCl 3 (g) + Cl 2 (g)

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

    na 500 K jednako je K P = 6,09 · 10 –3. Izračunajte ukupni tlak potreban za proizvodnju metanola u prinosu od 90% ako se CO i H2 uzmu u omjeru 1:2.

  19. Na 25 o C f G o(NH 3) = –16,5 kJ. mol –1 . Izračunati rG reakcije stvaranja NH3 pri parcijalnim tlakovima N2, H2 i NH3 jednakim 3 atm, 1 atm i 4 atm, redom. U kojem smjeru će se reakcija odvijati spontano u tim uvjetima?
  20. Egzotermna reakcija
  21. CO(g) + 2H 2 (g) = CH 3 OH (g)

    je u ravnoteži na 500 K i 10 bara. Ako su plinovi idealni kako će sljedeći faktori utjecati na prinos metanola: a) povećanje T; b) promicanje P; c) dodavanje inertnog plina pri V= konst; d) dodavanje inertnog plina pri P= konst; e) dodavanjem H2 at P= konst?

  22. Konstanta ravnoteže reakcije plinske faze izomerizacije borneola (C 10 H 17 OH) u izoborneol je 0,106 pri 503 K. Mješavina 7,5 g borneola i 14,0 g izoborneola stavljena je u posudu od 5 litara i držana na 503 K dok se ne postigne ravnoteža. Izračunajte molne udjele i mase borneola i izoborneola u ravnotežnoj smjesi.
  23. Ravnoteža u reakciji
  24. 2NOCl(g) = 2NO(g) + Cl 2 (g)

    postavljen na 227 o C i ukupni tlak od 1,0 bara kada je parcijalni tlak NOCl 0,64 bara (u početku je bio prisutan samo NOCl). Izračunati r G o za reakciju. Pri kojem ukupnom tlaku će parcijalni tlak Cl 2 biti jednak 0,10 bara?

  25. Izračunajte ukupni tlak koji se mora primijeniti na smjesu od 3 dijela H 2 i 1 dijela N 2 da bi se dobila ravnotežna smjesa koja sadrži 10 % volumena NH 3 pri 400 o C. Konstanta ravnoteže za reakciju
  26. N 2 (g) + 3H 2 (g) = 2NH 3 (g)

    na 400 o C jednaka je K = 1.60 10 –4 .

  27. Pri 250 o C i ukupnom tlaku od 1 atm, PCl 5 disocira 80% reakcijom
  28. PCl5 (g) = PCl3 (g) + Cl2 (g).

    Koliki će biti stupanj disocijacije PCl 5 ako se u sustav doda N 2 tako da parcijalni tlak dušika bude 0,9 atm? Ukupni tlak se održava na 1 atm.

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

    K p = 2,5 10 –3 . Ravnotežna smjesa N 2, O 2, NO i inertnog plina pri ukupnom tlaku od 1 bara sadrži 80% (po volumenu) N 2 i 16% O 2. Koliki je postotak volumena NO? Koliki je parcijalni tlak inertnog plina?

  31. Izračunajte standardnu ​​entalpiju reakcije za koju je konstanta ravnoteže
    a) povećava se 2 puta, b) smanjuje se 2 puta kada se temperatura promijeni s 298 K na 308 K.
  32. Ovisnost konstante ravnoteže reakcije 2C 3 H 6 (g) = C 2 H 4 (g) + C 4 H 8 (g) o temperaturi između 300 K i 600 K opisana je jednadžbom

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

Jednadžbe izobara, izohora, Van't Hoffovih reakcija i Planckove jednadžbe

Gotovo uvijek postoji potreba za prelaskom s jednih uvjeta reakcije na druge. Da biste to učinili, morate znati ovisnost konstanti ravnoteže o temperaturi i tlaku. Poznavanje konstanti ravnoteže pri različitim temperaturama i tlakovima proširuje mogućnosti kemijskog tehnologa u predviđanju rezultata procesa.

Ovisnost konstante ravnoteže o temperaturi dobiva se diferenciranjem reakcijske izoterme s obzirom na temperaturu pod uvjetom da su tlakovi u kp neovisni o temperaturi

Dobili smo izraz

dijeleći sve članove ove jednadžbe s T, izražavamo član kroz d∆G/dT. Zamijenimo ga u diferencirani izraz izoterme

Rezultirajuća jednadžba naziva se izobara Van't Hoffove reakcije. Potpuno identičan pristup koristi se za izvođenje izohore reakcije, pri čemu se koristi promjena Helmholtzove energije, a sastav sustava izražava se koncentracijama. Izohorski izraz ima oblik

gdje su ∆N i ∆U termodinamički toplinski učinci.

Da bi se dobila ovisnost konstante ravnoteže o tlaku, koristi se nešto drugačiji pristup. k P i k s ne ovise o tlaku. Iz odnosa konstanti ravnoteže izraženih na različite načine (6) jasno je da konstanta k n ovisi o tlaku: k n = k P ∙ P -∆ n

Uzmimo logaritam ovog izraza i diferencirajmo ga s obzirom na P:

Uočimo da je d ln k r /d P = 0 prema uvjetu; d ln P/d P = 1/P odakle dobivamo d ln do N /d P = - ∆n/P; Δn nalazimo iz Clapeyron-Mendelejevljeve jednadžbe, zapisujući je za dva stanja u obliku PΔV = ΔnRT. Izrazimo odavde ΔV i zamijenimo ga u diferencirani izraz konstante ravnoteže
k n , dobivamo Planckovu jednadžbu koja izražava ovisnost konstante ravnoteže o tlaku

Izohorne jednadžbe, reakcijske izobare i Planckova jednadžba imaju prediktivnu vrijednost i od velikog su interesa za tehnologe. Ove jednadžbe su kvantitativna karakteristika Le Chatelierovog principa pomaka ravnoteže. Ovaj princip se može formulirati na sljedeći način: “Ako se na sustav u ravnoteži utječe izvana, mijenjajući bilo koji od uvjeta koji određuju položaj ravnoteže, tada će u sustavu ojačati smjer, što će rezultirati slabljenjem vanjskog utjecaja, a položaj ravnoteže će se pomaknuti isti smjer.” Najčešće su uvjeti koji određuju položaj ravnoteže temperatura, tlak i koncentracija.



Ilustrirajmo prediktivni značaj izvedenih jednadžbi kao kvantitativne karakteristike principa pomaka ravnoteže na primjeru sinteze amonijaka: N 2 + 3H 2 ↔ 2NH 3 - ∆H

Napišimo jednadžbu izobara

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

Konstanta ravnoteže za sintezu amonijaka ima oblik She

može smanjiti zbog smanjenja tlaka produkata reakcije i povećanja tlaka polaznih tvari. To znači da se pri zagrijavanju ova egzotermna reakcija pomiče prema endotermnom procesu razgradnje amonijaka. Ovaj rezultat je dobiven na temelju analize Van't Hoffove izobare. Lako je pokazati da se slaže s predviđanjem Le Chatelierovog načela. Sličan rezultat može se dobiti primjenom Planckovih jednadžbi na analizu ove reakcije, uzimajući u obzir da je tlak P obrnut od 1/V volumena. Od učenika se traži da ove radnje rade samostalno.

Ovisnost konstante ravnoteže reakcije o temperaturi može se opisati jednadžbom izobare kemijske reakcije (van't Hoff izobar):

i izohore kemijske reakcije (van't Hoffove izokore):

Ovdje Δ H i Δ U- toplinski učinak reakcije koja se odvija pri konstantnom tlaku ili konstantnom volumenu. Ako je Δ H> 0 (toplinski učinak je pozitivan, reakcija je endotermna), tada je temperaturni koeficijent konstantan

ravnoteža je također pozitivna, odnosno s povećanjem temperature konstanta ravnoteže endotermne reakcije raste, ravnoteža se pomiče udesno (što je sasvim u skladu s Le Chatelierovim načelom).

Konstanta ravnoteže i konstanta brzine reakcije

Za reverzibilnu kemijsku reakciju, konstanta ravnoteže može se izraziti u smislu konstanti brzine prednjih i obrnutih reakcija, na temelju činjenice da su u ravnoteži brzine prednjih i obrnutih reakcija jednake. Na primjer, za elementarnu reverzibilnu kemijsku reakciju prvog reda

lako je pokazati da:

Gdje k 1 je konstanta brzine prednje reakcije, i k 2 - obrnuto. Ovaj važan odnos predstavlja jednu od "dodirnih točaka" između kemijske kinetike i kemijske termodinamike.

Metode za izračunavanje konstante ravnoteže

Metode proračuna za određivanje konstante ravnoteže reakcije obično se svode na izračunavanje na ovaj ili onaj način standardne promjene Gibbsove energije tijekom reakcije ( ΔG 0 ), a zatim pomoću formule:

Treba imati na umu da je Gibbsova energija funkcija stanja sustava, odnosno ne ovisi o putu procesa, o mehanizmu reakcije, već je određena samo početnim i završnim stanjem sustava . Stoga, ako izravno određivanje ili proračun ΔG 0 jer su neke reakcije teške iz nekog razloga, možete odabrati srednje reakcije za koje ΔG 0 poznata ili se može lako odrediti, a čiji će zbroj dati dotičnu reakciju (vidi Hessov zakon). Kao takve međureakcije često se koriste reakcije stvaranja spojeva iz elemenata.

Entropijski proračun promjene Gibbsove energije i konstante ravnoteže reakcije

Metoda izračuna entropije ΔG reakcija je jedna od najčešćih i najprikladnijih. Temelji se na odnosu:

odnosno, prema tome, za standard Promjene Gibbsove energije:

Ovdje ΔH 0 pri konstantnom tlaku i temperaturi jednak je toplinskom učinku reakcije, čije su metode izračuna i eksperimentalnog određivanja poznate - vidi, na primjer, Kirchhoffovu jednadžbu:

Potrebno je dobiti promjenu entropije tijekom reakcije. Ovaj problem se može riješiti na nekoliko načina, npr.

Prema toplinskim podacima - na temelju Nernstovog toplinskog teorema i korištenjem informacija o temperaturnoj ovisnosti toplinskog kapaciteta sudionika reakcije. Na primjer, za tvari koje su u krutom stanju pod normalnim uvjetima:

gdje je S 0 = 0 (Planckov postulat) i onda, prema tome,

.

(ovdje je indeks sol od engleskog solid). Na nekoj zadanoj temperaturi T:

Za tvari koje su tekuće ili plinovite na normalnoj temperaturi, ili, općenito, za tvari koje prolaze kroz fazni prijelaz u temperaturnom rasponu od 0 (ili 298) do T, treba uzeti u obzir promjenu entropije povezanu s ovim faznim prijelazom .

Za idealne plinove - metodama kvantne statistike.

Primjenom različitih empirijskih i poluempirijskih metoda za to je često dovoljna mala količina početnih podataka. Na primjer, za čvrste anorganske tvari, entropija se može procijeniti pomoću formule

gdje su A i B tablične konstante koje ovise o vrsti spoja u pitanju, M je molekulska težina.

Dakle, ako su , a poznate su ovisnosti toplinskog kapaciteta o temperaturi, može se izračunati pomoću formule:

Donekle pojednostavljena verzija ove formule dobiva se smatranjem da je zbroj toplinskih kapaciteta tvari neovisan o temperaturi i jednak zbroju toplinskih kapaciteta pri 298 K:

A još jednostavniji izračun provodi se izjednačavanjem zbroja toplinskih kapaciteta s nulom:

Prijelaz s na konstantu ravnoteže provodi se prema gornjoj formuli.

Le Chatelier-Brownov princip(1884) - ako se na sustav koji je u stabilnoj ravnoteži utječe izvana, mijenjajući bilo koji od uvjeta ravnoteže (temperatura, tlak, koncentracija), tada se procesi u sustavu usmjereni na kompenzaciju vanjskog utjecaja intenziviraju.

Henri Le Chatelier (Francuska) formulirao je ovo termodinamičko načelo pokretne ravnoteže, koje je kasnije generalizirao Karl Braun

Razmotrimo opću obrnutu reakciju

Eksperimentalna istraživanja pokazuju da u stanju ravnoteže vrijedi sljedeći odnos:

(uglate zagrade označavaju koncentraciju). Navedeni odnos matematički je izraz zakona djelovanja mase, odnosno zakona kemijske ravnoteže, prema kojem se u stanju kemijske ravnoteže pri određenoj temperaturi umnožak koncentracija produkata reakcije u potencijama, eksponentima

koji su jednaki odgovarajućim koeficijentima u stehiometrijskoj reakcijskoj jednadžbi, podijeljeni sličnim umnoškom koncentracija reaktanata u odgovarajućim potencijama, predstavlja konstantnu vrijednost. Ta se konstanta naziva konstanta ravnoteže. Izražavanje konstante ravnoteže u koncentracijama produkata i reagensa tipično je za reakcije u otopinama.

Imajte na umu da desna strana izraza za konstantu ravnoteže sadrži samo koncentracije otopljenih tvari. Ne bi trebao uključivati ​​pojmove koji se odnose na čiste krute tvari, čiste tekućine ili otapala koja sudjeluju u reakciji, budući da su ti izrazi stalni.

Za reakcije koje uključuju plinove, konstanta ravnoteže izražava se kroz parcijalne tlakove plinova, a ne kroz njihove koncentracije. U ovom slučaju, konstanta ravnoteže je označena simbolom.

Koncentracija plina može se izraziti u smislu njegovog tlaka pomoću jednadžbe stanja idealnog plina (vidi odjeljak 3.1):

Iz ove jednadžbe slijedi

gdje je koncentracija plina, koja se može označiti kao [plin]. Budući da je - konstantna vrijednost, to možemo napisati na danoj temperaturi

Izrazimo konstantu ravnoteže za reakciju između vodika i joda kroz parcijalne tlakove ovih plinova.

Jednadžba za ovu reakciju ima oblik

Stoga je konstanta ravnoteže ove reakcije dana izrazom

Napomenimo da koncentracije ili parcijalni tlakovi produkata, odnosno tvari naznačeni na desnoj strani kemijske jednadžbe uvijek čine brojnik, a koncentracije ili parcijalni tlakovi reaktanata, odnosno tvari naznačeni na lijevoj strani kemikalije jednadžba, uvijek čine nazivnik izraza za konstantu ravnoteže.

Mjerne jedinice za konstantu ravnoteže

Konstanta ravnoteže može biti dimenzionalna ili bezdimenzijska veličina, ovisno o vrsti njezina matematičkog izraza. U gornjem primjeru, konstanta ravnoteže je bezdimenzijska veličina jer brojnik i nazivnik razlomka imaju iste dimenzije. Inače, konstanta ravnoteže ima dimenziju izraženu u jedinicama koncentracije ili tlaka.

Koja je dimenzija konstante ravnoteže za sljedeću reakciju?

Stoga ima dimenziju (mol-dm-3)

Dakle, dimenzija konstante ravnoteže koja se razmatra je ili dm3/mol.

Koja je dimenzija konstante ravnoteže za sljedeću reakciju?

Konstanta ravnoteže ove reakcije određena je izrazom

Dakle, ima dimenziju

Dakle, dimenzija ove konstante ravnoteže je: atm ili Pa.

Heterogene ravnoteže

Do sada smo dali samo primjere homogenih ravnoteža. Na primjer, u reakciji sinteze jodovodika, i produkt i oba reaktanta su u plinovitom stanju.

Kao primjer reakcije koja dovodi do heterogene ravnoteže, razmotrite toplinsku disocijaciju kalcijevog karbonata

Konstanta ravnoteže ove reakcije dana je izrazom

Imajte na umu da ovaj izraz ne uključuje pojmove koji se odnose na dvije krutine uključene u reakciju. U navedenom primjeru konstanta ravnoteže predstavlja tlak disocijacije kalcijevog karbonata. To pokazuje da ako se kalcijev karbonat zagrijava u zatvorenoj posudi, tada njegov disocijacijski tlak na fiksnoj temperaturi ne ovisi o količini kalcijevog karbonata. U sljedećem odjeljku naučit ćemo kako se konstanta ravnoteže mijenja s temperaturom. U razmatranom primjeru tlak disocijacije prelazi 1 atm samo pri višoj temperaturi, dakle, kako bi dioksid

Pa, počinjemo prelaziti na stvar. Trebali biste već razumjeti što je varijabla i kako koristiti uvjete u svojim programima. Nadam se da je tako, inače vam je sve ostalo besmisleno čitati.

Kad sam govorio o varijablama, izostavio sam još jednu vrstu varijabli. Ova varijabla, za razliku od ostalih, pohranjuje svoju vrijednost tijekom cijelog izvođenja programa. Pokreće se deklaracijom i ne može se mijenjati u daljnjem kodu. Ova varijabla se zove konstantno.

Čemu služe konstante? Za pohranjivanje trajnih informacija. Koliko god ne bih želio davati matematičke usporedbe, one su najočitije. Sjetite se fizike - gravitacijska konstanta, temperatura u Kelvinima, Fahrenheitima itd. Sve su to konstante. Zapravo, jednom smo deklarirali takvu varijablu i zaboravili na njezino značenje, zamijenivši njezino ime u programu. možete pitati, zašto ne možete koristiti jednostavnu varijablu za pohranu takvih informacija? Ali zato što možete dodijeliti drugu vrijednost ovoj varijabli, ali ne i konstanti.

Pogledajmo sintaksu, a zatim ću dati vizualni primjer.

U C-u je konstanta definirana direktivom # definirati

#define PI 3.14 // PI će sada sadržavati 3.14

Ova se direktiva može pronaći u mnogim trenutnim programima, ali je zastarjeli pristup. Novi modifikator je uveden u C++ konst.

Const float PI=3,14;\

Const float PI=3,14; int _tmain(int argc, _TCHAR* argv) ( setlocale (0,""); //postavite zadani jezik (ruski) int S,R=21; //površina i polumjer kruga S=PI*R*R ; sustav ("pauza"); //za sprječavanje zatvaranja prozora return 0;

Gdje god zovemo ovu varijablu, svugdje će biti jednaka 3,14. Vrlo zgodno, zar ne? Usput, eksperimenta radi, pokušajte dodijeliti neku vrijednost PI-ju u programu. Pogledajte kako prevodilac reagira.

Pa, u zaključku, što se tiče konstanti, mogu reći da možete koristiti aritmetički izraz kao konstantu.

Const PROIZV=23*12; // sada imamo broj 276 u konstanti

Također zapamtite jedno pravilo - Imena konstanti uvijek treba pisati velikim slovom! To će i vama olakšati život, jer kada naiđete na ispravno oblikovanu konstantu, odmah ćete shvatiti da se radi o konstanti.

Zajedno s konstantama, naširoko se koriste u programiranju prijenosi. U svojoj srži, to je skup konstanti. Oni su potrebni za ograničavanje raspona vrijednosti varijable. To može biti dan u tjednu, mjesec, spol (muž ili žena) itd. Nabrajanje se posebno široko koristi u pisanju igara.

E, sad zaboravimo ovo što sam gore napisao i pogledajmo nabrajanje kao primjer.

Nabrajanja se moraju deklarirati izvan glavne funkcije. Poanta je da je to programerski definiran tip. I takve tipove, zajedno sa strukturama i klasama, treba deklarirati, po mogućnosti u zasebnom modulu. No, na sve ovo ćemo se osvrnuti mnogo kasnije. Evo kako se deklarira enumeracija:

enum Mjesec (siječanj, veljača, ožujak, travanj, svibanj, lipanj, srpanj, kolovoz, rujan, list, studeni, prosinac);

Nabrajanje počinje ključnom riječi enum, zatim imenom nabrajanja ( ovo nije varijabla!!!), a skup vrijednosti je naveden u zagradama.

Sada možemo koristiti deklarirani tip u našem programu:

Int main () ( Mjesec curMonth=lipanj; // sada //srpanj je pohranjen u varijabli curMonth)

Što mislite da je pohranjeno u varijabli curMonth? Varate se ako mislite da je lipanj. Nabrajanje je numerički tip i implicitno se pretvara u int. Numeriranje počinje od 0. Znajući to, možemo pretpostaviti da curMonth sadrži broj 5. Drugim riječima, ovoj varijabli bismo mogli dodijeliti, umjesto imena mjeseca, njen numerički analog u interpretaciji nabrajanja i bili bismo u pravu.

Naravno, primjer s mjesecom ili danom u tjednu nije baš jasan. Međutim, morate razumjeti da se varijabla može ograničiti na raspon vrijednosti. Pokušajte, dodijelite curMonth vrijednost koja nije enum i vidite kako vas J kompajler zove.

Ali u programiranju, primjerice pod Windowsima, često ćemo se susresti s enumeracijama i konstantama. Ovdje ćete u potpunosti razumjeti praktičnost njihove upotrebe.

Sada se vratimo našem primjeru i vidimo što još možemo promijeniti. Mjesece brojimo od jedan, a ne od nule. Iz našeg koda možete vidjeti da je 100. lipnja dodijeljena vrijednost 5, a ne 6. Pa, možete postaviti vlastito numeriranje u nabrajanju.

Izričito sam dodijelio Janu vrijednost 1. Sam prevodilac će dodijeliti potrebne vrijednosti preostalim mjesecima. Naravno, sve možete učiniti ručno, ali nema smisla to raditi.

I konačno. Varijabla se također može deklarirati kada se navodi enumeracija:

Enum mjesec (siječanj=1, veljača, ožujak, travanj, svibanj, lipanj, srpanj, kolovoz, rujan, list, studeni, prosinac) ovaj mjesec;

Tada se ova varijabla već može koristiti u programu. Puno ih tamo možete najaviti. Ali osobno mi se ne sviđa ova metoda, smatrajući je pomalo zbunjujućom. Uostalom, ne programiramo u C-u, već u C++-u.

Cast

Ovdje pažljivo pročitajte. Činjenica je da je C++ poznat po svojim aritmetičkim pogreškama u izračunima. Ne, on sve izračunava točno, ali rezultat izračuna uvelike ovisi o vrsti varijable. Programer koji odluči dodijeliti kvocijent dijeljenja tipu int često možda neće dobiti željeni rezultat. Činjenica je da jezični kompilator izvodi implicitne pretvorbe tipa.

Evo primjera. Moramo izračunati plaću zaposlenika. Znamo satnicu. Zatim tu vrijednost množimo s brojem odrađenih sati i dobivamo željeni rezultat. Ovdje je sve jednostavno. Ali zamislite direktora koji zaposli djelatnika i ne zna koliko ga treba platiti. Zatim uzme plaću za regiju i podijeli je s brojem sati.

Int zarp, sat, vel; vel=22320; // plaća u gradu je 22 320 rubalja sat=22 * 8; //broj sati je 22 radna dana * 8 satni radni dan zarp=vel / sat; // naš sat cout<<"Час работника стоит =" <

Program će nam dati brojku od 126 rubalja. To nam odgovara, ali lako je uzeti kalkulator i izračunati da je zapravo broj 126,8. A ako zaposlenik nije uvrijeđen ovim nedostatkom, onda su takve pogreške neprihvatljive u izračunima. Što se dogodilo?

zarp je cijeli broj i pohranjuje samo vrijednost cijelog broja. Razlomački dio bit će odbačen. Drugim riječima, bilo je potrebno koristiti tip double, koji bi pohranjivao razlomak. Ali ovdje je situacija nešto zanimljivija. Prevodilac privremeno dodjeljuje tip double varijablama hour i vel, kao da proširuje njihovo značenje. Možda toga nismo svjesni, iako je važno razumjeti. Kompajler, nailazeći na veći tip, dodjeljuje njegov operand manjem tipu. To je sve pravilo.

Međutim, zamislite situaciju u kojoj paranoični programer uzalud troši memoriju (sjećate li se da je tip double 2 puta veći od int?) i pokušava posvuda dodijeliti točno ovaj tip. Da, dobiva točnu vrijednost, žrtvujući neke performanse (operacije s frakcijskim tipovima su sporije nego s cjelobrojnim tipovima, ali to više nije relevantno), ali se umjetno stjerate u kut. Vratimo se našem ravnatelju koji još ne zna koliko bi trebao platiti svoj rad. Recimo da mu je skrupulozni računovođa dao satnicu od 132,12 rubalja. Odmah ćete mu dodijeliti vrijednost duplo, početi računati i urlati kad se novčići pojave posvuda. Pa, ne trebamo ih dati zaposleniku!

U ovom slučaju, ako ste napravili takvu pogrešku, možete napraviti izričitu cast. U C-u je to učinjeno ovako:

(cast type)izraz

(int)vel; // umjetno pretvorio tip u cijeli broj.

U C++, Stroupstrup je uveo novu transformaciju. Evo njegovog opisa:

statički _ cast <тип>(izraz)

Transformacije se smatraju znakom lošeg programskog ukusa. Ako imate previše konverzija, najvjerojatnije morate promijeniti sve vrijednosti u programu.

Međutim, transformacije se često koriste u OOP-u. Za sada se nećemo zadržavati na njima; s vježbom ćete odmah sve shvatiti.

Dakle, idi se odmoriti. Sljedeća lekcija bit će teža i mnogo važnija. Žurim vas zadovoljiti - ostalo je nekoliko lekcija od ove osnove i počet ćemo s normalnim programiranjem.