# Bài Tập Thực Hành Viết Chương Trình Đơn Giản
## :dart: Bài 1: Giải phương trình bậc nhất
:heavy_check_mark: <b> Đề bài: </b>Viết chương trình giải phương trình bậc nhất $ax + b = 0$ ($a$ # $0$). Với $a$, $b$ là hai số thực nhập từ bàn phím và nghiệm được thông báo ra màn hình.
:::spoiler :+1: *Hướng dẫn giải* :100:
Phương trình bậc nhất $ax + b = 0$ ($a \ne 0$) được giải như sau
$ax + b = 0 \Leftrightarrow x = \frac{-b}{a}$
<b>Kết luận:</b> Phương trình bậc nhất một ẩn luôn có một nghiệm duy nhất là <b> $\frac{-b}{a}$ </b>
:::
Đọc phần đề bài, ta sẽ nhập hai <i>số thực </i> a và b là hai số được nhập từ bàn phím. Sau đó in ra kết quả màn hình (theo phần kết luận trong hướng dẫn giải)
>[!Note]
Để nhập 1 số thực được nhập từ bàn phím thì thực hiện câu lệnh như sau: <biến> = float(input(<Dòng thông báo>))
## :dart: Bài 2 : An ninh lương thực
:heavy_check_mark: <b>Đề bài: </b> Trung bình mỗi người dân cần có $a$ kg gạo để ăn, chế biến và phục vụ chăn nuôi trong một năm. Để đảm bảo an ninh lương thực, tổng số gạo dự trữ trong các kho của nhà nước chia cho đầu người phải hơn hơn hoặc bằng $a$ kg.
Một nước có số dân là b thì cần dự trữ tối thiểu bao nhiêu kg gạo? Em hãy viết chương trình nhập từ bàn phím hai số $a$, $b$ và đưa ra màn hình khối lượng gạo tối thiểu cần dự trữ?
:+1: <b>Yêu cầu:</b> Cần đưa ra màn hình hướng dẫn nhập dữ liệu và thông báo kết quả bằng Tiếng Việt có dấu.
<b>Ví dụ:</b> nhập số liệu trong sách giáo khoa Tin học 10 <b>(Cánh Diều) </b> <i>trang 70</i>
:::spoiler Hướng dẫn giải
Đọc đề, chúng ta sẽ thấy được công thức là:
<span style="color:green"><b> Số gạo lưu trữ tối thiểu = Số gạo trung bình của một người dân * số dân </b> </span>
Trước hết, chúng ta sẽ đặt 2 biến
+ Biến $a$ là biến chỉ số gạo trung bình của một người dân
+ Biến $b$ là biến chỉ số dân
<b>Note: </b>Hai biến này là hai biến số nguyên được nhập từ bàn phím => sử dụng lệnh nhập biến số nguyên từ bàn phím
Khi đó: Chúng ta sẽ cần 1 biến $ans$ (là biến để chỉ số gạo lưu trữ) = $a * b$ (theo công thức ở trên)
Cuối cùng chúng ta xuất ra màn hình biến ans
:::
## :dart: Bài 3: Tìm ước chung lớn nhất
Em hãy viết chương trình nhập vào từ bàn phím hai số nguyên $a$ và $b$, tính và đưa ra màn hình ước chung lớn nhất của hai số đó.
<b>Ví dụ:</b> nhập số liệu trong sách giáo khoa Tin học 10 <b>(Cánh Diều) </b> <i>trang 70</i>
:::spoiler :bear::bear: <b>Code Bài 3</b>
```python
import math
a = int(input("Nhập số nguyên a = "))
b = int(input("Nhập số nguyên b = "))
print("Ước chung lớn nhất của a và b:", math.gcd(a,b))
```
:::
>[!Note]
Tìm hiểu một số hàm toán học trong Python. <https://docs.python.org/3/library/math.html>
>[!Tip]
Hàm <b>abs() </b> có thể được sử dụng. Với các hàm còn lại thì ta cần đưa vào chương trình câu lệnh import math trước khi gọi hàm <b>lần đầu tiên </b>
>[!Important]
Lời gọi tới hàm có dạng: <b>math</b>. <tên hàm>
<b><u>Ví dụ</u></b>: Sử dụng hàm ceil(x) trong thư viện math thì khai báo là <b>math.ceil(x) </b>
>[!Caution]
Trong lời gọi tới hàm, nếu để tên hàm mà không có cái math phía trước thì sẽ thông báo lỗi trong chương trình Python
## :dart: Bài 4: Bài tập Vận Dụng
Viết chương trình tính và đưa ra màn hình vận tốc v (m/s) khi chạm mặt đất của một vật rơi tự do từ độ cao h, biết rằng $v$ = $\sqrt{2gh}$, trong đó $g$ là gia tốc trọng trường ($g \approx 9.8 m/s^2$). Độ cao h tính theo mét được nhập từ bàn phím.
:::spoiler :+1:Hướng dẫn giải :100:
- Đầu tiên, ta sử dụng phép gán trong chương trình để gán cho giá trị $g = 9.8$
- Tiếp theo, ta sử dụng câu lệnh nhập từ bàn phím cho biến h (là biến để chỉ độ cao từ một vật rơi tự do đến mặt đất)
- Bước tiếp theo, ta sẽ khai báo thư viện hàm <b>math</b>
- Sau đó sử dụng biến $v$ để tính công thức: $v$ = $\sqrt{2gh}$
- Cuối cùng ta sẽ xuất ra biến v để ra được kết quả mong muốn