The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

!Microcontroller_2022

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by kayumphone13, 2022-05-22 22:32:42

ລະ

!Microcontroller_2022

ວຊິ າ ຄວບຄມຸ ຄອມພິວເຕອີ ດຸ ສາຫະກາໍ
(Hardware Programming on Embeded

System)

Upload firmware DI, AI: Switch and Sensors

COM DO, AO: Actuators

Hardware and Arduino UNO (microcontroller and microprocessor)
Software Engineer

ສອນໂດຍ ອຈ. ລາຊາໂລ ສວຸ ນັ ທອງ 1

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482
6576

ຂໍມ້ ນູ ອາຈານ ສອນ

• ສອນໂດຍ: ອຈ. ລາຊາໂລ ສວຸ ນັ ທອງ (LASZLO SUVANTHONG).
• ຈບົ ປທ ທ່ີ ີ ຄວສ, ພາກວຊິ າ ວສິ ະວະກາໍ ເອເລັກໂຕນຼ ກິ ແລະ ສສື ານໂທລະຄມົ .
ສອນປດັ ຈບຸ ນັ : ວຊິ ານາໍ ໃຊຄໍ້ ອມພິວເຕີທີ່ວົ ໄປ, ສອມ້ໍ ແປງ-ຕດິ ຕງັ້ໍ -ຄວບຄມຸ ໄຟຟໍ້າ

ແລະ ຂຽນໂປຼແກມຄອມພວິ ເຕນີ າໍ ໃຊງ້ໍ ານ.

ເບໂີ ທ: 5969 3592. 2
ເບີ WhatsApp's: 020 5482 6576.
Email: [email protected].
FB: LASZLO SUVANTHONG.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

ການໃຫຄໍ້ ະແນນ

ຕາຕະລາງ 01 ແບງີ່ ຄະແນນ ຕາຕະລາງ 02 ຈດັ ປະເພດ Grade

ລາຍການ ເປີເຊັນ ໝາຍເຫດ ເກດ ເປີເຊັນ ໝາຍເຫດ
A 80-100% ເກ່ີ ງັ
1. ຂນ້ືໍ ຫອ້ໍ ງ 15% ຂາດຮຽນບີ່ ໍເກນີ 3 ເທືອ B+ 75-79% ດຫີ ຼາຍ
2. ວຽກບາ້ໍ ນ 15% ສີ່ງົ ເປນັ ບກຸ ຄນົ ສ່ີງົ ເປນັ ໄຟ B 70-74% ດີ
3. ເສັງກາງພາກ 25% ເສັງແບບປາລາໄນ 25 ຂໍ້ C+ 65-69% ພໍໃຊໍ້
4. ເສັງທາ້ໍ ຍພາກ 40% ເສັງແບບປາລາໄນ 40 ຂໍ້ C 60-64% ອອ່ີ ນ
5. ຄະແນນ ຕອບ 5% ຍກົ ມຕື ອບຄາໍ ຖາມ ແລະ ຖກື 5 ຄງັໍ້ D+ 55-59%
100% D 50-54% ແກເ້ໍ ກດ
ລວມ F 40-49% ແກເ້ໍ ກດ
ແກເ້ໍ ກດ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 3

ແຜນການສອນສກົ ປີ 2020, ພາກຮຽນ II

ວນັ ເວລາ ຫອໍ້ ງ ຊ່ີວົ ໂມງ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 4

ຫົວຂທໍ້ ຈ່ີ ະໄດ້ຮຽນ ຊີ່ວົ ໂມງຮຽນ ໝາຍເຫດ
ຫວົ ຂໍ້

1. ທບົ ທວນຄວາມຮກູ້ໍ ານຂຽນໂປຼແກມພາສາ C. 4 ຮຽນ + ວຽກບາໍ້ ນ 1

2. ການແນະນາໍ ອປຸ ະກອນ ແລະ ວງົ ຈອນຄວບຄມຸ ລະບບົ ໄຟຟ້າໍ - 4 ຮຽນ + ວຽກບາ້ໍ ນ 2
ເອເລັກໂຕຼນກິ . 4 ຮຽນ + ວຽກບາ້ໍ ນ 3

3. ການແນະນາໍ ອປຸ ະກອນໄມໂຄຼຄອນໂທເລີ Arduino

4. ການຂຽນໂປຼແກມຄວບຄມຸ Input ແລະ Output ແບບດີຈີ 4 ຮຽນ + ວຽກບາ້ໍ ນ 4
ຕອນ.
6 ຮຽນ + ສີ່ງົ ວຽກບາ້ໍ ນ 1~5, ເສັງກາງພາກ
5. ການຂຽນໂປຼແກມຄວບຄມຸ Input ແລະ Output ແບບອານາ
ລອກ. 4 ຮຽນ + ວຽກບາ້ໍ ນ 6
4 ຮຽນ + ວຽກບາ້ໍ ນ 7
6. ການຂຽນໂປຼແກມຄວບຄມຸ ອປຸ ະກອນເຊັນເຊທີ ່ີວົ ໄປ. 4 ຮຽນ + ວຽກບາ້ໍ ນ 8

7. ການຂຽນໂປຼແກມສະແດງຜນົ ຂໍ້ມນູ ເທິງຈໍ LCD + Keypad 4 ຮຽນ + ວຽກບາ້ໍ ນ 9
7 ຮຽນ + ສີ່ງົ ວຽກບາໍ້ ນ 6 ~ 10, ເສັງທາໍ້ ຍພາກ
8. ການຂຽນໂປຼແກມຈດັ ເກບັ ຂໍມ້ ນູ ໃນ EEPROM, SD Card
ແລະ Watchdog timer.

9. ການຂຽນໂປຼແກມຄວບຄມຸ ມເໍ ຕີໄຟຟໍາ້ ກະແສກງົ .

10. ການພດັ ທະນາໂປຼເຈກທ່ີ ີຄວບຄມຸ ດວ້ໍ ຍໄມໂຄຼຄອນໂທເລີ.

ລວມ 45 ປະເມນີ ຜນົ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 5

ການກະກຽມຄວາມພອ້ ມ

1. ດາໍ້ ນຄສູ ອນ
ກອບປີ - ຕດິ ຕງັ້ໍ ໂປຼແກມ Arduino_IDE, ໂປຼແກມຈາໍ ລອງ Proteus

8 ແລະ ໂປຼແກມ fritzing

2. ດາໍ້ ນນກັ ຮຽນ-ນກັ ສກຶ ສາ:
ມຄີ ວາມຮພູໍ້ ື້ນໍ ຖານນາໍ ໃຊເໍ້ ຄີ່ ອື ງຄອມພິວເຕ,ີ ມຂີ ໍມ້ ນູ ເອກະສານປະກອບ

ການຮຽນ ແລະ ໂປຼແກມທີກຽ່ີ ວຂອໍ້ ງກບັ ການຮຽນ.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 6

1. ທບົ ທວນຄວາມຮກູ້ໍ ານຂຽນໂປຼແກມພາສາ C

• ແນະນາໍ ຄວາມຮກູໍ້ ຽີ່ ວກບັ ຄອມພິວເຕີ ແລະ ພາສາຄອມພວິ ເຕີ
• ຄວາມຮກູໍ້ ຽ່ີ ວກບັ ພາສາ C
• ເລກຖານ ແລະ ປະເພດຂອງຂໍມ້ ນູ
• ພດຶ ສະຄະນດິ ຂອງເລກຖານ
• ຂະໜາດຂອງຂໍມ້ ນູ
• ຂນັໍ້ ຕອນການຂຽນໂປຼແກມພາສາ C

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 7

1. ຄວາມຮພູໍ້ ໍ້ືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຄອມພິວເຕີແມນ່ີ ຫຍງັ ?
ຄອມພິວເຕແີ ມນີ່ ອປຸ ະກອນເອເລັກໂຕນຼ ກິ ປະເພດນີ່ ງຶ ທ່ີ ີປະດດິ ຂນ້ໍຶ ມາເສມີ ຄວາມ

