C lects (1)

1,854 views

Published on

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,854
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

C lects (1)

  1. 1. Хувьсагч гэж юу вэ ? <ul><li>Компьютерийн санах ойн нэрлэгдсэн муж тэр нь янз бүрийн төрлийн утгыг агуулна ( бүхэл, бодит гэх мэт .) </li></ul><ul><li>Програм ажиллах үеийн өгөгдлийг хадгална </li></ul><ul><li>Програмын хаана ч өгөгдлийг хадгалахдаа ашиглаж болно </li></ul><ul><li>Үнэндээ өгөгдлийг боловсруулахад тусална </li></ul>
  2. 2. Санах ой дахь хувьсагч <ul><li>int my_int = 5;/*identifier*/ </li></ul><ul><li>double my_double = 3.5; </li></ul>5 3.5 my_int my_double
  3. 3. Санах ой дахь хувьсагч <ul><li>my_int -р түүний утгыг уншихаар дуудаж болно </li></ul><ul><li>&variable_name , гэвэл тухайн хувьсагчийн хаяг болно </li></ul>5 3.5 my_int my_double
  4. 4. <ul><li>/* cm -г инчэд хөрвүүлэх програм */ </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>double cm, inches; </li></ul><ul><li>printf(&quot;Please enter length in centimeters: &quot;); </li></ul><ul><li>scanf(&quot;%lf&quot;, &cm); </li></ul><ul><li>inches = cm / 2.54; </li></ul><ul><li>printf(&quot;This is equal to %g inches &quot;, inches); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>Example
  5. 5. Жишээ : хувьсагчийн зарлалт <ul><li>int i; </li></ul><ul><li>char c; </li></ul><ul><li>float f1, f2; </li></ul><ul><li>float f1=7.0, f2 = 5.2; </li></ul><ul><li>unsigned int ui = 0; </li></ul>
  6. 6. Хувьсагчид нэр оноох <ul><li>Латин үсэг , цифр , доогуур зураас </li></ul><ul><ul><li>i </li></ul></ul><ul><ul><li>CSE_5a </li></ul></ul><ul><ul><li>a_very_long_name_that_isnt_very_useful </li></ul></ul><ul><ul><li>fahrenheit </li></ul></ul><ul><li>Эхнийх цифр байж болохгүй </li></ul><ul><ul><li>5a_CSE энэ нь буруу ! </li></ul></ul><ul><li>Том жижиг үсэг ялгаатай </li></ul><ul><ul><li>CSE_5a энэ нь cse_5a үүнээс ялгаатай </li></ul></ul>
  7. 7. C –н төрөл <ul><li>char – нэг байт тэмдэгт . </li></ul><ul><li>int – бүхэл тоо – 2 байт . </li></ul><ul><li>float – дан нарийвчлалтай бодит тоо – 4 байт . </li></ul><ul><li>double – давхар нарийвлчлалтай бодит тоо – 8 байт . </li></ul>char int float double
  8. 8. C төрөл <ul><li>short int ( эсвэл short ) – бүхэл тоо , 2 байт . </li></ul><ul><li>long int ( эсвэл long ) – бүхэл тоо , 4 эсвэл 8 байт . </li></ul><ul><li>long double – давхар нарийвлчлалтай бодит тоо –8 байт . </li></ul><ul><li>unsigned ба signed </li></ul><ul><li>int , char , long , short өмнө хэрэглэнэ. Тухайн хувьсагчийг илүү тодорхой болгож өгнө. Эерэг юмуу, эерэг ч сөрөг ч юмуу гэдгийг тодруулж өгдөг. </li></ul>
  9. 9. Жишээ <ul><li>/* см-г инчэд хөрвүүлэх */ </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>double cm, inches; </li></ul><ul><li>printf(&quot;Please enter length in centimeters: &quot;); </li></ul><ul><li>scanf(&quot;%lf&quot;, &cm); </li></ul><ul><li>inches = cm / 2.54; </li></ul><ul><li>printf(&quot;This is equal to %g inches &quot;, inches); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  10. 10. printf ба scanf <ul><li>printf – дэлгэцэнд хэвлэгч . </li></ul><ul><li>Хувьсагчид хандаж түүний утгыг хэвлэж чадна . </li></ul><ul><li>scanf – стандарт оролтоос утгыг авч хувьсагчид онооно . </li></ul>
  11. 11. printf хувьсагчийн утгыг хэвлэж чадна <ul><li>printf(&quot;z= %d &quot;, z); </li></ul><ul><li>%d энэ тусгай тэмдэг ба хэвлэгдэхгүй ! </li></ul><ul><li>printf хэвлэхээр бичсэн мөрийн арын integer хувьсагчийн утгыг энд хэвлэнэ гэдгийг хэлж байна. </li></ul>
  12. 12. scanf хэрэглэгчийн өгөгдлийг авна <ul><li>scanf(&quot;%lf&quot;, &cm); </li></ul><ul><li>Хэрэглэгч давхар бодитыг оруулахыг хүлээнэ , тэгээд авсан утгаа ‘ cm ’ -д онооно . </li></ul><ul><li>Хэрэв хоёр утга авахаар бол , – scanf(&quot;%lf%lf&quot;, &var1, &var2); </li></ul>
  13. 13. prinft/scanf код хувиргагчид <ul><li>%< хувиргах код > printf/scanf –н тэмдэгт мөрөнд харгалзах төрлийн хувьсагчруу код хувиргана . </li></ul><ul><li>%c – тэмдэгт %5c эсвэл %- 5 c </li></ul><ul><li>%d – бүхэл , %u – эерэг бүхэл . </li></ul><ul><li>%f – бодит %5.2c эсвэл %- 5 .3c </li></ul><ul><li>%e – арвын зэрэгт ашиглан дүрслэх </li></ul><ul><li>%g –%f ба %e –г хослуулах </li></ul><ul><li>%lf – давхар нарийвчлал </li></ul><ul><li>%% - ‘ % ’ тэмдэгт хэвлэх (printf) </li></ul><ul><li>/* printf –н тусламжаар харж болно hevjhev.cpp*/ </li></ul>
  14. 14. Дахиад өмнөх жишээ <ul><li>/* см-г инчэд хөрвүүлэх програм */ </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>double cm, inches; </li></ul><ul><li>printf(&quot;Please enter length in centimeters: &quot;); </li></ul><ul><li>scanf(&quot;%lf&quot;,&cm); </li></ul><ul><li>inches = cm / 2.54; </li></ul><ul><li>printf(&quot;This is equal to %g inches &quot;, inches); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  15. 15. Дасгал <ul><li>Дараах програм бич - </li></ul><ul><ul><li>Долларын ханш өгөгднө </li></ul></ul><ul><ul><li>Бүхэл тооны доллар танд байгаа </li></ul></ul><ul><li>гаралт - </li></ul><ul><ul><li>Харгалзах мөнгөний хэмжээг гаргах </li></ul></ul>
  16. 16. Бодолт <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>double turgeg, xchange; </li></ul><ul><li>int dollars; </li></ul><ul><li>printf(&quot;Enter the US$-bank exchange rate: &quot;); </li></ul><ul><li>scanf(&quot;%lf&quot;, &xchange); </li></ul><ul><li>printf(&quot;Enter the amount of dollars: &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &dollars); </li></ul><ul><li>shekels = dollars * xchange; </li></ul><ul><li>printf(&quot;%d dollars = %g tugreg &quot;, dollars, tugreg); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  17. 17. int төрөл <ul><li>Хамгийн энгийн төрөл маш их хэрэглэгддэг . </li></ul><ul><li>/-2,147,483,648 аас 2,147,483,647/ 32 битийн хувьд харин 16 битэд /-32768 аас 32767/ хооронд байна . </li></ul><ul><li>Хэрэв санах ойг хэмнэхийг хүсвэл char эсвэл short -г хэрэглэж болно . </li></ul><ul><li>Хэрэв маш том тоо хэрэг болвол long хэрэглэ . </li></ul><ul><li>Бусад үед int –г хэрэглэ . </li></ul>
  18. 18. double төрөл <ul><li>Хамгийн их хэрэглэгддэг бодит төрөл . </li></ul><ul><li>1.797*10 -308 – 1.79769*10 308 хооронд байна </li></ul><ul><li>Хэрэв санах ой хугацаа хэмнэе гэвэл float –г хэрэглэ ( энэ нь 3.402*10 -38 – 3.40282*10 38 хооронд байна ) </li></ul><ul><li>Бусад үед double -г хэрэглэ . </li></ul>
  19. 19. Char нь мөн тоо ! <ul><li>char хувьсагч нь текст тэмдэгтийг хадгалахад хэрэглэгдэнэ : </li></ul><ul><ul><li>Үсэг . </li></ul></ul><ul><ul><li>цифр . </li></ul></ul><ul><ul><li>Гарны тэмдэгт . </li></ul></ul><ul><ul><li>Үл хэвлэгдэх тэмдэгт . </li></ul></ul><ul><ul><li>эсвэл (0 аас 255 эсвэл -128 аас 127) хүртлэх бага тоо . </li></ul></ul>
  20. 20. Тэмдэг үү тоо юу? <ul><li>Тэмдэг бүр тоон кодтой байна . </li></ul><ul><li>Янз бүрийн код байна : </li></ul><ul><ul><li>ASCII ( A merican S tandard C ode for I nformation I nterchange) – өргөн хэрэглэгддэг . </li></ul></ul><ul><li>ASCII кодыг бид хэрэглэнэ </li></ul>
  21. 21. ASCII хүснэгт
  22. 22. char ба number жишээ <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>char i = 'b'; </li></ul><ul><li>printf(&quot;i as a character is %c &quot;, i); </li></ul><ul><li>printf(&quot;i as an integer is %d &quot;, i); </li></ul><ul><li>printf(&quot;The character after %c is %c &quot;, i, i + 1); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  23. 23. Дахин жишээ <ul><li>/* abc дэхь үсгийн байрлал ол */ </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>char letter; </li></ul><ul><li>printf(&quot;Please enter a lowercase letter &quot;); </li></ul><ul><li>scanf(&quot;%c&quot;, &letter); </li></ul><ul><li>printf(&quot;The position of this letter in the abc is %d &quot;, letter - 'a' + 1); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  24. 24. Дасгал <ul><li>Жижиг үсгийг харгалзах том үсгэ болгох програм бич </li></ul><ul><li>( Жн ., ‘g’ ---  ‘G’) </li></ul>
  25. 25. Бодолт <ul><li>/* жижиг үсгийг том үсэг болгох */ </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>char letter; </li></ul><ul><li>printf(&quot;Please enter a lowercase letter &quot;); </li></ul><ul><li>scanf(&quot;%c&quot;, &letter); </li></ul><ul><li>printf(&quot;This letter in uppercase is %c &quot;, letter - 'a' + 'A'); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  26. 26. Арифметик үйлдэл <ul><li>Үйлдэлүүд нь програмд чухал үүрэгтэй . </li></ul><ul><li>Үйлдэлд оролцогчийг операнд гэдэг . </li></ul><ul><li>Нийтлэг үйлдэл : </li></ul><ul><ul><li>Утга оноох = </li></ul></ul><ul><ul><li>нэмэх + </li></ul></ul><ul><ul><li>хасах - </li></ul></ul><ul><ul><li>үржих * </li></ul></ul><ul><ul><li>хуваах / </li></ul></ul><ul><ul><li>Үлдэгдэлтэй хуваах % </li></ul></ul>
  27. 27. Жишээ Цифр салгагч digits.c
  28. 28. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 1350 num sum 5198 Дурын утга байна / хог /
  29. 29. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 1350 num sum 5198
  30. 30. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 1350 num sum 0
  31. 31. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 1350 num sum 0
  32. 32. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 369 num sum 0
  33. 33. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 369 num sum 0
  34. 34. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 369 num sum 9
  35. 35. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 369 num sum 9
  36. 36. <ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int sum, num; </li></ul><ul><li>sum = 0; </li></ul><ul><li>printf(&quot;Enter 3-digits number &quot;); </li></ul><ul><li>scanf(&quot;%d&quot;, &num); </li></ul><ul><li>/*extract the first digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul>Хэрхэн ажилладаг вэ? 36 num sum 9
  37. 37. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>36 num sum 9
  38. 38. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>36 num sum 15
  39. 39. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>36 num sum 15
  40. 40. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>3 num sum 15
  41. 41. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>3 num sum 15
  42. 42. Хэрхэн ажилладаг вэ? <ul><li>/*extract the second digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>num = num / 10; </li></ul><ul><li>/*extract the third digit*/ </li></ul><ul><li>sum = sum + num % 10; </li></ul><ul><li>printf(&quot;The digits sum is %d &quot;, sum); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>3 num sum 18
  43. 43. <ul><li>Ялгаатай төрлүүдийн хооронд үйлдэл хийвэл дараах байдлаар төрөл хувирна (int -> float -> double). </li></ul><ul><li>Ижил бол тэр төрөлдөө л байна . </li></ul>Ялгаатай төрлүүдийн хувьд
  44. 44. <ul><li>Жишээ - </li></ul><ul><li>3 + 4 = 7 </li></ul><ul><li>3.0 + 4 = 7.0 </li></ul><ul><li>3 / 4 = 0 !!! </li></ul><ul><li>3.0 / 4 = 0.75 </li></ul>Ялгаатай төрлүүдийн хувьд
  45. 45. <ul><li>Зарим үед шууд өөр төрөл болгох шаардлага гарна </li></ul><ul><li>Үүнийг хувьсагч cast хийж шинэ төрөл гаргах гэдэг . </li></ul><ul><li>Хэлбэр нь : (type) </li></ul><ul><li>Жишээ нь , (float)i гэж i -г float болгож байна . </li></ul>Ялгаатай төрлүүдийн хувьд
  46. 46. <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int a=1, b=2; </li></ul><ul><li>printf(&quot;%d / %d = %d &quot;, a, b, a/b); </li></ul><ul><li>printf(&quot;%d / %d = %g &quot;, a, b, (float)a / b); </li></ul><ul><li>} </li></ul>Casting хийх
  47. 47. Энд юу буруу байна вэ? <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int a = 10; </li></ul><ul><li>int b = 20; </li></ul><ul><li>printf(&quot;The average of %d and %d is %d &quot;, a, b, (a + b) * (1 / 2)); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  48. 48. Энэ ажиллах уу ? <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int a = 10; </li></ul><ul><li>int b = 20; </li></ul><ul><li>printf (&quot;The average of %d and %d is %d &quot;, a, b, (a + b)*(1.0 / 2)); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  49. 49. Overflow - орон халих жишээ <ul><li>#include <stdio.h> </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>int iA = 1000; </li></ul><ul><li>int iB = 1000000; </li></ul><ul><li>int iC = 3000000; </li></ul><ul><li>int iD = 5000000; </li></ul><ul><li>printf (&quot;%d * %d = %d &quot;, iA, iB, iA*iB); </li></ul><ul><li>printf (&quot;%d * %d = %d &quot;, iA, iC, iA*iC); </li></ul><ul><li>printf (&quot;%d * %d = %u &quot;, iA, iC, iA*iC); </li></ul><ul><li>printf (&quot;%d * %d = %d &quot;, iA, iD, iA*iD); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>

×