вторник, 14 юни 2016 г.

8.2. Ремъчни предавки

8.2.1. Същност, предназначение и видове.
Ремъчните предавки служат за предаване на механична енергия от един вал на друг посредством ремък, като се използва триенето. Максималното предавателно отношение, което може да се осъществи чрез плоско-ремъчна предавка (открита, отворена) е i=8.

Ремъчната предавка се състои от водеща и водима шайби и ремък, опасващ ремъчните шайби, като ремъкът е предварително опънат за създаване на необходимата сила на триене за предаване на периферна сила / фиг.8.11/.        Ремъчните предавки се използват основно за:   
-задвижване на машини с помощта на електродвигатели с малка и средна мощности;
-за задвижване на електрически генератори, в климатичните системи на транспортните средства, селскостопански и други машини.
Класификацията на ремъчните предавки може да се извърши по различни признаци:
            А. По вид на ремъка / виж фиг.8.11/:
-плосък ремък;
-клинов ремък /равнобедрен трапец/;
-двойно трапецовиден /шестоъгълник/ за задвижване на повече валове и в различни посоки на въртене;
-объл /кръгъл/ ремък;
-поликлинов / съчетани от плосък и няколко клинови ремъка;
-зъбен ремък / за предаване на движението без преплъзване/.
 
Б.Според посоката на въртене на валовете на предавката- при еднаква –отворена предавка; при противоположна-кръстосана предавка /фиг. 8.12/.

В. По брой на задвижваните валове-един или няколко вала.

Най-голямо приложение в машините имат клиновите и плоските ремъци.
Плоските ремъци се използват заради минималните напрежения на огъване на ремъка при преминаването му през зоната на опасване на ремъчните шайби /за високи скорости 30-50 м/s и при изискване за плавност на движението/. Плоските ремъци имат правоъгълно сечение с широчина b , значително по-голяма от височината δ (дебелина на ремъка). Материалът и видът на ремъка се избират в зависимост от условията на работа на предавката. За средно-скоростни предавки най-голямо приложение намират плоските гумено-текстилни ремъци (БДС 1073-74). За скоростни и високо-скоростни предавки се използуват синтетични безкрайни ремъци, специални копринени и ленени ремъци.
Клиноремъчните предавки намират все по-голямо приложение и постепенно изместват плоскоремъчните предавки, особено при предавки с по-малки междуосови разстояния. Това се дължи на факта, че ремъците имат трапецовидно сечение, страничните наклонени страни на което служат за работни. Поради това ремъчните шайби се изработват със специален венец, набразден с трапецовидни канали (един, два или повече), в които се полагат ремъците.Следователно при еднакво предварително опъване чрез клиноремъчната предавка може да се предаде по-голяма мощност и да се осъществи
по-голямо предавателно отношение, отколкото с плоско ремъчна предавка. За сметка на това ремъкът има по-малка дълготрайност, а предавката – по-малък к.п.д.
Клиноремъчните предавки се използуват най-изгодно за малки между-осови разстояния при валове с успоредни оси. Особено е подходяща за осъществяване на индивидуално задвижване на работни машини. Предавателното отношение, което може да се реализира, е в границите от 1...10 при скорост на ремъка за стандартизираните профили Z, А, В и С - 25 m/s, а за профилите D и Е – до 30 m/s, (БДС 8717 – 79).
Клиновите и поликлиновите ремъци се използват главно заради повишената теглителна способност. Те са с универсално предназначение и техните преимущества се изявяват при малки междуосови разстояния, при големи предавателни отношения и при предаване на движение на няколко шайби.
Зъбните ремъци съчетават положителните качества на зъбните предавки / постоянство на предавателното отношение / и тези на ремъчните предавки.
Предимствата на ремъчните предавки в сравнение със зъбните предавки са:
-работят плавно и безшумно
-предпазват механизмите от резки колебания в натоварването и от претоварване.
-предават големи мощности на разстояние.
-имат проста конструкция и обслужване и ниска себестойност.
Ремъчните предавки имат и някои недостатъци:
-предавателното отношение е непостоянно поради наличие на приплъзване;
-натоварването на валовете е по-голямо;
-габаритите са по-големи;
-трайността на ремъка е сравнително малка от 1000 до 5000 часа.

До появата на синтетичните ремъци допустимата предавана мощност е била 50kw Сега ремъчните предавки могат да предават до 3000 kW.

ФИЗИКА 2, Второ Контролно, отговори на второто контролно

Разширен тест по Физика2- II контролно



Оптика
1. Какво е това  „Геометрична оптика”?
            Разред от оптиката, при която законите разпространение на светлината се разглеждат на основата на светлинните лъчи.
2. Какво гласи принципа на Ферма в геометричната оптика?
            Светлината се разпространява по такъв път, за преминаването на който е необходимо най-малко време.
3. Какво гласи закона за независимост на светлините лъчи в геометричната оптика?
            Действието на светлинните лъчи е независимо едно от друго. Ефектът който се предизвиква от един светлинен лъч не зависи от това действат ли други светлинни лъчи.

4. Какво гласи закона за отражението в геометричната оптика?
            Отразеният лъч лежи на една равнина с падащия лъч и перпендикуляра, издигнат на границата на двете среди в точката на падане А е равна на ъгъла на отражение А’.    А=А’
5. Какво е това относителен показател на пречупване в геометричната оптика? Какво означават величините, влизащи в него?
            Относителния показател на пречупване е равен на техните абсолютни показатели на пречупване. n21=n2/n1
6. Какво е това абсолютен показател на пречупване в геометричната оптика? Какво означават величините, влизащи в него?
            Абсолютен показател на пречупване се нарича величината n, която е числено равна на отношението на скоростта с, и нейната фазова скорост v, в средата: n=c/v
7. Свтлинен лъч се движи в оптична среда със скорост v=2,4.108 m/s. Определете абсолютния показател на пречупване на средата.
n = c/v = 3.108/2,4.108 = 1,25
8. Светлинен лъч се движи в оптична среда с абсолютен показател на пречупване  n=1.2. Определете скоростта на движение на лъча в тази среда.
n = c/v     v = c/n = 3.108/1,2 = 2,5.108
9. Какво гласи закона запречупването в геометричната оптика?
            Падащият лъч, пречупеният лъч и перпендикулярът, построен от границата на двете среди в точката на падането, лежат  една равнина. sin n1/ sin n2 = n21
10. Какво е това „пълно вътрешно отражение” в геометричната оптика и на колко е равен граничния ъгъл?
            Явлението пълно вътрешно отражение се появява при падане на светлина от среда оптически по-плътна в среда с по-малка оптическа плътност. Граничният ъгъл е равен на π/2
