







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; }