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

 

Tại sao bạn không thử viết 1 bài viết trong Vn-Zoom nhỉ?

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 09-06-2008, 20:36   #1
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default Một bài toán về C++

Mình vừa thi xong , co 1 bài C++ đang thắc mắc muốn được trợ giúp, giúp mình giải bài này:
" Viết 1 chương trình nhập 2 chuỗi kí tự và đếm số kí tự là chữ cái thường " a...z" trong chuỗi 1 và đếm số kí tự ko phải chữ cái nằm trong đoạn "A..Z" và " a...z" trong chuỗi 2."
Và giải thích rõ giùm mình được ko??
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-06-2008, 05:05   #2
Rìu Sắt Đôi
 
darling's Avatar
 
Tham gia: Dec 2007
Bài: 226
VZD: 5.134
Cảm ơn: 24
Điểm: 73/43 bài viết
Default

bài này ko khó mà bạn, học C++ ko làm đc sao??
cứ lấy từng kí tự chuỗi 1 mà so sánh với chuổi 2, kí tự nào ko có trong đó thì biến đếm tăng lên, đếm chính là kq cần tìm
__________________
Web site lập trình C/C++ http://it9x.co.cc
Kiếm tiền bằng sms http://ps.vietguys.biz/network/0989211841
darling vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của darling:
Old 11-06-2008, 20:39   #3
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default

Bạn hiểu nhầm ý bài này của mình rồi, đây không phải là so sánh 2 chuỗi. Kết quả của bài trên sẽ cho mình 2 kết quả.
-kết quả thứ 1 của chuỗi 1 : đếm số kí tự ko phải là chữ cái thường.
-kết quả thứ 2 của chuỗi 2 : đếm số kí tự ko thuộc từ đoạn "A ..Z " ," a..z", nói chung là ko phải kí tự chữ cái
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-06-2008, 23:56   #4
Gà Con
 
dragontl21's Avatar
 
Tham gia: May 2008
Bài: 7
VZD: 341
Cảm ơn: 2
Điểm: 3/2 bài viết
Default

trong C++,có một hàm kiểm tra 1 ký tự là chữ cái hay ko đó. hình như trong thư viện <ctype.h> hình như là isalpha(int)( mới học hồi chiều mà quên rồi) trong đó int là vị trí của kí tự đó trong bảng mã ASCII, ngoài ra, muốn biết chữ hoa hay ko thì isupper(int);chữ thường là islower(int); tất cả là "hình như" thôi nhé!
dragontl21 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 dragontl21 cho bài viết này:
ttlove (14-08-2008)
Old 25-06-2008, 10:11   #5
Gà Con
 
tran_manh_dung's Avatar
 
Tham gia: Jun 2008
Bài: 7
VZD: 484
Cảm ơn: 0
Điểm: 5/3 bài viết
Default

bạn có thể tham khảo bài làm dưới đây của mình, theo mình cũng không đến nỗi khó lắm

#include <iostream.h>

void main()
{
// nhap 2 chuoi ki tu
char chuoi1[100], chuoi2[100];
cout << "nhap chuoi 1: ";
cin.getline( chuoi1, 100 );
cout << "nhap chuoi 2: ";
cin.getline( chuoi2, 100 );


char *s1 = chuoi1, *s2 = chuoi2;

// dem cho chuoi 1
int kq1 = 0;
while( *s1 != NULL )
{
if( *s1 >= 'a' && *s1 <= 'z' )
kq1++;
s1++;
}

// dem cho chuoi 2
int kq2 = 0;
while( *s2 != NULL )
{
if( !(*s2 >= 'a' && *s2 <= 'z') &&
!(*s2 >= 'A' && *s2 <= 'Z'))
kq2++;
s2++;
}

// Xuat ket qua
cout << "\nso ki tu chu thuong trong s1: " << kq1;
cout << "\nso ki tu khong phai chu cai trong s2: " << kq2 << endl;
}
tran_manh_dung 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 tran_manh_dung cho bài viết này:
ttlove (14-08-2008)
Old 25-06-2008, 10:36   #6
Gà Con
 
macngocthan's Avatar
 
Tham gia: Jun 2008
Bài: 8
VZD: 507
Cảm ơn: 0
Điểm: 1/1 bài viết
Default

cac ban
lieu co the cai c++ tu dia turbo C khong nhi,
giup minh voi, neu khong ai co link down c++ thi cho minh di
cam on cac ban nhieu nhe
macngocthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của macngocthan:
ttlove (14-08-2008)
Old 25-06-2008, 10:37   #7
Gà Con
 
macngocthan's Avatar
 
Tham gia: Jun 2008
Bài: 8
VZD: 507
Cảm ơn: 0
Điểm: 1/1 bài viết
Thumbs down

cac ban
lieu co the cai c++ tu dia turbo C khong nhi,
giup minh voi, neu khong ai co link down c++ thi cho minh di
cam on cac ban nhieu nhe
macngocthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-06-2008, 11:17   #8
dst
Rìu Sắt Đôi
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 272
VZD: 5.672
Cảm ơn: 67
Điểm: 251/75 bài viết
Default

