Зависимост на равновесната константа. Изместване на химическото равновесие

Химичното равновесие е състояние на обратима химична реакция.

aA+ b B= ° С C+ дД,

при които няма промяна в концентрациите на реагентите в реакционната смес с течение на времето. Характеризира се състоянието на химичното равновесие константа на химичното равновесие:

Където C i– концентрация на компонентите в равновесиеперфектната смес.

Равновесната константа може също да бъде изразена чрез равновесни молни фракции X iкомпоненти:

За реакции, протичащи в газовата фаза, е удобно да се изрази равновесната константа по отношение на равновесните парциални налягания P iкомпоненти:

За идеални газове P i = C и RTИ P i = X и P, Където Пе общото налягане, следователно К П, К СИ K Xса свързани със следната връзка:

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

Равновесната константа е свързана с rG o химична реакция:

(9.5)

(9.6)

промяна rGили r Fв химическа реакция при дадени (не непременно равновесни) парциални налягания P iили концентрации C iкомпонентите могат да бъдат изчислени с помощта на уравнението изотерми на химична реакция (изотерми на Вант Хоф):

. (9.7)

. (9.8)

Според Принцип на Льо Шателие, ако се упражни външно влияние върху система, която е в равновесие, тогава равновесието ще се измести така, че да намали ефекта от външното влияние. По този начин увеличаването на налягането измества равновесието към намаляване на броя на газовите молекули. Добавянето на реакционен компонент към равновесна смес измества равновесието към намаляване на количеството на този компонент. Повишаването (или понижаването) на температурата измества равновесието към реакция, която протича с абсорбцията (освобождаването) на топлина.

Количествената зависимост на равновесната константа от температурата се описва с уравнението изобари на химична реакция (изобари на Ван Хоф)

(9.9)

И изохори на химична реакция (изохори на Вант Хоф)

. (9.10)

Интегриране на уравнение (9.9) при предположението, че r Hреакцията не зависи от температурата (което е вярно в тесни температурни диапазони), дава:

(9.11)

(9.12)

Където ° С -интеграционна константа. Така зависимостта ln КП от 1 /Tтрябва да е линеен, а наклонът на правата линия е – r H/Р.

Интеграция вътре К 1 , К 2 и T 1, T 2 дава:

(9.13)

(9.14)

Използвайки това уравнение, знаейки равновесните константи при две различни температури, можем да изчислим r Hреакции. Съответно, знаейки r Hреакция и равновесната константа при една температура, можете да изчислите равновесната константа при друга температура.

ПРИМЕРИ

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

при 500 К. f G oза CO(g) и CH 3 OH(g) при 500 K са равни на –155,41 kJ. mol –1 и –134,20 kJ. mol –1 съответно.

Решение. Отивамреакции:

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

= 6.09 10 –3 .

Пример 9-2. Константа на равновесие на реакцията

равна на К P = 1,64 10 –4 при 400 o C. Какво общо налягане трябва да се приложи към еквимоларна смес от N 2 и H 2, така че 10% от N 2 да се превърне в NH 3? Газовете се считат за идеални.

Решение. Нека един мол N2 реагира. Тогава

N 2 (g) + 3H 2 (g) = 2NH3 (g)
Оригинално количество 1 1
Равновесно количество 1– 1–3 2 (Общо: 2–2)
Равновесна молна фракция:

следователно К X = И K P = K X . П –2 = .

Замествайки = 0,1 в получената формула, имаме

1.64 10 –4 =, където П= 51,2 атм.

Пример 9-3. Константа на равновесие на реакцията

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

при 500 К е равно на К P = 6,09 · 10 –3. Реакционна смес, състояща се от 1 mol CO, 2 mol H2 и 1 mol инертен газ (N2), се нагрява до 500 K и общо налягане от 100 atm. Изчислете състава на равновесната смес.

Решение. Нека един мол CO реагира. Тогава

CO(g) + 2H 2 (g) = CH3OH (g)
Оригинално количество: 1 2 0
Равновесно количество: 1– 2–2
Общо в равновесна смес: 3–2 mol компоненти + 1 mol N 2 = 4–2 mol
Равновесна молна фракция

следователно К X = И K P = K X . P–2 = .

Така 6,09 10 –3 = .

Решавайки това уравнение, получаваме = 0,732. Съответно, молните фракции на веществата в равновесната смес са равни на: = 0,288, = 0,106, = 0,212 и = 0,394.

