wanchanakat
27th January 2013, 21:56
ข้อ 1
โปรแกรมเก็บข้อมูลสินค้า 1 ชนิด ภายในโปรแกรมประกอบด้วย ฟังก์ชันต่างๆดังนี้
ฟังก์ชันใส่ข้อมูลสินค้า getdata()
ฟังก์ชันเพิ่มจำนวนสินค้า 10 ชิ้น add10()
ฟังก์ชันลดจำนวนสินค้า 10 ชิ้น sub10()
และฟังก์ชันแสดงจำนวนรายละเอียดภายในสินค้า
โปรแกรมนี้ยังไม่สมบรูณ์ดี ให้นักศึกษาเขียนคำประกาศฟังก์ชัน getdata() และ add10 และคำสั่งภายในให้สมบรูณ์
#include <stdio.h>
#include <string.h>
struct product {
char name[15];
int number;
float price;
};
struct product getdata(void) {
struct product x;
strcpy(x.name,"Chewing gum");
x.number = 100;
x.price = 25.5;
return x;
}
showdata( )
{
..
}
void sub10(struct product &x) {
if (x.number > 10)
x.number -=10;
}
(1)
add10( ..)
{
x.number +=10;
}
int main(void)
{
int i;
struct product y;
y = getdata();
showdata(y);
add10(y);
add10(y);
showdata(y);
sub10(y);
showdata(y);
return 0;
}
ข้อ2
ให้ นักศึกษาอธิบายการทํางานของโปรแกรมนี้ พร้ อมกับชี้ให้ เห็นว่ าจุดผิดของโปรแกรมคือจุดใด
Hint: มีทผิด 1 จุด
ี่
#include <stdio.h>
#include <string.h>
void callnum(int i,char y) {
char data [10][8] = {"zero","one","two","three","four",
"five","six","seven","eight","nine"};
strcpy(y,data[i]);
}
int main(void) {
char ch[10];
int i;
int telno[] = {0,2,7,3,7,3,0,0,0};
for (i=0;i<9;i++) {
callnum(telno[i],ch);
printf("%s ",ch);
}
return 0;
}
ข้อ 3
จงวิเคราะห์โจทย์ วิเคราะห์การทำงาน เขียนขั้นตอนการทำงานอย่างละเอียด เขียนรหัส
เทียม เขียนแผนภาพการไหลของข้อมูล (Flowchart) พร้อมทั้งเขียนโปรแกรมการเรียงลำ
ดับตัวเลข (Bubble sort) 10 จำนวน จากน้อยไปมาก กำหนดให้มีการรับค่าตัวเลข 10 จำนวนจากแป้นพิมพ์ ให้เขียนฟังก์ชันในการเรียงลำดับตัวเลขชื่อฟังก์ชัน Sort_function โดยฟังก์ชันนี้จะส่งผลลัพธ์ของการเรียงลำดับตัวเลขมาแสดงผลในฟังก์ชันหลัก (main function) และมีข้อกำหนดให้ฟังก์ชันดังกล่าวมีการส่งค่าในสองรูปแบบคือ pass by reference และ pass by value ตามลำดับ
ข้อ 4
โปรแกรมต่ อไปนีแสดงผลเลขอะไรจอภาพ ใช้ เวลาคิดไม่ เกิน 10นาที เมือคิดเสร็จแล้ วให้ ลองพิมพ์ code
้
่
ดังกล่าวลงคอมพิวเตอร์ และตรวจสอบคําตอบ
#include <stdio.h>
int i;
struct data {
int i;
int j;
}W;
void fa(int *a, int b);
void fb(int c, int *d);
void fc(struct data x,struct data
*y, struct data z);
int main(void) {
int j=0;
int i = 15;
struct data X,Y,Z;
X.i = 10;
X.j = 20;
fa(&i,j);
printf("\n i=%d, j=%d",i,j);
fb(i,&j);
printf("\n i=%d, j=%d",i,j);
fc(X,&Y,Z);
printf("\n W.i=%d,W.j=%d",W.i,W.j);
printf("\n X.i=%d, X.j=%d",X.i,X.j);
printf("\n Y.i=%d, Y.j=%d",Y.i,Y.j);
printf("\n Z.i=%d, Z.j=%d",Z.i,Z.j);
return 0;
}
void fa(int *a, int b) {
i = 4;
*a = *a+3;
b = i+2;
}
โปรแกรมเก็บข้อมูลสินค้า 1 ชนิด ภายในโปรแกรมประกอบด้วย ฟังก์ชันต่างๆดังนี้
ฟังก์ชันใส่ข้อมูลสินค้า getdata()
ฟังก์ชันเพิ่มจำนวนสินค้า 10 ชิ้น add10()
ฟังก์ชันลดจำนวนสินค้า 10 ชิ้น sub10()
และฟังก์ชันแสดงจำนวนรายละเอียดภายในสินค้า
โปรแกรมนี้ยังไม่สมบรูณ์ดี ให้นักศึกษาเขียนคำประกาศฟังก์ชัน getdata() และ add10 และคำสั่งภายในให้สมบรูณ์
#include <stdio.h>
#include <string.h>
struct product {
char name[15];
int number;
float price;
};
struct product getdata(void) {
struct product x;
strcpy(x.name,"Chewing gum");
x.number = 100;
x.price = 25.5;
return x;
}
showdata( )
{
..
}
void sub10(struct product &x) {
if (x.number > 10)
x.number -=10;
}
(1)
add10( ..)
{
x.number +=10;
}
int main(void)
{
int i;
struct product y;
y = getdata();
showdata(y);
add10(y);
add10(y);
showdata(y);
sub10(y);
showdata(y);
return 0;
}
ข้อ2
ให้ นักศึกษาอธิบายการทํางานของโปรแกรมนี้ พร้ อมกับชี้ให้ เห็นว่ าจุดผิดของโปรแกรมคือจุดใด
Hint: มีทผิด 1 จุด
ี่
#include <stdio.h>
#include <string.h>
void callnum(int i,char y) {
char data [10][8] = {"zero","one","two","three","four",
"five","six","seven","eight","nine"};
strcpy(y,data[i]);
}
int main(void) {
char ch[10];
int i;
int telno[] = {0,2,7,3,7,3,0,0,0};
for (i=0;i<9;i++) {
callnum(telno[i],ch);
printf("%s ",ch);
}
return 0;
}
ข้อ 3
จงวิเคราะห์โจทย์ วิเคราะห์การทำงาน เขียนขั้นตอนการทำงานอย่างละเอียด เขียนรหัส
เทียม เขียนแผนภาพการไหลของข้อมูล (Flowchart) พร้อมทั้งเขียนโปรแกรมการเรียงลำ
ดับตัวเลข (Bubble sort) 10 จำนวน จากน้อยไปมาก กำหนดให้มีการรับค่าตัวเลข 10 จำนวนจากแป้นพิมพ์ ให้เขียนฟังก์ชันในการเรียงลำดับตัวเลขชื่อฟังก์ชัน Sort_function โดยฟังก์ชันนี้จะส่งผลลัพธ์ของการเรียงลำดับตัวเลขมาแสดงผลในฟังก์ชันหลัก (main function) และมีข้อกำหนดให้ฟังก์ชันดังกล่าวมีการส่งค่าในสองรูปแบบคือ pass by reference และ pass by value ตามลำดับ
ข้อ 4
โปรแกรมต่ อไปนีแสดงผลเลขอะไรจอภาพ ใช้ เวลาคิดไม่ เกิน 10นาที เมือคิดเสร็จแล้ วให้ ลองพิมพ์ code
้
่
ดังกล่าวลงคอมพิวเตอร์ และตรวจสอบคําตอบ
#include <stdio.h>
int i;
struct data {
int i;
int j;
}W;
void fa(int *a, int b);
void fb(int c, int *d);
void fc(struct data x,struct data
*y, struct data z);
int main(void) {
int j=0;
int i = 15;
struct data X,Y,Z;
X.i = 10;
X.j = 20;
fa(&i,j);
printf("\n i=%d, j=%d",i,j);
fb(i,&j);
printf("\n i=%d, j=%d",i,j);
fc(X,&Y,Z);
printf("\n W.i=%d,W.j=%d",W.i,W.j);
printf("\n X.i=%d, X.j=%d",X.i,X.j);
printf("\n Y.i=%d, Y.j=%d",Y.i,Y.j);
printf("\n Z.i=%d, Z.j=%d",Z.i,Z.j);
return 0;
}
void fa(int *a, int b) {
i = 4;
*a = *a+3;
b = i+2;
}