คำสั่ง printf()

Download Report

Transcript คำสั่ง printf()

โครงสร้ างของภาษา C
 ภาษา C เป็ นภาษาระดับกลาง (Middle –lever language)
 ภาษา C เป็ นภาษาคอมพิวเตอร์ ชนิดคอมไพล์
(compiled
Language) ซึ่งมีคอมไพลเลอร์ (Compiler) ทาหน้ าที่ในการ
คอมไพล์ (Compile) หรือแปลงคาสั่งทัง้ หมดในโปรแกรมให้
เป็ นภาษาเครื่อง (Machine Language) เพื่อให้ เครื่อง
คอมพิวเตอร์ นาคาสั่งเหล่ านัน้ ไปทางานต่ อไป
ตัวแปลภาษาคอมพิวเตอร์ (Translator)
 แอสเซมเบลอ (Assembler) เป็ นตัวแปลภาษาแอสแซมบลีซ่ งึ
เป็ นภาษาระดับต่าให้ เป็ นภาษาเครื่อง
 อินเตอร์ พรี เตอร์ (Interpreter) เป็ นตัวแปลภาษาระดับสูงซึ่งเป็ น
ภาษาที่ใกล้ เคียงกับภาษามนุษย์ ไปเป็ นภาษาเครื่อง
 คอมไพเลอร์ (Compiler) จะเป็ นตัวแปลภาษาระดับสูง
เช่ นเดียวกับอินเตอร์ พรีเตอร์ แต่ จะใช้ วิธีแปลโปรแกรมทัง้
โปรแกรมให้ เป็ นออบเจคโคด ก่ อนที่จะสามารถนาไปทางาน
เช่ นเดียวกับแอสแซมเบลอ
โครงสร้ างของภาษา C
 พรี โพรเซสเซอร์ ไดเรกทีฟ
 ส่ วนการกาหนดค่ า
 ส่ วนฟั งก์ ชันหลัก
 การสร้ างฟั งก์ ชันและการใช้ ฟังก์ ชัน
 ส่ วนอธิบายโปรแกรม
