Giáo trình cơ bản về thuật toán và lập trình MSTU. Tài liệu bài giảng

Đại học Kỹ thuật-Nông nghiệp Tây Kazakhstan Zhangir Khan

Khoa: "Tin học"

Khái niệm cơ bản về thuật toán

Chuẩn bị bởi: Ivanov P.

Người kiểm tra: Kukhta V.S.

Uralsk 2010


1. Khái niệm thuật toán và các tính chất của nó

2. Phương pháp mô tả thuật toán

3. Xây dựng thuật toán cấu trúc cơ bản

4. Tài liệu tham khảo

Khái niệm thuật toán và các thuộc tính của nó

Một thuật toán là một thuật toán chính xác được mô tả bằng một số ngôn ngữ. hệ thống cuối các quy tắc xác định nội dung và thứ tự các hành động trên một số đối tượng nhất định, việc thực hiện nghiêm ngặt các quy tắc này sẽ đưa ra giải pháp cho vấn đề. Khái niệm thuật toán, nền tảng của toán học và khoa học máy tính, đã xuất hiện từ rất lâu trước khi công nghệ máy tính ra đời. Từ “thuật toán” xuất hiện từ thời Trung cổ, khi người châu Âu đã quen với cách thực hiện các phép tính số học trong hệ thống thập phân phép tính; được mô tả bởi nhà toán học người Uzbekistan Muhamed ben Al-Khorezmi (“al-Khorezmi” là một người đến từ thành phố Khorezmi; hiện là thành phố Khiva thuộc vùng Khorezm của Uzbekistan). Thuật toán từ là kết quả của cách phát âm châu Âu của các từ của al-Khwarizmi. Ban đầu, thuật toán được hiểu là cách thực hiện các phép tính số học trên số thập phân. Sau đó, khái niệm này bắt đầu được sử dụng để biểu thị bất kỳ chuỗi hành động nào dẫn đến giải pháp cho một vấn đề nhất định.

Bất kỳ thuật toán nào cũng không tồn tại riêng lẻ mà dành cho một người thực hiện cụ thể (người, robot, máy tính, ngôn ngữ lập trình, v.v.). Một đặc điểm đặc trưng của bất kỳ người biểu diễn nào là anh ta biết cách thực hiện một số lệnh nhất định. Tập hợp các lệnh mà một người thực thi nhất định có thể thực thi được gọi là hệ thống lệnh của người thực thi. Thuật toán được mô tả trong các lệnh của người thực hiện, người sẽ thực hiện nó. Các đối tượng mà trên đó người thực thi có thể thực hiện các hành động tạo thành cái gọi là môi trường của người thực thi. Dữ liệu nguồn và kết quả của bất kỳ thuật toán nào luôn thuộc về môi trường của người thực hiện mà thuật toán đó hướng tới.

Ý nghĩa của từ “thuật toán” rất giống với ý nghĩa của các từ “công thức”, “phương pháp”, “quy trình”. Tuy nhiên, không giống như một công thức hoặc quy trình, một thuật toán được đặc trưng bởi các đặc tính sau: tính rời rạc, tính khối lượng, tính chắc chắn, hiệu quả, hình thức.

Tính rời rạc (gián đoạn đối lập với tính liên tục) là một thuộc tính của một thuật toán đặc trưng cho cấu trúc của nó: mỗi thuật toán bao gồm các hành động hoàn thành riêng lẻ, người ta nói: “Nó được chia thành các bước”.

Quy mô lớn - khả năng áp dụng thuật toán cho tất cả các vấn đề thuộc loại đang được xem xét, đối với bất kỳ dữ liệu ban đầu nào. Ví dụ: thuật toán giải phương trình bậc hai trong miền số thực phải chứa tất cả các kết quả có thể xảy ra của nghiệm, tức là, sau khi xem xét các giá trị phân biệt, thuật toán tìm ra hai nghiệm khác nhau của phương trình hoặc hai nghiệm bằng nhau hoặc kết luận rằng không có nghiệm thực.

Tính chắc chắn (tính tất định, tính chính xác) là một thuộc tính của thuật toán, biểu thị rằng mỗi bước của thuật toán phải được xác định chặt chẽ và không được phép diễn giải khác nhau; thứ tự thực hiện các bước riêng lẻ cũng phải được xác định chặt chẽ. Bạn có nhớ câu chuyện cổ tích về Ivan Tsarevich không? “Ivan Tsarevich đi dọc đường và đến một ngã ba. Anh nhìn thấy một tảng đá lớn có khắc dòng chữ: “Đi thẳng sẽ mất đầu, đi bên phải sẽ tìm được vợ, đi bên trái sẽ giàu có”. Ivan đứng đó và suy nghĩ xem phải làm gì tiếp theo ”. Thuật toán không thể chứa các hướng dẫn như vậy.

Hiệu quả là đặc tính mà bất kỳ thuật toán nào cũng phải được hoàn thành với số bước hữu hạn (có thể rất lớn). Câu hỏi xem xét các thuật toán vô hạn vẫn nằm ngoài phạm vi lý thuyết của thuật toán.

Hình thức - thuộc tính này chỉ ra rằng bất kỳ người biểu diễn nào có khả năng nhận thức và thực hiện các hướng dẫn của thuật toán đều hành động chính thức, tức là. bị phân tâm khỏi nội dung nhiệm vụ hiện tại và chỉ tuân thủ nghiêm ngặt các hướng dẫn. Lập luận “cái gì, như thế nào và tại sao?” Người phát triển thuật toán phải thực hiện việc đó và người thực hiện chính thức (không cần suy nghĩ) lần lượt thực hiện các lệnh được đề xuất và thu được kết quả cần thiết.

Các cách mô tả thuật toán

Hãy xem xét phương pháp sau đây mô tả thuật toán: mô tả bằng lời, mã giả, sơ đồ khối, chương trình.

Mô tả bằng lời thể hiện cấu trúc của thuật toán bằng ngôn ngữ tự nhiên. Ví dụ, bất kỳ thiết bị nào thiết bị gia dụng(sắt, cưa điện, máy khoan, v.v.) có sách hướng dẫn, tức là. mô tả bằng lời về thuật toán mà thiết bị này sẽ được sử dụng.

Không có quy tắc nào để soạn một mô tả bằng lời nói. Thuật toán được viết bằng hình thức miễn phí bằng ngôn ngữ tự nhiên, ví dụ như tiếng Nga. Phương pháp mô tả này không phổ biến vì nó không được chính thức hóa một cách chặt chẽ (theo “chính thức”, chúng tôi muốn nói rằng mô tả hoàn toàn đầy đủ và có tính đến tất cả các tình huống có thể xảy ra trong quá trình giải pháp); cho phép diễn giải sự mơ hồ khi mô tả các hành động nhất định; mắc chứng dài dòng.

Mã giả là mô tả cấu trúc của thuật toán bằng ngôn ngữ tự nhiên, được hình thức hóa một phần, cho phép người ta xác định các giai đoạn chính của việc giải quyết vấn đề trước khi viết chính xác bằng ngôn ngữ lập trình. Mã giả sử dụng một số cấu trúc hình thức và ký hiệu toán học phổ biến.