Пример 9-4. За реакция

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

при 298 K КР = 6.0 10 5, а f H o(NH 3) = –46,1 kJ. мол –1. Оценете стойността на равновесната константа при 500 K.

Решение. Стандартната моларна енталпия на реакцията е

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

Съгласно уравнение (9.14), =

Ln (6,0 10 5) + = –1.73, от където К 2 = 0.18.

Имайте предвид, че равновесната константа на екзотермична реакция намалява с повишаване на температурата, което съответства на принципа на Le Chatelier.

ЗАДАЧИ

  1. При 1273 K и общо налягане от 30 atm в равновесна смес
  2. CO 2 (g) + C(tv) = 2CO(g)

    съдържа 17% (по обем) CO 2 . Какъв процент CO 2 ще се съдържа в газа при общо налягане 20 atm? При какво налягане газът ще съдържа 25% CO 2?

  3. При 2000 o C и общо налягане от 1 atm 2% от водата се дисоциира на водород и кислород. Изчислете равновесната константа на реакцията
  4. H 2 O (g) = H 2 (g) + 1/2O 2 (g) при тези условия.

  5. Константа на равновесие на реакцията
  6. CO(g) + H 2 O(g) = CO 2 (g) + H 2 (g)

    при 500 o C е равно Kp= 5,5. Смес, състояща се от 1 mol CO и 5 mol H2O се нагрява до тази температура. Изчислете молната част на H 2 O в равновесната смес.

  7. Константа на равновесие на реакцията
  8. N 2 O 4 (g) = 2NO 2 (g)

    при 25 o C е равно Kp= 0,143. Изчислете налягането, което ще се установи в съд с обем 1 литър, в който е поставен 1 g N 2 O 4 при тази температура.

  9. 3-литров съд, съдържащ 1,79 · 10 –2 mol I 2, се нагрява до 973 K. Налягането в съда при равновесие се оказва 0,49 atm. Приемайки, че газовете са идеални, изчислете константата на равновесие при 973 K за реакцията
  10. I 2 (g) = 2I (g).

  11. За реакция
  12. при 250 o C rG o = –2508 J mol –1. При какво общо налягане степента на превръщане на PCl 5 в PCl 3 и Cl 2 при 250 o C ще бъде 30%?

  13. За реакция
  14. 2HI(g) = H 2 (g) + I 2 (g)

    равновесна константа К P = 1,83 · 10 –2 при 698,6 K. Колко грама HI се образуват, когато 10 g I 2 и 0,2 g H 2 се нагреят до тази температура в трилитров съд? Какви са парциалните налягания на H 2, I 2 и HI?

  15. 1-литров съд, съдържащ 0,341 mol PCl5 и 0,233 mol N2, се нагрява до 250 o C. Общото налягане в съда при равновесие се оказва 29,33 atm. Ако приемем, че всички газове са идеални, изчислете константата на равновесие при 250 o C за реакцията, протичаща в съда
  16. PCl 5 (g) = PCl 3 (g) + Cl 2 (g)

  17. Константа на равновесие на реакцията
  18. CO (g) + 2H 2 (g) = CH 3 OH (g)

    при 500 К е равно на К P = 6,09 · 10 –3. Изчислете общото налягане, необходимо за получаване на метанол с добив 90%, ако CO и H2 се вземат в съотношение 1:2.

  19. При 25 o C f G o(NH 3) = –16,5 kJ. мол –1. Изчисли rGреакции на образуване на NH3 при парциални налягания на N2, H2 и NH3, равни съответно на 3 atm, 1 atm и 4 atm. В каква посока ще протече спонтанно реакцията при тези условия?
  20. Екзотермична реакция
  21. CO (g) + 2H 2 (g) = CH 3 OH (g)

    е в равновесие при 500 К и 10 бара. Ако газовете са идеални, как следните фактори ще повлияят на добива на метанол: а) увеличаване T; б) повишение П; в) добавяне на инертен газ при V= const; г) добавяне на инертен газ при П= const; д) добавяне на Н2 при П= const?

  22. Константата на равновесието на газофазовата реакция на изомеризация на борнеол (C 10 H 17 OH) до изоборнеол е 0,106 при 503 K. Смес от 7,5 g борнеол и 14,0 g изоборнеол се поставя в 5-литров съд и се съхранява при 503 К до постигане на равновесие. Изчислете молните фракции и масите на борнеол и изоборнеол в равновесната смес.
  23. Равновесие в реакцията
  24. 2NOCl(g) = 2NO(g) + Cl 2 (g)

    настроен на 227 o C и общо налягане от 1,0 bar, когато парциалното налягане на NOCl е 0,64 bar (първоначално присъства само NOCl). Изчисли r G oза реакция. При какво общо налягане парциалното налягане на Cl 2 ще бъде равно на 0,10 bar?

  25. Изчислете общото налягане, което трябва да се приложи към смес от 3 части H 2 и 1 част N 2, за да се получи равновесна смес, съдържаща 10% обем NH 3 при 400 o C. Равновесна константа за реакцията
  26. N 2 (g) + 3H 2 (g) = 2NH 3 (g)

    при 400 o C е равно К = 1.60 10 –4 .

  27. При 250 o C и общо налягане от 1 atm, PCl 5 се дисоциира с 80% от реакцията
  28. PCl 5 (g) = PCl 3 (g) + Cl 2 (g).

    Каква ще бъде степента на дисоциация на PCl 5, ако към системата се добави N 2, така че парциалното налягане на азота да е 0,9 atm? Общото налягане се поддържа на 1 atm.

  29. При 2000 o C за реакция
  30. N 2 (g) + O 2 (g) = 2NO (g)

    K p = 2,5·10–3. Равновесна смес от N 2, O 2, NO и инертен газ при общо налягане от 1 bar съдържа 80% (по обем) N 2 и 16% O 2. Какъв обемен процент е НЕ? Какво е парциалното налягане на инертен газ?

  31. Изчислете стандартната енталпия на реакцията, за която е равновесната константа
    а) нараства 2 пъти, б) намалява 2 пъти при промяна на температурата от 298 К на 308 К.
  32. Зависимостта на равновесната константа на реакцията 2C 3 H 6 (g) = C 2 H 4 (g) + C 4 H 8 (g) от температурата между 300 K и 600 K се описва с уравнението

