BÀI TẬP VỀ NHÀ 1: Viết chương trình nhập vào 10 số nguyên.. Xuất các số dương ra màng hình..[r]
(1)Giáo án Tin học Tuần: Tiết: 1, Ngày soạn: 30/08/2006 Ngày dạy: ÔN TẬP I MỤC TIÊU *Thống kê lại và nắm tất các các kiến thức đã học từ việc viết chương trình đơn giản đến chương trình có chứa vòng lặp xác định For *Rèn luyện cách ứng phó bài tập lớn II CHUẨN BỊ GV: *Thống kê lại tất các kiến thức lớp HS: *Ôn trước nhà lại tất kiến thức đã học *Nắm lại cách viết chương trình trên máy III BÀI ÔN TẬP Thủ tục nhập xuất -Nhập: READ, READLN Ví dụ: Nhập liệu vào biến a thì ta viết: READLN(a); -Xuất: WRITE, WRITELN Ví dụ: Xuất liệu từ biến a thì ta viết: WRITELN(a); Các kiểu liệu -Số nguyên: INTEGER, LONGINT Ví dụ: var: integer; -Số thực: REAL Ví dụ: var: Real; IF THEN ELSE -Cú pháp: IF <ĐK> THEN <CV1> ELSE <CV2> -Đây là câu lệnh điều kiện -ĐK đúng thì thực CV1, ĐK sai thì thực CV2 VD: IF a>0 THEN b:=3 ELSE b:=5; Nếu a nhận giá trị là thì b=5 Nếu a nhận giá trị –4 thì b=3 FOR TO DO -Cú pháp: FOR <biến>:=<giá trị đầu> TO <biến>:=<giá trị cuối> DO <công việc> -Đây là vòng lặp xác định VD: For i:=1 to writeln(i); -i nhận giá trị là 1, 2, và thực công việc xuất i tương ứng BÀI TẬP Bài 1: Viết chương trình nhập vào số nguyên a, b Tính a+b và xuất kết màn hình Bài 2: Viết chương trình nhập vào số nguyên a, b Tính a+b, a-b, a*b và xuất kết màn hình Bài 3: Viết chương trình nhập vào số nguyên a, b Tính a2 và xuất kết màn hình Bài 4: Viết chương trình nhập vào số nguyên a, b Tính a2 + b2 và xuất kết màn hình Bài 5: Viết chương trình nhập vào số nguyên a, b Tính a2 + b2 ,a2 - b2 và xuất kết màn hình GV: Lưu Thị Bích Hạnh Lop8.net (2) Giáo án Tin học Bài giải Program bai1; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a+b); Readln; end Program bai2; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a+b); write(‘ Hieu la’);writeln(a-b); Readln; end Program bai3; Var a:integer; Begin write(‘ nhap a=’);readln(a); write(‘ ket qua la’);writeln(a*a); Readln; end Program bai4; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a*a+b*b); Readln; end Program bai5; Var a,b:integer; Begin write(‘ nhap a=’);readln(a); write(‘ nhap b=’);readln(b); write(‘ Tong la’);writeln(a*a+b*b); write(‘ Hieu la’);writeln(a*a-b*b); Readln; end IV HƯỚNG DẪN VỀ NHÀ Ôn lại tất kiến thức đã học Người soạn Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Lop8.net (3) Giáo án Tin học Tuần: Tiết: 3, Ngày soạn: Ngày dạy: VÒNG LẶP WHILE DO I II III MỤC TIÊU *Nắm cú pháp và cách sử dụng vòng lặp WHILE…DO… *Biết khác REPEAT, WHILE và FOR *Nhận biết nào sử dụng lệnh lặp nào CHUẨN BỊ GV: * Dùng bảng phụ ghi tóm tắt lại nôi dung bài học HS: *Học thuộc bài cũ *Đọc trước bài BÀI MỚI Lưu đồ lệnh WHILE DO * Lưu đồ * Ý nghĩa lưu đồ: Trong mà điều kiện còn đúng thì thực Công việc, quay trở kiểm tra điều kiện lại Vòng lặp tiếp tục, đến điều kiện đặt không còn đúng thì tới thực lệnh Cú pháp lệnh WHILE DO WHILE <điều kiện> DO <Công việc> Ghi chú: · Ðiều kiện cấu trúc lặp WHILE DO là biểu thức logic kiểu Boolean có giá trị là Ðúng (True) Sai (False) · Nếu điều kiện Ðúng thì chương trình chạy cấu trúc WHILE DO · Sau lần lặp, chương trình trở lại kiểm tra điều kiện Tùy theo biểu thức logic điều kiện là Ðúng hay Sai thì chương trình thực Công việc tương ứng · Nếu Sai thì chuyển xuống cấu trúc WHILE DO Ví dụ: GV: Lưu Thị Bích Hạnh Trang Lop8.net (4) Giáo án Tin học Viết chương trình nhập vào số a Nếu a không phải là số dương thì nhập lại, đến nào là số dương thì dừng Bài giải Program bai1; Var a:Real; Begin Readln(a); While a<0 Readln(a); Readln; End Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang Lop8.net (5) Giáo án Tin học Tuần: Tiết: 5, Ngày soạn: Ngày dạy: THỰC HÀNH I II MỤC TIÊU *Viết chương trình có chứa vòng lặp WHILE DO *Thay chương trình có chứa FOR thành WHILE DO và ngược lại *Sửa số lỗi thường gặp CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành III BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào số a Nếu a không phải là số dương thì nhập lại, đến nào là số dương thì dừng Program bai1; Var a:Real; Begin Readln(a); While a<0 Readln(a); Readln; End Bài 2: Viết chương trình nhập vào số a Nếu a không phải là số chẵn thì nhập lại, đến nào là số chẵn thì dừng Program bai2; Var a:Real; Begin Readln(a); While a mod 2<>0 Readln(a); Readln; End IV HƯỚNG DẪN VỀ NHÀ Lài bài tập và xem trước bài Người soạn Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang Lop8.net (6) Giáo án Tin học Tuần: Tiết: 7, Ngày soạn: Ngày dạy: VÒNG LẶP REPEAT UNTIL I II III MỤC TIÊU *Nắm cú pháp và cách sử dụng vòng lặp REPEAT…UNTIL… *Biết khác REPEAT …UNTIL… và FOR *Nhận biết nào sử dụng lệnh lặp nào CHUẨN BỊ GV: * Dùng bảng phụ ghi tóm tắt lại nôi dung bài học HS: *Học thuộc bài cũ *Đọc trước bài BÀI MỚI Lưu đồ lệnh và Cú pháp Câu lệnh REPEAT UNTIL dùng các trường hợp biến điều khiển không có kiểu rời rạc và đặc biệt các trường hợp số lần lặp không biết trước * Ý nghĩa: Nếu điều kiện logic là Sai (False) thì lặp lại lệnh điều kiện Ðúng thì thoát khỏi cấu trúc REPEAT UNTIL Nếu có nhiều câu lệnh thì lệnh ngăn cách dấu chấm phẩy (;)Công việc REPEAT và UNTIL không thiết phải dùng lệnh ghép để nhóm từ lệnh đơn trở lên thành công việc VÍ DỤ Viết chương trình nhập vào số a Nếu a không phải là số dương thì nhập lại, đến nào là số dương thì dừng Bài giải Program bai1; Var a:Real; Begin GV: Lưu Thị Bích Hạnh Trang Lop8.net (7) Giáo án Tin học Repeat Readln(a); Until a>0; Readln; End Sự khác biệt While và Repeat: So sánh cách viết WHILE DO và REPEAT UNTIL ta thấy có khác biệt: -Vòng lặp While luôn luôn với cặp từ khoá Begin và End còn vòng lặp Repeat không cần sử dụng cặp Begin và End - Trong cấu trúc WHILE DO thì <Ðiều kiện> kiểm tra trước, thỏa <Ðiều kiện> thì thực <Công việc> - Ngược lại, cấu trúc REPEAT UNTIL thì <Công việc> thực thi trước sau đó kiểm tra <Ðiều kiện>, không thỏa <Ðiều kiện> thì tiếp tục thi hành <Công việc> <Ðiều kiện> là đúng Lệnh REPEAT UNTIL thường sử dụng lập trình, là lúc người sử dụng muốn tiếp tục bài toán trường hợp thay đổi biến mà không phải trở chương trình và nhấn tổ hợp phím Ctrl + F9 lại Ví dụ 6.18: Nhân số a và b PROGRAM Tich; VAR a, b : integer ; CK : char ; BEGIN REPEAT Write (' Nhập số a = '); Readln (a) ; Write (' Nhập số b = '); Readln (b) ; Writeln (' Tích số a x b là :' , a*b : 10 ) ; Writeln (' Tiếp tục tính không (CK) ? '); Readln (CK) ; UNTIL upcase(CK) = K; {hàm chuyển đổi ký tự biến} {CK thành ký tự in hoa} END Việt trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang Lop8.net (8) Giáo án Tin học Tuần: Tiết: 9, 10 Ngày soạn: Ngày dạy: THỰC HÀNH I MỤC TIÊU *Hiểu rỏ cách chạy chương trình vòng lặp REPEAT *Thay chương trình có chứa FOR thành REPEAT và ngược lại *Sửa số lỗi thường gặp II CHUẨN BỊ GV:*Chuẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành III BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào số a Nếu a không phải là số dương thì nhập lại, đến nào là số dương thì dừng Bài 2: Viết chương trình nhập vào số a Nếu a không phải là số chẵn thì nhập lại, đến nào là số chẵn thì dừng Bài giải bài Bài giải bài Program bai1; Var a:Real; Begin Repeat Readln(a); Until a>0; Readln; End Program bai2; Var a:Real; Begin Repeat Readln(a); Until a mod 2=0; Readln; End IV HƯỚNG DẪN VỀ NHÀ Lài bài tập và xem lại bài thực hành Người soạn Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang Lop8.net (9) Giáo án Tin học Tuần: Tiết: 11, 12 Ngày soạn: Ngày dạy: CẤU TRÚC DỮ LIỆU MẢNG I MỤC TIÊU * Biết nào là mảng,cách khai báo, nhập liệu, và các thao tác trên máy * Biết nào sử dụng mảng, hiệu việc sử dụng mảng II CHUẨN BỊ GV: * Một số ví dụ thực tế mảng HS: * Ôn lại vòng lặp FOR III BÀI MỚI Khai báo liệu kiểu mảng Một mảng liệu gồm số hữu hạn phần tử có cùng kiểu gọi là kiểu Số phần tử mảng xác định từ định nghĩa mảng Mỗi phần tử mảng đựoc truy nhập trực tiếp thông qua tên mảng cùng với dẫn truy nhập để hai ngoặc vuông [ ] Định nghĩa biến A có kiểu mảng : gồm có các phần tử từ n đến m và có kiểu liệu là KDL thì khai báo sau: VAR A : Array[ n m ] Of KDL ; Ví dụ: Khai báo mảng BB có các phần tử từ đến 10 và kiểu liệu chứa là số nguyên (INTEGER) nhạp vào từ bàn phím: VAR BB : Array[ 10] Of INTEGER ; Đưa liệu vào mảng Ta có thể đưa liệu từ ngoài (bàn phím) vào mảng lệnh READ READLN sau: READ( BB(i) ) ; READLN( BB(i) ) ; Ví dụ: Cho mảng 10 phần tử và nhập vào mảng các số nguyên từ bàn phím VAR A: ARRAY [1 10] OF INTEGER; I: INTEGER; BEGIN For i:=1 to 10 Readln(A(i)); Readln; END Hoặc để sáng suốt thì ta có thể viết sau: VAR A: ARRAY [1 10] OF INTEGER; I: INTEGER; BEGIN For i:=1 to 10 Begin Write(‘ Nhap phan tu thu ‘,i,’ =’); Readln(A(i)); GV: Lưu Thị Bích Hạnh Trang Lop8.net (10) Giáo án Tin học End; Readln; END Đưa liệu từ mảng màng hình Ta có thể đưa liệu từ mảng ngoài màn hình lệnh WRITE WRIELN sau: WRITE( BB(i) ) ; WRITELN( BB(i) ) ; Ví dụ: Cho mảng 10 phần tử và nhập vào mảng các số nguyên từ bàn phím và cho màn hình VAR A: ARRAY [1 10] OF INTEGER; I: INTEGER; BEGIN For i:=1 to 10 Readln(A(i)); Writeln(‘ cac so vua nhap la: ‘); For i:=1 to 10 wrieln(A(i)); Readln; END 4.Lấy liệu từ mảng để xử lý: Ví dụ: Nhập từ bàn phím 10 số và tính tổng nó VAR A: ARRAY [1 10] OF INTEGER; i: INTEGER; BEGIN For i:=1 to 10 Begin Write( ‘nhap phan tư thu ‘,i,’ =’);readln(A(i)); End; For i:=1 to 10 tong:= tong+A(i); Write (‘Tong la: ‘, tong); Readln; END Việt Trì, ngày… tháng… năm… Người soạn Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 10 Lop8.net (11) Giáo án Tin học Tuần: Tiết: 13, 14 Ngày soạn: Ngày dạy: THỰC HÀNH I MỤC TIÊU *Hiểu rỏ cách viết chương trình có sử dụng mảng *Hiểu rỏ cách chạy chương trình có sử dụng mảng *Sửa số lỗi thường gặp II CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành III BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào 10 số nguyên Xuất các số dương màng hình Bài giải Program bai1; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to 10 if a[i] > then Writeln(a[i]); Readln; End Bài 2: Viết chương trình nhập vào 10 số nguyên dương Xuất các số chẵn màn hình Bài giải Program bai2; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to 10 if a[i] mod 2= then Writeln(a[i]); Readln; Người soạn End Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 11 Lop8.net (12) Giáo án Tin học Tuần: Tiết: 15, 16 Ngày soạn: Ngày dạy: XÂY DỰNG GIẢI THUẬT SẮP XẾP MẢNG I MỤC TIÊU * Biết số ứng dụng mảng vào việc giải số bài tập * Biết nào sử dụng mảng, hiệu việc sử dụng mảng II CHUẨN BỊ GV: * Một số ví dụ thực tế mảng * Dùng bảng phụ ghi trước giải thuật xếp mảng HS: * Ôn lại vòng lặp FOR III BÀI MỚI Bài toán Cho mảng M có N phần tử là các số thực, hãy xếp các số đó theo thứ tự tăng dần Thuật giải Giả sử mảng M có phần tử (N = 8) là các số thực Ý tưởng thuật giải xếp đây là Bước Ta chọn phần tử nhỏ các phần tử từ phần tử thứ đến phần tử thứ N, tráo đổi nó với phần tử thứ Bước Ta chọn phần tử nhỏ các phần tử từ phần tử thứ hai đến phần tử thứ N, tráo đổi nó với phần tử thứ hai Tương tự cho các bước từ bước đến bước N Ta xét cho bước tổng quát thứ i nào đó (i nhận giá trị từ đến N) Bước i Ta tìm số K phần tử nhỏ các phần tử từ phần tử thứ i đến phần tử thứ N, tráo đổi nó với phần tử thứ i Chương trình Để tráo đổi hai phần tử cho nhau, ta cần thęm phần tử TG (trung gian) thứ ba Program SapXep ; Const n = ; Var m : array[1 n ] of real ; i , j , k : byte ; tg : real ; BEGIN writeln(' Vao tung phan tu cua mang ') ; For i := To n Do Begin Write (' M[ ' , i , ' ]= ') ; Readln (m [ i ]) ; End ; Writeln ; Writeln(' Da vao xong cac phan tu cua mang ') ; For i := To n - Do GV: Lưu Thị Bích Hạnh Trang 12 Lop8.net (13) Giáo án Tin học Begin k := i ; For j := i +1 To n Do If m[k] > m[j] Then k := j ; If k > i Then Begin tg := m[ i ] ; m[i] := m[k] ; m[k] := tg ; End; End; Writeln(' Cac phan tu da duoc sap xep la ') ; For i := To n Do Write (m [ i ] : : 2) ; Readln END IV CỦNG CỐ Sắp xếp cách chọn trực tiếp Có nhiều thuật giải xếp mảng Trong chương trình trên ta dùng thuật giải chọn trực tiếp Giả sử mảng có N phần tử, ta thực sau: Với vòng lặp theo i từ đến N - ta cho K := i ; dùng vòng lặp theo j (lồng vào bên vòng lặp theo i) j duyệt từ i + đến N để tìm số K phần tử nhỏ các phần tử từ phần tử thứ i đến phần tử thứ N, cách gặp phần tử thứ j nhỏ phần tử có số lưu giữ K thì gán K := j ; Hết vòng lặp theo j thì tráo đổi phần tử thứ K với phần tử thứ i (nếu K > i) V BÀI TẬP VỀ NHÀ 1: Viết chương trình nhập vào 10 số nguyên Xuất các số dương màng hình 2: Viết chương trình nhập vào 10 số nguyên dương Xuất các số chẵn màn hình Viết chương trình nhận vào chiều cao các bạn Mai, Lan, Cúc, Thu, Bích Thuỷ, Hồng Nhung, Anh Sắp xếp và in màn hình chiều cao các bạn theo thứ tự tăng dần Yêu cầu khai báo kiểu liệt kê tương ứng với tên các bạn để làm số cho mảng lưu trữ chiều cao họ Viết chương trình cho máy nhận vào mảng A có n phần tử là số thực (n > 9) Xây dựng mảng B các phần tử là số nguyên tạo thành từ các phần tử mảng A theo cách B[i] là trị tuyệt đối phần nguyên A[i] Sắp xếp và in mảng A, mảng B theo thứ tự tăng dần Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 13 Lop8.net (14) Giáo án Tin học Tuần: Tiết: 17, 18 Ngày soạn: Ngày dạy: THỰC HÀNH I MỤC TIÊU *Hiểu rỏ cách viết chương trình có sử dụng mảng *Hiểu rỏ cách chạy chương trình có sử dụng mảng *Sửa số lỗi thường gặp II CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành III BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào 10 số nguyên Xuất các số dương màng hình Bài giải Program bai1; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to 10 if a[i] > then Writeln(a[i]); Readln; End Bài 2: Viết chương trình nhập vào 10 số nguyên dương Xuất các số chẵn màn hình Bài giải Program bai2; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to 10 if a[i] mod 2= then Writeln(a[i]); Readln; Người soạn End Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 14 Lop8.net (15) Giáo án Tin học Tuần: 10 Tiết: 19, 20 Ngày soạn: Ngày dạy: THỰC HÀNH I MỤC TIÊU *Củng cố lại kiến thức đã học II ĐỀ ĐỀ KIỂM TRA TIẾT MÔN TIN HỌC Đề: Viết chương trình nhập vào mảng có số Sắp xếp theo thứ tự tăng dần VD: Nhập -6 Xuất: -6 * Lưu ý Học sinh lưu bài với tên và kết hợp với lớp mình VD: học sinh là trần Quốc Cường lớp 8A1 thì lưu với tên là: D:\cuong8a1.pas Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 15 Lop8.net (16) Giáo án Tin học Tuần: 11 Tiết: 21, 22 Ngày soạn: Ngày dạy: THỰC HÀNH II MỤC TIÊU *Hiểu rỏ cách viết chương trình có sử dụng mảng *Hiểu rỏ cách chạy chương trình có sử dụng mảng *Sửa số lỗi thường gặp III CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành IV BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào 10 số nguyên Sắp xếp theo thứ tự tăng dần và xuất màn hình Bài 2: Viết chương trình nhập vào 10 số nguyên dương Sắp xếp theo thứ tự tăng dần và xuất các số dương màn hình Bài giải Program bai1; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to For j:=i+1 to 10 if a[i] >a[j] then begin tam:=a[i]; a[i]:=a[j];a[j]:=tam; end; For i:=1 to 10 writeln(a[i]); Readln; End Program bai1; Var a:Array[1 10] of Integer; i:integer; Begin For i:=1 to 10 Readln(a[i]); For i:=1 to For j:=i+1 to 10 if a[i] >a[j] then begin tam:=a[i]; a[i]:=a[j];a[j]:=tam; end; For i:=1 to 10 if a[i] > then writeln(a[i]); Readln; End Bài giải Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 16 Lop8.net (17) Giáo án Tin học Tuần: 12 Tiết: 23, 24 Ngày soạn: Ngày dạy: THUẬT TOÁN MAX, MIN I MỤC TIÊU * Biết số ứng dụng mảng vào việc giải số bài tập * Biết nào sử dụng mảng, hiệu việc sử dụng mảng II CHUẨN BỊ GV: * Một số ví dụ thực tế mảng * Dùng bảng phụ ghi trước giải thuật xếp mảng HS: * Ôn lại vòng lặp FOR III BÀI MỚI Tìm giá trị nhỏ dãy đã cho PROGRAM Tim_Min; CONST a:array[1 10] of shortint=(0, 1, 2, 3, 4, -1, -2, -3, -4, 5); VAR amin: shortint; {chứa giá trị nhỏ dãy} i: byte; {chỉ số dãy} BEGIN amin:= a[1]; {cho amin phần tử đầu tiên} For i:=2 to 10 {so amin với các phần tử khác dãy} If amin>a[i] Then amin:=a[i]; {nếu còn phần tử nào nhỏ amin thì thay amin phần tử đó} Writeln('amin=', amin); Readln; END Mở rộng: Tìm giá trị lớn dãy đã cho *Học sinh tự giải Tìm giá trị nhỏ thứ hai dãy và đổi nó vị trí thứ hai Hướng dẫn: Tìm phần tử nhỏ dãy, đổi nó vị trí đầu tiên Sau đó tìm phần tử nhỏ dãy còn lại PROGRAM Tim_Min_Thu2; CONST a:array[1 10] of shortint=(0, 1, 2, 3, 4, -1, -2, -3, -4, 5); VAR i: byte; {chứa số các phầnt tử dãy} imin: byte; {đánh dấu vị trí amin} atg: shortint; {chứa giá trị trung gian đổi chỗ các phần tử} BEGIN imin:=1; {a[1] coi là nhỏ nhất} For i:=2 To 10 Do {so với các phần tử còn lại} If a[imin]> a[i] Then imin:=i; {nếu còn phần tử nhỏ thì đánh dấu phần tử đó} atg:=a[1]; GV: Lưu Thị Bích Hạnh Trang 17 Lop8.net (18) Giáo án Tin học a[1]:=a[imin]; {đổi giá trị nhỏ đầu dãy} a[imin]:=atg; imin:=2; For i:=3 To 10 Do If a[imin]>a[i] Then imin:=i; Writeln('Phần tử nhỏ thứ dãy là:', a[imin]); Readln; END Mở rộng: Tìm giá trị lớn thứ hai dãy và đổi nó vị trí thứ hai *Học sinh tự thực IV BÀI TẬP VỀ NHÀ Bài 1: Viết chương trình nhập vào số nguyên a, b Xuất số lớn màng hình Bài 2: Viết chương trình nhập vào số nguyên a,b, c, d Xuất số lớn nhất, nhỏ Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 18 Lop8.net (19) Giáo án Tin học Tuần: 13 Tiết: 25, 26 Ngày soạn: Ngày dạy: THỰC HÀNH V MỤC TIÊU *Hiểu rỏ cách viết chương trình có sử dụng thuật toán Max - Min *Hiểu rỏ cách chạy chương trình có sử dụng thuật toán Max – *Sửa số lỗi thường gặp VI CHUẨN BỊ GV:*Chẩn bị phòng máy, bài tập, lịch trình tiến trình thực hành HS: *Ôn lại lý thuyết đã học * Giải trước bài tập nhà vào tập để thực hành VII BÀI THỰC HÀNH Bài 1: Viết chương trình nhập vào số nguyên a, b Xuất số lớn màng hình Bài giải Program bai1; Var a, b:integer; Begin Write(‘ nhap vao so nguyen a = ‘); Readln(a); Write(‘ nhap vao so nguyen b = ‘); Readln(b); Max:=a; If b> max then Max:=b; Write(‘ so lan nhat la ‘,max); Readln; End Bài 2: Viết chương trình nhập vào số nguyên a,b, c, d Xuất số lớn nhất, nhỏ màn hình Bài giải Program bai2; Var a, b, c, d:integer; Begin Write(‘ nhap vao so nguyen a = ‘); Readln(a); Write(‘ nhap vao so nguyen b = ‘); Readln(b); Write(‘ nhap vao so nguyen c = ‘); Readln(c); Write(‘ nhap vao so nguyen d = ‘); Readln(d); Max:=a; If b> max then Max:=b; If c> max then Max:=c; If d> max then Max:=d; Write(‘ so lon nhat la ‘,max); GV: Lưu Thị Bích Hạnh Trang 19 Lop8.net (20) Giáo án Tin học Min:=a; If b< Min then Min:=b; If c< Min then Min:=c; If d< Min then Min:=d; Write(‘ so nho nhat la ‘,Min); Readln; End * Mở rộng: Tìm số lớn số, số, nhiều số ( sử dụng mảng) Việt Trì, ngày… tháng… năm… Duyệt tổ trưởng Người soạn Lưu Thị Bích Hạnh GV: Lưu Thị Bích Hạnh Trang 20 Lop8.net (21)