Kết quả của chương trình sau là gì include void main int ij for i 1 i 4 i j i printf 3d j
View Full Version : Bài tập giải thuật | Bài tập thuật toán cơ bản hailoc12 05-08-2006, 01:35 PM 1. Ý TƯỞNG THUẬT TOÁN
• Xét 3 hệ số của phương trình trước hết xét a=0 hoặc a khác 0
a. TH1 : a=0
- Ta xét thêm b =0 hay khác 0 . Nếu a=0 mà b=0 thì phương trình không xác định . Nếu b khác 0 thì giải bài toán giống như giải phương trình bậc nhất .
b. TH2 : a khác 0
- Ta tính Delta và xét Delta đưa ra nghiệm của pt
- Nếu Delta < 0 : Phương trình vô nghiệm
- Nếu Delta = 0 : Phương trình có nghiệm kép
- Nếu Delta > 0 : Phương trình có hai nghiệm phân biệt .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
• a , b ,c là ba hệ số của phương trình .
• Delta là biến dùng để lưu giá trị Delta sau khi tính .
• x1,x2 : là nghiệm của phương trình nếu pt có 2 nghiệm phân biệt
• x : là nghiệm nếu phương trình chỉ có một nghiệm mà thôi
3. BÀI GIẢI : #include
HẾT hailoc12 05-08-2006, 01:38 PM BÀI 02 1. Ý TƯỞNG THUẬT TOÁN : a. Ta làm một trường hợp nếu nhập vào không hợp lệ thì bắt nhập lại . b. Ngược lại Trước hết ta quy đổi về số ngày hết . Ta xét từ năm số 1 cho đến năm nhập vào nếu thỏa điều kiện năm nhuận thì cộng thêm 1 Ta xét từ tháng 1 cho đến tháng nhập vào và lần lượt cộng với số ngày tương ứng mà tháng đó có ( ví dụ : tháng 3 có 31 ngày ). Sau khi được một tổng số có được bằng cách thực hiện 2 bước trên thì ta cộng số đó vào số ngày nhập vào . Ta được tổng số ngày từ ngày tháng năm thứ nhất cho đến ngày tháng năm hiện tại Theo quy luật của ngày tháng thì cứ 7 ngày thì lặp lại một thứ . Vì thế ta lấy tổng số ngày tính được tất cả chia lấy phân dư cho 7 ( Ví dụ : nếu được 0 thì đó là chủ nhật ) 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : Ba biến : ngay , thang ,nam là các biến được nhập vào Biến s : lúc đầu là cộng thêm 1 nếu gặp năm nhuần khi dòng for i chạy sau đó được gán bằng 0 và tính tổng các ngày của các tháng . Biến t : là biến tính tổng số ngày Biến x : là biến khi t chia lấy phần dư cho 7 gán cho x rồi suy ra thứ. Dòng For thứ nhất chạy xét xem nếu năm nhuần thì cộng số ngày lên 1 Dòng For thứ hai chạy xét và cộng vào số ngày tương ứng của tháng đó . 3. BÀI GIẢI #include hailoc12 05-08-2006, 01:45 PM BÀI 03 1. Ý TƯỞNG THUẬT TOÁN : Ta lấy số ngày xét nếu bằng 365 thì ngày 31 tháng 12 nam 0 , ngược lại thì ta lấy số ngày trừ cho 365 nếu là năm nhuận thì trừ cho 366 Xét diều kiện đủ thấy ta lấy số ngày cịn l?i trừ cho số ngày của từng tháng ( ví dụ : lấy số ngày trừ cho 31 nếu lớn hơn 0 thì tháng +1 và có thể tiếp tục chạy theo vòng for cho đến khi nào không thỏa điều kiện trong vòng switch – case nữa thì thoát ra Thu được kết quả của ngày tháng năm . 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : Trong bài chỉ có ba biến quan trọng là : ngay , thang , nam Biến ngay : là biến được input . Biến thang : là biến tăng khi ngày trừ đi theo câu lệnh Biến nam : tuong tự như biến tháng nhưng là kết quả của biến ngày trừ đi theo câu lệnh . 3. BÀI GIẢI : #include HẾT hailoc12 05-08-2006, 07:09 PM BÀI 04 : 1. Ý TƯỞNG THUẬT TOÁN : Bài này cũng tương tự như hai bài trên nhưng ta lại xét tháng trước nó sẽ nhanh hơn. Nếu tháng hợp lệ thì ta xét năm và ngày 2. Ý NGHĨA CỦA MỘT SỐ BIẾN TRONG BÀI : • Trong bài này cũng chỉ có 3 biến: ngay , thang ,nam Cả 3 biến này đều là biến input 3. BÀI GIẢI : #include HẾT hailoc12 05-08-2006, 07:13 PM BÀI 05 : 1. Ý TƯỞNG THUẬT TOÁN : Bài này khai báo một biến kí tự để so sánh với mã phím input Nếu nhập 1 thì nhập chiều dài & rộng của hình chữ nhật Cách in ra hình chữ nhật như sau : In ra một dòng * có chiều dài là độ dài của hình Sau đó xuống dòng in ra kí tự * và in một dòng khoảng trắng nhỏ hơn độ dài là 2 rồi in kí tự * và xuống hàng Cứ như thế lặp lại số lần = chiều rộng trừ 2 In một dòng * cuối cùng bằng độ dài của hình Nếu nhập vào 2 thì nhập cạnh của hình vuông Cách in hình vuông tương tự như hình chữ nhật 2. Ý NGHĨA CỦA MỘT SỐ BIẾN TRONG BÀI : Trong bài này cĩ bi?n menu là bi?n nh?n mã phím và di?u khi?n vẽ hình Các biến a,b : là độ dài của hình cần vẽ 3. BÀI GIẢI : #include hailoc12 05-08-2006, 07:15 PM BÀI 06 1. Ý TƯỞNG THUẬT TOÁN :
Đặt một biến bằng số nguyên nhỏ nhất sau đó tăng lên 1
Giảm số cần phân tích bằng cách chia cho biến đó
Thực hiện cho đến khi nào phép chia ở bước b =1 2. Ý NGHĨA CỦA MỘT SỐ BIẾN TRONG BÀI :
Trong bài ta đặt biến i là biến số nguyên tố nhỏ nhất i =2, n là biến input cần phân tích 3. BÀI GIẢI : #include
HẾT hailoc12 05-08-2006, 07:19 PM BÀI 07 1. Ý TƯỞNG THUẬT TOÁN : Định nghĩa: số chính phương là số có căn bậc 2 là một số nguyên Đối với bài này ta có hai cách viết Cách 1 : Ta lấy căn bậc hai của số đó trừ cho phần nguyên căn bậc 2 của số đó nếu bằng 0 thì nó là số chính phương, ngược lại không phải. Cách 2 : Cho vòng for i chạy từ 1 đến số cần kiểm tra nếu i*i==n thì xuất ra nó là số chính phương và thoát chương trình 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : o n : là biến input o flag :là biến cờ để biết đúng hay sai nếu bằng 1 là số chính phương 3. BÀI GIẢI : #include HẾT hailoc12 05-08-2006, 07:26 PM BÀI 08 1. Ý TƯỞNG THUẬT TOÁN : Định nghĩa: Số nguyên tố là số chỉ chia hết cho 1 và chính nó, điều kiện là lớn hơn 1 Đối với bài này có rất nhiều cách làm nhưng tôi nghĩ cách sau là các bạn dễ hiểu nhất Cho một vòng lặp for i chạy từ 2 cho đến số cần kiểm tra nếu số đó chia hết cho i thì đếm số lần Kết luận nếu số lần chia hết là 1 thì là số nguyên tố ngược lại thì không phải 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : n : là biến input i : lưu động từ 2 đến n dem : đếm số lần n chia hết cho i 3. BÀI GIẢI : #include Good luck. Kevin Hoang 05-08-2006, 07:28 PM BÀI 09 1. Ý TƯỞNG THUẬT TOÁN : Ta chỉ xét khi a# 0 và b#0 TH1 :Nếu Xét a> =b thì ta lấy a – cho b cho đến khi nào a nhỏ hơn b . Lưu ý : (Nếu a=0 thì thoát ) . Nếu 0 < a =a Cuối cùng - Nếu a=0 thì ước chung lớn nhất là b và bội chung nhỏ nhất là (x * y ) /b . - Nếu ngược lại thì ước chung lớn nhất là a và bội chung nhỏ nhất là ( x * y)/a 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : - Trong bài chỉ có hai biến quan trọng đó là x,y là 2 biến input và a , b là hai biến gán tạm thời bằng giá trị x ,y để khi thực hiện sẽ không làm ảnh hưởng đến giá trị của hai số input ban đầu . 3. BÀI GIẢI : //Bài giải 1 #include Em nhớ là có một địa chỉ hình như là 0000:406C có thể được dùng để đo tốc độ của chương trình. Trong pascal em vẫn thường đọc nó vào lúc bắt đầu chương trình và sau khi chương trình thực hiện xong để tính thời gian chạy, việc đó đựơc thực hiện thông qua chỉ thị absolute gán địa chỉ trực tiếp cho một biến. Nhưng không biết trong C có cấu trúc tương tự như vậy không. Em sẽ viết thử chương trình đo tốc độ để xem cái nào chạy nhanh hơn hailoc12 05-08-2006, 07:30 PM BÀI 10 : 1. Ý TƯỞNG THUẬT TOÁN :
• Trong bài này thì chủ yếu là ta biết khống chế và in ra lượng dấu * cho phù hợp với định dạng của hình mà cần in .
• Thường là ta cho một vòng lặp khống chế số hàng dấu * in ra , một vòng lặp in ra số khoảng trắng và một vòng lặp in ra dấu * . Nhưng cũng nên lưu ý hai vòng lặp này phải đồng thời lẫn nhau theo từng định dạng hình cần in .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : Trong bài chỉ có biến h là biến chiều cao input từ người dùng , các biến còn lại đều là biến chạy của các vòng lặp .
3. BÀI GIẢI : // chuong trinh in tam giac ra man hinh //
#include hailoc12 07-08-2006, 01:41 PM BÀI 11 1. Ý TƯỞNG THUẬT TOÁN : Ở bài này ta in ra một dòng hàng ngang trước ( VD : 1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 ……………………10 x 1 =10) Sau đó xuống hàng và tăng tích lên 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : • I : là số dòng của bảng cửu chương đóng vai trò là tích • J : là số cột của bảng cửu chương đóng vai trò là thừa số 3. BÀI GIẢI : #include HẾT hailoc12 07-08-2006, 01:43 PM BÀI 12 1. Ý TƯỞNG THUẬT TOÁN :
Theo đề bài ta không được lấy từng con số của b nhân với a mà vấn đề là ở chỗ từng số b nhân với từng số a . Để giải quyết bài này ta xét độ dài của cắc số rồi xuất ra theo ý muốn của mình , ở đây tôi chỉ nêu ra phần ý tưởng của thuật toán mà thôi . Trước hết bạn hãy liệt kê tất cả các biến trong bài có thể phát sinh ( VD : cần các biến tạm của hai số a và b để khi thực hiện thuật toán ta vẫn không làm ảnh hưởng giá trị của hai số a và b khi cần thiết sử dụng đến chúng , tiếp đến là bién nhớ và các biến lưu động và cộng dồn ; lưu động ở đây có nghĩa là cứ một hàng đơn vị thì tăng lên 10 . 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài này ta có rất nhiều biến :
A. Các biến dùng để xuất ra theo ý muốn và cân đối phép nhân gồm : i,xuat,dem1=5,dem2=5 , p =0 . B. Các biến dùng trong thuật toán gồm :
1. a, b : là hai con số được input 2. x=a , y=tmpb=b , là các biến gán tạm thời cho hai số trên để khi tính toán có thay đổi cũng không ảnh hưởng đến hai số đó khi chúng ta cần thiết sử dụng tới nó .
3. biến demtmp : có kiểu dữ liệu int là biến tính độ dài số a 4. biến t : có kiểu int dùng để chứa từng con số b nhân với từng số a .
5. biến nho : để nhớ số hàng chục của số t khi t > 10 6. biến k có kiểu dữ liệu là double dùng để nhân lên 10 mỗi khi biến s cộng 7. biến s : là biến cộng dồn lại kết quả của một số b nhân với từng số a cho đến hết số a sau đó xuất ra số s là một hàng 8. tương tự như biến k còn có biến h dùng để cộng dồn vào biến kq .
9. biến kq : là biến kết quả của phép nhân được tính bằng cách cộng dồn s vào và nhân h khi cộng .
3. BÀI GIẢI : #include
HẾT hailoc12 07-08-2006, 01:45 PM BÀI 13 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này ta tính tổng các số từ 1 cho tới n , ta cần có một vòng lặp chạy từ 1 cho đến n sau đó một biến cộng dồn khi vòng lặp chạy .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài chỉ có biến n là biến in put b. Biến s : là biến cộng dồn khi vòng for lặp lại 3. BÀI GIẢI : #include
HẾT hailoc12 07-08-2006, 01:46 PM BÀI 14 1. Ý TƯỞNG THUẬT TOÁN :
a. Tương tự như bài 13 . nhân dồn nhưng lưu ý đối với phép nhân thì có giới hạn .
b. Bài này sẽ tôi sẽ trình bày theo hai cách :
i. Cách 1 : tương tự như bài 13 ii. Cách 2 : Ta cũng làm tương tự như cách trên nhưng khi biến nhân dồn lớn hơn 100000 thì ta cộng số mũ vào là 5 và lấy biến s chia cho 100000 , với thuật toán trên bạn có thể tính được 1000 giai thừa . ( lưu ý : biến s : kiểu dữ liệu là double )
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Cách 1 : tương tự
b. Cách 2 : có biến q : kiểu dữ liệu là int dùng để cộng số mũ khi s > 100000 3. BÀI GIẢI : Cách 1 : #include
HẾT hailoc12 07-08-2006, 01:47 PM BÀI 16 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này ta dùng công thức phép lặp Newton X[ 0 ] = ( 1 + a ) /2 X[1] = (1/2)*(X[n] + a/X[n]) ; n= 1 , 2 ,…
Sai số cho phép là trị tuyệt đối của ( X[n+1] – X[n] ) / X[n] = 10 ^ -5
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI : a. Trong bài có hàm double can_2(double x) : dùng để trả về giá trị căn bậc 2 của một số cần tính . ở đây được xem là biến x .
Trong hàm còn có biến kq : được xem tương ứng như phần tử X[n+1] trong công thức trên biến temp : được xem như phần tử X[ n ] trong công thức trên . 3. BÀI GIẢI : #include
HẾT hailoc12 07-08-2006, 01:48 PM BÀI 17 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta không phải xuất các phần tử ngược trở lại mà vấn đề là phải thay đổi được vị trí các phần tử với nhau theo đề bài là đảo ngược ( VD : phần tử đầu sẽ đảo thành phần tử cuối ) .
b. Ta nên lưu ý chỉ cho một vòng lặp chạy từ 0 cho đến nửa số phần tử mà thôi sau đó hoán đổi vị trí của hai phần tử với nhau .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài có :
a. Biến a[ 100] : là mảng để chứa các phần tử .
b. Biến n : là biến input là số phần tử trong mảng .
c. Hàm daomang(int a[100] , int n ) : nhiệm vụ hàm này là đảo vị trí của toàn mảng . trong hàm có biến tmp dùng để bắc cầu khi hai biến hoán đổi vị trí cho nhau .
3. BÀI GIẢI : #include hailoc12 07-08-2006, 01:49 PM BÀI 18 1. Ý TƯỞNG THUẬT TOÁN :
a. Trước hết ta phải viết một hàm kiểm tra số nguyên tố sau đó viết hàm nhập mảng .
b. Số nguyên tố là số chỉ chia hết cho 1 và chính nó .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI Trong bài gồm :
i. a[100] : mảng tối đa 100 phần tử ii. n : số phần tử trong mảng iii. Hàm int ktnt(int a[100] , int n) là hàm kiểm tra và trả về giá trị 1 nêú là số nguyên tố và ngược lại trả về 0 Trong hàm có biến dem : dùng để kiểm soát số lần chia hết cho I nếu là 1 lần thì là số nguyên tố ( vì I chạy từ 2). 3. BÀI GIẢI : #include hailoc12 07-08-2006, 01:50 PM BÀI 19 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này theo ý tưởng của tôi ta nên cho họ nhập vào tùy ý phần tử đầu tiên sau đó dựa trên phần tử đó kiểm soát và khống chế theo đề bài i. TH1 : Kiểm tra nếu pt đầu tiên là lẻ thì khi I chẳn phải là số chẳn và I lẻ phải là số lẻ .
ii. TH2 : Kiểm tra nếu pt đầu tiên là chẵn thì khi I chẵn phải là số lẻ và I lẻ phải nhập số chẵn .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a[100] : là mảng phần tử tối đa là 100 kí tự n : số phần tử của mảng I : l biến chạy của một số hm for 3. BÀI GIẢI : #include hailoc12 07-08-2006, 01:51 PM BÀI 20 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta chỉ cần xuẩt ra theo kiểu hình ma trận là được b. Ta chỉ nhập vào ma trận với n dòng và m cột sau đó cho xuẩt ra ứng với giá trị cột ta xuất tương ứng ra các giá trị dòng ( VD : ở ma trận 3 x 3 thì 00 , 01 , 11 …………,30 , 31 , 32 ) Ta sẽ xuất được ma trận chuyển vị của ma trận nhập vào .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài chỉ có mảng hai chiều a[ 50 ][50] chứa tối đa 50 dòng và 50 cột
b. n : số dòng của ma trận c. m : số cột của ma trận 3. BÀI GIẢI : #include hailoc12 28-09-2006, 08:28 PM Những bài này không phải mình làm nên post lên nguyên vẹn để tôn trọng tác giả. Còn xét điều kiện a= 0 hay khác 0 trước hay sau thì tuỳ thuộc vào thói quen của mỗi người nó không ảnh hưởng đến tính đúng đắn của thuật toán. Tuy nhiên trường hợp a=0 có thể tạm coi là trường hợp "cực đoan" của bài toán, trong các đề thi những trường hợp như vậy rất hay được khai thác để kiểm tra, phân loại học sinh vì vậy có lẽ trước khi giải phần chính ta nên liệt kê đến các trường hợp suy biến như vậy giải quyết trước rồi tạo điều kiện đúng cho phần giải quyết chính. Hơn thế nữa, chắc khi làm toán bạn cũng thấy biện luận phương trình với a=0 rất dễ nhưng cũng chiếm số điểm khá lớn (khoảng 0,5 trong tổng 2 điểm), dễ ăn điểm vậy tại sao lại không giải quyết trước. Kevin Hoang 29-09-2006, 01:07 AM Về giải thuật, bác làm như thế là được rồi, nhưng có điều bố trí trường hợp không được hợp lí cho lắm,em thấy thường thì khi giải phương trình bậc hai, người ta xét trường hợp a khác 0 trước. Khi đưa vào giải thuật cũng dễ nhìn và dễ kiểm tra hơn. Chương trình này xét a!=0 trước đó thôi.
Vấn đề xét trước hay sau, Dreaminess nghĩ không sao, quan trọng là bố trí sao cho dễ hiểu mà thôi. trieuanhl 02-10-2006, 08:02 PM //cong tru nhan chia 2 phan so //thay ban gi post bai nhiều quá nên mình xin post ké.ở đây đề bài không yêu cầu rút gọn nên mình không rút gọn,mình chỉ cộng trừ nhân chia 2 phân số thôi struct phanso { int tu; int mau; }; typedef struct phanso PHANSO; void nhap(PHANSO &P); void xuat(PHANSO P); PHANSO tong(PHANSO P,PHANSO Q); PHANSO hieu(PHANSO P,PHANSO Q); PHANSO tich(PHANSO P,PHANSO Q); PHANSO thuong(PHANSO P,PHANSO Q); void main() { PHANSO P,Q,R; clrscr(); cout<<"nhap phan so thu nhat:"; nhap(P); cout< trieuanhl 02-10-2006, 08:12 PM //cong trù nhân chia 2 số phức số phức là cố có dạng a+b*i, trong đó a là phân thực,b là phần ảo và i là đơn vị ảo. VD:3+5*i,là số phức (3+5*i)+(4+2*i)=7+5*i,đó là toán cộng. ở đây có định nghĩa đày đủ về số phức nè http://vi.wikipedia.org/wiki/Tr%C6%B0%E1%BB%9Dng_s%E1%BB%91_ph%E1%BB%A9c còn đây là bài của mình làm struct sophuc { float thuc; float ao; }; typedef struct sophuc SOPHUC; void nhap(SOPHUC &P); void xuat(SOPHUC P); SOPHUC tong(SOPHUC P,SOPHUC Q); SOPHUC hieu(SOPHUC P,SOPHUC Q); SOPHUC tich(SOPHUC P,SOPHUC Q); SOPHUC thuong(SOPHUC P,SOPHUC Q); void main() { SOPHUC P,Q,R; clrscr(); cout<<"nhap so phuc thu nhat:"; nhap(P); cout< trieuanhl 02-10-2006, 08:30 PM //đôi chuổi thường sang chuổi hoa
#include
} Ct có lỗi nặng lắm. Memory alloc cho pointer s lấy đâu ra mà gets vào vùng memory point by s. Lỗi dạng này sẽ làm crash app. hailoc12 03-10-2006, 12:38 PM Đúng là dùng thế có lỗi thật, trình biên dịch thông báo "Possible using s before definition" do ở đây s là con trỏ chuỗi nhưng lại chưa được khởi tạo chuỗi nào cả. Chương trình trên chạy đúng là do bên trong trỏ s đã chứa địa chỉ không xác định nào đó, khi sử dụng nó cho hàm gets thì hàm này sẽ đưa các kí tự vào địa chỉ s+1, s+2... y như một chuỗi, và sau khi xử lý sẽ cho ra kết quả đúng, tuy nhiên vùng địa chỉ s+1, s+2.... là vùng ta không kiểm soát được rất có thể lại là địa chỉ của một biến nào đó khác trong chương trình. Bạn có thể kiểm tra điều này bằng cách gán s=NULL rồi xem chương trình có còn chạy đúng nữa không. #include
Cách giải quyết vấn đề này rất đơn giản hoặc khai báo thêm mảng char a[100]; rồi gán s=a; hoặc khai báo s là char s[100]; hailoc12 06-10-2006, 09:49 PM BÀI 21 : 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này sau khi nhập ma trận ta gán các phần tử về mảng 1 chiều sau đó sắp xếp tăng dần theo dạng xoắn ốc bằng cách gán các phần tử ở mảng b cho ma trận a .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài bao gồm các biến toàn cục:
i. a[50][50] : mảng chứa tối đa 50 dòng 50 cột
ii. b[2500] :chứa tối đa 2500 phần tử
iii. k : số phần tử của mảng b
iv. n , m : số dòng và số cột của ma trận a
b. Trong hàm void ganlai_2c() : có nhiệm vụ gán lại mảng a theo hình xoắn ốc có :
i. Biến tmpcot = số cột -1 ( vì ta cho I chạy từ 0 )
ii. Biến tmpdong= số dòng -1 ( tương tự )
iii. Biến ptb : nghĩa là phần tử của b sẽ gán cho ma trận a và vị trí sẽ tăng lên sau khi gán ( nghĩa là chạy lên phần tử kế tiếp ) .
iv. dem : đếm số lần gán để khống chế việc (VD : ma trận 3 x 4 thì chỉ gán 12 lần mà thôi )
v. ax : là biến tăng dòng vào bên trong , nó phụ thuộc vào x thay đổi theo x để tăng chỉ số các biên đi sâu vào ma trận .
vi. Dòng for thứ nhất
Gán cho dòng thứ nhất
vii. Dòng for thứ hai :
1. Chạy từ tmpdong : là biến biên cột cố định j : chạy từ 1 vì đã sắp xếp cạnh thứ nhất rồi , j tăng sẽ gán từ từ ma trận b vào cột biên .
2. Sau vòng for này ta phải xét nếu dem = m*n thì cho dừng tránh trường hợp gán quá số phần tử của ma trận b
viii. Dòng for thứ 3 :
1. Biến z được gán bằng tmpcot -1 có nghĩa là xét phần tử bên trong cột biên trở về ( tránh trường hợp xét phần tử ở cột vừa gán xong ) . ix. Dòng for thứ 4 :
1. biến t được gán bằng tmpdong – 1 , t giảm đến khi nào > ax . Vì bỏ đi phần tử nằm trên cùng cột nhưng ở dòng trên của nó . 3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:50 PM void xuatmang(int a[100],int n)
{ for(int i=0;i hailoc12 06-10-2006, 09:50 PM BÀI 23 :
1. Ý TƯỞNG THUẬT TOÁN :
a. Trước hết viết hàm tìm số nguyên tố .
b. Cho vòng lặp đễ xác định được số nguyên tố đầu tiên và gán cho nó là lớn nhất .
c. Sau đó tạo một vòng lặp quét hết các phần tử và kiểm tra nếu thỏa
i. Lớn hơn số nguyên tố đựợc xác định lúc đầu và
ii. Là số nguyên tố
d. Ta sẽ tìm được số nguyên tố lớn nhất . 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Ở bài này chỉ có hàm int ktnt(int x ) : trong đó x là đối số cần kiểm tra i là biến chạy , dem : là đếm số lần chia hết cho i
b. Hàm void search(int a[100] , int n ) , trong đó :
i. max : là biến dùng để gán giá trị là số nguyên tố lớn nhất
ii. vt : là tìm vị trí của số nguyên tố lớn nhất
c. Hàm main() có :
i. a[100] : mảng tối đa có 100 phần tử
ii. n : số phần tử trong mảng
3. BÀI GIẢI : #include
} hailoc12 06-10-2006, 09:52 PM BÀI 24 1. Ý TƯỞNG THUẬT TOÁN :
a. Phải có một hàm tính tổng các phần tử trên một hàng và có một hàm hoán đổi vị trí các phần tử hai hàng với nhau .
b. Sau đó viết một hàm có vòng lặp kiểm tra và hoán đổi đồng thời viết một hàm sắp xếp các phần tử tăng dần trên từng hàng .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Ở bài này thì có các hàm :
i. Hàm int tong_hang(int a[50][50] , int m ,int k) : hàm này có nhiệm vụ trả về con số có giá trị là tổng của hàng k truyền vào .trong hàm có biến t : làm nhiệm vụ cộng dồn , z : là biến chạy vòng lặp
ii. Hàm void swap_hang(int a[50][50] , int m ,int x ,int y ) : làm nhiệm vụ hoán đổi các phần tử giữa hai hàng x và y .
iii. Hàm void sapxep( int a[50][50] , int n ,int m) : làm nhiệm vụ sắp xếp theo đề bài . Trong hàm có các biến :
1. k : là biến giới hạn hàng xét chỉ chạy tới dòng kế cuối mà thôi
2. z : là biến ứng với một giá trị của k thì z sẽ quét từ k+1 cho đến dòng cuối cùng
3. Đồng thời trong hàm còn có sắp xếp các phần tử tăng dần theo từng hàng có 3 dòng for
a. Vòng for thứ nhất : giới hạn xét hàng
b. Vòng for thứ hai : lấy từng phần tử đi so sánh
c. Vòng for thứ ba : sẽ chạy các phần tử tiếp theo ứng từ giá trị phần tử của Vòng for thứ hai màquét cho đến hết số phần tử trên hàng đó rồi sắp xếp .
iv. Ở hàm main() : có các biến a[50][50] : mảng tối đa 50 hàng và 50 cột , n : số hàng của mảng , m : số cột của mảng . 3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 09:52 PM BÀI 25 1. Ý TƯỞNG THUẬT TOÁN :
a. Ta phải xác định ma trận tích thu được là có số dòng là số dòng của ma trận 1 và số cột là số cột của ma trận 2 .
b. Từ đó xác định được giá trị giới hạn của vòng lặp rồi nhân theo phương pháp nhân 2 ma trận .
c. Lưu ý Phải có cả hai điều kiện sau mới tính tích được
i. số cột của ma trận 1 bằng số dòng của ma trận 2 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài có hàm :
i. Void xuatmatran3(int kq[10][10] ,int a[10][10] , int b[10][10] ,int n ,int m , int c) : làm nhiệm vụ nhân và xuất ma trận kết quả .
ii. Trong hàm có 3 dòng for :
1. Vòng for thứ nhất : Chạy trên từng dòng của ma trận 1
2. Vòng for thứ hai : Chạy trên từng cột của ma trận 2
3. Vòng for thứ ba : ứng với từng giá trị của Vòng for thứ nhất và vòng for thứ hai nó quét trên từng phần tử .
4. sau khi tính in ra phần tử đó luôn .
b. Ở hàm main() gồm :
i. a[10][10] : ma trận tối đa 10 hàng 10 cột
ii. n, m : là số dòng và số cột của ma trận a
iii. b[10][10] : ma trận tối đa 10 hàng 10 cột
iv. d, c : là số dòng và số cột của ma trận b
v. kq[10][10] : là ma trận kết quả có tối đa là 10 dòng và 10 cột 3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 09:52 PM BÀI 26 1. Ý TƯỞNG THUẬT TOÁN :
Tương tự bài só nguyên tố lớn nhất ở bài 23 . Nhưng ở bài này ta cần tìm ra số âm đầu tiên sau đó từ vị trí số ăm đó quét cho đến hết mảng và tìm ra số âm lớn nhất .
2. Ý NGHĨA MỘT SỐ BIÉN TRONG BÀI :
a. Trong bài có hàm void search_am(int a[100] ,int n ) : làm nhiệm vụ tìm và in ra số âm lớn nhất trong mảng . Trong đó có các biến :
i. max : là chứa số âm lớn nhất biến max thay đổi theo giá trị của số âm trên mảng .
ii. vt : là biến chứa vị trí của phần tử hiện đang là số âm lớn nhất
b. Hàm main() có :
i. a[100] : mảng 1 chiều tối đa 100 phần tử .
ii. n : số phần tử trong mảng .
3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 09:53 PM BÀI 27 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này ta cần đếm số phần tử của một mảng con tăng bằng cách vừa xét vừa đếm sau đó lưu lại vị trí của phần tử bắt đầu xét và lưu lại vị trí của phần tử kết thúc mảng con tăng . Để thực hiện được như vậy ta cần có một biến lưu lại số phần tử của mảng con tăng sau đó nếu có mảng con tăng nào dài hơn nữa thì lưu lại những thông tin của mảng như đã nói ở trên . 2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong hàm void xuatmang_tang(int a[100] , int n ) gồm có :
i. Biến vitri_1 : là biến để lưu lại vị trí của phần tử đầu tiên trong mảng con tăng dài nhất .
ii. Biến vitri_2 : là biến để lưu lại vị trí cuối cùng của mảng con tăng dài nhất .
iii. Biến s : là biến để lưu lại vị trí được tính từ phần tử đầu tiên a[0] đến phần tử kết thúc của mảng con tăng dài nhất
iv. Biến t : là biến đếm số phần tử trong mảng con tăng .
b. Trong hàm main() có :
i. a[100] : mảng tối đa là 100 phần tử
ii. n : là số phần tử trong mảng
3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 09:55 PM BÀI 28 1. Ý TƯỞNG THUẬT TOÁN :
a. Ta cũng cần có một hàm kiểm tra nguyên tố tương tự như các bài trước để xét từng phần tử . Nếu tại đó là số nguyên tố thì ta phải thực hiện hàm dời mảng đi một kí tự .
b. Sau khi dời ta gán tại vị trí ở phía sau phần tử đó là 5
c. Lưu ý cho vòng lặp cộng thêm 2 hi đã gán
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài có hàm void insert(int a[100] , int &n ) dùng để chèn thêm phần tử là 5 vào sau phần tử là số nguyên tố .
b. Trong hàm main() có :
i. a[100] : là mảng tối đa có 100 phần tử
ii. n : số phần tử của mảng
3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 09:55 PM BÀI 29 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta chỉ cần đếm số làn xuất hiện của số đầu tiên là bao nhiêu lần sau đó gán giả sử cho nó là lớn nhất ,rồi quét trên mảng nếu gặp phần tử nào xuất hiện nhiều hơn thì ta gán cho nó là lớn nhất .
b. Trước hết ta cần có một hàm đếm phần tử , sau đó là viết một hàm đếm kiểm soát , nếu gặp phần tử giống phần tử đã đếm rồi thì không đếm nữa ngược lại thì đếm và gán giả sử là lớn nhất như đã nói ở trên
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài có hàm int dempt( int x , int a[100] , int n ,int i ) : làm nhiệm vụ là đếm số lần xuất hiện của phần tử đó từ nó trở đi . vì các số trước nó đã xét và đếm nên không cần đếm lại .
b. Hàm void max_xuat( int a[100] , int n ) : làm nhiệm vụ xét và tìm ra phần tử xuất hiện nhiều nhất , trong hàm có các biến :
i. max : để chứa số lần xuất hiện của phần tử
ii. pt : là để lưu lại giá trị của phần tử xuất hiện nhiều nhất .
iii. Vòng lặp for thứ nhất : quét tất cả các phần tử từ phần tử đầu tiên cho đến phần tử cuối cùng .
iv. Vòng for thứ hai : ứng mỗi giá trị của phần tử tại vị trí i thì ta xét phần tử đó có giống một phần tử nào phía trúớc đó hay không nếu giống thì không đếm nữa thoát khỏi vòng lặp tăng giá trị i lên ngược lại thì đếm .
c. Hàm main() gồm các biến :
i. a[100] : mảng phần tử tối đa 100 kí tự
ii. n: số phần tử trong mảng .
3. BÀI GIẢI #include hailoc12 06-10-2006, 09:56 PM BÀI 30 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này cũng tương tự như những bài trên ta cũng cần có một hàm kiểm tra số đó có phải là số nguyên tố hay không .
b. Nếu phải thì tại vị trí đó dời mảng trở về một phần tử .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Hàm kiểm tra số nguyên tố tương tự như lời giải thích của những bài trên
b. Hàm void xoa_ngto( int a[100] , int &n ) : làm nhiệm vụ xóa các số nguyên tố có trong mảng
c. Hàm main() gồm các biến :
i. a[100]: mảng tối đa có 100 phần tử
ii. n : số phần tử của mảng
3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:56 PM BÀI 31 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này ta chỉ cần viết hàm sắp xếp các số dương bằng cách có hai vòng lặp
i. Vòng lặp thứ nhất : làm nhiệm vụ quét các phần tử từ phần tử đầu tiên cho đến phần tử kế cuối
ii. Vòng lặp thứ hai : ứng với các giá trị phần tử của vòng lặp thứ nhất vòng lặp thứ hai quét đến hết mảng sau đó làm nhiệm vụ hoán đổi nếu thỏa điều kiện .
2. Ý NGHÍA MỘT SỐ BIẾN TRONG BÀI :
a. Trong bài có :
i. a[100] : mảng tối đa 100 phần tử
ii. n : số phần tử trong mảng
3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:57 PM BÀI 32 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta nên ưu tiên lấy phần tử gần với x mà đứng trước x
b. Ta phải có một hàm làm nhiệm vụ tìm phần tử gần với x nhất .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. Ở hàm void search_pt(int a[50][50] , int n ,int m , int x ) gồm có :
i. min : là biến chứa hiệu của số x và phần tử a[0][0] .
ii. y : là biến chứa hiệu giữa x và a[i][j] .
iii. pt : là biến chứa giá trị của phần tử gần với x nhất .
b. Ở hàm main() :
i. a[50][50] : mảng có tối đa 50 dòng 50 cột
ii. n , m : là số dòng và số cột
iii. x : là biến được input .
3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:58 PM BÀI 33 : 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta chỉ cần vẽ một ma trận vuông cấp 4 chẳng hạn sau đó quan sát các biến chạy thay đổi rồi tìm ra quy luật của nó .
b. Ví dụ muốn tính tổng các phần tử trên đường chéo chính chẳng hạn trong ma trận cấp 4 thì các phần tử ở các vị trí như sau ( 00 ,11 , 22 , 33 ) thì ta cho vòng lặp chạy từ 0 cho đến n-1 sau đó khai báo một biến cộng dồn lại các phần tử a[i][i] khi vòng lặp chạy .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài chỉ có mảng a[50][50] : tối đa 50 dòng 50 cột , n : là cấp ma trận
3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:58 PM BÀI 34 1. Ý TƯỞNG THUẬT TOÁN :
a. Trước hết ta phải xác định chuyển mảng sang mấy dòng mấy cột .
b. Sau đó mới gán tử mảng 1 chiều sang mảng 2 chiều .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài chỉ có các biến :
i. a[100] : mảng 1 chiều có 100 phần tử
ii. c[100][100] : mảng 2 chiều có tối đa là 100 dòng và 100 cột
iii. x: là số phần tử trên mảng 1 chiều
iv. n , m : là các biến input chính là số dòng và số cột của ma trận
3. BÀI GIẢI : #include hailoc12 06-10-2006, 09:59 PM BÀI 35 1. Ý TƯỞNG THUẬT TOÁN :
Trong bài này trước hết ta kiểm tra trên từng hàng của ma trận coi có số 0 hay không :
i. Có số 0 bẻ khỏi vòng for xét tiếp các điều kiện để gán dĩ nhiên là không thỏa .
ii. Nếu dòng đó không có số 0 thì gán cho ma trận b
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài có hàm :
i. Void tao_mtb( int a[50][50] ,int b[50][50] , int &l , int n ,int m , int &flag ) : làm nhiệm vụ tạo ra ma trận b trong hàm có :
1. p : là biến chạy dòng của ma trận b .
2. vòng for thứ nhất chạy trên dòng của ma trận a .
3. vòng for thứ hai ứng với vòng for thứ nhất để chạy trên từng cột của ma trận a
4. Nếu vòng for thứ hai chạy đến hết ( nghĩa là không có số 0 trên dòng hiện tại ) thì vòng for thứ ba sẽ gán ma dòng hiện tại vào ma trận b .
ii. Ở hàm main() có :
1. a[50][50] : là mảng có tối đa là 50 dòng và 50 cột .
2. n,m : là số dòng và số cột của ma trận a .
3. l : là số dòng của ma trận b
4. flag : là biến lá cờ để biết b có nhận được giá trị nào hay không nếu không thì không xuất ra ma trận b .
3. BÀI GIẢI #include hailoc12 06-10-2006, 09:59 PM BÀI 36 1. Ý TƯỞNG THUẬT TOÁN :
a. Ở bài này ta xét một phần tử rồi so sánh hết các phần tử trong mảng sau đó đổi chỗ , vấn đề ở chỗ là bạn phải xét phần tử như thế nào và quét theo tuần tự nào .
b. Bài này ta thực hiện bằng cách tạo ra hai vòng lặp *****g nhau sau đó quét từ phần tử đó cho hết mảng nhưng quét theo từng cột . Nhưng lưu ý là ví dụ như một ma trân 3 x 4 thì giả sử như hai vòng lặp trên xét tới phần tử 03 thì ta phải so sánh với phần tử thứ 01 trở đi ( 11 , 21 , 31 .. 02 , 12 , 22,32 ….) .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
Trong bài có hàm void sapxep(int a[50][50] , int n , int m )gồm có các biến như sau :
i. t : là biến định vị trí dòng để xét đến vị trí kế tiếp
ii. p : là biến chạy quét trên từng cột mà ứng một giá trị p sẽ chạy vòng lặp for k cho đến khi k = n-1 hóan đổi nếu thỏa và xét tiếp .
3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 10:00 PM BÀI 37 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này để viết các hàm :
i. Xóa đầu chuỗi : trước hết ta phải xác định là có khoảng trắng hay không và nếu có thì có mấy khoảng trắng để ta dời mảng kí tự về với số lần dời bằng số khoảng trắng . Sau đó gán tại vị trí n-1 – số khoảng trắng là kí tự ‘ \0 ‘ .
ii. Xóa giữa chuỗi : Nếu gặp hai khoảng trắng liền nhau thì ta xóa đi một khoảng trắng bằng cách là dời tại vị trí khoảng trắng đó về 1 kí tự .
iii. Xóa cuối chuỗi : N?u g?p kí t? tr?ng ? cu?i chu?i thì ta d?i kí t? ‘ \ 0 ‘ về 1 kí tự .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
N : là độ dài của chuỗi
3. BÀI GIẢI : #include hailoc12 06-10-2006, 10:01 PM Bài 38 : 1. Ý TƯỞNG THUẬT TOÁN :
Ở bài này trước hết ta phải xét xem chuỗi s1 có dài hơn chuỗi s2 không . sau đó khai báo một chuỗi tạm để cắt một chuỗi bằng độ dài của chuỗi s2 đem so sánh với chuỗi s2 .Nếu bằng thì đếm tăng lên 1 ngựợc lại xét từ phần tử tiếp theo lại cắt một chuỗi như vậy cho đến hết chuỗi s1 .
2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
a. s1[100] , s2[100] , tmp[100] : lần lượt là chuỗi s1 ,s2 và chuỗi tạm .
b. m : là độ dài của chuỗi s1 .
c. n: là độ dài của chuỗi s2 .
d. trong hàm ganchuoi có các biến :
i. x : là biến chạy các phần tử của chuỗi tmp .
ii. i : là biến chuyển dịch chuỗi lên 1 kí tự .
iii. k : là biến lặp chạy vừa đủ độ dài của chuỗi s2 để đem so sánh .
iv. p : là biến trả về 0 nếu s2 và tmp bằng nhau .
3. BÀI GIẢI : #include
HẾT hailoc12 06-10-2006, 10:05 PM Rất cám ơn bạn trieuanhl đã đưa ra cách giải quyết cho bài này, tuy còn một số vấn đề về cách sử dụng hàm gets nhưng nhìn chung đã đi đúng hướng. Còn dưới đây mình xin post đáp án bài này theo đúng chương trình.
Bài 40 #include
HẾT hailoc12 06-10-2006, 10:06 PM Bài 41 //DEM SO TU CUA CHUOI #include hailoc12 06-10-2006, 10:08 PM Bài 44 : #include hailoc12 06-10-2006, 10:09 PM Còn đây là đáp án, tất nhiên nó chỉ là tương đối thôi Bài 42 #include
HẾT hailoc12 06-10-2006, 10:09 PM Đáp án đây: Bài 43 #include
HẾT hailoc12 06-10-2006, 10:10 PM Bài 45 : #include hailoc12 06-10-2006, 10:11 PM Bài 46 : #include
HẾT hailoc12 06-10-2006, 10:12 PM Bài 47 #include hailoc12 06-10-2006, 10:12 PM Bài 48 : #include hailoc12 06-10-2006, 10:13 PM Bài 49 : #include hailoc12 06-10-2006, 10:13 PM Bài 50 ; #include
} hailoc12 01-10-2007, 01:42 PM BÀI TẬP Giải và biện luận phương trình bâc hai. (Phuong trinh bac 2) Nhập vào một ngày tháng năm. Cho biết ngày đó là ngày thứ mấy. (Lay thu cua ngay thang) Nhập vào số ngày. Cho biếy ngày đó là ngày tháng năm. (Ngay thu may trong nam) Viết chương trình kiểm tra xem ngày đó có hợp lệ hay không? (Ngay co hop lehay khong) Viết một chương trình có menu đơn giản(Ve menu don gian) Ø Vẽ hình chữ nhật Ø Vẽ hình vuông Ø Thóat Ø In ra hình tương ứng sau khi tiếp nhậyn các giá trị cho biết kích thước , theo yêu cầu của tượng hình . Dùng kí hiệu dấ hoa thi * để vẽ hình. Viết chương trình phân tích một số ra thừa số nguyên tố .(Phan tich ra thua so nguyen to) Viết chương trình cho biết số nhập vào có phải là số chính phương .(Kiem tra so chinh phuong) Viết chương trình kiểm tra số đó có phải là số nguyên tố hay không?(Kiem tra so nguyen to) Tìm lại bội số chung nhỏ nhất và ước số chung lớn nhất của hai số nhâp vào. Viết chương trình in ra như sau:(với chiều cao của các tam giác xuất ra do ngườinhập sẽ nhập vào) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Viết chương trình sử dụng vòng lặp để in ra bảng cửu chương từ 2 đến 9 theo hàng ngang. Viết chương trình mô phong cách nhấn tay hai số tự nhiên bất kì. Viết chương trình tính s= 1+ 2 +…+n . Viết chương trình tính s= 1* 2 *…*n . Viết một chương trình kiểm tra xem một ngày nào đó có hợp lệ hay không? Viết hàm tính căn bậc 2 của mốt số . Viết hàm đảo ngược vị trí các phần tử trong mảng một chiều. Viết hàm nhập vào một mảng a có n số nguyên to. Viết hàm nhập mảng a gồm n phân tử sao cho các số chẳn và lẻ xen kẽ nhau. Viết hàm nhập vào một ma trận xuất ra ma trận chuyển vị. Viết hàm nhập vào một ma trận theo dạng xoắn ốc . Viết hàm xắp xếp mảng a tăng dần . Viết hàm tìm phân tử có số nguyên tố lớn nhất . Nhập vào một ma trận , tìm tổng của từng dòng và xắp xếp các dòng tăng dần theo cái tổng đó. Viết hàm tìm ma trận là tích của hai ma trận . Viết hàm tìm số âm lớn nhất trong mảng. Viết hàm tìm dãy con tăng dài nhất trong mảng . Viết hàm chen phần tử có giá trị 5 vào trong mảng sau các vi trí mà giá trị tại đó là số nguyên tố. Viết hàm in ra màn hình phân tử xuất hiện nhiều nhật trong mảng . Viết hàm sóa tất cả các số nguyên tố trong mảng a . Viết hàm sắp thứ tự tăng các số dương và giữ cố định các số còn lại . Tìm phấn tử trong ma trận gần tới x nhất . Viết hàm tính tổng tam giác trên , tổng tam giác dưới. Viết hàm chuyển mảng 1 chiều b sang ma trận a (n*m) theo dòng . Viết hàm tạo ma trận b từ ma tr65n a bằng cách sóa các dòng có chứa số 0 của mảng a . Viết hàm sắp xếp mảng a 2 chiều theo từng cột . Viết hàm xóacác khỏang trắng ờ đầu chuỗi , cuối và giữa chuỗi . Viết hàm tìm số lần xuất hiện của chuỗi s2 trong chuỗi s1 . Viết hàm đổi chuỗi ra thành chuỡi thường . Viết hàm đổi chuỗi ra thành chuỗi hoa . Viết hàm đếm số từ trong chuỗi . Viết hàm thực hiện phép cộng trừ nhân chia 2 số phức . Viết hàm thực hiện phép cộng trừ nhân chia 2 phân số . Viết chương trình nhập vào 50 sinh viên với mỗi sinh viên gồm các thônh tin sau: mã sinh viên , họ tên , phái , điểm trung bình . Sau đó xuất ra màn hình mỗi sinh viên là một dòng theo thứ tự tăng dần của mã số sinh viên . Viết hàm thêm vào một sinh viên . Tìm một sinh viên theo mã số . Viết hàm tìm độ dài của file . Viết chương trình nhập dữ liệu các nhận viên của một cơ quan và lưu vào file . Sau đó thực hiện các công việc sau : nhập vào một số thứ tự , sửa dữ liệu của nhân viên này vào file viết các hàm thực hiện các công việc sau : Tìm lương thấp nhất của cơ quan Tìm lương trung bình của cơ quan In ra danh sách nhân viên In ra những người có lương cao nhất In ra những người có lương thấp nhất Viết hàm tính số lần xuất hiện của 1 kí tự chữ cái trong tập tin văn bản . Viết hàm tính số từ có trong tập tin Viết hàm nối hai tập tin văn bản với nhau thành một tập tin soithuytinh 13-11-2007, 06:58 PM trời đất Đề Bài lại post tận cuối cùng làm mình vừa đọc vừa đoán đề bài. bạn hailoc12 và các bạn khác post bài nào ghi rõ đề chứ >_<. tks các bạn các bài tập cơ bản rất có ích cho người mới học .... như mình. nguyendinhan 01-01-2008, 01:38 AM tui có code kiểm tra SNT cũng được các bạn xem thử nha int SNT(int n)
{ int dem=0,i=1; while(i<=n) { if(n%i==0) dem++; i++; } return (dem==2);
} mình cũng có 1 bài chuỗi này các bạn tham khảo nha void demso(char *s,char *tam,char *p)
{ int dem,j,n=strlen(s),k=0,max=-MAXINT; *tam='\0'; *p=NULL; for(int i=0;i<=n-1;i=i+dem+1)//dem la dem tung so { dem=0; if(s[i]!=32&&s[i]!='0') { dem++; for( j=i+1;s[j]!=32&&s[j]!='0'&&j
(Nhắc nhở bởi Dr) nguyendinhan 01-01-2008, 01:47 AM và 1 bài về ma trận cũng được nè:tăng dần theo đường xoắc ốc void saptang(int b[],int n) { for(int i=0;i } nguyendinhan 01-01-2008, 01:48 AM và những bài tui mới làm về ma trận nè #include vBulletin® Version 4.2.2, Copyright © 2022 vBulletin Solutions, Inc. All rights reserved. Administer by Kevin Hoang |