11. Какво е това „граничен ъгъл на пречупване” в геометричната оптика?
Ако лъчът се разпостранява от оптично по-плътна среда в среда с по-малка оптична плътност (n1 > n2), пречупения лъч ще бъде по-голям от падащия. С увеличаване на падащия, пречупения расте докато при някакъв ъгъл, ъгъла стане равен на π/2, тоест граничен ъгъл.
12. Светлинен лъч се движи в среда с абсолютен показател на пречупване n1= 1.25 и пада на границата на две среди под ъгъл i1=300 . Под какъв ъгъл ще се отрази този лъч, ако абсолютия показател на пречупване на втората среда е n2= 2.5?
sin i2.n1 = n2. sin i1                 sin i2 = n2.sin i1/n1 = 0,83
13. Светлинен лъч се движи в среда с абсолютен показател на пречупване n1= 5 и пада на границата на две среди под ъгъл i1=300 . Под какъв ъгъл ще се пречупи този лъч, ако абсолютия показател на пречупване на втората среда е n2= 1.25?
sin i2.n1 = n2. sin i1                 sin i2 = n2.sin i1/n1 = 0,25
14. Светлинен лъч се движи в среда с абсолютен показател на пречупване n1= 2.5 и пада на границата на две среди под ъгъл i1=300 . Какъв е граничния ъгъл на пречупване на този лъч, ако абсолютия показател на пречупване на втората среда е n2= 1.25?              sin ip =  0,5     ip = 30̊
15. Светлинен лъч се движи в среда с абсолютен показател на пречупване n1= 2.5 и пада на границата на две среди под ъгъл i1=450. Абсолютия показател на пречупване на втората среда е n2= 1.25. Ще имали явлението „пълно вътрешно отражение” и защо?

16. Светлинен лъч се движи в среда с абсолютен показател на пречупване n1= 1.25 и пада на границата на две среди под ъгъл i1=450. Абсолютия показател на пречупване на втората среда е n2= 2.5. Ще имали явлението „пълно вътрешно отражение” и защо?
17. Четири светлинни лъча се движат в среда с абсолютен показател на пречупване n1= 2.5 и падат  на границата на две среди под съответните ъгъли: a) i1=250; б) i2=280; в) i3=350; г) i4=450. Абсолютия показател на пречупване на втората среда е n2= 1.25. За кои лъчи (а,б,в или г) ще има  явлението „пълно вътрешно отражение” и защо?
18. Четири светлинни лъча се движат в среда с абсолютен показател на пречупване n1= 2.5 и падат  на границата на две среди под съответните ъгъли: a) i1=250; б) i2=280; в) i3=350; г) i4=450. Абсолютия показател на пречупване на втората среда е n2= 1.25. За кои лъчи (а,б,в или г) няма да  има  явлението „пълно вътрешно отражение” и защо?

Вълнови свойства на светлината
19.Какво е това „кохерентност на светлината”?
            Съгласувано протичане във времето и пространството на няколко колебливи и вълнови процеса.
20. Какво е това „интерференция на светлината”?
            Явлението при което се извършва наслагване на две или повече кохерентни светлинни вълни с последващопространствено преразпределение на светлинния поток, като в едни точки възниква максимум, а в други минимъм на интензивност.
21. Кое е условието за получаване на интерферентен максимум на два светлинни лъча, движещи се в едно направление?
    Интерферентен максимум се получава, когато разликата в пътищата Δ r  на двете вълни е равна на четно число 2 k  половини от дължината на вълната λ :
x max = 2 k λ 2 . D d
22. Кое е условието за получаване на интерферентен минимумна два светлинни лъча, движещи се в едно направление?
    Интерферентен  минимум се получава ,когато разликата в пътищата Δ r  на двете светлинни вълни е равна на нечетно число 2 k + 1  половини от дължината на вълната λ , т.е.:
x min = ( 2 k + 1 ) λ 2 . D d  .
23.Какво е това ширина на интерферентната ивица и на колко е равна тя?
            Разстоянието между два съседни интерфери1ни минимума(максимума).
24. Какво е това „оптичен път”?
            Разделяне и последващо събиране на светлинн лъчи, идващи от един източник. L*=S
25. Какво е това „дифракция на светлиата”?
            Отклонение на светлинните вълни от праволинейното разпространение в еднородна среда при преминаване край преграда.
26. Какво гласи принципа на Хюйгенс-Френел?
            Всяка точка, до която е достигнала вълна става център на вторични вълни, които се разпостраняват във всички посоки. Обвивката им дава положението на вълновия фронт в следващият момент.
27. Какво представляват зоните на Френел при сферичните вълни и как те се получават?
28. Какво е това дифракция на Френел на кръгъл отвор. Разгледайте само случая с четен брой зони на Френел.
            А=A1/2 – Аn/2 Ако броя е четен ще има отслабване на светлината.
29. Какво е това дифракция на Френел на кръгъл отвор. Разгледайте само случая с нечетен брой зони на Френел.
            А=A1/2 +Аn/2 Ако броя е нечетен ще има усилване на светлината.
30. Какво е това дифракция на Френел на кръгъл диск. Разгледайте само случая с четен брой зони на Френел. А=Аn+1- An+2+An+3…;
31. Какво е това дифракция на Френел на кръгъл диск. Разгледайте само случая с нечетен брой зони на Френел. A=An+1/2+( Аn+1/2- An+2+An+3/2) +An+3/2…;
32.Какво е това дифракция на Фраунхофер на един процеп. Разгледайте само случая с четен брой зoни на Френел.          asinȹ=2nƛ/2 , n=±1,±2,…
33. Какво е това дифракция на Фраунхофер на един процеп. Разгледайте само случая с нечетен брой зони на Френел.          asinȹ=(2n+1)ƛ/2 , n=±1,±2,…
34. Какво е това „поляризация на светлината”?
            Светлина, при която има преимуществено трептене в пространството на светлинния вектор се нарича поляризирана.



37. Какво е това „линейно поляризирана светлина”? Начертайте как изглежда тя?
            Светлина, при която светлиння вектор трепти само с едно направление, се нарича линейно поляризирана.
38. Опишете какво представлява закона на Малюс.
I=I0.cos2αI и I0 са съответно интензитет на падналата светлина и преминалата светлина през анализатора, ъгъл α е между оптичните оси н двете пластини.
39. Коя от следващите формули описва закона на Малюс при дифракция на светлината: а) I=I0.cos3α; б) I=I0.cos2α;в) I=I0.cosα;г) I=0,5.I0.cos2α.
40.Опишете какво представлява закона (ъгъла) на Брюстер при поляризация на светлината при отражение и пречупване на границата на два диелектрика.
            Степента на поляризация на отразения и пречупения лъч зависи от ъгъла на падане и показателя на пречупване на двете среди.При ъгъл на падане/ъгъл на Брюстер/ : tgib = n21 ,където n21 е показателя на пречупване на втората среда относително първата.