вътре К = –1.04 –1088 /T +1.51 10 5 /T 2 .

Уравнения на изобари, изохори, реакции на Вант Хоф и уравнение на Планк

Почти винаги има нужда да се премине от едни условия на реакция към други. За да направите това, трябва да знаете зависимостта на равновесните константи от температурата и налягането. Познаването на равновесните константи при различни температури и налягания разширява възможностите на химичния технолог при прогнозиране на резултатите от процеса.

Зависимостта на равновесната константа от температурата се получава чрез диференциране на реакционната изотерма по отношение на температурата при условие, че наляганията в kp са независими от температурата

Получаваме израза

разделяйки всички членове на това уравнение на T, ние изразяваме члена чрез d∆G/dT. Нека го заместим в диференцирания израз на изотермата

Полученото уравнение се нарича изобара на реакцията на Вант Хоф. Използва се напълно идентичен подход за извеждане на изохора на реакция, при който се използва промяната в енергията на Хелмхолц и съставът на системата се изразява чрез концентрации. Изохорният израз има формата

където ∆Н и ∆U са термодинамични топлинни ефекти.

За да се получи зависимостта на равновесната константа от налягането, се използва малко по-различен подход. k P и k s не зависят от налягането. От връзката между равновесните константи, изразени по различни начини (6), е ясно, че константата k n зависи от налягането: k n = k P ∙ P -∆ n

Нека вземем логаритъма на този израз и след това да го разграничим по отношение на P:

Забележете, че d ln k р /d P = 0 по условие; d ln P/d P = 1/P откъдето получаваме d ln до N /d P = - ∆n/P; Намираме Δn от уравнението на Клапейрон-Менделеев, като го записваме за две състояния във формата PΔV = ΔnRT. Нека изразим ΔV от тук и го заместим в диференцирания израз на равновесната константа
k n , получаваме уравнението на Планк, изразяващо зависимостта на равновесната константа от налягането

Изохорните уравнения, реакционните изобари и уравнението на Планк имат прогностична стойност и представляват значителен интерес за технолозите. Тези уравнения са количествена характеристика на принципа на равновесното изместване на Le Chatelier. Този принцип може да се формулира по следния начин: „Ако една система в равновесие бъде повлияна отвън, променяйки някое от условията, които определят равновесното положение, тогава в системата ще се засили посока, резултатът от която ще отслаби външното влияние и равновесното положение ще се измести в същата посока." Най-често условията, които определят равновесното положение, са температура, налягане и концентрация.



