41
หหหหหหหหหหหหหห 1 Lecture 2: หหหหหหหหหหหหหหหหห, หหหหหหหหหหหหหหห, หหหหหหหหหหหห หหหห, หหหหหหหหหหหหหหหหหหหหหหห

หลักการ โปรแกรม 1

  • Upload
    velvet

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

หลักการ โปรแกรม 1. Lecture 2: การวิเคราะห์ปัญหา, ตัวแปรอย่างง่าย, การรับข้อมูลเข้า, การคำนวณและแสดงผลลัพธ์. ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม. กำหนดและวิเคราะห์ปัญหา (Problem Definition and Problem Analysis) เขียนผังงานและซูโดโค้ด (Pseudocoding) เขียนโปรแกรม (Programming) - PowerPoint PPT Presentation

Citation preview

หลั�กการโปรแกรม 1Lecture 2: การวิ เคราะห�ป�ญหา, ตั�วิแปรอย่�างง�าย่, การร�บข้�อม�ลัเข้�า, การค�านวิณแลัะแสดงผลัลั�พธ์�

ภาษาคอมพิ�วเตอร์ และการ์พิ�ฒนาโปร์แกร์ม• ก�าหนดแลัะวิ เคราะห�ป�ญหา (Problem Definition and Problem Analysis)

• เข้%ย่นผ�งงานแลัะซู�โดโค�ด (Pseudocoding) • เข้%ย่นโปรแกรม (Programming) • ทดสอบแลัะแก�ไข้โปรแกรม (Program Testing and Debugging)

• ท�าเอกสารแลัะบ�าร)งร�กษาโปรแกรม (Program Documentation and Maintenance)

การ์ก�าหนดและว�เคร์าะห ป�ญหา• ก�าหนดข้อบเข้ตัข้องป�ญหา • ก�าหนดลั�กษณะข้องข้�อม�ลัเข้�าแลัะออกจากระบบ (Input/Output Specification)

• ก�าหนดวิ ธ์%การประมวิลัผลั (Process Specification)

ต�วอย่�างถ้�าหากตั�องการออกแบบโปรแกรมให�คอมพ วิเตัอร�ร�บค�าข้�อม�ลั 3 ค�า แลัะแสดงค�าเฉลั%/ย่ทางจอภาพ เราอาจก�าหนดแลัะวิ เคราะห�ป�ญหาได�ด�งน%1

1. ร�บข้�อม�ลัจากค%ย่�บอร�ด • ร�บข้�อม�ลัเฉพาะท%/เป2นตั�วิเลัข้มาเก3บในตั�วิแปร • ถ้�าข้�อม�ลัเท�าก�บ 0 ให�ร�บใหม�

ต�วอย่�าง (ต�อ)

2. หาค�าเฉลั%/ย่ • รวิมค�าท)กค�าท%/ร �บมาเข้�าด�วิย่ก�น • น�าค�าผลัรวิมท%/ได�หารด�วิย่ 3 • น�าค�าผลัลั�พธ์�ไปเก3บในตั�วิแปร

3. แสดงผลัลั�พธ์�ทางจอภาพ • แสดงค�าวิ�าค�าเฉลั%/ย่เท�าก�บ • แสดงผลัลั�พธ์�โดย่ม%ทศน ย่มสองตั�าแหน�ง

ขั้�!นตอนการ์ทำ�างาน

ร�บข้�อม�ลัตั�วิท%/ 1ร�บข้�อม�ลัตั�วิท%/ 2ร�บข้�อม�ลัตั�วิท%/ 3

หาผลัรวิมข้องเลัข้ท�1ง 3 จ�านวินน�าผลัรวิมหารด�วิย่ 3

แสดงค�าเฉลั%/ย่เป2นทศน ย่ม 2 ตั�าแหน�ง

ข้�อม�ลัเข้�า การประมวิลัผลั ข้�อม�ลัออก (input) (process) (output)

การ์เขั้#ย่นผั�งงานและซู&โดโค'ด หลั�งจากท%/ได�วิ เคราะห�ป�ญหาแลั�วิ ข้�1นตัอนตั�อไปจะใช้�เคร6/องม6อ

ช้�วิย่ในการออกแบบโปรแกรม โดย่เข้%ย่นเป2นลั�าด�บข้�1นตัอนการท�างานข้องโปรแกรมท%/เร%ย่กวิ�าอ�ลักอร ท7ม (Algorithm) โดย่จะเข้%ย่นแสดงข้�1นตัอนการแก�ป�ญหา ด�วิย่ประโย่คท%/ช้�ดเจนไม�คลั)มเคร6อ แลัะม%ราย่ลัะเอ%ย่ดการท�างานพอสมควิรเพ%ย่งพอท%/จะน�าไปเข้%ย่นเป2นโปรแกรมให�ท�างานจร ง โดย่อ�ลักอร ท7มน�1นอาจเข้%ย่นให�อย่��ในร�ปข้องรห�สจ�าลัองหร6อซู�โดโค�ด (Pseudo-code) หร6อเข้%ย่นเป2นผ�งงาน (Flowchart) ก3ได�

