PDA

ดูเวอร์ชั่นเต็ม : ขอความช่วยเหลือ อีกทีครับ ๆ เข้ามาดูเเล้วช่วยทีครับ !!



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;
}

wanchanakat
27th January 2013, 22:22
ดัน หน่ิอยครับ ช่วยทีครับ ๆ

wanchanakat
27th January 2013, 23:52
เงียบเลย ดัน ๆๆๆๆๆ

jamebanjen
28th January 2013, 00:13
ผมเข้ามาอ่านภาษาไทย รู้เรื่องครับ

แต่ลงมาผม...เงิบเลย

manmon
28th January 2013, 00:51
เห็นแล้วเงิบเลย - -*

HISMAN
28th January 2013, 00:57
http://image.ohozaa.com/i/a02/Z7zVRr.png
กรอกตามจขกท.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

http://image.ohozaa.com/i/995/kKn1Mb.png
แล้วคุณจะได้ไปอยู่ในนี้ . . .

wanchanakat
28th January 2013, 01:28
ช่วยกันได้ไหมเอย ๆ เหอมันจะยากไปไหนเนี่ย ๆๆๆๆ

17791
28th January 2013, 02:06
ภาษา C สำหรับ อุตสาหกรรมมันเยอะนะเออ จะให้เข้าใจภาษาซีที่ออกแบบมาทุกตัวบนโลกนี้ คงยาก ผมเขียน ภาษาซีใน mikro C สำหรับสร้างโปรแกรมให้ ไมโครคอนโทรลเลอร์ PIC มันก็เป็นอีกรูปแบบหนึ่งแล้ว

ต้องถามในบอร์ดที่เกี่ยวกับ ตัวพวกนี้โดยเฉพาะครับ

17791
28th January 2013, 02:21
ข้อ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;
}


ข้อนี้ขอมั่วหน่อย แต่เป็นไปได้สูง ตามประสบการณ์ในการเขียนโปรแกรมลง ไมโครคอนโทรลเลอร์ จุดนี้คือจุดผิ
char data [10][8] = {"zero","one","two","three","four",
"five","six","seven","eight","nine"};

เพราะ การใส่วงเล็บแบบมีตัวเลขนี้เช่น [7] หมายถึงการจอง สเต็จเม็นท์ ให้กับ ข้อมูล data ซึ่งกำหนดให้ใช้แบบ char 8 บิต หรือ1 ตัวอักษร การใส่วงเล็บเพื่อจองสเต็จเม็นท์นี้จะใส่เพียง 1 วงเล็บ อีกอย่างการจองสเต็จเม็นท์จะไม่มีการกำหนดข้อมูลลงไป
หากจะจองให้ถูกควรเป็น char data[10]; เท่านี้
แต่หากจะกำหนดข้อมูลจะเป็น
char data1[] = "zero"; ดังนี้แล้ว char data1[0]จะเท่ากับ z char data1[1]จะเท่ากับ e char data1[2]จะเท่ากับ r char data1[3]จะเท่ากับ o
char data2[] = "one";
char data3[] = "two";
นี่คือสิ่งที่ควรเป็นสำหรับการใส่ข้อมูลลงในตัวแปรหากเป็นข้อความตัวอักษรและข้อความตัวเลข ต้องเป็นข้อความ

ส่วนการใส่จำนวนตัวเลขจะใส่ดังนี้
int telno[] = {0,2,7,3,7,3,0,0,0};
ขอย้ำเป็นตัวเลขสามารถใช้ โคลอนคั่นระหว่างสเต็จเม็นท์ได้เลย

ส่วนการทำงานผมอธิบายไม่ได้ครับ เพราะรูปแบบการเขียนโปรแกรมที่ผมใช้กับของผม คนละอย่างกันครับ