Không có quy tắc cú pháp nghiêm ngặt để viết mã giả. Điều này giúp việc viết thuật toán trong quá trình thiết kế trở nên dễ dàng hơn và cho phép bạn mô tả thuật toán bằng bất kỳ bộ lệnh nào. Tuy nhiên, mã giả thường sử dụng một số cấu trúc vốn có trong các ngôn ngữ hình thức, điều này giúp việc chuyển từ mã giả sang viết thuật toán bằng ngôn ngữ lập trình trở nên dễ dàng hơn. Không có định nghĩa duy nhất hoặc chính thức về mã giả, vì vậy có thể có nhiều mã giả khác nhau, khác nhau về tập hợp từ và cấu trúc được sử dụng.

Lưu đồ - mô tả cấu trúc của thuật toán sử dụng các hình hình học với các đường nối thể hiện thứ tự thực hiện hướng dẫn riêng. Phương pháp này có một số lợi thế. Nhờ tính rõ ràng của nó, nó đảm bảo “khả năng đọc” của thuật toán và hiển thị rõ ràng thứ tự thực hiện các lệnh riêng lẻ. Trong sơ đồ khối, mỗi thiết kế hình thức tương ứng với một hình hình học cụ thể hoặc một tập hợp các hình được nối với nhau bằng các đường thẳng.

Hãy xem xét một số thiết kế cơ bản được sử dụng để xây dựng sơ đồ khối của thuật toán chương trình được quy định bởi GOST 19.701-90.

Khối mô tả phần đầu/cuối của thuật toán (đối với chương trình con - gọi/trả lại)

Chặn - một quy trình được thiết kế để mô tả các hành động riêng lẻ

Chặn - Một quy trình được xác định trước được thiết kế để truy cập các thuật toán phụ trợ (chương trình con)

Chặn - đầu vào/đầu ra từ phương tiện không xác định hoặc mô tả dữ liệu nguồn


Khối - quyết định (kiểm tra điều kiện hoặc khối có điều kiện)

Khối - ranh giới chu trình, mô tả các quá trình tuần hoàn thuộc loại: “chu trình có điều kiện trước”, “chu trình có điều kiện sau”

Khối kết nối

Mô tả thuật toán trong hình thức lời nói, mã giả hoặc dạng sơ đồ, cho phép một số tùy ý trong việc biểu diễn các lệnh. Đồng thời, nó đủ để cho phép một người hiểu bản chất của vấn đề và thực hiện thuật toán. Trong thực tế, máy tính đóng vai trò là người thực thi các thuật toán. Do đó, một thuật toán nhằm thực thi trên máy tính phải được viết bằng ngôn ngữ mà nó có thể hiểu được; ngôn ngữ hình thức hóa như vậy được gọi là ngôn ngữ lập trình.

Chương trình - mô tả cấu trúc của thuật toán trong ngôn ngữ lập trình thuật toán.

Cấu trúc thuật toán xây dựng cơ bản

Các bước cơ bản của thuật toán có thể được kết hợp thành các cấu trúc thuật toán sau: tuyến tính (tuần tự), phân nhánh, tuần hoàn với điều kiện trước và tuần hoàn với điều kiện sau. Bất kỳ thuật toán nào cũng có thể được xây dựng bằng cách sử dụng bốn cấu trúc thuật toán này.

Tuyến tính là một thiết kế thuật toán được triển khai dưới dạng một chuỗi hành động (bước), trong đó mỗi hành động (bước) của thuật toán được thực hiện chính xác một lần và sau mỗi hành động (bước) thứ i, hành động thứ (i+1) (bước) được thực hiện nếu hành động thứ i- không phải là kết thúc của thuật toán.

Phân nhánh (hoặc phân nhánh) là một thiết kế thuật toán cung cấp sự lựa chọn giữa hai lựa chọn thay thế tùy thuộc vào giá trị của dữ liệu đầu vào. Đối với mỗi bộ dữ liệu đầu vào cụ thể, thuật toán phân nhánh được giảm xuống thành thuật toán tuyến tính. Có sự khác biệt giữa phân nhánh không đầy đủ (nếu-thì) và phân nhánh hoàn chỉnh (nếu-thì-khác). Phân nhánh đầy đủ cho phép bạn tổ chức hai nhánh trong thuật toán (bằng cách này hay cách khác), mỗi nhánh dẫn đến một điểm chung của sự hợp nhất của chúng, để việc thực hiện thuật toán tiếp tục bất kể đường dẫn nào được chọn (Hình 1). Phân nhánh không đầy đủ giả định sự hiện diện của một số hành động thuật toán chỉ trên một nhánh (khi đó), nhánh thứ hai không có, tức là. Đối với một trong các kết quả kiểm tra, không cần thực hiện hành động nào; điều khiển ngay lập tức chuyển đến điểm hợp nhất.

Cơm. 1. Phân nhánh đầy đủ

Chu kỳ (hoặc vòng lặp) là một thiết kế thuật toán trong đó một nhóm hành động (bước) liên tiếp nhất định của thuật toán có thể được thực hiện nhiều lần, tùy thuộc vào dữ liệu đầu vào hoặc các điều kiện của vấn đề. Nhóm các hành động lặp lại ở mỗi bước của vòng lặp được gọi là phần thân của vòng lặp. Bất kỳ thiết kế tuần hoàn nào cũng chứa các phần tử của thiết kế thuật toán phân nhánh.

Khái niệm cơ bản về thuật toán và lập trình. Semakin I.G., Shestakov A.P.

tái bản lần thứ 3. - M.: 2016. - 304 tr.

Sách giáo khoa bao gồm các nguyên tắc cơ bản của thuật toán hóa và lập trình dựa trên ngôn ngữ Pascal (phiên bản Turbo Pascal 7.0), các khái niệm cơ bản về lập trình hướng đối tượng và cách triển khai nó bằng ngôn ngữ Turbo Pascal. Môi trường tích hợp được mô tả Lập trình Delphicông nghệ thị giác tạo giao diện đồ họa cho chương trình. Phát triển thể hiện module phần mềm trong môi trường này. Sách giáo khoa có thể được sử dụng khi nghiên cứu chuyên ngành chung của EP “Cơ sở cơ bản về thuật toán và lập trình” theo yêu cầu của Tiêu chuẩn giáo dục liên bang về giáo dục trung học chuyên nghiệp cho các chuyên ngành 230113 “ Hệ thống máy tính và tổ hợp" và 230401 "Hệ thống thông tin (theo ngành)" của nhóm chuyên ngành mở rộng 230000 "Tin học và Kỹ thuật máy tính" Đối với học sinh các cơ sở giáo dục trung cấp nghề.

Định dạng: pdf

Kích cỡ: 7,3 MB

Xem, tải về:drive.google