41. Светлинен лъч пада на границата на две среди под ъгъл на Брюстер. Кое от следните твърдения е вярно; а) отразения лъч е изцяло поляризиран, пречупения лъч е изцяло поляризиран;
б) отразения лъч е изцяло поляризиран, пречупения лъч е максимално поляризиран; 
в) отразения лъч е  частично поляризиран, пречупения лъч е изцяло поляризиран;
г) отразения лъч е  частично поляризиран, пречупения лъч е частично поляризиран.
42. Светлинен лъч пада на границата на две среди под ъгъл на Брюстер. Какъв е ъгъла между отразения и пречупения лъч: а) 300; б) 450; в) 600; г)900.
43. При поляризация на светлинен лъч на границата на две среди коя от следните зависимости е закона (ъгъла) на Брюстер: а) I=I0.cos2α; б) tgiB=n21; в) n1.sini1=n2.sini2; г) siniB=n21.

Топлинно излъчване

44.Какво е това спектрална плътност на излъчвателната светимост на веществата? Кои са величините, определящи това понятие?
Rυ,T=dWизл υ,υ+dυ/dυ dWизл υ,υ+dυенергията на електромагнитното излъчване, изпускано за единица време от единица площ в честотния интервал υ,υ+dυ  Единицата за спектрална плътност на енергети1еската светимост е J/m2s
45. Какво е това спектрална поглъчателна способност на веществата? От какви величини се определя?
            Aυ,T=dWпог υ,υ+dυ/ dW υ,υ+dυ Величината показва каква част от падащата на тялото енергия dW υ,υ+dυ  за единица време и на единица площ се поглъща от тялото dWпог υ,υ+dυ. Величината Aυ,T е безразмерна.
46. Какво е това „абсолютно черно тяло”?
            Тяло, което поглъща изцяло падащото излъчване при всяка температура независимо от честотата, поляризацията и направлението на разпространение.
47. За абсолютно черното  тяло спектралната поглъщателна способност Aυ,T e  е равна на:
а) 0.5; б)  1;
в) 0 ; г) π.
48. Какво гласи законът на Кирхов при топлинното излъчване на телата? Кои са величините, влизащи в този закон?
            Отношението между спектралната плътност на енергетическата светимост и спектрална поглъщателна способност не зависи от природата на телата, то се явява универсална функция на честотата и температурата на всички тела.  Rv,t/Av,t=rv,t
49. Формулата при топлинното излъчване на телата показва: а) закона на Вин;б) закона на Релей и Джинс; в) закон на Кирхов; г) закон на Планк.
50. Дефинирайте закона на Стефсан –Болцман при топлинното излъчване на телата. Кои са величините, влизащи в него?
            Re=ϭT4
51. Формулата при топлинното излъчване на телата показва: а) закона на Вин;б) закона на Релей и Джинс; в) закон на Стефан-Бoлцман; г) закон на Планк.
52. Дефинирайте закона на отместването на Вин при топлинното излъчване на телата. Кои са величините, влизащи в него?      
53. Формулата при топлинното излъчване на телата показва: а) закона на отместването Вин;б) закона на Релей и Джинс; в) закон на Стефан-Болцман; г) закон на Планк.
54. Начертейте за две температури качествената графика на спектралната плътност на енергетическата светимост на абсолютно черното тяло 



55. Формулата  при топлинното излъчване на телата показва: а) закона на Вин;б) закона на Релей и Джинс; в) закон на Стефан-Болцман; г) закон на Планк.
56. Формулата  при топлинното излъчване на телата показва: а) закона на Вин;б) закона на Релей и Джинс; в) закон на Стефан-Болцман; г) закон на Планк.
57. Формулата  при топлинното излъчване на телата показва: а) закона на Вин;б) закона на Релей и Джинс; в) закон на Стефан-Болцман; г) закон на Планк.

Външен фотоефект

58. Дефинирайте понятието „външен фотоефект”.
            Това е явление при което в резултат на облъчването на металите със светлина от повърхостта им се отделят електрони.

59. Кои са законите на външния фотоефект?
1: Броят на отделените електрони е пропорционален на светлинния поток падащ върху облъчената повърхност.
2: Скоростта на фотоелектроните не зависи от интензитета на лъчението.
3: Фотоелекта е безинерционно явление.
60. Формулирайте хипотезата на Айнщайн, свързана с външния фотоефект.
            Електромагнитното лъчение освен вълнов има и корпускулярен характер.
61. Масата на фотона в покой е: а) 1; б) π; в); г) 0.
62. Масата на фотона в движение е: а) 1; б) π; в); г) 0.
63. Напишете уравнението на Айнщайн за външния фотоефект. Кои са величините, влизащи в него? Е=h.f=hc/lambda
           
            hfенергия получена от електрона
            А и А1 – отделена работа
            Кинетичн енергия на отделения от повърхността на метала електрон.
             
64. Опишете накратко опита на Миликан (лабораторно упражнение № 18) за експерименталното потвърждение на уравнението на Айнщайн за външния фотоефект и определяне на константата на Планк.

Елементи на квантовата механика

65. Каква е хипотезата на де Брой?
            Освен фотоните, електроните и всички други частици на материята имат както корпускулярни, така и вълнови свойства.
66. Опишете накратко опита на Девисон и Джемер (1927 г.) за експерименталното потвърждаване на хипотезата на де Бройл.
            Сноп електрони, разсейващи се от естествената дифракционна решетка, на кристала на никела, дава отчетлива дифракционна картина.
67. Какъв е вероятностния смисъл на вълните на де Бройл?
            Квадратът на амплитудата на вълните на де Бройл в дадена точка се явява мярка за вероятността на частицата да се забележи в тази точка.
68. Как е определена вълновата функция (пси функция Ψ)?
            Вероятността на това, че частиците се намират в елементарния обем е пропоционална квадрата на вълновата функция и елементарния обем.
69. Какви са ограниченията (свойствата) на вълновата функция?
            1: Трябва да бъде бъде крайна
            2: Трябва да бъде еднозначна
            3: Трябва да бъде непрекъсната
            4: Принцип на суперпозицията
70. Какво гласи съотношението на неопределеност на Хайзенберг?
            Микрочастицата не може да има едновременно определена координата (x,y,z) и определена съответна проекция на импулса (px,py,pz)

Уравнение на  Шрьодингер

71. Запишете стационарното уравнение на Шрьодингер. Кои са величините, влизащи в него?
            Δѱ+2m/h2(E-U)ѱ=0
     h- маса на частицата;  Δ-оператор на Лаплас;   U(x,y,z,t)-потенциална ф-я на частицата в силово поле, в което тя се движи;   Ψ-търсената вълнова ф-я на частицата
72. Какво описва уравнението на Шрьодингер?  Движение на частиците в силово поле.
73. Запишете стационарното уравнение на Шрьодингер в случай на потенциална яма с безкрайно високи стени. Кои са величините, влизащи в него?