ສາມາດໃນການປະມວນຜນົ ແທນມະນດຸ ເນ່ີ ອື ງຈາກຄວາມພິວເຕີສາມາດເກບັ ຂມໍ້ ນູ , ຄດິ ໄລີ່
ປຽບທຽບ ແລະ ສາມາດຊວ່ີ ຍໃນການຕດັ ສນິ ໃຈບນັ ຫາາທີ່ ີໃຊສ້ໍ ມົ ຜນົ ຄະນດິ ສາດ.
ໃນການສງ່ີ ັ ການເຄີ່ ອື ງຄອມພິວເຕຜີ ນໍູ້ າໍ ໃຊຕໍ້ າໍ ເປນັ ຕອໍ້ ງໄດປໍ້ ອ້ໍ ນຄາໍ ສງ່ີ ັ ແລະ ຄາໍ ສງ່ີ ັ ໃນລະດບັ
ພາສາເຄ່ີ ອື ງຈກັ (Machine Language) ເຊີ່ ງິ ປະກອບດວໍ້ ຍຕວົ ເລກ 0 ກບັ 1 ເທ່ີ ົານນັໍ້ .

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 8

1. ຄວາມຮພູໍ້ ໍ້ືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ອງົ ປະກອບຫຼກັ ຂອງເຄ່ີ ອື ງຄອມພິວເຕີ

1. ພາກສວີ່ ນອປຸ ະກອນ (Hard ware): ແມນີ່ ອປຸ ະກອນເອເລັກໂຕນຼ ກິ , ອປຸ ະກອນທ່ີ ີສາມາດ
ສາໍ ພດັ ໄດດ້ໍ ວ້ໍ ຍມື ແລະ ອປຸ ະກອນທີ່ ີເປັນກນົ ໄກຕາ່ີ ງໆໃຊໃ້ໍ ນເຄີ່ ອື ງຄອມພິວເຕີ
2. ພາກສວ່ີ ນໂປຼແກມ ຫຼື ຂມໍ້ ນູ (Software) ແມນ່ີ ໝາຍເຖງິ ສວີ່ ນທ່ີ ີເປັນຊຸດຄາໍ ສງ່ີ ັ ຫຼື ໂປຼ
ແກມສງ່ີ ັ ຕາ່ີ ງໆພາຍໃນລະບບົ .

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 9

1. ຄວາມຮພູ້ໍ ໍື້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ສວ່ີ ນປະກອບຫຼກັ ຂອງ Hardware
1. ໜວີ່ ຍປະມວນຜນົ ກາງ (CPU: Central Processing Unit)

ເປັນໜວີ່ ຍທີ່ ີໃຊໃ້ໍ ນການຄດິ ໄລ່ີ ແລະ ຫາຄາໍ ຕອບໂດຍນາໍ ໃຊສ້ໍ ມົ ຜນົ ທາງຄະນດິ ສາດ
ແລະ ຫຼກັ ການຕກັ ກະສາດ

ມີ 3 ຂນັ້ໍ ຕອນການເຮັດວຽກ:
• ໜວ່ີ ຍເກບັ ຂມໍ້ ນູ (Memory unit)
ແມນ່ີ ພາກສວີ່ ນທ່ີ ີໃຊເ້ໍ ກບັ ຂມໍ້ ນູ ຕາ່ີ ງໆ ເຊີ່ ງິ ມທີ ງັ ໜວ່ີ ຍຄວາມຈາໍ ຫຼງັ ແລະ ຄວາມຈາໍ ສາໍ ຮອ່ີ ງ.
• ໜວ່ີ ຍຮບັ ຂມໍ້ ນູ (Input data unit)
ແມນີ່ ອປຸ ະກອນທ່ີ ີໃຊທໍ້ ງັ ພິມຕວົ ອກັ ສອນ, ປີ່ມຸ ກດົ ທ່ີ ີຢເີູ່ ມາົ ສ, ກອ໋ ງບນັ ທຶກ, ໜາ້ໍ ຈແໍ ບບສາໍ ພດັ
ເປນັ ຕນ້ົໍ .
• ໜວີ່ ຍສີ່ງົ ອອກຂມໍ້ ນູ (Output data unit)
ແມນ່ີ ອປຸ ະກອນທີ່ ີໃຊສ້ໍ ະແດງຜນົ ໃຫຜໍ້ ໃໍູ້ ຊງໍ້ ານເຫັນທງັ ແບບຊ່ີວົ ຄາວ ແລະ ແບບຖາວອນ.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 10

1. ຄວາມຮພູ້ໍ ໍື້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຊອບແວ (Software)

ເປນັ ຊຸດຄາໍ ສງ່ີ ັ ທ່ີ ີຄວບຄມຸ ການເຮດັ ວຽກຂອງເຄ່ີ ອື ງຄອມພິວເຕີ ໂດຍຊຸດຄາໍ ສງີ່ ັ ເຫົຼານເີ້ໍ ອນ້ໍີ
ວາ່ີ : ໂປຼແກມຄອມພິວເຕ.ີ ຊອບແວມີ 2 ປະເພດຄ:ື ຊອບແວລະບບົ ແລະ ຊອບແວປະຍກຸ
ຊອບແວລະບບົ ປະຕບິ ດັ ການ (OS: Operating System)

ຊອບແວລະບບົ ແມນ່ີ ຊອບແວຫຼກັ ທີ່ ີຄວບຄມຸ ແລະ ສສື ານລະຫວາີ່ ງບນັ ດາອປຸ ະກອນ
ແລະ ໂປຼແກມພໍື້ນຖານຂອງຄອມພິວເຕີໄດເໍ້ ປັນປກົ ກະຕິ. ຊອບແວລະບບົ ທີມກີ ານຕດິ ຕງັໍ້ ໃນ
ເຄີ່ ອື ງຄອມພິວເຕີໃນປດັ ຈບຸ ນັ ໄດແໍ້ ກ:ີ່ DOS (Disk Operating system), Windows,
Unix, Mac-OS…

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 11

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C 12

ພາສາຄອມພິວເຕີ

1. ພາສາເຄີ່ ອື ງຈກັ (Machine Language):
ປະກອບດວ້ໍ ຍເລກ 0 ກບັ 1 ແມນ່ີ ໃຊເ້ໍ ພືອສງີ່ ັ ການໃຫໍ້
ເຄ່ີ ອື ງຄອມພິວເຕເີ ຮດັ ວຍກໄດທ້ໍ ນັ ທີ ແຕຈີ່ າໍ ເປນັ ຕອ້ໍ ງໄດ້ໍ
ຄດິ ໄລ.່ີ

2. ພາສາ Assembly: ແມນ່ີ ເປນັ ພາສາເຄ່ີ ງິ ເຄ່ີ ອື ງຈກັ
ທີມກີ ານກາໍ ນດົ ສນັ ຍາລກັ ຕວົ ອກັ ສອນ Neumonic
ສາມາດແປງເປນັ ພາສາເຄ່ີ ອື ງຈກັ ໄດທໍ້ ນັ ທີ ໂດຍການ
ປຽບທຽບຕາຕະລາງ ຫຼື ການໃຊ້ໍ Assembler.

3. ພາສາຂນັ້ໍ ສງູ (high level language) ເປນັ
ພາສາທ່ີ ີໃກຄໍ້ ຽງກບັ ພາສາມະນດຸ (ແຕປີ່ ະໂຫຍກ ແລະ
ຂຄໍ້ ວາມສວ່ີ ນໃຫຍ່ີ ໃຊສໍ້ ບັ ພາສາອງັ ກດິ )ເຊ່ີ ັນ: ພາສາ C,
PASCAL, FORTAN ເຊີ່ ງິ ມະນດຸ ສາມາດຂຽນໄດງໍ້ າ່ີ ຍ
ແຕຕ່ີ ອ້ໍ ງມຂີ ະບວນການແປງເປັນພາສາເຄີ່ ອື ງຈກັ ກອ່ີ ນ
ໂດຍຜ່ີານໂປຼແກມ Compiler.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

1. ຄວາມຮພູໍ້ ືໍ້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

• ການຈດັ ປະເພດຂອງປະເພດຂອງຕວົ ເລກ ແລະ ປະເພດຂອງຂມໍ້ ນູ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 13

1. ຄວາມຮພູໍ້ ໍ້ືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C 14

ລະບບົ ເລກຖານ

ເລກຖານທີ່ ີນາໍ ໃຊເໍ້ ຂາົ້ໍ ໃນການຄດິ ໄລີ່ ຫຼື ການແປເປັນລະຫດັ ຕວົ
ອກັ ສອນມີ 4 ຖານຄ:ື

1. ເລກຖານສບິ (Decimal number) ປະກອບດວ້ໍ ຍຕວົ ເລກ 0 ~
9 ໃຊໃ້ໍ ນການຄດິ ໄລເີ່ ລກປກົ ກະຕິ ຍກົ ຕວົ ຢາີ່ ງ:
(2020)10=2x103+0x102+2x101+0x100