MỤC LỤC
Lời nói đầu 4
Chương 1. Nguyên lý cơ bản của thuật toán và lập trình 8
1.1. Thuật toán và đại lượng 9
1.2. Thuật toán tính toán tuyến tính 13
1.3. Nhánh và vòng lặp trong thuật toán tính toán 17
1.4. Cơ sở logic của thuật toán hóa 26
1.5. Các thuật toán và thủ tục bổ trợ 30
1.6. Khái niệm cơ bản về lập trình có cấu trúc 33
1.7. Phát triển ngôn ngữ lập trình và công nghệ 39
1.8. Cấu trúc và phương pháp mô tả ngôn ngữ lập trình cấp độ cao 44
Chương 2. Lập trình Pascal 49
2.1. Lần đầu làm quen với ngôn ngữ Pascal 50
2.2. Một số thông tin về hệ thống lập trình trong Pascal 56
2.3. Các thành phần của ngôn ngữ Turbo Pascal 57
2.4. Khái niệm kiểu dữ liệu 59
2.5. Các phép tính toán học, hàm, biểu thức. Toán tử gán 64
2.6. Đầu vào bàn phím và đầu ra màn hình 70
2.7. Điều khiển đầu ra tượng trưng sàng lọc 75
2.8. Các đại lượng, phép toán, biểu thức logic 81
2.9. Hàm liên kết các kiểu dữ liệu khác nhau 83
2.10. Lập trình thuật toán phân nhánh 86
2.11. Lập trình thuật toán tuần hoàn 90
2.12. Chương trình con 96
2.13. Tính toán dãy hồi quy 104
2.14. đồ họa Turbo Pascal 113
2.15. Chuỗi ký tự 123
2.16. Mảng 129
2.17. Các thủ tục đệ quy 139
2.18. Bộ 144
2.19. Tập tin 151
2.20. Loại kết hợp dữ liệu 162
2,21. Con trỏ và cấu trúc động dữ liệu 168
2.22. Các thủ tục và mô-đun bên ngoài 179
Chương 3. Phương pháp xây dựng thuật toán 189
3.1. Phương pháp chi tiết nhất quán 190
3.2. Phương pháp đệ quy 19B
3.3. Các phương pháp liệt kê trong bài toán tìm kiếm 201
3.4. Phương pháp sắp xếp dữ liệu và độ phức tạp của thuật toán 208
Chương 4. Lập trình hướng đối tượng 217
4.1. Lập trình hướng đối tượng là gì 218
4.2. Các đối tượng trong Turbo Pascal 221
4.3. Môi trường lập trình tích hợp Delphi 230
4.4. thành phần Delphi. Thuộc tính thành phần 234
4.5. Lập trình hướng sự kiện 248
4.6. Công nghệ tạo ứng dụng trong Delphi 253
4.7. Ví dụ phát triển Ứng dụng Delphi 256
4.8. Hệ thống phân cấp lớp 269
Ứng dụng 275
Turbo Pascal. Mô-đun CRT 275
Turbo Pascal. Mô-đun ĐỒ HỌA 278
DELPHI, Một số chương trình con 291
Tài liệu tham khảo 298

Để viết ứng dụng cấp độ khác nhau phức tạp, trước tiên bạn cần có kiến ​​thức về cách thực hiện việc này. Và nên bắt đầu với những điều cơ bản nhất về thuật toán và lập trình. Chúng tôi sẽ nói về họ trong bài viết.

Đây là những gì được gọi là phức tạp khoa học kỹ thuật, nhiệm vụ của nó là hệ thống hóa các phương pháp tạo, xử lý, truyền, lưu trữ và tái tạo dữ liệu bằng cách sử dụng Nó cũng bao gồm các nguyên tắc vận hành và phương pháp quản lý giúp đạt được mục tiêu. Bản thân thuật ngữ “khoa học máy tính” có nguồn gốc từ tiếng Pháp và là sự kết hợp giữa các từ “thông tin” và “tự động hóa”. Nó phát sinh nhờ sự phát triển và phổ biến các công nghệ mới để thu thập, xử lý và truyền dữ liệu, liên quan đến việc ghi chúng trên phương tiện máy tính. Đây là nguồn gốc của khoa học máy tính. Những điều cơ bản về thuật toán hóa và lập trình là một trong những lĩnh vực quan trọng nhất của ngành khoa học này.

Cô ấy làm gì?

Khoa học máy tính phải đối mặt với những thách thức sau:

  1. Phần cứng và hỗ trợ phần mềm công nghệ máy tính.
  2. Phương tiện để đảm bảo sự tương tác giữa con người và các thành phần máy tính.

Thuật ngữ “giao diện” thường được dùng để chỉ phần kỹ thuật. Ở đây chúng tôi có một chương trình miễn phí. Những kiến ​​thức cơ bản về thuật toán và lập trình luôn được sử dụng khi tạo ra sản phẩm phân phối đại chúng, mà “nên” tiếp cận được nhiều đối tượng. Suy cho cùng, để trở nên phổ biến, ứng dụng đang được phát triển phải hoạt động và trông tối ưu.

Trình bày thuật toán

Chúng có thể được viết theo một số cách đáng kể. Phổ biến nhất là như sau:

  1. Mô tả bằng lời nói và công thức. Điều này ngụ ý việc đặt văn bản và các công thức cụ thể sẽ giải thích các đặc điểm của sự tương tác trong mọi trường hợp riêng lẻ.
  2. Sơ đồ khối. Tính sẵn có được ngụ ý ký hiệu đồ họa, giúp bạn có thể hiểu được các tính năng tương tác của chương trình trong chính nó và với các ứng dụng hoặc phần cứng máy tính khác. Mỗi người trong số họ có thể chịu trách nhiệm về chức năng riêng biệt, thủ tục hoặc công thức.
  3. Sự sáng tạo ngụ ý cách riêng biệt mô tả cho các trường hợp cụ thể thể hiện tính năng và thứ tự của nhiệm vụ.
  4. Sơ đồ vận hành. Điều này liên quan đến việc tạo một nguyên mẫu - nó sẽ hiển thị sự tương tác dựa trên đường dẫn mà các toán hạng riêng lẻ sẽ đi.

Mã giả. Phác thảo bộ xương của chương trình.

Ghi lại thuật toán

Làm cách nào để bắt đầu tạo nguyên mẫu chương trình, hàm hoặc thủ tục của riêng bạn? Để làm điều này, chỉ cần sử dụng các khuyến nghị chung sau là đủ:

  1. Mỗi thuật toán phải có tên riêng để giải thích ý nghĩa của nó.
  2. Hãy chắc chắn rằng có sự bắt đầu và kết thúc.
  3. Dữ liệu đầu vào và đầu ra phải được mô tả.
  4. Bạn nên chỉ định các lệnh sẽ được sử dụng để thực hiện một số hành động nhất định đối với thông tin cụ thể.

Phương pháp ghi

