550 likes | 685 Views
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์. สัปดาห์ที่ 4 การรับค่าและการแสดงผลในภาษาซี. Outline. 1. Objectives. 2. Scanf Function. p. 3. Printf Function. The Other Function. 4. 5. Assignment #3. objectives. รู้จักและเข้าใจคำสั่งเพื่อใช้ในการรับค่าและแสดงผลในภาษาซี
E N D
Computer Programmingการเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 4 การรับค่าและการแสดงผลในภาษาซี
Outline 1 Objectives 2 Scanf Function p 3 Printf Function The Other Function 4 5 Assignment #3
objectives • รู้จักและเข้าใจคำสั่งเพื่อใช้ในการรับค่าและแสดงผลในภาษาซี • สามารถรับข้อมูลจากคีย์บอร์ดและแสดงข้อความออกทางจอภาพได้ • สามารถจัดรูปแบบการแสดงผลออกทางจอภาพตามรูปแบบต่างๆ ได้อย่างถูกต้อง • เขียนโปรแกรมประมวลผลตัวอักษรได้
Outline 1 Objectives 2 Scanf Function p 3 Printf Function The Other Function 4 5 Assignment #3
Receiving the Information from Keyboard • โปรแกรมโดยทั่วไปต้องมีการรับค่าข้อมูลจากผู้ใช้โปรแกรม เพื่อนำมาหาผลลัพธ์ตามกระบวนการทำงานของโปรแกรม หรือตามความต้องการของผู้ใช้งาน • คำสั่งที่ใช้สำหรับการรับค่าในภาษาซีมีหลายคำสั่ง แต่ที่สามารถใช้งานได้ครอบคลุมและนิยมใช้กัน คือ คำสั่งหรือฟังก์ชัน scanf()
Scanf Function (1) scanf() เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ stdio.hใช้รับข้อมูลจากผู้ใช้ scanf (format-string, address-list); scanf(“format”,argument1,argument2, … ); scanf("control", &variable1,&variable2,…);
Scanf Function (2) Format Code Address list scanf ("%f", &a);
Format-string • format-string or format or control format • เป็นรูปแบบการรับค่าที่ถูกกำหนดตามชนิดของข้อมูล (ค่าตัวแปร) • แสดงอยู่ในเครื่องหมาย Double quotation mark (“_”) • รูปแบบการรับค่าตัวแปร (% ตามหลังด้วยอักขระ) • เมื่อรันผลต้องป้อนค่าตามรูปแบบที่กำหนดตามด้วยการกดenter หมายเหตุ หากผู้ใช้ป้อนข้อมูลไม่ตรงกับชนิดของตัวแปร โปรแกรมจะทำงานผิดพลาด (Runtime Error)
Address-list • address-list or argument or address of variable • คือ ตำแหน่งของตัวแปรที่ต้องการเก็บข้อมูลไว้ (การใช้งานตำแหน่งของตัวแปรจะใช้เครื่องหมาย ampersand (&) นำหน้าชื่อตัวแปร ยกเว้นตัวแปรชนิดข้อความ) • ตัวอย่าง&variable_name
Input Format of Scanf and Printf Function(2) • รูปแบบการแสดงผลซึ่งต้องกำหนดให้ตรงกับชนิดของตัวแปร • int , unsigned intกำหนดเป็น %d, %o, %x • long กำหนดเป็น %ld, %lo, %lx • float, double กำหนดเป็น %f, %e • char กำหนดเป็น %c
Example of Scanf ( ) intage; scanf("%d", &age); char name[20]; scanf ("%s",name); float point; scanf("%f",&point); intday, month, year; scanf("%d/%d/%d", &day,&month,&year);
Example 1 #include<stdio.h> int main() { float point; char name[20]; printf ("Enter your name : "); scanf ("%s",name); printf ("Enter your point : "); scanf ("%f",&point); return 0; } ตัวแปรข้อความ ไม่ต้องมี & หน้าตัวแปร ตัวแปรทศนิยม ต้องมี & หน้าตัวแปร
Example 2 #include<stdio.h> int main() { char first[20],last[20]; printf ("Enter your name and surname : "); scanf ("%s %s",first,last); printf ("Hi %s %s\nHow are you?",first,last); return 0; } การรับตัวแปรมากกว่า 1 ตัวในคำสั่งเดียว ต้องป้อนข้อมูลให้มีรูปแบบเหมือนกัน Enter your name and surname : Jirasak Sittigorn Hi Jirasak Sittigorn How are you?
Example 3 #include<stdio.h> int main() { char name[40]; float gpa; printf ("Enter your name : "); scanf ("%s",name); printf ("Enter your GPA : "); scanf ("%f",&gpa); printf ("Name : %s\n",name); printf ("Gpa : %f",gpa); return 0; }
Example 4 #include<stdio.h> int main() { char name[40]; float gpa; printf ("Enter your name : "); scanf ("%[^\n]",name); printf ("Enter your GPA : "); scanf ("%f",&gpa); printf ("Name : %s\n",name); printf ("Gpa : %f",gpa); return 0; }
Outline 1 Objectives 2 Scanf Function p 3 Printf Function The Other Function 4 5 Assignment #3
Show the Results Processing to User • โปรแกรมโดยทั่วไปต้องมีแสดงผลลัพธ์ของการประมวลผลหรือการทำงานของโปรแกรม เพื่อให้ผู้ใช้งานทราบผลลัพธ์ของการทำงาน • คำสั่งที่ใช้สำหรับการรับค่าในภาษาซีที่นิยมใช้กัน คือ คำสั่งหรือฟังก์ชัน printf()
Printf Function (1) • printf() เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ stdio.hใช้สำหรับแสดงข้อความ ค่าของตัวแปรหรือผลการดำเนินการของนิพจน์ออกทางหน้าจอ printf (format-string, data-list); printf(“format”, argument1, argument2, … ); printf(“message or control",variable list);
Printf Function (2) Format / Carriage Control Format Code Value printf ("Sum = %f \n", a+b);
Format-string • format-string or format or massage or control format • เป็นรูปแบบการแสดงค่าที่ถูกกำหนดตามชนิดของข้อมูลหรือตัวแปร • แสดงอยู่ในเครื่องหมาย Double quotation mark (“_”) • รูปแบบการรับค่าตัวแปร (% ตามหลังด้วยอักขระ • อักขระควบคุมหรือ Escape Character
Data-list • data-list or argument or variable list • คือ ตำแหน่งของตัวแปรที่ต้องการจะนำข้อมูลออกไปแสดง ถ้ามีมากกว่า 1 ตัวแปรหรือ 1 พจน์ขึ้นไปจะต้องคั่นระหว่างตัวแปรหรือนิพจน์ด้วยเครื่องหมาย Comma (,) • ซึ่งข้อมูลในส่วนนี้อาจจะเป็น ตัวแปร, นิพจน์ หรือการดำเนินการระหว่างตัวแปรก็ได้
Example of PrintfFuction intage; printf("Your age is :%d", age); char name[20]; printf ("Your name is :%s",name); float g = 3.5; printf("GPA : %.2f",g); intday, month, year; printf(“Current date: %d/%d/%d",day,month,year);
Order of Arguments (Data-list) printf(“Today is %s , %d %s”.,”Tuesday”, 28, “October”); printf(“\nTemperature is \”%f celcius.\” ”, 24.5); Today is Tuesday , 28 October. Temperature is “24.500000” celcius.
Example of Format Control #include <stdio.h> int x1 = 32, x2 = 0x7A, x3 = 0527; float y1 = -352.681, y2 = 9.23e04; char z = 'A'; char name[11] = "University"; void main() { printf ("x1 = %d", x1); printf ("x2 = %x x3 = %o", x2, x3); printf ("y1 = %f y2 = %e", y1, y2); printf ("z = %c name = %s", z, name); }
Mismatch Example of Format Control #include <stdio.h> int x1 = -456, x2 = 0.72, x3 = 1xe53; float y1 = -67.335, y2 = 5.21e03; char z = 'C'; void main() { printf ("x2 = %d x3 = %d", x2, x3); printf ("x1 = %u", x1); printf ("y1 = %e y2 = %f", y1, y2); printf ("z = %d", z); }
Format Control : Amount Behind floating point #include <stdio.h> float x1 = 17.983, x2 = 4.149e+03; void main() { printf ("%.4f ", x1); printf ("%.1f ", x1); printf ("%.2e ", x2); printf ("%.7e ", x2); } หมายเหตุ : จำนวนหลักหลังจุดทศนิยมสามารถกำหนดได้โดยคำสั่ง %.nf หรือ %.ne โดย nคือ จำนวนหลักหลังจุดทศนิยมที่ต้องการแสดง
Format Control for Message #include <stdio.h> char message[] = "Engineering"; void main() { printf ("%.6sX\n", message); printf ("%12.6sX\n", message); printf ("%-12.6sX\n", message); } • หมายเหตุ : ข้อความสามารถถูกแสดงเพียงบางส่วนเมื่อใช้คำสั่ง %m.nsโดย n คือจำนวนอักขระที่ต้องการให้แสดง และ m คือ พื้นที่ที่ใช้แสดงผล • n คือ จำนวนอักขระที่ต้องการให้แสดง • %-m.nsทำให้ข้อความที่ถูกแสดงชิดขอบด้านซ้าย
Example of Format Control for Message #include<stdio.h> main() { printf(":%s:\n", "Hello, world!"); printf(":%15s:\n", "Hello, world!"); printf(":%.10s:\n", "Hello, world!"); printf(":%-10s:\n", "Hello, world!"); printf(":%-15s:\n", "Hello, world!"); printf(":%.15s:\n", "Hello, world!"); printf(":%15.10s:\n", "Hello, world!"); printf(":%-15.10s:\n", "Hello, world!"); }
Example of Format Control for Numerical #include<stdio.h> main() { printf("The color: %s\n", "blue"); printf("First number: %d\n", 12345); printf("Second number: %04d\n", 25); printf("Third number: %i\n", 1234); printf("Float number: %3.2f\n", 3.14159); printf("Hexadecimal: %x\n", 255); printf("Octal: %o\n", 255); printf("Unsigned value: %u\n", 150); printf("Just print the percentage sign %%\n", 10); }
Example of Printf & Scanf Function /* scanf example */ #include <stdio.h> int main () { char str [80]; inti; printf ("Enter your family name: "); scanf ("%s",str); printf ("Enter your age: "); scanf ("%d",&i); printf ("Mr. %s , %d years old.\n",str,i); printf ("Enter a hexadecimal number: "); scanf ("%x",&i); printf ("You have entered %#x (%d).\n",i,i); return 0; }
The Use of Carriage Control #include <stdio.h> void main() { printf("Information\tTechnology\n"); printf ("C Lang"); printf ("\b\b\b\bProgramming"); }
Outline 1 Objectives 2 Scanf Function p 3 Printf Function The Other Function 4 5 Assignment #3
The Other Functions putchar(ch); puts(str); ch = getchar(); ch = getch(); gets(str);
Show the Information : Putchar Function • putchar ( ch ) : เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ stdio.hใช้สำหรับอักขระออกทางหน้าจอครั้งละตัวอักขระ • ch : เป็นตัวแปรที่เก็บข้อมูลชนิด charที่ต้องการแสดงผลซึ่งแสดงอยู่ภายใน ‘_’ putchar(ch);
Example of Putchar Function #include <stdio.h> char Name = ‘A'; void main() { putchar (Name); printf(“\n”); putchar ('b'); }
Show the Information : Puts Function • puts( str ) :เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ stdio.hใช้แสดงข้อความออกทางหน้าจอ ซึ่งหลังจากแสดงข้อความแล้วจะขึ้นบรรทัดใหม่ • str : เป็นตัวแปรที่เก็บข้อมูลชนิด stringที่ต้องการแสดงผลซึ่งแสดงอยู่ภายใน “_” puts(str);
Example of Puts Function #include <stdio.h> char message[] = "C Programming"; void main() { puts (message); puts (“is very easy”); }
Putchar & Puts Function #include <stdio.h> char ch = 'A', str[] = "Computer"; char message[] = "C Programming"; void main() { putchar (ch); putchar (' '); putchar (str[1]); putchar ('\n'); puts (str); puts (message); }
Receiving the Information : Getchar Function • getchar ( ) : เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ stdio.hโดยรับข้อมูลได้ครั้งละ 1 อักขระเท่านั้นเมื่อป้อนหรือรับข้อมูลจากคีย์บอร์ดแล้วต้องกด Enter • ch : เป็นตัวแปรชนิด charที่ต้องการเก็บข้อมูล ch = getchar();
Example of Getchar Function(1) #include <stdio.h> #include <conio.h> void main(){ char ch;ch = getchar();printf("Input Char is :%c",ch);} }
Example of Getchar Function(2) #include <stdio.h> #include <conio.h> char x; main() { printf ("Enter your grade : "); x = getchar(); printf ("Programming Language Grade : %c",x); }
Receiving the Information : Getch Function • getch ( ) :เป็นฟังก์ชันมาตรฐานในภาษา C ซึ่งอยู่ใน Library ที่ชื่อ conio.hใช้รับข้อมูลครั้งละ 1 อักขระ และจะทำงานให้คำสั่งต่อไปโดยไม่แสดงค่าที่รับเข้ามา • ch : เป็นตัวแปรชนิด charที่ต้องการเก็บข้อมูล ch = getch();
Example of Getch Function (1) #include <stdio.h> #include <conio.h> char x; main() { printf ("Enter your grade : "); x = getch(); printf ("Programming Language Grade : %c",x); }
What is the missing & what is the results? void main () { char ch1,ch2; printf ("Enter Character 1 : "); ch1 = getchar(); printf ("Enter Character 2 : "); ch2 = getch(); puts ("\n**** Output ****"); printf ("Char 1 = %c\nChar 2 = %c", ch1,ch2); } Enter Character 1 : J Enter Character 2 : **** Output **** Char 1 = J Char 2 = O พิมพ์ O แต่ไม่แสดงออกมา
Example of Getche Function (1) #include <conio.h> #include <stdio.h> void main(){ char ch;ch = getche();printf("Input Char is :%c",ch); }
Example of Getche Function (2) #include<stdio.h> #include<conio.h> main() { printf("Waiting for a character to be pressed from the keyboard to exit."); getche(); return 0; }