74. Фомулата :
а) собствени стойности на стационарно уравнение на Шрьодингер в случай на Фомулата;
б) собствени функции на стационарно уравнение на Шрьодингер в случай на потенциална яма с безкрайно високи стени;
в)  собствени стойности на стационарно уравнение на Шрьодингер в случай на свободна частица;
г)  собствени функции на стационарно уравнение на Шрьодингер в случай на свободна частица.
75. Фомулата :
а) собствени стойности на стационарно уравнение на Шрьодингер в случай на потенциална яма с безкрайно високи стени;
б) обствени функции на стационарно уравнение на Шрьодингер в случай на потенциална яма с безкрайно високи стени;
в)  собствени стойности на стационарно уравнение на Шрьодингер в случай на свободна частица;
г)  собствени функции на стационарно уравнение на Шрьодингер в случай на свободна частица.
76. Начертайте графиките  на вълновата функция и квадрата на амплитудата и за частица в потенциална яма с безкрайно високи стени при квантови числа 1,2 и3.
77. Къде е най-вероятно да се намира за частица в потенциална яма с безкрайно високи стени при квантово число n=1( n=2, n=3)? Обосновете твърдението си с  чертеж.
При n=2 частицата не може да се намира в средата на ямата,като с еднаква вероятност може да се намира в левия и десния й край.
77. Енергията на квантов хармоничен осцилатор: а) има непрекъснат спектър; б) може да се изменя произволно; в) може да бъде равна на нула; г) не може да бъде равна на нула.
78. Енергията на квантов хармоничен осцилатор: а) има непрекъснат спектър; б) може да се изменя произволно; в) може да бъде равна на нула; г) има само дискретен спектър.
79. Частица в потенциална яма с безкрайно високи стени: а) има произволна енергия; б) може да напусне ямата; в) движи се с нулева скорост; г) има квантувана енергия.

80. Какво гласи принципа на съответствието на Бор
      При големи квантови числа законите на квантовата механика преминават в закони на класическата физика.


сряда, 25 май 2016 г.

Задача 01. Сумиране на три числа ПИК 1 , C++

Задача 01. Сумиране на три числа
Условие
Напишете програма, която чете от конзолата три числа от тип int и отпечатва тяхната сума.
Описание на входа
Входните данни се въвеждат като всяко едно от трите числа се въвежда на отделен ред.
Описание на изхода
Изходът се извежда като на един ред от конзолата се изписва сумата на тези три числа.
Анализ на задачата
Записваме входа от конзолата в string променлива.
Парсваме входните данни в три променливи от тип int, съответно firstNum, secondNum, thirdNum.
След това ги сумираме и запазваме резултата в променливата sum, която е от тип long, за да се предпазим от прехвърляне на обхвата на типа int. За да няма проблм при сумирането се налага кастване към тип long.
Решение (сорс код)
using System;
namespace _01_ReadThreeInt
{
    class ReadThreeInt
    {
        static void Main()
        {
            string inputStr = Console.ReadLine();
            int firstNum = int.Parse(inputStr);
            inputStr = Console.ReadLine();
            int secondNum = int.Parse(inputStr);
            inputStr = Console.ReadLine();
            int thirdNum = int.Parse(inputStr);
            long sum = (long)firstNum + secondNum + thirdNum;           
            Console.WriteLine(sum);
        }
    }
}

четвъртък, 10 март 2016 г.

Програмиране и Използване на Компютри – част I, Протокол 8, решен , КСТ, Технически университет София, Филиал Пловдив

Програмиране и Използване на Компютри – част I

(Компютри и Приложения)

Учебна година: 2009/10                  ОКС: бакалавър        Специалност:  ККЕТ-ФЕА
ПРОТОКОЛ  N 8  от лабораторно упражнение на тема:

Основни елементи на езика С. Структура на програмата.



Фак. N
Студент име
355 414
Митко Димитров Кацев

Проучете много внимателно информацията и примерите от Приложение 1. Отговорете на поставените по-долу въпроси максимално точно и ясно и не веднага на момента, а когато считате, че отговорът Ви ще бъде максимално точен и ясен. Санкционират се: неверни отговори, неточни отговори, неясни отговори, правописни грешки.

1.
Какво не е наред с всяко от изброените имена на променливи?
1)      _test_             4) sum 1
2)      2variable       5) temp-sum-1
3)      $dollar           6) num_0043-1
Имената на променливите могат да бъдат съставени от всякакви символи, цифри и букви. Не могат да се използват само думите които служат за команди. Следователно няма проблем с изброените имена на променливи.

2.
За какво се използват стандартните библиотечни функции в езика С?
За извършване на стандартни операции, които са групирани в различни заглавни(хедърни) файлове за да могат по лесно да се извикат и изпълнят. Такива функции са: за входно-изходни операции, математически функции, функции за работа с низове и др.

3.
Какво е предназначението на хедърните файлове и как се добавят към програмата?
Хедърните файлове се използват за да съхранят стандартните библиотечни функции и да улеснят тяхното използване. Хедърните файлове се добавят в началото на програмата, извикват се с командата “#include”, следва името на хедърният файл в скоби “< >”, като името завършва с разширението “.h”.

4.
Дайте примери за стандартни функции от езика С и посочете хедърните файлове, които съдържат информация за техните прототипи!
Функции за входно-изходни операции: <stdio.h>
Математически функции: <math.h>
Функции за работа с низове: <string.h>

5.
Кои са 5-те основни типа данни, поддържани от С?
void, char, int, float, double

6.
Как се поставят коментари в програма на С? Дайте пример!
Като накрая на жаления ред поставим “//” и след тях запишем коментара, като за коментар се счита всичко след “//”.Другият вариант е след даден ре се записва  “/*”, след това записваме коментара, без значение на колко реда е и накрая записваме “*/”, като в този случай за коментар се смята всичко между “/*” и “*/”.
Пример:
int Prom //декларираме променлива от целочислен тип

7.
Може ли да съществуват вложени коментари на езика С?
Многоредовите коментари не могат да бъдат вложени, а едноредовите могат да бъдат вложени в многоредов.

8.
Посочете разликите между локална и глобална променлива!
Локалните са дефинирани в тялото на дадена функция и могат да се използват само в нея. А глобалните са дефинирани извън всички функции и могат да се използват във всяка една функция от програмата.

9.
Кога се създават и кога унищожават локалните променливи?
Всяка локална променлива се създава само когато функцията бъде извикана и се унищожава, след като се излезе от функцията.

10.
Кога се създават и кога унищожават глобалните променливи?
Глобалните променливи се създават преди началото на конкретна/ни функция/и и се унищожават когато програмата завърши.

11.
Какво съдържа прототипът на дадена функция? Дайте пример!
Прототипът на дадена функция съдържа: името на функцията, типа на резултата и списъка с аргументите й.
int func(void)
float func2(int a, float b)
int main()

