TÀI LIỆU LẬP TRÌNH C+

175 149 0
TÀI LIỆU LẬP TRÌNH C+

Đ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

Chương Mở đầu 1.1 Phần cứng, phần mềm, sụn Một hệ thống bao gồm phần cứng, phần mềm phần sụn, tất ghép nối Phần cứng phần hệ thống mà ta tiếp xúc đến, thí dụ linh kiện, ốc vít đai ốc, vỏ máy, dây dẫn điện vv… Phần mềm chương trình chạy phần cứng lập trình thay đổi hoạt động chúng phụ thuộc vào đầu vào hệ thống Các đầu vào lựa chọn từ bàn phím phần cứng ghép nối từ thiết bị ngoại vi Chương trình tồn mà vài dạng phần cứng lập trình vi xử lý điều khiển Phần sụn thiết bị phần cứng lập trình cách sử dụng phần mềm Thiết bị xem phần sụn tiêu biểu EEPROM (bộ nhớ đọc lập trình xóa điện) thiết bị ghép nối, lập trình cách sử dụng ghi Trong hầu hết ứng dụng, phần cứng hoạt động chuyên dụng hoạt động nhanh phần cứng hoạt động kết hợp với phần mềm, hệ thống chạy phần mềm chương trình có khẳ dễ dàng sử đổi đòi hỏi thới gian nghiên cứu phát triển 1.2 Lịch sử ngôn ngữ C Dennis Ritchie phát triển ngông ngữ C lần phòng thí nghiệm Bell công ty AT & T (Hoa kỳ) Mục tiêu ông ta đặt sử dụng ngôn ngữ bậc cao để xây dựng hệ điều hành UNIX theo phương châm dễ dàng việc bảo trì, hiệu dễ di chuyển (portable) Để đạt mục đích ông thiết kế ngôn ngữ có nhiều ảnh hưởng, quan ngôn ngữ BCPL Ảnh hưởng ngôn ngữ lên C tiếp tục cách gián tiếp thông qua ngôn ngữ B Thoạt đầu ngôn ngữ C ứng dụng chủ yếu lập trình hệ thống Các chương trình dịch, hệ điều hành tiện ích viết ngôn ngữ C Ngôn ngữ tỏ ưu việt lĩnh vực ngày ứng dụng nhiều lĩnh vực hệ thống máy tính khác Sau chấp nhận, không giống ngôn ngữ khác, ngôn ngữ C có xu hướng hình thành nhóm tách biệt Tới năm 1983, ngôn ngữ phát triển đến giai đoạn cần có biện pháp để tiêu chuẩn hóa Để đạt mục đích ủy ban X3J11 ANSI (Viện tiêu chuẩn quốc gia hoa kỳ) thành lập để chuẩn hóa ngôn ngữ xây dựng lên tiêu chuẩn ANSC-C Hầu hết sản phẩm C tuân theo tiêu chuẩn mà không theo quy định lúc ban đầu 1.3 Sơ lược cấu trúc máy tính Các phần máy tính đơn vị xử lý trung tâm (hoặc thường gọi vi xử lý), nhớ mạch vào Các phần tử nối với qua đường bus chính: bus địa chỉ, bus điều khiển bus liệu Hình 1.1 mô tả hệ thống Các thiết bị ngoại vi bàn phím, hình, ổ đĩa, nối trực tiếp với bus: liệu, địa điều khiển, ghép với mạch vào Bus liệu Mạch giao Bus điều CPU Micro-proc essor Bộ nhớ ( RAM ROM) Hìn h 1-1 : Bus địa Sơ đồ khối hệ thống máy tính đơn giản Thông thường nhớ bao gồm: nhớ truy cập ngẫu nhiên (RAM: Ramdom Acesses Memory) nhớ đọc ROM (ROM: Read only Memory) Bố nhớ ROM cất thông tin để sử dụng lâu dài, nhớ truy cập ngẫu nhiên nhớ liệu để sử dụng lâu dài liệu ngắt nguồn nuôn Bộ RAM sử dụng để chạy chương trình ứng dụng cất giữ thông ti tạm thời Bộ vi xử lý điều khiển máy tính Nó đem từ nhớ lệnh nhị phân, giải mã lệnh thành dãy tác động đơn giản thực tác động theo bước Các bước đồng hóa nhờ đồng hồ hệ thống Để truy cập lên vị trí nhớ, hay thường gọi ô nhớ, vi xử lý đặt địa ô nhớ lên bus địa Nội dụng địa đặt lên bus liệu vi xử lý đọc liệu từ bus liệu Để cất liệu vào nhớ, vi xử lý đặt liệu lên bus liệu Sau đó, địa ô nhớ nhớ đặt lên bus địa liệu lại đọc từ bus liệu địa nhớ cần có 1.4 Biên dịch, liên kết, viết chương trình chấp hành Bộ vi xử lý hiểu thông tin dạng nhị phân thao tác dãy lệnh nhị phân hay thường gọi mã máy Khi viết chương trình lớn trực tiếp dạng mã máy gặp nhiều khó khăn, nên ngôn ngữ bậc cao phát triển để dẽ sử dụng thay mã máy Một ngôn ngữ bậc thấp giống với mã máy thường kéo theo việc sử dụng macro từ khóa để thay cho thị mã máy Ngôn ngữ bậc cao có cú pháp gần viết tiếng Anh làm cho chương trình trở lên đẽ đọc dễ sửa đổi Trong đó, chương trình hoạt động thực của phần cứng nào, người viết chương trình nhìn thấy Khi chương trình dịch chuyển chương trình ngôn ngữ bậc cao mã máy Các ngôn ngưc bậc cao kết là: C, Basic, COBOL, FORTRAN PASCAL Một ví dụ ngôn ngữ bậc thấp hợp ngữ (Assembly) dung cho 80386 Hình 1-2 giới thiệu công đoạn để tạo ngôn ngữ mã máy từ chương trình mã nguồn ngôn ngữ C Các thư viện mã đối tượng khác Tệp mã Bộ soạn thảo (tạo sửa đổi mã Tệp mã đối Trình biên dịch (Biến đổi mã nguồn thành mã Bộ liên kết (Thêm vào thông tin bổ Tệp chấp Hình 1-2: Các trình soạn thảo, biên dịch liên kết Bộ soạn thảo dùng để viết sửa đổi tệp mã nguồn C; Sau chương trình dịch chuyển đổi mã nguồn sang dạng mã mà vi xử lý hiểu được, cụ thể mã máy Tệp tin chương trình dịch tạo đặt tên tệp mã đối tượng Tệp tin thực đầy đủ thông tin cần có để chạy chương trình Giai đoạn cuối trình liên kết; qua trình đòi hỏi phải đưa thêm mã máy vào chương trình để sử dụng thiết bị bàn phím, hình,… Một liên kết kết nối tệp mã đối tượng với tệp mã đối tượng khác với thư viện để tạo chương trình chấp hành (thực thi được) Các thư viện chứa module mã đối tượng khác biên dịch sang mã nguồn Nếu trình dịch liên kết phát sinh lỗi cảnh báo mã nguồn phải sửa đổi để loại trừ lỗi Quá trình biên dịch/liên kiết phải tiến hành lần Các thông báo trình dịch liên kết không làm dừng chương trình kết nối để tránh tạo đầu ra, lỗi làm ngừng Vì vậy, tất lỗi trình biên dịch liên kết phải loại bỏ, lời cảnh báo yêu cầu đặt lên loại bỏ Turbo C phiên 2.0 gói phần mềm phát triển tích hợp để thích hợp với hệ thống nhúng sở máy tính cá nhận Nó bao gồm: soạn thảo, chương trình dịch, liên kết trình gỡ rối (được sử dụng để chạy thử chương trình) Bộ khởi động dùng để viết sửa đổi tệp mã nguồn khởi động cách thay cho tệp chấp hành TC.EXE 1.5 Ứng dụng ngôn ngữ C lĩnh vực điện tử - viễn thông Ngôn ngữ C có đặc tính ưu việt ngôn ngữ lập trình khác gần với mã máy, tất ứng dụng viết C chạy nhanh viết cac ngôn ngữ lập trình bậc cao khác sử dụng rộng rãi Trong lĩnh vực điện tử viễn thông C sử dụng để lập trình điều khiển ghép nối với máy tính, lập trình cho vi điều khiển, lập trình hệ thống nhúng, lập trình hệ thống, lập trình mạng,… Chương CÁC KHÁI NIỆM CƠ BẢN 2.1 Tập ký tự dung 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 với nhiều cách để lập lên từ Các từ lại liên kết với theo quy tắc để tạo lên câu lệnh Một chương trình bao gồm nhiều câu lệnh diễn đạt thuật toán để giải toán Ngôn ngữ C xây dựng dựa ký tự sau: 26 chữ hoa: A B C… Z 26 chữ thường: a b c … z 10 chữ số: … Các kí tự toán học như: + - * / = ( ) Ký tự gạch nối: _ Các ký hiệu đặc biệt khác như: , : ; {} ? ! \ & | % # $ … Dấu cách dung để tách từ Khi viết chương trình không sử dụng kí hiệu khác tập kí hiệu nói Ví dụ: Khi giải phương trình bậc hai: ax2 + bx + c =0 cần tính biệt thức: ∆ = b2 -4ac Kí tự ∆ không cho phép dung ngôn ngữ C, vìa ta phải dùng kí hiệu khác d delta 2.2 Từ khóa Từ khóa từ có ý nghĩa hoàn toàn xác định Chúng sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh Sau từ khóa 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 typedef union unsigned void volatile while Ý nghĩa cách sử dụng chúng giới thiệu mục Chú ý: - Không dùng từ khóa để đặt tên cho hằng, biến, mảng, hàm… - Từ khóa phải viết chữ thường Chẳng hạn không viết INT mà phải viết int 2.3 Tên Tên khái niệm quan trọng, dùng để xác định đối tượ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 quy tắc sau: Tên dãy kí tự: chữ, số dấu gạch nối Ký tự phải chữ dấu gạch nối Tên không trùng với từ khóa Độ dài cực đại tên mặc định 32, đặt lại giá trị từ đến 32 chức năng: Option – Compiler – Source – Identifier length môi trường phát triển kết hợp C Ví dụ: Tên đúng: x_1, delte_1,… Tên sai: 3abc: kí tự số r#1 : sử dụng kí tự # f(x): sử dụng dấu ngoạc tròn Chú ý: - Trong C phân biệt chữ hoa chữ thường - Chữ hoa thường dùng để đặt tên cho hằng, chữ thường thường dùng để đặt tên cho hầu hết đối tượng biến, mảng, hàm, cấu trúc (tuy nhiên điều không bắt buộc) 2.4 Kiểu liệu, kiểu liệu Các biến chương trình lưu trữ dạng số dạng kí tự Thí dụ, điện trở đoạn đồng lưu trữ số (một giá trị thực) tên linh kiện lưu trữ dạng kí tự Ngôn ngữ C có bốn kiểu liệu bản: char (ký tự đơn), int(số nguyên có dâu), float(dấu phẩy động đơn xác), double (dấu phẩy động kép xác) Các kiểu liệu mở rộng: short, long, unsigned int Miền giá trị kiểu liệu sau: Kiểu Bộ nhớ Phạm vi Char -128 đến 127 unsigned char đến 255 Int -32.768 đến 32.767 unsigned int đến 65535 long int - 2.147.483.648 đến 2.147.483.647 unsigned long int đến 4294967295 Float - 3.4.x10-38 đến +3.4x1038 Double - 1.7.x10-311 đến +1.7x10311 long double 10 - 3.4.x10-4932 đến +1.1x104932 Bảng 2.1 Một số giới hạn tiêu biểu cho kiểu liệu Số nguyên giá trị không chứa dấu thập phân; vùng giá trị số nguyên phụ thuộc vào số byte lưu trữ số Một giá trị đấu phẩy động số chứa đấu phấy thập phân; giá trị mô ta khuôn mẫu có dấu Lại lần nữa, vùng giá trị phụ thuộc vào số byte sử dụng 2.5 Định nghĩa kiểu typedef Công dụng: Từ khóa typedef dùng để đặt tên cho kiểu liệu Tên kiểu dùng để khai báo liệu sau Nên chọn tên vừa ngắn gọn vừa dễ nhớ Cú pháp: Đặt từ khóa typedef vào trước khai báo thông thường, tên liệu trở thành tên kiểu Ví dụ câu lệnh: typedef int ng; đặt tên kiểu int ng Sau dùng ng để khai báo cho biến, mảng nguyên sau: ng x,y,z a[10], b[10]; số ví dụ khai báo : typedef float mt50[50]; typedef int m_20_30[20][30]; typedef enum {T1, T2, T3} T; sau dùng khai báo: mt:x,y /* mảng thực chiều 50 phần tử */ m_20_30 a,b; /* mảng nguyên chiều kích cỡ 20x30*/ T t: /* t biến enum */ 2.6 Hằng Hằng đại lượng mà giá trị không thay đổi suốt trình tính toán Dưới bảy loại sử dụng ngôn ngưc C 2.6.1 Hằng đấu phẩy động Hằng viết theo cách: Cách (dạng thập phân): số nguyên, dấu chấm thập phân phần phân Ví dụ: 214.35 -456.48 244.0 Chú ý: phần nguyên hay phần thập phân vắng mặt dấu chấm thiếu, ví dụ cho phép viết: 33 15 Cách 2: (dạng khoa học hay dạng mũ): Số tách thành phần định trị phần bậc Phần định trị số nguyên sô thực dạng thập phân, phần bậc số nguyên Hai phần cách ký tự e E Ví dụ: 123.456E-4 (biểu diễn giá trị 0.0123456) 0.12E3 (biễu diễn giá trị 1230.0) -49.5e (biểu diễn giá trị -0.495) 2.6.2 Hằng int Là số nguyên có giá trị khoảng -32767 đến 32768 Ví dụ: -45 635 2.6.3 Hằng long Hằng viết theo cách them L l vào đuôi: -4567L -4567l Một số nguyên vượt miền xác định int xem long Ví dụ: 4563946L 4563946l Là hai long có gia trị 2.6.4 Hằng int hệ Hằng viết theo cách: 0c1c2c3… Trong đó, ci số nguyên khoảng từ đến Hằng nguyên hệ nhận giá trị dương Ví dụ: 0345 Là nguyên hệ Giá trị hệ 10 3*8*8 + 4*8 + = 229 2.6.5 Hằng nguyên hệ 16 Trong hệ sử dụng 16 kí tự khoảng từ đến 16 Để tránh nhầm lẫn số 11 hai số người ta dùng quy ước sau: Cách viết Ý nghĩa A a 10 B b 11 C c 12 D d 13 E e 14 F f 15 Hằng hệ số 16 có dạng: 0xc1c2c3… 0Xc1c2c3… Trong ci chữ số khoảng từ đến 16 Ví dụ: 0xa9, 0Xa9, 0xA9, 0XA9 Là số hệ 16 Giá trị chúng hệ 10 10*16 + = 169 2.6.6 Hằng kí tự Là kí tự riêng biết viết dấu nháy đơn, ví dụ ‘a’ Giá trị ‘a’ mã ASCII chữ a Như giá trị ‘a’ 97 Hằng kí tự tham gia vào phép toán số nguyên khác Ví dụ: ‘9’ – ‘0’ = 57 – 48 = Hằng kí tự viết theo cách ‘\c1c2c3’ Trong c1c2c3 số hệ mà giá trị mã ASCII kí tự cần biểu diễn Ví dụ, chữ a có mã hệ 10 97 đổi hệ 0141 Vậy kí tự ‘a’ viết dạng ‘\141’ 2.6.7 Hằng xâu kí tự Là dãy ký tự đặt hai cặp đấu nháy kép: Ví dụ: “Ha Noi” “Hai Phong” “” /* xâu rỗng*/ Xâu kí tự lưu trữ máy dạng mảng phần tử ký tự riêng biệt Trình biên dịch tự động thêm vào kí tự xóa \0 vào cuối xâu để đánh dấu kết thúc xâu 10 printf("%5d",*(a+i)); } Bài 6: Viết chương trình nhập vào mảng số thực lập mảng gồm phần tử lớn cột #include #include void Nhap(float a[50][50], int n); void MaxCot(float a[50][50],int n); void Hien(float a[50][50],int n); //Khai bao mang c[] la bien toan cuc float c[50]; void main(){ float a[50][50];int n; clrscr(); printf("Nhap vao so phan tu cua mang: "); scanf("%d",&n); Nhap(a,n); Hien(a,n); MaxCot(a,n); getch(); } void Nhap(float a[50][50],int n){ float t; for (int i=0;i

Ngày đăng: 11/08/2016, 05:42

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

Tài liệu liên quan