Ôn tập chương IV
Chia sẻ bởi Uống Phải Say |
Ngày 10/05/2019 |
44
Chia sẻ tài liệu: Ôn tập chương IV thuộc Tin học 11
Nội dung tài liệu:
Chào mừng các thầy cô
tới dự giờ lớp 11A8
GV: Lê Thị Thu Hằng
THPT Gia Bình số 1 – Bắc Ninh
[email protected]
ÔN TẬP CHƯƠNG IV
Kiểu dữ liệu có cấu trúc
Câu 1.
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau:
S:=0;
For i:= 1 to n do S:=S+ A[i];
A. Tính tổng các phần tử của mảng một chiều;
B. In ra màn hình mảng A;
C. Đếm số phần tử của mảng A;
D. Không thực hiện việc nào trong 3 việc trên;
Câu 2.
Trong ngôn ngữ lập trình Pascal, chương trình sau thực hiện công việc gì?
X:= length(s);
For i:=x downto 1 do
If S[i] =’ ‘ then delete(s,i,1); (‘’ là khoảng trắng, dấu cách)
A. Xóa dấu cách(khoảng trắng) đầu tiên trong xâu ký tự S;
B. Xóa dấu cách(khoảng trắng) thừa trong xâu ký tự S;
C. Xóa dấu cách(khoảng trắng) tại vị trí cuối cùng trong xâu ký tự S;
D. Xóa mọi dấu cách(khoảng trắng) trong xâu ký tự S;
Câu 3.
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì?
S1:=’anh’; S2:=’em’; i:=Pos(s2,s);
While i<> 0 do
Begin
Delete(s,i,2);
Insert(s1,s,i);
i:=pos(s2,s);
End;
A. Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’;
B. Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’;
C. Thay toàn bộ cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’;
D. Thay toàn bộ cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’;
Câu 4.
Trong ngôn ngữ lập trình Pascal sau khi thực hiện xong đoạn chương trình biến Found có giá trị là gì?
(s là biến xâu ký tự)
Found:=0; x:=length(s);
For i:=1 to x div 2 do
If s[i] <> s[x-i+1] then fuond:=1;
A. Found = 0 nếu s là xâu đối xứng;
B. Found = 0 nếu s là xâu không đối xứng;
C. Found = 1 nếu s là xâu đối xứng;
D. Found không có giá trị gì;
Xác định bài toán:
Input: Số nguyên dương N(N<=100),
Dãy số A1,A2,…,An.
Output: Dãy A là cấp số cộng hay không là cấp số cộng.
? Dãy A là cấp số cộng khi nào
Dãy A là cấp số cộng khi và chỉ khi A2-A1=A3-A2=…=An-An-1
Bài 5(SGK-T79)
Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2,….,An có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết dãy A có phải là cấp số cộng hay không và thông báo kết quả ra màn hình.
Bài tập kiểu mảng
Ví dụ:
- Dãy là cấp số cộng: 1 3 5 7 9…..
- Dãy không là cấp số cộng:1 3 4 6 7…
Ý tưởng thuật toán:
Dùng biến d lưu trữ khoảng cách A2 và A1. Ta có d=A2 – A1
Tính khoảng cách Ai+1 - Ai so với d (với i=2 den N-1). Dùng biến đếm để đếm số lần Ai+1 - Ai <>d.
Nếu Ai+1 - Ai <>d thì tăng biến đếm lên 1 đơn vị.
Nếu d<>0 thì thông báo dãy A là cấp số cộng ngược lại không là cấp số cộng
*Các bước thực hiện chương trình
Khai báo biến: Khai báo các biến dùng trong chương trình.
Phần thân chương trình:
+ Nhập vào số phần tử của dãy N
+ Nhập vào các phần tử của dãy A1, A2, …,An.
+ Khởi tạo giá trị ban đầu cho biến d,dem.
+ Kiểm tra dãy có phải là cấp số cộng hay không và thông báo ra màn hình.
Khai báo biến: Khai báo các biến dùng trong chương trình.
Phần thân chương trình:
+ Nhập vào số phần tử của dãy N
+ Nhập vào các phần tử của dãy A1, A2, …,An.
+ Khởi tạo giá trị ban đầu cho biến d,dem.
+ Kiểm tra dãy có phải là cấp số cộng hay không và thông báo ra màn hình.
Program Bai5;
Var A:Array[1..100] of Integer;
N,i:Integer;
Begin
Writeln(‘Nhap vao so nguyen duong N:’);
Readln(N);
For i:=1 to N do
Begin
Write(‘A[‘,i,’]=‘);
Readln(A[i]);
End;
d:=A[2] – A[1]; dem:=0;
For i:=1 to n do
If A[i+1] – A[i] <>d then dem:=dem+1;
If dem<> 0 then write(‘Day khong phai la cap so cong’)
Else write(‘Day la cap so cong’);
Readln
End.
Program Bai5;
Var A:Array[1..100] of Integer;
N,i:Integer;
Begin
Writeln(‘Nhap vao so nguyen duong N:’);
Readln(N);
For i:=1 to N do
Begin
Write(‘A[‘,i,’]=‘);
Readln(A[i]);
End;
d:=A[2] – A[1];
KT:=True;
For i:=1 to n do
If A[i+1] – A[i] <>d then
Begin
KT:=False;
Break;
End;
If KT then write(‘Day la cap so cong’)
Else write(‘Day khong la cap so cong’);
Readln
End.
Xác định bài toán:
Input: Số nguyên dương N, Dãy A gồm các số nguyên A1, A2, …, An có giá trị tuyệt đối không lớn hơn 1000.
Output: Số lượng số chẵn và số lẻ trong dãy.
Ý tưởng bài toán:
Dùng biến nchan, nle để đếm số lượng số chẵn và số lẻ.
Để kiểm tra số chẵn ta kiểm tra xem số đó có chia hết cho 2 hay không. Nếu Ai chia hết cho 2 tăng nchan lên 1 ngược lại tăng nle lên 1 đơn vị.
Bài 7(SGK – T79)
Dãy F là dãy Phi-bô-na-xi nếu:
F0 =0;F1 =1;Fn=Fn-1 +Fn-2 với n>=2
Viết chương trình nhập từ bàn phím số nguyên dương n và đưa ra màn hình số hạng thứ n của dãy Phi-bô-na-xi. Chương trình của bạn thực hiện được với giá trị lớn nhất của n là bao nhiêu?
Xác định bài toán:
Input: Số nguyên dương N
Output: Fn (Số hạng thứ N của dãy Phi-bô-na-xi)
Dãy Phi-bo-na-xi:
0 1 1 2 3 5 7 8 15…..
?
Viết chương trình theo các bước sau:
- Phần khai báo: Khai báo các biến cho chương trình
- Phần thân chương trình:
+ Nhập vào số nguyên dương N<=100
+ Gán giá trị ban đầu cho F0, F1 đã cho trước
+ Viết câu lệnh để tính giá trị cho F2,F3,…,Fn theo biểu thức Fn=Fn-1+Fn-2 (Dùng cấu trúc lặp)
+ Đưa giá trị Fn ra màn hình.
Program Bai7;
Var F: Array[0..100] of Integer;
N,i:integer;
Begin
Writeln(‘Nhap vao so nguyen duong N= ‘); Readln(N);
F[0]:=0;F[1]:=1;
For i:=2 to N do
F[i]:= F[i-1]+F[i-2];
Write(‘So hang thu’,N,’cua day Phi-bo-na-xi’,F[N]);
Readln
End.
?
Var N,i:Word;
F1,F2,F:Word;
Begin
Write(‘Tim so hang thu N cua day Phi-bo-na-xi, N=‘);
Readln(N);
F1:=1; F2:=1;
For i:=3 to N do
Begin
F:=F1+F2;
F1:=F2;
F2:=F;
End;
writeln(F);
Readln
End.
Chương trình trên chỉ chạy được với N=24 vì số Phi-bô-na-xi thứ 25 là 75025, vượt quá phạm vi của kiểu Word.
?
Bài 10 (SGK –T80).
Viết chương trình nhập từ bàn phím xâu kí tự S có độ dài không quá 100. Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu S. Thông báo kết quả ra màn hình.
2. Bài tập kiểu xâu:
Bài 2(SGK – T 73)
Viết chương trình nhập từ bàn phím 1 xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường).
VD: If We Hold On Together
Số lần xuất hiện của các chữ cái là:
I: 1 F:1 W:1 E:3 H:2 O:3 L:1
D:1 N:1 G:1 T:1 R:1
Xác định bài toán:
Input: Xâu S
Output: Số lần xuất hiện của mỗi chữ cái Tiếng Anh trong xâu S.
- Ý tưởng thuật toán:
+ Nhập xâu S.
+ Chuyển xâu vừa nhập thành chữ hoa.
+ Dùng mảng để lưu trữ số lượng từng loại kí tự
( Var A: aray[‘A’..’Z’ ] of Integer;); Dùng biến ch(kiểu kí tự để duyệt từ kí tự ‘A’ đến kí tự ‘Z’; dùng biến i để duyệt từ phần tử đầu tiên đến phần tử cuối cùng của xâu.
+ Ban đầu khởi tạo mảng lưu trữ số kí tự của từng loại =0.
+ Đếm từng loại kí tự và đưa ra màn hình( Dùng vòng lặp điều khiển kí tự ‘A’ đến ‘Z’ và vòng lặp duyệt từ phần tử đầu đến cuối xâu).
3. Bài tập kiểu bản ghi
Bài 11(SGK –T80). Hãy bổ sung thêm vào chương trình Xep_loai (ở bài 13) những lệnh cần thiết để chương trình đưa ra danh sách học sinh xếp loại A.
Hướng dẫn: Duyệt từ đầu đến cuối bản ghi. Nếu trường xếp loại =’A’ thì đưa ra họ tên của từng học sinh.
Writeln(‘Danh sach hoc sinh xep loai A trong lop:’);
For i:=1 to N do
If Lop[i].Xeploai=‘A’ then
Writeln(Lop[i].Hoten:30);
Thực hiện tháng 02 năm 2009
Bài học
KẾT THÚC
TRÂN TRỌNG CẢM ƠN THẦY CÔ VÀ CÁC EM
tới dự giờ lớp 11A8
GV: Lê Thị Thu Hằng
THPT Gia Bình số 1 – Bắc Ninh
[email protected]
ÔN TẬP CHƯƠNG IV
Kiểu dữ liệu có cấu trúc
Câu 1.
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau:
S:=0;
For i:= 1 to n do S:=S+ A[i];
A. Tính tổng các phần tử của mảng một chiều;
B. In ra màn hình mảng A;
C. Đếm số phần tử của mảng A;
D. Không thực hiện việc nào trong 3 việc trên;
Câu 2.
Trong ngôn ngữ lập trình Pascal, chương trình sau thực hiện công việc gì?
X:= length(s);
For i:=x downto 1 do
If S[i] =’ ‘ then delete(s,i,1); (‘’ là khoảng trắng, dấu cách)
A. Xóa dấu cách(khoảng trắng) đầu tiên trong xâu ký tự S;
B. Xóa dấu cách(khoảng trắng) thừa trong xâu ký tự S;
C. Xóa dấu cách(khoảng trắng) tại vị trí cuối cùng trong xâu ký tự S;
D. Xóa mọi dấu cách(khoảng trắng) trong xâu ký tự S;
Câu 3.
Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì?
S1:=’anh’; S2:=’em’; i:=Pos(s2,s);
While i<> 0 do
Begin
Delete(s,i,2);
Insert(s1,s,i);
i:=pos(s2,s);
End;
A. Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’;
B. Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’;
C. Thay toàn bộ cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’;
D. Thay toàn bộ cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’;
Câu 4.
Trong ngôn ngữ lập trình Pascal sau khi thực hiện xong đoạn chương trình biến Found có giá trị là gì?
(s là biến xâu ký tự)
Found:=0; x:=length(s);
For i:=1 to x div 2 do
If s[i] <> s[x-i+1] then fuond:=1;
A. Found = 0 nếu s là xâu đối xứng;
B. Found = 0 nếu s là xâu không đối xứng;
C. Found = 1 nếu s là xâu đối xứng;
D. Found không có giá trị gì;
Xác định bài toán:
Input: Số nguyên dương N(N<=100),
Dãy số A1,A2,…,An.
Output: Dãy A là cấp số cộng hay không là cấp số cộng.
? Dãy A là cấp số cộng khi nào
Dãy A là cấp số cộng khi và chỉ khi A2-A1=A3-A2=…=An-An-1
Bài 5(SGK-T79)
Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2,….,An có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết dãy A có phải là cấp số cộng hay không và thông báo kết quả ra màn hình.
Bài tập kiểu mảng
Ví dụ:
- Dãy là cấp số cộng: 1 3 5 7 9…..
- Dãy không là cấp số cộng:1 3 4 6 7…
Ý tưởng thuật toán:
Dùng biến d lưu trữ khoảng cách A2 và A1. Ta có d=A2 – A1
Tính khoảng cách Ai+1 - Ai so với d (với i=2 den N-1). Dùng biến đếm để đếm số lần Ai+1 - Ai <>d.
Nếu Ai+1 - Ai <>d thì tăng biến đếm lên 1 đơn vị.
Nếu d<>0 thì thông báo dãy A là cấp số cộng ngược lại không là cấp số cộng
*Các bước thực hiện chương trình
Khai báo biến: Khai báo các biến dùng trong chương trình.
Phần thân chương trình:
+ Nhập vào số phần tử của dãy N
+ Nhập vào các phần tử của dãy A1, A2, …,An.
+ Khởi tạo giá trị ban đầu cho biến d,dem.
+ Kiểm tra dãy có phải là cấp số cộng hay không và thông báo ra màn hình.
Khai báo biến: Khai báo các biến dùng trong chương trình.
Phần thân chương trình:
+ Nhập vào số phần tử của dãy N
+ Nhập vào các phần tử của dãy A1, A2, …,An.
+ Khởi tạo giá trị ban đầu cho biến d,dem.
+ Kiểm tra dãy có phải là cấp số cộng hay không và thông báo ra màn hình.
Program Bai5;
Var A:Array[1..100] of Integer;
N,i:Integer;
Begin
Writeln(‘Nhap vao so nguyen duong N:’);
Readln(N);
For i:=1 to N do
Begin
Write(‘A[‘,i,’]=‘);
Readln(A[i]);
End;
d:=A[2] – A[1]; dem:=0;
For i:=1 to n do
If A[i+1] – A[i] <>d then dem:=dem+1;
If dem<> 0 then write(‘Day khong phai la cap so cong’)
Else write(‘Day la cap so cong’);
Readln
End.
Program Bai5;
Var A:Array[1..100] of Integer;
N,i:Integer;
Begin
Writeln(‘Nhap vao so nguyen duong N:’);
Readln(N);
For i:=1 to N do
Begin
Write(‘A[‘,i,’]=‘);
Readln(A[i]);
End;
d:=A[2] – A[1];
KT:=True;
For i:=1 to n do
If A[i+1] – A[i] <>d then
Begin
KT:=False;
Break;
End;
If KT then write(‘Day la cap so cong’)
Else write(‘Day khong la cap so cong’);
Readln
End.
Xác định bài toán:
Input: Số nguyên dương N, Dãy A gồm các số nguyên A1, A2, …, An có giá trị tuyệt đối không lớn hơn 1000.
Output: Số lượng số chẵn và số lẻ trong dãy.
Ý tưởng bài toán:
Dùng biến nchan, nle để đếm số lượng số chẵn và số lẻ.
Để kiểm tra số chẵn ta kiểm tra xem số đó có chia hết cho 2 hay không. Nếu Ai chia hết cho 2 tăng nchan lên 1 ngược lại tăng nle lên 1 đơn vị.
Bài 7(SGK – T79)
Dãy F là dãy Phi-bô-na-xi nếu:
F0 =0;F1 =1;Fn=Fn-1 +Fn-2 với n>=2
Viết chương trình nhập từ bàn phím số nguyên dương n và đưa ra màn hình số hạng thứ n của dãy Phi-bô-na-xi. Chương trình của bạn thực hiện được với giá trị lớn nhất của n là bao nhiêu?
Xác định bài toán:
Input: Số nguyên dương N
Output: Fn (Số hạng thứ N của dãy Phi-bô-na-xi)
Dãy Phi-bo-na-xi:
0 1 1 2 3 5 7 8 15…..
?
Viết chương trình theo các bước sau:
- Phần khai báo: Khai báo các biến cho chương trình
- Phần thân chương trình:
+ Nhập vào số nguyên dương N<=100
+ Gán giá trị ban đầu cho F0, F1 đã cho trước
+ Viết câu lệnh để tính giá trị cho F2,F3,…,Fn theo biểu thức Fn=Fn-1+Fn-2 (Dùng cấu trúc lặp)
+ Đưa giá trị Fn ra màn hình.
Program Bai7;
Var F: Array[0..100] of Integer;
N,i:integer;
Begin
Writeln(‘Nhap vao so nguyen duong N= ‘); Readln(N);
F[0]:=0;F[1]:=1;
For i:=2 to N do
F[i]:= F[i-1]+F[i-2];
Write(‘So hang thu’,N,’cua day Phi-bo-na-xi’,F[N]);
Readln
End.
?
Var N,i:Word;
F1,F2,F:Word;
Begin
Write(‘Tim so hang thu N cua day Phi-bo-na-xi, N=‘);
Readln(N);
F1:=1; F2:=1;
For i:=3 to N do
Begin
F:=F1+F2;
F1:=F2;
F2:=F;
End;
writeln(F);
Readln
End.
Chương trình trên chỉ chạy được với N=24 vì số Phi-bô-na-xi thứ 25 là 75025, vượt quá phạm vi của kiểu Word.
?
Bài 10 (SGK –T80).
Viết chương trình nhập từ bàn phím xâu kí tự S có độ dài không quá 100. Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu S. Thông báo kết quả ra màn hình.
2. Bài tập kiểu xâu:
Bài 2(SGK – T 73)
Viết chương trình nhập từ bàn phím 1 xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường).
VD: If We Hold On Together
Số lần xuất hiện của các chữ cái là:
I: 1 F:1 W:1 E:3 H:2 O:3 L:1
D:1 N:1 G:1 T:1 R:1
Xác định bài toán:
Input: Xâu S
Output: Số lần xuất hiện của mỗi chữ cái Tiếng Anh trong xâu S.
- Ý tưởng thuật toán:
+ Nhập xâu S.
+ Chuyển xâu vừa nhập thành chữ hoa.
+ Dùng mảng để lưu trữ số lượng từng loại kí tự
( Var A: aray[‘A’..’Z’ ] of Integer;); Dùng biến ch(kiểu kí tự để duyệt từ kí tự ‘A’ đến kí tự ‘Z’; dùng biến i để duyệt từ phần tử đầu tiên đến phần tử cuối cùng của xâu.
+ Ban đầu khởi tạo mảng lưu trữ số kí tự của từng loại =0.
+ Đếm từng loại kí tự và đưa ra màn hình( Dùng vòng lặp điều khiển kí tự ‘A’ đến ‘Z’ và vòng lặp duyệt từ phần tử đầu đến cuối xâu).
3. Bài tập kiểu bản ghi
Bài 11(SGK –T80). Hãy bổ sung thêm vào chương trình Xep_loai (ở bài 13) những lệnh cần thiết để chương trình đưa ra danh sách học sinh xếp loại A.
Hướng dẫn: Duyệt từ đầu đến cuối bản ghi. Nếu trường xếp loại =’A’ thì đưa ra họ tên của từng học sinh.
Writeln(‘Danh sach hoc sinh xep loai A trong lop:’);
For i:=1 to N do
If Lop[i].Xeploai=‘A’ then
Writeln(Lop[i].Hoten:30);
Thực hiện tháng 02 năm 2009
Bài học
KẾT THÚC
TRÂN TRỌNG CẢM ƠN THẦY CÔ VÀ CÁC EM
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Uống Phải Say
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)