Ma Việt Quang

Giới thiệu về bản thân

Chào mừng bạn đến với trang cá nhân của Ma Việt Quang
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
xếp hạng Ngôi sao 1 ngôi sao 2 ngôi sao 1 Sao chiến thắng
0
(Thường được cập nhật sau 1 giờ!)

Bài 3:

1. Tính khối lượng ethanol nguyên chất:

• Thể tích ethanol: 1000 \text{ ml} \times 40\% = 400 \text{ ml}.

• Khối lượng ethanol: m = 400 \times 0,8 = 320 \text{ gam}.

2. Tính khối lượng glucose:

• Từ phương trình lên men: 180 gam glucose tạo ra 92 gam ethanol.

• Khối lượng glucose lý thuyết: (320 \times 180) : 92 \approx 626,09 \text{ gam}.

• Khối lượng glucose thực tế (hiệu suất 45%): 626,09 : 45\% \approx \mathbf{1391,3 \text{ gam}}


Bài 2: Di chuyển trong điện trường (\text{pH} \approx 6)

Glu (pI \approx 3,2 < 6): Mang điện tích âm \rightarrow Di chuyển về cực Dương (+).

Lys (pI \approx 9,7 > 6): Mang điện tích dương \rightarrow Di chuyển về cực Âm (-).

Gly (pI \approx 6,0): Trung hòa điện \rightarrow Ít di chuyển hoặc đứng yên.


Bài 1: Đồng phân ester C_4H_8O_2

Có 4 đồng phân:

1. HCOOCH_2CH_2CH_3: Propyl formate

2. HCOOCH(CH_3)_2: Isopropyl formate

3. CH_3COOCH_2CH_3: Ethyl acetate

4. CH_3CH_2COOCH_3: Methyl propionate


Câu 1 (2 điểm): Viết đoạn văn 200 chữ – Phân tích ý nghĩa hình tượng “mưa”


Trong bài thơ Anh chỉ sợ rồi trời sẽ mưa của Lưu Quang Vũ, hình tượng “mưa” mang ý nghĩa biểu tượng sâu sắc. Mưa trước hết là một hiện tượng thiên nhiên, nhưng qua tâm hồn đầy cảm xúc của nhà thơ, nó trở thành ẩn dụ cho sự đổi thay, phôi pha của tình yêu và cuộc sống. Cơn mưa có thể “xoá nhoà điều em hứa”, “gãy cành và rụng trái”, khiến vườn xưa, tình xưa cũng dần mất dấu. Mưa là biểu tượng của nỗi lo âu, sợ hãi trước sự chia lìa, đồng thời phản chiếu tấm lòng chân thành, tha thiết muốn gìn giữ hạnh phúc của nhân vật trữ tình. Ẩn sau nỗi sợ “trời sẽ mưa” là khát vọng được sống trong tình yêu bền lâu, được níu giữ ký ức và cảm xúc đẹp đẽ của thuở ban đầu. Như vậy, hình tượng “mưa” không chỉ miêu tả cảnh vật mà còn gợi ra chiều sâu tâm trạng, nỗi trăn trở nhân sinh — thể hiện tài năng và tâm hồn đa cảm của Lưu Quang Vũ.


Câu 2 (4 điểm): Bài văn 600 chữ – Suy nghĩ về những điều làm con người tỉnh thức


Howard Thurman từng nói: “Hãy tự hỏi xem điều gì sẽ khiến bạn tỉnh thức, và thực hiện điều đó. Bởi cái thế giới cần là những con người đã thức tỉnh.” Câu nói ấy là một lời nhắc nhở sâu sắc về giá trị của sự tỉnh thức trong đời sống con người.

“Tỉnh thức” là trạng thái khi con người nhận ra ý nghĩa thật sự của cuộc sống, sống có mục đích và biết điều gì quan trọng với mình. Trong cuộc sống hiện đại, con người thường bị cuốn vào guồng quay của tiền bạc, danh vọng và những ảo ảnh phù du. Ta dễ quên đi giá trị đích thực của tình yêu thương, của lòng biết ơn, của sự sẻ chia. Khi đánh mất khả năng tỉnh thức, ta sống như một cỗ máy — làm việc, chạy theo, nhưng không còn cảm xúc và lý tưởng.

Những điều làm con người tỉnh thức đôi khi rất giản dị: một lần vấp ngã, một nỗi mất mát, một ánh nhìn của người thân hay một câu nói lay động lòng người. Chính những khoảnh khắc ấy giúp ta dừng lại để soi chiếu lại bản thân, để nhận ra đâu là điều đáng quý trong cuộc sống. Khi tỉnh thức, con người sẽ biết yêu thương nhiều hơn, sống có trách nhiệm hơn, biết hướng đến những giá trị tốt đẹp và bền vững.

