Read without ads and support Scribd by becoming a Scribd Premium Reader.
 
Bài 1: NGUYÊN TẮC LẬP TRÌNH
Các khái niệm cơ bản:
MTĐT hoạt động dựa trên nguyên tắc làm việc theo chương trình.
-1Cơng trình (Program):
Gồm những phát biểu, những lệnh riêng lẻ sắp xếp theo một trình tự nào đó nhằmđiểu khiển máy tính làm việc.Các lệnh này phải được diễn tả bằng một ngôn ngữ lập trình thích hợp mới có thểthực hiện được. Những ngôn ngữ thường dùng như : Basic, Pascal, C, Prolog ... .
-2Ngôn ngữ lập trình (Programming language):
Là một hệ thống hữu hạn các ký hiệuVí dụ: Ngôn ngữ Pascal dùng các ký hiệu: if, then, else, while, , var, {, }.... gọi là các
từ khóa (key word)
và các ký tự: a,..,z,A,..,Z, 0,1,..,9,... không dùng các ký hiệu của bộ chữ cái HyLạp.Các ký hiệu đó phải tuân theo các qui ước về ngữ pháp và ngữ nghiã, cũng giống nhưkhi bạn muốn nói một câu có ý nghiã thì phải kết hợp các từ theo các qui tắc ngữ phápvà ý nghiã của từ trong tiếng mình đang sử dụng.
 Ngữ pháp (Syntax)
: qui ước về quan hệ giữa càc ký hiệu.Ví dụ: Trong ngôn ngữ Pascal, các ký hiệu {
, }
phải đi thành từng cặp; sau ký hiệu
IF
 phải là một (biểu thức điều kiện), sau đó phải là ký hiệu
THEN
;...
 Ngữ nghiã (semantics)
: Qui ước về ý nghiã của các ký hiệu.Ví dụ: Dấu + biểu thị phép cộng; dấu * biểu thị phép nhân; phát biểu IF ... THEN ...có nghiã là “Nếu ... thì ....”;...
-3Sự thực hiện chương trình (Program Execution):
Chương trình được thực hiện tuân theo các qui ước ngữ nghiã của ngôn ngữ.Ví dụ: Phát biểu:IF (x > 0) THEN frintf("dương") ELSE frintf("không dương");Đến lúc thực hiện phát biểu này nếu trị của x lớn hơn 0 thì phát biểuWRITE(‘dương’) được thực hiện (chuỗi chữ ‘dương’ được in ra), còn phát biểuWRITE(‘không dương’) không được thực hiện.Phần lớn các ngôn ngữ hiện nay thực hiện tuần tự, tức là lần lượt thực hiện phát biểunày xong rồi đến phát biểu kế tiếp. Cũng có ngôn ngữ thực hiện song song, tức là thực hiệncùng lúc một số phát biểu.
-4Thuật Tn (Algorithm): Cách thức giải quyết vấn đề.
Giáo sư Niklaus Wirth (Trường ĐH kỹ thuật Zurich, Thụy sĩ), người sáng lập rangôn ngữ Pascal (1970) đã viết:
Algorithms + Data structures = Programs
Để viết chương trình giải quyết một vấn đề, trước tiên cần phải có giải thuật.
Thuật toán
là một dãy các chỉ dẫn rõ ràng các thao tác (công việc, phép toán...) trênnhững đối tượng, sao cho sau một số hữu hạn bước thực hiện các thao tác, ta đạt được mụctiêu định trước.Có nhiều cách diễn đạt thuật giải:
a.Bằng ngôn ngữ tự nhiên:
Ví dụ: Thuật toán giải phương trình bậc nhất ax + b = 0Bước 1: Nhập vào các hệ số a và bBước 2: Nếu a = 0 chuyển sang bước 3nếu không thì chuyển sang bước 4.Bước 3: Nếu b = 0 thì thông báo phương trình đã cho có vô số ngiệm
 
 Nếu không thì thông báo là phương trình vô nghiệm.Chuyển sang bước 5.Bước 4: Thông báo nghiệm của phương trình là -b/a.Bước 5: Dừng thuật toán.Trong ví dụ này, đối tượng chịu thao tác là các số thực a, b, x với ràng buộc ax + b =0. Và các thao tác là :
-
 Nhập hai số a, b
-
So sánh ( a = 0 ?; b = 0 ?)
-
Chia ( phép chia -b cho a)
-
Thông báo kết quả
-
Dừng thuật toán.
-
Chuyển sang bước ...
 Nhận xét: Ưu điểm là người viết không phải chuẩn bị trước những kiến thức gì đặt biệt. nhưng thường dài dòng, không làm nổi bật được cấu trúc thuật toán.
