KIỂM TRA BÀI CŨ Hãy viết các đoạn chương trình thực hiện các thao tác sau: 1 Khai báo mảng một chiều A gồm 10 phần tử theo một trong hai cách trực tiếp hoặc gián tiếp 2 Nhập vào một dãy [r]
Trang 1KIỂM TRA BÀI CŨ
Hãy viết các đoạn chương trình thực
hiện các thao tác sau:
1) Khai báo mảng một chiều A gồm 10
phần tử theo một trong hai cách (trực tiếp hoặc gián tiếp)
2) Nhập vào một dãy số nguyên gồm 10
phần tử 3) In dãy số nguyên gồm 10 phần tử theo
chiều nhập và chiều ngược lại 4) Tính tổng các số chia hết cho 3 trong
dãy gồm 10 phần tử
Trang 2BÀI TẬP
Giáo viên thực hiện: Nguyễn Thị Nhung
Trường THPT Trần Phú
Trang 3Bài 1: Nhập vào một dãy số nguyên gồm N phần tử A1, A2, …, AN Hãy tính tổng các số chẵn và tổng các
số lẻ trong dãy.
- Input: + Số nguyên dương N
+ Các số nguyên A1, A2, …,AN
- Output: Tổng các số chẵn và tổng các
số lẻ trong dãy
BÀI TOÁN TÍNH TỔNG THEO ĐIỀU
KIỆN CHO TRƯỚC
Trang 4Ý tưởng???
Trang 5 Ý tưởng:
- Đầu tiên, khởi tạo giá trị Schan=0, Sle=0;
- Lần lượt với I từ 1 đến N, nếu số hạng Ai nào chia hết cho 2 thì cộng giá trị Ai đó vào tổng Schan (Schan=Schan+Ai), ngược lại sẽ cộng Ai vào tổng Sle (Sle=Sle+Ai)
Trang 6 Hoạt động nhóm:
Cả lớp chia ra làm 2 nhóm thảo luận, sau đó mỗi nhóm lần lượt cử lên các đại diện lần lượt lên viết các đoạn chương trình sau:
Khai báo biến
Nhập vào mảng 1 chiều gồm N phần tử A 1 , A 2 , …, A N
Tính tổng các số chẵn và tổng các số lẻ
In kết quả
Chú ý: Các học sinh lên lần lượt, không được lên đồng thời nhiều bạn một lúc Nếu nhóm nào làm đúng và nhanh hơn thì được điểm cộng vào bài kiểm tra tiếp theo.
Trang 7Program tongchan_tongle;
uses crt;
Var A:array[1 250] of integer;
i,n,Schan,Sle:integer;
Begin
clrscr;
Write(' Nhap vao so phan tu cua mang n= '); readln(n);
For i:=1 to n do
Begin
write(' Nhap vao phan tu thu ',i,': ');
readln(a[i]);
End;
Schan:=0; Sle:=0;
For i:=1 to n do
If (a[i] mod 2 = 0) then Schan:=Schan+a[i]
Else Sle:=Sle+a[i];
Write(' Tong cac so chan la: ',Schan,' Tong cac so le la: ',Sle);
Readln;
End.
Khai báo
Nhập mảng một chiều
TÍnh tổng chẵn
và tổng lẻ
In KQ
Trang 8Bài 2: Nhập vào một dãy số nguyên gồm N phần tử A1, A2, …, AN Hãy đếm xem trong dãy có bao nhiêu phần tử là số âm Hãy in
ra các số chia hết cho 2 và 5
- Input: + Số nguyên dương N
+ Các số nguyên A1, A2, …,AN
- Output: + Các số chia hết cho 2 và 5
+ Số lượng các phần tử là số âm
THEO ĐIỀU KIỆN CHO TRƯỚC
Trang 9Ý tưởng???
Trang 10 Ý tưởng:
- Đầu tiên gán Dem = 0
- Lần lượt với I từ 1 đến N, nếu Ai nào nhỏ hơn 0 thì tăng Dem lên 1 đơn vị Dem=Dem+1
- Lần lượt với I từ 1 đến N, nếu Ai nào đồng thời chia
Trang 11 Hoạt động nhóm:
Cả lớp chia ra làm 4 nhóm, mỗi nhóm viết một phần sau:
Trang 12{Khai bao}
Program In_so_chan;
uses crt;
Var A: array[1 250] of integer;
i,n:integer;
Begin
clrscr;
{Nhap mang 1 chieu}
Write(' Nhap vao so phan tu cua
mang n= '); readln(n);writeln;
For i:=1 to n do
Begin
write(' Nhap vao phan tu thu
',i,': ');
readln(a[i]);
End;
{Dem cac so am}
Dem:=0;
For i:= 1 to n do
If (a[i] <0) then Dem:=Dem+1; Writeln(‘Co ‘,dem,’ so am trong day’);
{In cac so chia het cho 2 va 5}
For i:= 1to n do
If (a[i] mod 2 = 0) and (a[i] mod 5=0) then write(a[i]:5); readln
End.
Trang 13CỦNG CỐ
Cần nhớ kỹ các thao tác làm việc với mảng một chiều sau:
1 Khai báo mảng một chiều
2 Nhập mảng một chiều
3 Tính tổng các phần tử mảng theo điều kiện cho trước
4 In mảng một chiều theo điều kiện cho trước
5 Đếm số phần tử mảng theo điều kiện cho trước
Trang 14BÀI TẬP
AN Hãy tìm GTNN trong dãy và chỉ số của nó.
…, AN Hãy tính tổng các số âm và số dương trong dãy
AN Hãy in ra các giá trị là âm chẵn trong dãy A theo chiều
ngược lại.
…, A100 và từ khóa k (số nguyên) Hãy kiểm tra xem trong dãy
có bao nhiêu phần tử có giá trị bằng k?