Нека илюстрираме предсказващото значение на получените уравнения като количествена характеристика на принципа на изместване на равновесието, като използваме примера за синтез на амоняк: N 2 + 3H 2 ↔ 2NH 3 - ∆H

Нека напишем изобарното уравнение

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

Равновесната константа за синтеза на амоняк има формата She

може да намалее поради намаляване на налягането на реакционните продукти и повишаване на налягането на изходните вещества. Това означава, че при нагряване тази екзотермична реакция се измества към ендотермичния процес на разлагане на амоняка. Този резултат е получен въз основа на анализа на изобарата на Вант Хоф. Лесно е да се покаже, че е в съгласие с предсказанието на принципа на Le Chatelier. Подобен резултат може да се получи чрез прилагане на уравненията на Планк към анализа на тази реакция, като се вземе предвид, че налягането P е обратното на 1/V обем. От учениците се иска да извършват тези действия самостоятелно.

Зависимостта на константата на равновесието на реакцията от температурата може да се опише чрез изобарното уравнение на химическата реакция (изобара на Вант Хоф):

и изохори на химическа реакция (изохори на Вант Хоф):

Тук Δ зи Δ U- топлинният ефект на реакция, протичаща съответно при постоянно налягане или постоянен обем. Ако Δ з> 0 (топлинният ефект е положителен, реакцията е ендотермична), тогава температурният коефициент е постоянен

равновесието също е положително, т.е. с повишаване на температурата равновесната константа на ендотермичната реакция се увеличава, равновесието се измества надясно (което е напълно в съответствие с принципа на Le Chatelier).

Константа на равновесие и константа на скоростта на реакцията

За обратима химическа реакция равновесната константа може да бъде изразена чрез константите на скоростта на правата и обратната реакция въз основа на факта, че в равновесие скоростите на правата и обратната реакция са равни. Например за елементарна обратима химична реакция от първи ред

лесно е да се покаже, че:

Където к 1 е скоростната константа на предната реакция, и к 2 - обратен. Тази важна връзка осигурява една от „допирните точки“ между химическата кинетика и химическата термодинамика.

Методи за изчисляване на равновесната константа

Изчислителните методи за определяне на равновесната константа на реакция обикновено се свеждат до изчисляване по един или друг начин на стандартната промяна в енергията на Гибс по време на реакцията ( ΔG 0 ), и след това с помощта на формулата:

Трябва да се помни, че енергията на Гибс е функция на състоянието на системата, тоест не зависи от пътя на процеса, от механизма на реакцията, а се определя само от началното и крайното състояние на системата . Следователно, ако директно определяне или изчисление ΔG 0 за някои реакции са трудни по някаква причина, можете да изберете междинни реакции, за които ΔG 0 известни или могат да бъдат лесно определени и чието сумиране ще даде въпросната реакция (виж Закона на Хес). По-специално реакциите на образуване на съединения от елементи често се използват като такива междинни реакции.

Ентропийно изчисляване на промяната в енергията на Гибс и равновесната константа на реакцията

Метод за изчисляване на ентропията ΔGреакцията е една от най-разпространените и удобни. Тя се основава на връзката:

или, съответно, за стандартенПромени в енергията на Гибс:

Тук ΔH 0 при постоянно налягане и температура е равен на топлинния ефект на реакцията, чиито методи за изчисление и експериментално определяне са известни - вижте например уравнението на Кирхоф:

Необходимо е да се получи промяната в ентропията по време на реакцията. Този проблем може да бъде решен по няколко начина, например:

Според топлинни данни - въз основа на термичната теорема на Нернст и използване на информация за температурната зависимост на топлинния капацитет на участниците в реакцията. Например за вещества, които са в твърдо състояние при нормални условия:

където S 0 = 0 (постулат на Планк) и след това, съответно,

.

(тук индексът sol е от английското solid). При дадена температура T:

За вещества, които са течни или газообразни при нормална температура, или по-общо, за вещества, които претърпяват фазов преход в температурния диапазон от 0 (или 298) до T, трябва да се вземе предвид промяната в ентропията, свързана с този фазов преход .