Có thể có tới năm cách biểu diễn thuật toán. Nhưng chỉ có hai cách viết:

  1. Chính thức-lời nói. Nó được đặc trưng bởi thực tế là mô tả được thực hiện chủ yếu bằng cách sử dụng các công thức và từ ngữ. Nội dung cũng như trình tự thực hiện các giai đoạn của thuật toán trong trường hợp này được viết một cách tự nhiên. ngôn ngữ chuyên nghiệp dưới bất kỳ hình thức nào.
  2. Đồ họa. Phổ biến nhất. Nó sử dụng các ký hiệu khối hoặc sơ đồ thuật toán. Kết nối giữa chúng được thể hiện bằng các đường đặc biệt.

Chúng tôi phát triển cấu trúc chương trình

Có ba loại chính:

  1. Tuyến tính. Với cấu trúc này, mọi hành động được thực hiện tuần tự và chỉ một lần. Sơ đồ trông giống như một chuỗi các khối, được sắp xếp từ trên xuống dưới, tùy thuộc vào thứ tự chúng được thực hiện. Dữ liệu sơ cấp và trung gian thu được không thể ảnh hưởng đến hướng của quá trình tính toán.
  2. Phân nhánh. Đã tìm thấy ứng dụng rộng rãi trong thực tế, trong việc giải quyết nhiệm vụ phức tạp. Do đó, nếu cần tính đến các điều kiện ban đầu hoặc kết quả trung gian, thì các phép tính cần thiết sẽ được thực hiện theo chúng và hướng của quá trình tính toán có thể thay đổi tùy thuộc vào kết quả thu được.

Theo chu kỳ. Để giúp bạn dễ dàng hơn khi làm việc với nhiều công việc, một số lĩnh vực Mã chương trình Nó có ý nghĩa để lặp lại nó nhiều lần. Để không quy định số lần và những việc cần làm, người ta sử dụng cấu trúc tuần hoàn. Nó cung cấp một chuỗi các lệnh sẽ được lặp lại cho đến khi đáp ứng một điều kiện nhất định. Việc sử dụng các vòng lặp cho phép bạn giảm đáng kể độ phức tạp của việc viết chương trình.

Lập trình

Điều quan trọng là chương trình nào sẽ được tạo. Cần lưu ý rằng nhiều trong số chúng được “điều chỉnh” phù hợp với các điều kiện hoạt động cụ thể (ví dụ: trong trình duyệt). Nhìn chung, ngôn ngữ lập trình được chia thành hai nhóm:

  1. Chức năng.
  2. Phòng điều hành:

Không mang tính thủ tục;

Thủ tục.

Bạn có thể đoán cái nào được sử dụng thường xuyên nhất không? Toán tử-thủ tục - đó là câu trả lời. Chúng có thể lấy máy làm trung tâm hoặc độc lập. Đầu tiên bao gồm trình biên dịch mã, mã tự động và mã hóa tượng trưng. Những người độc lập phân chia dựa trên định hướng của họ:

  • thủ tục;
  • có vấn đề;
  • sự vật.

Mỗi người trong số họ có phạm vi ứng dụng riêng. Nhưng để viết chương trình ( ứng dụng hữu ích hoặc trò chơi) ngôn ngữ hướng đối tượng thường được sử dụng nhất. Tất nhiên, bạn có thể sử dụng những thứ khác, nhưng thực tế là chúng được phát triển nhất để tạo ra các sản phẩm tiêu dùng cuối cùng cho đại chúng. Có, và nếu bạn chưa có tầm nhìn chính xác về nơi bắt đầu, tôi khuyên bạn nên chú ý đến những kiến ​​​​thức cơ bản về thuật toán hóa và lập trình hướng đối tượng. Hiện nay đây là một hướng rất phổ biến nơi bạn có thể tìm thấy rất nhiều Tài liệu giáo dục. Nhìn chung, những điều cơ bản về thuật toán hóa và ngôn ngữ lập trình hiện nay là cần thiết do thực tế là đang thiếu các nhà phát triển có trình độ và tầm quan trọng của họ sẽ chỉ tăng lên trong tương lai.

Phần kết luận

Khi làm việc với các thuật toán (và sau đó là các chương trình), bạn nên cố gắng suy nghĩ thấu đáo tất cả các chi tiết nhỏ nhất. Sau đó, việc xác định từng phần mã chưa được phát triển sẽ chỉ dẫn đến công việc bổ sung, tăng chi phí phát triển và thời gian hoàn thành nhiệm vụ. Lập kế hoạch cẩn thận và xây dựng tất cả các sắc thái sẽ tiết kiệm đáng kể thời gian, công sức và tiền bạc. Chà, bây giờ họ có thể nói rằng sau khi đọc bài viết này, bạn đã hiểu những kiến ​​​​thức cơ bản về thuật toán hóa và lập trình. Tất cả những gì còn lại là áp dụng kiến ​​​​thức này. Nếu bạn muốn nghiên cứu chủ đề này chi tiết hơn, tôi có thể giới thiệu cuốn sách “Cơ bản về thuật toán và lập trình” (Semakin, Shestakov) 2012.

Chủ đề 1.3: Phần mềm hệ thống

Chủ đề 1.4: Phần mềm dịch vụ và thuật toán cơ bản

Giới thiệu về Tin học kinh tế

1.4. Phần mềm dịch vụ PC và thuật toán cơ bản

1.4.2. Nguyên tắc cơ bản của thuật toán và ngôn ngữ lập trình

Thuật toán và các thuộc tính của nó

Việc giải quyết vấn đề trên máy tính dựa trên khái niệm thuật toán. Thuật toán là một đơn thuốc chính xác xác định quy trình tính toán từ việc thay đổi dữ liệu ban đầu đến kết quả ban đầu.

Thuật toán có nghĩa là mô tả chính xác về một quy trình nhất định, hướng dẫn thực hiện quy trình đó. Phát triển thuật toán là một quá trình phức tạp và tốn thời gian. Thuật toán hóa là một kỹ thuật phát triển (sáng tác) một thuật toán để giải quyết vấn đề trên máy tính.

Phương tiện trực quan để mô tả (trình bày) thuật toán

Để ghi lại thuật toán giải quyết vấn đề, các phương pháp trực quan sau đây để biểu diễn chúng được sử dụng:

  1. Mô tả bằng lời nói và công thức.
  2. Sơ đồ khối (biểu đồ ký hiệu đồ họa).
  3. Ngôn ngữ thuật toán.
  4. Sơ đồ vận hành.
  5. Mã giả.

Có một kỹ thuật chung để viết một thuật toán:

  1. Mỗi thuật toán phải có một cái tên thể hiện ý nghĩa của nó.
  2. Cần chỉ ra điểm bắt đầu và kết thúc của thuật toán.
  3. Mô tả dữ liệu đầu vào và đầu ra.
  4. Chỉ định các lệnh cho phép bạn thực thi hành động nhất định trên dữ liệu đã chọn.

Tổng quan về thuật toán:

  • tên của thuật toán;
  • mô tả dữ liệu;
  • Bắt đầu;
  • đội;
  • kết thúc.

Phương pháp viết thuật toán bằng lời nói theo công thức được đặc trưng bởi thực tế là việc mô tả được thực hiện bằng cách sử dụng các từ và công thức. Nội dung trình tự các giai đoạn thực hiện thuật toán được viết bằng ngôn ngữ chuyên nghiệp tự nhiên lĩnh vực chủ đề dưới bất kỳ hình thức nào.