2. ເລກຖານສອງ (Binary number) ປະກອບດວ້ໍ ຍເລກ 0 ແລະ
1 ໃຊໃໍ້ ນການສສື ານເຄ່ີ ອື ງຄອມພວິ ເຕີ ຍກົ ຕວົ ຢາີ່ ງ:
(1010)2=1x23+0x22+1x21+0x20

3. ເລກຖານແປດ (Octal number) ປະກອບດວ້ໍ ຍ 0 ~ 8 ຍກົ
ຕວົ ຢາີ່ ງ: (357)8=3x82+5x81+7x80

4. ເລກຖານສບິ ຫກົ (Hexadecimal number): ປະກອບດວ້ໍ ຍ 0
~ 9 ແລະ A (10) ~ F (15)
ຍກົ ຕວົ ຢາ່ີ ງ: (3A2)16=3x162+10x161+2x160

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

1. ຄວາມຮພູ້ໍ ້ໍືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C
ເລກຖານ 10 ເລກຖານ 2 ເລກຖານ 8 ເລກຖານ 16

0 00 0

ຕາຕະລາງ ເລກຖານທີ່ ີນາໍ ໃຊໍ້ 1 11 1
2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F 15

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

1. ຄວາມຮພູໍ້ ້ືໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ການປຽ່ີ ນແປງເລກຖານ
ການປ່ີຽນແປງເລກຖານ ຫຼື ການແປເລກຖານນ່ີ ງຶ ໄປເປນັ ເລກຖານອນື ແມນ່ີ ຂະບວນ

ການດຽວກນັ ກບັ compiler ທ່ີ ີໃຊແໍ້ ປງເລກຖານ 8, 10, 16 ໄປເປນັ ເລກຖານ 2 ເຊີ່ ງິ
ແມນີ່ ພາສາເຄ່ີ ອື ງຈກັ ມຕີ ວົ ຢາີ່ ງການແປງຄ:ື

1. ການແປງເລກຖານ 10 ໄປເປນັ ເລກຖານ 2

(25)10 → (0001 1001)2 ເອົາເລກເຕັມບວກ / 2 ເງອື ນໄຂການຫານ (LSB)
ວທິ ີການແປງ: 25 / 2 = 12.5 ເສດ = 0.5 * 2 = 1 (MSB)
12 / 2 = 6 ບ່ີ ໍເສດ = 0 * 2 =0
ບ່ີ ໍເສດ = 0 * 2 =0
6/2=3 ເສດ = 0.5 * 2 = 1
ເສດ = 0.5 * 2 = 1
3 / 2 = 1.5 ບ່ີ ໍເສດ = 0

1 / 2 = 0.5 (01 1001)2

0/2=0

ຕອບ

LSB – MSB

LSB: least-significant bit

MSB: most-significant bit

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 16

1. ຄວາມຮພູ້ໍ ້ໍືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

2. ການແປງເລກຖານ 2 ໄປເປນັ ເລກຖານ 10

(1 1001)2 → (25)10
ວທິ ີການແປງ:

(1 1001)2 = 1x24+1x23+0x22+0x21+1x20 = 1x(16)+1x(8)+0x(4)+0x(2)+1x(1)=(25)10
3. ການແປງເລກຖານ 10 ໄປເປນັ ເລກຖານ 16

(946)10 → (03B2)16 ເອົາເລກເຕັມບວກ / 16 ເງອື ນໄຂການຫານ
ວທິ ີການແປງ:
946 / 16 = 59.125 ເສດ = 0.125 * 16 = 2

(LSB)

59 / 16 = 3.6875 ເສດ = 0.6875 * 16 = (11)10=(B)16
3 / 16 = 0.1875 ເສດ = 0.1875 * 16 = 3

0 / 16 = 0 ບີ່ ໍເສດ = 0 * 16 = 0

(MSB)

ຕອບ (03B2)16
LSB – MSB

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 17

1. ຄວາມຮພູ້ໍ ືໍ້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

4. ການແປງເລກຖານ 16 ໄປເປັນເລກຖານ 2

(03B2)16 → (946)10
ວທິ ີການແປງ:

(03B2)16=0x163+3x162+(11)*161+2x160=0x4096+3x256+11x16+2x1=(946)10
5. ການແປງເລກຖານ 2 ໄປເປັນເລກຖານ 16

(1100 1110 0010)2→(CE2)16 ແຍກເລກຖານສອງອອກ ຖຽບໃສເີ່ ລກຖານ 10 ກບັ ເລກຖານ16
ວທິ ີການແປງ ເປັນ 4 ໜີວ່ ຍຕວົ ເລກ

ເພາະ 16 = 24 (1100)2=(12)10=(C)16 (MSB)
1100 (1110)2=(14)10=(E)16 (LSB)
1110 (0010)2=(2)10=(2)16
0010
ຕອບ (CE2)16

MSB - LSB

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 18

ໂປຼແກມພາສາ C ແມ່ນຫຍງັ ? 19

ພາສາ C ແມນີ່ ເປັນພາສາໂປຼແກມຄອມພິວເຕໃີ ຊ້ໍ
ສາໍ ລບັ ການຂຽນຄາໍ ສງີ່ ັ ໃນລະດບັ ໂຄງສາ້ໍ ງ (ມີ header -
body, Input variable, process ແລະ output) ເປນັ
ພາສາໂປຼແກມຈາໍ ເປນັ ຕອ້ໍ ງໄດວ້ໍ າງແຜນອອກແບບມາກອີ່ ນ
(Flowchart) ການກາໍ ນດົ ຂອບເຂດຂອງຕວົ ແປ (Variable
type)-ຄາໍ ສງີ່ ັ ຍອຍ (Function) ແລະ ການທວໍ້ ນຄາໍ ສງີ່ ັ ເພືອ
ໃຫໄ້ໍ ດຜ້ໍ ນົ ອອກມາ ເປັນພາສາທ່ີ ີພດັ ທະນາຕີ່ ໍຈາກພາສາ
Assembly (ຄາໍ ສງີ່ ັ ສງັໍ້ ການ) ສາມາດຂຽນໂດຍນາໍ ໃຊພໍ້ າສາ
ທີ່ ີອາ່ີ ນເຂ້ໍົາໃຈງາ່ີ ຍ ສາມາດໃຊເໍ້ ປັນແນວທາງໃນການຂຽນໂປຼ
ແກມພດັ ທະນາໂປຼແກມອນື ແລະ ສາມາດນາໍ ໃຊເ້ໍ ຂ້ົໍາໃນການ
ຂຽນຄາໍ ສງີ່ ັ ຄວບຄມຸ ອປຸ ະກອນແບບຂະໜາດນອໍ້ ຍໄດ.ໍ້

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

ຄວາມໝາຍ ແລະ ຄວາມສາຄັນ

ໃນປດັ ຈບຸ ນັ ພາສາ C ແມນີ່ ໄດຮໍ້ ບັ ຄວາມນຍິ ມົ
ແລະ ນາໍ ໃຊງໍ້ ານຢາີ່ ງກວາ້ໍ ງຂວາງ ເນ່ີ ອື ງຈາກເປນັ
ພາສາໂປຼແກມໃນລະດບັ ກາງທ່ີ ີຂຽນ-ອາີ່ ນເຂໍາົ້ ໃຈສາມາດ
ກວດສອບແກໄ້ໍ ຂໄດໄໍ້ ວ ແລະ ເປນັ ພາສາທີມຄີ ວາມ
ຫດົ ຍດື ສງູ ຄ:ື ສາມາດໃຊກ້ໍ ບັ ເຄີ່ ອື ງຕາີ່ ງໆໄດ້ໍ ແລະ ມີ
ຄວາມສາໍ ຄນັ ຕີ່ ໍການສກຶ ສາໂປຼແກມພາສາອນື ເຊ່ີ ັນ:

C++, Perl, Java, C#, Python, ເປັນຕນ້ົໍ .

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 20

ປະຫວດັ ຄວາມເປັນມາຂອງພາສາ C