12.
За какво се използват прототипите на функциите?
Прототипът указва на компилатора, че определена функция съществува, но тялото на функцията е някъде другаде.

13.
За какво се използват функциите printf() и scanf()? Дайте примери!
За изход и вход на информация.
printf(“Въведете число: ”); //Извежда текста: “Въведете число: ” на екрана.
scanf("%d", &P); //Присвоява на променливата P стойността на десетичното число, въведено от клавиатурата.

14.
За какво се използват форматиращите параметри при извикване на функциите printf() и scanf()? Дайте примери!
За да определят броя и вида на въвежданите/ извежданите аргументи.

15.
Каква е разликата между декларация и дефиниция на функция?
Декларацията определя името и типа на данните, докато дефиницията прави не само това, но и казва на компилатора да запази памет за променливата.

16.
Как функциите връщат стойност на извикващите ги конструкции?
Връщането на стойност в извикващата конструкция става чрез ключовата дума return. Пише се:
return <<стойността която се връща>;

17.
Функция, наречена myfunction() притежава 3 параметъра: един int, наречен test1, един float, наречен test2 и един char, наречен test3. Функцията не връща стойност. Напишете нейния прототип!
int myfunction(int test1, float test2, char test3)

18.
Напишете програма, която изисква от вас да въведете цяло число, дробно число и символ, след което изобразява въведените стойности на екрана.
#include <stdio.h>
void main(void)
{int a;
float b;
char c;
printf("vyvedete cqlo 4islo, drobno 4islo i simvol: ");
scanf("%d %f %s", &a, &b, &c);
printf("cqloto 4islo e %d,drobnoto e %f i cimvola e %c",a,b,c);}


19.
Напишете програма, която изисква от вас въвеждането на две цели числа и след това изобразява тяхната сума, частното и остатъка от делението им на екрана.
#include <stdio.h>
int main()
{int a,b,suma,chastno,ostatyk;
printf("vyvedete 2 celi 4isla");
scanf("%d" "%d", &a, &b);
suma=a+b;
chastno=a/b;
ostatyk=a%b;
printf("sumata e %d,chastnoto e %d i ostatyka e %d",suma,chastno,ostatyk);
return 0;}

20.
Напишете програма, която изисква от вас въвеждането на дробно число и след това го отпечатва с противоположен знак.
#include <stdio.h>
int main()
{float a;
printf("a=");
scanf("%f",&a);
printf("-%f",a);
return 0;}

21.
Напишете програма, която изисква въвеждането на число и отпечатва квадратен корен от него.
#include <stdio.h>
#include <math.h>
int main()
{float a;
printf("a=");
scanf("%f",&a);
a=sqrt(a);
printf("%f",a);
return 0;}

22.
Напишете програма, която намира и извежда на екрана лицето на куб. Нека програмата да изисква от потребителя да въведе всеки един от размерите.
#include <stdio.h>
int main()
{float a;
printf("vyvedete stranata na kuba");
scanf("%f",&a);
a=6*a*a;
printf("liceto na pylnata povyrhnina na kuba e %f",a);
return 0;}

23.
Напишете програма, която изчислява броя на секундите в 1 час, 1 седмица, 1 месец и 1 година.
#include <stdio.h>
int main()
{long int chas,sedmica,mesec,godina;
chas=60*60;
sedmica=7*24*chas;
mesec=30*24*chas;
godina=365*24*chas;
printf("sekundite v 1 4as, 1 sedmica, 1 mesec i 1 godina sa syotvetno %d,%d,%d,%d",chas,sedmica,mesec,godina);
return 0;}



24.
Напишете програма, която разменя стойностите на две променливи А и В (ако А=3, В=5, да стане А=5, В=3).
#include <stdio.h>
int main()
{int A,B,P;
printf("vyvedete A i B");
scanf("%d""%d",&A,&B);
P=A;
A=B;
B=P;
printf("%d,%d",A,B);
return 0;}


25.
Напишете програма, която намира и извежда на екрана обиколката и лицето на произволен правоъгълник.
#include <stdio.h>
int main()
{int a,b,S,P;
printf("vyvedete stranite na pravoygylnika");
scanf("%d""%d",&a,&b);
S=a*b;
P=2*a+2*b;
printf("Liceto i obikolkata sa syotvetno: %dkv.sm.,%dsm.",S,P);
return 0;}


26.
Напишете програма, която намира и извежда на екрана обиколката и лицето на произволен триъгълник по зададени ъгъл a(Alpha) и прилежащите му страни b и c. За намиране на лицето да се използва формулата:
#include <stdio.h>
#include<math.h>
int main()
{int b,c;
float alfa,S;
printf("vyvedete 2 ot stranite na triygylnika i ygyla zakliu4en mejdu tqh: ");
scanf("%d""%d""%f",&b,&c,&alfa);
S=b*c*sin(alfa)/2;
printf("Liceto e: %f",S);
return 0;}


27.
По дадена температура на въздуха по Фаренхайт, да се изчисли температурата по Целзий. Връзката между двете скали е следната: ,
където C е температурата по Целзий, а F - температурата по Фаренхайт.
#include <stdio.h>
int main()
{float C,F;
printf("Wyvedete temperaturata po farenhait ");
scanf("%f",&F);
C=(F-32)*5/9;
printf("Temperaturata po celzii e : %fgradusa",C);
return 0;}


28.
Напишете програма, която намира сумата на първите n естествени числа, като се използва формулата за намиране на сумата на първите n члена на аритметична прогресия.
#include <stdio.h>
int main()
{int S,i,n;
printf("n= ");
scanf("%d",&n);
S=(1+n)*n/2;
printf("Sumata na pyrvite %d 4lena na progresiqta e %d",n,S);
return 0;}


29.
Напишете програма, която изчислява лицето на триъгълник по дадени три страни a, b и c. Използвайте формулата , където p е полупериметърът на триъгълника.
#include <stdio.h>
#include <math.h>
int main()
{int a,b,c;
float p,S;
printf("wyvedete stranite na triygylnika");
scanf("%d""%d""%d",&a,&b,&c);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
printf("Liceto na triygylnika e %fkv.sm.",S);
return 0;}

30.
Напишете програма за изчисляване и отпечатване на разстоянието между две точки в равнината, зададени чрез координатите си (x1, y1) и (x2, y2).
#include <stdio.h>
#include <math.h>
int main()
{int x1,x2,y1,y2;
float a,b,c;
printf("wyvedete kordinatite na dvete to4ki");
scanf("%d""%d""%d""%d",&x1,&y1,&x2,&y2);
b=abs(y1-y2);
a=abs(x1-x2);
c=sqrt(a*a+b*b);
printf("raztoqnieto mejdu to4kite e %f.",c);
return 0;}