Phương pháp đồ họa Mô tả thuật toán (sơ đồ khối) được sử dụng rộng rãi. Vì mô tả đồ họa Các thuật toán sử dụng sơ đồ thuật toán hoặc ký hiệu khối (khối), được kết nối với nhau bằng các đường truyền.

Mỗi giai đoạn của quá trình tính toán được thể hiện bằng các hình hình học (khối). Chúng được chia thành các khối số học hoặc tính toán (hình chữ nhật), logic (kim cương) và khối đầu vào-đầu ra dữ liệu (hình bình hành).


Cơm. 1.

Thứ tự của các giai đoạn được biểu thị bằng các mũi tên nối các khối. Hình học không gianđược đặt từ trên xuống dưới và từ trái sang phải. Các khối được đánh số theo thứ tự chúng được đặt trong sơ đồ.

Ngôn ngữ thuật toán là phương thuốc đặc biệt, dành cho việc viết các thuật toán ở dạng phân tích. Ngôn ngữ thuật toán gần gũi với các biểu thức toán học và ngôn ngữ tự nhiên. Mỗi ngôn ngữ thuật toán có vốn từ vựng riêng. Một thuật toán được viết bằng ngôn ngữ thuật toán được thực thi theo quy tắc nghiêm ngặt ngôn ngữ đặc biệt này.

Sơ đồ toán tử của thuật toán. Bản chất của phương pháp mô tả thuật toán này là mỗi toán tử được ký hiệu bằng một chữ cái (ví dụ: A là toán tử số học, P là toán tử logic vân vân.).

Các toán tử được viết từ trái sang phải theo thứ tự thực hiện của chúng và mỗi toán tử có một chỉ mục cho biết số thứ tự của toán tử. Thuật toán được viết thành một dòng dưới dạng một chuỗi các toán tử.

Mã giả là một hệ thống lệnh dành cho một máy trừu tượng. Đây là cách viết thuật toán sử dụng các toán tử gần với ngôn ngữ thuật toán.

Nguyên tắc phát triển thuật toán và chương trình

Các loại quy trình thuật toán

Theo cấu trúc thực thi, thuật toán và chương trình được chia thành ba loại:

  • tuyến tính;
  • phân nhánh;
  • theo chu kỳ;

Quá trình tính toán tuyến tính

Thuật toán tuyến tính(cấu trúc tuyến tính) là một thuật toán trong đó tất cả các hành động được thực hiện tuần tự lần lượt và chỉ một lần. Sơ đồ là một chuỗi các khối được sắp xếp từ trên xuống dưới theo thứ tự chúng được thực hiện. Dữ liệu sơ cấp và trung gian không ảnh hưởng đến hướng của quá trình tính toán.

Thuật toán cấu trúc phân nhánh

Trong thực tế thường có các bài toán tùy theo điều kiện ban đầu hoặc kết quả trung gian cần phải thực hiện các phép tính bằng cách sử dụng một hoặc các công thức khác.

Những vấn đề như vậy có thể được mô tả bằng thuật toán cấu trúc phân nhánh. Trong các thuật toán như vậy, việc lựa chọn hướng để tiếp tục tính toán được thực hiện dựa trên kết quả kiểm tra một điều kiện nhất định. Quá trình phân nhánh được mô tả bằng câu lệnh IF (điều kiện).


Cơm. 2.

Quá trình tính toán tuần hoàn

Giải quyết nhiều vấn đề liên quan đến sự lặp đi lặp lại. khu vực riêng lẻ tính toán. Để giải quyết những vấn đề như vậy, thuật toán cấu trúc tuần hoàn được sử dụng ( thuật toán tuần hoàn). Chu trình là một chuỗi các lệnh được lặp lại cho đến khi đáp ứng một điều kiện xác định. Việc mô tả theo chu kỳ các tiến trình lặp đi lặp lại làm giảm đáng kể độ phức tạp của việc viết chương trình.

Có hai sơ đồ của quá trình tính toán tuần hoàn.


Cơm. 3.

Một đặc điểm của sơ đồ đầu tiên là điều kiện thoát vòng lặp được kiểm tra trước khi phần thân vòng lặp được thực thi. Nếu điều kiện thoát vòng lặp được thỏa mãn thì phần thân vòng lặp sẽ không bao giờ được thực thi.

Một đặc điểm của sơ đồ thứ hai là vòng lặp được thực thi ít nhất một lần, vì lần kiểm tra đầu tiên về điều kiện thoát vòng lặp được thực hiện sau khi phần thân vòng lặp được thực thi.

Có những vòng lặp với số lần lặp lại đã biết và những vòng lặp lặp lại. Trong một vòng lặp, theo quy luật, việc thoát khỏi thân vòng lặp xảy ra khi đạt được độ chính xác tính toán đã chỉ định.

Ngôn ngữ lập trình

Ngôn ngữ lập trình là ngôn ngữ nhân tạo ghi lại các thuật toán để thực hiện trên máy tính. Lập trình (mã hóa) - biên dịch chương trình theo một thuật toán nhất định.

Phân loại ngôn ngữ lập trình. Nhìn chung, ngôn ngữ lập trình được chia thành hai nhóm: toán tử và chức năng. Các chức năng bao gồm LISP, PROLOG, v.v.

Ngôn ngữ toán tử được chia thành thủ tục và phi thủ tục (Smalltalk, QBE). Những thủ tục được chia thành hướng máy và độc lập với máy.

Tới ô tô - ngôn ngữ định hướng liên quan: ngôn ngữ máy, mã tự động, ngôn ngữ mã hóa biểu tượng, trình biên dịch mã.

Các ngôn ngữ độc lập với máy bao gồm:

  1. Định hướng thủ tục (Pascal, Fortran, v.v.).
  2. Định hướng vấn đề (LISP, v.v.).
  3. Hướng đối tượng (C++, Ngôn ngữ lập trình, Java, v.v.).

Bộ Giáo dục Cộng hòa Belarus

EE "Đại học bang Polotsk"

Khoa công nghệ thông tin

Khoa công nghệ lập trình

KHÓA HỌC

“Cơ sở cơ bản về thuật toán và lập trình”

Hoàn thành:

Khrol D.A.

Novopolotsk 2010

Giới thiệu

Giải pháp cho vấn đề số 1

Giải pháp cho vấn đề số 2

Giải pháp cho vấn đề số 3

Giải pháp cho vấn đề số 4

Giải pháp cho vấn đề số 5

1 Phát biểu vấn đề và lựa chọn phương pháp xử lý thông tin

3 Phát triển thuật toán và mô tả nó

4 Mô tả chương trình

4.1 Cấu trúc chương trình

4.2 Mô tả chương trình con

Kết luận và kết luận


Giới thiệu

