Đề cương bồi dưỡng HSG môn Tin học - Năm học 2015-2016

Sự khác nhau giữa WHILE DO và REPEATE UNTIL và FOR .TO.DO

Vòng lặp FOR là vòng lặp xác định trước số lần lặp. Trừ khi cần thiết, nói chung không nên can thiệp vào biến đếm vòng lặp.

Cả hai vòng lặp While và Repeat đều là vòng lặp không xác định trước số lần lặp. Cần phải có câu lệnh thay đổi giá trị biến điều khiển vòng lặp để có thể thoát ra khỏi vòng lặp.

Trong vòng lệnh WHILE DO thì điều kiện sẽ được kiểm tra trước, nếu điều kiện đúng thì thực hiện công việc. Còn trong lệnh REPEAT UNTIL thì ngược lại, công việc được làm trước rồi mới kiểm tra điều kiện, nếu điều kiện đúng thì vòng lặp kết thúc. Như vậy đối với vòng lặp REPEAT bao giờ thân vòng lặp cũng được thực hiện ít nhất một lần, trong khi thân vòng lặp WHILE có thể không được thực hiện lần nào. Tuỳ những trường hợp khác nhau mà ta lựa chọn loại vòng lặp cho thích hợp. Nếu dùng 2 lệnh này để giải cùng một bài toán, cùng một giải thuật như nhau thì điều kiện sau WHILE và điều kiện sau UNTIL là phủ định nhau.

 

doc19 trang | Chia sẻ: xuannguyen98 | Lượt xem: 766 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề cương bồi dưỡng HSG môn Tin học - Năm học 2015-2016, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
	Trả về ex
