BÀI T P THỰC HÀNH SỐ 5 ẬYêu cầu: - Biết khai báo kiểu dữ liệu để giải những bài toán cụ thể.. - Biết cách phân tích giải một bài toán với kiểu dữ liệu có cấu trúc... Bài 5.Viết chương tr
Trang 1BÀI T P THỰC HÀNH SỐ 5 Ậ
Yêu cầu:
- Biết khai báo kiểu dữ liệu để giải
những bài toán cụ thể
- Biết cách phân tích giải một bài
toán với kiểu dữ liệu có cấu trúc
Trang 2Bài 5.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 100 Hãy cho biết dãy A có phải là một cấp số cộng hay không? Thông báo kết quả ra màn hình
Trang 3Để dãy A là cấp số cộng
Dãy A có tính
chất gì?
a[i]=a[i-1]+d (v i i ớ ≥2) Trong đó: d là công sai
Trang 4a[i]=a[i-1]+d (v i i ớ ≥2)
Trong đó: d là công sai
Trong công thức trên giá trị nào đã biết và giá trị nào cần phải
tính?
Cần tính d (công sai)
Trang 5Ý tưởng
giải bài toán?
- d:=a[2]-a[1] ;
-Duy t m ng A t 3 đ n n, trong quá trình ệ ả ừ ế
duyệt kiểm tra điều kiện:
+ Nếu a[i]=a[i-1]+d thì duyệt m ng A tiếpả
+ Nếu a[i]<>a[i-1]+d thì dừng
- Kiểm tra nếu i>n thì KL A là cấp số
cộng, ngược lại A không là cấp số cộng
Trang 6Chöông trình
var A:array[1 100] of integer;
i,n:integer
Begin
write(‘Nhap so PT’);readln(n);
for i:=1 to n do
begin
Write(‘Nhap PT thu ’,i,’la : ’);
readln(a[i]);
end;
Trang 7i:=3;
while (i<=n) and (a[i]=a[i-1]+d) do
i:=i+1;
if i>n then
write(‘Day A la cap so cong ’)
else
write(‘Day A khong la cap so cong’);
readln;
Trang 8Bài 2: 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 đưa ra những thông tin sau:
a)Số lượng số chẵn và số lẻ trong dãy
b)Số lượng số nguyên tố trong dãy
Trang 9Hàm nào
dùng để kiểm
tra 1 số là số
lẻ hoặc chẵn?
- Odd(x): Trả giá trị TRUE
nếu x lẻ, FALSE nếu x
chẵn
Trang 10Ýù tưởng để giải bài toán?
- Slc:=0;Sll:=0;
-Duyệt mảng A từ phần tử 1 đến n,
trong quá trình duyệt kiểm tra điều
kiện:
- If Odd(i) then Sll:=Sll+1 else
Slc:=Slc+1;
Trang 11Chương trình
Var A:array[1 100] of integer;
I,n,Slc,Sll:integer;
Begin
{Học sinh cần nhập n và mảng A}
{Phần xử lí}
Sll:=0;
Slc:=0
for i:=1 to n do
if odd(i) then Sll:=Sll+1 Else Slc:=Slc+1;
writeln(‘So luong so chan’,Slc);
writeln(‘So luong so le’,Sll);
End.
Trang 12Ýù tưởng khác
để giải bài
toán?
- Slc:=0;Sll:=0;
-Duyệt mảng A từ phần tử 1 đến n,
trong quá trình duyệt kiểm tra điều
kiện:
- If (i mod 2 <>0) then Sll:=Sll+1 else Slc:=Slc+1;
Trang 13Chương trình
Var A:array[1 100] of integer;
I,n,Slc,Sll:integer;
Begin
{Học sinh cần nhập n và mảng A}
{Phần xử lí}
for i:=1 to n do
if (i mod 2<>0) then Sll:=Sll+1 Else Slc:=Slc+1;
writeln(‘So luong so chan’,Slc);
writeln(‘So luong so lẻ’,Sll);
End.
Trang 14ÔN TẬP
Về nhà làm bài tập
- Biết nhập và khai báo kiểu dữ
liệu cho các bài toán 6b, 7,
8,9,10,11
- Viết ý tưởng để giải các bài toán
trên.