За идеални газове - чрез методите на квантовата статистика.

Използвайки различни емпирични и полуемпирични методи, малко количество първоначални данни често е достатъчно за това. Например, за твърди неорганични вещества ентропията може да се оцени с помощта на формулата

където A и B са таблични константи в зависимост от вида на въпросното съединение, M е молекулното тегло.

Така че, ако и са известни температурните зависимости на топлинния капацитет, той може да се изчисли по формулата:

Донякъде опростена версия на тази формула се получава, като сумата от топлинните мощности на веществата се разглежда като независима от температурата и равна на сумата от топлинните мощности при 298 K:

И още по-опростено изчисление се извършва чрез приравняване на сумата на топлинните мощности към нула:

Преходът от към константата на равновесие се извършва съгласно горната формула.

Принцип на Льо Шателие-Браун(1884) - ако система в стабилно равновесие се влияе отвън, променяйки някое от условията на равновесие (температура, налягане, концентрация), тогава процесите в системата, насочени към компенсиране на външното влияние, се засилват.

Анри Льо Шателие (Франция) формулира този термодинамичен принцип на подвижното равновесие, по-късно обобщен от Карл Браун

Нека разгледаме общата обратна реакция

Експерименталните изследвания показват, че в състояние на равновесие е валидна следната връзка:

(квадратните скоби показват концентрация). Горната връзка е математически израз на закона за действието на масите или закона за химичното равновесие, според който в състояние на химично равновесие при определена температура произведението на концентрациите на реакционните продукти в степени, експоненти

които са равни на съответните коефициенти в стехиометричното уравнение на реакцията, разделени на подобен продукт на концентрациите на реагентите в съответните степени, представлява постоянна стойност. Тази константа се нарича константа на равновесие. Изразяването на равновесната константа по отношение на концентрациите на продуктите и реагентите е характерно за реакциите в разтвори.

Имайте предвид, че дясната страна на израза за равновесната константа съдържа само концентрациите на разтворените вещества. Не трябва да включва никакви термини, свързани с чистите твърди вещества, чистите течности или разтворителите, участващи в реакцията, тъй като тези термини са постоянни.

За реакции, включващи газове, равновесната константа се изразява чрез парциалните налягания на газовете, а не чрез техните концентрации. В този случай равновесната константа се обозначава със символа .

Концентрацията на газ може да бъде изразена чрез неговото налягане, като се използва уравнението на състоянието на идеалния газ (вижте раздел 3.1):

От това уравнение следва

където е концентрацията на газ, която може да се означи като [газ]. Тъй като - е постоянна стойност, можем да запишем това при дадена температура

Нека изразим равновесната константа за реакцията между водород и йод по отношение на парциалните налягания на тези газове.

Уравнението за тази реакция има формата

Следователно равновесната константа на тази реакция се дава от

Нека отбележим, че концентрациите или парциалните налягания на продуктите, т.е. веществата, посочени от дясната страна на химичното уравнение, винаги формират числителя, а концентрациите или парциалните налягания на реагентите, т.е. веществата, посочени от лявата страна на химикала уравнение, винаги образуват знаменателя на израза за равновесната константа.

Мерни единици за равновесната константа

Равновесната константа може да бъде размерна или безразмерна величина в зависимост от вида на нейния математически израз. В примера по-горе равновесната константа е безразмерна величина, тъй като числителят и знаменателят на дробта имат еднакви размери. В противен случай константата на равновесие има измерение, изразено в единици концентрация или налягане.

Какъв е размерът на равновесната константа за следната реакция?

Следователно, той има измерение (mol-dm-3)

И така, размерът на разглежданата равновесна константа е или dm3/mol.

Какъв е размерът на равновесната константа за следната реакция?

Равновесната константа на тази реакция се определя от израза

Следователно има измерение

И така, размерът на тази равновесна константа е: atm или Pa.

Хетерогенни равновесия

Досега дадохме примери само за хомогенни равновесия. Например, в реакцията на синтез на йодоводород, както продуктът, така и двата реагента са в газообразно състояние.

Като пример за реакция, водеща до хетерогенно равновесие, разгледайте термичната дисоциация на калциевия карбонат

Равновесната константа на тази реакция се дава от

