Mời các bạn giải bài tập Tin Học 11
Mời các bạn giải bài tập Tin Học 11
Tác giảThông điệptinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Mời các bạn giải bài tập Tin Học 11 14/3/2010, 8:07 am
Tiêu đề: Mời các bạn giải bài tập Tin Học 1114/3/2010, 8:07 am
Nhằm để giữ lại tài liệu và tiện lợi cho các bạn sau này đi thực tập ,ai có bài nào làm được thì đưa lên nhé,thanks
sau đây là những bài mà nhóm mình vừa làm được hihihi
Bai 4.36
type kA= array[1..100] of integer;
var i,k,n:integer;A: kA;
BEGIN
Write(‘ Nhap n:’);readln(n) ;
for i:=1 to n do
begin
write(‘ A[‘,i,’]=’);
readln(A[i]);
end;
write(‘ cac cuc dai dia phuong: ‘);
for i:=1 to n do
if (((i=1) and (a[1]>a[2])) or ((a[i]>a[i-1])and(a[i]>a[i+1])) or ((i=n) and (a[n]>a[n-1]))) then
write(a[i],’ ‘);
readln;
END.
Bai 4.10
-
Code:
-
type kA= array[1..100] of integer;
kB= array[1..100] of integer; vf
kC= array[1..100] of integer;
var i,k,n:integer;A: kA;B:KB;C:KC;
BEGIN
Write(‘ Nhap n:’);readln(n) ;
for i:=1 to n do
begin
write(‘ A[‘,i,’]=’);
readln(A[i]);
end;
for i:=1 to n do
begin
write(‘ B[‘,i,’]=’);readln(B[i]);
end;
For i:=1 to n do c[2*i-1]:=a[i] ;
For i:=1 to n do c[2*i]:=b[i];
writeln(‘DAy A’);
for i:=1 to n do write(A[i],’ ‘);
writeln;
writeln(‘DAy B’);
for i:=1 to n do write(B[i],’ ‘);
writeln;
writeln(‘DAy C’);
for i:=1 to 2*n do write(C[i],’ ‘);
writeln;
readln;
END.
type kA= array[1..100] of integer;var i,k,n:integer;A: kA;BEGINWrite(‘ Nhap n:’);readln(n) ;for i:=1 to n dobeginwrite(‘ A[‘,i,’]=’);readln(A[i]);end;write(‘ cac cuc dai dia phuong: ‘);for i:=1 to n doif (((i=1) and (a[1]>a[2])) or ((a[i]>a[i-1])and(a[i]>a[i+1])) or ((i=n) and (a[n]>a[n-1]))) thenwrite(a[i],’ ‘);readln;END.
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
Được sửa bởi tinhonline204 ngày 18/3/2010, 6:40 am; sửa lần 5.
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 15/3/2010, 10:34 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1115/3/2010, 10:34 am
-
Code:
-
type kA= array[1..100] of integer;
kB= array[1..100] of integer;
kC= array[1..100] of integer;
var i,j,k,n:integer;A: kA;B:KB;C:KC;
BEGIN
Write(‘ Nhap n:’);readln(n) ;
for i:=1 to n do
repeat
write(‘ A[‘,i,’]=’);
readln(A[i]);
until (a[i] <= 32000);
for i:=1 to n do
repeat
write(‘ B[‘,i,’]=’);readln(B[i]);
until( b[i] <= 32000);
j:=1;k:=1; a[n+1]:=32001;b[n+1]:=32001;
for i:=1 to 2*n do
if (A[j]<b[k]) then begin c[i]:=a[j]; inc(j); end
else begin c[i]:=b[k]; inc(k); end;
writeln(‘DAy A’);
for i:=1 to n do write(A[i],’ ‘);
writeln;
writeln(‘DAy B’);
for i:=1 to n do write(B[i],’ ‘);
writeln;
writeln(‘DAy C’);
for i:=1 to 2*n do write(C[i],’ ‘);
writeln;
readln;
END.
Bài 4.11
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 15/3/2010, 10:36 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1115/3/2010, 10:36 am
-
Code:
-
type kA= array[1..100] of integer;
var i,max,min,tg,vtmax,vtmin,n:integer;A: kA;
BEGIN
Write(‘ Nhap n:’);readln(n) ;
for i:=1 to n do
begin
write(‘ A[‘,i,’]=’);
readln(A[i]);
end;
vtmin:=1;vtmin:=n;
max:=a[n];min:=a[1];
for i:=1 to n do
if (a[i]<=min) then begin min:=a[i]; vtmin:=i; end;
for i:=n downto 1 do
if (a[i]>=max) then begin max:=a[i];vtmax:=i; end;
write(‘ vi tri max’,vtmax,’vi tri min’,vtmin);
writeln(‘DAy truoc’);
for i:=1 to n do write(a[i],’ ‘);
writeln;
tg:=a[vtmin];
a[vtmin]:=a[vtmax];
a[vtmax]:=tg;
writeln(‘DAy sau ‘);
for i:=1 to n do write(a[i],’ ‘);
writeln;
readln;END.
Bài 4.12
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 15/3/2010, 10:36 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1115/3/2010, 10:36 am
-
Code:
-
var thang,p:string;i:integer;
BEGIN
write(‘ nhap thang ‘);readln(thang);
write( ‘ mua la: ‘);
for i:=1 to length(thang) do thang[i]:=upcase(thang[i]);
p:=’GIENGHAIBATUNAMSAUBAYTAMCHINMUOIMOTCHAP’;
{ ham kiem tra xau thang co xuat hien trong xau p khong, neu co thi tra ve vi tri xuat hien dau tien cua xua “thang”}
case pos(thang,p) of
1,6,9: write(‘ mua xuan ‘) ;
11,13,16: write(‘ mua he’);
19,22,25: write(‘ mua thu’);
29,33,36: write(‘ mua dong’);
end;
readln;
END.
Bài 4.37
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 6:32 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 6:32 am
BÀI TẬP 4.39
4.39 Hãy lập trình:
– Nhập một xâu S chỉ chứa các ký tự La tinh in thường và các ký tự số từ 0 đến 9.
– Đếm và đưa ra màn hình số ký tự khác nhau trong xâu S.
BƯỚC 1.
– Input: Xâu S.
– Output: Số ký tự khac nhau và các ký tự đó trong xâu S.
BƯỚC 2.
B1: Nhập xâu s.
B2: i:=1; : n:=length
B3: k:=i+1;
nếu (s[i]=s[k] thì delete(s,k,1);
k:=k+1;
k>n sang b3
B4: i:=i+1; nếu i<=n thì quay lại bước 3 ngược lại sang bước 5;
B5: n:=length(s);
Thông báo kết quả: số ký tự khác nhau là: n. các ký tự đó là s.
BƯỚC 3. Cài đặt
var s:string;
i,j,k,n:integer;
begin
write(‘nhap xau=’);readln(s);
i:=1;
n:=length(s);
while (i<=n) do
begin
for k:=i+1 to n do if (s[i]=s[k]) then delete(s,k,1);
i:=i+1;
end;
n:=length(s);
writeln(‘ so ky tu khac nhau la:’,n,’ cac ky tu khac nhau la:’,s);
readln;
end.
BƯỚC 4.
– Xây dựng bộ test: aabbccc
– Mở rộng bài toán: bài toán thưc hiện trên mảng số nguyên.
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
Được sửa bởi tinhonline204 ngày 18/3/2010, 6:49 am; sửa lần 3.
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 6:33 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 6:33 am
BÀI TẬP 4.40
Đề bài: lập trình
– Nhập 1 xâu bất kì từ bàn phím
– Chuẩn hóa các xâu theo quy tắc sau
+ xóa các dấu cách đầu xâu nếu có
+ xóa các dấu cách cuối xâu nếu có
+ thay dãy nhiều dấu cách lien tiếp bằng 1 dấu cách
– Đưa kết quả đã chuẩn hoá ra màn hình.
–
BƯỚC 1:
Input: nhập xâu bất kỳ từ bàn phím
Output: đưa kết quả xâu đã chuẩn hóa ra màn hình
BƯỚC 2:
B1: Nhập xâu
B2: Nếu st[1]= #32 thì delete (st,1,1); Quay lại B2.
Còn không thì qua B3
B3: Nếu st[ length(st)]= #32 thì delete (st, length(st),1).Quay lại B3
Còn không thì qua B4
B4: Nếu pos (#32#32,st) <> 0 thì delete (st,pos(#32#32 ,st),1);
Quay lại B4.
Còn không thì qua B5.
B5: In ra xâu sau khi chuẩn hóa.Kết thúc
BƯỚC 3:
Program xau;
Var st: string ;
i: byte;
Begin
Write (‘ nhap xau:’ ) ;readln (st);
While st[1]= #32 do delete (st,1,1);
While st[ length(st)] = #32 do delete (st, length(st),1);
While pos (#32#32,st) <> 0 do delete (st,pos(#32#32 ,st),1);
Writeln (‘xau sau khi chuan hoa la:’, st);
Readln ;
END.
BƯỚC 4:
– Xây dựng bộ text
Nhập xâu Lê văn hoàng
Xâu đã chuẩn hóa là: Lê văn hoàng
– Mở rộng bài toán
Đếm số từ có trong xâu
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 6:34 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 6:34 am
Bài tập 4.42
Bước 1 :
Input: Nhập n và xâu chứa màu sắc các viên đá.
Output : Vị trí mắc khóa.
Bước 2 :
B1: Nhập xâu
B2 : i:=1;n:=length(s);
B3 : Nếu i<=n thì
Xâu S1 được gán bằng xâu con từ S[1] đến S[i-1] từ xâu S
Xâu S2 được gán bằng xâu con copy S[i] đến S[n-i+1] từ xâu S
Xâu S3 được gán bằng xâu S1 được gán vào sau xâu S2
Kiểm tra đối xứng của xâu S3
Đúng thì thong báo vị trí khóa i
i= i+1
Quay lại B3
Còn không thì kết thúc.
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 6:34 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 6:34 am
BÀI TẬP 4.43
Bước 1:
– Input: nhập n
Nhập dãy gồm n số nguyên
– Output: Thông báo số lượng số lẻ
Bước 2: Ý tưởng thuật toán
B1: Nhập n
Nhập dãy n số nguyên
B2: dem:=0; i:=1;
B3: nếu i<= n thì
Nếu a[i] mod 2=0 thì write(a[i]), dem:=dem +1
i:=i+1; quay lại B3.
Còn không thì qua B4.
B4: in ra số lượng số lẻ: dem. Kết thúc.
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 6:35 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 6:35 am
BÀI TẬP 4.41
BƯỚC 1:
-input: xâu s
– output:số từ của xâu
BƯỚC 2: ý tưởng thuật toán
B1: nhập xâu s
B2: xóa các kí tự trắng dư thừa trong xâu
B2.1: Nếu s[1]= #32 thì delete (s,1,1); Quay lại B2.1.
Còn không thì qua B2.2
B2.2.Nếu s[ length(s)]= #32 thì delete (s, length(s),1).Quay lại B2.2
Còn không thì qua B2.3
B2.3.Nếu pos (#32#32,s) <> 0 thì delete (s,pos(#32#32 ,s),1); Quay lại B2.3.
Còn không thì qua B2.4.
B2.4. Nếu pos(‘ .’,s)<>0 thì delete(s,pos(‘ .’,s),1);Quay lại B2.4.
Còn không thì qua B2.5.
B2.5. . Nếu pos(‘ ,’,s)<>0 thì delete(s,pos(‘ ,’,s),1);Quay lại B2.4.
Còn không thì kết thúc.
B3: dem:=0; st:=s
B4: nếu pos (#32,st) <> 0 thì dem:=dem+1
Xóa trong xâu st 1 kí tự kể từ vị trí tìm thấy kí tự trắng.
Quay lại B4
Còn không thì qua B5.
B5: đưa kết quả ra màn hình: số từ trong xâu là dem+1.kết thúc.
BƯỚC 3: Cài đặt
var st,S:string;
dem:byte;
procedure xoa(var st1:string);
begin
while st1[1]=#32 do
delete(st1,1,1);
while st1[length(st1)]=#32 do
delete(st1,length(st1),1);
while pos(#32#32,st1)>0 do
delete(st1,pos(#32#32,st1),1);
while pos(‘ .’,st1)>0 do
delete(st1,pos(‘ .’,st1),1);
while pos(‘ ,’,st1)>0 do
delete(st1,pos(‘ ,’,st1),1);
end;
BEGIN
write(‘nhap xau s=’);readln(s);
xoa(s);
st:=s;
while pos(#32,st)<>0 do
begin
dem:=dem+1;
delete(st,pos(#32,st),1);
end;
writeln(‘so tu co trong xau la:’, dem+1);
readln;
END.
BƯỚC 4:
– Text: nhập xâu :”lop tin 3a”. Số từ trong xâu là: 3.
– Mở rộng bài toán: in ra từ đầu tiên của xâu.
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:45 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:45 am
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]<0) and (abs(a[j]) mod 2=0)) thì Inc(dem2);
· Bước 4) Inc(i), rồi quay lại Bước 3;
· Bước 5) In ra màn hình giá trị của các biến dem, dem1, dem2.
· Bước 6) Dừng.
Bước 3[i]. Chương trình.
program dem_so_phan_tu_trong_mang;
var i, j, dem, dem1, dems2: integer;
a: array [1..100] of integer;
begin
i:=0;
repeat
i:=i+1;
write(‘ moi nhap so nguyen thu ‘, i ,’: ‘);
readln(a[i]);
until (a[i]=0);
dem1:=0;
dem2:=0;
dem:=0;
j:=1;
while (a[j]<>0) do
begin
dem:=dem+1;
if (a[j] mod 3=0) then
dem1:=dem1+1;
if ((a[j]<0) and (a[j] mod 2=0)) then
dem2:=dem2+1;
j:=j+1;
end;
writeln;
writeln(‘so luong cac so da nhap la: ‘, dem);
writeln(‘so cac so chia het cho 3 la: ‘, dem1);
writeln(‘so cac so am chan la: ‘, dem2);
readln;
end.
Bước 4. Kiểm thử và mở rộng bài toán.
+ Mở rộng bài toán.
* Bài toán 1. 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: + Các số chia hết cho 3.
+ Các số âm chẵn.
* Bài toán 2. 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: Các số nguyên tố và tổng bình phương của chúng.
* Bài toán 3. 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: + Dãy con tăng có số phần tử lớn nhất
* Bài toán 4. 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: + Các số nguyên tố trong dãy và tổng bình phương của chúng.
* Bài toán 5. 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: + + Xác định xem dãy có phải cấp số cộng không.
+ Xác định xem dãy có phải cấp số nhân không.
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
Được sửa bởi thanhluan_audio ngày 18/3/2010, 8:55 am; sửa lần 1.
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:46 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:46 am
Bài 4.45 – SBT tin học 11.
Bước 1:
Input: k, dãy số an ( gồm a1,a2,…,an).
Output: – Số lượng các phần tử a < k.
– Tổng các phần tử a[i] < k.
Bước 2: Xây dựng ý tưởng.
B1: Nhập dãy số an và giá trị k
B2: d:= 0; s:= 0;i=1;
B3: Nếu a[i]=0 thì qua B4, ngược lại thì
+ Kiểm tra a[i] < k đúng thì : +d := d+1;
+S := s+a[i];
+ i:= i+1 quay lại B3;
B4: Thông báo có d số và tổng s;
B5: Dừng.
Bước 3: Cài đặt
[i]Program DEM_TONG;
Var i,d,k,s : integer;
a :array[1..200] of integer;
Begin
Write(‘nhap day so:’);n:=0;
Repeat
Write(‘a[‘,i,’]=’);
Readln(a[i]);
n:=n+1;
Until(a[i]= 0);
Write (‘nhap vao gia tri k=’);
Readln(k);
d:= 0; s:= 0;
for i:= 1 to n do
if a[i] < k then
begin
d:= d+1;
s:= s+ a[i];
end;
if d = 0 then write (‘khong co phan tu nao nho hon k’ )
else
begin
writeln(‘co’,d,’phan tu nho hon k’);
writeln(‘tong cua chung la: ’,s);
end;
readln;
End.
Bước 4: Xây dựng bộ test.
An : 1,3,7,2,8 (n=5); k= 5;
i=1: a[1]=1
i=2: a[2]=3
i=3: a[3]=7>k=5 nên d=2 và s=4; i=3+1;
i=4: a[4]=2
i=5: a[5]=8>k=5 nên d=3; s=6; i=5+1>n,
Dừng.
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/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).
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/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ế.
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/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 và viết ‘ Dup ’ → Quay lại B4;
Còn không: qua B5
B5:Kiểm tra i < n:
Nếu đúng: i:=i+1 và viết ‘ Inc ’→ quay lại B5;
Còn không : B9;
B6: i:=-1; viết ‘ Minus1 ’;
B7: 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 <= n ) do
Begin
i:= 2*i;
writeln(‘ Dup’);
If (i
End;
End
Else
If (n<0) then
Begin
i:=-1;
Writeln(‘Minus1’);
While ( 2*i >= n ) do
Begin
i:= 2*i;
writeln(‘ Dup’);
If (i
End;
End;
End.
Bước 4:
– Xây dựng bộ test:
Với n = 4 ta có:
Plush1
Dup
Dup
Với N = -3 ta có:
Minus1
Dup
Dup
Inc
– Mở rộng bài toán:
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
Được sửa bởi thanhluan_audio ngày 18/3/2010, 8:51 am; sửa lần 1.
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:50 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:50 am
Bài 4.30:
Bước 1: Xác định Input, output
– Input: Bộ 8 số biểu diễn tọa độ các điểm trên trái,dưới phải của 2 cửa sổ.
– Output: Số điểm chung của 2 cửa sổ.
Bước 2: Thuật toán
– B1: nhập tọa độ các đỉnh của 2 cửa sổ
– B2: Hoán đổi cách lưu cửa sổ sao cho cửa sổ thứ nhất quy ước là nằm bên trái.
– B3: Nếu (x2>=x3 ) and (y3<=y2) thì số giao điểm là (x2-x3+1)*(y2-y3+1)
Nếu không thì số giao điểm là 0.
– B4: Nếu x2
Sơ đồ khối của thuật toán:
Bước 3: Chương trình:
program sogiaodiem;
uses crt;
var x1,y1,x2,y2,x3,y3,x4,y4:integer;
procedure swap(var x1,y1,x2,y2:integer);
var tx,ty:integer;
begin
tx:=x1;
x1:=x2;
x2:=tx;
ty:=y1;
y1:=y2;
y2:=ty;
end;
begin
clrscr;
write(‘Nhap toa do chocac dinh cua hinh chu nhat thu nhat: ‘);
readln(x1,y1,x2,y2);
write(‘Nhap toa do cho cac dinh cua hinh chu nhat thu 2: ‘);
readln(x3,y3,x4,y4);
{hoan doi cach luu 2 hinh neu hinh 2 nam ben trai hinh 1}
{dieu nay dam bao cho viec hinh 1 luon luon nam ben trai hinh 2}
if(x1>x3) 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<=y2) then
write(‘So diem chung cua 2 cua so la:’,(x2-x3+1)*(y2-y3+1))
else write(‘so giao diem la 0’);
if(x2
readln;
end.
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:52 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:52 am
Bài 4.31
Bước 1: xác định input và output
– input: số nguyên N (11,A2,…,An trong đó có ít nhất 2 số 0.
– output: tổng của dãy số nằm giữa 2 số 0 đầu tiên.
Bước 2:
– b1: nhập N và dãy N số nguyên
– b2: tìm vị trí số 0 đầu tiên lưu vào i, vị trí số 0 thứ 2 lưu vào j
– b3: tính tổng của dãy số nằm giữa i và j
– nếu i = j thì tong = 0
– b4: thông báo tổng tính được ra màn hình
– b5: dừng
Bước 3: viết chương trình
Program tinh_tong;
Var N, i, j, S,b : integer;
A: array[1..60] of integer;
Begin
Writre (‘ nhập N=’); readln(N);
For b:= 1 to N do
Begin
Write (‘nhập dãy AN’);
Write (‘A[‘,b,’]=’); readln(A);
End;
While b<= N do
Begin
If A[b]=0 then if i=0 then i:=b
else
begin
j:= b;
end;
if j <> 0 then break
else b:= b+1;
end ;
S:= 0
if i <> j then
for b:= i+ 1 to j – 1 do
S:= S+ A[b];
Write (‘ tổng cần tìm là:’,S);
Readln;
End.
[b]
Bước 4:
–
Xây dựng bộ test:
+ n = 3, dãy : 0 1 0 → tổng: 1
+ n =5, dãy: 1 0 4 5 0 2→tổng: 9
+ n=2, dãy: 3 4→tổng: 7
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:52 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:52 am
Bài 4.32
Bước 1: Xác định input,output
– Input: 2 số m,n và 2 dãy a[n] và b[m].
– Output : dãy D[m+1] là dãy thỏa mãn:
+ d[0]= số các phần tử trong a[n] <=b[1];
+ d[i]= số các phần tử trong a[n] sao cho a[k]>=b[i] và a[k]<=b[i+1]
+ d[m]= số các phần tử trong dãy a[n] >=b[m]
Bước 2: Giải thuật
+B1 : Nhập vào 2 số m,nn và 2 dãy a[n],b[m];
+ B2: Tính d[0]: Duyệt từ đầu a[n] đến cuối mảng khi gặp phần tử thỏa a[i]<=b[1] thì gán d[0]:=d[0]+1;
+ B3: Tính các d[i] (i=1,..m-1): Duyệt từ b[1] đến b[m-1] tìm các phần tử trong dãy a[n] sao cho phần tử đó có giá trị nằm giữa 2 phần tử của dãy b đang xét tới. Mỗi lần tìm được tăng biến đếm lên 1.
+ B4: Tính d[m].
+B5: In kết quả.
Bước 3: Chương trình:
program bai432 ;
var m,n,i,j,l,k,z,t:integer;
a:array[1..100] of integer;
b:array[1..100] of integer;
d:array[0..101] of integer;
begin
write(‘nhap 2 so m va n:’);
readln(m,n);
writeln(‘Nhap day a:’);
for i:=1 to n do
begin
writeln(‘nhap a[‘,i,’]=’);
readln(a[i]);
end;
writeln(‘Nhap day b:’);
for j:=1 to m do
begin
writeln(‘nhap b[‘,j,’]=’);
readln(a[j]);
end;
{dem so luong trong day a nho hon b1}
d[0]:=0;
for k:=1 to n do
if(a[k]
for l:=1 to n do
if(a[l]>=b[m]) then d[m+1]:=d[m+1]+1;
for z:=1 to m-1 do
for t:=1 to n do
if(a[t]>=b[z]) and (a[t]<=b[z+1]) then d[z]:=d[z]+1;
writeln(‘Ket qua :’);
for i:=1 to n do
write(d[i]:5);
end.
Bước 4:
– Xây dựng bộ test:
+Dãy a:
Dãy b:
→ Dãy d:
+Dãy a:
Dãy b:
→ Dãy d:
+Dãy a:
Dãy b:
→ Dãy d:
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
thanhluan_audio
Tổng số bài gửi
: 106
Điểm
: 249
Reputation
: 0
Birthday
: 03/02/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Đông Hà – Quảng Trị
Địa chủ10624903/02/198822/10/200934Đô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:53 am
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 8:53 am
Bài 4.33:
Bước 1: Tìm hiểu nội dung đề bài
Input D, M, Y ( ngày, tháng, năm)
Output Dtruoc, Dsau, Mtruoc, Msau
Bước 2: Hình thành giải thuật
* Giảm ngày :
B1: Dtruoc:= D-1; Mtruoc:= M;
B2: Nếu Dtruoc = 0 Thì
Dtruoc:= SNTT( Mtruoc -1 );
Mtruoc:= Mtruoc – 1;
Nếu Mtruoc = 0 thì Mtruoc:= 12
* Tăng ngày:
B1: Dsau: = D + 1;
Msau:= M;
B2: Nếu Dsau > SNTT( Msau, Y) Thì
Dsau:= 1;
Msau:= M+1;
Nếu Msau > 12 Thì Msau:= 1;
Bước 3: Cài đặt
Program Timngay;
Var
Function SNTT( M,Y:integer):integer;
Var
Begin
Case M of
1,3,5,7,8,10,12: SNTT:= 31;
4,6,9,11: SNTT:= 30;
Else If (Ymod 400 = 0) or (Y mod 4 =0) and (Y mod 100<>0))
Then SNTT:=29
Else SNTT:= 28;
End;
End;
Begin
{* Tang ngay *}
Dsau:= D +1;
Msau:= M;
If Dsau > SNTT(Msau, Y) Then
Begin
Dsau:= 1;
Msau:= M+1;
If Msau >12 Then Msau:=1;
End;
(* Giam ngay *}
Dtruoc:= D-1;
Mtruoc:= M;
If Dtruoc:= 0 Then
Begin
Dtruoc:=SNTT(Mtruoc – 1, Y);
Mtruoc:=Mtruoc – 1;
If Mtruoc:= 0 Then Mtruoc:=12;
End;
End.
_________________
Binladen & bus doi ban cung tien
num: 01682686189
school: DHSP Hue
_________________
nguyenanhtuan
Tổng số bài gửi
: 97
Điểm
: 176
Reputation
: 1
Birthday
: 25/02/1988
Join date
: 28/11/2009
Age
: 34
Đến từ
: Quảng Trị
Tá điền9717625/02/198828/11/200934Quảng Trị
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 18/3/2010, 9:23 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1118/3/2010, 9:23 pm
Khi xem xong bài 4.39 thì mình thấy bài này mình có thể giảm độ phức tạp xuống 1 tí cho chạy nhanh hơn, tức là làm mịn 1 tí thôi.
Theo như thuật toán thì vòng For thứ 2 sẽ chạy đến n mặc dù có thể nó chạy như vậy là không cần thiết, vì sau khi xóa các kí tự dư thừa thì độ dài của xâu không còn là n mà là n'<n.Bạn có thể cải tiến 1 chút để nó không chạy đến n mà đến n’ nào đó mà.
Hết.
_________________
_________________
trunghai
Tổng số bài gửi
: 1
Điểm
: 1
Reputation
: 0
Birthday
: 08/02/1994
Join date
: 04/11/2010
Age
: 28
Tập sự08/02/199404/11/201028
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 4/11/2010, 12:04 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 114/11/2010, 12:04 pm
post len dum minh vs minh dang can gap!!!!!Cam on nhiu nhen!!!!
Co ai co bai 4.51 vs 4.53 ko?????post len dum minh vs minh dang can gap!!!!!Cam on nhiu nhen!!!!
Kanee=914
Tổng số bài gửi
: 1
Điểm
: 1
Reputation
: 0
Birthday
: 18/03/1994
Join date
: 08/11/2010
Age
: 28
Tập sự18/03/199408/11/201028
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 8/11/2010, 11:24 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 118/11/2010, 11:24 pm
cho xin code bài 4.42 với
cực gấp:((
thuybeot42_spttn
Tổng số bài gửi
: 2
Điểm
: 2
Reputation
: 0
Birthday
: 12/10/1990
Join date
: 26/11/2010
Age
: 31
Tập sự12/10/199026/11/201031
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 26/11/2010, 11:21 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1126/11/2010, 11:21 pm
CÁI NHÀ NÀY AI CŨNG THÍCH KHOE CƠ THỂ
thuybeot42_spttn
Tổng số bài gửi
: 2
Điểm
: 2
Reputation
: 0
Birthday
: 12/10/1990
Join date
: 26/11/2010
Age
: 31
Tập sự12/10/199026/11/201031
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 26/11/2010, 11:25 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1126/11/2010, 11:25 pm
CÁI NHÀ NÀY AI CŨNG THÍCH KHOE CƠ THỂ
tinhonline204
Tổng số bài gửi
: 426
Điểm
: 841
Reputation
: 3
Birthday
: 20/04/1988
Join date
: 22/10/2009
Age
: 34
Đến từ
: Hà Nội
Tỷ phú42684120/04/198822/10/200934Hà Nội
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 22/4/2011, 9:55 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 1122/4/2011, 9:55 pm
thanks tất cả
_________________
Nguyễn Đình Lý
093.20.4.1988
Y!ahoo tinhonline204
Thu Hồng
Tổng số bài gửi
: 1
Điểm
: 1
Reputation
: 0
Birthday
: 12/03/1989
Join date
: 09/04/2014
Age
: 33
Tập sự12/03/198909/04/201433
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11 9/4/2014, 11:16 pm
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 119/4/2014, 11:16 pm
có bạn nào giải đc bài 4.25 chưa? up hộ code lên m xem với.
Sponsored content
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11
Tiêu đề: Re: Mời các bạn giải bài tập Tin Học 11
Mời các bạn giải bài tập Tin Học 11