ผั�งงาน หมาย่ถ้7งการแทนข้�1นตัอนวิ ธ์%การท�างานโดย่ใช้�ส�ญลั�กษณ�แทนควิามหมาย่ข้องการท�างานบางอย่�าง แลัะม%เส�นลั�กศรแสดงลั�าด�บ หร6อท ศทางการท�างาน

FSTO

P

T

START

sum = sum + 1

sum <= 5

print sum

sum = 1

ซู&โดโคด หมาย่ถ้7งการแทนข้�1นตัอนวิ ธ์%การท�างานโดย่ใช้�ค�าในภาษาอ�งกฤษ มาเร%ย่งตั�อก�น

เพ6/ออธ์ บาย่วิ ธ์%การท�างานแลั�วิได�ควิามหมาย่เป2นข้�1นตัอนการ

ท�างานท%/ตั�องการ

Procedure PRTone2five

sum =1

do

print sum

sum = sum + 1

while sum <= 5

end

กร์ะบวนการ์แก'ป�ญหาด'วย่คอมพิ�วเตอร์ ว�เคร์าะห ป�ญหา

• ตั�องการอะไร • ตั�องการเอาตั�พ)ตัอย่�างไร• ข้�อม�ลัเข้�าเป2นอย่�างไร • ตั�วิแปรท%/ใช้� • วิ ธ์%การประมวิลัผลัเป2นอย่�างไร

การ์เขั้#ย่นผั�งงานผ�งงานเป2นแผนภาพท%/แสดงลั�าด�บข้�1นตัอนในการ

ท�างานข้องโปรแกรม โดย่ม%การลังราย่ลัะเอ%ย่ด ใส�วิ ธ์%การ แลัะจ�ดลั�าด�บข้�1นตัอนข้องโปรแกรม ตั�1งแตั�เร /มตั�นจากการร�บข้�อม�ลั การประมวิลัผลั ไปจนถ้7งการแสดงผลัลั�พธ์�การท�างาน

สั�ญล�กษณ์ ทำ#+ใช้'ในการ์เขั้#ย่นผั�งงาน

สั�ญล�กษณ์ ทำ#+ใช้'ในการ์เขั้#ย่นผั�งงาน

ต�วอย่�างการ์เขั้#ย่นผั�งงาน

สั�ญล�กษณ์ ขั้อง

การ์ร์�บค�า สั�ญล�กษณ์ ขั้อง

การ์ค�านวณ์

ผั�งงานแบบทำางเล.อกเป2นการท�างานท%/ตั�องม%การตั�ดส นใจ เพ6/อเลั6อกการท�างาน โดย่ใช้�ส�ญลั�กษณ�การเปร%ย่บเท%ย่บ

FT

stmt F

condition

FT

stmt T

condition

ผั�งงานแบบวนซู�!า (while-do)

T

F

stmt R2

condition

stmt R1

Pretest เพิร์าะทำดสัอบก�อนทำ�างานภาย่ในล&ป

ผั�งงานแบบวนซู�!า (do-while)

F

stmt R1

Tcondition

stmt R2

Posttest เพิร์าะทำ�างานก�อน แล'วจึ0งทำดสัอบ

ต�วอย่�างต�วอย่�าง จงเข้%ย่นผ�งงานเพ6/อก�าหนดค�าให�ก�บตั�วิแปร a แลัะ b แลั�วิเปร%ย่บเท%ย่บเพ6/อแสดงผลั ถ้�าตั�วิแปร a ม%ค�ามากกวิ�าตั�วิแปร b ให�พ มพ�ค�าตั�วิแปร a ออกมาแสดงบนจอภาพ ถ้�าไม�ใช้� ให�พ มพ�ค�าตั�วิแปร b ออกมาแสดงบนจอภาพ

T F

STOP

START

print “A = “, a

print “B = “, b

a = 10b = 5

a > b

ต�วอย่�างจงเข้%ย่นผ�งงานในการจ�บไม�ส�1นไม�ย่าวิสามคร�1ง ถ้�าได�ไม�ย่าวิให�

ได�เง น 100 บาท ถ้�าได�ไม�ส� 1นให�เส%ย่เง น 100 บาท

ซู&โดโค'ดซู�โดโค�ดเป2นค�าอธ์ บาย่ข้�1นตัอนการท�างานข้องโปรแกรมโดย่ใช้�

