1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình C cộng cộng - Phần 1 pps

80 332 0

Đ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

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG PHÒNG TRUNG CẤP CHUYÊN NGHIỆP & DẠY NGHỀ #" MÔN HỌC LẬP TRÌNH C ++ GIẢNG VIÊN: ThS. LÊ VĂN HẠNH CN. NGUYỄN VIỆT HÙNG NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 1 TỔNG QUAN 1 I. MỞ ĐẦU: 1/- Lập trình: (Programming) là một quá trình viết chương trình bằng một ngôn ngữ nào đó mà máy tính có thể thực hiện và những người lập trình khác có thể hiểu. 2/- Các bước trong giai đoạn lập trình:  Bước 1 : GIẢI THUẬT • Nghó ra cách giải ( giải thuật) . • Làm rõ ràng giải thuật : bằng cách phân đoạn giải thuật thông qua các hình vẽ, sơ đồ. Thông thường, người ta dùng lưu đồ (Flow Chart) để trình bày giải thuật.  Bước 2 : VIẾT CHƯƠNG TRÌNH • Viết phần lõi của thân chương trình. • Thêm các phần nhập và xuất. • Thêm các phần khai báo.  Bước 3 : CHẠY THỬ, SỬA CHỮA • Chạy thử chương trình trình nhiều lần, sửa chữa những lỗi nhỏ. • Sửa chữa, cải tiến chương trình.  Bước 4 : TỔNG KẾT • Thêm những ghi chú cho chương trình như :    Mục đích của cả chương trình.    Mục đích của 1 đoạn chương trình hay 1 phát biểu. 3/- Thuật toán (Algorithm): a/- Thuật toán: là một dãy các bước chặt chẽ và rõ ràng, xác đònh một trình tự các thao tác trên một số đối tượng nào đó sao cho một số hữu hạn lần thực hiện ta thu được kết quả như mong đợi. b/- Các đặc trưng của thuật toán:  Tính dừng (tính kết thúc): Một thuật toán bao giờ cũng phải dừng sau một số hữu hạn các bước thực hiện .  Tính phổ dụng : thuật toán có thể giải bất kỳ bài toán nào trong một lớp các bài toán. Cụ thể là thuật toán có thể làm việc với các dữ liệu khác nhau và luôn dẫn đến một kết quả mong muốn. Ví dụ : chương trình Giải phương trình bậc hai phải cho kết quả luôn đúng với các dữ liệu số nhập vào cho a,b,c là bất kỳ (số nguyên, số thực, số dương, số âm. . .)  Tính duy nhất : nghóa là với nhiều lần chạy chương trình trên cùng moat tập dữ liệu đàu vào phải cho ra cùng một kết quả. NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 2 c/- Một thuật toán không phải là một chương trình, nó có thể được mô tả bởi một trong ba cách • Mã giả (pseudocode). • Dùng các phương trình toán học (formula). • Dùng các biểu tượng được quy đònh để biểu diễn giải thuật (flowchart). Trong đó pseudocode thường được sử dụng. 4/- Giải thuật: a/- Giải thuật:  Trong khi tìm kiếm lời giải cho các bài toán trong thực tế, người ta nhận ra rằng: • Có những bài toán đến nay vẫn chưa xác đònh được liệu có tồn tại một thuật toán để giải quyết hay không? • Có những bài toán đã có thuật toán đễ giải nhưng, nhưng không chấp nhận được do:  Thời gian để giải bài toán theo thuật toán đó quá lớn.  Các điều kiện kỹ thuật cho thuật toán khó đáp ứng. • Có những bài toán có thể giải được một cách hữu hiệu bằng một lời giải nào đó, nhưng lời giải này lại vi phạm một số tính chất của thuật toán.  Trong thực tiễn, có rất nhiều trường hợp người ta chấp nhận các cách giải thường cho kết quả tốt (tất nhiên không phải lúc nào cũng tốt) nhưng ít phức tạp, hiệu quả và khả thi. Do đó, người ta mở rộng khái niệm thuật toán (giúp cho thuật toán bớt “cứng nhắc”) bằng một khái niệm mới là giải thuật. Giải thuật là những cách giải không hoàn toàn đáp ứng đầy đủ các tính chất của một thuật toán nhưng vẫn cho kết quả gần đúng. Hiện nay đã có những giải thuật đệ quy, giải thuật ngẫu nhiên, giải thuật Heuristic, . Để thuận tiện, trong tài liệu này sẽ sử dụng khái niệm giải thuật để chỉ chung cho thuật toán và giải thuật. 5/- Lưu đồ chương trình: a)- Khái niệm : Còn được gọi là sơ đồ khối. Là sơ đồ thể hiện các bước của giải thuật liên quan đến một vấn đề nào đó được đưa vào giải quyết bằng máy tính. b)- Các ký hiệu dùng trong lưu đồ: KÝ HIỆU Ý NGHĨA nhập xuất Chức năng của công việc vào ra dữ liệu. xử lý Nhóm lệnh để thự hiện một chức năng nào đó của chương trình NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 3 chương trình con chương trình con đã đònh nghóa. quyết đònh Quyết đònh rẽ nhánh nào căn cứ vào điều kiện chỉ đònh được ghi trong khối. Trong một số trường hợp, hình thoi được mở rộng thành 1 hình đa giác có nhiều đường ra, ứng với các giá trò của biểu thức bên trong.             Hướng xử lý của lưu đồ. nối trang Điểm vào hay điểm ra của từng trang trong lưu đồ chương trình. điểm cuối Điểm đầu hay điểm cuối của lưu đồ. Nối Điểm vào hay điểm ra của từng phần trong lưu đồ chương trình. c)- Một số ví dụ biểu diễn thuật toán bằng lưu đồ: c.1 Thuật toán không phân nhánh: Ví dụ: Tính A=b 2 +c 2 . Với b và c được nhập vào từ bàn phím. (hình 1) c.2 Thuật toán có phân nhánh: Ví dụ 1: Cho nhập 3 số, in ra giá trò lớn nhất trong 3 số. (hình 2) Begin Nhập b, c A =b 2 +c 2 Xuất A End (Hình 1) Begin Nhập a, b, c Xuất Max End a > b Max = b Max = a Max < c Max = c S S Đ Đ (Hình 2) NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 4 Ví dụ 2: Giải phương trình bậc 1 ax+b=0. Với a,b được nhập vào(hình 3) Ví dụ 3: Giải phương trình bậc 2 ax 2 + bx + c =0. Với a, b, c được nhập vào. (hình 4) c.3 Thuật toán lặp có chu trình: Ví dụ 4: Nhập n. Tính tổng các số từ 1 đến n. Ví dụ này có thể thực hiện bằng 2 cách (cách 1: hình 5, cách 2: hình 6) Begin Nhập a, b Xuất “PTVĐ” End a = 0 b = 0 S S Đ Đ (Hình 3) Xuất – b/a Xuất “PTVN” Begin Nhập a, b , c Xuất x 1 = -b+sqrt(delta)/2*a Xuất x 2 = -b-sqrt(delta)/2*a End a = 0 delta < 0 S S Đ (Hình 4) Giải PTB1(b,c) Xuất “PTVN” delta=b*b -4ac delta = 0 S Xuất – b/2a Đ Đ Begin Nhập n I=1; S=0 End S Đ (Hình 5) Xuất S i <=n S = S+i Begin Nhập n I=1; S=0 End S Đ (Hình 6 ) Xuất S i <=n S = S+i NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 5 6/- Mã giả ( pseudocode ): a)- Khái niệm: • Là viết nội dung chương trình bằng ngôn ngữ tự nhiên giản lược. • Thông thường, người ta dùng lưu đồ hay mã giả để diễn đạt thuật toán thay cho diễn đạt bằng bản thân ngôn ngữ lập trình. b)- Quy ước : • Phải dễ hiểu, dễ nhớ, nhất quán và không có sự hiểu lầm. • Có thể dùng các từ khóa của ngôn ngữ đang dùng, hoặc có thể sử dụng một số từ khóa đã được quy ước trước. c)- Ví dụ : viết chương trình cho người dùng nhập 1 số nguyên dương (n). Tính tổng các số từ 1 đến n. B1: Nhập số n B2: Tổng=0 B3: Số đang xét=1 B4: Thực hiện khi Số đang xét <=n Cộng dồn Số đang xét vào biến Tổng Tăng số đang xét lên 1 đơn vò kỳ. Quay lại B4 II. NGÔN NGỮ LẬP TRÌNH C ++ : 1/- Ngôn ngữ lập trình:  Là tập hợp các chỉ thò, dữ liệu và các nguyên tắc dùng để xây dựng một chương trình.  Ngôn ngữ lập trình có thể phân loại theo hai cách: • Ngôn ngữ bậc cao – ngôn ngữ bậc thấp. • Ngôn ngữ hướng thủ tục – ngôn ngữ hướng đối tượng. C ++ là một ngôn ngữ bậc cao có chứa các đặc trưng của cả hai loại ngôn ngữ hướng thủ tục – ngôn ngữ hướng đối tượng. 2/- Cấu trúc đơn giản của chương trình C ++ : // Các chỉ thò tiền xử lý #include <tên tập tin .h> #define // Hàm main Void main() a)- Các chỉ thò tiền xử lý:  #include <tên tập tin .h>: dùng để chèn nội dung của một file khác vào chương trình nguồn tại đúng vò trí mà chỉ thò include xuất hiện. NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 6  #define: dùng để đònh nghóa các tên hằng số (constant) và các macro có phạm vi sử dụng trong toàn chương trình hoặc cho đến khi được đònh nghóa lại sau chỉ thò #undef. b)- Hàm main():  Các dạng của hàm main: Dạng 1: Dạng 2: Dạng 3: void main() {{ /* Các khai báo*/ /* Các lệnh*/ } Kiểu_trả_về main(void) { /* Các khai báo*/ /* Các lệnh*/ return Giá_trò_trả_về; } Kiểu_trả_về main(int i, char *str[]) { /* Các khai báo*/ /* Các lệnh*/ return Giá_trò_trả_về; }  Ví dụ: int main() { cout << “Hello”; return 0; } 3)- Viết chương trình với C ++ :  Mỗi chương trình trong C++ phải có một và duy nhất một hàm main. Hàm này được xem như hàm điều khiển, bởi vì nó điểu khiển (gọi thực hiện) các module khác.  Các lệnh của một hàm phải đặt giữa cặp dấu {}.  Cuối mỗi lệnh trong hàm phải có dấu chấm phẩy (;).  Trên một dòng có thể chứa nhiều lệnh.  Trong ngôn ngữ C++, có phân biệt ký tự hoa/thường đối với các hằng chuỗi, danh đònh, và từ khóa.  Một lệnh có thể viết trên nhiều dòng, ngoại trừ các hằng chuỗi, danh đònh, và từ khóa.  Tuy nhiên ta nên trình bày chương trình một cách rõ ràng để dễ đọc và sửa chữa, ví dụ sau đây cũng là một chương trình có thể thực hiện được nhưng nó là điển hình cho một cách trình bày chương trình vô cùng kém: #include <iostream.h> int main() { cout << “Hello” ; return 0; } 4/- Các lỗi thường gặp khi viết chương trình:  Bỏ sót cặp ngoặc đơn -( )- sau từ khóa main.  Bỏ sót hoặc đánh không chính xác dấu { ở tại vò trí bắt đầu thân của một hàm.  Bỏ sót hoặc đánh không chính xác dấu } ở tại vò trí kết thúc của một hàm. NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 7  Gõ thiếu hoặc sai tên của một đội đối tượng hoặc hàm ví dụ cot hay Cout (chữ C viết hoa) thay vì cout.  Không đặt hằng chuỗi vào cặp dấu nháy kép “”.  Thiếu dấu chấm phẩy (;) sau mỗi câu lệnh.  Dư dấu chấm phẩy (;) sau từ khóa main ”main();“ III. BIẾN VÀ KHAI BÁO BIẾN: 1/- Khái niệm về biến:  Biến là tên do người lập trình đặt ra dùng để tham khảo tới một vùng nhớ trong máy tính.  Một biến có thể chứa một giá trò phù hợp với kiểu dữ liệu mà ta đã khai báo cho nó.  Giá trò trong biến có thể thay đổi được trong chương trình.  Tên biến gồm chữ cái, ký số, dấu nối (_) và không được bắt đầu bằng ký số.  Biến khai báo trong một khối được gọi là biến cục bộ, biến không thuộc khối nào gọi là biến toàn cục.  Biến có tác dụng trong toàn khối kể từ lúc được khai báo. 2/- Cú pháp: <data type> variable_name1, variable_name2; Ví dụ: int sum; long int datenum; foat a,b,c;  Ta cũng có thể gán giá trò cho biến ngay tại thời điểm khai báo (phép gán ký hiệu bởi dấu bằng =). int a=3,b=5;  Vò trí khai báo biến trong chương trình: #include <iostream.h> void main() { //Các khai báo biến // Các phát biểu (lệnh) của chương trình } Ví dụ: #include <iostream.h> void main() { float dmon1,dmon2,d_tb; dmon1=9.5; dmon2=8.0; d_tb=(dmon1+dmon2)/2; cout <<”diem tb la: “ <<d_tb; } NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 8 IV. CÁC ĐỐI TƯNG NHẬP – XUẤT: 1/- Đối tượng xuất (cout ) a)- Công dụng: xuất dữ liệu ra màn hình. b)- Cú pháp: cout << nội dung1 <<nội dung 2 ;  Giải thích: • Các nội dung có thể là số, chuỗi, một biểu thức. Nếu là hằng chuỗi thì đặt vào cặp dấu nháy kép “”. • Vì cout thuộc lớp ostream nên muốn sử dụng cout thì phía trên dòng khai báo hàm main ta phải khai báo dòng lệnh sau: #include <iostream.h>  Ví dụ: #include <iostream.h> int main() { cout << ”C ++ programming language”; cout << ”C ++ \nprogramming\n language”; cout << “C ++” << endl << “programming” <<endl << “language”; return 0; } c)- Đònh dạng kết quả khi in lên màn hình:  C ++ cung cấp một số công cụ để đònh dạng kết quả khi in lên màn hình là: • endl : dùng khi muốn xuống dòng. • setw(n) : ấn đònh độ rộng để in một số là n • setprecision(n) : ấn đònh số chữ số thập phân sẽ hiển thò. • dec : hiển thò giá trò số ở hệ thập phân • hec : hiển thò giá trò số ở hệä thập lục phân • oct : hiển thò giá trò số ở hệä bát phân  Lưu ý: ngoại trừ endl, muốn sử dụng các đònh dạng thì trong chương trình ta phải khai báo : #include <iomanip.h>  Ví dụ: #include <iostream.h> #include <iomanip.h> void main() { cout <<setw(5) <<12 //kết quả “ 12” cout <<setw(10) <<setiosflags(ios::left) <<12 // 12 cout <<hex <<15 //kết quả F cout <<oct <<10 // kết quả 12 cout <<dec <<0x10 /* kết quả 16 (để trình bày một số trong hệ thập lục ta đặt thêm 0x phía trước)*/ NGÔN NGỮ LẬP TRÌNH C ++ PHẦN 1 Lê Văn Hạnh – Nguyễn Việt Hùng Feb09 9 cout <<dec <<012 /* kết quả 10 (để trình bày một số trong hệ bát phân ta đặt //thêm 0 phía trước) */ } 2/- Đối tượng nhập (cin): a)- Công dụng: cho phép chúng ta nhập giá trò vào biến từ bàn phím khi chương trình thực hiện. b)- Cú pháp: cin >> variable_name1 >> variable_name2 ; c)- Ví dụ: chương trình sau khi thực hiện cho phép nhập vào 2 số nguyên sau đó in ra tích của hai số nguyên này. #include <iostream.h> void main(void) { int so1,so2,tich; cout << "Nhap so thu 1: "; cin >> so1; cout << "Nhap so thu 2 : "; cin >> so2; tich=so1*so2; cout <<so1 <<" * " <<so2 <<" = " <<tich; } d)- Lưu ý:  Khi sử dụng cin để nhập giá trò cho nhiều biến: lúc nhập giá trò từ bàn phím giữa các giá trò phải có ít nhất 1 khoảng trắng. Ví dụ : lệnh sau dùng để nhập giá trò cho hai biến num1 và num2 cin >>num1 >>num2; Khi chương trình thực hiện giả sử ta muốn nhập 5 cho num1 và 10 cho num2 thì ta phải nhập như sau: 5∪10 ↵ hoặc 5 ↵ 10 ↵ . #include <iostream.h> void main(void) { float so1,so3; int so2; cout << "Nhap so thu 1: "; cin >> so1; cout << "Nhap so thu 2 : "; cin >> so2; cout << "Nhap so thu 3 : "; cin >> so3; cout <<so1 <<” “ <<so2 <<" " <<so3; } [...]... 9.234l thu c kiểu long double C c cách trình bày số th c: Tên kiểu Dạng thập phân chuẩn 16 52 634 21 .007 31 000625 Dạng số mũ 1. 625e3 6.3421e4 7.31e-3 6.25e-4 Dạng khoa h c 1. 625x103 6.3421x104 7.31x1 0-3 6.25x1 0-4 3 /- Ký tự: Kiểu ký tự bao gồm 256 ký tự trong đó bao gồm c c chữ c i (chữ thường và chữ hoa), chữ số, c c dấu, một số c c ký hiệu Phân loại kiểu dữ liệu ký tự trong C+ +: Bytes Tên gọi kh c Miền... Feb09 14 ++ NGÔN NGỮ LẬP TRÌNH C PHẦN 1 5 /- Toán tử trên bit: Toán tử trên bit chỉ c t c dụng trên c c kiểu số nguyên Tên toán tử Ý nghóa & And | Or ^ XOr >> n = A/(2n) ~1 = 0 ~0 = 1 6 /- Toán tử sizeof: Dùng để x c đònh kích thư c của một loại dữ liệu ho c. .. sẽ không chính x c C c dạng biến đổi c a lệnh gán: • Khi viết chương trình chúng ta thường sử dụng c c lệnh gán c dạng như sau: tong=tong +10 ; tich=tich*3; a=a-3; c= c%k; • Trong c c trường hợp trên ta c thể sử dụng c c toán tử gán += ;-= ; *=; /=; %= đư c cung c p bởi C+ + gọi là shortcut assignment operators Ví dụ: tong=tong +10 ; ⇔ tong + =10 ; tich=tich*3; ⇔ tich *=3; a=a-3; ⇔ a -= 3; ⇔ c %=k; c= c%k; •... char ch1,ch2; ch1='a'; ch2='b'; cout ch2) ; } 3 /- Toán tử logic: C c toán tử logic: ° AND (&&) ° OR (||) ° NOT (!) Khi c n tạo ra c c điều kiện ph c hợp chúng ta sẽ sử dụng kết hợp giữa c c toán tử quan hệ và c c toán tử logic Khi đó c c biểu th c quan hệ đơn giản (như +, - , , /, ) nên đặt trong c p dấu ngo c đơn ( ) Giá trò c a biểu th c ghép đư c cho trong bảng sau Trong đó true =1 và... toàn c c • C c kiểu dữ liệu tự đònh nghóa Khối khai báo Hàm main() C c hàm con (nếu c ) Lê Văn Hạnh – Nguyễn Việt Hùng - Trần Đình Nghóa - Ngô Tân Khai Feb09 30 NGÔN NGỮ LẬP TRÌNH C+ + PHẦN 1 b Hàm chính (main()) Chứa c c biến, c c lệnh và c c lời gọi hàm c n thiết trong chương trình c C c hàm con: • Đư c sắp xếp riêng rẽ, mỗi hàm nằm trên 1 đoạn riêng • C c hàm nằm rời nhau Không đặt nội dung c a hàm... trong chương trình: void main() { / /c c khai báo hằng; / /c c khai báo biến; / /c c lệnh kh c; } VIII C C HÀM TOÁN H C TRONG C+ +: M c dù c cung c p c c toán tử số h c như + - * / nhưng vẫn không đủ để dùng; ví dụ như không c toán tử để tính lũy thừa hay c n c a một số Thay vào đó C+ + cung c p một số hàm toán h c để c thể sử dụng trong chương trình Trư c khi dùng một hàm ta c n phải biết: • Tên c a hàm... Việt Hùng Feb09 21 ++ NGÔN NGỮ LẬP TRÌNH C PHẦN 1 II C U TR C switch: 1 /- C ng dụng: Với c c bài toán phải chọn một trong nhiều trường hợp nếu viết theo c u tr c if – else ta nhận thấy khó khăn khi đ c và theo dõi mạch chương trình, trong trường hợp này ta nên sử dụng c u tr c switch 2 /- C pháp: switch (biểu th c) { case giá_trò _1: nhóm lệnh break; case giá_trò _2: nhóm lệnh break; case giá_trò_n:... nào trong c c giá trò c trong c u tr c switch thì c c lệnh thu c default sẽ đư c th c hiện : • Lệnh break: c c ng dụng thoát khỏi một c u tr c tại thời điểm nó đư c gọi Trong trường hợp này nó đư c dùng để thoát khỏi switch sau khi đã th c hiện một nhóm lệnh thu c về một nhãn nào đó Nếu không c lệnh này thì sau khi th c hiện xong c c lệnh c n thiết nó sẽ th c hiện tiếp c c lệnh c a c c trường hợp... Kết th c vòng lặp while Giá trò c a BTĐK kh c 0 (đúng) Th c hiện NhómLệnh c a while d )- C u tr c while thường đư c dùng khi: C n th c hiện nhiều lần (lặp đò, lặp lại) một nhóm lệnh Trư c khi cho nhóm lệnh th c hiện, c n kiểm tra một số điều kiện Lê Văn Hạnh – Nguyễn Việt Hùng - Trần Đình Nghóa - Ngô Tân Khai Feb09 24 NGÔN NGỮ LẬP TRÌNH C+ + PHẦN 1 2 /- C u tr c for : a )- C ng dụng: C ng c ch c năng... số c a những hàm trên c thể là: Số nguyên ho c số th c Nó c thể là hằng, biến ho c một biểu th c Ví dụ: #include #include void main() { int x=5, x=2; cout . thu c kiểu long double  C c cách trình bày số th c: Dạng thập phân chuẩn Dạng số mũ Dạng khoa h c 16 52. 634 21. .007 31 .000625 1. 625e3 6.3421e4 7.31e-3 6.25e-4 1. 625x10 3 6.3421x10 4. NGÔN NGỮ LẬP TRÌNH C ++ : 1 /- Ngôn ngữ lập trình:  Là tập hợp c c chỉ thò, dữ liệu và c c nguyên t c dùng để xây dựng một chương trình.  Ngôn ngữ lập trình c thể phân loại theo hai c ch: •. nên trình bày chương trình một c ch rõ ràng để dễ đ c và sửa chữa, ví dụ sau đây c ng là một chương trình c thể th c hiện đư c nhưng nó là điển hình cho một c ch trình bày chương trình vô c ng

Ngày đăng: 08/08/2014, 00:21

Xem thêm: Lập trình C cộng cộng - Phần 1 pps

TỪ KHÓA LIÊN QUAN