31.
Напишете програма, която намира и извежда на екрана стойността на израза
#include <stdio.h>
#include <math.h>
int main()
{float x,y,e,z;
printf("wyvedete x i y");
scanf("%f""%f",&x,&y);
e=2.71828183;
e=pow(e,y/3);
z=(abs(x-y)*e)/(1/2+cos(x/2));
printf("z= %f",z);
return 0;}


Приложение 1

Езикът С е много мощен и гъвкав структурен език. Първата разработка е на Денис Ричи съвместно с Кен Томпсън през 1972. Като всеки език и той се характеризира със свои азбука, синтаксис и семантика.
1.        Азбука – набор от допустими символи (букви, цифри и специални символи)
а)      A ¸ Z  и  a ¸ z
б)      0 ¸ 9
в)     специални символи : _ ~ @ # $ % ^ & * ( ) - + / { } : ; “ < > , ? ‘ \ . =
2.        Лексеми
а)     ключови думи – думи които не могат да се използват за имена на функции или променливи, например: auto, break, case, char, const, else, if, for... (32 думи);
б)     числени, низови и символни константи – константите са стойности (числа, еденични символи или символни последователности), зададени чрез директното им записване в програмният код. Те имат постоянна стойност която след компилирането присъства като част от машинният код на програмата.  Константите могат да бъдат:
Ø  цели числови:
         десетични със знак (+ или –) (+ се подразбира и може да се пропуска)    +12   12   -12
         осмични със знак (+ или –) (означават се с 0 пред осмичното число)      +014  014  -014
         шестнадесетични със знак (+ или –) (означават се с 0x пред числото)   +0xB2 0xB2 -0xB2  
Ø  дробни числови: 12.0 или +12.0; -12.23; .12; -321; -2.14e-17.
Ø  символни: един символ в апострофи: ’0’ след компилирането представлява байт със стойност 48 (ASCII кода на символа 0). Възможно е задаването на символни константи за специални не печатими символи като \n. Това става аналогично на начина описан по-долу. Символът за единична кавичка се задава чрез удвояване ’’’’ или  чрез предхождаща го обратно наклонена черта \’’.
Ø  низови: последователност от допустими символи, затворени в двойни кавички. Дължината е неограничена. Допуска се използването на специални не печатими символи, които се записват с помоща на точно определен печатим символ предшестван от обратно наклонена черта например: \nсимвол за нов ред; \t – хоризонтална табулация; \r – връщане на каретата; \0 – байт със стойност 0 и други. Допуска се и използването директно на  ASCII кода на символа който е необходим като след обратната наклонена се записва стойността, която може да е три или по-малко цифрено осмично число (например \214) или дву или по-малко цифрено шестнадесетично число, предшествано от x (например \x1F). Самата обратно наклонена черта се записва чрез удвояването й ”този низ съдържа една единствена обратно наклонена черта (\\). Символът за двойни кавички се записва така: \” или така: ””. След компилирането низовата константа присъства в продуцирания машинен код като последователна поредица от байтове със стойностите на съответните ASCII кодове на символите и в края й (след последният байт) автоматично е поставен байт със стойност 0. Например: ”това е низ”; ”това\40също\x20e низ\n”; ”” – низ с нулева дължина (след компилирането се представя чрез самостоятелен байт със стойност 0)
3.        Оператори:
          аритметични;
          логически;
          управляващи;
4.        Разделители:
          шпация;
          табулация;
5.        Коментар: при компилиране коментарът се замества с интервал и се разглежда като разделител. Не присъства по никакъв начин в продуцирания машинен код. Поставянето на коментари е от първостепенна важност при разработването на сериозен софтуер, то може силно да улесни четенето и разбирането на програмният код от множество програмисти работещи по даден проект, а и от самият програмист писал даден код, когато се наложи да „преоткрие” идеите си след известно време.
/*..........
..........*/ - многоредов коментар
//.................... - едноредов коментар
6.        Идентификатор: последователност от допустими букви и цифри, която се използва за име на функция или променлива и винаги започва с буква. Долната черта (_) се приема за буква. Идентификаторите отговарят на следните условия:
          не се допускат разделители;
          различават се от ключовите думи;
          прави се разлика между малки и големи букви;
7.        Променлива – именувана част от паметта, която може да съдържа различни стойности по време на изпълнение на програмата. Всички променливи трябва да се дефинират, преди да могат да се използват. Дефиницията на променливата показва на компилатора от какъв тип е използваната променлива (цяла, дробна и др.). Общият вид на конструкцията за дефиниция е:
<тип> <име_на_променлива>;
където <тип> е тип за данни в С, а <име_на_променлива> е име (идентификатор) на променливата. Съществуват две места, където може да се дефинират променливи: в тялото на някоя функция или извън всички функции. Променливите, дефинирани извън всички функции, се наричат глобални и могат да се използват (достъпни са) във всяка функция в програмата. Променливите, дефинирани в тялото на дадена функция, се наричат локални и са достъпни само във функцията, в която са дефинирани. В стандартното C локални променливи могат да се дефинират само в самото начало на функцията.
8.        Присвояване на стойност – присвояването на стойност на дадена променлива се извършва чрез оператора за присвояване „=”. Името на променливата се поставя от лявата страна на оператора за присвояване, а стойността, която искаме да й присвоим – отдясно. Например:
sum = 0;
След извършване на операцията по присвояване самата тя се интерпретира като стойност (равна на токущо присвоената) и може да участва в изрази. Например:
Sum1 = Sum2 = 0; Sum1 = 4 + (Sum2 = 0);
9.        Типове данни – типът на данните определя:
          множеството допустими стойности;
          необходимата памет;
          множеството допустими операции;
С поддържа 5 основни (вградени) типа данни:

Тип
Значение
void
Специален тип данни; означава „без стойност”; Ползва се при дефини-ции и декларации на функции и като възможен тип за сочените от указател данни.
char
Символи (по-точно ASCII код на символи), записвани в 8 бита (-128 ÷ 127); Могат да се интерпретират както като символи така и като числени стойности, в зависимост от контекста в които се използват.
int
Цели числа със знак, записвани в 16 (-32768 ÷ 32767), 32 (-2147483648 ÷ 2147483647) или 64 бита. Определя се от типа  на платформата (16, 32 или 64–битов процесор) за която се компилира програмата.
float
Числа с плаваща запетая, записвани в 32 бита
(-3.4E-38 ÷ +3.4E+38); точност до шестия знак
double
Числа с плаваща запетая с двойна точност, записвани в 64 бита
(-1.7E-308 ÷ +1.7E+308); точност до десетия знак.

Примери:   int i, j = 2;
float p, l, k;

Тези основни типове, с изключение на void, могат да се модифицират за по-точно описание чрез използването на модификаторите на типове:

long
За числа с по-голям размер
short
За числа с по-малък размер
signed
За определяне на целочислена стойност със знак
unsigned
За определяне на целочислена стойност без знак

