Go Back   VN-Zoom forum > Chia sẻ kiến thức > Lập trình > Pascal | C/C++

 


Server Counter Strike 1.6 miễn phí cho thành viên VZ

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 17-05-2008, 07:47   #1
Búa Gỗ
 
hackeronline's Avatar
 
Tham gia: Oct 2007
Bài: 17
VZD: 914
Điểm: 0/0 bài viết
Default cac bac xrm giup sai cho nao ma chuong trinh ko chay duoc

de:Viết chương trình thực hiện yêu cầu sau:
Chương trình có menu để lựa chọn thực hiện các công việc sau:
- Nhập vào hai số a và b từ bàn phím
- So sánh hai số a và b
- Giải và biện luận phương trình bậc nhất: ax + b= 0

Gợi ý: Trên màn hình sẽ xuất hiện nội dung sau
+ + MENU cong viec + + +++++++++++++
- Nhap a và b (Phím N)
- So sanh a và b (Phím S)
- Giai và bien luan phuong trinh ax + b = 0 (Phím G)
- Thoát (Phím T)
++++++++++++++++++++++++++++++++
Moi ban chon:

Nếu bấm phím N thì chương trình cho phép nhập a và b, bấm phím S thì so sánh, bấm phím G thì giải và biện phương trình ax + b =0, bấm phím T thì kết thúc chương trình


bai giai cua em day:
#include"conio.h"
#include"stdio.h"
void main()
{
clrscr();
float a,b;
char ch;
printf("++ MENU+++++");
printf("\nnhap a va b (Phim N)");
printf("\nso sanh a va b (Phim S)");
printf("\ngiai va bien luan phuong trinh ax+b=0(Phim G)");
printf("\nthoat(Phim T)");
printf("\n+++++++++++");
printf("moi ban chon:");
ch=getch();
switch(ch)
{
case'N':
{
printf("\nnhap a va b:");
scanf("%f%f",&a,&b);
}
break;
case'S':
{
if(a>b)
printf("%f lon hon %f",a,b);
else if(a==b)
printf("%fbang%f",a,b);
else
printf("%f nho hon%f",a,b);
}
break;
case'G':
{
printf("nhap a va b:");
scanf("%f%f",&a,&b);
if(a==0)
{
if(b==0)
printf("pt vo so nghiem");
else
printf("pt vo nghiem");
}
else
printf("pt co nghiem x=%8.2f",(-b/a));
}
break;
case'T':
printf("nhan Enter de thoat");
break;
}
getch();
}
hackeronline vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2008, 19:37   #2
dst
Rìu Sắt
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 169
VZD: 3.358
Điểm: 90/39 bài viết
Default

Sai lầm là ở chỗ nếu dùng hàm case of thì không cần phải có cặp dấu ngoặc bao quanh các mã mà chỉ cần câu lệnh break và case để bao hàm một khối. VD:
switch(ch)
{
case 'N':
printf("\nnhap a va b:");
scanf("%f%f",&a,&b);
break;
case 'T':
printf("nhan Enter de thoat");
break;
default:
printf("\nBan nhap gi vay? Chuong trinh se thoat ngay bay gio!");
break;
}

Kể cả lỗi này đã được sửa thì chương trình của bạn khi đem thi hành cũng cho kết quả sai. Vì sao ư? Hãy tìm hiểu hoạt động của chương trình:
- Đầu tiên chương trình khởi động, đặt a=b=0;
- Sau đó yêu cầu người dùng chọn các tùy chọn:
+ Nhập a và b. Sau khi nhập a và b, chương trình tự thoát -> việc nhập a và b chẳng có nghĩa lý gì!
+ So sánh a và b. a và b chưa được gán nên luôn = 0. So sánh hai số 0 thì sẽ luôn cho kết quả bằng!
+ Giải phương trình: cái này mình xem qua, chắc đúng.
+ Thoát chương trình: nên hiện thông báo sẽ thoát chương trình rồi dùng hàm exit(1) luôn, đừng đợi đến hết mã thì thoát, phòng TH sau này bạn mở rộng mã sau câu lệnh switch thì ct sẽ không thực hiện những phần mã vô nghĩa đó (đối với TH này) rồi mới thoát!

Bài hay thì bấm cảm ơn, k0 cần spam.
dst vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2008, 13:05   #3
Búa Gỗ
 
hackeronline's Avatar
 
Tham gia: Oct 2007
Bài: 17
VZD: 914
Điểm: 0/0 bài viết
Default

bạn có thể sửa lại giúp mình sao cho chương trình chạy được ko
hackeronline vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-05-2008, 09:46   #4
dst
Rìu Sắt
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 169
VZD: 3.358
Điểm: 90/39 bài viết
Default