ໃນປີ ຄສ. 1972 ທາີ່ ນ Dennis Ritchie ເປັນຜໍ້ທູ ່ີ ີຄນົ້ໍ ຄດິ ພາສາ C ຂນໍຶ້ ມາທາໍ
ອດິ ໂດຍພດັ ທະນາມາຈາກພາສາ B ແລະ ພາສາ BCPL ແຕຍ່ີ ງັ ບ່ີ ທໍ ນັ ມກີ ານນາໍ ໃຊວໍ້ ຽກ
ຢາີ່ ງກວາໍ້ ງຂວາງ ຈນົ ເຖງິ ປີ ຄສ. 1978 ທາ່ີ ນ Brian Kernighan ແລະ ທາ່ີ ນ Dennis
Ritchie ໄດຮໍ້ ວມ່ີ ກນັ ພດັ ທະນາພາສາ C ຂນ້ຶໍ ສມົ ບນູ ເອນໍີ້ ວາ່ີ : K & R (Kernighan and
Ritchie) ແລະ ຂຽນໜງັ ສຊື :ື “The C Programming Language” ແຕຍ່ີ ງັ ບ່ີ ໍໃຊເ້ໍ ປັນ
ມາດຕະຖານດຽວກນັ ດງ່ີ ັ ນນັໍ້ ປີ ຄສ. 1988 ທາີ່ ນ Brian Kernighan ແລະ ທາີ່ ນ
Dennis Ritchie ຈີ່ງຶ ໄດຮ້ໍ ວີ່ ມກບັ ANSI (American National Standards
Institute) ກາໍ ນດົ ມາດຕະຖານສະເພາະໃຊກໍ້ ບັ ຂຽນພາສາ C ຊ:ື ANSI C ສາໍ ລບັ ກາໍ ນດົ
ພາສາ C ໃນລນຸໍ້ ພດັ ທະນາຕ່ີ ໍມາ.

Dennis Ritchie 21

Brian Kernighan
instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

1. ຄວາມຮພູ້ໍ ໍື້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຍກົ ຕວົ ຢາີ່ ງ: ຂະບວນການແປງລະຫດັ ໂດຍທ່ີ ີມີ
ປມຸ ຮບັ ສນັ ຍານ Keyboard ຂມໍ້ ນູ ທີ່ ີເປັນລະຫດັ
ເລກຖານແປງເປັນພາສາເຄ່ີ ອື ງຈກັ ແລວໍ້ ແປງເປັນ
ລະຫດັ ASCII ເພອື ສະແດງຜນົ ພາບສນັ ຍາລກັ ຕວົ
ໜງັ ສເື ທິງໜາໍ້ ຈເໍ ຄ່ີ ອື ງຄອມພິວເຕີ.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 22

1. ຄວາມຮພູໍ້ ້ືໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C 23

ກດິ ຈະກາໍ ຈງ່ີ ົ ແປງຂມໍ້ ນູ ເລກຖານລງົ ໃນຕາຕະລາງຂາ້ໍ ງລຸມ່ີ ໃຫຄ້ໍ ບົ

ເລກຖານ 2 ເລກຖານ 10 ເລກຖານ 8 ເລກຖານ 16
0101 1010
0011 1111
1111 1110
1101 1011

58
41
102
25

74
35
32
20

3EF
CD
7A9
1F

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

1. ຄວາມຮພູໍ້ ໍ້ືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ພດຶ ສາຄະນິດຂອງເລກຖານ 2

ທາງພຶດຊະຄະນດິ ເລກຖານ 2 ເຊ່ນີັ ວາ່ : ການບວກ, ການລບົ , ການຄນູ ແລະ
ການຫານ. ບນັ ດາຄນຸ ລກັ ສະນະຕາ່ ງໆແມ່ນສະແດງອອກຕາມຕາຕະລາງສະແດງຂາ້ ງລຸ່ມ
ນ:ໍ້ ການບວກ
ການລບົ ການຄນູ ການຫານ

0+0=0 0-0=0 0*0=0 0/0=Null

0+1=1 0-1=1 ຈີ່ລື ບົ 1 0*1=0 0/1=0

1+0=1 1-0=1 1*0=0 1/0=inf

1+1=1 ຈ່ີບື ວກ 1 1-1=0 1*1=1 1/1=1

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 24

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 25

1. ຄວາມຮພູໍ້ ້ືໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

2. ການລບົ ເລກຖານ 2 ໃຊວ້ ທິ ການ 1 Complement
ແມນ່ ການລົບເລກຖານສອງທ່ີມຄວາມງ່າຍດາຍກວາ່ ໂດຍການ

ເອົາ 1 ມາຕ້ໍງັ ລບົ ຂອງຕວົ ລບົ ແລວ້ ເອາົ ຜົນຮບັ ມາມາບວກ ແລະ ສາລບັ
ບດິ ທເກນຕດັ ອອກມາບວກ.
ຕົວຢ່າງ: ຈົີ່ງຊອກຄາຕອບຂອງຜົນລບົ ເລກຖານສອງ 1100-101
ເອາົ ຖານ 101 ປຽ່ ນເປນັ 1 Complement ດວ້ ຍການ 1111-
0101=1010
ເອາົ 1 Complement ມາບວກ: 1100+1010=10110
ເອົາຄາ່ ເກນ 1 ມາບວກຕີ່ຄື: 0110+0001=0111
ເພາະສະນນໍັ້ : 1100-101=0111.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 26

1. ຄວາມຮພູໍ້ ້ືໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

3. ການລບົ ເລກໃຊ້ວທິ ການ 2 Complement
ແມ່ນການຫາ 2 Complement ຈາກ 1 Complement + 1 ແລະ ສາລັບບດິ ເກນແມ່ນ

ຕັດອອກໄປ.
ຕົວຢາ່ ງ: ຈງົ ຊອກຄາຕອບຂອງຜນົ ລບົ ເລກຖານສອງ 1100-101. ເອາົ ຖານ 101 ປ່ຽນເປນັ 1
Complement =1010
ຊອກຫາ 2 Complement=1 Complement + 1=1010+1=1011
ເອົາ 1100+1011=10111 ຕດັ ເອາົ ບິດເກນ 1 ສະນໍນ້ັ 1100-101=0111.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 27

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 28

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຂະໜາດຂອງຂມ້ໍ ູນເລກຖານ 2

ການຈັດຂະໜາດຂອງເລກຖານສອງສາມາດສະແດງອອກໄດຄ້ :ື
1 bit ໄດແ້ ກ່ 1 ຫຼື 0 (2 States) ແລະ 16 bit = 1 WORD
1 byte= 8bit ຍົກຕວົ ຢາ່ ງວາ່ : 0000 1111; 1010 0101; 0011 1011...

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 29

1. ຄວາມຮພູ້ໍ ້ໍືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຂະໜາດຂອງຂໍມ້ ນູ ຂອງເຄີ່ ອື ງຄອມພິວເຕີ

ໃນການເກບັ ຂມໍ້ ນູ ໃນໜວີ່ ຍຄວາມຈາໍ ເຄີ່ ອື ງຄອມພິວເຕຈີ ະມຂີ ະໜາດກາໍ ນດົ ຫຼື ຫວົ ໜວີ່ ຍຕວົ
ຄນຸ ຈາໍ ນວນຂມໍ້ ນູ ທີມກີ ານບນັ ທຶກ ແລະ ຂະໜາດພື້ໍນທີ່ ີບນັ ທຶກຂມໍ້ ນູ ທ່ີ ີເປັນພາສາເຄີ່ ອື ງຈກັ ເຊີ່ ງິ ໄດແໍ້ ກ່ີ

ຫວົ ໜວ່ີ ຍ ຂະໜາດ
1 Bit ແມນີ່ ຕວົ ເລກຖານສອງພຽງ 1 ຕວົ ເລກ
1 Byte = 8 Bit ແມນ່ີ ຕວົ ເລກຖານສອງຂະໜາດ 8 ຕວົ ເລກ
1 Word = 2 Byte = 16 Bit ແມນ່ີ ຕວົ ເລກຖານສອງຂະໜາດ 16 ຕວົ ເລກ
1 KB (Kilo Byte) = 210 = 1,024 Byte = 16,384 Bit = ແມນ່ີ ເກບັ ຄາໍ ສບັ (Word) ໄດໍ້ 512 ຕວົ
512 Word
1 MB (Mega Byte) = 210 x 210= 1,048,576 Byte = ແມນ່ີ ເກບັ ຄາໍ ສບັ (Word) ໄດ້ໍ 262,144 ຕວົ
262,144 Word
1 GB (Giga Byte) = 210 x 210 x 210 Byte ແມນີ່ ເກບັ ຄາໍ ສບັ (Word) ໄດໍ້ 134 ລາ້ໍ ນຕວົ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 30

