Bộ sách Cánh Diều là bộ sách thứ nhất [đầu tiên] góp phần thực hiện chủ trương xã hội hoá sách giáo khoa, xoá bỏ cơ chế độc quyền trong lĩnh vực xuất bản - in - phát hành sách giáo khoa.
Tác giả bộ sách Cánh Diều là những nhà giáo, nhà khoa học tâm huyết và giàu kinh nghiệm. Trong đó, có tác giả là Tổng Chủ biên Chương trình Giáo dục phổ thông 2018 và nhiều tác giả là thành viên Ban Phát triển Chương trình tổng thể, Ban Phát triển các chương trình môn học thành lập theo Quyết định của Bộ trưởng Bộ GDĐT.
chu nhan cua nhung bai nay thong cam cho minh nghe. minh chi post len cho cac thanh vien khac tham khao thoi. hehehehehe... nhung bai nay khong dung hoan toan, ai cop ve xem thi nho chinh sua lai cho chuan rui day nghe Bài tập 4.44, trang 47, sách bài tập tin học lớp 11.
Hãy lập trình:
· Nhập từ bàn phím dãy số nguyên khác 0. Dấu hiệu kết thúc nhập là số 0.
· Đưa ra màn hình:
+ Số lượng các số đã nhập [không kể số 0 – dấu hiệu kết thúc];
+ Số lượng các số chia hết cho 3, nếu không có thì đưa ra số 0;
+ Số lượng các số âm chẵn, nếu không có thì đưa ra số 0.
Bài làm:
Bước 1. Xác định bài toán.
· Input: Dãy số nguyên khác 0.
· Output: + Số lượng các số đã nhập [dem].
+ Số lượng các số chia hết cho 3 [dem1].
+ Số lượng các số âm chẵn [dem2].
Bước 2. Ý tưởng giải thuật.
Liệt kê các bước.
· Bước 1] Nhập dãy số nguyên khác 0 lưu vào mảng a [dấu hiệu kết thúc nhập là số 0];
· Bước 2] i:=1; dem:=0; dem1:=0; dem2:=0;
· Bước 3] * Nếu a = 0 thì qua Bước 5;
* Ngược lại:
+ Inc[dem];
+ Nếu [[a[j]>0] and [a[j] mod 3=0]] thì Inc[dem1];
+ Nếu [[a[j]k=5 nên d=3; s=6; i=5+1>n,Dừng.
thanhluan_audio Địa chủ
Tổng số bài gửi : 106 Điểm : 249 Reputation : 0 Birthday : 03/02/1988 Join date : 22/10/2009 Age : 35 Đến từ : Đông Hà - Quảng Trị
Bài 4.46[tr47-bttinhoc11]
B1: Tìm hiểu nội dung đề bài.
+ Input: Số nguyên N[1 20] và dãy số thực B1, B2,...Bn.+ Output: - Số nguyên K[số lượng số trong dãy có giá trị nhỏ hơn số bên trái cạnh nó].- Số thứ tự i và số thực Bi nhỏ hơn số bên trái cạnh nó.
B2: Hình thành ý tưởng, giải thuật.
B1: Nhập số nguyên N và dãy số thực B1, B2,...Bn. B2: i:=2; K:=0; B3: Nếu i N thì+ Nếu B[i-1]>B thì K:=K+1, hiển thị giá trị i và B[i] .+ i:=i+1 quay lại B2. B4: Thông báo có K số có giá trị nhỏ hơn số bên trái cạnh nó.B5: Dừng.
B3: Cài đặt.
[i]
Program dayso;
var K,N,i: integer;
B: array[1..20] of real;
BEGIN
write['nhap n= ']; readln[n];
for i:=1 to n do
begin
write['nhap B[',i,']= ']; readln[B[i]];
end;
k:=0;
for i:=2 to n do
if B[i-1]>B[i] then
begin
k:=k+1;
writeln[i,' ',B[i]];
end;
writeln['co tat ca ',k,' so thoa man'];
readln;
END.
B4: Xây dựng bộ text và mở rộng
+ Mở rộng bài toán
Bài toán 1: Nhập vào số nguyên N và dãy N số thực. Cho biết có bao nhiêu số chia hết cho số bên trái cạnh nó trong dãy.Bài toán 2: Nhập vào N số thực. Cho biết trong dãy vừa nhập vào có bao nhiêu dãy con tăng[giảm]. Hãy đưa ra màn hình các dãy đó [mỗi số cách nhau một dấu cách, mỗi dãy một dòng].
thanhluan_audio Địa chủ
Tổng số bài gửi : 106 Điểm : 249 Reputation : 0 Birthday : 03/02/1988 Join date : 22/10/2009 Age : 35 Đến từ : Đông Hà - Quảng Trị
Bài 4.47
B1. Input, output.
Input: Cho khai báo kiểu mảng của các bản ghi, với các bản ghi có các trường:
hocsinh= record
hoten:string[30];
ngaysinh:string[10];
gioitinh:Boolean;
Tin,Toan,Li,Hoa,Su,Dia,Van:real;
End;
Var lop:array[1..60] of hocsinh;
Output: Khai báo lại dưới dạng mảng.
B2.Ý tưởng phương pháp.
- Tách các trường riêng rẽ mỗi trường là một mảng, có thể gộp các trường cùng kiểu dữ liệu chuẩn trong một khai báo.
Cách 1:
+ ngaysinh, hoten:array[1..60] of string;
+ gioitinh:array[1..60] of boolean;
+ toan,li,hoa,tin,van,su,dia:array[1..60] of real;
Cách 2:
+ ngaysinh, hoten:array[1..60] of string;
+ gioitinh:array[1..60] of boolean;
+ diem:array[1..60,1..7]
B3. Giải thuật minh họa
Ta có thể lấy ví dụ sau làm minh họa cho cách 1 khai báo trên.
Program quanlilophoc;
Var ngaysinh,hoten:array[1..60] of string;
Gioitinh:array[1..60] of boolean;
Toan,li,hoa:array[1..60] of integer;
I, N:integer;
Begin
Write[‘ Nhập vào số học sinh:’];readln[n];
For i:=1 to n do
Begin
Writeln[‘ Họ tên hoc sinh thứ : ’,i];readln[hoten];
Write[‘ gioi tinh la:’];readln[gioitinh[i]];
Write[‘diem toan la:’]; readln[toan[i]];
Write[‘ diem li la:’]; readln[li[i]];
Write[‘diem hoa la:’];readln[hoa[i]];
End;
Readln;
End.
B4. Mở rộng.
Khi làm các bài toán có dạng như trên giúp học sinh thấy được sự tối ưu của kiểu bản ghi so với kiêu mảng.
Bài 4.48
Có thể thay thế mảng 1 chiều N phần tử, mỗi phần tử là một bản ghi có 2 trường bằng mảng 2 chiều có N hàng và 2 cột không?
Trả lời:
Bước 1:
Input: mảng 1 chiều n phần tử, mỗi phần tử là 1 bản ghi co trường,
Mảng 2 chiều
Output: Yes /No Kết luận thay thế mảng.
Bước 2: Ý tưởng
B1: Xét mảng 1 chiều có n phần tử;
+ Mảng 1 chiều các phần tử phải có cùng một kiểu dữ liệu
B2: Bản ghi;
+ Các trường của bản ghi có kiểu dữ liệu có thể khác nhau .
Kết luận: Không thể thay thế.
thanhluan_audio Địa chủ
Tổng số bài gửi : 106 Điểm : 249 Reputation : 0 Birthday : 03/02/1988 Join date : 22/10/2009 Age : 35 Đến từ : Đông Hà - Quảng Trị
Bài 4.29:
Bước 1
:
- Input: Ngôn ngữ khởi tạo hằng nguyên bao gồm 4 câu lệnh [ Plush1, Minus1, Inc, Dup ], số nguyên N
- Output: Dãy câu lệnh cho kết quả thực hiện là số nguyên N
Bước 2:
- Ý tưởng: + Với N > 0, khởi tạo Plush1, trong khi kết quả thực hiên vẫn còn < N thì tiếp tục nhân đôi [ Dup ], sau đó dùng Inc để được kết quả cần có
+ Với N < 0, khởi tạo Minus1, các bước còn lại tương tự
- Diễn tả thuật toán:
Liệt kê các bước:
B1
: Nhập N;
B2
: Nếu N > 0 thì qua B3
Còn không: qua B6
B3
: i:=1, viết ‘ Plush1 ’;
B4
: Nếu 2*I =N thì: i=2*i, viết ‘ Dup ’ →quay lại B7;
Còn không: qua B8;
B8
: Kiểm tra i< N:
Nếu đúng: i:=i+1, viết ‘ Inc ’→ quay lại B8;
Còn không: B9;
B9
: Kết thúc;
Bước 3
: Cài đặt:
Program khoi_tao_hang_nguyen;
Var n,i: integer;
Begin
Write [‘ Nhập vào số N:’ ]; Readln [ n ];
If [ n>0 ] then
Begin
i:=1;
Writeln[ ‘Plush1’];
While [ 2*i =x3 ] and [y3x3] then begin {hoan vi cach luu 2 hinh} swap[x1,y1,x3,y3]; swap[x2,y2,x4,y4]; end; {tim dien tich hinh chu nhat chung} if [x2>=x3] and [y3