Имайте предвид, че този израз не включва никакви термини, свързани с двете твърди вещества, участващи в реакцията. В дадения пример равновесната константа представлява налягането на дисоциация на калциевия карбонат. Това показва, че ако калциевият карбонат се нагрява в затворен съд, тогава налягането му на дисоциация при фиксирана температура не зависи от количеството калциев карбонат. В следващия раздел ще научим как равновесната константа се променя с температурата. В разглеждания пример налягането на дисоциация надвишава 1 atm само при по-висока температура. Следователно, за да може диоксидът

Е, започваме да стигаме до същината. Вече трябва да разберете какво е променлива и как да използвате условия във вашите програми. Надявам се да е така, иначе всичко останало няма смисъл да четете.

Когато говорих за променливи, пропуснах още един вид променлива. Тази променлива, за разлика от другите, съхранява стойността си през цялото време на изпълнение на програмата. Инициира се при деклариране и не може да се променя в допълнителен код. Тази променлива се нарича постоянен.

За какво са константите? За съхраняване на постоянна информация. Колкото и да не ми се иска да давам математически сравнения, те са най-очевидни. Спомнете си физиката - гравитационна константа, температура в Келвин, Фаренхайт и т.н. Всичко това са константи. Всъщност веднъж декларирахме такава променлива и забравихме за значението й, замествайки името й в програмата. може да попитате защо не можете да използвате проста променлива за съхраняване на такава информация? Но тъй като можете да присвоите различна стойност на тази променлива, но не и на константа.

Нека да разгледаме синтаксиса и след това ще дам визуален пример.

В C константата беше дефинирана от директивата # дефинирам

#define PI 3.14 // PI вече ще съдържа 3.14

Тази директива може да се намери в много текущи програми, но това е остарял подход. Нов модификатор е въведен в C++ конст.

Const float PI=3.14;\