STR(x,S): 	Ðổi giá trị kiểu số x sang dạng chuỗi S.
INSERT(S,T,vt): 	Chèn chuoi S vào chuoi T vtrí vt.
DELETE(S,P,L): 	Xoá L ký tự từ  vtrí P ra khỏi
Break ;	Kết thúc vòng lặp
COPY(S,P,L): 	Trích chuỗi S một chuỗi con dài L ký tự bắt đầu từ  vtrí  P.
POS(X,S): Cho vtrí bắt đầu của chuỗi con X trong S. Nêu X không thuộc S thì hàm POS cho giá trị 0.                                   
3. Kiểu ký tự
- Từ khoá: CHAR. 
- Kích thước: 1 byte. 
- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:
+ Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A', '0'.
+ Dùng hàm CHR(n) (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ CHR(65) biễu diễn ký tự 'A'.
+ Dùng ký hiệu #n (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ #65.
- Các phép toán: =, >, >=, . 
* Các hàm trên kiểu ký tự:
- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch. Ví dụ: UPCASE('a') = 'A'.
- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự ch. Ví dụ ORD('A')=65.
- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n. Ví dụ: CHR(65)='A'.
- PRED(ch): cho ký tự đứng trước ký tự ch. Ví dụ: PRED('B')='A'.
- SUCC(ch): cho ký tự đứng sau ký tự ch. Ví dụ: SUCC('A')='B'.
II. KHAI BÁO HẰNG
- Hằng là một đại lượng có giá trị không thay đổi trong suốt chương trình. 
- Cú pháp:
	CONST	 = ;
	: =;
 Ví dụ:
	Const	Max = 100; 
	Cosnt	A: array[1..5] of integer = (1,5,10,20,50);
III. KHAI BÁO BIẾN
- Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực hiện chương trình. 
- Cú pháp:
	VAR [,,...] : ;
Ví dụ:
	VAR	x, y: Real; 	{Khai báo hai biến x, y có kiểu là Real}
	a, b: Integer; {Khai báo hai biến a, b có kiểu integer}
- Cú pháp:khai báo biến mảng:
	VAR : array[..] of ;
* Trong đó:
+ CSĐ và CSC là 2 số nguyên
+ CSĐ ≤ CSC.
+ Kiểu dữ liệu có thể là số nguyên hay số thực..
Ví dụ:
	VAR a:array[1..100] of real;	{Tên mảng là a chứa 100 phần tử số thực}
IV. ĐỊNH NGHĨA KIỂU
- Ngoài các kiểu dữ liệu do Pascal cung cấp, ta có thể định nghĩa các kiểu dữ liệu mới dựa trên các kiểu dữ liệu đã có. 
- Cú pháp:
	TYPE	 = ;
	VAR :;
Ví dụ:
	TYPE	Sothuc = Real;
	Tuoi = 1..100;
	ThuNgay = (Hai,Ba,Tu, Nam, Sau, Bay, CN)
	VAR	x :Sothuc;
	tt : Tuoi;
	Day: ThuNgay;
V. BIỂU THỨC
	Biểu thức (expression) là công thức tính toán mà trong đó bao gồm các phép toán, các hằng, các biến, các hàm và các dấu ngoặc đơn.
Ví dụ: 	(x +sin(y))/(5-2*x)	biểu thức số học
	(x+4)*2 = (8+y)	biểu thức logic
	Trong một biểu thức, thứ tự ưu tiên của các phép toán được liệt kê theo thứ tự sau:
Dấu ngoặc ( )
Phép toán một ngôi (NOT, -).
Phép toán *, /, DIV, MOD, AND.
Phép toán +, -, OR, XOR
Phép toán so sánh =, , =, 
VI. CÂU LỆNH
6.1. Câu lệnh đơn giản
- Câu lệnh gán (:=): 	:=;
6.2. Câu lệnh có cấu trúc
- Câu lệnh ghép: BEGIN ... END;
- Các cấu trúc điều khiển: IF THEN,	FOR...DO, 	WHILE...DO
* Cú pháp của câu lệnh điều kiện dạng thiếu và câu lệnh điều kiện dạng đủ :
- Dạng thiếu:	If then ;
- Dạng đủ: 	If then Else ;
* Cú pháp câu lệnh lặp với số lần biết trước:
For := to do ;
- Trong đó:
+ For, To, Do là các từ khóa.
+ Biến đếm là biến đơn có kiểu nguyên.
+ Giá trị đầu và giá trị cuối là những giá trị nguyên, giá trị đầu nhỏ hơn hoặc bằng giá trị cuối.
+ Câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép.
+ Số vòng lặp là biết trước và bằng: giá trị cuối - giá trị đầu + 1.
* Cú pháp câu lệnh lặp với số lần chưa biết trước: : While do ;
+ Trong đó:
- Điều kiện thường là một phép so sánh.
- Câu lệnh có thể dơn hay nghép.
+ Hoạt động:
- Bước 1: Kiểm tra điều kiện.
- Bước 2: Nếu ĐK sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1. 
* Cú pháp: 	REPEAT
	UNTIL 
Hoạt động: Vào lệnh sẽ thực thi công việc, sau đó kiểm tra điều kiện, nếu điều kiện sai thì tiếp tục thực hiện công việc sau đó kiểm tra điều kiện. Cứ tiếp tục như thế cho tới khi nào điều kiện đúng thì kết thúc.
* Chú ý : 
Sự khác nhau giữa WHILE DO và REPEATE UNTIL và FOR ..TO..DO
Vòng lặp FOR là vòng lặp xác định trước số lần lặp. Trừ khi cần thiết, nói chung không nên can thiệp vào biến đếm vòng lặp.
Cả hai vòng lặp While và Repeat đều là vòng lặp không xác định trước số lần lặp. Cần phải có câu lệnh thay đổi giá trị biến điều khiển vòng lặp để có thể thoát ra khỏi vòng lặp.
Trong vòng lệnh WHILE  DO thì điều kiện sẽ được kiểm tra trước, nếu điều kiện đúng thì thực hiện công việc. Còn trong lệnh REPEAT  UNTIL thì ngược lại, công việc được làm trước rồi mới kiểm tra điều kiện, nếu điều kiện đúng thì vòng lặp kết thúc. Như vậy đối với vòng lặp REPEAT bao giờ thân vòng lặp cũng được thực hiện ít nhất một lần, trong khi thân vòng lặp WHILE có thể không được thực hiện lần nào. Tuỳ những trường hợp khác nhau mà ta lựa chọn loại vòng lặp cho thích hợp. Nếu dùng 2 lệnh này để giải cùng một bài toán, cùng một giải thuật như nhau thì điều kiện sau WHILE và điều kiện sau UNTIL là phủ định nhau.
. Lệnh cấu trúc lựa chọn:
a. Dạng không đầy đủ:
	Cú pháp: 	CASE OF
	Hằng 1a, 1b,, 1x: ;
	Hằng 2a, 2b,, 2x: ;
	 Hằng na, nb,, nx: ;
	END;
Hoạt động: Trước hết kiểm tra giá trị của biến có bằng một trong các hằng 1a, 1b,, 1x hay không. Nếu đúng thì thực hiện công việc 1, rồi kết thúc lệnh (thực hiện tiếp các lệnh sau END; nếu có). Nếu không, thì kiểm tra giá trị của biến có bằng một trong các hằng 2a, 2b,, 2x hay không. Nếu đúng thì thực hiện công việc 2, rồi kết thúc lệnh (thực hiện tiếp các lệnh sau END). Nếu không thì cứ tiếp tục kiểm tra như vậy. Nếu giá trị của biến không bằng bất cứ hằng nào từ 1a đến nx thì câu lệnh CASE kết thúc mà không làm gì cả.
Ví dụ: Viết chương trình nhập vào một tháng, sau đó in lên màn hình tháng đó có bao nhiêu ngày.
Var T: Integer;
Begin
	Write( ‘Nhập vào một tháng: ’); Readln(T);
	CASE T OF
	1, 3, 5, 7, 8, 10, 12: 	Write( ‘Tháng có 31 ngày.’);
	4, 6, 9, 11: 	Write( ‘Tháng có 30 ngày.’);
	2: 	Write( ‘Tháng có 28 (nhuần 29) ngày.’);
	End;
	Readln;
End.
b. Dạng đầy đủ:
	Cú pháp: 	CASE OF
	Hằng 1a, 1b,, 1x: ;
	Hằng 2a, 2b,, 2x: ;
	Hằng na, nb,, nx: ;
	ELSE
	END;
Hoạt động: Khác dạng không đầy đủ ở chỗ nếu giá trị của biến không bằng bất cứ hằng nào từ 1a đến nx thì câu lệnh CASE sẽ thực thi công việc N+1.
Ví dụ: Viết chương trình nhập vào một tháng, sau đó in lên màn hình tháng đó có bao nhiêu ngày.
Var T: Integer;
Begin
	Write( ‘Nhập vào một tháng: ’); Readln(T);
	CASE T OF
	1, 3, 5, 7, 8, 10, 12: Write( ‘Tháng có 31 ngày.’ );
	4, 6, 9, 11: Write( ‘Tháng có 30 ngày.’ );
	2: Write( ‘Tháng có 28 (năm nhuần 29) ngày.’ );
	ELSE
	Write( ‘Tháng sai. Phải nhập số từ 1 đến 12.’ );
	End;
	Readln;
End.
Chú ý: Biến sau từ khoá CASE phải là biến đếm được.
6.4. Các lệnh xuất nhập dữ liệu
6.4.1. Lệnh xuất dữ liệu
	Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau:
	(1)	WRITE( , ,...);
	(2)	WRITELN( , ,..);
	(3)	WRITELN;
	Các thủ tục trên có chức năng như sau:
Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ không xuống dòng.
Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ xuống đầu dòng tiếp theo.
Xuất ra màn hình một dòng trống.
	Các tham số có thể là các hằng, biến, biểu thức. Nếu có nhiều tham số trong câu lệnh thì các tham số phải được phân cách nhau bởi dấu phẩy.
	Khi sử dụng lệnh WRITE/WRITELN, ta có hai cách viết: không qui cách và có qui cách:
- Viết không qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên trái. Nếu dữ liệu là số thực thì sẽ được in ra dưới dạng biểu diễn khoa học.
Ví dụ: 	WRITELN(x); WRITE(sin(3*x));
- Viết có qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên phải.
Ví dụ:
	WRITELN(x:5); WRITE(sin(13*x):5:2);
Câu lệnh
Kết quả trên màn hình
Writeln('Hello');
Writeln('Hello':10);
Writeln(500);
Writeln(500:5);
Hello
 Hello
500
 500
6.4.2. Nhập dữ liệu
	Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ các biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây:
	READLN( ,,...,);
Chú ý: Khi gặp câu lệnh READLN; (không có tham số), chương trình sẽ dừng lại chờ người sử dụng nhấn phím ENTER mới chạy tiếp.
* BÀI TẬP MẪU:
Bài tập 2.1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh đó, sau đó tính và in ra màn hình diện tích của tam giác.
Ý tưởng: Công thức tính diện tích tam giác: S = với a,b là độ dài 2 cạnh và q là góc kẹp giữa 2 cạnh a và b.
Program Tinh_dien_tich_tam_giac;
Uses crt;
Var a,b,goc,dientich: Real;
Begin
Clrscr;
	Write('Nhap vao do dai canh thu nhat: '); Readln(a);
	Write('Nhap vao do dai canh thu hai: '); Readln(b);
 	Write('Nhap vao goc giua hai canh: '); Readln(goc);
	Dientich:=a*b*sin(goc)/2;
	Writeln('Dien tich cua tam giac la: ',Dientich:0:2);
Readln;
End.
Bài tập 2.2:	Viết chương trình nhập vào 2 số a, b. Sau đó hoán đổi giá trị của 2 số đó:
a/ Cho phép dùng biến trung gian.
Program Swap;
Uses crt;
Var	a,b,tam: Integer;
Begin
Clrscr;
	Write('Nhap vao a= '); Readln(a);
	Write('Nhap vao b= '); Readln(b);
	tam:=a; 	{tam lấy giá trị của a}
	a:=b; 	{a lấy giá trị của b}
	b:=tam;	{b lấy lại giá trị của tam}
	Writeln('a = ',a,’ b = ‘,b);
	Readln;
End.
b/ Không được phép dùng biến trung gian.
Program Swap;
Ues crt;
Var	a,b: Integer;
Begin
Clrscr;
	Write('Nhap vao a= '); Readln(a);
	Write('Nhap vao b= '); Readln(b);
	a:=a+b; 	{a lấy tổng giá trị của a+b}
	b:=a-b; 	{b lấy giá trị của a}
	a:=a-b;	{a lấy lại giá trị của b}
	Writeln('a = ',a,’ b = ‘,b);
	Readln;
End.
Bài 2.3 : Viết chương trình tính diện tích của hình tròn.
Program Vidu2;
Uses crt;
Const PI=3.14;
Var R,S:Real;
Begin
Clrscr;
	R:=10; 	{Bán kính đường tròn}
	S:=R*R*PI; 	{Diện tích hình tròn}
	Writeln(‘Dien tich hinh tron = ‘, S:0:2); { In ra màn hình }
Readln;
End.
 =================================================================
BÀI TẬP TỰ GIẢI
Bài tập 1 : Nhập vào 1 nguyên dương N. In ra tổng các số chẵn từ 1 đến N.
Bài tập 2 : Nhập vào 1 số nguyên N . In ra tổng các số lẻ từ 1 --> N .
Bài tập 3: Lập trình tính tổng : A = 1 + 1/2 + 1/3 +  + 1/n (ở đây n là số tự nhiên được nhập vào từ bàn phím).
Bài tập 4 : Viết chương trình tính: 1+1/3+1/5+1/7++1/2n+1 ( với n là số tự nhiên được nhập vào từ bàn phím).
Bài tập 5 : Tính A=(1+2+3+...+N)/(2*4*6*...*M). Trong đó: M , N là số tự nhiên nhập từ bàn phím.
Bài tập 6: Nhập số nguyên dương n in ra tổng các số nguyên dương là bội của 3 hoặc 5 từ 1 đến n.
Bài tập 7: Tính hàm lũy thừa an , ở đây a thực và n tự nhiên được nhập vào từ bàn phím.
Bài tập 8: Tính S=13+23+33++n3, trong đó n nhập từ bàn phím.
Bài tập 9: Viết chương trình tính n! (n!=1.2.3.  .n)
Ví dụ: n=3. Kết quả: 1*2*3=6
Bài tập 10: Viết chương trình tính tổng S=1+1/2!+1/3!++1/n! (n!=1.2.3.  .n)
Bài tập 11 : Viết chương trình Pascal tính tổng bình phương các số lẻ từ 1 đến n (n là số tự nhiên nhập từ bàn phím).
Bài tập 12: Số chính phương là số có căn bậc 2 là 1 số nguyên.
VD:  số 9 là số chính phương vì căn bậc 2 của 9 bằng 3.
Lập trình nhập 1 số nguyên dương n từ bàn phím kiểm tra xem số đó có là số chính phương không?
Bài tập 13: Viết chương trình tính tổng các ước thực sự của n, n là số tự nhiên nhập từ bàn phím (ước thật sự là ước trừ đi 1 và chính nó). Ví dụ: Ước thật sự của 6 là 2,3. 
Bài tập14:: Số hoàn hảo là số mà có tổng các ước của nó không kể nó bằng chính nó.
VD: số 28 có các ước là: 1 2 4 7 14
số 6 có các ước là: 1 2 3
Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem số đó có là số hoàn hảo không?
Bài tập 15: Viết chương trình lần lượt in các bảng cửu chương từ 2 đến 9.
Bài tập 16: Viết chương trình nhập hai số thực. Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó.
 Nếu là “+” , in kết quả của tổng lên màn hình .
 Nếu là “-” , in kết quả của hiệu lên màn hình .
 Nếu là “/” , in kết quả của thương lên màn hình .
Bài tập 17: Viết một chương trình tính tổng: S=
Bài tập 18: Viết chương trình in ra màn hình các số từ x đến y là số chẵn và chia hết cho 3. với x, y nhập từ bàn phím? Đếm xem có tất cả bao nhiêu số?
Input: Số nguyên x và y (x<y).
Output: Các số chẵn chia hết cho 3 trong phạm vi từ x đến y và đếm có bao nhiêu số.
Bài tập 19: Lập chương trình nhập vào 3 số dương rồi thực hiện :
+ Kiểm tra 3 số đó có là 3 cạnh của một tam giác không?
+ Tính chu vi, diện tích, 3 đường cao của tam giác, ba đường trung tuyến, tâm đường tròn ngoại tiếp tam giác (diện tích được tính theo công thức S = với p = (a+b+c)).
+ Cho biết tam giác đó là tam giác cân hay đều hay vuông hay thường.
Bài tập 20: Nhập số nguyên dương n và in ra tổng các chữ số của n.
Ví dụ: n = 156. Tổng các chữ số của 156 là 12.
Bài tập 21: Viết chương trình nhập vào một số nguyên dương, sau đó cho biết:
a/ Số vừa nhập có mấy chữ số.
b/ Tổng các chữ số bằng bao nhiêu.
c/ In số đảo ngược của số vưa nhập. 
VD: số 123 có 3 chữ số, tổng các chữ số bằng 6, số đảo ngược là 321.
Bài tập 22: 
- Phép toán chia hết là phép toán có số dư bằng 0.
- Hãy viết chương trình, nhập vào số nguyên dương x (với 10 < x < 2011). Với y = x2+ 2011, kiểm tra và thông báo ra mà hình xem y có chia hết cho 5 hay không?
Ví dụ :
- Nhap vao so nguyen duong : 15
Phep toan tren khong chia het cho 5.
- Nhap vao so nguyen duong : 17
Phep toan tren chia het cho 5.
Bài tập 23: Nhập vào 1 số tự nhiên N với (0 < N ≤ 65535).
Hãy cho biết chữ số lớn nhất của số tự nhiên vừa nhập.
Hãy in đảo ngược số N.
Ví dụ: N=6548
	Chữ số lớn nhất là: 8
	Số in ngược là: 8456
Bài tập 24: Viết chương trình cho biết chữ số hàng trăm, hàng chục, hàng đơn vị của một số có ba chữ số. Ví dụ khi nhập số 357 thì máy in ra:
- Chữ số hàng trăm: 3.
- Chữ số hàng chục: 5.
- Chữ số hàng đơn vị: 7.
Bài tập 25: Viết chương trình nhập vào một số nguyên dương n, cho biết:
a/ n có bao nhiêu số lẻ.
b/ Tổng các số lẻ của n bằng bao nhiêu?
Ví dụ:
	Nhập n=123
n có 2 số lẻ.
Tổng các số lẻ của 123 là 4.
Bài tập 26: Viết chương trình nhập vào một số tự nhiên n (n< 1000) và xác định:
	- n có bao nhiêu chữ số.
	- Tổng các chữ số của n.
	- Chữ số đầu tiên bên trái của n. 
Ví dụ: 	Nhap vao so nguyen: 254
	254 la so co 3 chu so.
 254 co tong cac chu so la 11
	254 co chu so dau tien ben trai la 2
Bài tập 27: Tìm tất cả các số tự nhiên có 3 chữ số, tổng các chữ số bằng 20 và chia cho 6 dư 2.
Ví dụ: 398, 488, 578, 
Bài tập 28: Cho số tự nhiên n, tìm các số tự nhiên x,y,z sao cho: 
Ví dụ: n=36. Các số cần tìm là: x=1, y=2, z=3.
Bài tập 29: Tìm các số trong khoảng từ 0 đến 999 bằng tổng lập phương các chữ số của nó (những số này được gọi là số Amstrong)
Ví dụ 153 là số Amstrong vì 153= 13 + 53 + 33
Bài 30: Nhập 3 loại tiền và số tiền cần đổi. Hãy tìm tất cả các tổ hợp có được của 3 loại tiền trên cho số tiền vừa nhập.
Bài tập 31:	
	Trăm trâu trăm cỏ
	Trâu đứng ăn năm
	Trâu nằm ăn ba
	Trâu già ba con một bó.
Hỏi có bao nhiêu con mỗi loại? 
Bài tập 32: Lập trình giải bài toán cố sau
Vừa gà vừa chó
Bó lại cho tròn
Ba mưoi sáu con
Một trăm chân chẵn
Bài tập 33: Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó, ngoại trừ 0 và 1.
Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem nó có phải là số nguyên tố
không?
Bài tập 34: Nhập 1 số nguyên dương n <1000 cho biết có bao nhiêu số nguyên tố từ 0 đến n.
Bài tập 35: Viết chương trình Pascal phân tích N thành các thừa số nguyên tố.
Bài tập 36: Viết chương trình tìm ước chung lớn nhất (UCLN) của hai số với yêu cầu sử dụng thuật toán Euclid.
Thuật toán Euclid: Nếu a chia hết cho b (a chia b dư 0) thì UCLN(a,b) bằng b
 Nếu a chia b dư r thì UCLN(a,b) = UCLN(b,r).
Bài tập 37: Nhập vào 1 dãy số nguyên, đếm có bao nhiêu phần tử là số nguyên tố?
Bài tập 38: Viết chương trình cho phép thực hiện rút gọn phân số.
Hướng dẫn:
- Tìm UCLN của tử số và mẫu số.
- Chia tử và mẫu của phân số cho UCLN vừa tìm được.
Bài tập 39: Nhập vào một số nguyên dương n.
a/ Phân tích n thành tích các thừa số nguyên tố.
b/ Nếu n là số nguyên tố thì thông báo n là số nguyên tố.
Bài tập 40: Viết chương trình nhập một dãy số tối đa 100 số, sau đó in ra màn hình các số khác nhau theo thứ tự tăng dần. Ví dụ nhập vào 6 số: 12; 45; 15; 12; 45; 16. Ta có đáp số là: “12; 15; 16; 45”. 
Bài tập 41: Viết chương trình nhập một dãy số tối đa 100 số, sau đó in ra màn hình các số khác nhau theo thứ tự giảm dần. Ví dụ nhập vào 6 số: 12; 45; 15; 12; 45; 16. Ta có đáp số là: “45; 16; 15; 12”. 
Bài tập 42:	Nhập N số bất kì. Đếm các số lớn hơn 10 và nhỏ hơn 20 và tính tổng của chúng . Ví dụ: Nhap 12, 10, 18, 20, 9	Trả lời: Co 2 so lon hon 10 va nho hon 20. 
Bài tập 43: Viết chương trình tìm giá trị lớn nhất, giá trị nhỏ nhất, giá trị trung bình cộng của một dãy số nguyên cho trước. Độ dài của dãy số dược nhập từ bàn phím. 
Bài tập 44: Nhập vào 1 dãy số thực, tìm xem có bao nhiêu phần tử là số dương, số âm và số không.
Bài tập 45: Nhập vào 1 dãy số nguyên và nhập 1 số x, tìm xem có bao nhiêu phần tử giống x? Ở vị trí nào? Kết quả in ra màn hình.
Bài tập 46: Nhập vào 1 dãy số nguyên, in ra màn hình phần tử có giá trị tuyệt đối lớn nhất (cho biết hàm abs là hàm lấy giá trị tuyệt đối).
Bài tập 47: Viết chương trình nhập n số, xoá số thứ k trong n số vừa nhập.In ra n-1 số còn lại.
n= 10 (Nhập 10 phần tử)
Ví dụ: Nhập 2, 3, 4, 5, 6, 8, 7, 6, 5, 4.
k= 8 (Xoá phần tử thứ 8).
In ra: 2, 3, 4, 5, 6, 8, 7, 5, 4.
* Chú ý: Xoá phần tử k bằng cách ghi đè phần tử thứ k+1 lên nó.
Bài tập 48:	Viết chương trình cho phép nhập nhập một dãy gồm n số nguyên. Nhập thêm một số vào vị trí thứ k của dãy số trên.
Ví dụ: Nhập 2, 3, 4, 5, 6, 8, 7.
	Nhập phần tử cần thêm : -8 vào vị trí thứ 3
In ra: 2, 3, -8, 4, 5, 6, 8, 7.
* Chú ý:
- Dời các phần tử từ vị trí k về sau một bước.
- Nhập giá trị cần chèn vào vị trí k.
Bài tập 49: Nhập vào một dãy n số thực. Tính:
a) Trung bình cộng các phần tử dương.
b) Tìm và chỉ ra vị trí của các phần tử nhỏ nhất và lớn nhất của dãy.
c) Tính: a[1]+a[2]2++a[10]10.
Ví dụ:
	Nhập dãy số: 	5	1	-8	0	3
	Trả lời: 	TBC các phần tử dương là: 3
	Vị trí của phần tử nhỏ nhất là: 3
	Vị trí của phần tử lớn nhất là: 1
