Giải bài tập sách bài tập tin học 11

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ị

Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11
18/3/2010, 8:48 am

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ị

Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11
18/3/2010, 8:48 am

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ị

Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11
18/3/2010, 8:49 am

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

Chủ Đề