โครงสร้ างของภาษา C
พรี โพรเซสเซอร์ ไดเรกทีฟ
เฮดเดอร์ ไฟล์ (Header Files)
ทุกโปรแกรมต้ องมี
ใช้ สาหรั บเรี ยกไฟล์ ท่ ีโปรแกรมต้ องการในการทางานและกาหนดค่ า
ต่ างๆ
เริ่มต้ นด้ วยเครื่ องหมาย ไดเร็กทีฟ (#) ตามด้ วยชื่อโปรแกรม หรื อตัวแปร
ที่ต้องการกาหนดค่ า
#include เป็ นการแจ้ งให้ คอมไพเลอร์ อ่านไฟล์ อ่ ืนเข้ ามาคอมไพร่ วมด้ วย
พรี โพรเซสเซอร์ ไดเรกทีฟ
เฮดเดอร์ ไฟล์ (Header Files)
#include<ชื่อเฮดเดอร์ ไฟล์ > หรื อ
#include “ชื่อเฮดเดอร์ ไฟล์ ”
*** เครื่ องหมาย <> คร่ อมชื่อไฟล์ เป็ นการอ่ านไฟล์ จากไดเร็กทอรี ท่ ี
กาหนดไว้ ก่อน
*** เครื่ องหมาย “” คร่ อมชื่อไฟล์ เป็ นการอ่ านไฟล์ จากไดเร็กทอรี
ปั จจุบันที่กาลังติดต่ ออยู่ และไฟล์ ท่ จี ะ include เข้ ามานี ้ จะต้ องไม่ มี
ฟั งก์ ชัน main()
พรี โพรเซสเซอร์ ไดเรกทีฟ
Int main (void)
{
เฮดเดอร์ ไฟล์ (Header Files)
เป็ นส่ วนที่เก็บไลบรารี่มาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ ามา
รวมกับโปรแกรมในขณะที่กาลังทาการคอมไพล์ โดยใช้ คาสั่ง
#include<ชื่อเฮดเดอร์ ไฟล์ > หรือ
#include “ชื่อเฮดเดอร์ ไฟล์ ”
ตัวอย่ าง
#include<stdio.h>
เฮดเดอร์ ไฟล์ นีจ้ ะมีส่วนขยายเป็ น .h เสมอ และเฮดเดอร์
ไฟล์ เป็ นส่ วนที่จาเป็ นต้ องมีอย่ างน้ อย 1 เฮดเดอร์ ไฟล์ ก็คือ
เฮดเดอร์ ไฟล์ stdio.h ซึ่งจะเป็ นที่เก็บไลบรารี่มาตรฐานที่
จัดการเกี่ยวกับอินพุตและเอาท์ พุต
ส่ วนตัวแปรแบบ Global (Global Variables)
เป็ นส่วนที่ใช้ ประกาศตัวแปรหรื อค่าต่าง ๆ ที่ให้ ใช้ ได้ ทงโปรแกรม
ั้
ซึง่ ใช้ ได้ ทงั ้
โปรแกรม ซึง่ ในส่วนไม่จาเป็ นต้ องมีก็ได้
ฟั งก์ ชัน (Functions)
เป็ นส่วนที่เก็บคาสัง่ ต่าง ๆ ไว้ ซึง่ ในภาษา C จะบังคับให้ มีฟังก์ชนั อย่างน้ อย 1
ฟั งก์ชนั่ นัน่ คือ ฟั งก์ชนั่ Main() และในโปรแกรม 1 โปรแกรมสามารถมีฟังก์ชนั ได้
มากกว่า 1 ฟั งก์ชนั่
ส่ วนตัวแปรแบบ Local (Local Variables)
เป็ นส่วนที่ใช้ สาหรับประกาศตัวแปรที่จะใช้ ในเฉพาะฟั งก์ชนั ของตนเอง ฟั งก์ชนั่ อื่น
ไม่สามารถเข้ าถึงหรื อใช้ ได้ ซึง่ จะต้ องทาการประกาศตัวแปรก่อนการใช้ งานเสมอ และ
จะต้ องประกาศไว้ ในส่วนนี ้เท่านัน้
ตัวแปรโปรแกรม (Statements)
เป็ นส่วนที่อยูถ่ ดั ลงมาจากส่วนตัวแปรภายใน ซึง่ ประกอบไปด้ วยคาสัง่ ต่าง ๆ ของ
ภาษา C และคาสัง่ ต่าง ๆ จะใช้ เครื่ องหมาย ; เพื่อเป็ นการบอกให้ ร้ ูวา่ จบคาสัง่ หนึง่ ๆ
แล้ ว ส่วนใหญ่ คาสัง่ ต่าง ๆ ของภาษา C เขียนด้ วยตัวพิมพ์เล็ก เนื่องจากภาษา C จะ
แยกความแตกต่างของตัวพิมพ์เล็กและพิมพ์ใหญ่หรื อ Case Sensitive นัน่ เอง
ยกตัวอย่างใช้ Test, test หรื อจะถือว่าเป็ นตัวแปรคนละตัวกัน นอกจากนี ้ภาษา C ยัง
ไม่สนใจกับการขึ ้นบรรทัดใหม่ เพราะฉะนันผู
้ ้ ใช้ สามารถพิมพ์คาสัง่ หลายคาสัง่ ใน
บรรทัดเดียวกันได้ โดยไม่เครื่ องหมาย ; เป็ นตัวจบคาสัง่
ค่ าส่ งกลับ (Return Value)
เป็ นส่วนที่บอกให้ ร้ ูวา่ ฟั งก์ชนั นี ้จะส่งค่าอะไรกลับไปให้ กับฟั งก์ชนั่ ที่เรี ยก
ฟั งก์ชนั่ ซึง่ เรื่ องนี ้ผู้เขียนจะยกไปกล่าวในเรื่ องฟั งก์ชนั่ อย่างละเอียดอีกทีหนึง่
หมายเหตุ (Comment)
เป็ นส่วนที่ใช้ สาหรับแสดงข้ อความเพื่ออธิบายสิ่งที่ต้องการในโปรแกรม ซึง่ จะ
ใช้ เครื่ องหมาย /*และ */ ปิ ดหัวและปิ ดท้ ายของข้ อความที่ต้องการ
การตัง้ ชื่อ

การตัง้ ชื่อ (Identifier) ให้ กับตัวแปร ฟั งก์ ชันหรื ออื่น ๆ มีกฎเกณฑ์
ในการตัง้ ชื่อ ดังนี ้
1. ตัวแรกของชื่อจะต้ องขึ ้นต้ นด้ วยตัวอักษรหรื อเครื่ องหมาย _ เท่านัน้
2. ตัวอักษรตังแต่
้ ตวั ที่ 2 สามารถเป็ นตัวเลข หรื อเครื่ องหมาย_ก็ได้
3. จะต้ องไม่มีการเว้ นวรรคภายในชื่อ แต่สามารถใช้ เครื่ อง_คัน่ ได้
4. สามารถตังชื
้ ่อได้ ยาวไม่จากัด แต่จะใช้ ตวั อักษรแค่ 31 ตัวแรกในการ
อ้ างอิง
5. ชื่อที่ตงด้
ั ้ วยตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก จะถือว่าเป็ นคนละตัวกัน
6. ห้ ามตังชื
้ ่อซ ้ากับคาสงวนของภาษา C
โครงสร้ างพืน้ ฐานของการเขียนภาษา C
รูปแบบ ………………………………………………
# include “stdio.h”
Main()
{
}
คาสั่ง printf()
คาสั่ง printf ถือว่ าเป็ นคาสั่งพืน้ ฐานที่สุดในการแสดงผลข้ อมูลทุก
ชนิดออกทางหน้ าจอ ไม่ ว่าจะเป็ นจานวนเต็ม( int ) , ทศนิยม ( float ) ,
ข้ อความ ( string ) หรืออักขระ นอกจากนีค้ าสั่งยังมีความยืดหยุ่นสูง
โดยเราสามารถกาหนดหรือจัดรูปแบบการแสดงผลให้ มีระเบียบหรื อ
เหมาะสมตามความต้ องการได้ อีกด้ วย
คาสั่ง printf()
printf(“ format ” , variable);
format : ข้ อมูลที่ต้องการแสดงออกทางหน้ าจอ
: ข้ อมูลเขียนไว้ ในเครื่องหมาย “ ”
: ข้ อมูลที่สามารถแสดงผลได้ มีอยู่ 2 ประเภท คือ ข้ อความ
ธรรมดา และค่ าที่เก็บไว้ ในตัวแปร ซึ่งถ้ าเป็ นค่ าที่เก็บไว้ ในตัวแปรต้ อง
ใส่ รหัสควบคุมรูปแบบให้ ตรงกับชนิดของข้ อมูลที่เก็บไว้ ในตัวแปรนัน้
ด้ วย
variable : ตัวแปรหรือนิพจน์ ท่ ตี ้ องการนาค่ าไปแสดงผลให้ ตรงกับ
รหัสควบคุมรูปแบบที่กาหนดไว้
คาสั่ง printf()
printf(“ format ” , variable);
รู ปแบบ printf(“ข้ อความ”); หรื อ
รู ปแบบ printf(“รหัสควบคุมรู ปแบบ”,ตัวแปร); หรื อ
รู ปแบบ printf(“control string”,variable list,……);
ฟั งก์ ช่ ัน Printf
รู ปแบบ printf(“ข้ อความ”); หรื อ
รู ปแบบ printf(“รหัสควบคุมรู ปแบบ”,ตัวแปร); หรื อ
รู ปแบบ printf(“control string”,variable list,……);
# include “stdio.h”
Main()
{
printf(“PRANISA”);
}
แก้ ปัญหาการ Run ไม่ ผ่าน ฟั งชั่น Printf
รู ปแบบ printf(“ข้ อความ”);
# include “stdio.h”
Main()
{
printf(“PRANISA”);
}
# include “stdio.h”
# include “conio.h”
Main()
{
printf(“PRANISA”);
getch();
}
คาสั่ง \t ให้ เว้ น teb
รู ปแบบ printf(“…ข้ อความ...\t”);
# include “stdio.h”
# include “conio.h”
Main()
{
printf(“PRANISA\t”);
printf(“THONGON”);
getch();
}
คาสั่ง \n ให้ ขนึ ้ บรรทัด
รู ปแบบ printf(“…ข้ อความ...\n”); หรื อ
พิมพ์ ข้อความเรี ยบร้ อยแล้ วให้ ขนึ ้ บรรทัดใหม่
{
printf(“PRANISA\t”);
printf(“THONGON\n”);
printf(“PRANISA\t”);
printf(“THONGON”);
getch();
}
คาสั่ง \n ให้ ขนึ ้ บรรทัด
รู ปแบบ printf(“\n…ข้ อความ...”);
คาสั่ง \n นาหน้ าให้ ขนึ ้ บรรทัดใหม่ ก่อน แล้ วพิมพ์ ข้อความ
{
printf(“PRANISA\t”);
printf(“THONGON”);
printf(“\nPRANISA\t”);
printf(“THONGON”);
getch();
}
คาสั่งเครื่ องหมาย %
คาสั่ง %d ให้ พมิ พ์ รูปแบบเลขจานวนเต็มฐานสิบ
คาสั่ง %s ให้ พมิ พ์ ชุดตัวอักษร(string) หรือข้ อความ
คาสั่ง %f ให้ พมิ พ์ รูปแบบเลขทศนิยม
คาสั่ง %c ให้ พมิ พ์ ตัวอักษรตัวเดียว(Char)
เครื่องหมาย % เรียกว่ า format specification
คาสั่งเครื่ องหมาย %
คาสั่งเครื่ องหมาย %
รหัสควบคุมรู ปแบบการแสดงผลค่ าของตัวแปร
ออกทางหน้ าจอ แสดงได้ ดังนี ้
เครื่องหมาย \ เรียกว่ า backslash
รหัสควบคุมรู ปแบบการแสดงผลค่ าของตัวแปร
ออกทางหน้ าจอ แสดงได้ ดังนี ้
คาสั่งรั บข้ อมูลจากคีย์บอร์ ด
การทางานของโปรแกรมส่วนใหญ่มกั จะเป็ นการ
เชื่อมโยงกับผู้ใช้ แบบ 2 ทิศทาง คือ ทังภาคของการแสดงผล
้
การทางานออกทางหน้ าจอ และภาคของการรับข้ อมูลจากผู้ใช้
เข้ ามาทางคีย์บอร์ ด เพื่อร่วมในการประมวลผลของโปรแกรม
คาสั่ง scanf()
ในภาษา C การรับข้ อมูลจากคีย์บอร์ ดสามารถทา
ได้ โดยการเรี ยกใช้ ฟังก์ชนั scanf() ซึง่ เป็ นฟั งก์ชนั
มาตรฐานสาหรับรับข้ อมูลจากคีย์บอร์ ด โดยสามารถรับ
ข้ อมูลได้ ทกุ ประเภท ไม่วา่ จะเป็ นจานวน
เต็ม ทศนิยม อักขระ หรื อข้ อความ
รู ปแบบคาสั่ง scanf()
scanf("format",&variable);