Thế giới này đang cần những con người tỉnh thức – những người biết lắng nghe, biết yêu thương, dám hành động vì cái đúng, vì cộng đồng. Một người tỉnh thức có thể không làm được điều lớn lao, nhưng họ có thể lan toả ánh sáng của lòng nhân ái đến những người xung quanh. Khi mỗi chúng ta biết tỉnh thức, thế giới sẽ bớt đi vô cảm và thêm nhiều yêu thương.

Tỉnh thức chính là con đường dẫn con người đến sự tự do, hạnh phúc và nhân văn đích thực. Bởi chỉ khi ta tỉnh thức, ta mới thật sự sống, chứ không chỉ tồn tại.



Câu 1:

Thể thơ:

→ Bài thơ được viết theo thể thơ tự do.

(Các dòng thơ dài ngắn linh hoạt, không gò bó trong số chữ, thể hiện mạch cảm xúc tự nhiên của tác giả.)

Câu 2:

Cảm xúc của nhân vật trữ tình:

→ Bài thơ thể hiện nỗi buồn, lo âu và xót xa của nhân vật trữ tình trước sự đổi thay của tình yêu và cuộc đời.

Trong nỗi sợ “trời sẽ mưa”, ẩn chứa nỗi sợ mất mát, phai nhạt của tình cảmkhát khao giữ gìn những điều đẹp đẽ thuở ban đầu. Đó là tâm trạng vừa yêu thương, vừa lo lắng, vừa thiết tha níu giữ hạnh phúc mong manh.

Câu 3:

Phân tích biện pháp tu từ trong đoạn thơ:

“Mưa cướp đi ánh sáng của ngày

Đường chập choạng trăm mối lo khó gỡ

Thức chẳng yên dở dang giấc ngủ

Hạnh phúc con người mong manh mưa sa.”

→ Biện pháp tu từ: Ẩn dụ và nhân hoá.

“Mưa” được nhân hoá, gán cho hành động “cướp đi ánh sáng”, gợi cảm giác u tối, mất mát.

“Mưa” là ẩn dụ cho những biến động, khổ đau trong cuộc sống khiến con người mất đi niềm tin và bình yên.

→ Ý nghĩa: Hình ảnh ấy thể hiện nỗi bất an, bấp bênh của hạnh phúc con người trước sự đổi thay của thời gian và lòng người. Qua đó, Lưu Quang Vũ gửi gắm niềm xót xa, thương cảm cho kiếp người nhỏ bé trong dòng đời vô thường.

Câu 4:

Khi đối diện với một tương lai tràn ngập những điều chưa biết, con người cần có cách cư xử như thế nào?


→ Con người cần bình tĩnh, can đảm và vững tin.

Thay vì lo sợ những đổi thay, ta nên đón nhận và thích nghi với chúng bằng tâm thế chủ động. Chỉ khi giữ được niềm tin, lòng bao dung và khát vọng sống tốt đẹp, con người mới có thể bước qua giông bão, tạo dựng hạnh phúc bền vững.

→ Sự trưởng thành không đến từ việc tránh né nỗi sợ, mà từ việc học cách sống cùng nó một cách mạnh mẽ và nhân ái.



Dưới đây là cách giải bài toán bằng Python và C++ theo đúng yêu cầu: sắp xếp danh sách sao cho số chẵn đứng trước số lẻ, và trong từng nhóm chẵn – lẻ đều sắp xếp tăng dần.


Ý tưởng thuật toán:

1. Tách danh sách ban đầu thành 2 danh sách:

Danh sách các số chẵn

Danh sách các số lẻ

2. Sắp xếp mỗi danh sách theo thứ tự tăng dần.

3. Nối danh sách số chẵn và danh sách số lẻ lại với nhau.


1. Python code:


def sap_xep_chan_le(arr):

    chan = sorted([x for x in arr if x % 2 == 0])

    le = sorted([x for x in arr if x % 2 != 0])

    return chan + le


# Đầu vào

danh_sach = [64, 34, 25, 12, 22, 11, 90]

# Đầu ra

ket_qua = sap_xep_chan_le(danh_sach)

print(ket_qua)


Kết quả:

[12, 22, 34, 64, 90, 11, 25]

(ở đây 34 được xem là số chẵn; nếu bạn muốn giữ đúng thứ tự đầu vào như trong ví dụ bạn nêu thì vui lòng xác nhận lại 34 là chẵn hay lẻ)


2. C++ code:


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;


vector<int> sapXepChanLe(const vector<int>& arr) {

    vector<int> chan, le;

    for (int x : arr) {

        if (x % 2 == 0)

            chan.push_back(x);

        else

            le.push_back(x);

    }


    sort(chan.begin(), chan.end());

    sort(le.begin(), le.end());


    chan.insert(chan.end(), le.begin(), le.end());

    return chan;

}