Lập trình mỗi ngày ngày càng trở nên phổ biến hơn trong người dùng thông thường gắn liền với sự phát triển mạnh mẽ của công nghệ thông tin. Vào thời kỳ đầu của thời đại máy tính, lập trình viên là nô lệ máy tính. Nhà phát triển phần mềm phải viết lệnh bằng ngôn ngữ duy nhất mà máy tính hiểu được - bằng mã nhị phân và các chương trình trông giống như một chuỗi các số 0 và số 1. Khi thời gian trôi qua và các thuật toán trở nên phức tạp hơn, việc lập trình ngày càng mất nhiều thời gian hơn và việc thay đổi chương trình cũng như nâng cấp chúng gần như là không thể.

Pascal là ngôn ngữ thủ tục cấp cao

Ưu điểm của ngôn ngữ Pascal:

.tính đơn giản tương đối (vì nó được phát triển cho mục đích dạy lập trình);

.hệ tư tưởng của ngôn ngữ Pascal gần với các phương pháp và công nghệ lập trình hiện đại, đặc biệt là lập trình có cấu trúc và thiết kế từ trên xuống (phương pháp chi tiết từng bước) các chương trình. Pascal có thể được sử dụng để viết chương trình nhiều cấp độ khác nhau chi tiết của nó mà không cần dùng đến sơ đồ thuật toán;

.tính linh hoạt về cấu trúc dữ liệu được sử dụng;

.hiệu quả cao của chương trình;

.Có sẵn các phương tiện để cải thiện độ tin cậy của chương trình, bao gồm giám sát việc sử dụng dữ liệu đúng cách nhiều loại khác nhauyếu tố chương trìnhở các giai đoạn phát sóng, biên tập và thực hiện.

Về vấn đề này, ngôn ngữ Pascal hiện là ngôn ngữ được sử dụng rộng rãi nhất để giải quyết nhiều vấn đề khoa học và thực tiễn đa dạng.

Ở trong khóa học cần xây dựng năm chương trình về các chủ đề khác nhau theo phân công của môn học.

Mục tiêu môn học:

xây dựng chương trình theo sự phân công của khóa học;

hệ thống hóa, củng cố các kiến ​​thức lý thuyết và kỹ năng thực hành đã lĩnh hội được trong quá trình đào tạo môn “Cơ sở thuật toán và lập trình”.

1. Giải bài toán số 1

Phát biểu vấn đề và lựa chọn phương pháp xử lý thông tin

Nhiệm vụ đầu tiên của môn học là tính tổng của chuỗi một cách chính xác ε = 10-5:

Giá trị X được nhập từ bàn phím.

Xây dựng toán học của bài toán và lựa chọn phương pháp xử lý thông tin

Để giải quyết vấn đề này, công thức dưới đây sẽ được sử dụng:

Mã chương trình

Thuật toán giải bài toán chương trình Pascal

var, x2k, s, e, eps: real;: số nguyên;: số nguyên;("X="); readln(x);:= 0; eps:= 0,00001; k:= 0;:= 1; x2k:= 1;:= trừ * (-1);k:= x2k * x * x;(k);:= trừ * x2k / (2 * k * (2 * k - 1));:= s + e;abs(e)< eps;("S=", s:8:5);.

Hình 1. Phát triển và mô tả thuật toán

Hướng dẫn sử dụng chương trình

Người dùng nhập giá trị X từ bàn phím. Tiếp theo, các phép tính được thực hiện bằng thuật toán nhất định đến giá trị có độ chính xác là 10 -5. Sau khi tìm thấy kết quả, số tiền sẽ được hiển thị trên màn hình.

2. Giải bài toán số 2

Theo điều kiện của bài toán thứ hai Ma trận vuông cần hoán đổi vị trí các phần tử hàng và cột tại giao điểm của chúng là phần tử dương nhỏ nhất

Hình thức trình bày dữ liệu ban đầu

Dữ liệu được trình bày dưới dạng mảng một chiều.

Hình 2. Phát triển và mô tả thuật toán

Mô tả chương trình. Cấu trúc chương trình.

Chương trình bao gồm 2 chương trình con và một chương trình chính. Các chương trình nhóm được thiết kế để tìm phần tử dương nhỏ nhất và thay thế các phần tử của hàng và cột tại giao điểm của phần tử nhỏ nhất được tìm thấy.

Mô tả các chương trình con

Chương trình con MinPosition được thiết kế để tìm giá trị nhỏ nhất của các phần tử dương của ma trận:

hàm MinPosition(a:array của mảng số nguyên):string;,j,min:integer;:string;:=60;i:=0 tới s doj:=0 tới s do(a[i][j]> 0) và (a[i][j]

Chương trình con AlternativeElems được thiết kế để thay thế các phần tử hàng và cột tại giao điểm của nó có phần tử tối thiểu:

thủ tục AlternativeElems(var a:array của mảng số nguyên; str, col:integer);,j:integer;j:=0 thành s do:=a[j];[j]:=a[j];[j ]:=tmp;;;

Hướng dẫn sử dụng chương trình

Sau khi bắt đầu chương trình, một ma trận chứa đầy các số ngẫu nhiên sẽ được tạo ra. Sau đó, ma trận gốc và ma trận thu được khi thực hiện chương trình sẽ được hiển thị trên màn hình.

3. Giải bài toán số 3

Phát biểu vấn đề và lựa chọn phương pháp xử lý thông tin.

Hình thức trình bày dữ liệu ban đầu

Dữ liệu được trình bày dưới dạng ma trận, kích thước của ma trận phải được nhập vào đầu chương trình.

Phát triển thuật toán và mô tả của nó

Tùy theo điều kiện của bài toán, mảng phải được sắp xếp theo kiểu sắp xếp kim tự tháp. Heapsort sử dụng cây phân loại. Cây sắp xếp là cây nhị phân thỏa mãn các điều kiện sau:

.Mỗi lá có độ sâu d hoặc d − 1, d là độ sâu tối đa của cây.

.Giá trị tại bất kỳ đỉnh nào cũng lớn hơn giá trị của các đỉnh con cháu của nó.

Cấu trúc dữ liệu thuận tiện cho cây sắp xếp là một mảng Array sao cho Array là phần tử ở gốc và phần tử con của phần tử Array[i] là Array và Array.

Thuật toán sắp xếp sẽ bao gồm hai bước chính:

.Ta sắp xếp các phần tử của mảng theo dạng cây sắp xếp:

[i]>=Mảng[i]>=Mảng,

lúc 1<=i

Bước này yêu cầu các thao tác O(n).

2.Chúng tôi sẽ loại bỏ từng phần tử khỏi gốc và xây dựng lại cây. Tức là ở bước đầu tiên chúng ta trao đổi Array và Array[n], chuyển đổi Array, Array, ..., Array thành cây sắp xếp. Sau đó ta sắp xếp lại Array và Array, chuyển đổi Array, Array, ..., Array thành cây sắp xếp. Quá trình tiếp tục cho đến khi còn lại một phần tử trong cây sắp xếp. Khi đó Array, Array,…, Array[n] là một dãy có thứ tự. Việc sắp xếp được tổ chức như một chương trình con PyramidalSort.

Mô tả chương trình

Cấu trúc chương trình

Chương trình gồm 2 chương trình và phần chính. Các chương trình con được thiết kế để chuyển đổi các phần tử thành cây sắp xếp và sắp xếp các phần tử.

Mô tả các chương trình con

Chương trình con DownHeap được thiết kế để chuyển đổi các phần tử thành cây sắp xếp:

thủ tục DownHeap(index, Count: số nguyên; Hiện tại: số nguyên);: Số nguyên;chỉ mục< Count div 2 do:= (index + 1) * 2 - 1;(Child < Count - 1) and (Arr < Arr) then:= Child + 1;Current >= Arr rồi;:= Arr;:= Con;;:= Hiện tại;;

Chương trình con PyramidalSort được thiết kế để sắp xếp một cây:

thủ tục PyramidalSort(var Arr: mas; Count: số nguyên);: số nguyên;: số nguyên;i:= (Đếm div 2) - 1 downto 0 do(i, Count, Arr[i]);i:= Count - 1 downto 0 do:= Arr[i]; Arr[i]:= Arr;(0, i, Hiện tại);;

Hướng dẫn sử dụng chương trình

Để bắt đầu chương trình, bạn phải xác định số phần tử mảng. Sau khi xử lý xong, màn hình sẽ hiển thị mảng ban đầu và mảng thu được từ chương trình.

4. Giải bài toán số 4

Phát biểu vấn đề và lựa chọn phương pháp xử lý thông tin.

Trước mỗi từ của câu gốc hãy in số thứ tự của nó. Hiển thị câu đã chuyển đổi. Kết quả được hiển thị trên màn hình và trong một tập tin văn bản.

Hình thức trình bày dữ liệu ban đầu

Dữ liệu đầu vào của chương trình là một câu được trình bày dưới dạng một chuỗi các từ và ký hiệu.

Hình 3. Phát triển và mô tả thuật toán

Mã nguồn chương trình

sử dụng crt;,num:integer;,word,res:string;:text;

writeln("Nhập câu:");

readln(s);:=0;i:=1 tới độ dài do(f, đầu ra.txt );(f);(s[i]<>" ")then(s[i],word,length(word)+1);length(s)=i then:=res+" "+inttostr(num)+" - "+word;;;(word<>"") then(num);res="" then:=res+" "+inttostr(num)+" - "+word;:=res+" "+inttostr(num)+" - "+word;;:= "";; kết thúc; end;("Kết quả thực hiện");

writeln(f,res);(f);.

Hướng dẫn sử dụng chương trình

Sau khi bắt đầu chương trình, bạn phải nhập một câu. Kết quả khi thực hiện chương trình, câu gốc sẽ được hiển thị trên màn hình với số sê-ri đặt trước mỗi từ. Kết quả cũng sẽ được ghi vào file out.txt.

5. Giải bài toán số 5

1 Phát biểu vấn đề và lựa chọn phương pháp xử lý thông tin

Tạo một file chứa thông tin về bệnh nhân tại phòng khám mắt. Cấu trúc hồ sơ: họ bệnh nhân, giới tính, tuổi, nơi cư trú (thành phố), chẩn đoán. Hiển thị trên màn hình và thành file riêng: số lượng bệnh nhân ngoại tỉnh đến khám; danh sách bệnh nhân lớn hơn X tuổi có chẩn đoán Y. Nhập giá trị của X và Y từ bàn phím. Chương trình phải thực hiện các chức năng bổ sung sau: tạo cơ sở dữ liệu mới; mở cơ sở dữ liệu từ một tập tin; lưu cơ sở dữ liệu vào một tập tin; thêm hồ sơ; xóa hồ sơ; tìm kiếm bản ghi theo một trong các trường; sắp xếp theo một trong các trường bằng phương pháp được chỉ định trong nhiệm vụ 3; hiển thị cơ sở dữ liệu trên màn hình; thoát khỏi chương trình. Để thực hiện các hành động chính của thuật toán, hãy sử dụng các chương trình con. Để xử lý bản ghi, hãy triển khai cấu trúc dữ liệu động, danh sách liên kết đơn.

2 Hình thức trình bày số liệu ban đầu

Dữ liệu ban đầu của chương trình là thông tin về bệnh nhân tại phòng khám mắt.

3 Phát triển thuật toán và mô tả nó

Chương trình được thực hiện dưới dạng một số chương trình con nhỏ, mỗi chương trình con tương ứng với một trong các chức năng (tạo cơ sở dữ liệu, lưu cơ sở dữ liệu, thêm bản ghi, xóa bản ghi, xóa toàn bộ bản ghi, tìm kiếm bản ghi, sắp xếp bản ghi. , tạo báo cáo, thoát khỏi chương trình).

hinh 4

4 Mô tả chương trình

4.1 Cấu trúc chương trình

Cấu trúc của một chương trình có thể được biểu diễn dưới dạng các thủ tục và hàm thực hiện một số hành động nhất định. Chương trình cung cấp cho việc tạo ra một báo cáo. Các bản ghi được sắp xếp bằng phương pháp kim tự tháp.

4.2 Mô tả chương trình con

Sử dụng thủ tục slist_add, bạn có thể thêm dữ liệu bệnh nhân vào cơ sở dữ liệu:

thủ tục slist_add(var q: pslist; a: tclient);, n: pslist;:= q;l<>không thì trong khi l^.o<>không làm l:= l^.o;(n);^.a:= a;^.o:= nil;l<>không thì l^.o:= n else q:= n;;

Để xóa bản ghi, hãy sử dụng thủ tục slist_del:

thủ tục slist_del(var q: pslist; var a: tclient);: pslist;:= q;n<>không thì:= n^.o;:= n^.a;(n);;

Cần có thủ tục menu_load để tải tệp cơ sở dữ liệu:

thủ tục menu_load;: string;: tập tin của tclient;: tclient;

write(Nhập tên file cần upload: ");

readln(f);_destroy(q);(t, f);(t);not eof(t) do(t, a);_add(q, a);;(t);("Đã tải dữ liệu") ;_Chờ đợi;

Cần có thủ tục menu_save để lưu cơ sở dữ liệu hiện có:

thủ tục menu_save;: string;: tập tin của tclient;: pslist;

write("Nhập tên file cần lưu: ");

readln(f);(t, f);(t);:= q;o<>nil do(t, o^.a);:= o^.o;;(t);("Đã lưu dữ liệu");

Quy trình tìm kiếm bản ghi: menu_search;: string;: pslist;: số nguyên;: boolean;

viết( Nhập cụm từ tìm kiếm: ");

readln(p);:= q;:= 0;:= false;o<>nil do(n);(Pos(p, o^.a.name) > 0) hoặc (Pos(p, o^.a.pol) > 0) hoặc (Pos(p, o^.a.town) > 0) hoặc (Pos(p, o^.a.diag) > 0) then:= true;_line(n, o);; := o^.o;;not pres then writeln("Không tìm thấy bản ghi");_wait;

Thủ tục menu_report hiển thị báo cáo cơ sở dữ liệu trên màn hình và trong một tệp:

writeln(" DANH SÁCH BỆNH NHÂN NGOÀI");

writeln(f, " DANH SÁCH BỆNH NHÂN NGOÀI);

p:= q;p<>không có gì^.a.town<>TOWN then(p^.a.name:15, " ", p^.a.town);(f, p^.a.name:15, " ", p^.a.town);;:= p ^.o;;( Nhập độ tuổi cần tìm kiếm: "); readln(a);("Nhập chẩn đoán: "); readln(s);(" DANH SÁCH BỆNH NHÂN LỚN LỚN ", a, " NĂM ĐƯỢC CHẨN ĐOÁN "", s, """) ;

writeln(f, " DANH SÁCH BỆNH NHÂN LỚN ", a, " NĂM ĐƯỢC CHẨN ĐOÁN ", s, """);

p:= q;:= sai;p<>nil do(p^.a.age >= a) và (p^.a.diag = s) thì

writeln(p^.a.name:15, " ", p^.a.age, " ëåò");(f, p^.a.name:15, " ", p^.a.age, " ëåò ");

b:= true;;:= p^.o;;not b then("Không tìm thấy bệnh nhân");

writeln(f, "Không tìm thấy bệnh nhân");

kết thúc;(f);_đợi;;

Để sắp xếp các bản ghi, hai thủ tục được sử dụng: Sort và DownHeap. Thủ tục DownHeap chuyển đổi các phần tử thành cây. Thủ tục Sắp xếp sắp xếp trực tiếp một cây nhất định.

thủ tục Sắp xếp(var q: pslist; Đếm: Số nguyên; Trường: Số nguyên);DownHeap(chỉ mục, Đếm: số nguyên; Hiện tại: pslist);: Số nguyên;chỉ mục< Count div 2 do:= (index + 1) * 2 - 1;(Child < Count - 1) and (data_compare(slist_at_pos(q, Child + 1), slist_at_pos(q, Child), Field)) then:= Child + 1;data_compare(Current, slist_at_pos(q, Child), Field) then;_set(slist_at_pos(q, index), slist_at_pos(q, Child));:= Child;;_set(slist_at_pos(q, index), Current);;: integer;: pslist;(Current);i:= (Count div 2) - 1 downto 0 do_set(Current, slist_at_pos(q, i));(i, Count, Current);;i:= Count - 1 downto 0 do _set(Current, slist_at_pos(q, i));_set(slist_at_pos(q, i), slist_at_pos(q, 0));(0, i, Current);;;

5.5 Hướng dẫn sử dụng chương trình

Sau khi khởi động chương trình, trên màn hình xuất hiện menu chính của chương trình (Hình 5).

Hình 5 - Menu chính

Trực tiếp sử dụng thực đơn này và chương trình được quản lý. Để lựa chọn Hành động mong muốn bạn phải nhấn phím tương ứng.

Sau khi chọn mục menu “tải cơ sở dữ liệu” và “lưu cơ sở dữ liệu”, một cửa sổ sẽ xuất hiện trên màn hình nơi bạn cần nhập tên của tệp đã tạo trước đó (Hình 6).

Hình 6 - Cửa sổ tải và lưu file cơ sở dữ liệu

Sau khi chọn mục menu “thêm mục”, trên màn hình sẽ xuất hiện một cửa sổ loại sau, nơi bạn cần nhập thông tin về bệnh nhân

Hình 7 - Thêm mục nhập

Để xóa một mục, bạn phải chọn mục “xóa mục”, sau đó bạn phải nhập số mục cần xóa (Hình 8).

Hình 8 - Xóa các mục

Để tìm kiếm bản ghi, bạn cần thực hiện mục menu “tìm kiếm bản ghi”, sau đó nhập tiêu chí tìm kiếm (Hình 9).

Hình 9 - Tìm kiếm bản ghi

Để sắp xếp và tạo báo cáo, bạn cũng phải chọn các mục menu thích hợp, sau đó làm theo hướng dẫn của chương trình. Báo cáo được lưu trong thư mục chương trình có tên eye.txt.

Kết luận và kết luận

Ban đầu, ngôn ngữ lập trình Pascal được dùng để dạy lập trình. Nhưng người ta sớm phát hiện ra rằng Pascal phù hợp để viết các chương trình thực tế. Và nhờ điều này, sự nổi tiếng của Pascal bắt đầu tăng lên. Nó vẫn còn được nghiên cứu trong các trường học, viện nghiên cứu và các tổ chức khác. cơ sở giáo dục. Pascal có cú pháp đơn giản hơn các ngôn ngữ lập trình khác. Nhưng Pascal là ngôn ngữ gần nhất với ngôn ngữ thủ tục thuật toán lý tưởng, vì nó thực hiện đầy đủ các nguyên tắc lập trình có cấu trúc.

Năm chương trình được phát triển như một phần của khóa học nhiều loại khác nhau và các chủ đề khác nhau:

.Tính tổng của một chuỗi;

.Xử lý mảng một chiều;

.Xử lý ma trận;

.Xử lý chuỗi;

.Làm việc với các tệp, triển khai cấu trúc dữ liệu “danh sách liên kết đơn”.

Các khóa học đã được hoàn thành đầy đủ, phù hợp với tùy chọn bài tập. Trong quá trình học, các kỹ năng lập trình lý thuyết và thực tế trong Pascal đã được tiếp thu.

Danh sách tài liệu được sử dụng

1.Faronov V.V. Turbo Pascal 7.0. Khóa học sơ cấp: Hướng dẫn. - M.: Norwich, 1997.

Borodich Yu.S., Valvachev A.N., Kuzmich A.I. Pascal cho những máy tính cá nhân. - Mn.: Cao đẳng; BFGITM "NIKA", 1991.

Ofitserov D.V., Dolgiy A.B., Starykh V.A. Lập trình trên những máy tính cá nhân: Hội thảo: Sách giáo khoa. - Mn.: Cao đẳng, 1993.

Kulagin N.B. Lập trình trong Turbo Pascal 7.0 và Delphi. - St. Petersburg: BHV, 2000.

Pilshchikov V.N. Tuyển tập các bài tập về ngôn ngữ Pascal. M.: Nauka, 1989.

Grogono P. Lập trình bằng Pascal. - M.: Mir, 1982.

Hughes J., Michtom J. Một cách tiếp cận có cấu trúc để lập trình. - M.: Mir, 1980.

Manuelov V.G. Phát triển phần mềm bằng Pascal. - M.: Trước đây, 1996.

Goodman S., Hidetniemi S. Giới thiệu về phát triển và phân tích thuật toán. - M.: Mir, 1981.

Dijkstra E. Kỷ luật lập trình. - M.: Mir, 1978. http://lib.ru/ctotor/dejkstra.

Faronov V.V. Thực hành lập trình. M.: MVTU-FESTO DIDACTIC, 1993. http://borlpasc.narod.ru/docym/farpract/oglav.htm

Diễn đàn CIT (Diễn đàn Công nghệ CNTT) [ Tài nguyên điện tử] Chế độ truy cập: http://www.citforum.ru/database/classics/chen/