Модификаторът на тип предшества името на типа, например:
unsigned int x;
          signed, unsigned – тези два модификатора могат да се приложат при целите числа и символите. По същество, тези модификатори не променят размера на разрядната решетка, а само тълкуването на данните в нея. Модификаторът signed означава, че данните се тълкуват като записани в допълнителен код. Модифицираните със signed данни могат да приемат положителни и отрицателни стойности. Модификаторът unsigned означава, че данните се тълкуват като записани в прав код и данните могат да заемат само положителни стойности и 0. Тези модификатори могат да се прилага и в комбинация с long и short. Модификаторът signed може да бъде пропуснат, тъй като това е модификаторът по подразбиране за данните от тип int и char. Когато се работи с данни от тип unsigned int, ключовата дума int може да бъде пропусната, тъй като се подразбира.
          short, long – тези модификатори могат да се приложат при целите и реалните числа. Двата модификатора променят размера на разрядната решетка в зависимост от някои установени конвенции на конкретния компилатор. Модификаторът short задава два пъти по-къса разрядна решетка от нормално заделяната за даденият тип, а long - два пъти по-дълга. За типа long float е дефинирана и се използва специална ключова дума – double. Възможно е при дадени условия някой от модификаторите да не указва влияние върху размера на разрядната решетка. Например при 32-битова платформа int и long int  имат еднакъв размер (32 бита).
10.           Етапи в процеса на компилиране
          Предпроцесор. Това по същество е помощно средство, което не извършва никакви действия по същинското компилиране на програмата и смисълът от съществуването и ползването му е в това, че създава немалък брой улеснения в процеса на създаването на сорс кода на програмата. Работата му се ограничава на ниво сорс код и се изразява главно в това, че непосредствено преди компилирането в зависимост от поставените в самият сорс код команди към предпроцесора наречени предпроцесорни директиви се извършват автоматични интервенции върху него, чрез които той се привежда в окончателен вид необходим за същинският процес на компилиране. Всички предпроцесорни директиви се отличават от кода на C по това че започват със знака #. Някои от най често използваните от тях са:
         #include: Вмъкване на текстови файл. Директивата е последвана от името на файла, който ще се вмъква оградено в знаците < и > или от двойни кавички, като разликата е, че в първият случай файла се търси в директорията с хедърни файлове зададена по подразбиране, а във вторият – първо в текущата директория и после в тази с хедърните файлове. Резултата от изпълнението й е, че текста на зададеният файл се вмъква на мястото където е срещната.
         #define: Дефиниране на макрос. Макросите са имена, отговарящи на условието за идентификатори. Директивата позволява задаване на „стойност” на макроса, която може да е произволна комбинация от символи. Например: #define MAIN void main(void) Тук  MAIN е името на макроса, а void main(void) е „стойността” му. След дефинирането си, макроса е познат на предпроцесора и всяко срещане на името му в текста на програмата бива заместено с дефинираната стойност. Възможно е дефиниране на макроси без стойност и такива с параметри. Първите намират приложение главно при директивите за условно компилиране, където и в зависимост от това дали е дефиниран даден макрос определен участък от сорс кода може да се премахне или не. Вторите се явяват мощно средство за минимизация на повторното писане на сходен код когато това по някаква причина не може да бъде избегнато чрез дефиниране на функция и за създаване на по-лесно четим код.
         Други: Съществуват още редица директиви за условно компилиране и такива предоставящи възможност за контрол на настройките на компилатора.
          Компилатор. Той получава като вход обработеният от предпроцесора сорс файл и извършва компилацията му като продуцира машинен код. Резултата от работата му е обектен файл, съдържащ смесица от машинен код и указания и команди към свързващият редактор (Линкера).
          Линкер. Той извършва свързване на обектните файлове продуцирани от компилатора (понеже в реалността проектите се състоят от повече от един модул (файл със сорс код) продуцираните от компилатора обектни файлове в общият случай са повече от един) и код от библиотеки за статично свързване (ако в обектните файлове има обръщения към функции намиращи се в тези библиотеки). Резултата от работата на линкера е изпълним файл.
11.           Структура на програма, написана на С - най-общо, една С програма съдържа следните основни части:
/* включване на хедърни файлове */

/* прототипи на функции */

/* главна функция*/
void main(void)
{
/* … */
}

тип_на_резултат име_на_функция_1(списък_с_аргументи)
{
/* … */
}

...

тип_на_резултат име_на_функция_N(списък_с_аргументи)
{
/* … */
}

Всички програми на С се състоят от части (програмни единици), наречени функции. Броят им е неограничен. Само една функция обаче се дефинира като главна – функцията main() и всяка С програма трябва да я притежава. Тя осъществява връзка с ОС и по същество е мястото, откъдето започва изпълнението на програмата. Друг важен компонент във всички програми на С са стандартните библиотечни функции, групирани в различни раздели – функции за входно-изходни операции, математически функции, функции за работа с низове и др. Прототипите на стандартните функции и декларациите на евентуално ползвани от тях структури от данни, константи и др. се намират в т. нар. заглавни (хедърни) файлове – файлове с разширение .h. Ако в програмата се ползват стандартни функции, заглавният файл, който ги описва трябва задължително да бъде включен. С-компилаторът използва информацията от тези файлове, за да обработи правилно извикваните функции.
Функцията е набор от последователно записани оператори, които осъществяват действия, представящи логическа цялост. Обикновено, синтаксисът на една С функция е следният:
<тип_на_резултат> име_на_функция(списък_с_аргументи)
{
поредица от оператори
}

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

int function1(int x, float y, double z)
{
поредица от оператори
}

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

Rounded Rectangular Callout: Начало на глав-ната функцияRounded Rectangular Callout: Предпроцесорна директива за включване на хедърния файл stdio.h, съдържащ прототипа на printf() и много други неща.Пример:
#include <stdio.h>
int main(void)
{
Rounded Rectangular Callout: Край на главната функцияprintf("Това е моята първа програма.\n");
Rounded Rectangular Callout: Извикване на функция за отпечатване 


return 0;
}

Когато създавате ваши собствени функции, връщането на стойност в извикващата конструкция става чрез ключовата дума return. Общата форма на конструкцията е
return стойност;
return може да се използва нееднократно навсякъде в тялото на функцията като винаги изпълнението й предизвиква приключване на функцията.
Според приетата конвенция, стойност 0, връщана от main() показва, че програмата е завършила своето изпълнение нормално.
Възможно е да се използва функция преди реално тя да е дефинирана (все пак дефинирането й в по-късен момент на компилация на текущият модул, в друг модул или в библиотека е неизбежно). За да се осъществи такова използване е необходимо тя да се декларира. Това става, като се запише прототипът на функцията. Прототипът се състои от името на функцията, типа на резултата и списъка с аргументите й. Той завършва с точка и запетая. След като е намерил прототип на функция компилатора позволява тя да бъде извиквана като евентуалното и дефиниране също е допустимо, но то трябва да съответства на прототипа.
12.           Аритметични и логически операции