ຂນັ້ໍ ຕອນການພດັ ທະນາພາສາ C

ຂນັໍ້ ຕອນ 01: ຂນັໍ້ ຂຽນໂປຼແກມ (source code)

ແມນ່ີ ຈາໍ ເປນັ ຕອໍ້ ງໃຊໂໍ້ ປຼແກມ (editor) ທີມສີ າມາດໃຊຂໍ້ ຽນ ແລະ ຮອງຮບັ ພາສາ
C ສາມາດຈດັ ເກບັ , ປະມວນຜນົ ພາສາ C ທີມຊີ ໄື ຟເປນັ .c ໄດໍ້
ຂນັ້ໍ ຕອນ 02: ຄອມໄພເລີ ແລະ ອິນເຕພີ ຣເີ ຕີ (Compiler and interpreter)

ແມນ່ີ ຕວົ ແປ ຫຼື ແປງຄາໍ ສງ່ີ ັ (Compiler) ທ່ີ ີຂຽນສາໍ ເລັດໄປເປັນພາສາເຄີ່ ອື ງຈກັ ທ່ີ ີ
ເຄີ່ ອື ງຄອມພິວເຕເີ ຂົາ້ໍ ໃຈໄດ້ໍ ໃນຂນັ້ໍ ຕອນນກ້ີໍ ານ Compile ຈະເຮັດການກວດສອບ
source code ວາ່ີ ມຂີ ຜໍ້ ິດພາດ ຫຼື ຂຽນຜິດບີ່ -ໍ ຂຽນບີ່ ຄໍ ບົ ຕາມມາດຕະຖານພາສາ C ບໍ
ສາມາດແຍກອອກໄດເໍ້ ປັນ 2 ກລໍ ະນຄີ :ື
ຫາກເກດີ ຂຜໍ້ ິດພາດ (Error) ໂປຼແກມຈະລາຍງານ ຫຼື ແຈງໍ້ ເປນັ ຂຄໍ້ ວາມໃຫຜ້ໍ ຂ້ໍູ ຽນເຫັນ
ທງັ ຈາໍ ນວນ, ສາໍ ນວນ ຫຼື ຕາໍ ແໜງີ່ ຈດຸ ພິດພາດເພືອຊວ່ີ ຍໃຫຜໍ້ ຂໍູ້ ຽນສາມາດກວດສອບ ແກ້ໍ
ໄຂ ຫຼື ປບັ ປງຸ ໄດ.້ໍ
ຫາກບີ່ ເໍ ກດີ ຄວາມຜິດພາດ ຄອມໄພເລຈີ ະແປງໄຟ Source code ຈາກພາສາ C ເປນັ
ພາສາເຄີ່ ອື ງຈກັ (ເປນັ ນາມສະກນຸ .obj) ແລະ ໄຟພາສາ C (.c) ເພືອໃຫໂ້ໍ ປຼແກມ
ສາມາດປະມວນຜນົ ຮບັ ໄດ.ໍ້

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 31

ອິນເຕພີ ຣເີ ຕີ (interpreter): ແມນ່ີ ມໜີ າ້ໍ ທີ່ ີແຕກຕາ່ີ ງຈາກ compiler, ອນິ ເຕພີ ຣເີ ຕີຈະເຮດັ
ໃຫໜໍ້ າ້ໍ ທີ່ ີອາີ່ ນ ແລະ ແປໂປຼແກມແຕລ່ີ ະແຖວ ພາຍຫຼງັ ທີ່ ີແປຈນົ ສດຸ ສາໍ ເລັດຈ່ີງຶ ປະຕບິ ດັ
ຕາມຄາໍ ສງີ່ ັ ໂປຼແກມນນັໍ້ ເຊ່ີ ັນໂປຼແກມ: java, perl, python, shell script, vb script.

ຂນັ້ໍ ຕອນທີ່ ີ 03: ການເຊອື ມໂຍງໂປຼແກມ (Link)

ການຂຽນໂປຼແກມພາສາ C ນນັ້ໍ ຜ້ໍຂູ ຽນໂປຼແກມບ່ີ ຈໍ າໍ ເປນັ ຕອ້ໍ ງຂຽນຄາໍ ສງີ່ ັ ຕາີ່ ງໆຂນ້ໍຶ ໃຊງໍ້ ານ
ເນ່ີ ອື ງຈາກພາສາ C ມຄີ າໍ ສງີ່ ັ ມາດຕະຖານໃຫຜໍ້ ຂ້ໍູ ຽນສາມາດໃຊງໍ້ ານໄດ້ໍ ເຊີ່ ັນ: ການສະແດງ
ຜນົ ຂຄໍ້ ວາມເຖງິ ອອກໜາ້ໍ ຈໍ ເຊີ່ ງິ ການເຊອື ມຕີ່ ໍໃນຂນັ້ໍ ນແ້ີໍ ມນີ່ ໂປຼແກມຕອ້ໍ ງໃຊ້ໍ library ກອີ່ ນ
ເຊ່ີ ງິ ຜນົ ຈາກການເຊອື ມໂຍງຈະເຮດັ ໃຫໄ້ໍ ດໄ້ໍ ຟ executable program (ໄຟນາມສະກນຸ
.exe) ທີສາມາດນາໍ ໄປໃຊງ້ໍ ານໄດ.້ໍ

ຂນັ້ໍ ຕອນທ່ີ ີ 04: ປະມວນຜນົ (run)

ເມອື ນາໍ executable program ຈາກຂນັ້ໍ ຕອນທ່ີ ີ 3 ມາປະມວນຜນົ ກ່ີຈໍ ະໄດຜໍ້ ນົ ຂອງໂປຼ
ແກມອອກມາ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 32

ຂນັໍ້ ຕອນການພດັ ທະນາພາສາ C

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 33

1. ຄວາມຮພູ້ໍ ໍື້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ກດົ ເກນການນາໍ ໃຊຄາໍ ສງ່ີ ັ ພາສາ C

1. ໃຊເໍ້ ຄ່ີ ອື ງໝາຍຈາໍ ຈດຸ (; semi colon) ເປັນເຄ່ີ ອື ງໝາຍສນໍິ້ ສດຸ ຂອງ 1 ແຖວຄາໍ ສງີ່ ັ
ໃຊຕໍ້ ວົ ອກັ ສອນນອໍ້ ຍສາໍ ລບັ ໃຊເ້ໍ ອນີໍ້ ຄາໍ ສງີ່ ັ (statement)
1. ໃຊເຄ່ີ ອື ງໝາຍຈດຸ (, comma) ສາໍ ລບັ ການຂນັໍ້ ຕວົ ແປ ແລະ ຕວົ ລບັ
2. ຫາຄາໍ ສງ່ີ ັ ໃດມຄີ າໍ ສງ່ີ ັ ສວີ່ ນຍອຍ (Sub program) ຫຼາຍຄາໍ ສງ່ີ ັ ໃຫໃໍ້ ຊເໍ້ ຄີ່ ອື ງໝາຍປີກາ

{ } ສາໍ ລບັ ການກາໍ ນດົ ຂອບເຂດ.
ການຂຽນໂປຼແກມຈາໍ ເປນັ ຕອໍ້ ງມກີ ານສະແດງຜນົ ໄປນາໍ ເພືອໃຫຜ້ໍ ຂໍູ້ ຽນໂປຼແກມເຂົໍ້າໃຈວາ່ີ ໂປຼ
ແກມເຮັດວຽກໄດແໍ້ ນວໃດ, ຂມໍ້ ນູ ທ່ີ ີນາໍ ໃຊເ້ໍ ປັນປະເພດໃດ ແລະ ຜນົ ໄດຮ້ໍ ບັ ເປັນແນວໃດ.
ຄາໍ ສງ່ີ ັ ທ່ີ ີໃຊສໍ້ າໍ ລບັ ການສະແດງຜນົ ເທິງໜາ້ໍ ຈໃໍ ນພາສາ C ແມນ່ີ ນຍິ ມົ ຂຽນດວໍ້ ຍ printf
ແລະ ຄາໍ ສງີ່ ັ ທ່ີ ີໃຊສ້ໍ າໍ ລບັ ຮບັ ຂມໍ້ ນູ ນຍິ ມົ ຂຽນດວໍ້ ຍ scanf.

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 34

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

• ຍກົ ຕວົ ຢາ່ີ ງການຂຽນພາສາ C ສະແດງຜນົ ຂມໍ້ ນູ ໃນໂປຼແກມອອກທາງໜາໍ້ ຈສໍ ະແດງຜນົ .

