0032 | การแปลงหน่วย [ C ]

Posted: 13th กรกฎาคม 2010 by bomboy in C-Language
Tags: , ,

พอดีว่าอาจารย์สั่งการบ้านภาษา C มา โดยที่อาจารย์ให้โจทย์มาว่า

“เขียนโปรแกรมแปลงค่าจากหน่วย ฟุต,นิ้ว เป็นหน่วย เมตร,เซนติเมตร”
ยกตัวอย่างเช่น ให้ป้อนค่า 6 ฟุต 2 นิ้ว
ให้ผลลัพธ์ออกมาเป็น 1 เมตร 85 เซนติเมตร
อะไรประมาณนี้

ขอบอกว่าโจทย์ข้อนี้ค่อนข้างยากในการแปลงหน่วย
( แต่ไม่อยากโม้ ผมใช้เวลา 10 นาทีเสร็จ เอิ๊กๆ )

เริ่มแรกเราก็ต้องเขียนออกมาเป็น Pseudocode ก่อน

start
read foot
read nich
float cm = 2.54
n = n+(f*12)
x = n*cm
m = floor(x/100)
cm = x-(m*100)
print m
print cm
stop

เมื่อเราเขียนในรูปแบบ Pseudocode ออกมาแล้ว
ลำดับต่อไปก็มาเขียนเป็น code ภาษา C กันเลย

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
#include<math.h>
main()
{
	float f,m,n,x;
	float cm = 2.54;
	printf("Enter foot = ");
	scanf("%f",&f);
	printf("Enter inch = ");
	scanf("%f",&n);
	n = n + (f*12);
	x = n * cm;
	m = floor(x/100);
	cm = x - (m*100);
	printf("%.0f metre %.0f centimetre \n",m,cm);
}

จะสังเกตุว่า ในส่วน Head จะมีคำสั่งเสริมเพิ่มเข้ามาด้วยคือ ( บรรทัดที่ 2 )

2
#include<math.h>

สาเหตุที่เพิ่มเข้ามาเพราะว่า เราได้ใส่ฟังก์ชั่น floor ( จากบรรทัดที่ 13 )

13
m = floor(x/100);

ฟังก์ชั่น floor หมายถึง การปัดเศษลง นั้นเอง