Аритметични операции и приоритет
C символ
Приоритет
Функция
Пример
( )
1
операция в скоби
(a + b) / c
*
2
умножение
a * b
/
2
деление
a / b
%
2
остатък при целочислено деление
a % b
+
3
събиране
a + b
-
3
изваждане
a – b
=
4
присвояване
a = b

Операции за отношение
C символ
Значение
Пример
==
a равно на b
a == b
< 
a по-малко b
a < b
<=
a по-малко или равно b
a < = b
> 
a по-голямо b
a > b
>=
a по-голямо или равно b
a >= b
!=
a различно b
a != b

Логически операции
C символ
Значение
Действие
!
Логическо “не”
NOT
||
Логическо “или”
OR
&&
Логическо “и”
AND

13.           Елементарен вход – изход
а)     функция printf()използва се за извеждане на информация. Общият й вид е: printf(“форматиращ_низ”, аргументи);
          форматиращ_низ – знаков низ който освен че се изписва на екрана също определят броя показвани аргументи и вида на представянето им. Той може да съдържа форматиращи параметри, който се обозначават със знака %.
          аргументи – променливи или изрази, които ще извеждаме. В общият случай броят им съвпада с броя форматиращи параметри в знаковият низ. Важно е да се отбележи, че съвпадението на броя, типовете и последователността на аргументите с броя, определяните типове и последователността на форматиращите параметри е отговорност на програмиста и всички некоректни в този аспект варианти, които са синтактично и семантично верни биха се компилирали без проблем, като дори не бих предизвикали генериране на предупреждение. В общият случай резултата от това е силно изненадващ изход на дисплея, но в ситуацията когато броя форматиращи параметри е по – голям от броя аргументи е почти сигурно, че ще се стигне до прекратяване на изпълнението на програмата.
          Примери:
printf(“С не е толкова труден”);
printf(“, нали? \n”);
printf(“%5d %3d”, x, y);

Форматиращи параметри
Параметър
Значение
%c
извежда един символ
%d
извежда десетично цяло число със знак
%e
означение (3.6E-5) за представяне на много голямо или много малко реално число
%f
извежда десетично число с плаваща запетая
%g
общ формат за представяне на e или f
%o
извежда осмично число
%p
извежда указател
%s
извежда низови стойности
%u
извежда десетично цяло число без знак
%x
извежда шестнадесетично число
%%
Извежда знака за процент
б)      функция scanf() - тази функция осигурява форматиран вход от стандартно входно устройствово – клавиатура. Общият й вид е:
scanf(“форматиращ_низ”, аргументи);
    форматиращ_низ – поставят се в двойни кавички и определят броя и вида на въвежданите аргументи. Всеки форматиращ параметър започва с %.
    аргументи – това са адресите на променливите, които ще приемат въвежданите стойности. Необходимо е съответствие между параметри и аргументи по брой, тип и място в списъка. В противен случай опасностите са като при printf(), но тук вероятността да се стигне до прекратяване на изпълнението на програмата е далеч по-голяма. Важно е и да не се забравя използването на оператора за извличане на адрес (&), който е задължителен за коректната работа на scanf(), но изпускането му не би довело до грешка или предупреждение при компилиране, но за сметка на това със сигурност ще доведе до изключително странно поведение на програмата при изпълнението й и нерядко до прекратяване на изпълнението. Пример:
scanf(“%d %f”, &i, &x);
в)     функция getchar() - тази функция въвежда един символ, или по-точно неговия ASCII код, от клавиатурата. Не изисква аргументи, но скоби трябва да има както и при всяко извикване на функция, неизискваща аргументи. Функцията връща кода на символа:
име_на_променлива = getchar( );
М = getchar( );
При въведен символ Y, М = 89, кода на Y.
14.           Троен оператор
void main(void)
{   
       int a, b = 4, c = 8;

       a = (b > c) ? b : c;
       printf("Ако b > c то a = b, иначе a = c: %d", a);
} 
15.           Унарни оператори

sum = sum++;
sum = sum + 1;
sum = sum--;
sum = sum – 1;
sum = a + b++;
sum = a + b; b = b + 1;
sum = a + b--;
sum = a + b; b = b – 1;
sum = a+ ++b;
b = b + 1; sum = a + b;
sum = a+ --b;
b = b - 1; sum = a + b;

16.           Операции върху битове
a
1 0 0 1 0 0 1 1
b
1 1 1 1 0 0 0 0
a & b
1 0 0 1 0 0 0 0
a | b
1 1 1 1 0 0 1 1
a ^ b
0 1 1 0 0 0 1 1
a = b >> 2
0 0 1 1 1 1 0 0
a = a << 3
1 0 0 1 1 0 0 0
a = ~ b
0 0 0 0 1 1 1 1

C символ
Значение
&
И
|
ИЛИ
^
изключващо ИЛИ
>> 
отместване на дясно
<< 
отместване на ляво
~
инвертиране

17.           Комбинирани оператори

a *= b;
a = a * b;
a /= b;
a = a / b;
a += b;
a = a + b;
a -= b;
a = a - b;
a %= b;
a = a % b;
a <<= b;
a = a << b;
a >>= b;
a = a >> b;
a &= b;
a = a & b;
a |= b;
a = a I b;
a ^= b;
a = a ^ b;

Примери: Въведете примерите, компилирайте, изчистете от грешки и изпълнете програмите в среда на С. Осмислете синтаксиса, структурата на С програма и действието на разглежданите функции:
а)     Програма, която изчислява средно аритметично на 3 числа:
#include <stdio.h>
void main(void)
{
float a, b, c, d, average;

printf("Въведете три числа:");
scanf("%f %f %f", &a, &b, &c);
d = a + b + c;
average = d/3.0;
printf("Средно аритметичното е %f", average);
}
б)     Програма, която при въведен радиус, изчислява площта и дължината на окръжност:
#include <stdio.h>
#define PI 3.14159
void main(void)
{
float area, circum, radius;
printf("На колко е равен radius?\n");
scanf("%f", &radius);
circum = 2*PI*radius;
area = PI*radius*radius;
printf("Параметрите на окръжността са следните:\n");
printf("Дължина на окр.= %1.2f, Площ = %1.2f\n", circum ,area);
}

в)    Програма, която изписва квадрата на число, въведено от клавиатурата. Квадратът се изчислява чрез функцията calculate_square():

#include <stdio.h>

int calculate_square(void);

void main(void)
{
int square;
square = calculate_square();
printf("Квадратът е: %d”, square);
}

int calculate_square(void)
{
     int number;
     printf(“Въведете число: ”)
scanf("%d", &number);
return number*number;

}