Code Compile and Run output (ກດົ ປ່ມີຸ F11)
//HelloWorld.c Hello world
#include<stdio.h> --------------------------------
main() Process exited after 0.04145
{ seconds with return value 0
printf("Hello world");
Press any key to continue . . .
}

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 35

1. ຄວາມຮພູ້ໍ ືໍ້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຕວົ ຢາ່ີ ງ ຈງີ່ ົ ຂຽນຄາໍ ສງ່ີ ັ ໂປຼແກມເພືອສະແດງຜນົ ຂຄໍ້ ວາມເທິງໜາ້ໍ ຈໍ

Code Compile and Run output (ກດົ ປມ່ີຸ F11)
#include <stdio.h> Hellow world at Faculty of Engineer
#include <conio.h> Now, we are learing Programming
main() --------------------------------
{ Process exited after 0.0392 seconds with return value 0
Press any key to continue . . .
printf("Hellow world");
printf(" at Faculty of Engineer\n");
printf("Now, we are learing Programming");
}

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 36

1. ຄວາມຮພູໍ້ ືໍ້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ໂຄງສາ້ໍ ງຂອງພາສາ C

1. ສວີ່ ນຫວົ ຂອງໂປຼແກມ (Header Program)

ສວີ່ ນຫວົ ຂອງໂປຼແກມນເີ້ໍ ອນ້ໍີ ວາີ່ : Preprocessing Directives ໃຊລໍ້ ະບເຸ ພືອບອກ
ໃຫ້ໍ Compiler ກະທາໍ ການໃດໆກອີ່ ນການແປງຄາໍ ສງີ່ ັ ໂປຼແກມຂຽນເປນັ stdio.h (ຫຍໍມ້ າ
ຈາກ: Standard Input Output) ເຊີ່ ງິ ເປັນ Library ມາດຕະຖານຂອງພາສາ C ຈາໍ
ເປນັ ຕອໍ້ ງຂຽນກອີ່ ນໂປຼແກມພາສາ C ທກຸ ໆຄງັໍ້ .

ໄລບາລີພ້ນືໍ ຖານ ໜາໍ້ ທ່ີ ີການນາໍ ໃຊ້ໍ
#include <stdio.h> ແມນີ່ ໃຊສໍ້ າໍ ລບັ ການເຮັດວຽກພືໍ້ນຖານຂອງຄາໍ ສງ່ີ ັ ທີ່ວົ ໄປເຊີ່ ັນ: ຄດິ ໄລ່ີ

#include <conio.h> ພນືໍ້ ຖານ, ການສສຶ ານ

#include <math.h> ແມນີ່ ຄາໍ ສງີ່ ັ ຈດັ ການໜາ້ໍ ຈໍ ແລະ ຄາໍ ສງ່ີ ັ ຮບັ ແລະ ການສະແດງຜນົ
ເພີ່ ມີ ເຕີມ
#include <string.h>
ແມນ່ີ ໃຊເ້ໍ ອນໍ້ີ ຄາໍ ສງີ່ ັ ທາງຄະນດິ ສາດໄດເໍ້ ຊີ່ ັນ: sin, cos, tan, log,
abs ເປນັ ຕນໍ້ົ

ເພືອເຮັດໃຫໂ້ໍ ປຼແກມສາມາດຈດັ ການກບັ ຂຄໍ້ ວາມຕວົ ອກັ ສອນຍາວໄດ້ໍ

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 37

1. ຄວາມຮພູໍ້ ້ໍືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

2. ພາກສວີ່ ນຂອງຟງັ ຊນັ (Function, ຄາໍ ສງີ່ ັ ລະບໜຸ າໍ້ ທີ່ ີ)
ຟງັ ຊນັ ຫຼກັ ຂອງພາສາ C ແມນ່ີ main() ເຊ່ີ ງິ ໂປແກມຼ ພາສາ C ທກຸ ໆໂປຼແກມຈະຕອໍ້ ງມຟີ ງັ ຊນັ ໂຕນຢ້ໍີ ໃໍູ້ ນໂປຼ
ແກມສະເໝີ ໂດຍທ່ີ ີຂອບເຂດຂອງຟງັ ຊນັ ຈະໝາຍດວໍ້ ຍສນັ ຍາລກັ { ແລະ }
Argument ແມນ່ີ ຕວົ ຮບັ ຄາ່ີ ເຂາົໍ້ ມາໃນຟງັ ຊນັ
Parameter ແມນ່ີ ຄາີ່ ທ່ີ ີສ່ີງົ ໄປຫາຟງັ ຊນັ
ຍກົ ຕວົ ຢາີ່ ງ 01: ການຂຽນໂປຼແກມນາໍ ໃຊ້ໍ argument ແລະ parameter

Code Compile and Run output (ກດົ ປ່ມີຸ F11)
#include <stdio.h> z
void show (char a) --------------------------------
{ Process exited after 0.04385 seconds with return value 0
Press any key to continue . . .
printf("%c", a);
}
main(void)
{

show('z');
}

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 38

1. ຄວາມຮພູ້ໍ ືໍ້ນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ພາກສວີ່ ນລາຍລະອຽດ
ການຂຽນຄາໍ ອະທິບາຍ (Comment)

ການຂຽນຄາໍ ອະທິບາຍແມນ່ີ ສວ່ີ ນທີ່ ີເປນັ ໝາຍເຫດຂອງໂປຼແກມ ຂຽນໄວເ້ໍ ພອື ໃຫຜ້ໍ ຂ້ໍູ ຽນໃສຂີ່ ໍຄ້ ວາມອະທິບາຍລງົ
ຕາມແຖວ ຫຼື ຂຽນແຊກລງົ ຕາມ source code ເຊີ່ ງິ ຄອມໄພເລຈີ ະຂາໍ້ ມ ຫຼື ຍກົ ເວັນໍ້ ພາກສວນີ່ ທ່ີ ີເປັນ
Comment ທີ່ ີລະບໄຸ ວຕໍ້ ອນຕນ້ົໍ ຄອມເມນັໍ້ ໃນພາສາ C ມີ 2 ແບບຄ:ື
ຄອມເມນັ້ໍ ແບບຂຽນແຖວດຽວ ໃຊເໍ້ ຄີ່ ອື ງໝາຍ //
ຄອມເມນັ້ໍ ແບບຂຽນຫຼາຍແຖວ ໃຊເ້ໍ ຄີ່ ອື ງໝາຍ /* ແລະ */

Code Compile and Run output (ກດົ ປມ່ີຸ F11)
//Single line Comment C Programming
#include <stdio.h> --------------------------------
main(void) Process exited after 0.07403
{ seconds with return value 0
Press any key to continue . . .
/*
Multiple
line
Comment
C programing
*/
}

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 39

1. ຄວາມຮພູ້ໍ ື້ໍນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

ຂຄໍ້ ວນປະຕບິ ດັ ຫຼກັ ການຂຽນໂປຼແກມພາສາ C
•ຊທື ີ່ ີຂຽນໃນໂປຼແກມແມນ່ີ ບີ່ ໍຊາ້ໍ ກບັ ຄາໍ ສະຫງວນ (reserved word) ໃນພາສາ C ໄດແ້ໍ ກີ່

asm default for pascal switch _ds

auto do goto register typedef _es

break double huge return union _ss

case else if short unsigned

cdecl enum int signed void

char extern nterrupt sizeof volatile

char extern nterrupt sizeof voltatile

const far ong static while

continue float near struct _cs

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576 40

1. ຄວາມຮພູໍ້ ້ໍືນຖານຄອມພິວເຕີ ແລະ ໂປຼແກມພາສາ C

• ຊຕື າີ່ ງໆທີ່ ີຕງັໍ້ ຂນຶໍ້ ຈະເປັນແບບ case sensitive ໝາຍຄວາມວາ່ີ ຕວົ ອກັ ສອນໃຫຍ່ີ ກບັ ຕວົ ອກັ ສອນນອ້ໍ ຍ
ແມນີ່ ຕວົ ແປຄນົ ລະອນັ ເຊ່ີ ັນ: TEST, Test, TesT, test ເປນັ ຊອື າ່ີ ນດຽວກນັ ແຕຄີ່ ນ້ໍົ ລະຕວົ ແປ.