int main() {

    vector<int> danh_sach = {64, 34, 25, 12, 22, 11, 90};

    vector<int> ket_qua = sapXepChanLe(danh_sach);


    for (int x : ket_qua) {

        cout << x << " ";

    }

    return 0;

}



Dưới đây là cách trình bày thuật toán kiểm tra số nguyên tố theo bước liệt kê, sau đó là cách chuyển thành chương trình theo phương pháp làm mịn dần bằng Python và C++.


1. Thuật toán kiểm tra số nguyên tố (bước liệt kê):


Thuật toán (liệt kê các bước):

1. Nhập số nguyên n.

2. Nếu n < 2 thì không phải số nguyên tố.

3. Duyệt i từ 2 đến căn bậc hai của n:

Nếu n chia hết cho i thì n không phải là số nguyên tố.

4. Nếu không có số nào chia hết, kết luận n là số nguyên tố.


2. Làm mịn dần – từ ý tưởng đến mã lệnh


Ý tưởng làm mịn dần (gỡ rối từng phần logic):

Bước 1: Kiểm tra đầu vào n < 2.

Bước 2: Kiểm tra ước số từ 2 đến sqrt(n).

Bước 3: Trả về kết quả: “nguyên tố” hoặc “không nguyên tố”.


3. Chương trình kiểm tra số nguyên tố


Bằng Python:


import math


def la_nguyen_to(n):

    if n < 2:

        return False

    for i in range(2, int(math.sqrt(n)) + 1):

        if n % i == 0:

            return False

    return True


# Chạy thử

n = int(input("Nhập số nguyên n: "))

if la_nguyen_to(n):

    print(n, "là số nguyên tố")

else:

    print(n, "không phải là số nguyên tố")


Bằng C++:


#include <iostream>

#include <cmath>

using namespace std;


bool laNguyenTo(int n) {

    if (n < 2) return false;

    for (int i = 2; i <= sqrt(n); i++) {

        if (n % i == 0)

            return false;

    }

    return true;

}


int main() {

    int n;

    cout << "Nhập số nguyên n: ";

    cin >> n;


    if (laNguyenTo(n))

        cout << n << " là số nguyên tố\n";

    else

        cout << n << " không phải là số nguyên tố\n";


    return 0;

}



Kiểm thử phần mềm (Software Testing) là quá trình đánh giá và xác minh rằng một phần mềm hoạt động đúng theo yêu cầu đã đề ra. Trong lập trình, kiểm thử phần mềm đóng vai trò cực kỳ quan trọng vì những lý do sau:


1. Vai trò của kiểm thử phần mềm:

Phát hiện lỗi (bug): Giúp lập trình viên phát hiện lỗi trong quá trình phát triển, từ đó sửa chữa kịp thời trước khi phần mềm được triển khai.

Đảm bảo chất lượng: Đảm bảo phần mềm hoạt động ổn định, chính xác và phù hợp với yêu cầu người dùng.

Tăng độ tin cậy: Kiểm thử giúp phần mềm đáng tin cậy hơn khi đưa vào sử dụng thực tế.

Tiết kiệm chi phí: Phát hiện lỗi sớm sẽ tiết kiệm chi phí hơn nhiều so với sửa lỗi sau khi phần mềm đã được triển khai.

Cải thiện trải nghiệm người dùng: Phần mềm ít lỗi, hoạt động mượt mà giúp nâng cao sự hài lòng của người dùng.


2. Ví dụ minh họa:


Giả sử một lập trình viên viết một chương trình máy tính để tính tổng hai số nguyên:


def tong(a, b):

    return a - b  # Lỗi: dùng dấu '-' thay vì '+'


Nếu không kiểm thử, chương trình này sẽ được đưa vào sử dụng, và người dùng sẽ thấy kết quả sai. Nhưng nếu có kiểm thử, chẳng hạn như viết một test case:


assert tong(3, 4) == 7


Lúc này chương trình sẽ phát hiện lỗi vì kết quả trả về là -1 chứ không phải 7. Lập trình viên sẽ sửa lại hàm thành:


def tong(a, b):

    return a + b


Kết luận: Kiểm thử phần mềm là một bước không thể thiếu trong quá trình phát triển phần mềm, giúp đảm bảo sản phẩm cuối cùng hoạt động đúng và ổn

Thuật toán tìm tất cả các ước chẵn của hai số  và :

1. Nhập vào hai số nguyên  và .

2. Tìm ước chung của  :

Tính ước chung của    bằng cách tìm các ước chung của  và , tức là các số chia hết cho cả  và .

3. Chọn các ước chẵn từ các ước chung:

Lọc các ước là số chẵn.

