Bài giảng Cơ sở lập trình - Trường ĐH Thương mại

108 2 0
Bài giảng Cơ sở lập trình - Trường ĐH Thương mại

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Cơ sở lập trình nhằm cung cấp các kiến thức cơ sở về lập trình như: thuật toán, sơ đồ khối; chương trình và ngôn ngữ lập trình; các phương pháp lập trình và kỹ thuật thiết kế chương trình, các thành phần cơ sở của ngôn ngữ lập trình. Ngôn ngữ lập trình C sẽ được sử dụng để làm phương tiện để trình bày. Mời các bạn cùng tham khảo!

8/4/2020 Số tín chỉ: Bộ mơn: Tin học 7/2020    Cơ sở lập trình Số tín chỉ: (30,15) Mã HP: INFO0621 Đánh giá: ▪ ĐCC: 0.1; ĐTH: 0.3; ĐT: 06  Mục tiêu: cung cấp kiến thức sở lập trình: thuật tốn, sơ đồ khối; chương trình ngơn ngữ lập trình; phương pháp lập trình kỹ thuật thiết kế chương trình, thành phần sở ngơn ngữ lập trình Ngơn ngữ lập trình C sử dụng để làm phương tiện để trình bày 7/2020 Cơ sở lập trình 8/4/2020 Chương Số tiết LT TH Chương Tổng quan sở lập trình 6 Chương Các thành phần sở 13 Chương Mảng, xâu trỏ Chương Hàm Chương Kiểu liệu có cấu trúc Tổng 45 30 15 7/2020  Cơ sở lập trình Bắt buộc [1].TS Nguyễn Thị Thu Thủy Giáo trình sở lập trình NXB Thống kế, 2014 [2] Phạm Văn Ất Kỹ thuật lập trình C NXB GTVT, 2008  Khuyến khích [1] Qch Tuấn Ngọc Ngơn ngữ lập trình C NXB Thống kế, 2003 [2] Ngơ Trung Việt, Ngơn ngữ lập trình C C++, NXB GTVT, 1995 [3] www.cprogramming.com/tutorial.html [4] https://randu.org/tutorials/c/ 7/2020 Cơ sở lập trình 8/4/2020 1.1 Thuật toán 1.2 Sơ đồ khối 1.3 Chương trình ngơn ngữ lập trình 1.4 Các phương pháp lập trình 1.5 Kỹ thuật thiết kế chương trình 7/2020 Cơ sở lập trình 1.1.1 Khái niệm 1.1.2 Tính chất thuật tốn 1.1.3 Ví dụ 7/2020 Cơ sở lập trình 8/4/2020 Khái niệm 1: Thuật toán dãy hữu hạn bước xếp theo trật tự xác định, bước mô tả xác phép tốn hành động cần thực hiện, để giải vấn đề Khái niệm 2: Thuật toán dãy hữu hạn thao tác, xếp theo trật tự xác định, sau thực hiện, từ Input ta nhận Output cần tìm 7/2020 Cơ sở lập trình ▪ Tính vào (input) ▪ Tính (output) ▪ Tính đơn định (xác định / đơn nghĩa) ▪ Tính đắn ▪ Tính dừng (tính kết thúc / tính đóng) ▪ Tính phổ dụng ▪ Tính khả thi/hiệu 7/2020 Cơ sở lập trình 8/4/2020 u cầu: Xây dựng thuật tốn để giải phương trình: ax + b=0 Trong a,b số thực nhập vào từ bàn phím  Phân tích: Input: a, b Output: kết luận x Có khả xảy ra: - Có nghiệm nhất: x = -b/a a≠0 - Phương trình vơ nghiệm a=0 b≠0 7/2020 sở lập trình - Phương Cơtrình có vơ số nghiệm a=0 b=0   Thuật toán: + Bước 1: Nhập a, b + Bước 2: Kiểm tra a≠0? Nếu chuyển sang bước Nếu sai chuyển sang bước + Bước 3: Tính nghiệm x = -b/a + Bước 4: In x chuyển bước + Bước 5: Kiểm tra b≠0? Nếu chuyển sang bước Nếu sai chuyển sang bước + Bước 6: In “PTVN”, chuyển bước sang + Bước 7: In “PTCVSN” 7/2020 + Bước 8: Kết Cơ sởthúc lập trình 10 8/4/2020 1.2.1 Khái niệm 1.2.2 Các cấu trúc điều khiển 1.2.3 Ví dụ 7/2020 Cơ sở lập trình 11 Khái niệm 1: Sơ đồ khối tập hợp ký hiệu quy tắc dùng để biểu diễn thuật toán Khái niệm 2: Sơ đồ khối cách thể thuật tốn hình khối hình học nối với đường có hướng Các thành phần: thoi: thể thao tác so sánh −Hình chữ nhật: thể phép tính tốn −Hình bình hành: thể thao tác nhập xuất liệu −Hình oval: thể bắt đầu/kết thúc thuật toán −Các mũi tên: thể trình tự thực thao tác 12 7/2020 Cơ sở lập trình −Hình 8/4/2020  Các khối BĐ X=-b/a a=0 Khối tính tốn Khối bắt đầu Khối kiểm tra điều kiện Vào/ra a KT Hướng thực Khối Vào/Ra Khối kết thúc 7/2020 Cơ sở lập trình 13  Sơ đồ khối dạng tuần tự: Là sơ đồ khối thể thuật toán gồm n khối mà thực thuật toán với liệu cụ thể thực từ khối đến khối cuối theo thứ tự viết  Sơ đồ khối dạng rẽ nhánh: Là sơ đồ khối thể thuật toán gồm n nhánh mà thực thuật toán với liệu cụ thể thực n nhánh mà  Sơ đồ khối dạng chu trình: Là sơ đồ khối thể thuật tốn gồm n khối mà thực thuật toán với liệu cụ thể có số khối lặp lặp lại nhiều lần phụ thuộc vào điều kiện thỏa mãn 7/2020 Cơ sở lập trình 14 8/4/2020 a) Cấu trúc tuần tự: CV1 CV2 7/2020 Cơ sở lập trình 15 Có dạng Dạng thứ nhất: Dạng thứ hai: S S Đ Đ ĐK ĐK CV1 CV1 CV2 CV2 CV3 7/2020 Cơ sở lập trình 16 8/4/2020 Dạng thứ ba: ĐK1 S Dạng thứ tư: S ĐK1 CV1 Đ Đ ĐK2 S ĐK2 S CV2 CV1 CV2 Đ Đ S ĐKn ĐKn S CVn Đ CVn CVn+1 Đ CVn+1 CVn+2 7/2020 Cơ sở lập trình 17 Có dạng Dạng thứ nhất: Dạng thứ hai: BĐK=n1 BĐK=n1 ĐK lặp CV lặp S Đ CV lặp BĐK=BĐK +n2 ĐK lặp 7/2020 S Đ Cơ sở lập trình BĐK=BĐK +n2 18 8/4/2020 Xây dựng sơ đồ khối mơ tả thuật tốn giải phương trình: ax + b=0 Trong a,b số thực nhập vào từ bàn phím 19 7/202 Cơ sở lập trình BĐ Nhập a, b a≠0 S Đ x= -b/a In x b≠0 S Đ In “PTVN” In “PTCVSN” KT 10 8/4/2020  Đặc điểm ▪ Các giá trị liệt kê thực chất tương ứng dãy số tự nhiên ▪ Ví dụ: xuan, ha, thu, dong tương ứng với 0, 1, 2, printf(“%d”,thu); → in giá trị ▪ Lưu ý: Không thể đọc trực tiếp ghi giá trị kiểu liệt kê, giá trị tương ứng với số tự nhiên ❖07/2020 ❖Cơ sở lập trình ❖187 Khái niệm: kiểu typedef kiểu liệu người dùng định nghĩa với từ khóa typedef  Ý nghĩa ▪ Cho phép đặt lại tên cho kiểu liệu tồn Ví dụ: typedef int so_nguyen;  ▪ Làm cho chương trình dễ đọc, ngắn gọn dễ dàng chuyển mã code sang máy khác Ví dụ: int ds1[20],ds2[20],ds3[20],ds4[20]; typedef int ds[20]; // thay ds ds1,ds2,ds3,ds4; kiểu struct → khai báo biến khơng cần từ khóa struct ❖07/2020 ❖Cơ sở lập trình ❖188 94 8/4/2020 5.5.1 Khái niệm phân loại tệp 5.5.2 Các bước xử lý tệp 5.5.3 Một số hàm dùng chung cho kiểu tệp (tự học) 5.5.4 Tệp nhị phân 5.5.5 Tệp văn ❖07/2020 ❖Cơ sở lập trình ❖189 Khái niệm: Tệp tập hợp liệu có liên quan với có kiểu nhóm lại với tạo thành dãy Chúng thường lưu thiết bị nhớ với tên cụ thể  Đặc điểm ▪ So sánh với struct mảng (kiểu liệu phần tử, số phần tử, lưu trữ, truy nhập) ▪ Biến đệm (cửa sổ tệp), nhớ đệm, EOF, feof (hàm)  Phân loại ▪ Theo cách truy cập: tệp truy cập tệp truy cập trực tiếp (C định nghĩa tệp tuần tự) ▪ Theo chất liệu: tệp văn tệp nhị phân  ❖07/2020 ❖Cơ sở lập trình ❖190 95 8/4/2020     Khai báo biến tệp Mở tệp (để đọc ghi liệu) Xử lý liệu (đọc ghi liệu) Đóng tệp ❖07/2020  ❖Cơ sở lập trình ❖191 Khai báo biến tệp ▪ Cú pháp: FILE *name; Trong đó: ▪ FILE: từ khóa ▪ name: tên trỏ tệp (biến tệp) ▪ Ví dụ FILE *f; ❖07/2020 ❖Cơ sở lập trình ❖192 96 8/4/2020   Mở tệp Cú pháp: name = fopen(filename, mode); Trong đó: ▪ filename: xâu ký tự thể tên tệp với đường dẫn nhớ ngồi ▪ mode: xâu ký tự thể chế độ xử lý tệp, quy định cách xử lý tệp mở  Ví dụ f=fopen(“D:\\TC\\bt1.txt”,”w”); f=fopen(“D:\\TC\\bt2.txt”,”r”); ❖07/2020 ❖Cơ sở lập trình ❖193 Ý nghĩa Mode ‘”r” Mở tệp văn tồn để đọc “w” Mở tệp văn để ghi Nếu tệp tồn bị xóa thay vào tệp “a” Mở tệp văn có ghi thêm liệu tiếp nối vào cuối tệp Nếu tệp chưa tồn tệp tạo “r+” Mở tệp văn có cho phép đọc ghi “w+” Mở tệp văn cho phép đọc ghi Nếu tệp tồn bị xóa thay tệp “a+” Mở tệp văn có tạo tệp để đọc ghi thêm liệu tiếp nối vào tệp ❖Cơ sở lập trình ❖194 97 8/4/2020 Ý nghĩa Mode “rb” Mở tệp nhị phân tồn để đọc “wb” Mở tệp nhị phân để ghi Nếu tệp tồn bị xóa thay vào tệp “ab” Mở tệp nhị phân có ghi thêm liệu tiếp nối vào cuối tệp Nếu tệp chưa tồn tệp tạo “r+b” Mở tệp nhị phân có cho phép đọc ghi “w+b” Mở tệp nhị phân cho phép đọc ghi Nếu tệp tồn bị xóa thay tệp “a+b” Mở tệp nhị phân có tạo tệp để đọc ghi thêm liệu tiếp nối vào tệp ❖Cơ sở lập trình ❖195 ▪ Hàm đọc/ghi số nguyên ▪ Hàm đọc/ghi ký tự ▪ Hàm đọc/ghi khối liệu (số thực/struct) ❖07/2020 ❖Cơ sở lập trình ❖196 98 8/4/2020  Hàm putw ▪ Dạng hàm: int putw(int n, FILE *f) Trong đó: ▪ n giá trị nguyên ▪ f trỏ tệp ▪ Công dụng: ghi giá trị nguyên n vào tệp f dạng bytes Nếu thành cơng hàm trả lại giá trị số nguyên ghi vào tệp, ngược lại hàm trả lại giá trị EOF ❖07/2020  ❖Cơ sở lập trình ❖197 Hàm getw ▪ Dạng hàm: int getw( FILE *f) Trong đó: ▪ f trỏ tệp ▪ Công dụng: đọc số nguyên bytes từ tệp f Nếu thành công hàm trả lại giá trị số nguyên đọc từ tệp Nếu gặp lỗi gặp kết thúc tệp hàm trả lại giá trị EOF ❖07/2020 ❖Cơ sở lập trình ❖198 99 8/4/2020  Ví dụ: viết chương trình thực việc ghi dãy số nguyên vào tệp sau đọc số nguyên từ tệp in hình ❖07/2020 ❖Cơ sở lập trình #include #include void main() { FILE *f; int i; /*ghi số nguyên vào tệp*/ f= fopen(“BT.txt”,”wb”); for (i=1;i

Ngày đăng: 08/07/2022, 10:48

Hình ảnh liên quan

▪ Mô hình được xây dựng không mô tả được đầy đủ - Bài giảng Cơ sở lập trình - Trường ĐH Thương mại

h.

ình được xây dựng không mô tả được đầy đủ Xem tại trang 16 của tài liệu.
Lưu ý: bảng trên biểu diễn miền giá trị có giá trị dương lớn nhất và giá trị âm nhỏ nhất bằng giá trị dương lấy đối - Bài giảng Cơ sở lập trình - Trường ĐH Thương mại

u.

ý: bảng trên biểu diễn miền giá trị có giá trị dương lớn nhất và giá trị âm nhỏ nhất bằng giá trị dương lấy đối Xem tại trang 25 của tài liệu.
Giải pháp: sử dụng con trỏ làm tham số hình thức void swap_func ( int  *x, int  *y) //  Ham hoan vi ban 2 - Bài giảng Cơ sở lập trình - Trường ĐH Thương mại

i.

ải pháp: sử dụng con trỏ làm tham số hình thức void swap_func ( int *x, int *y) // Ham hoan vi ban 2 Xem tại trang 83 của tài liệu.

Tài liệu cùng người dùng

Tài liệu liên quan