• ຊຈື ະຕອໍ້ ງຂນຶ້ໍ ຕນ້ໍົ ດວ້ໍ ຍຕວົ ອກັ ສອນ ຫຼື ເຄີ່ ອື ງໝາຍ underscore (_) ເທ່ີ ົານນັ້ໍ ຈະຂຽນຊທໍ້ື ີ່ ີເປນັ ຕວົ ເລກບ່ີ ໍ
ໄດໍ້ ແຕພ່ີ າຍໃນສາມາດພມິ ຕວົ ອກັ ສອນແຊກໄດເໍ້ ຊ່ີ ັນ: TEST_VALUE, HELLO123, h1_T2,
_UserName ເປັນຕນໍ້ົ .

• ການຕງັໍ້ ຊຈື ະຍະວາງ ຫຼື ມຊີ ອີ່ ງວາງໃນຊບື ີ່ ໍໄດ້ໍ

• ການຕງັໍ້ ຊຈື ະໃຊສ້ໍ ນັ ຍາລກັ ພເິ ສດບ່ີ ໍໄດເ້ໍ ຊີ່ ັນ: $, @, #, &, *, ~, +, -, /, %,… ເປັນຕນໍົ້

• ຍກົ ຕວົ ຢາີ່ ງການຕງັ້ໍ ຊທື ່ີ ີຖກື ແລະ ບີ່ ໍຖກື

ຊທື ີ່ ີຕງັ້ໍ ຖກື ຕອໍ້ ງ ຊທື ີ່ ີຕງັໍ້ ບ່ີ ໍຖກື ຕອ້ໍ ງ
A, a, x, y, k, i, j $hello

b1, x1, g1 User name

app_passwd 3people

_testValue while, for, if

TRUE data%type 41

instructer: Mr. LASZLO SUVANTHONG, What's App: 020 5482 6576

4. ການນາໍ ໃຊຕ້ໍ ວົ ແປ ແລະ ປະເພດຂອງຂໍມ້ ນູ

ຕວົ ແປຂມໍ້ ນູ ຫຼື ຕວົ ເກບັ ຂມໍ້ ນູ (Variables)
ຕວົ ແປ ຫຼື ຕວົ ລບັ ແມນີ່ ກາໍ ນດົ ຂນ້ໍຶ ເພືອໃຊເ້ໍ ກບັ ຂມໍ້ ນູ ເຊີ່ ງິ ການປະກາດຕວົ ແປຂນ້ໍຶ ມາໃຊງ້ໍ ານ
ຈະເປນັ ໄປຕາມຫຼກັ ການຕງັ້ໍ ຊທື ີ່ ີເຄຍີ ໄດກ້ໍ າີ່ ວໃນຫວົ ຂຜໍ້ ີາ່ ນມາ.

ປະເພດຂອງຂມໍ້ ນູ (Data Type)
ປະເພດຂອງຂມໍ້ ນູ ແມນີ່ ສ່ີ ງິ ທ່ີ ີໃຊສໍ້ າໍ ລບັ ການກາໍ ນດົ ລກັ ສະນະ ແລະ ຂອບເຂດຂອງຂໍ້
ມນູ ນນັໍ້ ໆ ໂດຍທ່ີ ີຂມໍ້ ນູ ທີມຊີ ະນດິ ຂອງຂມໍ້ ນູ ທີ່ ີແຕກຕາ່ີ ງກນັ ກີ່ຈໍ ະເກບັ ຂມໍ້ ນູ ໄດໃ້ໍ ນລກັ ສະນະ
ດຽວກນັ ແລະ ຂອບເຂດຂອງຂມໍ້ ນູ ທ່ີ ີເກບັ ໄດບໍ້ ີ່ ໍເທ່ີ ົາກນັ ໃນພາສາ C ສາມາດແບງີ່ ເປນັ 4
ແບບຄ:ື
ຊະນດິ ຂອງຂມໍ້ ນູ ແບບ void (0 byte)
ຊະນດິ ຂມໍ້ ນູ ເປນັ ຕວົ ອກັ ສອນ (Character)
ຊະນດິ ຂມໍ້ ນູ ເປນັ ເລກຈາໍ ນວນເຕັມ (integer)
ຊະນດິ ຂມໍ້ ນູ ແບບເລກທດົ ສະນຍິ ມົ (float, double)

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 42
5482 6576

4. ການນາໍ ໃຊຕ້ໍ ວົ ແປ ແລະ ປະເພດຂອງຂມໍ້ ນູ

• ຊະນດິ ຂໍມ້ ນູ ແບບ Void (0 byte)

• ຊະນດິ ຂໍມ້ ນູ ແບບນຈໍີ້ ະບີ່ ໍມຈີ າໍ ນວນ ເຊີ່ ງິ ເຮາົ ບີ່ ໍໄດໃ້ໍ ຊຊ້ໍ ະນດິ ຂມໍ້ ນູ ແບບ void ນກໍ້ີ່ າໍ ນດົ ໃຊກ້ໍ ບັ ຕວົ ແປ
ແຕຈີ່ ະນາໍ ໃຊຊ້ໍ ະນດິ ຂໍມ້ ນູ ປະເພດນກ້ໍີ າໍ ນດົ ໄວໃ້ໍ ນຟງັ ຊນັ ໃນກລໍ ະນທີ ີ່ ີບີ່ ໍຕອໍ້ ງໃຫຟ້ໍ ງັ ຊນັ ມກີ ານຮບັ ຄາີ່ ໃດໆ ເຂໍົ້າ
ມາ ຫຼື ສີ່ງົ ຄາີ່ ໃດໆກບັ ເຊ່ີ ງິ ເຄຍີ ໄດກໍ້ າີ່ ວໄວໃໍ້ ນບດົ ທີ 1.

• ຊະນດິ ຂມໍ້ ນູ ແບບຕວົ ອກັ ສອນ (Character) (1 byte)

• ແມນ່ີ ຊະນດິ ຂມໍ້ ນູ ປະເພດ char ເຊ່ີ ງິ ເປັນຊະນດິ ຂມໍ້ ນູ ໃນຮບູ ແບບນຈໍ້ີ ະສາມາດເກບັ ຂມໍ້ ນູ ໄດ້ໍ 1 ຕວົ
ອກັ ສອນ (1 Words) ເຊ່ີ ງິ ລະຫດັ ເປັນເລກຖານສອງຂອງ 1 ຕວົ ອກັ ສອນແມນີ່ ເປັນໄປຕາມມາດຕະຖານ
ຂອງ ASCII: American Standard Code for Information Interchange.

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 43
5482 6576

4. ການນາໍ ໃຊຕ້ໍ ວົ ແປ ແລະ ປະເພດຂອງຂມໍ້ ນູ

ເຊ່ີ ງິ ຈາກການທ່ີ ີຄອມພິວເຕເີ ກບັ ຂໍມ້ ນູ ຄາີ່ ໃນລະບບົ ເລກຖານສອງ ຄາ່ີ ໃນລະບບົ ເລກຖານ ຄາີ່ ໃນລະບບົ ເລກຖານສິບເມອື
ສບິ ເມອື ເປັນຂໍ້ມນູ ເປັນ ເປັນຂໍມ້ ນູ ປະເພດ signed
ຊະນດິ ຕວົ ອກັ ສອນໃນຮບູ ແບບຂອງ
ລະຫດັ ASCII 1 Byte ນນັ້ໍ ເຮັດໃຫ້ໍ ຊະນດິ unsigned char char
ຂມໍ້ ນູ ຊະນດິ ຕວົ ອກັ ສອນທຽບໄດກ້ໍ ບັ ຂໍ້
ມນູ ຊະນດິ ເລກຈາໍ ນວນເຕັມມຄີ າ່ີ ຕງັ້ໍ ແຕ່ີ 0000 0000 0 0
0 ~ 255 (ສາໍ ລບັ ຂໍມ້ ນູ ຊະນດິ ຕວົ
ອກັ ສອນແບບບ່ີ ໍຄດິ ເຄີ່ ອື ງໝາຍສນັ ຍາ 0000 0001 1 1

ລກັ ຫຼື unsigned char) ແລະ 0000 0010 2 2
ມຄີ າ່ີ ຕງັໍ້ ແຕີ່ -128 ~ 127 (ສາໍ ລບັ ຂໍ້
ມນູ ຊະນດິ ຕວົ ອກັ ສອນແບບບ່ີ ໍຄດິ ເຄ່ີ ອື ງ 0000 0011 3 3

ໝາຍ ຫຼື unsigned char) …… …

0111 1100 124 124

0111 1101 125 125