Trích:
macngocthan View Post
cac ban
lieu co the cai c++ tu dia turbo C khong nhi,
giup minh voi, neu khong ai co link down c++ thi cho minh di
cam on cac ban nhieu nhe
Bạn hãy download tại đây:
Hãy bấm Cảm ơn bạn nhé!
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:
BOYMANLY_BK (12-08-2008), Rand0m (16-07-2008)
Old 28-06-2008, 21:41   #9
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default

Trích:
dst View Post
Bạn hãy download tại đây:
Hãy bấm Cảm ơn bạn nhé!
Bạn biết C- free chứ nó xài hay hơn cái turbo C nhiều, dùng nó rất thoải mải , chứ ko rắc rối như turbo C.
Bạn có thể download nó ở đây:
Và nếu thích nó thì thanks cho mình 1 cái
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của nmhu:
Rand0m (16-07-2008)
Old 28-06-2008, 22:20   #10
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default

Hix, và còn một bài toán nữa, nó cũng ko có gì là lạ , cũng ko khó , nhưng do mình sơ suất để tài liệu trong ổ C, thế là toi. Bây giờ ko biết lấy đâu tài liệu để xem. Mong các bạn chỉ giáo giùm mình.. Các bạn ai biết có thể giải thích cho mình biết xem phần gọi hàm trong bài chuỗi này, mình chưa hiểu lắm về lời gọi hàm của bài chuỗi này, các bạn để ý vào phần mình gạch chân
Tiện thể mình test bài này nó ko chay( mượn của 1 thằng bạn) xem luôn cho mình bài này đã bị sai ở đâu:
" Đây là bài chuỗi nhập thông tin cho 1 học sinh "
struct NGAY
{
int ngay;
int thang;
int nam;
}
struct sinhvien
{
char masosv[10];
char hoten[25];
struct NGAY ngaysinh;
int diem;
}
void nhapsinhvien(struct sinhvien &sv)
{
//nhap thong tin
cout<<"nhap ma so sv :";
cin>>sv.masv;
cout<<"\n nhap ho ten sv :";
cin>>sv.hoten;
cout<<"\n nhap ngay thang sv";
cin>>sv.ngaysinh.ngay>>sv.ngaysinh.thang>>sv.ngays inh.nam;
cout<<"\n nhap diem cho sv: ";
cin>>sv.diem;
}
void xuatthongtin(struct sinhvien s)
{
// xuất thông tỉn ra màn hình
cout<<s.masv<<\t<<s.hoten<<\t;
cout<<s.ngaysinh.ngay<<"/"<<s.ngaysinh.thang<<"/"<<s.ngaysinh.nam<<\t<<s.diem;
}
void main()
{
// khai bao bien
struct sinhvien s;
//khai bao mang 10 sinh vien
struct sinhvien list[10];
int n;
cout<<"nhap so sinh vien: ";
cin>>n;
cout<<"\n nhap vao danh sach sinh vien:";
for(int i=0;i<n;i++)
{
cout<<"\n nhap vao sv thu :"<<i;
nhapsinhvien(list[10]);
}
cout<<"\danh sach sv :\n";
cout<<"\n ma so\t ho ten\t ngay sinh \t diem"<<endl;
for(int i=0;i<n;i++)
{
[i]xuatthongtin(list);
}
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của nmhu:
ttlove (14-08-2008)
Old 29-06-2008, 01:57   #11
Gà Con
 
tran_manh_dung's Avatar
 
Tham gia: Jun 2008
Bài: 7
VZD: 484
Cảm ơn: 0
Điểm: 5/3 bài viết
Default

void nhapsinhvien(struct sinhvien &sv)
{
//nhap thong tin
cout<<"nhap ma so sv :";
cin>>sv.masv;
cout<<"\n nhap ho ten sv :";
cin>>sv.hoten;
cout<<"\n nhap ngay thang sv";
cin>>sv.ngaysinh.ngay>>sv.ngaysinh.thang>>sv.ngays inh.nam;
cout<<"\n nhap diem cho sv: ";
cin>>sv.diem;
} --> hàm này làm công việc nhập các thong tin cho một đối tuợg SV, mà các thong tin SV thì đã đuoc khai báo dưới dạng 1 kiểu dữ liệu sinhvien, nên tham số truyền vào hàm sẽ là biến kiểu sinhvien. và nó có tham chiếu & bởi bạn muốn nhập chính xác vào biến bạn truyền vào, chứ nếu ko có & hàm sẽ tạo ra một biến khác để nhập vào, mà biến này thì mất đi sau khi hàm kết thúc, xem như việc nhập là công toi.

void nhapsinhvien(struct sinhvien &sv) --> còn đây thì là hàm xuất thong tin ra thôi.

chuơng trình còn sai vài chỗ nên chạy ko duoc:
- chưa include thư viện iostream nên báo ko nhận ra cout, cin
- trong hàm Nhập, đối tượng SV có thông tin là 'masosv' chứ ko phải 'masv'
- trong hàm main, khai báo 's' và 'list' chỉ cần sinhvien đứng truóc là duoc, ko cần struct nữa.
- nhapsinhvien(list[10]); --> lời gọi trong vòng lặp for này theo mình phải là nhapsinhvien(list[n]); mới đúng, có lẽ bạn của ban có chút nhầm lẫn( thực tế cũng ko có phần tử thứ [10], vì mảng trong C bắt đầu từ chỉ số 0, nên kết thúc của list là list[9] thhui ^_^)
...

chúc bạn thành công !!!
tran_manh_dung 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 tran_manh_dung cho bài viết này:
beohoadau (29-06-2008)
Old 29-06-2008, 18:02   #12
dst
Rìu Sắt Đôi
 
dst's Avatar
 
Tham gia: Mar 2008
Đến từ: Hà Nội
Bài: 272
VZD: 5.672
Cảm ơn: 67
Điểm: 251/75 bài viết
Default

Bạn tran_manh_dung nói đúng đấy!
dst vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-07-2008, 21:23   #13
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default

Mình đồng ý với bạn hàm :void nhapsinhvien(struct sinhvien &sv) đúng như bạn nói, nhưng mình không hiểu câu " &sv" , vì " sv " chưa được khai báo ở hàm struct.
Còn nữa ở chỗ : " void xuatthongtin(struct sinhvien s) " , lần này nó lại là " s".
Mà khi ở " void main " , nó lại gọi hàm " s " , chứ không phải là " sv "
Vậy việc viết khác nhau đó có ý nghĩa gì ???
Còn về vấn đề : nhapsinhvien(list[10]) , mà bạn cho là : list[n], không phải vì mảng từ 0 -->9 . Mà mình chỉ muốn cho nhập 10 sinh viên vào mà thôi.
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của nmhu:
ttlove (14-08-2008)
Old 11-07-2008, 07:55   #14
Gà Con
 
tran_manh_dung's Avatar
 
Tham gia: Jun 2008
Bài: 7
VZD: 484
Cảm ơn: 0
Điểm: 5/3 bài viết
Default

mình xin trả lời thế này:
1. sinhvien là 1 kieu-dữ-liệu-do-bạn-định-nghĩa theo kiểu struct, nên từ đó tro về sau nếu muốn sử dụng hay khai báo một biến có kiểu sinhvien bạn chỉ dùng từ khóa sinhvien đứng trứoc ten biến, khong dùng lại từ struct (vd: sinhvien sv1; sinhvien sv2; ...).
2. trong hàm nhập, bạn truyền 1 biến kiểu sinhvien vào (cụ thể trong hàm main bạn gọi hàm nhập thì biến đó chính là một phần tử của mảng list[], đúng ko ^_^ ), vậy bạn muốn sau khi hàm nhập thực hiện, biến bạn truyền vào sẽ chứa đầy đủ các thông tin bạn đã nhập ... chứ ko phái 1 biến khác, đúng ko nè. Lưu ý ở đây chính là đó: HÀM nếu khai báo tham số truyền vào theo kiểu bình thuờng sinhvien sv, nó sẽ tự tạo ra 1 biến giống với biến bạn truyền vào (nếu vậy hàm nhập sẽ tạo ra 1 biến giống y chang biến list[] của ban và các thao tác nhập sẽ thực hiện trên biến đó, vậy biến list[] cua bạn ko hề có gì cả). Do đó bạn phải truyền theo kiểu tham chiếu là sinhvien &sv , để hàm nhập sử dụng luon biến bạn đã truyền vào.(đến đây chac bạn hiểu rùi hen ^__^). còn cái "sv" mà bạn thắc mac chỉ là tên biến thôi mà, ko có gì cả.
3. mình nói lộn về list[n], bạn nên thay list[10] thành list[i] trong vòng lap FOR, là do vòng lặp FOR chạy theo chỉ số i từ 0...9, nghĩa là mỗi lần lap là thực hiện nhập thong tin cho 1 phần tử trong mảng list[], đúng chưa. mà mỗi phần tử có chỉ số khác nhau, nên phải dùng một biến thay đổi sau mỗi lần lặp là i để làm chỉ số cho mảng list[], còn nếu chỉ viết list[10] như bạn thì lần lap nào cung nhập thong tin cho phần tử list[10] mà thôi, các phan tử khác khong hề được đụng tới.

Hy vọng bạn hiểu bài hơn !!! chúc bạn thành công và không ngừng đam mê học tập ^____^
tran_manh_dung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của tran_manh_dung:
ttlove (14-08-2008)
Old 20-07-2008, 21:51   #15
Búa Đá
 
nmhu's Avatar
 
Tham gia: Jan 2008
Bài: 56
VZD: 1.977
Cảm ơn: 2
Điểm: 22/16 bài viết
Default

hic, xem ra còn kém quá nghen, " tran_manh_dung " có YM , mail ko cho mình xin cái nào, vì mình còn học về C++ nhiều , đây mới chỉ là bắt đầu. Hỏi cho tiện thôi, và nhanh hơn
nmhu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của nmhu:
ttlove (14-08-2008)
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
Chuyển đến


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


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
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