TiiL Tutorials
@TinhocTiiL

Bài 1. Mở đầu Lập trình bằng ngôn ngữ C

Trong việc lập chương trình cho máy tính, đầu tiên cần “đơn giản” hiểu : Chương trình là gì, Chương trình máy tính là gì, Lập chương trình là gì, Ngôn ngữ lập trình và vai trò, Cách sử dụng… Hiểu đơn giản, lập trình hay viết chương trình tức là đưa ra các chỉ dẫn (lệnh) để máy tính thực hiện theo. Các chỉ dẫn này thường được viết bằng một “ngôn ngữ” thân thiện với người lập trình, sau đó một ứng dụng trung gian giúp chuyển sang ngôn ngữ máy hiểu để máy thực hiện. Ngôn ngữ thân thiện có thể kể đến là Lập trình bằng ngôn ngữ C, Java, Pascal,…,

Nội dung trong một số trang trình chiếu dưới đây sẽ giúp các bạn hiểu đơn giản “theo cách hiểu của các em nhỏ” các khái niệm, yếu tố, yêu cầu cần thiết để bước đầu bắt tay vào lập trình.

Thực tế, vấn đề của người Lập trình luôn là Phương pháp/Thuật toán để giải quyết bài toán, còn ngôn ngữ (ngoại ngữ nói chuyện với máy tính) chỉ là phương tiện để thể hiện thuật toán.

Vì vậy khi học Nhập môn lập trình, các bạn có 2 chủ đề chính phải học đó là: Học ngôn ngữ (ví dụ Lập trình bằng ngôn ngữ C), và Học một số thuật toán giải một số bài toán cơ bản. Đánh giá về độ khó thì chủ để học ngôn ngữ là tương đối dễ, còn về thuật toán (hay còn gọi là thuật giải, phương pháp giải) thuần túy nằm ở tư duy giải quyết vấn đề ở mỗi người học.

Week01_Post1

 

PS. Nội dung sau được thêm vào từ sách đề tham khảo


II. Bài toán và việc giải bài toán trên máy tính
1. Phương pháp tổng quát để giải một bài toán trên máy tính: Để giải một bài toán trên máy tính cần thực hiện các bước sau:

B1. Xác định bài toán;
B2. Xác định cấu trúc dữ liệu để mô tả bài toán;
B3. Xây dựng thuật toán;
B4. Soạn thảo văn bản chương trình, kiểm tra và hoàn thiện chương trình.

2. Xác định bài toán
+++ Khái quát về bài toán:

Trong quá trình tồn tại và phát triển, mọi cá nhân luôn phải giải quyết nhiều bài toán đặt ra trong cuộc sống. Có thể nói cuộc sống là một chuỗi các bài toán mà ta phải đối đầu để giải quyết. Theo nhiều nhà nghiên cứu thì mọi bài toán đều có thể diễn đạt theo một sơ đồ chung như sau:

A ⇒  B (*)

trong đó:
– A là giả thiết, điều kiện ban đầu, thông tin đã cho, đã biết;
– B là kết luận, là mục tiêu cần đạt hoặc cái phải tìm, phải làm ra khi kết thúc bài toán;
–  ⇒  là suy luận, giải pháp cần xác định hoặc chuỗi các thao tác cần thực hiện để có được kết quả B từ cái đã có A.

+++Xác định bài toán

Theo sơ đồ trên thì việc xác định bài toán có nghĩa là xác định A, B và nếu có thể thì xác định luôn cả các bước thực hiện để “đi” được từ A đến B.

+++ Bài toán trên máy tính
Tương tự như (*), và

  • A gọi là đầu vào (INPUT);
  • B gọi là đầu ra (OUTPUT);
  • ⇒  là CHƯƠNG TRÌNH MÁY TÍNH cho kết quả B với đầu vào A.

Khó khăn

Việc xác định một bài toán trên máy tính thường gặp khó khăn sau:

– Thông tin về A, B thường không rõ ràng và không đầy đủ;

– Thông báo về điều kiện đặt ra cho cách giải (=>) thường không được nêu ra một cách
minh bạch;

Ví dụ 1: Hãy viết chương trình cho phép giải phương trình bậc 2.
A =???, B=???

Ví dụ 2: Giả sử người A có một số tiền X đem gửi tiết kiện, lãi xuất tháng là L% hỏi rằng sau T tháng thì A có bao nhiêu tiền biết rằng cứ 3 tháng thì tiền lãi được cộng vào gốc.

Ví dụ 3: Bài toán 8 hậu – Hãy tìm cách đặt 8 con hậu trên một bàn cờ vua sao cho không có quân hậu nào có thể ăn quân hậu khác.

Ví dụ 4: Cho dãy số a1, a2, …, an hãy sắp xếp dãy trên theo thứ tự giảm dần.

Ví dụ 5: Hãy xây dựng hệ thống quản lý hồ sơ và kết quả học tập của sinh viên.

A =???, B=???

Nhận xét quan trọng

Việc xác định bài toán là rất rất quan trọng, nó ảnh hưởng tới cách thức và chất lượng của việc giải quyết bài toán;

– Một bài toán cho dù được diễn đạt chi tiết, rõ ràng vẫn nên giả định là phần lớn thông tin về A, B là tiềm ẩn trong đầu người giải. Thông tin về A hoặc B thường chỉ là biểu tượng gợi nhớ đến các thông tin tiềm ẩn.

– Bước đầu tiên để xác định một bài toán là phải phát biểu lại bài toán một cách chính xác theo ngôn ngữ của riêng mình vì đó chính là cách tiếp cận bài toán, hiểu bài toán.

– Bước tiếp là tìm hiểu thông tin Input A, Output B và các mối liên hệ giữa chúng;

– Nên xét một vài trường hợp cụ thể để thông qua đó hiểu được cả bài toán , thấy rõ được các thao tác phải làm. Thực tế cho thấy có những bài toán trong tin học chỉ có thể mô tả được thông qua các ví dụ

Avatar
https://khoacntt.ntu.edu.vn/giang-vien/mai-cuong-tho

một GV Đại học. TiiL đã phụ trách một số môn học như: Lập trình Java, Phát triển web với Java, Lập trình thiết bị di động, Lập trình hệ thống nhúng và IoT.