0111 1110 126 126

0111 1111 127 127

1000 0000 128 -128

1000 001 129 -127

1000 0010 130 -126

1000 0011 131 -125

…… …

1111 1100 252 -4

1111 1101 253 -3

1111 1110 254 -2

C Programming for Eng, BY LASZ1L1O11SU1V1A11NTHONG, WhatA2p5p5's: 020 -1 44
5482 6576

4. ການນາໍ ໃຊຕ້ໍ ວົ ແປ ແລະ ປະເພດຂອງຂມໍ້ ນູ

• ຊະນດິ ຂອງຂມໍ້ ນູ ແບບເລກຈາໍ ນວນເຕັມ (integer number)

• ເປນັ ຂມໍ້ ນູ ຕວົ ເລກບີ່ ໍມເີ ລກຫຼງັ ຈດຸ ທດົ ສະນຍິ ມົ ເຊ່ີ ັນ: 0, 5, 30, 65, 111,… ເຊີ່ ງິ ໃນ
ການຂຽນໂປຼແກມພາສາ C ມຢີ ີູ່ 3 ປະເພດຕາມຂາໍ້ ງລມຸີ່ :

ປະເພດ ການພິມລະບຸ ຈາໍ ນວນ Byte ຄາ່ີ ຕາໍ ສດຸ ຄາ່ີ ສງູ ສດຸ
Short int Signed 2 (16 Bit) -32,768 32,767
2 (16 Bit) 65,535
Int (16 Bit) Unsigned 2 (16 Bit) 0 32,767
Signed 2 (16 Bit) -32,768 65,535
Int (32 Bit) 4 (32 Bit) 2,147,483,647
Unsigned 4 (32 Bit) 0 4,294,967,295
long int Signed 4 (32 Bit) -2,147,483,648 2,147,483,647
4 (32 Bit) 4,294,967,295
Unsigned 0
Signed -2,147,483,648

Unsigned 0

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 45
5482 6576

4. ການນາໍ ໃຊຕ້ໍ ວົ ແປ ແລະ ປະເພດຂອງຂມໍ້ ນູ

• ຊະນດິ ຂມໍ້ ນູ ແບບເລກທດົ ສະນຍິ ມົ (floating-point)
• ເປັນຊະນດິ ຂມໍ້ ນູ ຕວົ ເລກແບບມເີ ລກຫຼກັ ຈດຸ ສາມາດເອໍນ້ີ ວາ່ີ ຈາໍ ນວນຈງິ (Real

number) ເຊີ່ ັນ: 0.125, 1.414, 1.732, 19.1 ເປັນຕນໍ້ົ ເຊ່ີ ງິ ໃນການຂຽນໂປຼແກມ
ພາສາ C ມຢີ ູີ່ 3 ປະເພດຕາມຂາ້ໍ ງລມຸ່ີ :

ປະເພດ ຈາໍ ນວນ Byte ຄາ່ີ ຕາໍ ສດຸ ຄາີ່ ສງູ ສດຸ
Float 4 (32 Bit) 3.4x10-38 3.4x1038
Double 8 (64 Bit)
Long Double 10 (80 Bit) 1.7x10-308 1.7x10308

3.4x10-4932 3.4x104932

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 46
5482 6576

5.ຕວົ ດາໍ ເນນີ ການ ແລະ ການຄດິ ໄລທີ່ າງຄະນດິ ສາດ

• ການດາໍ ເນນີ ການວທິ ີທາງຄະນດິ ສາດ

• ແມນ່ີ ໝາຍເຖງິ ການນາໍ ເອົາຕວົ ຖກື ດາໍ ເນນີ ມາ 2 ໂຕມາເຊອື ມເຂາໍົ້ ກນັ ໂດຍມຕີ ວົ ດາໍ ເນນີ ການມາກຽວ
ຂອໍ້ ງໃນການແກໂໍ້ ຈດທາງຄະນດິ ສາດ ຫຼື ເພອື ຫາຜນົ ຄາໍ ຕອບ ຕາມຕາຕະລາງ.

Operator ຄວາມໝາຍ ຕວົ ຢາ່ີ ງ ຜນົ ໄດຮໍ້ ບັ

+ ບວກ 9+4 13

- ລບົ 9–4 5

* ຄນູ 9*4 36

/ ຫານ 9/4

% ຫານເອົາເລກເສດ 9%4

(Modulo)

++ ເພ່ີ ີມຄາີ່ ຂນ້ືໍ 1 b = a++ a=10;

ໝາຍຄວາມວາີ່ b=a++;

b=a b=11.

a = a + 1 (a++)

-- ລດຸ ຄາີ່ ລງົ 1 x = y++ y=5;

ໝາຍຄວາມວາີ່ x=y++;

y=a x=6;

x = y - 1 (x--) 47
C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020

5482 6576

5.ຕວົ ດາໍ ເນນີ ການ ແລະ ການຄດິ ໄລທີ່ າງຄະນດິ ສາດ

ຕາຕະລາງ ລາໍ ດບັ ການເຮດັ ວຽດຂອງຕວົ ດາໍ ເນນີ ການ

ລາໍ ດບັ ຄວາມສາໍ ຄນັ ເຄ່ີ ອື ງໝາຍຕວົ ດາໍ ເນນີ
()
ພິຈາລະນາກອີ່ ນ
++ , --
ພິຈາລະນາຫຼງັ - (ເຄີ່ ອື ງໝາຍລບົ ໜາ້ໍ ຕວົ ເລກ)

* , /, %
+,-

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 48
5482 6576

5.ຕວົ ດາໍ ເນນີ ການ ແລະ ການຄດິ ໄລທ່ີ າງຄະນດິ ສາດ

ຕວົ ຢາ່ີ ງການເຮດັ ວຽກຂອງ Logic Operator

ຜນົ ໄດຮໍ້ ບັ ຈາກການນາໍ ໃຊຕ້ໍ ວົ ດາໍ ເນນີ ການຕກັ ກະສາດ ແລະ ຕວົ ຢາ່ີ ງ ຄາ່ີ ທາງຕກັ ກະສາດ
ຂໍມ້ ນູ 30 > 20 T (1)
200 >= 200 T (1)
A B A && B A || B !A 10 == 10 T (1)
TTTTF 10 != 10 F (0)
TFFTF ((10*7/5)&&0 F (0)
FTFTT 10 && 1 T (1)
FFFFT ((2!=1) || 0) ຈະໄດ້ໍ 1 || 0 T (1)
((2==1) || 0) ຈະໄດ້ໍ 0 || 0 F (0)
T (1)
!0 F (0)
!1 F (0)
!!!! 0 F (0)
!!!! (! 1)

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 49
5482 6576

5.ຕວົ ດາໍ ເນນີ ການ ແລະ ການຄດິ ໄລທີ່ າງຄະນດິ ສາດ

#include<stdio.h> Logical Operation
main(){ Result of expression 30 > 20 is 1
printf("Logical Operation\n"); Result of expression 200 >= 200 id 1
printf("Result of expression 30 > 20 is %d\n", 30>20); Result of expression 10 == 10 is 1
printf("Result of expression 200 >= 200 id %d\n", 200>=200); Result of expression 10 != 10 is 0
printf("Result of expression 10 == 10 is %d\n", 10==10); Result of expression ((10*7/5)&&0) is 0
printf("Result of expression 10 != 10 is %d\n", 10!=10); Result of expression 10 && 1 is 1
printf("Result of expression ((10*7/5)&&0) is %d\n",
((10*7/5)&&0)); Result of expression ((2 != 1)||0) is 1
printf("Result of expression 10 && 1 is %d\n\n", 10&&1); Result of expression ((2 == 1)||0) is 0
printf("Result of expression ((2 != 1)||0) is %d\n", ((2 != 1)||0)); Result of expression !0 is 1
printf("Result of expression ((2 == 1)||0) is %d\n", ((2 == 1)||0)); Result of expression !1 is 0
printf("Result of expression !0 is %d\n", !0); Result of expression !!!!0 is 0
printf("Result of expression !1 is %d\n", !1); Result of expression !!!!(!1) is 0
printf("Result of expression !!!!0 is %d\n", !!!!0);
printf("Result of expression !!!!(!1) is %d\n", !!!!(!1)); --------------------------------
} Process exited after 0.04092 seconds with return value 0
Press any key to continue . . .

C Programming for Eng, BY LASZLO SUVANTHONG, WhatApp's: 020 50
5482 6576


Click to View FlipBook Version