Lập trình tìm số nhỏ nhất (Min) trong dãy số bằng Python và C++

Trong lập trình, tìm số nhỏ nhất trong một dãy số là một tác vụ thường xuyên được thực hiện. Điều này có thể áp dụng cho nhiều tình huống khác nhau, từ phân tích dữ liệu trong khoa học dữ liệu đến quản lý lưu trữ số liệu. Thông qua ngôn ngữ lập trình như Python, C++, và nhiều ngôn ngữ khác, chúng ta có thể xây dựng các thuật toán để tìm ra số nhỏ nhất một cách hiệu quả. Quá trình này thường bao gồm việc sử dụng biến tạm để theo dõi số nhỏ nhất và duyệt qua từng phần tử của dãy để so sánh và cập nhật giá trị tối thiểu. Điều này giúp chúng ta tối ưu hóa quá trình tìm kiếm số nhỏ nhất, có ứng dụng trong nhiều lĩnh vực công nghiệp và nghiên cứu.

Sau đây là Lập trình tìm số nhỏ nhất (Min) trong dãy số bằng Python và C++ nhập dữ liệu từ file và xuất cũng ra file

File input.txt có 2 dòng: Dòng đầu chứa n, dòng sau chứa n số


5
13 53 23 12 2

Lập trình tìm số nhỏ nhất (Min) trong dãy số bằng Python


























try:
    # Đọc dữ liệu từ tệp input.txt với mã UTF-8
    with open('input.txt', 'r', encoding='utf-8') as file:
        n = int(file.readline().strip())  # Đọc số n từ dòng đầu
        numbers = list(map(int, file.readline().split()))  # Đọc dãy số từ dòng tiếp theo
except FileNotFoundError:
    print("Lỗi: Không tìm thấy tệp input.txt. Hãy tạo tệp và nhập dữ liệu.")
    exit(1)
except ValueError:
    print("Lỗi: Dữ liệu không hợp lệ trong tệp input.txt.")
    exit(1)

# Kiểm tra xem dãy số có đúng n phần tử không
if len(numbers) != n:
    print("Lỗi: Số lượng số trong dãy không khớp với n.")
    exit(1)

# Tìm số nhỏ nhất trong dãy số
min_number = min(numbers)

# In số nhỏ nhất ra màn hình
print("Số nhỏ nhất trong dãy số là:", min_number)

# Xuất kết quả ra tệp output.txt với mã UTF-8
with open('output.txt', 'w', encoding='utf-8') as file:
    file.write("Số nhỏ nhất trong dãy số là: " + str(min_number))

Dưới đây là giải thích từng dòng lệnh trong mã Python để tìm số nhỏ nhất trong dãy số lấy từ tệp với mã hóa UTF-8:

  1. try:: Bắt đầu một khối try-except để bắt và xử lý các loại lỗi có thể xảy ra trong quá trình thực thi chương trình.
  2. with open('input.txt', 'r', encoding='utf-8') as file:: Mở tệp văn bản “input.txt” để đọc ('r' đại diện cho chế độ đọc) và sử dụng mã hóa UTF-8 để xử lý các ký tự đặc biệt trong tệp.
  3. n = int(file.readline().strip()): Đọc dòng đầu tiên từ tệp, chứa số nguyên n, và chuyển nó thành một số nguyên. strip() được sử dụng để loại bỏ khoảng trắng và ký tự xuống dòng từ dòng đó.
  4. numbers = list(map(int, file.readline().split())): Đọc dãy số từ dòng tiếp theo và chuyển chúng thành một danh sách (list) các số nguyên. split() được sử dụng để chia dãy số thành các phần tử dựa trên khoảng trắng và sau đó map() được sử dụng để chuyển đổi chúng thành số nguyên.
  5. except FileNotFoundError:except ValueError:: Đây là các khối except để xử lý các loại lỗi cụ thể, như không tìm thấy tệp hoặc dữ liệu không hợp lệ trong tệp. Chương trình sẽ in ra thông báo lỗi và kết thúc nếu có lỗi xảy ra.
  6. if len(numbers) != n:: Kiểm tra xem số lượng số trong danh sách numbers có khớp với n hay không. Nếu không khớp, chương trình in ra thông báo lỗi và kết thúc.
  7. min_number = min(numbers): Sử dụng hàm min() để tìm số nhỏ nhất trong danh sách numbers và gán kết quả vào biến min_number.
  8. print("Số nhỏ nhất trong dãy số là:", min_number): In số nhỏ nhất ra màn hình để hiển thị kết quả cho người dùng.
  9. with open('output.txt', 'w', encoding='utf-8') as file:: Mở tệp văn bản “output.txt” để ghi ('w' đại diện cho chế độ ghi) và sử dụng mã hóa UTF-8 để xử lý các ký tự đặc biệt trong tệp.
  10. file.write("Số nhỏ nhất trong dãy số là: " + str(min_number)): Ghi chuỗi kết quả (“Số nhỏ nhất trong dãy số là: “) và số nhỏ nhất (min_number) vào tệp. str(min_number) được sử dụng để chuyển số nhỏ nhất thành chuỗi trước khi ghi vào tệp.