double6
28th January 2013, 02:54
เรียนผ่านมาได้ก็โล๊ะทิ้งหมดแล้วครับผมภาษาซีเนี้ย
ตอนนี้กำลังงมงวยอยู่กับ AS3.0 มึนๆงงๆ ตรรกยิ่งไม่ค่อยจะมีเหมือนคนอื่นๆเขาทำอะไรก็ย๊ากยากไปหมดเศร้า :(

wanchanakat
28th January 2013, 10:46
เรียนผ่านมาได้ก็โล๊ะทิ้งหมดแล้วครับผมภาษาซีเนี้ย
ตอนนี้กำลังงมงวยอยู่กับ AS3.0 มึนๆงงๆ ตรรกยิ่งไม่ค่อยจะมีเหมือนคนอื่นๆเขาทำอะไรก็ย๊ากยากไปหมดเศร้า :(


ข้อนี้ขอมั่วหน่อย แต่เป็นไปได้สูง ตามประสบการณ์ในการเขียนโปรแกรมลง ไมโครคอนโทรลเลอร์ จุดนี้คือจุดผิ
char data [10][8] = {"zero","one","two","three","four",
"five","six","seven","eight","nine"};

เพราะ การใส่วงเล็บแบบมีตัวเลขนี้เช่น [7] หมายถึงการจอง สเต็จเม็นท์ ให้กับ ข้อมูล data ซึ่งกำหนดให้ใช้แบบ char 8 บิต หรือ1 ตัวอักษร การใส่วงเล็บเพื่อจองสเต็จเม็นท์นี้จะใส่เพียง 1 วงเล็บ อีกอย่างการจองสเต็จเม็นท์จะไม่มีการกำหนดข้อมูลลงไป
หากจะจองให้ถูกควรเป็น char data[10]; เท่านี้
แต่หากจะกำหนดข้อมูลจะเป็น
char data1[] = "zero"; ดังนี้แล้ว char data1[0]จะเท่ากับ z char data1[1]จะเท่ากับ e char data1[2]จะเท่ากับ r char data1[3]จะเท่ากับ o
char data2[] = "one";
char data3[] = "two";
นี่คือสิ่งที่ควรเป็นสำหรับการใส่ข้อมูลลงในตัวแปรหากเป็นข้อความตัวอักษรและข้อความตัวเลข ต้องเป็นข้อความ

ส่วนการใส่จำนวนตัวเลขจะใส่ดังนี้
int telno[] = {0,2,7,3,7,3,0,0,0};
ขอย้ำเป็นตัวเลขสามารถใช้ โคลอนคั่นระหว่างสเต็จเม็นท์ได้เลย

ส่วนการทำงานผมอธิบายไม่ได้ครับ เพราะรูปแบบการเขียนโปรแกรมที่ผมใช้กับของผม คนละอย่างกันครับ


ภาษา C สำหรับ อุตสาหกรรมมันเยอะนะเออ จะให้เข้าใจภาษาซีที่ออกแบบมาทุกตัวบนโลกนี้ คงยาก ผมเขียน ภาษาซีใน mikro C สำหรับสร้างโปรแกรมให้ ไมโครคอนโทรลเลอร์ PIC มันก็เป็นอีกรูปแบบหนึ่งแล้ว

ต้องถามในบอร์ดที่เกี่ยวกับ ตัวพวกนี้โดยเฉพาะครับ



http://image.ohozaa.com/i/a02/Z7zVRr.png
กรอกตามจขกท.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

http://image.ohozaa.com/i/995/kKn1Mb.png
แล้วคุณจะได้ไปอยู่ในนี้ . . .


เห็นแล้วเงิบเลย - -*


ผมเข้ามาอ่านภาษาไทย รู้เรื่องครับ

แต่ลงมาผม...เงิบเลย

ขอบคุณทุกท่านที่ช่วยนะครับ เเต่อย่างน้อยก็ยังมีสักข้อที่ส้งอ.จารเเละ ๆ^^

Artificial
28th January 2013, 16:21
// ข้อ 2
อาจจะยังไม่สมบูรณ์นะครับ ฟังก์ชั่นมีแค่ pass by reference

- http://ideone.com/FDPB4o

แต่ถ้าได้แล้วก็ลองโพส source code มาทีนะครับ แลกเปลี่ยนแนวคิด:yes

songkingmc
28th January 2013, 16:23
คืน อาจารย์ไปหมดแระ

DragonB
28th January 2013, 16:31
ขอจองพื้นที่ก่อนครับ เดี๋ยวจะมาตอบให้