b.Ngôn ngữ Lưu đồ (Flow Chart: sơ đồ khối):
Lưu đồ thuật giải được xây dựng từ những hình cơ bản sau:
a.Nút giới hạn:b. Nút thao tác:c. Nút điều kiện:d. Cung:
là những đường có hướng nối từ nút này đến nút khác.Hoạt động của thuật toán dưới dạng lưu đồ được bắt đầu từ nút đầu tiên, theo cáccung đến các nút khác cho đến khi gặp nút kết thúc thì dừng thuật toán.Ví dụ: Lưu đồ thuật toán giải phương trình bậc nhất ax + b = 0
BeginEnd Nhập a, ba = 0Xuất phương trìnhcó nghiệm x = -b/aXuất phương trìnhcó vô số nghiệmXuất phương trìnhcó vô nghiệm b = 0
-
+-+
2BEAĐK -+
 
 Nhận xét:
Trực quan, giúp ta có được cái nhìn tổng quan hơn về toàn cảnh của quátrình xử lý của thuật toán. Tuy nhiên ngôn ngữ lưu đồ chỉ thích hợp cho những thuật toántương đối đơn giản.
c.
Dùng ngôn ngữ phỏng trình hay mã giả:
 Ngôn ngữ phỏng trình vay mượn các cú pháp của một ngôn ngữ lập trình kết hợp vớingôn ngữ tự nhiên để thể hiện thuật toán.Dùng ngôn ngữ phỏng trình giúp người cài đặt dễ dàng nắm bắt nội dung của thuậttoán và dễ dàng cài đặt bằng 1 ngôn ngữ lập trình cụ thể vì thuật toán đã được biểu diễn bằng các cấu trúc và ký hiệu chuẩn của NNLT.
d.
Bằng ngôn ngữ lập trình:
 Người ta thường dùng ngôn ngữ Pascal để diễn đạt thuậtgiải.
-II
CÁC BƯỚC CƠ BẢN TRONG LẬP TRÌNH:
Khi giải một bài tin học bạn cần thực hiện tuần tự các bước:Bước 1: Tìm hiểu mục đích và yêu cầu bài toán để: Xác định dữ liệu nhập và xuất .Bước 2: Xác định các vấn đề cần giải quyết và Tìm thuật toán để giải quyết nó: bằng cáchxây dựng một số ví dụ phản ảnh đúng các yêu cầu đề ra, rồi thử giải các ví dụ đó đểhình thành dần những hướng đi của thuật toán.Diễn tả rõ ràng thuật giải.Bước 3: Xác định cấu trúc dữ liệu để biểu diễn các dữ liệu cần xử lý cho phù hợp với cácthao tác của thuật toánBước 4: Soạn thảo chương trình.Bước 5: Chạy thử và sửa chữa: Chạy chương trình nhiều lần với những dữ liệu khác nhauđể kiểm tra tính đúng đắn thuật giải.
Ví dụ 1:
Tìm UCLN của hai số tự nhiên a, b dựa theo tính chất Euclid: UCLN của 2 số tựnhiên không thay đổi nếu ta thay số lớn nhất trong 2 số đó bằng hiệu của nó với sốthứ 2.Bước 1:input: 2 số tự nhiên a và b ;output: UCLN(a,b)Bước 2: Tìm thuật toán:Xét ví dụ: a = 75 ; b = 30 và thực hiện theo tính chất đã phát biểu để tìm thuật toán
Thuật toán:Bắt đầu
Trong khi a>0 và b > 0 Nếu a >b thì thay a = a - b Nếu a < b thì thay b = b - aKết quả là (a + b).
Kết thúc
Ví dụ 2: Tìm tất cả các số tự nhiên có 2 chữ số, khi đảo thứ tự của 2 chữ số đó sẽ thu đượcmột số nguyên tố cùng nhau với số đã cho.
Cách giải 1:
Bước 1: Input: Các số nguyên x 2 chữ số ab :10 ..99output: Các số nguyên x = ab sao cho UCLN(ab, ba) = 1Bước 2: Vấn đề cần giải quyết:Tìm số đảo của số x; Tìm UCLN(x,x')
m số đảo: x = ab x' = hdv(x) * 10 + hc(x)
Tìm UCLN: áp dụng thuật toán EuclideThuật toán:Cho x lấy giá trị từ 10 đến 99
-
Tìm số đảo x' của số x
3
Search History:
Searching...
Result 00 of 00
00 results for result for
  • p.
  • Notes
    Load more