Read:   Loại bỏ phần tử trùng lặp của dãy số - Lập trình trong Python và Scratch

Mã lệnh này đảm bảo rằng bạn có thể đọc và xử lý dãy số từ tệp văn bản với mã hóa UTF-8 mà không gặp lỗi mã hóa và in kết quả vào tệp “output.txt”.

Lập trình tìm số nhỏ nhất trong dãy số bằng C++






























































#include <iostream>
#include <fstream>
#include <vector>
#include <limits>

int main() {
    std::ifstream inputFile("input.txt");
    std::ofstream outputFile("output.txt");

    if (!inputFile.is_open()) {
        std::cerr << "Lỗi: Không thể mở tệp input.txt." << std::endl;
        return 1;
    }

    int n;
    inputFile >> n;

    std::vector<int> numbers(n);
    for (int i = 0; i < n; ++i) {
        inputFile >> numbers[i] 






















;
    }

    if (numbers.empty()) {
        std::cerr << "Lỗi: Dãy số trống." << std::endl;
        return 1;
    }

    int minNumber = std::numeric_limits<int>::max();

    for (int num : numbers) {
        if (num < minNumber) {
            minNumber = num;
        }
    }

    std::cout << "Số nhỏ nhất trong dãy số là: " << minNumber << std::endl;
    outputFile << "Số nhỏ nhất trong dãy số là: " << minNumber << std::endl;

    inputFile.close();
    outputFile.close();

    return 0;
}

Giải thích từng phần của mã:

  1. Chương trình bắt đầu bằng việc mở tệp input.txt để đọc và tạo tệp output.txt để viết kết quả.
  2. Nếu chương trình không thể mở tệp input.txt, nó in ra một thông báo lỗi và kết thúc với mã lỗi 1.
  3. Chương trình đọc số n từ tệp, biểu thị số phần tử trong dãy số.
  4. Chúng ta tạo một vector để lưu trữ dãy số, sau đó đọc từng phần tử của dãy từ tệp.
  5. Nếu dãy số rỗng, chương trình in ra thông báo lỗi và kết thúc với mã lỗi 1.
  6. Chúng ta sử dụng một biến minNumber để lưu trữ số nhỏ nhất ban đầu, khởi tạo là giá trị lớn nhất có thể sử dụng std::numeric_limits<int>::max().
  7. Chương trình duyệt qua từng số trong vector numbers và so sánh nó với minNumber. Nếu một số nhỏ hơn minNumber, giá trị minNumber được cập nhật thành số đó.
  8. Cuối cùng, chúng ta in số nhỏ nhất ra màn hình và viết vào tệp output.txt.
  9. Chương trình đóng tệp và trả về mã lỗi 0 để báo hiệu thành công.
Read:   Tính S(n) = 1/2 + 1/4 + … + 1/2n - Lập trình bằng Python và Scratch
Hình đại diện của người dùng

admin

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *