PPLT-C2(Bien-Kieu-Hang)-6T

Download Report

Transcript PPLT-C2(Bien-Kieu-Hang)-6T

C2: KiỂU DỮ LiỆU – BiẾN – HẰNG
1.
2.
3.
4.
5.
6.
Định danh - Từ khóa
Kiểu dữ liệu
Biến và khai báo biến
Hằng
Các lệnh nhập xuất
Vài chương trình mẫu
10/04/2015
1
1. Định danh – Từ khóa

Tên (định danh): Được dùng để đặt cho chương trình,
hằng, biến, kiểu, chương trình con …Tên có 2 loại:
 Tên chuẩn (Từ khóa): Do C++ đặt sẵn
 Tên do người lập trình đặt: Sử dụng bộ chữ cái, chữ
số và dấu gạch dưới; quy ước:
 Bắt đầu bằng một chữ cái hoặc dấu gạch dưới
 Không có khoảng trống giữa tên
 Không trùng với từ khóa hay tên chuẩn
 Độ dài tối đa (có ý nghĩa) là 31 ký tự
Phân biệt chữ Hoa và chữ thường
10/04/2015
2
Ví dụ:
Sai. Bắt đầu bằng số
abc
b2
_thutu
Tieptuc
_2k
10/04/2015
2abc
Sai. Chứa kí tự đặt biệt
b#2
Sai. Chứa kí tự đặt biệt
thu-tu
Sai. Chứa dấu cách
Tiep tuc
Sai. Trùng với từ khóa
double
3
Một số từ khóa
10/04/2015
4
2. Kiểu dữ liệu


Khi lập trình, ta lưu dữ liệu trong bộ nhớ của máy tính.
Các kiểu dữ liệu khác nhau sẽ cần lượng bộ nhớ khác
nhau
Bộ nhớ được tổ chức thành các đơn vị nhỏ nhất là byte
10/04/2015
5
2. Kiểu dữ liệu
Các kiểu dữ liệu cơ bản của C++ gồm có:



Kiểu số nguyên: Dùng lưu trữ các số nguyên
Kiểu số thực: Dùng lưu trữ các số thực hay các
số có dấu chấm thập phân
Kiểu ký tự: Dùng để lưu trữ 1 ký tự mã ASCII.
10/04/2015
6
Kiểu số nguyên

Kiểu số nguyên 2 byte (16 bit)
Kiểu dữ liệu
10/04/2015
Miền giá trị
Unsigned short
0 đến 65,535
unsigned int
0 đến 65,535
short
-32,768 đến 32,767
int
-32,768 đến 32,767
7
Kiểu số nguyên (tt)

Kiểu số nguyên 4 byte (32 bit)
Kiểu dữ liệu
10/04/2015
Miền giá trị
unsigned long
0 đến 4,294,967,295
long
-2,147,483,648 đến 2,147,483,647
8
Kiểu số thực
Kiểu dữ liệu
Kích thước
float
4 byte
double
8 byte
long double
10 byte
10/04/2015
Miền giá trị
3.4*10-38 đến 3.4*1038
(độ chính xác đến 6 chữ số
thập phân)
1.7*10-308 đến 1.7*10308
(độ chính xác đến 15 chữ số
thập phân)
3.4*10-4932 đến 1.1*104932
(độ chính xác đến 17 chữ số
thập phân)
9
Kiểu ký tự
Kiểu dữ liệu
Miền giá trị
char
-127 đến 127
unsigned char
0 đến 255
3. Biến và cách khai báo biến
a)
b)
c)
d)
e)
Biến là gì
Khai báo biến
Biến toàn cục
Biến cục bộ
Biến ngoài
10/04/2015
11
a) Biến là gì?



Biến
 Là vị trí của bộ nhớ mà tại ví trí này lưu trữ dữ liệu
tạm thời dùng cho một chương trình nào đó.
Thuộc tính của biến
 Tên: dùng phân biệt các biến khác nhau
 Kiểu: dùng xác định miền giá trị của nó
 Giá trị: có thể thay đổi (gán) trong khi thực thi chương
trình
Trước khi dùng biến phải khai báo (tên, kiểu, có thể
gán giá trị ban đầu)
10/04/2015
12
Các kiểu biến

Biến số nguyên có kiểu là: short, int, long

Biến số thực có kiểulà: float , double