Const float PI=3.14; int _tmain(int argc, _TCHAR* argv) ( setlocale (0,""); //задаване на езика по подразбиране (руски) int S,R=21; //площ и радиус на окръжността S=PI*R*R ; система ("пауза"); //така че прозорецът да не се затваря върне 0; )

Където и да наричаме тази променлива, навсякъде тя ще бъде равна на 3,14. Много удобно, нали? Между другото, в името на експеримента, опитайте да присвоите някаква стойност на PI в програмата. Вижте как реагира компилаторът.

Е, в заключение, относно константите, мога да кажа, че можете да използвате аритметичен израз като константа.

Const PROIZV=23*12; // сега имаме числото 276 в константата

Освен това запомнете едно правило - Постоянните имена винаги трябва да се пишат с главни букви!Това ще улесни и живота ви, тъй като когато срещнете правилно форматирана константа, веднага ще разберете, че това е константа.

Наред с константите, те се използват широко в програмирането трансфери. В основата си това е набор от константи. Те са необходими за ограничаване на диапазона от стойности на променливата. Това може да е ден от седмицата, месец, пол (съпруг или съпруга) и т.н. Изброяването се използва особено широко в писането на игри.

Е, нека сега забравим за това, което написах по-горе и да разгледаме изброяването като пример.

Изброяванията трябва да се декларират извън главната функция. Въпросът е, че това е тип, дефиниран от програмист. И такива типове, заедно със структурите и класовете, трябва да бъдат декларирани, за предпочитане в отделен модул. Но ще разгледаме всичко това много по-късно. Ето как се декларира изброяването:

enum месец (януари, февруари, март, април, май, юни, юли, август, септември, октомври, ноември, декември);

Изброяването започва с ключовата дума enum, след това името на изброяването ( това не е променлива!!!), а наборът от стойности е посочен в скоби.

Сега можем да използваме декларирания тип в нашата програма:

Int main () ( Месец curMonth=юни; // сега //юли се съхранява в променливата curMonth)

Какво мислите, че се съхранява в променливата curMonth? Ако мислите, че е юни, грешите. Изброяването е числов тип и имплицитно се прехвърля към int. Номерирането започва от 0. Знаейки това, можем да предположим, че curMonth съдържа числото 5. С други думи, можем да присвоим на тази променлива, вместо името на месеца, неговия цифров аналог в интерпретацията на изброяването и ще бъдем прави.

Разбира се, примерът с месец или ден от седмицата не е много ясен. Трябва обаче да разберете, че една променлива може да бъде ограничена до диапазон от стойности. Опитайте, присвоете на curMonth стойност, различна от enum, и вижте какво ще ви извика J компилаторът.

Но в програмирането, например под Windows, често ще срещаме изброявания и константи. Тук ще разберете напълно удобството от използването им.

Сега нека се върнем към нашия пример и да видим какво още можем да променим. Номерираме месеците от единица, а не от нула. От нашия код можете да видите, че на 100 юни е присвоена стойност 5, а не 6. Е, можете да зададете свое собствено номериране в изброяването.

Изрично присвоих на Ян стойността 1. Самият компилатор ще присвои необходимите стойности на оставащите месеци. Разбира се, можете да направите всичко ръчно, но няма смисъл да го правите.

И накрая. Променлива може също да бъде декларирана, когато се указва изброяване:

Enum месец (януари = 1, февруари, март, април, май, юни, юли, август, септември, октомври, ноември, декември) този месец;

Тогава тази променлива вече може да се използва в програмата. Можете да обявите много от тях там. Но лично аз не харесвам този метод, смятайки го за малко объркващ. Все пак програмираме не на C, а на C++.

Актьорски състав

Прочетете тук внимателно. Факт е, че C++ е известен със своите аритметични грешки в изчисленията. Не, той изчислява всичко правилно, но резултатът от изчислението зависи до голяма степен от типа на променливата. Програмист, който реши да присвои коефициент на деление на тип int, често може да не получи желания резултат. Факт е, че езиковият компилатор извършва неявни преобразувания на типове.

Ето един пример. Трябва да изчислим заплатата на служителя. Знаем тарифата за час. След това умножаваме тази стойност по броя на отработените часове и получаваме желания резултат. Тук всичко е просто. Но представете си директор, който наема служител и не знае колко да му плати. След това взема заплатата за региона и я разделя на броя часове.

Int zarp, час, vel; vel=22320; // заплатата в града е 22 320 рубли час=22 * 8; //броят часове е 22 работни дни * 8 часов работен ден zarp=vel / час; // нашият час cout<<"Час работника стоит =" <

Програмата ще ни даде цифра от 126 рубли. Това ни подхожда, но е лесно да вземем калкулатор и да изчислим, че всъщност числото е 126, 8. И ако служителят не е обиден от този недостатък, тогава такива грешки са неприемливи в изчисленията. Какво стана?

zarp е цяло число и съхранява само целочислената стойност. Дробната част ще бъде изхвърлена. С други думи, беше необходимо да се използва двойният тип, който да съхранява дробта. Но тук ситуацията е малко по-интересна. Компилаторът временно присвоява двойния тип на променливите час и vel, сякаш разширява значението им. Може да не сме наясно с това, въпреки че е важно да го разберем. Компилаторът, срещайки по-голям тип, присвоява своя операнд на по-малкия тип. Това е цялото правило.

Представете си обаче ситуация, в която параноичен програмист губи памет напразно (помните ли, че типът double е 2 пъти по-голям от int?) и се опитва да присвои точно този тип навсякъде. Да, той получава точната стойност, жертвайки известна производителност (операциите с дробни типове са по-бавни, отколкото с цели типове, но това вече не е актуално), но вие изкуствено се притискате в ъгъла. Да се ​​върнем на нашия директор, който още не знае колко трябва да плати за работата си. Да кажем, че един скрупулен счетоводител му е дал часова стойност от 132,12 рубли. Веднага ще му присвоите двойната стойност, ще започнете да пресмятате и ще ревете, когато стотинките се появят навсякъде. Е, не е нужно да ги даваме на служителя!

В този случай, ако сте допуснали такава грешка, можете да направите изрична отливка. В C беше направено така:

(тип отливка) израз

(int)vel; // изкуствено преобразува типа в цяло число.

В C++ Stroupstrup въведе нова трансформация. Ето неговото описание:

статичен _ гласове <тип>(израз)

Трансформациите се считат за признак на лош вкус към програмирането. Ако имате твърде много реализации, най-вероятно трябва да промените всички стойности в програмата.

Трансформациите обаче често се използват в ООП. Засега няма да се спираме на тях; така или иначе с практиката ще разберете всичко веднага.

Така че отидете да си починете. Следващият урок ще бъде по-труден и много по-важен. Бързам да ви зарадвам - останаха няколко урока от тази основа и ще започнем нормално програмиране.