padlet-uploads.storage.googleapis.com · Web viewเนื้อหาสาระ. 1....
Transcript of padlet-uploads.storage.googleapis.com · Web viewเนื้อหาสาระ. 1....
แผนการเรยนรรายวชา หนวยท 8วชา การเขยนโปรแกรมคอมพวเตอร (Computer Programming)
สปดาหท
หนวยท 8 การสรางและประมวลผลแฟมขอมลชนดลำาดบ
เรอง การสรางและประมวลผลแฟมขอมลชนดลำาดบ จำานวน 8 ชวโมง
เนอหาสาระ1. คำาสงควบคมการเปด-ปดแฟมขอมล
1.1 ฟงกชน fopen()1.2 ฟงกชน fclose()
2. คำาสงควบคมการบนทก-อานขอมลจากแฟมขอมล2.1 ฟงกชน fputc() 2.2 ฟงกชน fgetc() 2.3 ฟงกชน fprintf() 2.4 fscanf ()
จดประสงคการเรยนร1. เขยนอธบายลกษณะการทำางานของแฟมขอมลชนดลำาดบ
ได2. เขยนโปรแกรมภาษาซในลกษณะแฟมขอมลชนดลำาดบตาม
โจทยกำาหนดได
กจกรรมการเรยนร1. ขนนำาเขาสบทเรยน นกเรยนทำาแบบทดสอบกอนเรยน
หนวยท 9 ใชเวลา 15 นาท
2. ขนการเรยนร นกเรยนศกษาเรอง การสรางและประมวลผลแฟมขอมลชนดลำาดบ
3. ขนการฝกทกษะ นกเรยนทำาแบบฝกทกษะเรอง การเขยนโปรแกรมภาษาซจดการ
แฟมขอมลชนดลำาดบ4. ขนสรป ทำาแบบทดสอบหลงเรยนหนวยท 9 ใชเวลา 15 นาท
สอการเรยนร1. เอกสารประกอบการเรยน2. สอนำาเสนอ Power Point3. ใบงาน4. แบบฝกทกษะ
การประเมนผลการเรยนร1. การทดสอบกอนเรยนและหลงเรยน2. การทำากจกรรมตามใบงาน 3. การทำากจกรรมแบบฝกทกษะ
หนวยท 9การสรางและประมวลผลแฟมขอมลชนดลำาดบ
สาระสำาคญแฟมขอมลชนดลำาดบ (Text File) หรอ (Sequential
Access) เปนการประมวลผลของแฟม ใหอยในลกษณะขอมลประเภทขอความเกบขอมลในรปแบบของรหส ASSCII คอเกบเปน
ตวอกษร ทำาใหการอานแฟมขอมลทำาไดดวยโปรแกรมประเภทเอดเตอร นามสกลของไฟลคอ .txt และ .dat
เนอหาสาระ1. คำาสงควบคมการเปด-ปดแฟมขอมล
1.1 ฟงกชน fopen()1.2 ฟงกชน fclose()
2. คำาสงควบคมการบนทก-อานขอมลจากแฟมขอมล2.1 ฟงกชน fputc() 2.2 ฟงกชน fgetc() 2.3 ฟงกชน fprintf() 2.4 fscanf ()
จดประสงคการเรยนร1. เขยนอธบายลกษณะการทำางานของแฟมขอมลชนดลำาดบ
ได2. เขยนโปรแกรมภาษาซในลกษณะแฟมขอมลชนดลำาดบได
แบบทดสอบทาย หนวยท 9
คำาสง จงเลอกคำาตอบทถกตองทสด1. แฟมขอมลชนดลำาดบสามารถเปดอานดวยโปรแกรมขอใด
ก. Paint ข. Edit Plusค. Microsoft wordง. Microsoft excel
2. ฟงกชนทใชควบคมใหระบบเปดแฟมขอมลชนดลำาดบคอขอใดก. fopen( )ข. fgetc( )ค. fclose( )
ง. fputc( )3. การสนสดของขอมลทจดเกบแบบแฟมขอมลชนดลำาดบคอขอใด
ก. รหสแอสกของ esc ข. รหสแอสกของ \nค. รหสแอสกของ enterง. รหสแอสกของ spacebar
4. ตวแปรทบอกตำาแหนงการดำาเนนการในตำาแหนงใดของแฟมขอมลชนดลำาดบคอขอใด
ก. ตวแปรพอยนเตอรข. ตวแปรยกกำาลงสองค. ตวแปรแบบเทกซไฟลง. ตวแปรแบบไบนารไฟล
5. ขนตอนการอานแฟมขอมลชนดลำาดบขอใดเรยงลำาดบถกตองA. กำาหนดตวแปรแบบตวช B. เปดแฟมขอมลแบบอาน C. ตรวจสอบสถานะภาพการเปดแฟม D. ปดแฟมขอมลก. A C B D
ข. A B C Dค. B C A Dง. B A C D
6. การเปดไฟลโหมด r ของแฟมขอมลชนดลำาดบหมายถงขอใดก. เปดเทกซไฟลเพออานขอมล ข. สรางเทกซไฟลเพออานขอมลค. เปดเทกซไฟลเพอเขยนขอมลตอทายง. สรางเทกซไฟลเพออานขอมลตวสดทาย
7. การเปดแฟมขอมลเกาพออานและบนทกขอมลตอทายของแฟมขอมลชนดลำาดบคอขอใด
ก. rข. w+tค. r+tง. a+t
8. คำาสงเปดแฟมขอมลเดมชอ sample.txt เพออานและบนทกขอมลคอขอใด
ก. fp = fopen (“sample.txt, r”) ข. fp = fopen (“sample.txt, w”) ค. fp = fopen (“sample.txt”, “r+t”)ง. fp = fopen (“sample.txt”, “w+t”)
9. คำาสงทใชอานขอมลจากไฟลครงละ 1 ไบตคอขอใดก. getch() ข. fgetc()ค. fopen()ง. getchar()
10. คำาสง fgets) ทำาหนาทขอใดก. เขยนขอมลลงไฟล
ข. ตรวจสอบการเปดไฟลค. ปดแฟมขอมลแบบสตรงง. อานขอมลแบบสตรงจากไฟล
11. คำาสง exit(1); ตองประกาศไวทขอใดก. #include <stdio.h>ข. #include <conio.h>ค. #include <stdlib.h>ง. #include <string.h>
โปรแกรมสำาหรบตอบขอท 12-15#include <stdio.h>#include <conio.h>void main(){ FILE *fpt; if ((fpt=fopen("C:\\TC\BIN\\test.txt","w"))==NULL) { printf("Cannot open file \n"); exit(1); } fputs("TURBO C \n",fpt);
fputs("TEST TEST \n",fpt); fputs("PROGRAM \n",fpt);
fclose(fpt);}12. จากโปรแกรมขางตนคอการจดการแฟมขอมลแบบใด
ก. สรางเทกซไฟลเพอเขยนขอมลข. อานขอมลแบบสตรงจากแฟมขอมลค. เปดแฟมแบบเทกซไฟลเพออานขอมลง. เปดแฟมแบบเทกซไฟลเพอบนทกขอมล
13. จากโปรแกรมขางตน คำาสง fputs () มความหมายคอขอใด
ก. ปดแฟมขอมลแบบสตรงข. เปดแฟมขอมลแบบสตรงค. อานขอมลแบบสตรงจากแฟมง. เขยนขอมลแบบสตรงจดเกบในแฟม
14. จากโปรแกรมขางตนขอมลถกจดเกบไวทขอใดก. NULL ข. test.txtค. FILE *fptง. F9TE.CPP
15. จากโปรแกรมขางตนเปดดขอมลดวยโปรแกรมขอใดก. Paint ข. Notepadค. Microsoft Wordง. Microsoft Excel
การสรางและประมวลผลแฟมขอมลชนดลำาดบ
แฟมขอมล (Data File) เปรยบเสมอนกบแฟมเอกสารในสำานกงานทเกบขอมลหลายรายการทเปนเรองเดยวกนไวดวยกน ขอมลมลกษณะคงทในระยะเวลาหนงไมมการเปลยนแปลงทกครงทมการประมวลผล ตวอยางระบบงานทเปนลกษณะแฟมขอมลคอ แฟมประวตพนกงาน ซงมการเปลยนแปลงปละ 1 ครง แฟมบตรประชาชน อาจมการเปลยนแปลงบางสวนคอ ชอ หรอนามสกล อาย นำาหนก ซงมระยะเวลาในการเปลยนแปลงคอเปลยนแปลงเมอมการทำาบตรประชาชนใหม
ภาษาซแบงแฟมขอมลออกเปน 2 ประเภท คอ แฟมขอมลชนดลำาดบหรอประเภทขอความ และแฟมขอมลชนดสมหรอประเภทไบนาร ซงการจดการแฟมขอมลมขนตอนหลกคอ การเปดแฟมขอมลเพอตดตอกบขอมลในตวแปร โดยดำาเนนการในลกษณะเพมเตมขอมล การเรยกดขอมล และขนตอนสดทายคอ การปดแฟมขอมล
แฟมขอมลชนดลำาดบหรอประเภทขอความ (Text File) หรอ (Sequential Access) ซงการจดการแฟมประเภทนอาจเขยนโดยภาษาซโดยตรง สรางโดยใชโปรแกรมประเภทไฟลเอกสารประเภท Notepad ซงตองกดปม enter ทกครงเพอระบการสนสดของ
ขอมลแตละเรคคอรด จากนนโปรแกรมภาษาซจะดำาเนนการประมวลผลในสวนอน ๆ ได
1. คำาสงควบคมการเปด-ปดแฟมขอมลของแฟมขอมลชนดลำาดบหรอแฟมขอมลประเภท ขอความ (Text File) หรอ (Sequential Access) ประกอบดวยดงน
1.1 ฟงกชน fopen() ใชควบคมใหระบบเปดแฟมขอมล ซงมรปแบบคอ
FILE *fptn_namefptn_name = fopen (“drive :/
f_name.type”,”mode”);
fptn_name คอ ชอตวแปรแบบตวช ชทตำาแหนงแรกของขอมลในแฟมขอมลเสมอ
drive/ คอ ชอไดรฟทตองการตดตอกบแฟมขอมล เชน ไดรฟ C
f_name.type คอ ชอแฟมขอมลแลวจด ( ) ตามดวยชนดแฟมขอมล เชน txt หรอ
datmode คอ ลกษณะโหมดการทำางานของแฟมขอมล เชน เปดแฟมเพอบนทก
ขอมลซงโหมดตาง ๆ แสดงดงตาราง 9.1
ตารางท 9.1 โหมดการทำางานของการเปดแฟมขอมลชนดลำาดบText file
ความหมาย
w, wt เปดแฟมใหมสำาหรบบนทกขอมล ถาระบชอแฟมซำาจะลบแฟมขอมลในแฟมนนทงหมดแลวเรมบนทกใหม
r, rt เปดแฟมเกา เพออานขอมล ถาไมมแฟมทระบจะเกดขอผดพลาด
a, at เปดแฟมเกา เพอบนทกขอมลตอทาย ถาไมมชอไฟลทระบจะสรางแฟมใหม
r+ t เปดแฟมเกาเพออานและบนทกขอมลw+t เปดแฟมใหมเพออานและบนทกขอมลa + t เปดแฟมเกาเพออานและบนทกขอมลตอทาย
ทมา : รงทวา เสารสงห, 2549.
การจดการเพอเปดแฟมขอมลในอปกรณสอบนทกอาจมขอผดพลาด ตองใชคำาสงเพอตรวจสอบความผดพลาดทเกดขน เชน เมอทำาการอานแฟมขอมลแลวไมพบแฟมขอมลตามทระบระบบจะสงคาวาง ในทางคอมพวเตอรใช NULL เปนคาวาง และออกจากการทำางานของโปรแกรมดวยคำาสง exit(0) และควรจะตองมการแสดงขอความเพอแสดงขอผดพลาดทเกดขนเพอเปนการสอใหผใชโปรแกรมเขาใจไดงายขนดวย
ตวอยางท 9.1 คำาสงทใชสำาหรบตรวจสอบการอานแฟมขอมลและพบขอผดพลาด
บรรทดท 1 FILE *fptบรรทดท 2 fpt = fopen (“c:/ex1.txt”,”w”);
บรรทดท 3 if (fpt ==NULL)บรรทดท 4 {บรรทดท 5 printf( “………Error Open
File……….. \n”); บรรทดท 6 exit(0);
บรรทดท 7 }
จากตวอยางท 9.1 คอ บรรทดท 1 คอการกำาหนดตวชชอ fpt บรรทดท 2 คำาสงเปดแฟม ขอมลชอ ex1.txt จากไดรฟ c บรรทดท 3 สงคาวาง (NULL) ถาตรวจสอบแลวไมพบแฟมขอมลตามทระบใหพมพขอความ Error Open File และออกจากระบบ ตามคำาสงบรรทดท 6
1.2 ฟงกชน fclose() ใชปดแฟมขอมล มรปแบบดงน
fclose ( fptn_name);
fptn_name คอชอตวแปรประเภทตวช ใชชตำาแหนงขอมลในแฟมขอมล
ตวอยางท 9.2 ปดแฟมขอมลชอ fpn
fclose (fpn);
2. คำาสงควบคมการบนทก-อานขอมลจากแฟมขอมล2.1 ฟงกชน fputc() ใชบนทกขอมลแบบอกขระ
(char) ทละตวลงแฟมขอมล มรปแบบดงน
_fputc (char_name, fptn_name ) ;
2.2 ฟงกชน fgetc() ใชอานขอมลจากแฟมขอมลแบบอกขระทละตว มรปแบบดงน
fgetc (fptn_name);
fprintf (fptn_name, control string ,var…);
หรอ char_name = fgetc (fptn_name)
char_name คอคาคงท หรอตวแปรประเภทอกขระ 1 ตว
fptn_name คอชอตวแปรประเภทตวช ตวอยางท 9.3 getc (fptn); หมายถงอานขอมลทละอกษร จากแฟมขอมลผาน
ตวแปรแบบตวชชอ fptn2.3 ฟงกชน fprintf() ใชบนทกขอมลลงแฟมขอมลใช
รปแบบขอมลเหมอนกบ ฟงกชน printf(); มรปแบบดงน
fptn คอ ตวแปรประเภทตวชcontrol string คอ รหสรปแบบขอมล เชน %d %f %t %s %c รวมทงใช รหสควบคม \n \t ไดvar คอ รายการคาคงท ตวแปร นพจน
ตวอยางท 9.4 fprintf(fpn, %d \t %d, x,y); หมายถง บนทกขอมลลงแฟมขอมลผานตวแปรแบบตว
ชชอ ptn ขอมลถกเกบใน ตวแปร x และ y เปนขอมลชนดตวเลข
จำานวนเตม2.4 fscanf() ใชอานขอมล จากแฟมขอมล แลวนำา
มาเกบลงตวแปร ทำางานคลาย กบคำาสง scanf() มรปแบบดงน
fscanf (fptn_name , control string ,&var ,…);
fptn_name คอ ชอตวแปรประเภทตวชcontrol string คอรหสรปแบบชอมล และรหส
ควบคมvar คอตวแปรทใชเกบขอมล โดยม & นำาหนา
ยกเวนตวแปรแบบสตรง ตวอยางท 9.5 fscanf (fpn, “%d” ,&x );
หมายถง อานขอมลจากแฟมขอมลผานตวแปรแบบตวช ชอ fpn
ตวอยาง 9.6 โปรแกรมสรางไฟลชอ my.txt และเขยนตวอกขระ 4 ตวคอ ABCD
#include <stdio.h>#include <conio.h>void main(){ FILE *fpt; if ((fpt=fopen("C:\\TC\BIN\\
my.txt","w"))==NULL) { printf("Cannot open file \n"); exit(1); } fputs("A",fpt);
fputs("B",fpt); fputs("C",fpt);
fputs("D",fpt); fclose(fpt);
}
จากโปรแกรมท 9.6 โปรแกรมสรางไฟลชอ my.txt เพอเขยนขอมลคอตวอกขระ ABCD โดยใชคำาสง fputc เพอเขยนตวอกขระทง 4 ตวลงไปทไฟล my.txt ทอยในไดรฟ C:\TC\BIN\ ทละตว ซงไฟลนเปนไฟลแบบขอความสามารถใชโปรแกรม Notepad เปดดไฟลขอมลได ดงภาพท 9.1
ภาพ ท 9.1 เปดไฟล my.txt ดวยโปรแกรม Notepad
ตวอยาง 9.7 โปรแกรมอานอกขระจากไฟล my.txt #include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ clrscr(); char c; FILE *fpt; if ((fpt=fopen("C:\\TC\BIN\\
my.txt","r"))==NULL) { printf("Cannot open file \n"); exit(1); } c = fgetc(fpt); printf("data = %c \n ",c); c= fgetc (fpt); printf("data = %c \n ",c); c = fgetc(fpt);
printf("data = %c \n ",c); c= fgetc (fpt); printf("data = %c \n ",c); fclose(fpt); getch();}
ภาพท 9.2 ผลทำางานของโปรแกรมอานอกขระ 4 ตวจากไฟล my.txt
จากภาพท 9.2 โปรแกรมอานอกขระทง 4 ตว โดยแตละครงทอานจะเกบคาทอานไดไวในตวแปร c ดวยคำาสง fgetc (fpt) จากนนใชฟงกชน printf เพอแสดงผลทางจอภาพ
ตวอยาง 9.8 โปรแกรมบนทกขอมลในแฟมขอมลชอ ex2.txt
#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ char name[10]; int salary; FILE *fp; clrscr(); fp = fopen("ex2.txt","w");
printf("enter your name ");scanf("%s",&name);printf("enter salary ");scanf("%d",&salary);fprintf(fp,"%s %d",name,salary);
fclose(fp);}
ภาพท 9.3 ผลการทำางานของโปรแกรมบนทกขอมลในแฟมขอมล
ชอ ex2.txt
จากภาพท 9.3 คอผลลพธของโปรแกรมบนทกขอมลซงมโครงสรางประกอบไปดวย ชอและเงนเดอน โดยเกบไวในแฟม ex2.dat เปนการทำางานแบบไฟล เรมจากเปดไฟลและบนทกขอมลเกบไวดวยคำาสง fP= fopen (“ex2.txt”,”w”) โดยรบชอและเงนเดอนทางแปนพมพและสงใหเขยนขอมลลงแฟมดวยคำาสง fprintf(fp, “%s %d”,name,salary) และเมอทำาการเขยนขอมลเรยบรอยแลวสงปดแฟมดวยคำาสง fclose(fp) ผลการทำางานของโปรแกรม โดยเมอสง Run แลวโปรแกรม จะแสดงขอความ enter your name เพอรอรบชอ พมพ som จากนนกดปม enter จะปรากฏขอความ enter salary เพอรอรบเงนเดอน พมพ 1000 จากนนกดปม enter โปรแกรมทำาการบนทกขอมล ในแฟม ex2.txt
ตวอยาง 9.9 โปรแกรมอานขอมลในแฟมขอมลชอ ex2.txt
#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ char ch,name[10];
int salary; float tax; FILE *fp; clrscr();
fp = fopen("ex2.txt","r"); while (!feof(fp)) { fscanf(fp,"%s %d",&name,&salary); tax = salary*3/100; printf("\n %s %d %.2f",name,salary,tax); } getch(); fclose(fp);
}
ภาพท 9.4 ผลการทำางานของโปรแกรมอานขอมลในแฟม
ขอมลชอ ex2.txt
จากภาพท 9.4 ผลลพธของโปรแกรมอานแฟมขอมลจากแฟมชอ ex2.dat ซงตองทำาการเปดไฟลและอานขอมลดวยคำาสง fP= fopen (“ex2.txt”,”r”) และกำาหนดรอบการทำางานใหทำาการอานขอมลจากแฟมจนครบ โดยทกครงทอานแฟมจะทำาการคำานวณภาษ (tax) จากคำาสง คอ tax=(salary*3)/100 และแสดงผลลพธทางจอภาพจากคำาสง printf(“\n %s %d %.2f”, name, salary,tax) จากนนปดแฟมดวยคำาสง fclose(fp) ซงในทนคอปอนขอมล som 1000 30.00 ซง som คอ ชอ (name) 1000 คอเงนเดอน (salary) และ 30.00 คอ ภาษ (tax) ทคำานวณได
ตวอยาง 9.10 โปรแกรมบนทกขอมลเพมในแฟมขอมลชอ ex2.txt
#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ char ch,name[10]; int salary; float tax; FILE *fp; clrscr();
fp = fopen("ex2.txt","a"); printf("enter your name"); scanf("%s",&name); printf("enter salary"); scanf("%d",&salary);
fprintf(fp,"%s %d",name,salary); fclose(fp);
}
ภาพท 9.5 ผลการทำางานของโปรแกรมบนทกขอมลเพมในแฟมขอมลชอ ex2.txt
จากภาพท 9.5 ผลลพธของโปรแกรมบนทกขอมลเพมในแฟมชอ ex2.dat ดวยคำาสง fP= fopen (“ex2.txt”,”a”) ซงมขนตอนคอ เปดไฟล และทำาการบนทกขอมล ชอ (name)และเงนเดอน (salary) รบขอมลทางแปนพมพจากนนทำาการเขยนขอมลลงแฟมดวยคำาสง fprintf(fp, “%s %d” ,name,salary) และเมอทำาการเขยนขอมลเรยบรอยแลวใหทำาการปดแฟมดวยคำาสง
fclose(fp) และภาพท 9.10 คอผลลพธของโปรแกรมบนทกขอมลเพม ซงเมอสง Run โปรแกรม บนจอภาพปรากฏขอความ enter your name เพอรอรบชอ พมพ apple จากนนกดปม enter จะปรากฏขอความ enter salary เพอรอรบเงนเดอน พมพ 1400 จากนนกดปม enter โปรแกรมทำาการบนทกขอมล ในแฟม ex1.dat จากนนใหทำาการเปดไฟลจากตวอยางท 9.13 สงใหโปรแกรมทำางานปรากฏผลดงภาพท 9.6 ซงจะพบวามขอมลเพมขนอกหนงเรคคอรด คอ apple 1400 42.00
ภาพท 9.6 ผลการทำางานโปรแกรมอานขอมลในแฟมขอมลชอ ex2.txt
สรปทายบทแฟมขอมลชนดลำาดบ (Text File) หรอ (Sequential
Access) เปนการประมวลผลของแฟม ใหอยในลกษณะขอมลประเภทขอความเกบขอมลในรปแบบของรหส ASSCII คอเกบเปนตวอกษร ทำาใหการอานแฟมขอมลทำาไดดวยโปรแกรมประเภทเอดเตอร พนฐานการทำางานของไฟลคอ การเปดไฟลเปนการทำาใหระบบรวาตองการตดตอกบไฟลใด และกระทำาการอานหรอเขยนขอมล สดทายคอปดไฟล
เกณฑการประเมน แบบฝกทกษะท 9.1
ชอ นามสกล………………………… …………………………ชน…………….. เลขท……………….
ขอท
หวขอการประเมน เกณฑการประเมน
1 การวเคราะหสงทโจทยตองการ (Output)
5 4 3 2 1
2 การวเคราะหวธการ (Process)3 การวเคราะหขอมลนำาเขา
(Input)4 การกำาหนดชนดของขอมล5 การออกแบบรปแบบการแสดง
ผลลพธ
6 การเขยนขนตอนการทำางาน7 การเขยนโปรแกรม
รวม (35)
ระดบคณภาพคะแนน 27-35 คะแนน หมายถง ดมากคะแนน 19-26 คะแนน หมายถง ดคะแนน 9-18 คะแนน หมายถง พอใชคะแนน 1-8 คะแนน หมายถง ปรบปรง
รายละเอยดเกณฑการประเมน แบบฝกทกษะท 9.1
หวขอการประเมน
เกณฑการใหคะแนน5 4 3 2 1
การวเคราะหสงทโจทยตองการ (Output)
วเคราะหสงทโจทยตองการไดครบ ถกตองทกประเดน
วเคราะหสงทโจทยตองการไดครบถกตอง 3 ใน 4 ประเดน
วเคราะหสงทโจทยตองการไดครบถกตอง 2 ใน 4 ประเดน
วเคราะหสงทโจทยตองการไดครบถกตอง 1 ใน 4 ประเดน
วเคราะหสงทโจทยตองการไมครบ ไมถกตองทกประเดน
การ วเคราะหวธ วเคราะหวธการ วเคราะหวธ วเคราะหวธ วเคราะหวธ
วเคราะหวธการ (Process)
การไดครบถกตองทกประเดน
ไดครบถกตอง3 ใน 4 ประเดน
การ ไดครบถกตอง 2 ใน 4 ประเดน
การ ไดครบถกตอง 1 ใน 4 ประเดน
การ ไมครบไมถกตองทกประเดน
การวเคราะหขอมลนำาเขา (Input)
วเคราะหขอมลนำาเขาครบ ถกตองทกประเดน
วเคราะหขอมลนำาเขาครบถกตอง 3 ใน 4 ประเดน
วเคราะหขอมลนำาเขาครบ ถกตอง 2 ใน 4 ประเดน
วเคราะหขอมลนำาเขาครบ ถกตอง 1 ใน 4 ประเดน
วเคราะหขอมลนำาเขาไมครบ ไมถกตอง ทกประเดน
การกำาหนดชนดของขอมล
กำาหนดชนดของขอมล ครบถกตองทกประเดน
กำาหนดชนดของขอมลครบถกตอง 3 ใน 4 ประเดน
กำาหนดชนดของขอมลครบถกตอง 2 ใน 4 ประเดน
กำาหนดชนดของขอมลครบถกตอง 1 ใน 4 ประเดน
กำาหนดชนดของขอมล ไมครบ ไมถกตองทกประเดน
การออกแบบรปแบบการแสดงผลลพธ
การออกแบบรปแบบการแสดงผลลพธ ครบถกตองทกประเดน
การออกแบบรปแบบการแสดงผลลพธ ครบถกตอง 3 ใน 4 ประเดน
การออกแบบรปแบบการแสดงผลลพธ ครบถกตอง 2 ใน 4 ประเดน
การออกแบบรปแบบการแสดงผลลพธ ครบถกตอง 1 ใน 4 ประเดน
การออกแบบรปแบบการแสดงผลลพธ ไมครบไมถกตอง ทกประเดน
การเขยนขนตอนการทำางาน
เขยนขนตอนการทำางาน ครบ ถกตองทกประเดน
เขยนขนตอนการทำางาน ครบถกตอง 3 ใน 4 ประเดน
เขยนขนตอนการทำางาน ครบ ถกตอง 2 ใน 4 ประเดน
เขยนขนตอนการทำางานครบถกตอง 1 ใน 4 ประเดน
เขยนขนตอนการทำางานไมครบ ไมถกตองทกประเดน
การเขยนโปรแกรม
เขยนโปรแกรมครบถวน ถกตองทกประเดน
เขยนโปรแกรมครบถวนถกตอง3 ใน 4 ประเดน
เขยนโปรแกรมครบถวน ถกตอง2 ใน 4 ประเดน
เขยนโปรแกรมครบถวนถกตอง1 ใน 4 ประเดน
เขยนโปรแกรมไมครบถวนไมถกตองทกประเดน
แบบฝกทกษะ 9.1เรอง การเขยนโปรแกรมภาษาซแฟมขอมลชนดลำาดบ
คำาสง เขยนโปแกรมภาษาซแฟมขอมลชนดลำาดบ
ขอ 1 เขยนโปรแกรมเพอจดเกบตวอกขระจำานวน 8 ตวคอ C O M P U T E Rขอ 2 เขยนโปรแกรมเพอบนทกชอ อาย นำาหนก สวนสง ในแฟมชอ ex9t.txt ขอ 3 เขยนโปรแกรมเพออานขอมลจากไฟล ex9t.txt ขอ 4 เขยนโปรแกรมเพอบนทกขอมลชอ อาย นำาหนก สวนสง เพมในแฟมชอ ex9t.txt
เฉลยแบบฝกทกษะ 9.1ขอ 1ขนตอนท 1 สงทโจทยตองการคอใหเขยนโปรแกรมเพอจดเกบตวอกขระจำานวน 8 ตวคอ C O M P T E Rขนตอนท 2 วธการคอ เขยนโปรแกรมแบบแฟมขอมลชนดลำาดบโหมด wขนตอนท 3 ขอมลทตองนำาเขาไมม เนองจากเปนการเขยนโปรแกรมเพอเขยนขอมลจดเกบไวในไฟลขนตอนท 4 รปแบบการแสดงผลลพธ ไมมเนองจากเปนการเขยนโปรแกรมเพอเขยนขอมลจดเกบไว ในไฟลขนตอนท 5 ตวแปร ไมมเนองเปนการเขยนโปรแกรมเพอเขยนขอมลจดเกบไวในไฟลขนตอนท 6 ลำาดบขนตอนการทำางานคอ
6.1 กำาหนดสวนหว คอ stdio.h และ stdlib.h6.2 กำาหนดไฟลพอยตเตอรชอ *fpt6.3 ตรวจสอบคาทไดจาก fopen กำาหนดเปน โหมด w เปน
คาวาง (NULL) (คำาสง if (( fp = fopen (“c:\tc\bin\tt4.txt,”w”))= NULL); ถาไมสามารถเปดไฟล
แสดงขอความ Cannot open file และออกจากโปรแกรม exit(1) แตถาสามารถเปด
ไฟลไดใหไปทำาขอ 6.4 6.4 เขยนขอมลหนงตวอกขระ C (คำาสง fputc) ลงในไฟล
ขอมลตำาแหนง fpt ทำาตามขอ 6.4 จนหมดตวอกขระทตองการเขยนขอมลลงไฟล
6.5 ปดไฟล (คำาสง fclose)
ขนตอนท 7 โปรแกรมและผล Run#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ FILE *fpt; if ((fpt=fopen("C:\\TC\\BIN\\
tt4.txt","w"))==NULL) { printf("Cannot open file\n"); exit(1);
} fputc('C',fpt); fputc('O',fpt); fputc('M',fpt); fputc('P',fpt); fputc('U',fpt); fputc('T',fpt); fputc('E',fpt); fputc('R',fpt); fclose(fpt);
}ผล
Run
ขอ 2ขนตอนท 1 สงทโจทยตองการคอเขยนโปรแกรมเพอบนทกชอ อาย นำาหนก สวนสง
ในแฟมชอ ex9t.txt ขนตอนท 2 วธการคอ เขยนโปรแกรมแบบแฟมขอมลชนดลำาดบในโหมด w
ขนตอนท 3 ขอมลทตองนำาเขาคอ ชอ อาย นำาหนก สวนสงขนตอนท 4 รปแบบการแสดงผลลพธ
enter your name =enter age =enter your weight=enter tall =
ขนตอนท 5 ขอมลนำาเขาและประเภทตวแปร
ชอขอมล ตวแปร ประเภทขอมล
กระบวนการ
ชอ name string Inputอาย age Integer Input
นำาหนก Wei integer Inputสวนสง tal Integer input
ขนตอนท 6 ลำาดบขนตอนการทำางานคอ6.1 กำาหนดสวนหว คอ stdio.h และ stdlib.h6.2 กำาหนดขอมลชอ เปนตวแปรแบบขอความความกวาง 5
คอ char name[5] ขอมล อาย นำาหนก สวนสง เปนตวแปรแบบจำานวนเตม คอ int age,wei,tal
6.3 กำาหนดไฟลพอยตเตอรชอ *fpt6.3 เปดไฟลโหมด w ชอ ex9t.txt (คำาสง fp = fopen
(“c:\tc\bin\ex9t.txt,”w”);6.4 รบขอมลชอ อาย นำาหนก สวนสง เกบไวทตวแปร
name,age,wei,tal scanf(“%s”,&name); scanf(“%d”,&age); scanf(“%d”,&wei); scanf(“%d”,&tal);
6.5 เขยนขอมลลงไฟลไวในตวแปร name,age,wei,tal
fpritnf(fp,”%s %d %d %d”,name,age,wei,tal);
6.6 ปดไฟล fclose(fp)
ขนตอนท 7 โปรแกรม#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){char name[5];int age,wei,tal;FILE *fp;clrscr();fp = fopen("ex9t.txt","w");printf("enter your name");scanf("%s",&name);printf("enter age");scanf("%s",&age);printf("enter your weight");scanf("%s",&wei);printf("enter tall");scanf("%s",&tal); fprintf(fp,"%s %d %d ",name,age,wei,tal);
fclose(fp);}
ผล Run
ขอ 3ขนตอนท 1 สงทโจทยตองการคอเขยนโปรแกรมเพออานขอมลจากไฟล ex9t.txt ขนตอนท 2 วธการคอ เขยนโปรแกรมแบบแฟมขอมลชนดลำาดบในโหมด rขนตอนท 3 ขอมลทตองนำาเขาไมม เนองจากเปนการอานขอมลจากไฟล ex9t.txtขนตอนท 4 รปแบบการแสดงผลลพธ
ชอ อาย นำาหนก สวนสงขนตอนท 5 ขอมลแสดงผลลพธและประเภทตวแปร
ชอขอมล ตวแปร ประเภทขอมล
กระบวนการ
ชอ name string outputอาย age Integer output
นำาหนก Wei integer outputสวนสง tal Integer output
ขนตอนท 6 ลำาดบขนตอนการทำางานคอ6.1 กำาหนดสวนหว คอ stdio.h และ stdlib.h6.2 กำาหนดขอมลชอ เปนตวแปรแบบขอความความกวาง 5
คอ char name[5] ขอมล อาย นำาหนก สวนสง เปนตวแปรแบบจำานวนเตม คอ int age,wei,tal
6.3 กำาหนดไฟลพอยตเตอรชอ *fpt6.3 เปดไฟลโหมด w ชอ ex9t.txt (คำาสง fp = fopen
(“c:\tc\bin\ex9t.txt,”r”);6.4 กำาหนดรอบใหทำาการอานขอมลจนกระทงคาสดทาย
while(!feof(fp));6.5 อานขอมลจากไฟลจากตวแปร name,age,wei,tal
และแสดงคาfscanf(fp,”%s %d %d
%d”,name,age,wei,tal);printf(”\n %s %d %d
%d”,name,age,wei,tal);6.6 ปดไฟล fclose(fp)
ขนตอนท 7 โปรแกรม#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){char ch,name[5];int age,wei,tal;FILE *fp;clrscr();fp = fopen("ex9t.txt","r");while(!feof(fp)){fscanf(fp,"%s %d %d %d
",&name,&age,&wei,&tal);
printf("\n %s %d %d %d ",name,age,wei,tal);}getch();fclose(fp);
} ผล Run
ขอ 4ขนตอนท 1 สงทโจทยตองการคอเขยนโปรแกรมเพอบนทกชอ อาย นำาหนก สวนสง
เพมในแฟมชอ ex9t.txt ขนตอนท 2 วธการคอ เขยนโปรแกรมแบบแฟมขอมลชนดลำาดบในโหมด aขนตอนท 3 ขอมลทตองนำาเขาคอ ชอ อาย นำาหนก สวนสงขนตอนท 4 รปแบบการแสดงผลลพธ
enter your name =enter age =enter your weight=enter tall =
ขนตอนท 5 ขอมลนำาเขาและประเภทตวแปร
ชอขอมล ตวแปร ประเภท กระบวนกา
ขอมล รชอ name string inputอาย age Integer input
นำาหนก Wei integer inputสวนสง tal Integer input
ขนตอนท 6 ลำาดบขนตอนการทำางานคอ6.1 กำาหนดสวนหว คอ stdio.h และ stdlib.h6.2 กำาหนดขอมลชอ เปนตวแปรแบบขอความเกบขอมลได 5
ตวอกขระ คอ char name[5] ขอมล อาย นำาหนก สวนสง เปนตวแปรแบบจำานวนเตม คอ int age, wei, tal
6.3 กำาหนดไฟลพอยตเตอรชอ *fpt6.3 เปดไฟลโหมด w ชอ ex9t.txt (คำาสง fp = fopen
(“c:\tc\bin\ex9t.txt,”a”);6.4 รบขอมลชอ อาย นำาหนก สวนสง เกบไวทตวแปร
name, age, wei, tal scanf(“%s”,&name); scanf(“%d”,&age); scanf(“%d”,&wei); scanf(“%d”,&tal);
6.5 เขยนขอมลลงไฟลไวในตวแปร name,age,wei,tal fpritnf(fp,”%s %d %d
%d”,name,age,wei,tal);6.6 ปดไฟล fclose(fp)
ขนตอนท 7 โปรแกรม#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){
char ch,name[10]; int age,wei,tal; FILE *fp; clrscr(); fp = fopen("ex2.ex9t","a"); printf("enter your name ="); scanf("%s",&name); printf("enter age ="); scanf("%d",&age); printf("enter your weight="); scanf("%d",&wei); printf("enter tal ="); scanf("%d",&tal);
fprintf(fp,"%s %d %d %d",name,age,wei,tal);
fclose(fp);}
ผล Run
แบบทดสอบหลงเรยน หนวยท 9
คำาสง จงเลอกคำาตอบทถกตองทสด1. แฟมขอมลชนดลำาดบจดเกบขอมลในรปแบบใด
ก. รหสนโมนกข. ระบบเลขฐานค. ภาษาคอมพวเตอรง. รหสแอสกของตวอกขระ
2. ฟงกชนทใชควบคมใหระบบปดแฟมขอมลชนดลำาดบคอขอใดก. fopen( )ข. fgetc( )ค. fclose( )
ง. fputc( )3. โปรแกรมภาษาซสรางสญลกษณการขนบรรทดใหมคอขอใด
ก. \aข. \nค. \tง. \ \
4. ตวแปรทบอกตำาแหนงการดำาเนนการของตำาแหนงใดของไฟลคอขอใด
ก. FILE *fpt;ข. FILE *ftt;ค. FILE *ftp;ง. FILE *fpp;
5. การเปดไฟลโหมด w ของแฟมขอมลชนดลำาดบหมายถงขอใดก. เปดเทกซไฟลเพอบนทกขอมลข. สรางเทกซไฟลใหมเพออานขอมลค. เปดเทกซไฟลเพอเขยนขอมลตอทายง. สรางเทกซไฟลเพออานขอมลตวสดทาย
6. ขนตอนการอานแฟมขอมลชนดลำาดบขอใดเรยงลำาดบถกตองA. กำาหนดตวแปรแบบตวช B. เปดแฟมขอมลแบบอาน C. ตรวจสอบสถานะภาพการเปดแฟม D. ปดแฟมขอมลก. A C B Dข. A B C Dค. B C A Dง. B A C D
7. โหมดการเปดแฟมขอมลเกาเพออานและบนทกขอมลคอขอใดก. a, at ข. r + tค. w + tง. w, wt
8. คำาสงปดไฟลชอ sample.txt คอขอใดก. fclose(fpt); ข. fpt (FILE *fpt); ค. fclose(“sample.txt”, “r”)ง. fclose(“sample.txt”, “w”)
9. คำาสงทใชเขยนขอมลเกบในตวแปรคอขอใดก. fprintf() ข. fgetc()ค. fgets()ง. fputs()
10. คำาสงขอใดจบคไมถกตองก. fputc() กบ fgets()ข. fputsZ() กบ fgets()
ค. fprintf() กบ fscanf()ง. fopen() กบ fclose()
11. คำาสง fputc(name[i], fpt); ประกาศตวแปรตามขอใดก. i, char name[20];ข. int i; char name[20];ค. float i; char name[20];ง. string i; char name[20];
โปรแกรมสำาหรบตอบขอท 12-15#include <stdio.h>#include <conio.h>#include <stdlib.h>void main(){ char ch,name[10]; int age,wei,tal; FILE *fp; clrscr(); fp = fopen("ex2.ex9t","a"); printf("enter your name ="); scanf("%s",&name); printf("enter age ="); scanf("%d",&age); printf("enter your weight="); scanf("%d",&wei); printf("enter tal ="); scanf("%d",&tal);
fprintf(fp,"%s %d %d %d",name,age,wei,tal);
fclose(fp);
}
12. จากโปรแกรมขางตนคอการจดการแฟมขอมลแบบใดก. เปดเทกซไฟลเพออานข. สรางเทกซไฟลใหมเพอเขยนค. สรางเทกซไฟลเพอเขยนทบไฟลเดมง. เปดเทกซไฟลเพอเขยนขอมลตอทาย
13. จากโปรแกรมขางตน คำาสง fprintf (fp, %s %d ,mame,age,wei,tal) ความหมายคอขอใด
ก. ขอมลสตรงและตวเลขจากตวแปร ,mame,age,wei,talข. เขยนขอมลสตรงและตวเลขจากตวแปร
,mame,age,wei,tal ค. สรางขอมลสตรงและตวเลขจากตวแปร
,mame,age,wei,talง. ปรบปรงขอมลสตรงและตวเลขจากตวแปร
,mame,age,wei,tal14. จากโปรแกรมขางตนถาตองการเขยนโปรแกรมอานขอมลทถกจดเกบไวตองเปดโหมดใด
ก. rข. r+tค. wง. w+t
15. จากโปรแกรมขางตนตองการอานขอมลจากไฟล ex2.txt เกบในตวแปรคอคำาสงขอใด
ก. fgetc(fp, %s %d %d %d,mame,age,wei,tal)ข. fputc(fp, %s %d %d %d,mame,age,wei,tal)
ค. fputs(fp, %s %d %d %d,mame,age,wei,tal)ง. fscanf(fp, %s %d %d %d,mame,age,wei,tal)
เฉลยแบบทดสอบกอนเรยนหนวยท 9
การสรางและประมวลผลแฟมขอมลชนดลำาดบ
ขอท คำาตอบกอนเรยน
1 ข2 ก3 ค4 ก5 ข6 ก7 ง8 ค9 ข
10 ง
11 ค12 ง13 ค14 ข15 ข
เฉลยแบบทดสอบหลงเรยนหนวยท 9
การสรางและประมวลผลแฟมขอมลชนดลำาดบ
ขอท คำาตอบหลงเรยน
1 ง2 ค3 ข4 ก5 ก6 ข7 ก
8 ก9 ง10 ง11 ข12 ง13 ข14 ก15 ง