Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
บทท 1
การตดตงโปรแกรม รจกกบภาษา C
ภาษา C เปนภาษาทเกาแกถอกำาเนดมายาวนาน โดยแตเดมนนถกพฒนาขนเพอเปนภาษาสำาหรบระบบปฏบตการยนกซ เนองจากในขณะนนระบบปฏบตการยนกซเขยนดวยภาษาแอสเซมบล(Assembly) ซงเปนภาษาทยดตดกบฮารดแวรของเครอง ดงนนการทจะยายระบบปฏบตการไปใชกบเครองอนจงเปนเรองทเปนไปไมไดเลย ดงนนภาษา C เปนภาษาทไมยดตดกบฮารดแวรจงถกพฒนาขนมา ไมไดจำากดอยเพยงแคงานสรางระบบปฏบตการเทานนแตสามารถใชกบงานอน ๆ ได เชน การควบคมการทำางานของอปกรณ การจดการฐานขอมล สรางโปรแกรม
คดคนครงแรกโดย Dennis Ritchie ทหองแลบเบล (Bell Labs) ในป ค.ศ.1972 โดยไดแนวคดมาจากภาษา BCPL พฒนาขนโดย มารตน รชารด และ ภาษา B ทเขยนขนโดย Ken Thomson เพอนำามาพฒนาตอเปน ภาษา C จงป ค.ศ.1978 ไดรบการเผยแพรอยางเปนทางการ
จดเดนของภาษา C
ภาษา C เปนภาษาทมการกำาหนดมาตรฐานสำาหรบเครองคอมฯ ทกรน และระบบปฏบตการทกชนด
เปนโปรแกรมขนาดเลก ทำางานไดเรว
มโครงสรางภาษาทด
สามารถเขยนคำาสงใหควบคมฮารดแวรบางสวนได
มฟงกชนสำาเรจรปใหเลอกใชมาก
การสงงานคอมฯ ดวยภาษาโปรแกรม
ภาษาทคอมฯ เขาใจคอภาษาเครอง ซงจะอยในรปแบบของรหสเลขฐานสอง เรยงตอกน ซงยากทมนษยจะเขาใจ จงไดมการพฒนาภาษาทสอสารกบคอมพวเตอรทมนษยเขาใจโดยใชอกษรภาษาองกฤษ มากำาหนดเปนรปแบบคำาสง และมตวกลางแปลภาษานนเปนภาษาเครองอกท
ระดบของภาษา
ภาษาระดบตำา เปนภาษาทใกลเคยงกบภาษาเครองมากทสด แตเขยนยาก รปแบบคำาสงจดจำาและทำาความเขาใจไดยาก นอกจากนยงยดตดกบชนดของเครองคอมฯ ตวอยางเชน LOD R1,C MUL R1 D
ภาษาระดบสง เปนภาษาทใกลเคยงกบภาษาทใชสอสารกนตามปกต คำาสงตางๆ มกเปนคำาทมความหมายในภาษาองกฤษ ตวอยางเชน ภาษา Pascal Fortran Basic ตวอยางเชน Begin end write read
ภาษาระดบกลาง
เนองจากภาษาระดบตำา และสงมขอดขอเสยตางกน ภาษา C จงพฒนาโดยปรบปรงขอเสยและนำาขอดมาใช โดยมภาษาทจดจำาไดงาย ทำางานไดเรว ตดตอกบอปกรณฮารดแวรไดโดยตรงเหมอนภาษาระดบตำา
การใชโปรแกรม Crimson Editor เราสามารถใชโปรแกรม editor ไดหลายโปรแกรม เชน Edit plus,
Notepad, Crimson Editor ฯลฯ ในทนจะกลาวถงการใชโปรแกรมCrimson Editor version 3.40 เปนโปรแกรม editor ซงเปนโปรแกรม
ประเภท Freeware ทพฒนาขนมาเพอรองรบการเขยนโปรแกรม ในภาษา
MUL R1 D STO ADD
ตวกลางแปลภาษา
11001010 11011001 00110011
ตางๆ เชน C, C++, Java, Perl, MatLab โปรแกรม เขยนโดย Ingyu Kang (Copyright 2001) (http://www.crimsoneditor.com/)
โปรแกรมทเขยนขนมาจะตองถกแปล (compile) กอนทจะนำาไปประมวล ผล (execute) เพอใหไดผลลพธทตองการ
ตวแปลภาษาทใชเปลยน โปรแกรม ใหเปนภาษาเครอง (compiler) ทใชในทนไดแก Borland C++ complier, version 5 (Free version)
Crimson Editor มสวนประกอบทนาสนใจดงน
เมน Help เปน เมนทเรยก เอกสารทอธบาย อธบาย การทำางานของ เมน ตางๆ
เมน File เปนเมนทชวยจดการดานแฟมขอมล โดยมเมนยอยทสำาคญดงน New เปนการเตรยมหนาตางใหมสำาหรบการเขยนโปรแกรม Open เปนการเปดโปรแกรมทมอยแลวในDisk เพอนำามาแกไข Save เปนการบนทกโปรแกรมลงใน Disk ภายใตชอโปรแกรมเดม Save As เปนการบนทกโปรแกรมลงในหนวยความจำาสำารองภายใตชอใหม Exit เปนการออกจากโปรแกรม
เมนShort cut bar
บรเวณเขยนโปรแกรม
Directory window
หนาตางผลลพธ
เมน Edit เปนเมนทชวยดานการแกไขขอความ โดยมเมนยอยทสำาคญดงน
Cut เปนการลบขอความทไฮไลท เพอยายไปยงตำาแหนงอนในโปรแกรม
Copy เปนการคดสำาเนาขอความทไฮไลทเพอคดลอกไปยงตำาแหนงอนในโปรแกรม
Paste เปนการนำาเอาขอความทลบหรอคดลอกมาวางยงตำาแหนงทกำาหนด
Delete เปนการลบขอความทไฮไลท
เมน Search เปน เมนทชวยในการคนหาคำา ใน แฟมขอมล โดยเฉพาะ แฟมขอมลทกำาลงแกไข
Find เปนการหา คำาทตองการ ในแฟมขอมลทกำาลงทำางาน
Replace เปนหา และเปลยน คำาท ตองการ เปนคำาใหมตามตองการ ในแฟมขอมล
ทกำาลงทำางาน Go to เปนการไปท บรรทดทระบ
เมน View เปนการกำาหนดวธการแสดงผลหนาจอของ
โปรแกรม โดยสามารถแสดง/ ไมแสดง Directory window, output window, เลขท
บรรทด และกำาหนด การแสดง ผลอนๆ เชน ขนาด และ รป
แบบตวอกษร
เมน Tool ใชสำาหรบ เรยก โปรแกรมอนๆ เพอใชงาน MS-DOS Shell เมน จะเปด
Window ใหมสำาหรบ MS-DOS การใชงานรวมกบ Borland C++ complier จะ
ตองกำาหนด การเรยกใช โดย จะกลาวตอไป
การ Borland C++ Compiler และ เรยกใช โปรแกรม เมอมตวโปรแกรม ภาษา C++ ซงถกเขยนโดย Editor เปน Text
แลว โปรแกรมนน สามารถนำามา Compile โดย Complier ซง เปน โปรแกรม ท อาน โปรแกรม (text) แลว แปลงเปน โปรแกรม ท ทำางานได Borland C++ Compiler สามารถเรยกใชใน MS-DOS mode
(MS-DOS window) โดย คำาสง bcc32 ตามดวย ชอโปรแกรม (text) ทจะ Compile โดย โปรแกรม ตอง มนามสกลเปน .cpp ทงน
Complier จะตรวจสอบ ความถกตองของโปรแกรม ทางภาษา (Syntax) ถา ไมมขอผดพลาด Complier จะ สราง โปรแกรม ใหม โดยมชอ
เหมอน โปรแกรม ตนฉบบ แตม นามสกล เปน .exe โปรแกรมทถก สรางขนมาน จะสามารถเรยกใชใน MS-DOS mode โดยการเรยกชอโปรแก
รมนนๆ เปลยน ตำาแหนงปจจบนของการทำางาน ใหอยใน directory เดยว
กบทตวโปรแกรม อย โดยคำาสง cd ตามดวยชอ directory สงcompile โดยใช คำาสง bcc32 ตามดวยชอ โปรแกรม ถาไมมขอผด
พลาด สงให โปรแกรมทำางานโดย เรยกชอ ทงน โปรแกรม crimson editor สำาหรบเครองในหอง lab ไดถก
ตงคา Tool ใหสามารถเรยกใช bcc32 จาก Tool -> compile โดยจะ แสดงผลการทำางาน และขอมลของขอผดพลาด ถาม ท Output window
การตดตง Borland compiler และ Crimson Editor เรยกโปรแกรม BorlandfreecommandLinetools.exe เพอตดตง ทงนควรตดตงโปรแกรมท c:\borland\BCC55 ตามคาทโปรแกรม install
ระบ ทงน หลงจาก โปรแกรมตดตงทำางานเสรจแลว ให สราง ไฟล ดงตอไปน ไวใน c:\borland\BCC55\bin
bcc32.cfg โดย ม ขอความตอไปน-I"c:\Borland\Bcc55\include"-L"c:\Borland\Bcc55\lib" ilink32.cfg โดย ม ขอความตอไปน-L"c:\Borland\Bcc55\lib" run.bat โดย มขอความตอไปน%1
เพม c:\Borland\Bcc55\bin ลงใน PATH การเพม PATH ใน Windows 98 , Windows ME สามารถทำาไดโดย แกไข autoexec.bat ซงจะอยท C:\
โดยใชคำาสง edit autoexec.bat แลวทำาการเพมPATH = %PATH%;c:\borland\bcc55\binPATH = %PATH%;c:\borland\bcc55\bin
สวน Windows version อนๆ (NT, 2000, XP) มวธการทตางออกไปดงน เพม c:\Borland\Bcc55\bin ลงใน PATH การเพม PATH ใน Windows NT
, Windows 2000 , Windows XP สามารถทำาได โดยเพม;c:\borland\bcc55\bin ใน Environment variable ตามขนตอนน
1. เขาไปใน control panel เลอก system2. หนาตาง System Properties เลอก tab “Advanced”3. เลอก environment variable
4. กดปม edit เพอแก user variables ทชอ PATH เพม ;c:\borland\bcc55\bin
5. กดปม edit เพอแก System variables ทชอ PATH เพม ;c:\borland\bcc55\bin
ตดตง Crimson Editor เมอตดตงเรยบรอยแลว เรยกโปรแกรมCrimson Editor แกไข Tool -> Configure user tool ดงนMenu text CompileCommand C:\Borland\BCC55\Bin\bcc32.exe
Argument $(FileName)Initial dir. $(FileDir)
เชค ถกใน Capture outputและ
สำาหรบ Windows 98 , Windows MEMenu text RunCommand C:\Borland\BCC55\Bin\run.batArgument $(FileTitle)Initial dir. $(FileDir)
สำาหรบ Windows NT , Windows 2000 , Windows XP professionalMenu text RunCommand C:\winNT\System32\cmd.exeArgument /c”$(FileTitle)”Initial dir. $(FileDir)
สำาหรบ Windows XP Home editionMenu text RunCommand C:\WINDOWS\system32\cmd.exeArgument /k”$(FileTitle)”Initial dir. $(FileDir)
บทท 2โครงสรางภาษา C++
องคประกอบหลกโปรแกรมภาษา C++
source code ของโปรแกรมมนามสกลเปน .CPP โปรแกรมจะตองม main() ฟงกชนเสมอ หากมคำาสง คำาสงตางๆจะตองอยในขอบเขต { } ของ main()
เทานน หากมคำาสง คำาสงทกคำาสงจะตองจบดวยเครองหมาย ;
(semicolon) เสมอ ในแตละบรรทด ขอความทตามหลง // ถอวาเปน comment หากมการเรยกใชคำาสงหรอฟงกชนใน library จะตองมการ
include ไฟล header ( นามสกล .h)ทถกตองดวย โปรแกรมจะคนคาใหแก OS เมอจบการทำางานหรอไมคนกได เชน
ในตวอยางโปรแกรมทสนสด เมอจบการทำางานจะไมมการคนคา หากโปรแกรมมการคนคาเมอจบการทำางาน คาทคนจะตอง
เปนจำานวนเตมเทานน โดยจะตอง ระบขางหนา main() ดวย int บรรทดสดทายของ main() ดวยคำาสง return ตามดวย
คาจำานวนเตมทตองการสง ภาษา C++ มลกษณะเปน case sensitive ดงนน main กบ Main
จะถอวาเปนคนละตวกน
#include <iostream.h>// This program prints// “Hello World.”int main(){
cout << “Hello World.\n”;return 0;
}
main() {}
หรอ
main(){}
โปรแกรมทสนทสด ลกษณะโปรแกรมทวไป
คำาสงการนำาเขา และ แสดงผลThe Output Operator: <<
มกใชรวมกบ cout ซงเปน output stream คำาสง cout เปนคำาสงในการแสดงคาออกทางจอภาพ รปแบบ (syntax)
cout << exp << exp << … << exp; จะทำาการสงคาของนพจนทางขวาไปยง output stream เรยงไป
เรอยๆ ตวอยางขางลางจะไดผลลพธเหมอนกน
cout << “Hello, world.\n”;cout << “Hello, “ << “wor” + “ld.\n”;
The Input Operator: >>>> เรยกวาเปน operator ใชรวมกบ cin เพอรบขอมลตวอยางเชนcin >> age >> cost;cin >> age;cin >> cost;
ตวแปรและการประกาศ ตวแปร (variable) เปนสญลกษณหรอชอท programmer ตงขนมา
ใชแทนตำาแหนงในหนวยความจำาเพอเกบคาหรอขอมลตางๆทใชในโปรแกรม
หลกการตงชอตวแปร► ตองขนตนดวยตวอกษร► ภายในชอตวแปรตวอกษรหรอตวเลขหรอเครองหมาย _► หามเวนชองวางในตวแปร► การใชตวอกษรตวพมพเลกหรอตวพมพใหญ ถอวาเปนคนละตวเชน
Name กบ name► หามตงชอซำากบคำาสงวน เชน case char int auto
C++ ตวแปรจะตองถกประกาศ (declare) กอนจงจะสามารถนำาไปใช เกบคาตางๆได เชน
int n;int x, y;char ch;string str;
อกขระ(character) เปนตวอกษรตวเดยวอยในเครองหมาย ‘ ’ (single quote) เชน‘r’ ‘A’ ‘5’ และ ‘?’ เปนตน
ขอความ(string literals) ประกอบดวยอกขระหลายตวอยในเครอหมาย “ ” เชน“Hello,” “Sawasdee” และ “ ”
ตารางแสดงชนดของตวแปรตาง ๆ
ตวอยางท 1 int a ;หมายความวา ประกาศตวแปร a เปนตวแปรทใชสำาหรบเกบคาทเปนเลขจำานวนเตมทมคาอยระหวาง -35768 ถง 32767ตวอยางท 2 int num1=8;หมายความวา ประกาศตวแปร num1 เปนตวแปรทเกบคาตว
เลขจำานวนเตม โดยใหคาเรมตนเทากบ 8ตวอยางท 3 float money,price ;หมายความวา money และ price เปนตวแปรทใชสำาหรบเกบคาทเปนเลขทศนยม โดยจะใหตำาแหนงทศนยมไดไมเกน 6 หลกตวอยางท 4 char ch=’A’หมายความวา ประกาศตวแปร ch เปนตวแปรทเกบคาตวอกษร
เพยง 1 ตว คอ ตวอกษร ‘A’
ตวอยางท 5 unsigned long int test;หมายความวา ประกาศตวแปร test เปนตวแปรทใชสำาหรบเกบคาทเปนเลขจำานวนเตม แบบยาวทไมคดเครองหมาย
ถาเรากำาหนดคาของตวแปรไมถกตองเชน# include <iostream.h> main( ) {
unsigned int n;cin >> n ;cout << n << endl;
}
ใหนกเรยนใสคาเปน -8 ลองดผลลพธ
การเกดขอผดพลาด (Errors) ม 3 แบบ► ผดพลาดจากรปแบบหรอขอกำาหนดของภาษา(Syntax errors)
เชน ลมเครองหมาย “ ” หรอ {
► การตความหมายผด Semantic errors ถาม semantic error จะ สามารถรนโปรแกรมไดสมบรณ คอมพวเตอรไมสามารถตรวจพบ
ขอความผดพลาดใดๆ แต มนจะไมสามารถทำางานทถกตองได เนองจากต ความหมายของโปรแกรมผด การระบ semantic error
สามารถทำาไดยาก เชน area = 2*pi*radius สตรการหาพนทของวงกลม จรง ๆ แลว
ตองเปนarea = pi*radius*radius
► ความผดพลาดขณะรน (Run-time errors) เกดจากคำาสงไม สามารถประมวลผลได เชน
float b = 0; float c = 2/b; ตวหารไมสามารถเปน 0 ได
การหาความยาวของ string literal จะตอง include <string.h>
#include <iostream.h>#include <string.h>int main(){cout << strlen("Hello, World.\n") << '\n';cout << strlen("Hello, World.") << '\n';cout << strlen("Hello, ") << '\n';cout << strlen("H") << '\n';cout << strlen("") << '\n';return 0;}
ผลรน14
13710
การกำาหนดคา จะใชเครองหมาย assignment ( = )
รปแบบ syntaxvariable = expression;
ตวอยางท 6#include <iostream.h> // An example to illustrate assignment:int main(){ int n; n = 66; cout << n << endl;}
ตวอยางท 7#include <iostream.h>// This shows how to initialize // variable as they are declared:int main(){ int george = 44; int martha =33; int sum = george + martha; cout << george << " + " << martha << " = " << sum <<
endl; return 0;}
ผลรน44 + 33 = 77
ตวอยางท 8#include <iostream>#include <string>using namespace std;int main (){ char letter1, letter2; string lastName;
cout << "Enter 2 initials and last name: "; cin >> letter1 >> letter2 >> lastName; cout << "Hello " << letter1 << ". " << letter2 << ". "
<< lastName << "! "; cout << "We hope you enjoy studying C++." << endl; return 0;}
ตวอยางท 9#include <iostream.h>int main(){ int num1 = 200; cout<<num1<<endl; float num2 = 10.33745; cout<<num2<<endl; char letter = 'A'; cout<<letter<<endl; string message="THAILAND"; cout<<message<<endl;}
โอเปอเรเตอรทางคณตศาสตรอยางงายโอเปอรเรเตอร ความหมาย ตวอยาง
+ Add m + n- Subtract m - n- Negate -n* Multiply m * n
/ Divide m / n% Remainder m % n
ตวอยางท 8#include <iostream.h> // Tests arithmetic operators:int main(){ int m = 38, n = 5; cout << m << " + " << n << " = " << (m + n) << endl; cout << m << " - " << n << " = " << (m - n) << endl; cout << " -" << n << " = " << (-n) << endl; cout << m << " * " << n << " = " << (m * n) << endl; cout << m << " / " << n << " = " << (m / n) << endl; cout << m << " % " << n << " = " << (m % n) << endl; return 0;}
ผลรน38 + 5 = 4338 - 5 = 33- 5 = - 538 * 5 = 1938 / 5 = 738 % 5 = 3
ลำาดบการทำางานของ โอเปอเรเตอรมดงน() 1+ -(คาบวก,คาลบ) 2* / % 3+ -(บวก,ลบ) 4
ใน 8 ชนดน วงเลบทำางานเปนอนดบแรก ตอดวย คาบวก คาลบ ไป จนถง บวก ลบ เปน ลำาดบสดทาย
* / % มลำาดบการทำางานเทากน + - (บวก, ลบ) กมลำาดบการทำางาน เทากน โดยจะทำาจากซายไปขวาซงถาเจอ โอเปอเรเตอร ไหนกจะทำางานโอ
เปอเรเตอรนนกอน คาบวกและคาลบใชกบจำานวนเตมบวกหรอจำานวนเตมลบตามลำาดบ โดยท
คาบวกเราอาจไมตองใสกไดตวอยางท 9
#include"iostream.h"int main(){cout << "(5 + 7) * 3 = " << (5 + 7) * 3 << endl;
cout << " 5 + 7 * 3 = " << 5 + 7 * 3 << endl;cout << " 5 * 7 + 3 = " << 5 * 7 + 3 << endl;cout << " 5 + 7 * 3 - 10 = " << 5 + 7 * 3 - 10 << endl;cout << " 5 + 7 * 3 / 2 = " << 5 + 7 * 3 / 2 << endl;cout << " 21 / 2 = " << 21 / 2 << endl;return 0;}
Output(5 + 7) * 3 = 36 5 + 7 * 3 = 26 5 * 7 + 3 = 38 5 + 7 * 3 - 10 = 16 5 + 7 * 3 / 2 = 15 21 / 2 = 10
อธบาย Source code
บรรทดท 4: เปนการสงใหพมพขอความ "(5 + 7) * 3 = " และกสงให แสดง ผลการคำานวณของ (5 + 7) * 3 ซง ผลลพธ คอ 36 โดยทได จากเอา 5 + 7 กอนไดผลลพธคอ 12 จากนน ไปคณกบ 3
บรรทดท 5: กคลายๆกบบรรทดท 4 แตเปลยนเปน 5 + 7 * 3 ผลลพธ คอ 26 สาเหตทได 26 เพราะวา โอเปอเรเตอร * มความสำาคญกวา โอ
เปอเรเตอร + โปรแกรมเลยทำาการคำานวณ 7 * 3 กอน ซงได 21 แลวก เอาไปบวก 5 จงได 26
บรรทดท 6: 5 * 7 + 3 ผลลพธ คอ 38 ซงกคำานวณตามแบบปกต บรรทดท 7: 5 + 7 * 3 –10 ผลลพธ คอ 16 ไดจากการเอา 7 ไปคณ
กบ 3 กอน ถงแมวาจะมการคำานวณ 5 +7 อยกอนกตามแต แตลำาดบ การทำางานของ โอเปอเรเตอร * ถอวา ตองทำากอน โอเปอเรเตอร +
บรรทดท 8: 5 + 7 * 3 / 2 ผลลพธ คอ 15 ไดมาจาก เอา 7 ไปคณ กบ 3 กอน ได 21 แลวคอยนำาไป / 2 ได 10 แลวจงนำาไปบวกกบ 5 ได
15 จะเหนไดวา 7 * 3 / 2 โปรแกรมจะไมทำาการ เอา 3 ไปหาร 2 กอน แลวคอยนำาไปคณกบ 7 เพราะวา * กบ / ถอวามลำาดบการทำางานเทากน
แต ในทน * มากอนโดยทการทำางานของโปรแกรมจะเรยงลำาดบจาก ซายไปขวา
บรรทดท 9: แสดงขอความแลวกผลลพธ ของ 21 / 2 ไดผลลพธ คอ10 เพราะการหาร โดยทเอาจำานวนเตมหารจำานวนเตม คำาตอบทไดจะเปน
จำานวนเตม โดยทจะไมมเศษ โอเปอเรเตอร increment และ decrement
เครองห การ ตวอย ความหมาย
มาย ดำาเนนการ างการใชงาน
++ เพมคาทละหนง
(Increment)
y = ++x บวกคาในตวแปร x เพมขน 1 กอนทจะกำาหนดคา x ใหกบตวแปร y
y = x++ กำาหนดคา x ใหกบตวแปร y กอนทจะบวกคาในตวแปร x เพมขน 1
-- ลดคาทละหนง
(Decrement)
y = --x ลบคาในตวแปร x ลง 1 กอนทจะกำาหนดคา x ใหกบตวแปร y
y = x-- กำาหนดคาในตวแปร x ใหกบตวแปร y
กอนทจะลดคา x ลง 1
ตวอยางท 10Int x = 5, y = 5, z;main(){Z=++x; // บวกคาของ x ขน 1 กอนทกำาหนดคาให
z ดงนนx และ z มคาเปน 6
Z=y++; // กำาหนดคา y ให z กอนทจะบวกคากอนทจะบวก
คาy เพมขน 1 ดงนน z = 5 y = 6
}
ตวอยางท 11
#include <iostream.h>int main(){ int m = 66, n; n = ++m; cout << "m = " << m << ", n = " << n << endl; n = m++; cout << "m = " << m << ", n = " << n << endl; cout << "m = " << m++ << endl; cout << "m = " << m << endl; cout << "m = " << ++m << endl; return 0;}
นพจนแบบ assignment รวม • ใช assignment รวมกบโอเปอรเรเตอรอน• syntax:
variable op= expression;• equivalent to
variable = variable op expression;• ตวอยางเชน
n += 8; => n = n+8;m %= 2 => m = m%2;
ตวอยางท 11#include <iostream.h>int main(){ int n = 44; n +=9; cout << n << endl; n -= 5; cout << n << endl; n *= 2; cout << n << endl; return 0;}
ผลรน534896
นพจนตรรกศาสตรนพจนตรรกศาสตรเปนนพจนทใหผลลพธเปนคาตรรกะ ( ไม true ก
เปน false) เปนนพจนทใชกำาหนดเงอนไขการทำางานของคำาสงควบคมoperator ทกระทำาใหเกดคาตรรกะ แบงออกเปน 2 ประเภท1. Relational Operators ไดแก
Relational Operator ความหมาย Relational Operator ความหมาย == เทากน != ไมเทากน < นอยกวา <= นอยกวาหรอ
เทากบ > มากกวา >= มากกวาหรอ
เทากบ
2. Logical Operators ไดแกLogical Operators ความหมาย
| | (OR) นพจนจะเปน true ถาคาของ operand ตวใดตวหนงหรอทงสองตวเปน true
&& (AND) นพจนจะเปน true ถาคาของ operand ทง สองตวเปน true
! (NOT) ใชเปน prefix เพอกลบคาของ operand เปนคา ตรงขาม
ตวอยางการใชงาน เชนa<3 ถา a มคาเปน 5 ประโยคนจะไดผลลพธเปน 0 (เทจ) a>b ถา a=10 b=8 ประโยคนจะไดผลลพธเปน 1 (จรง)
c == ‘A’ ถาตวแปร c เกบคาอกขระ A ผลลพธจะไดคาจรง k != -2 ถาตวแปร k –เกบคาตวเลข 2 ผลลพธจะได
คาเทจa&&ba และ b ถาคาความจรงของ a เปนจรง และ คาความ
จรง b เปนจรงผลลพธทไดจะมคาความจรงเปนจรงa || b a หรอ b ถาคาความจรงของ a เปนเทจ และ คาความ
จรง b เปนเทจผลลพธทไดจะมคาความจรงเปนเทจ
แบบฝกหดบทท 2
1. กำาหนดตวแปรใหดงนInt num1=220;
Float num2=50.37
Char letter =’D’
Char Msg[6]=”satit”
String Msg1=”I love You”
1.1 จงเขยนคาของตวแปรทกตวโดยใหขนบรรทดใหม1.2 เขยนคำาสงใหแสดงผลบวก และ ผลหาร ของ num1 และ
num2
2. ใหนกเรยนเขยนโปรแกรม เพอแปลงคาจากหนวยฟต เปน นว (12 นว เปน 1 ฟต) โดยใหโปรแกรมรบคาจากผใชเปนฟต แลวแปลง
คาจากฟตเปนนว
3. ใหเขยนโปรแกรมเครองคดเงนทอนของรานคา โดยใหผใชกรอกราคาสนคาและจำานวนเงนทลกคาจายเขามาจากนนโปรแกรมจะทำาการ
คำานวณเพอหาจำานวนเงนทอน พรอมกบแสดงผลออกทางหนาจอ
บทท 3
การเลอกทำา
คำาสงการเลอกทำางานตามเงอนไข คำาสง if
รปแบบ: if ( boolean expression) statementผลการทำางาน: สวน statement จะถกกระทำาถาหากวาคานพจนทอย
หลงคำาวา if มคาเปน true แตถานพจนดงกลาวมคา เปน false โปรแกรมกจะขามสวนทเปน statement นไป
หมายเหต: คำาสง statement เปนไดทง simple statement และ compound statement
ตวอยาง if (i == 1) cout << "i is one";
และif (i == 1) {
cout << "i is one";}
คำาสง if else
รปแบบ: if ( boolean expression) statement1 else statement2
ผลการทำางาน: จะมการทำางานตามคำาสง statement1 ถาคานพจนท อยหลงคำาวา if มคาเปน true มฉะนนกจะทำางานตาม
คำาสง statement2หมายเหต: - คำาสง statement เปนไดทง simple statement และ
compound statementตวอยาง if (i == 1)
cout << "i is one";else
cout << "i is not equal to one";และ
if (i == 1) {cout << "i is one";
} else {cout << "i is not equal to one";
} และ
if (i==1) {cout << "i is one";
} else if (i == 2) {cout << "i is two";
} else {cout << "i is not equal to one or two";}
ตวอยางท 1#include <iostream.h>;void main(){ float point; cout << "Enter your examination points: "; cin >> point; if (point >= 50) cout << "You passed, congratulation\n" << endl;
}
ตวอยางท 2#include <iostream.h>;void main(){ float point; cout << "Enter your examination points: "; cin >> point; if (point >= 50) cout << "You passed, congratulation\n" << endl; else cout << "You didn't pass,Sorry\n" << endl;}
ตวอยางท 3// A program to calculate paychecks
#include <iostream>
using namespace std;
void main(){ float hours, pay, rate, overtime; cout << "Enter hours and rate: "; cin >> hours >> rate; overtime = hours - 40; // employee working more than 40 hours receive overtime if (overtime > 0.0) pay = (40.0 * rate) + (overtime * 1.5 * rate); else pay = (hours * rate); cout << "pay is " << pay; if (overtime > 0.0) cout << " overtime worked" << endl; else cout << " no overtime worked" << endl;}
ผลรนEnter hours and rate: 46.0 6.25pay is 306.25 overtime workedEnter hours and rate: 38.0 6.25pay is 237.5 no overtime worked
Statement blocks • เราสามารถรวมกลมประโยคคำาสงภายใต if ดวย { }• Statements ภายในเครองหมาย { } จะทำางานเปนกลมคำาสง
เดยวกน• การใสเครองหมาย { } จะเปนการแบงกลมคำาสงใหอานงายขน• หลงคำาสง if else หากมหลาย statements ตองใส { } • ดตวอยางท 4
ตวอยางท 4#include <iostream>
using namespace std;
void main(){ float hours, pay, rate, overtime; cout << "Enter hours and rate: "; cin >> hours >> rate;if (hours > 40) { overtime = hours - 40.0; pay = (40.0 * rate) + (overtime * 1.5 * rate); cout << " pay is " << pay << " overtime worked" << endl; } else { pay = (hours * rate); cout << "pay is " << pay << " no overtime worked" << endl; }}
Flow of if - else if statementif (expression1) { statement1;
statement2;}else if (expression2){ statement1;
statement2;}else if (expression3){ statement1; statement2;}else (expression..n){ statement.1;
statement2;}
ผงงาน โครงสรางการควบคม if แบบหลายทางเลอก
ตวอยางท 5if ( grade >= 90 )cout << "A";else if ( grade >= 80 )cout << "B";else if ( grade >= 70 )cout << "C";else if ( grade >= 60 )cout << "D";elsecout << "F";
คำาสง if ซอน if (nested if)
คำาสง if ซอน if จะใชกบปญหาทมเงอนไขซบซอน อยางเชน กำาหนดวาตองเปนจำานวนคและมคาไมเกน 20 หรอ เงอนไขตองเปน
เพศหญงอายไมเกน 30 ป เปนตน ซงคำาสง if ซอน if กคอคำาสง
จรง
เทจ
จรง
จรง
เทจ
เทจ
คาของนพจนทดสอบท 1
กลมคำาสง 1
คาของนพจนทดสอบท 2
กลมคำาสง 2
...
คาของนพจนทดสอบท N
กลมคำาสง N
กลมคำาสง N+1
if ตามปกต แตเรานำามาเขยนซอนกนมากกวา 1 ชน ซงมรปแบบการ เรยกใชงาน ดงน
if (condition-1) {
if (condition-2) {
... if (condition-n)
statement; }
}
ผงงาน โครงสรางการควบคม if ซอน if
ตวอยางท 6#include <iostream>main(){ int num;
cout<<“Enter your number : ”; cin>>num; if (num>=20)
{ if (num<=30)
คาของนพจนทดสอบท 1
คาของนพจนทดสอบท 2
...คาของนพจนทดสอบท N
ทำางานคำาสง
เทจ
จรง
เทจ
เทจ จรง
จรง
{ if (num%2==1)
cout<<“Right number\n”; else
cout<<“Wrong number\n”; }
else cout<<“Large number\n”;
} else cout<<“Small number\n”;
}
ประโยคควบคม switch
ในการเขยนโปรแกรมภาษา C มประโยคควบคม switch ทชวยอำานวยความสะดวกในการเขยนโปรแกรมเพอสรางทางเลอกหลายทาง นอกเหนอจากกรณการใช if ดงกลาวมาแลว ประโยคควบคม switch มลกษณะการทดสอบเงอนไขกบคาคงท เพอสรางทางเลอก โดยจะทำาการทดสอบทละคา
รปแบบการใชคำาสง switchswitch(variable) {
case constant-1 :statement sequence;
break;case constant-2 :
statement sequence;
ผงงาน สำาหรบประโยคควบคม switch
ตรวจ สอบ
variable
ทำางานตามคำา สงของ case 1
ทำางานตามคำา สงของ case 2
ทำางานตามคำา สงของ case 3
ทำางานตามคำา สงของ
default
ตรงกบconstant-1
ตรงกบconstant-2
ตรงกบconstant-3
ไมตรงกบ
constant ใด
break;...
case constant-n :statement sequence;break;
default : statement sequence;}
• variable : ตวแปรททำาหนาทควบคมการทำางานของคำาสง switch ซงจะเปนตวแปรชนด int, char โดยคาของตวแปรนถาตรงกบ
constant ทอยใน case ใดกจะทำาคำาสงทอยใน case นนนนเอง• constant-1, constant-2, ...constant-n : เปนเงอนไขทจะให
เลอกไปทำางานตามทตองการ โดยจะตองมคาเปนคาคงท ชนดint, char เทานน
• statement sequence : กลมของคำาสงทตองการใหทำางานตาม เงอนไขแตละ case
• break : เปนคำาสงสำาหรบออกจากการทำางานของ switch โดยให ออกจากบลอกของ case แลวไปทำาคำาสงทอยตอจาก switch
• default : ในกรณทคาของตวแปร variable ไมตรงกบคาของconstant ใน case ใดเลย ตวแปรภาษา C กจะมาทำางานตามคำาสง ใน default กอนทจะออกไปทำางานตามคำาสงอนทอยตอจาก
switch
ตวอยางท 7#include <iostream.h>)main(){ char grade;
cout<<"Enter your grade : "; cin>>grade;
switch (grade) { case 'A':
cout<<"100 - 80 points\n"; break;
case 'B': cout<<"79 - 70 points\n"; break;case 'C': cout<<"“69 - 60 points\n"; break;case 'D': cout<<"59 - 50 points\n"; break;default : cout<<"49 - 0 points\n";}
}ผลการรนEnter your grade : C69 - 60 points
ตวอยางท 8#include <iostream.h>)main(){ char grade;
cout<<"Enter your grade : "; cin>>grade;
switch (grade) { case 'A':
cout<<"100 - 80 points\n"; case 'B':
cout<<"79 - 70 points\n";case 'C': cout<<"“69 - 60 points\n";case 'D': cout<<"59 - 50 points\n";default : cout<<"49 - 0 points\n";}
}
ผลการรนEnter your grade : C69 - 60 points59 - 50 points49 - 0 points
แบบฝกหดบทท 3
1. จงเขยนโปรแกรม โดยใชคำาสง if หาเสนรอบวงและพนทของรป วงกลม ซงจะแสดงรายการใหผใชเลอกวาจะหาคาของเสนรอบวงหรอพนท
โดยรบคารศมของวงกลมเขามาคำานวณ โดยมผลแสดงดงน1. Circumference of the circle2. Area of the circle
Enter your choice 1 or 2 :………….
2. จงเขยนโปรแกรมโดยใชคำาสง If เพอทำาการตด grade ตามชวงของ คะแนนขางลาง โดยรบขอมล คะแนนสอบของ นกเรยน ทลงเรยน
วชา ดงน :- คะแนน
Grade 0-49
0 50-59
1 60-69
2 70-79
3 80-100 4
หากคาทปอนไมอยในชวงดงกลาวใหบอกวา Invalid
3. จากขอ 2 ใหใชคำาสง case
4. จงเขยนโปรแกรมโดยใชคำาสง case เพอสรางเมนใหคำานวณหาพนท ของวงกลม หรอหาเสนรอบวงโดยรบคาตวเลขรศมจากผใช
บทท 4การทำาซำา
การทำาซำา การควบคมการทำางานโดยมคำาสงใหทำาซำา หรอการวนรอบ (loop)
ในภาษาซ ไดแก คำาสงWhile, do-while และ for ดงน
คำาสง Whileใหนกเรยนพจารณาโปรแกรมสำาหรบหาปรมาตรของทรงกลมเมอตองการ
ปอนรศมได 3 ครง#include <iostream.h>void main(){
float volume, radius; cout << "Enter a radius: ";
cin >> radius;volume = (4.0 / 3.0) * radius * radius * radius * 3.14;cout << "the volume is " << volume << endl;cout << "Enter a radius: ";cin >> radius;volume = (4.0 / 3.0) * radius * radius * radius * 3.14;cout << "the volume is " << volume << endl;cout << "Enter a radius: ";cin >> radius;volume = (4.0 / 3.0) * radius * radius * radius * 3.14;cout << "the volume is " << volume << endl;
}
ถานกเรยนตองการปอนรศมหลาย ๆ ครงแบบไมจำากดจะทำาอยางไร ในภาษาซจะมคำาสงเพอชวยใหมการทำาซำา ดวยการใชคำาสง While โดยจะเรมตรวจสอบเงอนไข ถาเปนจรงจะทำาตามคำาสง เมอเสรจจะวนกลบไปตรวจสอบใหมจนกวาเงอนไขจะเปนเทจจงจะทำาคำาสงถดไปรปแบบการเรยกใชงาน:while (expression){ statement1;; statement2; statement3;.. statement..n;}
statement จะทำางานซำาจนกระทง expression เปนเทจ
แผนผงการทำางานแบบ While
โดยปกตแลวโปรแกรมสวนใหญจะถามการวนรอบจะแบงเปนวนรอบแบบไมทราบจำานวนรอบ และแบบวนรอบททราบจำานวนรอบทแนนอน ซงโปรแกรมทไมทราบจำานวนรอบทแนนอนจะกำาหนดใหโปรแกรมหยดเมอปอนคาใดคาหนง
ตวอยางท 1
#include <iostream.h>using namespace std;void main(){
float volume, radius;cout << "Enter radius values (-1 to stop): ";cin >> radius;while (radius > 0.0){volume = (4.0 / 3.0) * radius * radius * radius * 3.14;cout << "the volume is " << volume << endl;
cin >> radius;}
}
เราสามารถกำาหนดจำานวนการวนรอบทแนนอนไดดงตวอยาง โปรแกรมน จะทำาการคำานวณทงสนจำานวน 5 ครง เมอ คาตวแปร Count จาก 0 เพม
ขนครงละ 1 จนถง 4 เมอ count เปน 5 โปรแกรมจะหยดการทำางาน
ตวอยางท 2#include <iostream.h>void main(){
float count;count = 0.0;while (count < 5.0){
cout << "HELLO" << endl;count = count + 1;
}}ผลรนHELLOHELLOHELLOHELLOHELLO
ตวอยางนใช count เปนตวกำาหนดคาของจำานวนรอบ โดย เพมคาขนทละ 1 เมอครบ 5 รอบ เงอนไขของ while จะเปนเทจ โปรแกรมจงหยด
ทำางาน โดยพมพคำาวา HELLO จำานวน 5 ครง
ตวอยางท 3#include <iostream.h>
void main(){
float number, sum;sum = 0.0;cout << "Enter a list of positive values (ending with -1.0): ";cin >> number;while (number > 0.0){
sum = sum + number;cin >> number;
}cout << " Sum is " << sum << endl;
}
ตวอยาง ท 3 น จะใหเรารบเขาขอมลทเปน คาบวก และเมอปอนคาเขาไป แตละครงคาทปอนจะนำาไปบวก และโปรแกรมจะหยดทำางานเมอเราปอน
คาทนอยกวา 0 เชน -1 เราสามารถปอนคาในลกษณะทเรยงเปนแถวโดยใชการเคาะเวนวรรค โดย
ยงไมกดแปน enter กได
ตวอยางท 4#include <iostream.h>
void main(){
float number, sum;sum = 0.0;cout << "Enter a list of positive values (ending with -1.0): ";cin >> number;while (number > 0.0){
sum = sum + number;cin >> number;
}cout << " Sum is " << sum << endl;
}ผลรนEnter a list of positive values (ending with -1.0): 5.0 7.0 9.0
-1.0 Sum is 21
เราสามารถใสคาเขาไดตามจำานวนโดยเวนวรรค 1 เคาะ
เมอตองการใชหยดงานปอน -1 เพอใหเงอนไขเปนเทจ
ตวอยางท 5float done = 1.0;
float sum = 0.0;float value;cin >> value; // get the first valuewhile (done > 0.0){ sum = sum + value;
if (sum > 100.0) // check for sum limitdone = 0.0;
else{
cin >> value; // get next input valueif (value < 0.0) // check for sentinel
done = 0.0;else;
}}
โปรแกรมนจะหยดทำางานเมอ คาทปอนเขาไปรวมกนเมอบวกกนไปเรอย ๆ แลวเกน 100 หรอ
คาทปอนเขาไปมคานอยกวา 0
ตวอยางท 6#include <iostream.h>void main(){
float N, count, power;cout << "Table of Powers " << endl;cout << "N 2 3 4 5 6" << endl;N = 1.0;while (N <= 5.0){ count = 2;
power =N;cout << N;
while (count <= 6.0){ power = power * N;
count = count + 1.0;cout << " " << power;
}cout << endl;N = N + 1.0;
}}ผลรนTable of Powers N 2 3 4 5 6 1 1 1 1 1 1 2 4 8 16 32 64 3 9 27 81 243 729 4 16 64 256 1024 4096 5 25 125 625 3125 15625
ตวอยางท 7#include <iostream>using namespace std;void main() { float A=0.0, B=0.0, C=0.0, D=0.0, F=0.0; float ave, sum, grade, grade_count; float ID;
float count;count =0.0;while (count < 3.0){ cin >> ID;
grade_count = 0.0;sum = 0.0;cin >> grade;while (grade > 0.0){ sum = sum + grade;
grade_count = grade_count + 1;cin >> grade;
} ave = sum / grade_count; cout << "Average = " << ave << endl;
if (ave >= 90.0)A = A + 1.0;
else if (ave >= 80.0)B = B + 1.0;
else if (ave >= 70.0)C = C + 1.0;
else if (ave >= 60.0)D = D + 1.0;
else F = F + 1.0;count = count + 1;
}cout << "A " << A << ", B " << B << ", C " << C << ", D " << D << ", F " << F << endl;
}
ผลรน2345 89 88 76 91 79 -1Average = 84.63456 93 89 88 94 92 90 93 -1Average = 91.28574567 67 97 88 90 86 87 -1Average = 85.8333A 1, B 2, C 0, D 0, F 0
คำาสง do while
รปแบบdo
statementwhile ( expression );
เปนการทำางานตามคำาสง do กอนตรวจสอบเงอนไขของ While หากเปน จรงจะกลบไปทำาซำา จนกวา expression จะเปนเทจ
ถาใชงานแบบ do while โปรแกรมจะทำางานตามคำาสงวนรอบอยางนอย 1 ครง กอนทจะตรวจสอบเงอนไข
ตวอยางท 8#include <iostream.h>
main(){ int num=10;
do{cout<<num<<"\t";num--;}while (num>=0);}
กรณทเงอนไขเปนเทจตงแตเรมตน ผลการทำางานจะเปนอยางไร เชน
ตวอยางท 9#include <iostream.h>
main(){ int num=-13;do{cout<<num<<"\t";num--;}while (num>=0);}
คำาสง for
รปแบบfor ( expr1 ; expr2 ; expr3 ) statement
• Expr1 เปนสวนกำาหนดคาเรมตนใหกบตวแปร• Expr2 เปนเงอนไขทกำาหนดขนเพอใหโปรแกรมวนรอบการทำางาน• Expr3 สวนททำาการเปลยนคาตวแปรใหเพมขนหรอลดลง
เชนfor (count=0; count < N; count = count + 1)
statement;
ตวอยางท 10#include <iostream.h>main(){int total=0;for (int i=1; i < 11; i++) { total = total + i; cout<<total<<"\t"; }}
ตวอยางท 11for (n=0; n < 3; n = n +1)
for (k=n; k < 3; k= k+1)
cout << n << " " << k << endl;
ผลรน0 00 10 21 11 22 2
แบบฝกหดบทท 4
1. ใหนกเรยนเขยนโปรแกรม โดยใชคำาสง While เพอทายตวเลขโดยมผเลน 2 คน คนแรกจะเปนคนกำาหนดตวเลขขนมา สวนคนทสองจะเปนคนกรอกตวเลขเพอทายวาผเลนคนแรกเลอกเลขใด หากตวททายนอยกวาใหแสดงออกมาวา “too small” หากตวเลขททายมากกวาใหแสดงออกมาวา “too large” หากทายถกใหแสดงวา “correct” และจบการทำางานหมายเหต คำาสงทสงใหลางหนาจอคอ system(“cls”)หรอ #include <conio.h> แลวใชคำาสง clrscr()
2. ใหหาคาเฉลยของตวเลข 10 จำานวน ทรบเขามาจากผใชโดยใชคำาสง do while
3. ใหหาคาเฉลยของตวเลข 10 จำานวน ทรบเขามาจากผใชโดยใชคำาสง for
4. ใหเขยนโปรแกรมเพอตรวจสอบตวอกษรทรบเขามาจากผใช 10 จำานวน เพอตรวจสอบวามพยญชนะและสระอยางละกจำานวน ผลรน enter letter a-z: aeioudddddVowel(a e i o u)= 5other letter = 5
คำาสงในการรบตวอกษรจากแปนคยคอ getchar() ตอง #include <conio.h> กอน
บทท 5 ตวแปรอารเรย (Array)
เมอตองการสรางตวแปรเพอเกบขอมลทตองการใชหลายตว เชน ตวเลขจำานวนเตม 10 จำานวน โดยกำาหนดตวแปรเพยงตวเดยว เรา
สามารถใชตวแปรอารเรย เพอเกบชดของขอมลชนดเดยวกนได
การประกาศคาตวแปรแบบ Array type name [size]
เชนfloat shirt_cost [7]
3.39 4.52 6.25 7.59 6.49 8.29 9.19
0 1 2 3 4 5 6
Index• รปแบบของตวแปรสามารถเปนได เชน s int, float, string,
char• ตำาแหนงอารเรยตวแรกอยท 0• ถาตวแปรอารเรยทกำาหนดมจำานวน N ตว, the ตวสดทายอยท
ตำาแหนง N-1•
cin >> shirt_cost[0] // input a cost into cell 0sum += shirt_cost[4] // add cell 4 into ‘sum’cout << shirt_cost[0]
<< shirt_cost[1] // output the first two cellsshirt_cost[3] = 15.75 // set cell 3 to 15.75
ตวอยางการใชตวแปรอารเรยconst char answer[5] = { 'T', 'F', 'T', 'F', 'F‘ };int summary[5] = { 10, 14, 9, 11, 13 };string question[5] = { "Kennedy was a democrat", "Nixon was a democrat", "Carter was a democrat", "Bush was a democrat", "Ford was a democrat" };
int summary1[5] = { 10, 14, 9, 11, 13 };int summary2[5] = { 10, 14 };int summary3[] = { 10, 14, 9, 11, 13 };int summary4[] = { 10, 14 };
Summary1 10 14 9 11 13
Summary2 10 14 0 0 0
Summary3 10 14 9 1 13
Summary4 10 14
ตวแปรอารเรย 2 มต• รปแบบ
type name [n][m] ={กำาหนดตวแปรขอมลใหกบอารเรย} ตวอยางเชน
float metrix[2][3] = {15.2,26.3,14.5, 12.5,25.3,23.2};
FFTFT
131191410
answer
summary
ตวอยางท 1#include <iostream.h>int year[5]={2001,2542,1999,2000,2521};main(){
cout<<year[2]<<endl; cout<<year[4]<<endl; year[0]=2545; cout<<year[0];
}
ผลรน199925212545
ตวอยางท 2 #include <iostream.h>float num [3][2]={20,25,
19,20, 35,10};
main(){
cout<<num[0][1]<<endl; cout<<num[2][0]<<endl; cout<<num[2][1]<<endl; cout<<num[0][0];
}ผลรน25351020
ตวอยางท 3#include <iostream.h>float num [5]={1,2};int x=0;main(){
while(x<5){ cout<<num[x]<<endl; x++;
}}ผลรน1200
ตวอยางท 4#include <iostream.h>char sentence [22]="Welcome to my country";char word[9]={'T','H','a','i','l','a','n','d'};char wd[4]="tid";main(){
cout<<sentence<<endl;cout<<word<<endl;cout<<wd;
}ผลรนWelcome to my countryTHailandTid
ตวอยางท 5#include <iostream.h> int age[5],count;main(){
for(count=0; count<5; count++){cout<<"enter age"<<endl;cin>>age[count];
} cout<<"finish"; }enter age20enter age21enter age22enter age23enter age24finish
ตวอยางท 6 โปรแกรมหาคาเฉลยตวเลข 10 จำานวน#include <iostream.h>float num[10], total;int i=0;main(){
while(i<10){ cout<<"enter number"<<endl; cin>>num[i]; i++; }
for(i=0; i<10 ;i++) {total=total+num[i]; } cout<<"***result***"<<total<<endl; cout<<"Average ="<<total/10; }
ตวอยางท 7#include <iostream.h>int matrix[3][3],i,j;main(){
for (i=0; i<3;i++){
for(j=0; j<3 ;j++){
cout<<"enter number"<<endl;cin>>matrix[i][j];
} }
cout<<"matrix"<<endl; for (i=0; i<3;i++){
for(j=0; j<3 ;j++){
cout<<matrix[i][j]<<"\t"; } cout<<"\n";
}}ผลรนenter number1enter number1
enter number1enter number2enter number2enter number2enter number3enter number3enter number3matrix1 1 12 2 23 3 3
แบบฝกหดบทท 5
1.ใหนกเรยนเขยนโปรแกรมแสดงตวเลข โดยเรยงตวเลข จาก 1-25
ในลกษณะของ metrix ดงน1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25
2. ใหนกเรยนเขยนโปรแกรมเพอหาผลรวมของตวเลขชดละ 5 จำานวน เมอครบ 5 จำานวน แลวใหถามวา จะทำาตอหรอไม หากตอบ ใช ใหโปรแกรมกลบไปหาผลรวมเลข 5 จำานวนใหมอกครง จนกวาจะตอบ ไม
Enter number 25Enter number 25Enter number 25Enter number 25Enter number 25125Do anymore? Y วนกลบไปทำาใหมอกครง
3. จงเขยนโปรแกรมเพอเรยงลำาดบตวเลขจำานวนเตม 10 จำานวนทผใชงานกรอกเขามาโดยหาจำานวนทมคานอยทสดแลวแสดงผลทางหนาจอ4.จงเขยนโปรแกรมเพอหาคาของเมตรกซขนาด 2 x 2 โดยใหผใชกรอกตวเลขประจำาแตละตำาแหนงในเมตรกซ 2 x 2 เขามา จากนนโปรแกรมจะใชสตรคำานวณหาคาเมตรกซแสดงออกมาทางหนาจอ สตรการหาเมตรกซขนาด 2 x 2 คอ (a*d)-(c*b)
a bc d