-
Thông tin
-
Hỏi đáp
Bài tập môn Cấu trúc dữ liệu và Giải thuật | Đại học Khoa học và Công nghệ Hà Nội
Bài tập môn Cấu trúc dữ liệu và Giải thuật | Đại học Khoa học và Công nghệ Hà Nội. Tài liệu được biên soạn dưới dạng file PDF gồm 8 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kì thi sắp tới. Mời bạn đọc đón xem!
Cấu trúc dữ liệu và Giải thuật (KHCN) 1 tài liệu
Đại học Khoa học và Công nghệ Hà Nội 31 tài liệu
Bài tập môn Cấu trúc dữ liệu và Giải thuật | Đại học Khoa học và Công nghệ Hà Nội
Bài tập môn Cấu trúc dữ liệu và Giải thuật | Đại học Khoa học và Công nghệ Hà Nội. Tài liệu được biên soạn dưới dạng file PDF gồm 8 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kì thi sắp tới. Mời bạn đọc đón xem!
Môn: Cấu trúc dữ liệu và Giải thuật (KHCN) 1 tài liệu
Trường: Đại học Khoa học và Công nghệ Hà Nội 31 tài liệu
Thông tin:
Tác giả:
Tài liệu khác của Đại học Khoa học và Công nghệ Hà Nội
Preview text:
BÀI TẬP VỀ NHÀ
MÔN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
Họ và tên: Dương Ngọc Bẩy Ngày sinh: 25/11/1984 ĐỀ BÀI
Bài 4: Diễn đạt giải thuật giải phương trình bậc hai a + bx + c = 0 bằng: 1. Liệt kê từng bước 2. Sơ đồ khối 3. Ngôn ngữ phỏng trình
4. Ngôn ngữ lập trìnhViết chương trình giải phương trình bậc hai:
Vẽ lưu đồ và viết chương trình
Bài 1: Nhập vào ngày, tháng, năm. Kiểm tra xem ngày, tháng, năm đó có hợp lệ
hay không? In kết quả ra màn hình.
Bài 5: Nhập vào n số kiểm tra tính chẵn, lẻ, đếm các số chia hết cho 5, chia hết
cho 3. In kết quả ra màn hình. BÀI LÀM Bài 4:
1. Liệt kê từng bước (Ngôn ngữ tự nhiên)
Bước 1. Biến đऀi phương trình v đ甃Āng dạng ax2+bx+c=0
Bước 2. Nếu hê ̣ số a chứa tham số, ta x攃Āt 2 trường hợp:
- Trường hợp 1: a = 0, ta giải và biê ̣n luâ ̣n ax + b = 0.
- Trường hợp 2: a ≠ 0. Ta lâ ̣p delta = b2 - 4ac. Khi đó:
+ Nếu delta > 0 thì phương trình có 2 nghiê ̣m phân biê ̣t x1=(-b-sqrt(delta))/(2*a); x2=(-b+sqrt(delta))/(2*a);
+ Nếu delta= 0 thì phương trình có 1 nghiê ̣m (k攃Āp): x1=x2=%.2f
+ Nếu delta<0 thì chương trình vô nghiệm Bước 3. Kết luâ ̣n. 2. Sơ đồ khối Bắt đầu Nhập a, b, c a=0 Đ PT bậc nhất: bx+c=0 PT bậc nhất có Đ Đ c=0 b=0 vô số nghiệm S S S PT bậc nhất
PT bậc nhất có 1 nghiệm vô nghiệm duy nhất: x= -b/c delta=b*b-4*a*c Đ delta<0 PT vô nghiệm S PT có 1 nghiệm k攃Āp delta=0 Đ S PT có 2 nghiệm phân biệt Kết th甃Āc 3. Ngôn ngữ phỏng trình Function
Giải PT bậc hai: a + bx + c = 0 Begin Nhập a, b, c
if a=0 then PT trở thành PT bậc nhất bx+c=0
if b=0 then PT bậc nhất có vô số nghiệmelse
if c=0 then PT bậc nhất vô nghiệm else
PT bậc nhất có 1 nghiệm duy nhất x=-b/c delta=b*b-4*a*c
if delta>0 then PT có 2 nghiệm phân biệt esle
if delta=0 then PT có nghiệm k攃Āp else PT vô nghiệm In ra kết quả End; 4. Ngôn ngữ lập trình #include #include #include using namespace std; int main() { //Khai bao float a,b,c,x1,x2,delta; //Nhap du lieu
cout<<"Nhap vao he so a: ";cin>>a;
cout<<"Nhap vao he so b: ";cin>>b;
cout<<"Nhap vao he so c: ";cin>>c; // Tinh toan if(a == 0) {
// a=0 phuong trinh tro thanh phuong trinh bac mot bx + c = 0 if(b == 0) { if (c == 0) {
cout << "Phuong trinh vo so nghiem" << endl; } else {
cout << "Phuong trinh vo nghiem" << endl; } } else {
cout << "Phuong trinh co nghiem duy nhat: " << -c/b << endl; } } else { delta = b*b - 4*a*c; if(delta > 0) { x1 = (-b+sqrt(delta))/(2*a); x2 = (-b-sqrt(delta))/(2*a);
cout << "Nghiem thu nhat x1 = " << x1 << endl;
cout << "Nghiem thu hai x2 = " << x2 << endl; } else if ( delta == 0) {
cout << "Phuong trinh co nghiem kep: x1 = x2 = " << -b/2*a << endl; } else {
cout << "Phuong trinh vo nghiem" << endl; } } return 0; } Bài 1: 1. Sơ đồ khối Nhập ngày, tháng năm đ甃Āng Tháng==1,3,5,7,8,10,12 So_ngay = 31 sai đ甃Āng Tháng==4,6,9,11 So_ngay = 30 sai Năm%4==0 đ甃Āng &&nam So_ngay = 29 %100=0 sai
Ngay>0 && ngay<=so_ngay đ甃Āng So_ngay = 28 Giá trị ngày && tháng hợp lệ sai Giá trị ngày tháng không hợp lệ Kết th甃Āc 2. Ngôn ngữ lập trình #include #include #include int main () {
int ngay, thang, nam, ngaymax; cout<<"Nhap ngay : "; cin>>ngay; cout<<"Nhap thang : "; cin>>thang; cout<<"Nhap nam : "; cin>>nam;
if (nam<0 || thang<0 || thang> 12 || ngay<0 || ngay> 31) {
cout<<"Ngay khong hop le"; } else { switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: ngaymax=31; break; case 2:
if ((nam%4==0 && nam%100!=0) || (nam%400==0)) ngaymax=29; else ngaymax=28; break; case 4: case 6: case 9: case 11: ngaymax=30; break; } if (ngay<=ngaymax) {
cout<<"Ngay hop le !"<<"\n"; } else {
cout<<"Ngay khong hop le !"<<"\n"; } } } Bài 5. Ngôn ngữ lập trình #include #include using namespace std; int check_odd_even(int n){ //flag = 1 => số lẻ //flag = 0 => số chẵn int flag = 1; if( n % 2 == 0 ) flag= 0; return flag; } int main(){
cout << ("Nhap so nguyen= "); int n; cin >> n;
int check = check_odd_even(n);
if( check == 0 ) cout << n << " la so chan";
else cout << n << " la so le"; return 0; } {
n = int(input("Nhap vao so luong phan tu: "))
print("Nhap vao phan tu cho mang:") a = [] for i in range(0, n):
print("\Phan tu thu", (i+1), "la:", end=" ") a.append(int(input())) print("Mang vua nhap la:") for i in range(len(a)): print(a[i], end="\t") for (int i = 0; i mod 5; ++i) for (int i = 5; i mod 5; ++i)
cout << a[n] << endl; for (int i = 0; i mod 3; ++i) for (int i =3 ; i mod 3; ++i)
cout << a[n] << endl; }