Ngôn ngữ lập trình C/C++ - Tuần 1

7 604 7
Ngôn ngữ lập trình C/C++ - Tuần 1

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

Thông tin tài liệu

1 1 NGÔN NGỮ LẬP TRÌNH C/C++ NguyễnHải Châu Khoa Công nghệ thông tin Trường Đạihọc Công nghệ 2 Mụctiêucủamônhọc z Trang bị cho sinh viên kiếnthứcvề lập trình trên ngôn ngữ C và mộtphầnmở rộng củaC++ z Kết thúc môn học: Sinh viên có khả năng sử dụng thành thạo ngôn ngữ C để giải quyết các bài toán cỡ vừavànhỏ 3 Nội dung môn học z Lý thuyết: 30 tiết trong 10 tuần z Thực hành: 30 tiết trong 10 tuần z Thực hành bắt đầu sau lý thuyết 1 tuần z Phương thứcthi vàkiểmtra: { Vấn đáp { Lập trình 2 bài tậptại phòng máy trong thời gian 45 phút z Do đósinhviêncầnchútrọng làm bài tập để rèn luyệnkỹ năng lậptrình 4 Tài liệuthamkhảo z PhạmHồng Thái, Bài giảng Ngôn ngữ lập trình C/C++, Hà Nội, 2003. z Download: http://coltech.vnu.edu.vn/httt/components/ com_joomlaboard/uploaded/files/THCS_2. pdf z Trao đổi: http://coltech.vnu.edu.vn/httt/index.php?op tion=com_joomlaboard&Itemid=100&func= showcat&catid=6 5 Truy cập đếngiáotrình z Website củabộ môn Các hệ thống thông tin: http://coltech.vnu.edu.vn/httt z Chọn“Góchọctập” ở menu bên trái z Chọn“Tin họccơ sở 2” ở phầnnội dung chính của trang web z ChọnBàigiảng Tin họccơ sở 2 (NNLT C/C++) 6 2 7 8 Lịch sử củangônngữ lậptrìnhC z Ngôn ngữ lậptrìnhC rađờinăm 1972, do Dennis Ritchie khởixướng z C đượctạorađể sử dụng như mộtphần cănbảncủahệđiềuhànhUNIX (Ken Thompson, Dennis Ritchie và Douglas McIlroy, 1969) z C đượcsử dụng rộng rãi và có ảnh hưởng lớn đếnnhiều ngôn ngữ lập trình hiện đại, trong đócóC++, đượcxemlàmở rộng củaC 9 Dennis Ritchie z Sinh ngày 9/9/1941 z Hiệnnay làmviệctại Bell Lab (AT&T) z Website: http://plan9.bell- labs.com/who/dmr/ z Là ngườitạo ra ngôn ngữ C và là người tham gia phát triểnhệ điềuhànhUNIX 10 Các cộng sự của Dennis Ritchie z Ken Thompson z http://plan9.bell- labs.com/who/bwk/ z Brian Kernighan z http://plan9.bell- labs.com/who/ken/ 11 Dennis Ritchie (giữa) và Ken Thompson (trái) nhậngiải thưởng quốcgiavề công nghệ do đãphátminh rahệ điều hành UNIX và ngôn ngữ C (ngày 27/4/1999) 12 Lịch sử ngôn ngữ lậptrìnhC++ z C++ được Bjarne Stroustrup phát minh vào năm 1979 tại Bell Lab. z C++ được xem như mở rộng củaC với các tính năng mớivề lậptrìnhhướng đối tượng (Chú ý C là ngôn ngữ lậptrình hướng cấutrúc) 3 13 Bjarne Stroustrup z Sinh ngày 30/12/1950 tại Đan Mạch z Đang làm việctại hãng AT&T z Website: http://www.research.a tt.com/~bs/ 14 Các yếutố cơ bảncủaC++ 15 Bảng ký tự z Các chữ cái La Tinh viếtthường và hoa (a-z, A-Z). C++ phân biệtchữ thường và chữ hoa z Dấugạch dưới“_” z Các chữ số 0, 1, 2,…, 9 z Cáckýhiệu toán họcvàkýhiệu đặcbiệt: +, -, *, /, %, &, |, !, [], {}, #, dấucách 16 Từ khóa z Từ khóa là từđược qui định trước trong ngôn ngữ lập trình (NNLT) dùng cho các mục đích đặcbiệtcủa ngôn ngữ z Từ khóa C++: auto, break, case, char, continue, default, do, double, else, externe, float, for, goto, if, int, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, while 17 Tên gọitrongC++ z Là dãy ký tự liên tiếp(khôngchứadấu cách) và phảibắt đầubằng chữ cái hoặc gạch dưới. z Phân biệtkítự in hoa và thường. z Không được trùng vớitừ khóa. z Số lượng chữ cái dùng để phân biệttên gọicóthểđược đặttuỳ ý. z Chú ý các tên gọicósẵncủa C++ cũng tuân thủ theo đúng qui tắctrên 18 Ví dụ về tên gọitrongC++ z Tên gọi đúng: i, i1, j, tinhoc, tin_hoc, luu_luong z Tên gọisai: 1i, tin hoc, luu-luong-nuoc z Các tên sau đây là khác nhau: ha_noi, Ha_noi, HA_Noi, HA_NOI, 4 19 Chú thích trong chương trình z Rất quan trọng khi lậptrình z Nếuchúthíchlàmột đoạnkítự bấtkỳ liên tiếp nhau (trong 1 dòng hoặc trên nhiều dòng) ta đặt đoạn chú thích đógiữacặp dấu đóng mở chú thích /* (mở) và */ (đóng). z Nếu chú thích bắt đầutừ mộtvị trí nào đó cho đếnhết dòng, thì ta đặtdấu // ở vị trí đó. 20 Môi trường làm việccủaC/C++ z Môi trường C: {Borland C (còn gọi là Turbo C) {Microsoft C (còn gọilàMS C) z Môi trường C/C++: {Dev-C++ (sẽ thực hành trên môi trường này) {Visual C++ củaMicrosoft z Cách làm việc trên các môi trường này sẽ đượchướng dẫn trong giờ thực hành 21 Dev-C++ z Là mộtphầnmềm mã nguồnmở z Là môi trường phát triểntíchhợp (Integrated Development Environment-IDE) cho C và C++ của BloodShedSoftware z http://www.bloodshed.net/devcpp.html z Phiên bảnmớinhất: Dev-C++ 5 (beta) z Phiên bản ổn định: Dev-C++ 4 z Sinh viên download để thực hành tại nhà 22 Cấutrúcmộtchương trình C++ z Mộtchương trình C++ có thểđược đặt trong một hay nhiềutệp z Mộtchương trình có nhiều hàm đảm nhiệmcácchứcnăng khác nhau của chương trình z main() là hàm đặcbiệt: Hàm này được thựchiện đầutiênvàbắtbuộcphảicóđể hoàn chỉnh mộtchương trình C++ 23 Cấutrúcmộtchương trình C++ z Phần khai báo: Khai báo tên tệpchứacác thành phầncósẵn z Khai báo kiểudữ liệu, hằng, biến… do ngườisử dụng (NSD) định nghĩa z Danh sách các hàm củachương trình, trong đócócả hàm main() 24 Ví dụ mộtchương trình C++ #include <iostream.h> // khai báo tệpnguyênmẫu void main() // để đượcsử dụng toán tử in cout << { int h = 3; // Khai báo và khởitạobiếnh = 2 cout << “Chào các bạn, bây giờ là ” << h << " giờ"; // in ra màn hình } 5 25 Các bướcviếtchương trình trong C++ z Xác định đầuvàovàđầuracủachương trình (input và output) z Xác định thuật toán giải z Viếtchươngtrìnhtrênmáy z Dịch chương trình nguồn để tìm và sửacáclỗigọilà lỗi cú pháp z Chạychương trình, kiểmtrakếtquả in ra trên màn hình z Nếusai, sửalạichương trình, dịch và chạylại để kiểm tra. Quá trình này đượcthựchiệnlặp đilặplại cho đếnkhichương trình chạytố t 26 Các hàm vào/ra cơ bản trong C++ 27 Nhậpdữ liệutừ bàn phím (C++) Để nhậpdữ liệu vào cho các biếncótên biến_1, biến_2, biến_3 chúng ta sử dụng câu lệnh: cin >> biến_1 ; cin >> biến_2 ; cin >> biến_3 ; hoặc: cin >> biến_1 >> biến_2 >> biến_3 ; 28 In dữ liệuramànhình(C++) Để in giá trị củacácbiểuthức ra màn hình ta dùng câu lệnh sau: cout << bt_1 ; cout << bt_2 ; cout << bt_3 ; hoặc: cout << bt_1 << bt_2 << bt_3 ; 29 Ví dụ vào/ra trong C++ cin >> cd >> cr ; cout << "Hãy nhậpchiều dài: "; cin >> cd; cout << "Và nhậpchiềurộng: "; cin >> cr; cout << "Chiều dài là 23 mét" ; cout << "Chiều dài là" << cd << "mét" ; cout << "Chiềurộng là" << cr << "mét" ; Xem thêm ví dụởtrang 12 của bài giảng. 30 Định dạng thông tin in ra màn hình (C++) z Cần khai báo chỉ thị: #include <iomanip.h> z Các định dạng: {endl: Tương đương vớikítự xuống dòng '\n' {setw(n): Sử dụng n cột để in kếtquả {setprecision(n): Chỉđịnh in ra n chữ số thậpphân {setiosflags(ios::showpoint): Do setprecision(n) chỉ có tác dụng trên một dòng, do đó dùng setiosflags(ios::showpoint) để đặt định dạng cho mọi dòng z Xem ví dụ trang 13 trong bài giảng 6 31 Các hàm vào/ra khác trong C++ z Chú ý: toán tử nhập >> chủ yếulàmviệc vớidữ liệukiểusố. Để nhậpkítự hoặc xâu kí tự, C++ cung cấp các hàm sau: {cin.get(c): cho phép nhậpmộtkítự vào biếnkí tự c, và {cin.getline(s,n): cho phép nhậptối đan-1 kítự vào xâu s. 32 Ví dụ int x; char c; cin >> x; cin.ignore(1); // Lấymộtkýtự \n trong bộđệm cin.get(c); 33 Cáchàmvàoracơ sở trong C 34 In kếtquả ra màn hình z printf(Định dạng, bt_1, bt_2, , bt_n) ; z bt_1, bt_2, …, bt_n là các biểuthức z Định dạng: xâu ký tự nằm trong “ ” z Ví dụ: Giả sử x = 4, khi đócâulệnh: printf(“%d %0.2f”, 3, x + 1) ; in ra 2 số: 3 (ở dạng số nguyên %d) và 5.00 với hai chữ số thập phân %0.2f. 35 Định dạng cho printf và scanf z d in số nguyên dướidạng hệ thập phân z o in số nguyên dạng hệ 8 z x, X in số nguyên dạng hệ 16 z u in số nguyên dạng không dấu z c in kí tự z s in xâu kí tự z e, E in số thựcdạng dấuphẩy động z f in số thựcdạng dấuphẩytĩnh z Trước các ký tựđịnh dạng cầncókýtự % 36 Định dạng cho printf và scanf z Giữakýtự % và ký tựđịnh dạng có thể có: {Mộtsố: Qui định độ rộng cầnin ra, vídụ: %5s nghĩalàin ramộtxâucóđộ rộng 5 cột, %-3d in ra mộtsố nguyên có độ rộng 3 cột {Nếu độ rộng âm: Cănlề trái, độ rộng dương: cănlề phải {Nếusố có dạng thập phân: Qui định tổng số cộtvà số cột dành cho phầnthập phân (Chỉ áp dụng cho biếnsố th ực). Ví dụ: %-5.2f in ra số thựccóđộ rộng 5 cộtvới2 cột dành cho phầnthập phân và cănlề trái 7 37 Nhậpdữ liệutừ bàn phím z scanf(Định dạng, biến_1, biến_2, , biến_n); z biến_1, biến_2, …, biến_n là các biến z Ví dụ: Nhậpdữ liệu vào biến nguyên x, biến thực y và biến nguyên dài z: scanf(“%d %f %ld”, &x, &y, &z); Chú ý dấu& trướctêncácbiến, nếu không có -> lỗi z Ví dụ: Nhậpdữ liệuchobiến nguyên i, biến xâu ký tự s: scanf(“%d%8s”, &I, s); 38 Các vấn đề cầnghinhớ z Cách viếtchương trình C++ đơngiảnnhất z Hàm main() z Chỉ thị #include <iostream.h>, #include <iomanip.h>, #include <stdio.h> z Cách nhậpdữ liệuvàochương trình từ bàn phím z Cách in kếtquả ra màn hình z Các hàm thư việnsẽ sử dụng nhiều: cin, cout, printf, scanf z Cách định dạng kếtquả in ra màn hình 39 Bài tập z Sinh viên làm các bài tậptừ số 1 đếnsố 7 ở trang 17, 18, 19 trong bài giảng z Thử nghiệm các bài tậptrênmáytính trong giờ thực hành z Cần tích cựctraođổivới giáo viên hướng dẫnthực hành để giải quyếtcáclỗigặp phảikhithực hành

Ngày đăng: 08/05/2014, 16:34

Từ khóa liên quan

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

Tài liệu liên quan