4. In ra các ước chẵn của hai số  .


Giả mã thuật toán:


Bước 1: Nhập vào hai số nguyên a và b

Bước 2: Tìm UCLN của a và b

Bước 3: Duyệt tất cả các số từ 1 đến UCLN(a, b)

  - Nếu là ước chung của a và b và là số chẵn, lưu lại.

Bước 4: In ra tất cả các ước chẵn của a và b.


Thuật toán trong Python (theo phương pháp làm mịn dần):


def ucln(a, b):

    while b:

        a, b = b, a % b

    return a


def find_even_factors(a, b):

    # Tìm ước chung lớn nhất (UCLN) của a và b

    ucln_ab = ucln(a, b)

    

    # Danh sách lưu các ước chẵn

    even_factors = []

    

    # Duyệt qua tất cả các số từ 1 đến UCLN của a và b

    for i in range(2, ucln_ab + 1, 2):  # Chỉ cần xét các số chẵn

        if a % i == 0 and b % i == 0:

            even_factors.append(i)

    

    return even_factors


# Nhập vào hai số nguyên a và b

a = int(input("Nhập vào số a: "))

b = int(input("Nhập vào số b: "))


# Tìm các ước chẵn của a và b

even_factors = find_even_factors(a, b)


# In kết quả

print(f"Các ước chẵn của {a}{b} là: {even_factors}")


Thuật toán trong C++ (theo phương pháp làm mịn dần):


#include <iostream>

#include <vector>

using namespace std;


// Hàm tính UCLN của a và b

int ucln(int a, int b) {

    while (b != 0) {

        int temp = b;

        b = a % b;

        a = temp;

    }

    return a;

}


// Hàm tìm tất cả các ước chẵn của a và b

vector<int> find_even_factors(int a, int b) {

    int ucln_ab = ucln(a, b);

    vector<int> even_factors;

    

    // Duyệt qua tất cả các số từ 2 đến UCLN của a và b (chỉ xét các số chẵn)

    for (int i = 2; i <= ucln_ab; i += 2) {

        if (a % i == 0 && b % i == 0) {

            even_factors.push_back(i);

        }

    }

    

    return even_factors;

}


int main() {

    int a, b;

    

    // Nhập vào hai số nguyên a và b

    cout << "Nhập vào số a: ";

    cin >> a;

    cout << "Nhập vào số b: ";

    cin >> b;

    

    // Tìm các ước chẵn của a và b

    vector<int> even_factors = find_even_factors(a, b);

    

    // In kết quả

    cout << "Các ước chẵn của " << a << " và " << b << " là: ";

    for (int factor : even_factors) {

        cout << factor << " ";

    }

    cout << endl;


    return 0;

}


Giải thích:

1. Tính UCLN:

Hàm ucln(a, b) dùng thuật toán Euclid để tính ước chung lớn nhất của hai số  và .

2. Tìm ước chẵn:

Duyệt qua các số từ 2 đến  và chỉ xét các số chẵn (bước nhảy là 2).

Nếu một số là ước của cả  và , và là số chẵn, thì lưu nó vào danh sách even_factors.

3. In kết quả:

Sau khi tìm ra tất cả các ước chẵn của  và , in chúng ra màn hình.


Phương pháp làm mịn dần:


Phương pháp làm mịn dần (iterative refinement) không quá liên quan trực tiếp đến thuật toán này vì nó thường được dùng để cải thiện độ chính xác của các phép tính trong số học (như tính gần đúng của các nghiệm trong phương trình hoặc hệ phương trình). Tuy nhiên, trong trường hợp này, bạn có thể hiểu là chúng ta đã “làm mịn” dần kết quả bằng cách chỉ lấy các ước chẵn trong quá trình tìm kiếm.

Python
def tim_phan_tu_trong_mang(mang, phan_tu):
  """
  Tìm kiếm một phần tử cụ thể trong một mảng.

  Args:
    mang: Danh sách các phần tử cần tìm kiếm.
    phan_tu: Phần tử cần tìm.

  Returns:
    True nếu phần tử được tìm thấy trong mảng, False nếu không.
  """
  for i in range(len(mang)):
    if mang[i] == phan_tu:
      return True
  return False

# Ví dụ sử dụng
my_array = [1, 5, 8, 2, 9, 3]
element_to_find = 8
if tim_phan_tu_trong_mang(my_array, element_to_find):
  print(f"Phần tử {element_to_find} đã được tìm thấy trong mảng.")
else:
  print(f"Phần tử {element_to_find} không có trong mảng.")

element_to_find = 7
if tim_phan_tu_trong_mang(my_array, element_to_find):
  print(f"Phần tử {element_to_find} đã được tìm thấy trong mảng.")
else:
  print(f"Phần tử {element_to_find} không có trong mảng.")