Trường Đại học Khoa học Tự nhiên
Khoa Công nghệ thông tin
1
NHẬP XUẤT VÀ
KỸ THUẬT SINH DỮ LIỆU
Trường Đại học Nha Trang
Khoa Công nghệ Thông tin
Bộ môn Khoa học Máy tính
Nguyễn Thủy Đoan Trang
trangdhnt@gmail.com
KỸ THUẬT LẬP TRÌNH
VC
VC
&
&
BB
BB
2
2
Nội dung
Nhập, xuất
1
Dòng nhập xuất chuẩn
Tập tin
Nạp dữ liệu trực tiếp từ bàn
phím
Sinh dữ liệu nhờ hàm
random
Đọc dữ liệu từ một tập ti
n
Các thao tác trên tập tin
Các kỹ thuật sinh dữ liệu
2
VC
VC
&
&
BB
BB
3
3
Nhập, xuất chuẩn
Các lệnh nhập, xuất trong iostream.h
Xuất:
cout<< <Nội dung cần xuất>;
Trong đó:
<<: được gọi là toán tử xuất.
<Nội dung cần xuất>: có thể là Hằng ký tự,
Hằng xâu ký tự, Biến, Hàm, phương thức định
dạng.
Vd:
cout<< “Sin(x) = ”;
cout<<Sin(x);
VC
VC
&
&
BB
BB
4
4
Nhập, xuất chuẩn
Có thể sử dụng liên tiếp nhiều toán tử xuất trên
một dòng cout.
Vd: cout<<endl<<”Giá trị của a[“<<i<<”] là
“<<a[i]<<“\t”;
Các lệnh cout, cin chỉ thích hợp cho việc nhập
xuất các biến kiểu số. Với các biến kiểu xâu ký tự
thì xâu nhập, xuất phải không chứa dấu cách.
VC
VC
&
&
BB
BB
5
5
Nhập, xuất chuẩn
Nhập:
cin>> <biến>;
Trong đó:
>>: toán tử nhập.
Dòng cin dùng để nhập các giá trị từ bàn phím
vào các biến.
VD:
cout<<”Nhập giá trị của a”; cin>>a;
Có thể dùng liên tiếp nhiều toán tử nhập trên một
dòng cin để nhập giá trị cho nhiều biến.
Vd: cin>>a>>b>>c;
VC
VC
&
&
BB
BB
6
6
Nhập, xuất chuẩn
Bài tập ví dụ: Viết chương trình nhập vào một số thực x, in ra màn
hình giá trị của F(x) = sin2(x) + cos(x) với độ chính xác 2 chữ số
sau dấu phẩy.
#include <conio.h>
#include <math.h>
#include <iostream.h>
void main()
{
clrscr();
float x, F;
cout<<”nhập số thực a “;
cin>>x
cout.precision(2);
cout<<”Giá trị F(“<<x<<”) = “<<sin(x)*sin(x) + cos(x);
getch();
}
VC
VC
&
&
BB
BB
7
7
Nhập, xuất chuẩn
Các lệnh nhập, xuất trong Conio.h
Lệnh xuất:
puts(p);
Trong đó:
p là một con trỏ, trỏ tới một ký tự hoặc hằng xâu ký tự.
Nếu p là biến chứa 1 ký tự thì p phải có kiểu char *,
nếu p là kiểu char thì phải là một mảng kiểu char (char *
p hoặc char p[])
Lệnh puts sẽ đưa các ký tự được con trỏ p trỏ tới ra màn
hình.
Vd: - char * p = “a”;
– puts(p);// đưa ký tự a ra màn hình
– char q[100] = “Ha Noi”;
– puts(q);// đưa Ha Noi ra màn hình.
VC
VC
&
&
BB
BB
8
8
Nhập, xuất chuẩn
Lệnh nhập:
gets(p);
Trong đó:
p là biến con trỏ ký tự,
p phải có kiểu char * .
Nếu p là biến kiểu char thì phải là một biến
mảng kiểu char. (char * p hoặc char p[])
Các lệnh gets, puts thích hợp cho việc nhập xuất
các biến kiểu xâu ký tự.
VC
VC
&
&
BB
BB
9
9
Tập tin
Bước 1:
Include thư viện fstream
và using namespace std; (Visual Stdio 2005)
(và #prama once; (Visual C 6))
Bước 2: Khai báo biến:
file để ghi dữ liệu: ofstream x(tên file);
file để đọc dữ liệu: ifstream x(tên file);
Bước 3: Sử dụng các lệnh Đọc/ghi như đối
với bàn phím/màn hình.
VC
VC
&
&
BB
BB
1
0
1
0
Thao tác với tập tin
Khai báo:
-
Khai báo biến file để ghi dữ liệu:
Tên file: là hằng chuỗi hoặc biến kiểu chuỗi.
-
Vd:Khai báo biến file f để ghi dữ liệu vào file
“output.txt”
ofstream
f(“
output.txt
”);
ofstream < tên biến >(tênfile);
VC
VC
&
&
BB
BB
1
1
1
1
Thao tác với tập tin
-
Khai báo biến file để đọc dữ liệu:
Tên file: là hằng chuỗi hoặc biến kiểu chuỗi.
-
Vd:Khai báo biến file f để đọc dữ liệu từ file
“input.txt”
ifstream
f(“
input.txt
”);
ifstream < tên biến >(tênfile);
VC
VC
&
&
BB
BB
1
2
1
2
Thao tác với tập tin
Bài tập tại lớp:
1.
Viết chương trình:
a)
Nhập số nguyên a
b)
Ghi dữ liệu từ biến nguyên a vào file
songuyen.txt
c)
Đọc dữ liệu từ file songuyen.txt ra biến
nguyên b
d)
Xuất giá trị của b ra màn hình
VC
VC
&
&
BB
BB
1
3
1
3
Thao tác với tập tin
2. Viết chương trình:
a)
Nhập 1 dãy số nguyên vào mảng a
b)
Ghi dữ liệu a vào file dayso.txt
c)
Đọc dữ liệu từ file dayso.txt ra
mảng b
d)
Xuất b ra màn hình
VC
VC
&
&
BB
BB
1
4
1
4
Nạp dữ liệu trực tiếp từ bàn phím
Phương thức này được dùng khi dữ liệu
không nhiều.
VC
VC
&
&
BB
BB
1
5
1
5
Sinh dữ liệu nhờ hàm random
Phương thức này nhanh chóng và tiện lợi, nếu
khéo tổ chức có thể sinh ngẫu nhiên được các dữ
liệu đáp ứng được một số điều kiện định trước.
Bài 1. Mảng ngẫu nhiên: Sinh ngẫu nhiên n số
nguyên không âm cho mảng nguyên a.
Bài 2. Sinh ngẫu nhiên theo khoảng: Sinh ngẫu
nhiên n phần tử nằm trong khoảng -M..M; M > 0
cho mảng nguyên a.
Bài 3. Sinh ngẫu nhiên tăng : Sinh ngẫu nhiên n
phần tử được sắp không giảm cho mảng nguyên
a.
VC
VC
&
&
BB
BB
1
6
1
6
Đọc dữ liệu từ một tập tin
Phương thức này khá tiện lợi khi phải
chuẩn bị trước những dữ liệu phức tạp.
Kết quả thực hiện chương trình cũng
thường được thông báo trực tiếp trên màn
hình hoặc ghi vào một tệp văn bản.
VC
VC
&
&
BB
BB
1
7
1
7
Bài tập
1.
Viết chương trình tạo tập tin văn bản chứa
10000 số nguyên bất kỳ ghi vào file
SONGUYEN.INP. Mỗi dòng 10 số, sau đó viết
chương trình đọc fileSONGUYEN.INP, sắp xếp
theo thứ tự tăng dần và lưu kết quả vào file
SONGUYEN.OUT.
2.
Viết chương trình tạo một file chứa các số
nguyên có tên SONGUYEN.INP. Sau đó đọc file
SONGUYEN.INP và ghi các số chẵn vào file
SOCHAN.OUT và những số lẻ vào file SOLE.OUT.
VC
VC
&
&
BB
BB
1
8
1
8
Bài tập
1.
Viết chương trình tạo tập tin văn bản chứa 10000 số
nguyên bất kỳ ghi vào file SONGUYEN.INP. Mỗi dòng
10 số, sau đó viết chương trình đọc
fileSONGUYEN.INP, sắp xếp theo thứ tự tăng dần và
lưu kết quả vào file SONGUYEN.OUT.
2.
Viết chương trình tạo một file chứa các số nguyên có
tên SONGUYEN.INP. Sau đó đọc file SONGUYEN.INP
và ghi các số chẵn vào file SOCHAN.OUT và những
số lẻ vào file SOLE.OUT.
3.
Viết chương trình ghi vào tập tin SOCHAN.DAT các
số nguyên chẵn từ 0 đến 100.
4.
Viết chương trình đọc tập tin SOCHAN.DAT và xuất
ra màn hình, mỗi dòng 30 số.
VC
VC
&
&
BB
BB
1
9
1
9
Bài tập
5.
Cho mảng các số nguyên , hãy sắp xếp mảng
theo thứ tự tăng dần.
Dữ liệu vào : tập tin văn bản ARRAY.INP gồm 2
dòng:
- Dòng 1 chứa số nguyên n ( n < = 100 ).
- Dòng 2 chứa n số nguyên.
Kết quả : Đưa ra tập tin văn bản ARRAY.OUT gồm
hai dòng:
- Dòng 1 chứa n phần tử của mảng các số
nguyên.
- Dòng 2 chứa n số nguyên được xếp tăng dần.
VC
VC
&
&
BB
BB
2
0
2
0
Bài tập
6. Viết chương trình tạo file văn bản có tên là
“MATRIX.INP” có cấu trúc như sau:
- Dòng đầu ghi hai số m, n.
- Trong m dòng tiếp theo mỗi dòng ghi n số và
các số các nhau một khoảng cách.
Hãy kiểm tra xem trong file đó có bao nhiêu số
nguyên tố. Kết quả cần ghi vào file
“MATRIX.OUT” có nội dung là một số nguyên đó
là số lượng các số nguyên tố trong file
“MATRIX.INP”.