intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

BÀI TẬP LUYỆN THUẬT GIẢI

Chia sẻ: Vu Tien DUNG | Ngày: | Loại File: DOC | Số trang:9

137
lượt xem
30
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

1. Lệnh if. Giải phương trình bậc 2 với 3 hệ số a, b, c được nhập từ bàn phím. 2. Lệnh switch. Viết chương trình: a) Nhập vào 3 số nguyên tương ứng ngày, tháng, năm của một ngày nào đó. b) Kiểm tra xem ngày nhập vào có hợp lệ hay không? Ví dụ: Nhập ngày: 30, tháng: 2, năm 2009 - In ra: Tháng 2 năm 2009 tối đa 29 ngày 3. Lệnh lặp. Viết chương trình: a) Nhập một số nguyên n b) In ra giai thừa của n (n! = 1.2.3….n) bằng: 1. Lệnh for 2. Lệnh do … while 3. Lệnh while 4. Dùng đệ...

Chủ đề:
Lưu

Nội dung Text: BÀI TẬP LUYỆN THUẬT GIẢI

  1. 1 BÀI TẬP LUYỆN THUẬT GIẢI 1. Lệnh if. Giải phương trình bậc 2 với 3 hệ số a, b, c được nhập từ bàn phím. 2. Lệnh switch. Viết chương trình: a) Nhập vào 3 số nguyên tương ứng ngày, tháng, năm của một ngày nào đó. b) Kiểm tra xem ngày nhập vào có hợp lệ hay không? Ví dụ: Nhập ngày: 30, tháng: 2, năm 2009 -> In ra: Tháng 2 năm 2009 tối đa 29 ngày 3. Lệnh lặp. Viết chương trình: a) Nhập một số nguyên n b) In ra giai thừa của n (n! = 1.2.3….n) bằng: 1. Lệnh for 2. Lệnh do … while 3. Lệnh while 4. Dùng đệ quy (recursive) 4. Mảng. Viết chương trình thực hiện các công việc sau: a) Khai báo mảng 10 số nguyên, các phần tử mảng được lấy ngẫu nhiên (1
  2. 2 HƯỚNG DẪN GIẢI THUẬT CÁC BÀI TẬP LUYỆN THUẬT GIẢI a*x2 + b*x + c = 0 1. GIẢI THUẬT GIẢI PTB2 1. a = 0, b = 0, c = 0 => PTVSN - OK BEGIN 2. a = 0, b = 0, c = 2 => PTVN - OK 3. a = 0, b = 2, c = 4 => x = - 2 - OK 4. a = 1, b = 2, c = 2 => PTVN (d < 0) double a, b, c, d, x, x1, x2 5. a = 1, b = 2, c = 1 => x = -1 (d = 0) 6. a = 1, b = 4, c = 1 => x1 = … (d > 0) x2 = … Input(a, b, c) N Y a = 0? d < 0? d = b*b– 4*a*c Out(“PT VN”) Y N N Y b = 0? d = 0? x=-c/b x = - b / (2*a) Y N Out(x) Out(x) N c = 0? Out(“PT VN”) x1 = (-b + sqrt(d)) / (2*a) Y x2 = (-b - sqrt(d)) / (2*a) Out(“PT VSN”) Out(x1, x2) END
  3. 3 2. GIẢI THUẬT KIỂM TRA NGÀY NHẬP dmax lưu giữ số BEGIN ngày max của 1 tháng trong năm byte (char) day, month, dmax; int year; Input (year); // year > 0 Input (month); // 0 < month < 13 Input (day); // 0 < day < 32 month month = 1, 3, 5, 7, 8, 10 , 12 month = 4, 6, 9, 11 month = 2 N dmax = 31 dmax = 30 Y year % 4 == 0 Y dmax = 29 dmax = 28 Y Y day > Output (“Input Date is invalid”) dmax N Y Output (“Input Date is valid”) END
  4. 4 3. GIẢI THUẬT TÍNH GIAI THỪA BG int i = 0, n; long int result = 1; Input (n) Y n == 0 || 1 result = 1 N i=1 N i
  5. 5 4. GIẢI THUẬT VỀ CÁC THAO TÁC TRÊN MẢNG
  6. 6 5. GIẢI THUẬT CHUYỂN ĐỔI HỆ THỐNG SỐ BG int i = 0, n, m, r; int arr_bin[64]; Input (n) m=n r = m %2; arr_bin[i++] = r; m = m / 2; N m == 0 Y i-- N END i >= 0 Y Output (arr_bin[i]) i--
  7. 7 6. GIẢI THUẬT VỀ CÁC THAO TÁC TRÊN CHUỖI 6.4 Kiểm tra xem chuỗi nhập có phải là một danh hiệu (identifier) hợp lệ hay không? BEGIN char id[50] , c; int i = 0; String id; char keywords[ ][30] = {“include”, “main”, “if”, “else”, “for”, “do”, “while”, …}; Input (id); // c = id[0]; N (c >= ‘A’ && c = ‘a’ && c = ‘A’ && c = ‘a’ && c = ‘0’ && c
  8. 8 // Program writen in c# public bool CheckId(string st) { string [] keywords = {"if", "else", "class", "interface", "for", "do", "final"}; // Kiem tra ky tu dau tien int len = st.Length; char[] chars = st.ToCharArray(); char c = chars[0]; if((c = 'A')||(c = 'a')||(c == '_')||(c == '$')) { for(int i = 1; i < len; i++) { if((c = 'A')||(c = 'a')||(c == '_')||(c == '$')||(c = '0')) { //flag = true; } else{ return false; } } // Kiem tra xem co trung voi keywords? for(int j = 0; j < keywords.Length; j ++) { if(keywords[j].Equals(st)) { Console.WriteLine(st + " trung voi tu khoa."); return false; } } } else{ return false; // st khong phai la danh hieu cua Java } return true; }
  9. 9 Giải thích giải thuật in ra tam giác vuông các ‘*’: Số hàng nhập vào h = 4 Biến lặp mỗi lần thay đổi hàng r = 1 -> 4 - Trên mỗi hàng,dùng biến lưu trữ giá trị cột c, lặp với số lần lặp bằng số thứ tự của hàng r, thực hiện in ‘*’ - Khi đến cuối hàng, di chuyển con trỏ xuống hàng dưới int h = 4, r, c; for(r = 1; r < = h; r++) { for(c = 1; c h - Trên mỗi hàng,dùng biến lưu trữ giá trị cột c, lặp với số lần lặp bằng số thứ tự của hàng r, thực hiện in: giá trị của cột c (STT cột) - Khi đến cuối hàng, di chuyển con trỏ xuống hàng dưới int h = 9, r, c; for(r = 1; r < = h; r++) { for(c = 1; c
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2