Biến ký tự có là kiểu: char

Biến chuỗi có kiểu: char* (con trỏ ký tự)
10/04/2015
13
b) Khai báo biến
<Kiểu_dữ_liệu> <danh_sách_các_biến;>
Ví dụ:
Biến có kiểu số nguyên
short a;
int x, y, z;
long a1, sotien;
int u=5,v;
Các biến khai báo
cùng kiểu cách nhau
dấu phẩy
Chú ý
cách đặt
Cótên
thể vừa
khai báo
biến
biến vừa gán giá trị.
(biến u)
b) Khai báo biến (tt)
Biến có kiểu số thực
float a, b, thanhtien;
double x, y=1.24, pi;
Biến có kiểu ký tự
char ch, kytu=‘A’, z;
Biến có kiểu chuỗi (tìm hiểu
kỹ ở các chương sau)
10/04/2015
15
c) Biến toàn cục (Global variables)

Biến này được đặt bên ngoài tất cả các
hàm (kể cả hàm main())

Có ảnh hưởng đến toàn bộ chương trình.
10/04/2015
16
Biến toàn cục (tt)
#Tiền xử lý
Khai báo các biến toàn cục
Khai báo các hàm thành phần
Định nghĩa hàm main()
{…Thân chương trình chính...}
Định nghĩa các hàm thành phần
#include <iostream.h>
Tiền xử lý
#include<conio.h>
int x; //khai báo biến ngoài
void f() //hàm thành phần
Chương trình
{ x=10; }
chính
void main()
{
int i=1; //khai báo biến trong CTC và khởi tạo
x=0;
f();
cout<<“\n gia tri cua x la ”<<x;
Kết quả chương trình:
cout<<“\n gia tri cua i la ”<<i;
getch();
gia tri cua x la 10
}10/04/2015
18
gia tri cua i la 1
d) Biến cục bộ (local variables)

Các biến được đặt trong hàm, chương trình
chính hay khối lệnh.

Các biến này chỉ có tác dụng ảnh hưởng đến
hàm, chương trình hay khối lệnh chứa nó.

Khi khai báo phải đặt các biến này ở đầu của
khối lệnh, trước các lệnh gán …
10/04/2015
19
#include <iostream.h>
#include<conio.h>
int main()
Biến cục bộ chương trình
{
Kết quả:
int i=5;
Chương trình sẽ báo lỗi
Biến cục bộ khối lệnh {…}
{
“không biết biến x”.
Vì sao?
int x=10; x+=i
}
cout<<“Gia tri cua x, i la: \n”<<x<<“\n”<<i<“\n”<j;
}
10/04/2015
20
#include <iostream.h>
#include<conio.h>
int x;
Biến toàn cục
Biến cục bộ
void f()
{ int i=5,j=10; x=x+i+j;}
Kết quả:
int main()
Gia tri cua x, i, j la:
Biến cục bộ
{
25
int i=0,j=5;
0
x=10;
5
f();
cout<<“Gia tri cua x, i, j la: \n”<<x<<“\n”<<i<“\n”<j;
}
10/04/2015
21
4. Hằng


Là đại lượng không đổi trong suốt quá trình thực
thi của chương trình
Có các loại hằng như sau:
 Hằng số nguyên
 Hằng số thực
 Hằng ký tự, xâu ký tự
10/04/2015
22
Hằng số nguyên
- Là một giá trị (trong hệ 10) không được thay đổi
trong chương trình.
- Có thể viết theo hệ 16 bằng cách thêm tiền tố 0x
- Hoặc theo cơ số 8 bằng cách thêm tiền tố 0
75
0113
0x4b
// Cơ số 10
// cơ số 8
// cơ số 16
75u // unsigned int
75l // long
75ul // unsigned long
10/04/2015
23
Hằng số thực (dấu phảy động)
Có 2 cách viết:
 Cách 1: dạng thập phân:
Phần nguyên, dấu chấm thập phân và phần
phân
Ví dụ: 214.35 , - 234.34.
 Cách 2: dạng khoa học
Ví dụ : 1.543e7 = 1.543*107 =15430000
1.234E-2=1.234*10-2=0.01234
10/04/2015
24
Hằng ký tự


