Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 99 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
99
Dung lượng
841,51 KB
Nội dung
TẬP ĐOÀN DỆT MAY VIỆT NAM TRƢỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT VINATEX TP.HCM - - GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH Nghề: Cơng nghệ thơng tin Trình độ: Cao Đẳng (Ban hành theo Quyết định số: ngày tháng năm trường Cao đẳng Kinh tế - Kỹ thuật Vinatex Tp.HCM) Tp Hồ Chí Minh, năm 2019 TUYÊN BỐ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI NĨI ĐẦU Ngơn ngữ lập trình loại cơng cụ giúp người thể vấn đề thực tế lên máy tính cách hữu hiệu Với phát triển tin học, ngơn ngữ lập trình dần cải tiến để đáp ứng thách thức thực tế Khoảng cuối năm 1960 đầu 1970 xuất nhu cầu cần có ngơn ngữ bậc cao để hỗ trợ cho nhà tin học việc xây dựng phần mềm hệ thống, hệ điều hành Ngôn ngữ C đời từ đó, phát triển phịng thí nghiệm Bell Đến năm 1978, giáo trình " Ngơn ngữ lập trình C " tác giả ngôn ngữ Dennish Ritchie B.W Kernighan viết, xuất phổ biến rộng rãi C ngơn ngữ lập trình vạn Ngoài việc C dùng để viết hệ điều hành UNIX, người ta nhanh chóng nhận sức mạnh C việc xử lý cho vấn đề đại tin học C không gắn với hệ điều hành hay máy nào, gọi " ngơn ngữ lập trình hệ thống" dùng cho việc viết hệ điều hành, tiện lợi cho việc viết chương trình xử lý số, xử lý văn sở liệu Tồn giáo trình gồm sáu chương chứa đựng tương đối đầy đủ vấn đề ngơn ngữ lập trình C, loại ví dụ tập chọn lọc số vấn đề liên quan, giúp người học có khả sử dụng thành thạo ngôn ngữ việc giải số lớp tốn thơng dụng thực tế Giáo trình biên soạn cho đối tượng học sinh THCN, kỹ thuật viên tin học, nhiên tài liệu tham khảo bổ ích cho bậc đại học người quan tâm cố gắng nhiều trình biên soạn giáo trình này, chắn khơng tránh khỏi có thiếu sót Rất mong nhận ý kiến đóng góp độc giả đồng nghiệp để giáo trình ngày hồn thiện Và tìm hiểu giới ngôn ngữ C từ khái niệm ban đầu MỤC LỤC TRANG LỜI NÓI ĐẦU BÀI TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH C 1.Giới thiệu lịch sử phát triển ngơn ngữ lập trình C Cách khởi động chương trình Hệ thống thông tin giúp đỡ BÀI CÁC THÀNH PHẦN CƠ BẢN Hệ thống ký hiệu từ khóa Các kiểu liệu: kiểu số, chuỗi, ký tự 11 Biến, hằng, biểu thức 12 Lệnh khối lệnh 16 Lệnh gán, lệnh xuất nhập, lệnh gán kết hợp 18 Các phép toán 24 Cách chạy chương trình 26 BÀI 27 CÁC LỆNH CÓ CẤU TRÚC 27 Lệnh rẽ nhánh có điều kiện if 27 Lệnh rẽ nhánh có điều kiện switch case 28 Cấu trúc switch case default 30 Cấu trúc vòng lặp For 32 Cấu trúc vòng lặp while 34 Cấu trúc vòng lặp while 36 BÀI Error! Bookmark not defined HÀM 43 Khái niệm hàm 43 Quy tắc xây dựng hàm 45 Sử dụng hàm 46 Nguyên tắc hoạt động hàm 47 Cách truyền tham số 48 Câu lệnh return exit 55 BÀI 60 KIỂU MẢNG 60 Khai báo mảng 60 Mảng tham số hàm 65 Sắp xếp mảng 69 Gán giá trị cho mảng 75 CHUỖI 81 Giới thiệu 81 Khái niệm 81 Khai báo biến chuỗi 81 Nhập chuỗi ký tự 83 Các phép toán chuỗi ký tự 83 Các thao tác chuỗi ký tự 87 BÀI 93 BIẾN CON TRỎ 93 Biến trỏ 93 TÀI LIỆU THAM KHẢO 99 MÔ ĐUN: KỸ THUẬT LẬP TRÌNH Mã mơ đun: MĐ10 Vị trí, ý nghĩa, vai trị mơ đun: - Vị trí: + Mơ đun bố trí sau học sinh học xong môn học chung, trước môn học/ mơ đun đào tạo chun mơn nghề - Tính chất: + Là mô đun sở - Ý nghĩa vai trị mơ đun: + Là mơ đun khơng thể thiếu nghề Công nghệ thông tin + Là mơ đun tư logic lập trình Mục tiêu mô đun: - Hiểu công dụng ngôn ngữ lập trình, hiểu cú pháp, cơng dụng câu lệnh dùng ngơn ngữ lập trình - Phân tích chương trình: xác định nhiệm vụ chương trình (phải làm gì) - Vận dụng điều kiện, trợ giúp mơi trường ngơn ngữ lập trình, chẳng hạn: thao tác biên tập chương trình, cơng cụ, điều khiển, thực đơn lệnh trợ giúp, gỡ rối, bẫy lỗi, v v - Viết chương trình thực chương trình máy tính - Tự tin tiếp cận mã (code) chương trình - Loại bỏ tâm lý lo sợ gặp cơng việc lập trình hóa Nội dung mơ đun: BÀI TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH C Giới thiệu: Bài nhằm cung cấp cho người học kiến thức lịch sử phát triển ngôn ngữ, ứng dụng thực tế ngơn ngữ, cách khởi động khỏi chương trình Mục tiêu - Biết ngơn ngữ có ứng dụng thực tế nào; - Biết sử dụng hệ thống trợ giúp ngơn ngữ lập trình; 1.Giới thiệu lịch sử phát triển ngơn ngữ lập trình C Mục tiêu: - Biết lịch sử phát triển ngơn ngữ lập trình; Vào đầu năm 70 phịng thí nghiệm Bell, Dennis Ritchie phát triển ngôn ngữ C C sử dụng lần đầu hệ thống cài đặt hệ điều hành UNIX C có nguồn gốc từ ngơn ngữ BCPL Martin Richards phát triển BCPL sau Ken Thompson phát triển thành ngôn ngữ B, người khởi thủy C Trong BCPL B khơng hỗ trợ kiểu liệu, C có nhiều kiểu liệu khác Những kiểu liệu gồm : kiểu ký tự (character), kiểu số nguyên (interger) kiểu số thực (float) C liên kết chặt chẽ với hệ thống UNIX không bị trói buộc vào máy tính hay hệ điều hành C hiệu để viết chương trình thuộc nhiều lĩnh vực khác C dùng để lập trình hệ thống Một chương trình hệ thống có ý nghĩa liên quan đến hệ điều hành máy tính hay tiện ích hỗ trợ Hệ điều hành (OS), trình thơng dịch (Interpreters), trình soạn thảo (Editors), chương trình Hợp Ngữ (Assembly) chương trình hệ thống Hệ điều hành UNIX phát triển dựa vào C C sử dụng rộng rãi tính hiệu linh hoạt Trình biên dịch (compiler) C có sẵn cho hầu hết máy tính Mã lệnh viết C máy biên dịch chạy máy khác cần thay đổi khơng thay đổi Trình biên dịch C dịch nhanh cho mã đối tượng không lỗi C thực thi nhanh hợp ngữ (Assembly) Lập trình viên tạo bảo trì thư viện hàm mà chúng tái sử dụng cho chương trình khác Do đó, dự án lớn quản lý dễ dàng mà tốn cơng sức Cách khởi động chƣơng trình Mục tiêu: - Biết cách khởi động thoát khỏi chương trình C; 2.1 Khởi Động Chƣơng Trình C Nhập lệnh dấu nhắc DOS: gõ BC ↵ (Enter) (nếu đường dẫn cài đặt lệnh path có chứa đường dẫn đến thư mục chứa tập tin BC.EXE) Nếu đường dẫn chưa cài đặt ta tìm xem thư mục BORLANDC nằm ổ đĩa Sau ta gõ lệnh sau: :\BORLANDC\BIN\BC ↵ (Enter) Nếu bạn muốn vừa khởi động BC vừa soạn thảo chương trình với tập tin có tên đặt, gõ lệnh: BC [đường dẫn], tên file cần soạn thảo có nạp lên, chưa có tạo Khởi động Windows: Bạn vào menu Start, chọn Run, bạn gõ vào hộp Open dòng lệnh nhập DOS Hoặc bạn vào Window Explorer, chọn ổ đĩa chứa thư mục BORLANDC, vào thư mục BORLANDC, vào thư mục BIN, khởi động tập tin BC.EXE Ví dụ: Bạn gõ D:\BORLANDC\BIN\BC E:\BAITAP_BC\VIDU1.CPP Câu lệnh có nghĩa khởi động BC nạp tập tin VIDU1.CPP chứa thư mục BAITAP_BC ổ đĩa E Nếu tập tin khơng có tạo 2.2 Thốt khỏi chƣơng trình C Ấn phím F10 (kích hoạt Menu), chọn menu File, chọn Quit; Hoặc ấn tổ hợp phím Alt – X 3.Hệ thống thông tin giúp đỡ Mục tiêu: - Trình bày hệ thống trợ giúp C - Ấn phím F1 để kích hoạt hình Help - Muốn xem Help hàm soạn thảo, di chuyển trỏ đến vị trí hàm ấn tổ hợp phím Ctrl - F1 - Ấn tổ hợp phím Shift - F1 để xem danh sách mục Help - Ấn tổ hợp phím Alt - F1 để quay hình Help trước BÀI CÁC THÀNH PHẦN CƠ BẢN Giới thiệu Cũng ngơn ngữ lập trình khác, ngơn ngữ lập trình c có hệ thống ký hiệu từ khóa, kiểu liệu Bài học cho người học kiến thức loại hằng, biến, lệnh, khối lệnh thực việc chạy chương trình Mục tiêu: - Hiểu vận dụng lệnh cấu trúc: cấu trúc lựa chọn, cấu trúc lặp xác định lặp vô định - Hiểu vận dụng lệnh bẻ vịng lặp - Rèn luyện thói quen suy luận logic Hệ thống ký hiệu từ khóa Mục tiêu: - Trình bày tập kí tự dùng ngơn ngữ C - Trình bày quy tắc cần nhớ viết chương trình - Tập ký tự dùng ngôn ngữ C Mọi ngôn ngữ lập trình xây dựng từ ký tự Các ký tự nhóm lại theo nhiều cách khác để tạo nên từ Các từ lại liên kết với theo qui tắc để tạo nên câu lệnh Một chương trình bao gồm nhiều câu lệnh thể thuật toán để giải toán Ngơn ngữ C xây dựng ký tự sau : 26 chữ hoa : A B C Z 26 chữ thường : a b c z 10 chữ số : Các ký hiệu toán học : + - * / = ( ) Ký tự gạch nối : _ Các ký tự khác : , : ; [ ] {} ! \ & % # $ Dấu cách (space) dùng để tách từ Ví dụ chữ VIET NAM có ký tự, cịn VIETNAM có ký tự Chú ý : Khi viết chương trình, ta khơng sử dụng ký tự khác ký tự Ví dụ lập chương trình giải phương trình bậc hai ax +bx+c=0 , ta cần tính biệt thức Delta = b2 - 4ac, ngôn ngữ C không cho phép dùng ký tự , ta phải dùng ký hiệu khác để thay - Từ khóa Từ khố từ sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh Bảng liệt kê từ khoá TURBO C : asm break case cdecl char const continue default double else enum extern far float for goto huge if int interrupt long near pascal register return short signed sizeof static struct switch tipedef union unsigned void 10 volatile while Ý nghĩa cách sử dụng từ khoá đề cập sau này, ta cần ý : - Khơng dùng từ khố để đặt tên cho hằng, biến, mảng, hàm - Từ khố phải viết chữ thường, ví dụ : viết từ khoá khai báo kiểu nguyên int INT - Tên Tên khái niệm quan trọng, dùng để xác định đại lượng khác chương trình Chúng ta có tên hằng, tên biến, tên mảng, tên hàm, tên trỏ, tên tệp, tên cấu trúc, tên nhãn, Tên đặt theo qui tắc sau : Tên dãy ký tự bao gồm chữ cái, số gạch nối Ký tự tên phải chữ gạch nối Tên không trùng với khoá Độ dài cực đại tên theo mặc định 32 đặt lại giá trị từ tới 32 nhờ chức : Option-Compiler-Source-Identifier length dùng TURBO C Ví dụ : Các tên : a_1 delta x1 _step GAMA Các tên sai : 3MN Ký tự số m#2 Sử dụng ký tự # f(x) Sử dụng dấu ( ) Trùng với từ khoá te ta Sử dụng dấu trắng Y-3 Sử dụng dấu Chú ý : Trong TURBO C, tên chữ thường chữ hoa khác ví dụ tên AB khác với ab C, ta thường dùng chữ hoa để đặt tên cho dùng chữ thường để đặt tên cho hầu hết cho đại lượng khác biến, biến mảng, hàm, cấu trúc Tuy nhiên điều bắt buộc - Một số quy tắc cần nhớ viết chƣơng trình Qui tắc cần nhớ : Mỗi câu lệnh viết hay nhiều dòng phải kết thúc dấu; Qui tắc thứ hai : Ví dụ: Sử dụng hàm strlen xác định độ dài chuỗi nhập từ bàn phím #include #include #include int main(){ char Chuoi[255]; int Dodai; printf("Nhap chuoi: ");gets(Chuoi); Dodai = strlen(Chuoi) printf("Chuoi vua nhap: ");puts(Chuoi); printf(“Co dai %d”,Dodai); getch(); return 0; } - Đổi ký tự thường thành ký tự hoa - Hàm toupper() Hàm toupper() (trong ctype.h) dùng để chuyển đổi ký tự thường thành ký tự hoa Cú pháp:char toupper(char c) - Đổi chuỗi chữ thường thành chuỗi chữ hoa, hàm strupr() Hàm struppr() dùng để chuyển đổi chuỗi chữ thường thành chuỗi chữ hoa, kết trả hàm trỏ đến địa chuỗi chuyển đổi Cú pháp:char*strupr(char *s) Ví dụ: Viết chương trình nhập vào chuỗi ký tự từ bàn phím Sau sử dụng hàm strupr() để chuyển đổi chúng thành chuỗi chữ hoa #include #include #include int main() { char Chuoi[255],*s; printf("Nhap chuoi: ");gets(Chuoi); s=strupr(Chuoi) ; printf(“Chuoi chu hoa: ”);puts(s); getch(); return 0; } - Đổi chuỗi chữ hoa thành chuỗi chữ thường, hàm strlwr() Muốn chuyển đổi chuỗi chữ hoa thành chuỗi toàn chữ thường, ta sử dụng hàm strlwr(), tham số hàm tương tự hàm strupr() Cú pháp:char *strlwr(char *s) Sao chép chuỗi, hàm strcpy() Hàm dùng để chép toàn nội dung chuỗi nguồn vào chuỗi đích Cú pháp:char*strcpy(char *Des, const char *Source) Ví dụ: Viết chương trình cho phép chép tồn chuỗi nguồn vào chuỗi đích #include #include #include int main() { char Chuoi[255],s[255]; printf("Nhap chuoi: ");gets(Chuoi); strcpy(s,Chuoi); printf(“Chuoi dich: ”);puts(s); getch(); return 0; } - Sao chép phần chuỗi, hàm strncpy() Hàm cho phép chép n ký tự chuỗi nguồn sang chuỗi đích Cú pháp:char *strncpy(char *Des, const char *Source, size_t n) - Trích phần chuỗi, hàm strchr() Để trích chuỗi chuỗi ký tự ký tự định chuỗi hết chuỗi, ta sử dụng hàm strchr() Cú pháp :char *strchr(const char *str, int c) Ghi chú: - Nếu ký tự định khơng có chuỗi, kết trả NULL - Kết trả hàm trỏ, trỏ đến ký tự c tìm thấy chuỗi str - Tìm kiếm nội dung chuỗi, hàm strstr() Hàm strstr() sử dụng để tìm kiếm xuất chuỗi s2 chuỗi s1 Cú pháp: char*strstr(const char *s1, const char *s2) Kết trả hàm trỏ đến phần tử chuỗi s1 có chứa chuỗi s2 giá trị NULL chuỗi s2 khơng có chuỗi s1 Ví dụ: Viết chương trình sử dụng hàm strstr() để lấy phần chuỗi gốc chuỗi “hoc” #include #include #include int main() { char Chuoi[255],*s; printf("Nhap chuoi: ");gets(Chuoi); s=strstr(Chuoi,”hoc”); printf(“Chuoi trich ra: ”);puts(s); getch(); return 0; Hình } - So sánh chuỗi, hàm strcmp() Để so sánh hai chuỗi theo ký tự bảng mã Ascii, ta sử dụng hàm strcmp() Cú pháp:int strcmp(const char *s1, const char *s2) Hai chuỗi s1 s2 so sánh với nhau, kết trả số nguyên (số có cách lấy ký tự s1 trừ ký tự s2 vị trí xảy khác nhau) - Nếu kết số âm, chuỗi s1 nhỏ chuỗi s2 - Nếu kết 0, hai chuỗi - Nếu kết số dương, chuỗi s1 lớn chuỗi s2 So sánh chuỗi, hàm stricmp() Hàm thực việc so sánh n ký tự chuỗi s1 s2, chữ thường chữ hoa không phân biệt Cú pháp:int stricmp(const char *s1, const char *s2) Kết trả tương tự kết trả hàm strcmp() Khởi tạo chuỗi, hàm memset() Hàm sử dụng để đặt n ký tự chuỗi ký tự c Cú pháp:memset(char *Des, int c, size_t n) - Đổi từ chuỗi số, hàm atoi(), atof(), atol() (trong stdlib.h) Để chuyển đổi chuỗi số, ta sử dụng hàm Cú pháp :int atoi(const char *s) : chuyển chuỗi thành số nguyên long atol(const char *s) : chuyển chuỗi thành số nguyên dài float atof(const char *s) : chuyển chuỗi thành số thực Nếu chuyển đổi không thành công, kết trả hàm Ngồi ra, thư viện string.h cịn hỗ trợ hàm xử lý chuỗi khác, ta đọc thêm phần trợ giúp Các thao tác chuỗi ký tự Mục tiêu: - Trình bày thao tác chuỗi ký tự; • strlen – strlen(s) : trả chiều dài chuỗi s (không tính ký tự null) • strcpy strncpy – strcpy(s1,s2): copy chuỗi s2 vào chuỗi s1 (strcpy1.cpp) – strncpy(s1,s2,n): copy n ký tự chuỗi s2 vào chuỗi s1 s1 phải có đội lớn đủ để chứa n ký tự • n>strlen(s2): giống strcpy • n0) strcat(doc_so,doc[donvi]); return doc_so; } int main() { int n; printf("Nhap vao mot day so: "); scanf("%d",&n); if(n==0) { printf("Khong"); } else { int tram=n%1000; n=n/1000; int ngan=n%1000; n=n/1000; int trieu=n%1000; int ty=n/1000; if(ty>0) { printf("%s Ty",docso(ty)); } if(trieu>0) { printf(" %s Trieu ",docso(trieu)); } if(ngan>0) { printf(" %s Ngan ",docso(ngan)); } if(tram>0) { printf(" %s ",docso(tram)); } } getch(); } Nhập vào chuỗi sau nhập vào từ kiểm tra xem từ có xuất chuỗi hay khơng, có xuất lần #include #include #include int main() { char xau[50]; char kitukiemtra; int dem; printf("Nhap vao mot chuoi: "); gets(xau); printf("Nhap vao ki tu muon kiem tra: "); scanf("%c",&kitukiemtra); for(int i=0;i