Tải bản đầy đủ (.pdf) (7 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (267.59 KB, 7 trang )

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:


/>com_joomlaboard/uploaded/files/THCS_2.
pdf
z Trao đổi:
/>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: />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:
l-
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 l-
labs.com/who/bwk/
z Brian Kernighan
z l-
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:
earch.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 />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

×