Bài tập 50: Viết chương trình nhập vào một mảng số nguyên, tìm phần tử nhỏ nhất rồi hoán vị nó với phần tử thứ nhất.
Ví dụ:
Nhập các phần tử : 5	3	4	2	3
Mảng cần tìm là: 2	3	4	5	3	
Bài tập 51: Viết chương trình cho phép tính tổng của nhiều số (Chưa biết bao nhiêu số). Nhập số 0 để kết thúc quá trình nhập.
Bài tập 52: Tìm các số nguyên a,b trong đoạn 1..100 sao cho a2+b2 là số chính phương.
Ví dụ: a=3; b=4. Ta có: a2=9; b2=16; a2 + b2 = 25 = 52 là số chính phương.
Bài tập 53: Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào có bao nhiêu nguyên âm và bao nhiêu kí tự số.
Bài tập 54: Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào có đối xứng hay không?
Ví dụ:
	- Nhập xâu: abvab	Trả lời không đối xứng.
	- Nhập xâu: abvba, abba	Trả lời đối xứng.
Bài tập 55: Nhập vào 1 xâu kí tự sau đó đảo ngược các kí tự vừa nhập.
Ví dụ:	Nhập xâu: asdg	Trả lời: gdas
Bài tập 56: Viết chương trình nhập một xâu kí tự và biến đổi chúng thành toàn chữ in hoa. 
Bài tập 57: Viết chương trình xoá các dấu cách thừa trong một xâu ký tự (Giữa hai từ chỉ có một dấu cách.
Ví dụ: le nho duyet -> le nho duyet
Bài tập 58: Viết chương trình xoá các dấu cách thừa trong một xâu ký tự (Giữa hai từ chỉ có một dấu cách) và đổi ký tự đầu từ thành chữ in hoa.
Ví dụ: le nho duyet -> Le Nho Duyet
Bài tập 59: Nhập vào một xâu kí tự, cho biết xâu đó có bao nhiêu từ.
Bài tập 60: Hãy thay tất cả các chuỗi ‘dien toan’ bằng chuỗi ‘tin hoc’ trong một chuỗi cho trước.
* Lưu ý: Ta dùng pos để tìm chuỗi ‘dien toan’, dùng delete để xoá nó khỏi chuỗi và dùng insert để chèn vào vị trí đó chuỗi ‘tin hoc’.
Bài tập 61: Hãy viết chương trình cộng và nhân hai phân số. Yêu cầu kết quả là phân số tối giản.
Bài tập 62: Nhập 2 số tự nhiên a, b rồi tìm các ước của a nguyên tố cùng nhau với b.
* Lưu ý: Hai số được gọi là nguyên tố cùng nhau nếu UCLN của chúng bằng 1. Như vậy trong chương trình này ta sẽ cần hàm UCLN. Việc nhập sẽ thực hiện kiểm tra điều kiện q, p không âm.
Bài tập 63: Tìm các số tự nh

File đính kèm:

  • docDe cuong tin hoc tre2015-2016.doc