Tớ không ngại giúp, chỉ ngại vì bạn chưa cảm ơn!
#include"conio.h"
#include"stdio.h"
void main()
{
clrscr();
float a,b;
char ch;
do
{
printf("++ MENU+++++");
printf("\nnhap a va b (Phim N)");
printf("\nso sanh a va b (Phim S)");
printf("\ngiai va bien luan phuong trinh ax+b=0(Phim G)");
printf("\nthoat(Phim T)");
printf("\n+++++++++++");
printf("\nmoi ban chon:");
ch=getch();
switch(ch)
{
case'N':
printf("\nnhap a va b:");
scanf("\n%f%f",&a,&b);
break;
case'S':
if(a>b)
printf("\n%f lon hon %f",a,b);
else if(a==b)
printf("\n%fbang%f",a,b);
else
printf("\n%f nho hon%f",a,b);
break;
case'G':
if(a==0)
{
if(b==0)
printf("\npt vo so nghiem");
else
printf("\npt vo nghiem");
}
else
printf("\npt co nghiem x=%8.2f",(-b/a));
break;
case'T':
exit(1);
break;
default:
printf("\nToi khong hieu ban muon gi!");
}
printf("\nBan co muon chuong trinh chay tiep khong? Neu co, bam Y, nguoc lai, bam N(neu chay tiep chuong trinh se luu gia tri a va b ma ban da nhap)(Y/N)?");
ch=getch();
}while(ch=="Y"||ch=="y");
}

Bài làm này thực hiện như sau:
+ Đầu tiên chương trình hiển thị menu người dùng chọn chức năng.
+ Sau khi chọn chức năng tương ứng, chương trình thi hành, sau khi thi hành xong thì hỏi xem có muốn chạy tiếp 0? Nếu có bấm Y hoặc y, k0 thì bấm bất cứ kí tự gì cũng được. Nếu chạy tiếp chương trình sẽ lưu a và b đã nhập lại.
Chương trình vẫn sai nếu người dùng chọn chức năng so sánh hoặc giải pt ngay lần chạy đầu (do a và b chưa được gán ->=0). Nếu cậu muốn nó chạy tốt thì lại phải phiền người dùng nhập a và b lại lần nữa hoặc bỏ tùy chọn nhập a và b ở menu ra, bắt buộc người dùng nhập a và b trước.
Nhớ cảm ơn nếu thấy bài hay.
dst vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Có 2 thành viên cảm ơn dst cho bài viết này:
hackeronline (20-05-2008), vipplayboy (20-05-2008)
Old 20-05-2008, 10:19   #5
Rìu Sắt Đôi
 
vipplayboy's Avatar
 
Tham gia: May 2008
Đến từ: Pleiku
Bài: 227
VZD: 3.619
Điểm: 186/101 bài viết
Send a message via AIM to vipplayboy Send a message via Yahoo to vipplayboy
Default

có hay nhưng có điều tui không biết thứ gì về phần này hết hehe. bó tay
vipplayboy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-05-2008, 12:04   #6
Búa Gỗ
 
hackeronline's Avatar
 
Tham gia: Oct 2007
Bài: 17
VZD: 914
Điểm: 0/0 bài viết
Default

anh oi
sao ma no bao sai o cho exit(1);
lam n anh coi lai duoc ko
hackeronline vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-05-2008, 19:39   #7
dst
Rìu Sắt
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 169
VZD: 3.358
Điểm: 90/39 bài viết
Default

Bạn phải ghi ra lỗi sai mà trình dịch báo thì tui mới biết được chứ!
dst vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2008, 10:00   #8
Búa Gỗ
 
hackeronline's Avatar
 
Tham gia: Oct 2007
Bài: 17
VZD: 914
Điểm: 0/0 bài viết
Default

function 'exit' should have a prototype
cannot convert 'char' to 'char *'
cannot convert 'char' to 'char *'
2 dong cuối thì em sửa được rồi
còn dòng đầu thì bó tay
nếu em bỏ dòng exit thì chương trình chạy bình thường
em ko hiểu nếu chương trình chạy đúng thì có khác gì ko?
hackeronline vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2008, 13:48   #9
Rìu Sắt Đôi
 
vipplayboy's Avatar
 
Tham gia: May 2008
Đến từ: Pleiku
Bài: 227
VZD: 3.619
Điểm: 186/101 bài viết
Send a message via AIM to vipplayboy Send a message via Yahoo to vipplayboy
Default

thèng ngu chụp hình lại rồi post lên đây tui chỉ cho. nói vậy ai hiểu hả
vipplayboy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2008, 15:52   #10
Rìu Bạc
 
Mr_Dolphin's Avatar
 
Tham gia: Dec 2007
Bài: 336
VZD: 4.320
Điểm: 65/45 bài viết
Default

#include <stdlib.h>
dùng exit trong C thì khai báo thêm thư viện đó nữa bạn ạ.
__________________
-_::Tin Học là chia sẻ ::_-
http://cnttk1a.hnsv.com
Chào mừng các bạn đến diễn đàn lớp tui!
Mr_Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2008, 16:53   #11
Búa Gỗ
 
hackeronline's Avatar
 
Tham gia: Oct 2007
Bài: 17
VZD: 914
Điểm: 0/0 bài viết
Default

cam on rat nhieu
ban co nick chat ko cho minh xin di
hackeronline vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2008, 17:45   #12
Búa Đá Đôi
 
that_is_lg's Avatar
 
Tham gia: Feb 2008
Bài: 99
VZD: 1.109
Điểm: 5/5 bài viết
Default

thế này mà cũng gọi là lập trình có menu á
Có lộn không vậy
that_is_lg vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Tắt
Pingbacks are Tắt
Refbacks are Tắt


Múi giờ GMT +7. Hiện tại là 22:32.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Template-Modifications by TMS
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
Từ điển được cung cấp bởi VDict.com - Hosting được tài trợ bởi Rao vặt 123