ถ้�อย่ค�าผสมระหวิ�างภาษาอ�งกฤษแลัะภาษาการเข้%ย่นโปรแกรมแบบโครงสร�างท%/เข้�าใจง�าย่มาแสดงลั�าด�บการท�างานข้องโปรแกรม หร6ออาจใช้�ภาษาไทย่ก3ได� โดย่ให�ผ��เข้%ย่นโปรแกรมสามารถ้พ�ฒนาข้�1นตัอนตั�าง ๆ ให�เป2นโปรแกรมได�ง�าย่ข้71น

ตั�วิอย่�างเช้�นในการเข้%ย่นซู�โดโค�ดส�าหร�บให�คอมพ วิเตัอร�หาค�าเฉลั%/ย่จากข้�อม�ลัท%/ร �บเข้�าทางแป;นพ มพ�อาจเข้%ย่นได�ด�งน%1

การ์ว�เคร์าะห ป�ญหาต�วอย่�างทำ#+ 1 จงเข้%ย่นแนวิทางการแก�ป�ญหาด�วิย่คอมพ วิเตัอร� ส�าหร�บให�คอมพ วิเตัอร�ค�านวิณหาค�าจ�างพน�กงานเป2นราย่ช้�/วิโมง จากน�1นแสดงค�าจ�างท%/ค�านวิณได�

ต�วอย่�างการ์ว�เคร์าะห ว�ธี#ทำ�าต'องการ์อะไร์

ตั�องการทราบค�าจ�างข้องพน�กงานแตั�ลัะคน

ต'องการ์เอาต พิ3ตอย่�างไร์ ตั�องการเอาตั�พ)ตัเป2นค�าจ�างส)ทธ์ ข้องพน�กงานทาง

จอภาพ

ต�วอย่�างการ์ว�เคร์าะห ขั้'อม&ลเขั้'า

• รห�สพน�กงาน• ช้6/อพน�กงาน• จ�านวินช้�/วิโมงท�างานเก3บในตั�วิแปรช้6/อ Hours• ค�าจ�างราย่ช้�/วิโมงเก3บในตั�วิแปรช้6/อ PayRate

ต�วอย่�างการ์ว�เคร์าะห ก�าหนดว�ธี#การ์ค�านวณ์

ค�าจ�างส)ทธ์ = จ�านวินช้�/วิโมง x อ�ตัราตั�อช้�/วิโมง ขั้�!นตอนการ์ปร์ะมวลผัล

1. เร /มตั�น 2. ร�บรห�สพน�กงาน, ช้6/อพน�กงาน, จ�านวินช้�/วิโมงท�างาน, ค�าจ�างราย่ช้�/วิโมง

3. ค�านวิณ ค�าจ�างส)ทธ์ = Hours x PayRate 4. แสดงผลัลั�พธ์� เป2นรห�สพน�กงาน ช้6/อ แลัะค�าจ�างส)ทธ์ 5. จบการท�างาน

ต�วอย่�างทำ#+ 2จงเข้%ย่นแนวิทางการแก�ป�ญหาด�วิย่คอมพ วิเตัอร�ในการหา

ปร มาตัรทรงกระบอก แลัะแสดงค�าปร มาตัรท%/ค�านวิณได�

ต'องการ์อะไร์ ตั�องการค�านวิณปร มาตัรข้องร�ปทรงกระบอก

ต'องการ์เอาต พิ3ตอย่�างไร์ ค�าปร มาตัรทรงกระบอกเป2นร�ปแบบเลัข้ทศน ย่มทางจอภาพ

การ์ว�เคร์าะห ป�ญหาขั้'อม&ลเขั้'า ควิามส�งข้องทรงกระบอก (h) แลัะร�ศม%ข้องทรงกระบอก(r) เป2นร�ปแบบเลัข้ทศน ย่ม

ว�ธี#การ์ค�านวณ์ ปร มาตัรทรงกระบอก = x ร�ศม%2 x ควิามส�ง

ขั้�!นตอนการ์ปร์ะมวลผัล 1. เร /มตั�น 2. ร�บค�าควิามส�งแลัะค�าร�ศม%ข้องทรงกระบอก 3. ค�านวิณค�าปร มาตัร จาก ปร มาตัร = x r2 x h 4. แสดงค�าปร มาตัรทรงกระบอกทางจอภาพ 5. จบการท�างาน

การ์เขั้#ย่นโปร์แกร์มเปลั%/ย่นข้�1นตัอนการท�างานให�อย่��ในร�ปรห�สภาษาคอมพ วิเตัอร�

การเข้%ย่นโปรแกรมจะตั�องเข้%ย่นตัามภาษาท%/คอมพ วิเตัอร�เข้�าใจโดย่อาจใช้�ภาษาระด�บส�ง หร6อระด�บตั�/าซู7/งสามารถ้เลั6อกได�หลัาย่ภาษา การเข้%ย่นโปรแกรมแตั�ลัะภาษาจะตั�องท�าตัามหลั�กไวิย่ากรณ� (syntax) ท%/ก�าหนดไวิ�ในภาษาน�1น

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

getch();}

?

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area;

getch();}

ก�าหนดต�วแปร์ ความสั&งขั้องทำร์งกร์ะบอก (h) แลัะร์�ศม#ขั้องทำร์งกร์ะบอก (r) เป2น ผลัลั�พธ์� ร์&ปแบบเลขั้ทำศน�ย่ม

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area; printf("Please Enter Height :"); scanf("%d",&Height); printf("Please Enter Radius :"); scanf("%d",&Radius);

getch();}

ร์�บค�าความสั&งขั้องทำร์งกร์ะบอก (h) แลัะร์�ศม#ขั้องทำร์งกร์ะบอก (r) เป2นร์&ปแบบเลขั้จึ�านวนเต5ม

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area; printf("Please Enter Height :"); scanf("%d",&Height); printf("Please Enter Radius :"); scanf("%d",&Radius);

getch();}

ค�าส�/ง scanf() ใช้�ในการร�บค�าจากผ��ใช้�มาเก3บไวิ�ท%/ตั�วิแปร Height แลัะ Radius ตัามลั�าด�บโดย่ท%/ผ��ใช้�ตั�องป;อนค�าแรก แลั�วิ enter จากน�1นป;อนค�าท%/สอง 2 แลั�วิกด enter อ%กคร�1งหน7/ง

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area; printf("Please Enter Height :"); scanf("%d",&Height); printf("Please Enter Radius :"); scanf("%d",&Radius);

Area=3.14*(Radius*Radius)*Height;getch();

}

ว�ธี#การ์ค�านวณ์ ปร์�มาตร์ทำร์งกร์ะบอก = x

ร�ศม%2 x ควิามส�ง

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area; printf("Please Enter Height :"); scanf("%d",&Height); printf("Please Enter Radius :"); scanf("%d",&Radius);

Area=3.14*(Radius*Radius)*Height;printf("Area = %f",Area);getch();

}

แสดงผลัลั�พธ์�ออกทางหน�าจอ

โปร์แกร์มหาปร์�มาตร์ทำร์งกร์ะบอก (แสัดงผัลเป6นทำศน�ย่ม 2 ต�าแหน�ง)#include <stdio.h>

#include <conio.h>

main(){

int Height,Radius; float Area; printf("Please Enter Height :"); scanf("%d",&Height); printf("Please Enter Radius :"); scanf("%d",&Radius);

Area=3.14*(Radius*Radius)*Height;printf("Area = %.2f",Area);getch();

}

ก�าหนดร�ปแบบการแสดงผลัลั�พธ์�เป2นทศน ย่ม 2 ตั�าแหน�งออกทางหน�าจอ

โปร์แกร์มพิ�มพิ ขั้'อม&ลน�กเร์#ย่น#include <iostream>

using namespace std;

int main(){

getch();}

ให�เข้%ย่นโปรแกรมเพ6/อร�บช้6/อแลัะกลั)�มวิ ช้าโปรแกรมม /งข้องน�กเร%ย่น จากน�1นให�แสดงข้�อควิามด�งตั�วิอย่�างตั�อไปน%1Hello, Susan (3401)(จากตั�วิอย่�าง Susan ค6อช้6/อน�กเร%ย่น แลัะ 3401 ค6อกลั)�ม)

โปร์แกร์มพิ�มพิ ขั้'อม&ลน�กเร์#ย่น#include <iostream>

using namespace std;

int main(){

string name;int group;

cin >> name;cin >> group;

return 0;}

ร�บช้6/อแลัะกลั)�มวิ ช้าโปรแกรมม /ง

โปร์แกร์มพิ�มพิ ขั้'อม&ลน�กเร์#ย่น#include <iostream>

using namespace std;

int main(){

string name;int group;

cin >> name;cin >> group;

cout << “Hello, ” << name << “ (” << group << “)” << endl;

return 0;}

แสดงผลัลั�พธ์�ออกทางหน�าจอ

แบบฝึ8กห�ด

ลองเขั้#ย่นโปร์แกร์มต�อไปน#!•โปรแกรมส�าหร�บค�านวิณพ61นท%/สามเหลั%/ย่ม•โปรแกรมส�าหร�บค�านวิณควิามย่าวิรอบร�ปข้องวิงกลัม

•โปรแกรมส�าหร�บเปลั%/ย่นหน�วิย่เมตัรเป2นเซูนตั เมตัร

•www.krurock.com