Là một ký tự riêng biệt được viết trong cặp dấu nháy
đơn (‘’) tương ứng với một giá trị trong bảng mã ASCII.
Bao gồm:
0
1 – 31
32 – 47
48 – 57
58 – 64
65 – 90
91 – 96
97 – 122
123–127
NULL (rỗng)
31 ký tự điều khiển
Các dấu trống ! “ # $ % & ‘ ( ) * + , - . /
Các ký tự từ 0 đến 9
Các dấu : ; < = > ? @
Các chữ in hoa từ A đến Z
Các dấu [ \ ] _ `
Các chữ thường từ a đến z
Các dấu { | } ~ DEL (xóa)
25
Một số mã điều khiển
Ví dụ:
'\n'
'\t'
"Left \t
Right”
"one\ntwo\nthree"

10/04/2015
26
Hằng xâu ký tự

Là một xâu gồm nhiều ký tự được viết trong cặp
dấu nháy đôi (“”)
“Chao ban”
“Nguyen Van Canh”
“Tran Long An”
Chuỗi không chứa ký tự nào gọi là chuỗi rỗng: “”
10/04/2015
27
Định nghĩa hằng

Cú pháp:
#define <tên_hằng> <giá_trị;>
Ví dụ:
#define PI 3.14159265;
#define WIDTH 100;
#define kitu ‘A’;
#define thudo “Ha Noi”;

//thực
//nguyên
//ký tự
//chuỗi ký tự
• Sử dụng:
chuvi = 2 * PI * r;
cout << thudo;
10/04/2015
28
Khai báo hằng

Cú pháp:
const <kiểu_DL> <tên_hằng> = <giá_trị>;

Ví dụ:
const int width = 100;
const char tab = ‘A';
const zip = 124;
const long x=100000;
const float y=5.12;
const zap=5.12;
10/04/2015
Nếu không khai báo
<kieur_DL> thì C++
hiểu hằng zip và zap
có kiểu int zip=124
và zap=5;
Khai báo hằng




Hằng số thực: float, double, long double
 ví dụ: const float x=12.4;
Hằng số nguyên: int, long, short, unsigned long,...
 ví dụ: const long y=100000;
Hằng ký tự: char.
 Ví dụ: const char kt=‘N’;
Hằng xâu (chuỗi) ký tự: char*
 Ví dụ: const char* city=“NEWYORK”;
30
10/04/2015
5. Các lệnh nhập xuất


Phát biểu nhập xuất cin – cout
Định dạng số liệu để nhập - xuất
 Nhập (scan)
 Xuất (printf)
10/04/2015
31
Phát biểu nhập – xuất (cin – cout)

Nhập dữ liệu từ bàn phím cho biến:
cin >> Biến;

Xuất dữ liệu lên màn hình:
cout << “Ban co thich C++ khong? ";
cout << biến;
Chương 3: Các thành phàn cơ bản
32
Ví dụ:


cout << 120;
cout << x;
cout << “Ha "<<" Noi \n";
cout << “Thai Cuc Quyen \n Thieu Lam Tu”
Ha Noi
Thai Cuc Quyen
Thieu Lam Tu
Chương 3: Các thành phàn cơ bản
33
Định dạng số liệu để nhập - xuất
Khi xuất dữ liệu lên màn hình, đôi khi cần định dạng theo yêu
cầu nào đó. C++ cung cấp một số dạng sau:
• 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
Chương 3: Các thành phàn cơ bản
34
Ví dụ:
Tệp tiêu đề
lệnh setw()
 #include <iostream.h>
chừa ra 5 vị trí để
viết số 12 (trống 3
 #include <iomanip.h>
vị trí đầu)



void main()
{
cout <<setw(5)<<12; //ket qua “ 12”
cout <<hex <<12; // ket qua C
cout <<oct <<10; // ket qua 12
cout <<dec <<0x10; // ket qua 16
}
Định dạng số liệu để nhập
scanf(“Định dạng”,&biến)
scanf(“%d”, &a); //đọc vào biến a một giá trị
nguyên từ bàn phím.
scanf(“%f”, &b); //đọc vào biến b một giá trị thực
từ bàn phím.
scanf(“%c”, &c); //đọc vào biến c một ký tự từ
bàn phím.
scanf(“%s”, &d); //đọc vào biến d một chuỗi ký tự
từ bàn phím.
Định dạng số liệu để nhập
scanf(“%f %d %c %s”, a, b, c, d);
Đọc giá trị cho biến a, b, c, d từ bàn phím.
Chương 3: Các thành phàn cơ bản
37
char kt=‘A’;
printf(“Ky
kt lala%c:
cua”,kt);
kt”,kt);
int n=12; tu %c
=>kết
quả hiện
màn ”,n);
hình dòng:
printf(“Gia
tri n lên
la %6d:
Ky
tu A
kt
la
la cua
A ktlên màn hình dòng:
=>kết
quả
hiện
Định dạng số liệu để xuất
printf(“ định dạng ”, Các biểu thức);
Gia tri n la
12
Định dạng
Công dụng
%c
%[n]d
Xuất 1 ký tự có mã ASCII tương ứng
Xuất 1 số nguyên
int n=11; có chiều dài tối đa n
%[n]ld
%[n]u
printf(“Gia tri n la %5o: ”,n);
Xuất 1 số=>kết
nguyên
dài tối
đa n
quảlong
hiện có
lênchiều
màn hình
dòng:
Gia tri n la
Xuất 1 số nguyên
ở hệ1310 không có dấu,
6 vị trí
chiều dài tối đa n 5 vị trí
%[n]o
Xuất 1 số nguyên ở hệ 8 tương ứng không
dấu có chiêu dài tối đa n
Chương 3: Các thành phàn cơ bản
38





float n=12.3456;
printf(“Gia tri n la %6.2f: ”,n);
=>kết quả hiện lên màn hình dòng:
Công
dụng
Gia tri n la 12.35
Định dạng
%[n]x
Xuất 1 số nguyên
hệ 16
tương
6 vị trí, ởphần
thập
ứng không dấu cóphân
chiêu2 dài
vị trítôi đa n.
%[n.m]f
Xuất 1 số thực có chiều dài tối đa
n và làm tròn m chữ số thập phân.
%s
Xuất 1 chuỗi ký tự
%e hoặc %E Xuất 1 số nguyên dạng khoa học
6. Một vài chương trình mẫu



Xuất ra màn hình 1 dòng chữ
Xuất các giá trị nguyên, thực
Tính diện tích hình tròn
10/04/2015
40
Ví dụ: Xuất ra màn hình 1 dòng
chữ
#include <stdio.h>
#include <conio.h>
void main()
{
printf("XIN CHAO MUNG BAN DEN VOI C++");
getch();
Kết quả trên màn hình xuất hiện câu nào?
}
XIN CHAO MUNG BAN DEN VOI C++
“XIN CHAO MUNG BAN DEN VOI C++"
(“XIN CHAO MUNG BAN DEN VOI C++")
Câu thứ nhất
Chương 3: Các thành phàn cơ bản
41
Ví dụ:
include<stdio.h>
void main()
{
int x=1234, i=65;
Gia tri nguyen cua x = 1234
float k=123.4356;
Gia tri thuc cua k = 123.4356
printf(“Gia tri nguyen cua
x=
Sau
khi%d\n”,x);
lam tron k = 123.44
printf(“Gia tri thuc cua k= %f\n”,k);
printf(“Sau khi lam tron k=%.2f”,k,);
}
Chương 3: Các thành phàn cơ bản
42
Màn hình kết quả như sau:
Ví dụ: Tính diện tích hình tròn
Ban kinh R=?10
hang pi:
Dien tichKhai
= bao
314.00
#include <stdio.h>
main()
#define pi 3.14159
{
dt=pi*R*R;
float R, dt; /*khai bao bien*/
printf(“Ban kinh R=? ”);//thong bao
scanf(“%f”, &R); // nhap gia tri vao R
dt=3.14*R*R;//tinh dien tich
printf(“\nDien tich = %7.2f”,dt); //thong bao dien tich
}
Chương 3: Các thành phàn cơ bản
43
hình
kết quả
như sau:
Ví dụ: Tính diệnMàn
tích
hình
tròn
Ban
kinh
R=?10
#include <iostream.h>
main()
Dien tich =314
{
float R, dt; /*khai bao bien*/
cout<<“Ban kinh R=? ”;//thong bao
cin>>R; // nhap gia tri cho R
dt=3.14*R*R;//tinh dien tich
cout<<“\nDien tich ”<<dt; //thong bao dien tich
}
Chương 3: Các thành phàn cơ bản
44