1. Trang chủ
  2. » Giáo án - Bài giảng

giao an tin hoc 11

14 651 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 100,5 KB

Nội dung

Hãy viết chơng trình đa ra tổng các phần tử của từng hàng.. + Input: + Output: * Chơng trình mẫu: Hs: Trả lời Gv: Nhận xét, đối tợng trong thuật toán là một số nguyên, trong bài tập này

Trang 1

Bài tập

(T23, 24)

I Mục đích - yêu cầu

- Củng cố lại các kiến thức về mảng

- Chữa các bài tập trong sách giáo khoa, rèn kĩ năng phân tích bài toán, kĩ năng vận dụng lý thuyết vào bài tập

- Trang bị các kiến thức cớ bản cho các giờ thực hành tiếp sắp tới

II Lên lớp

1 ổ n định lớp

2 Bài mới

* Cú pháp khai báo

+ Mảng một chiều:

- Khai báo trực tiếp

Var <tên biến mảng>:array[kiểu chỉ

sô] of <kiểu phần tử>;

- Khai báo gián tiếp:

Type <tên kiểu mảng>=array[kiểu chỉ

số] of <kiểu phần tử>;

Var <tên biến mảng>:<tên kiểu mảng>;

+ Mảng hai chiều:

- Khai báo trực tiếp

Var <tên biến mảng>:array[kiểu chỉ sô

hàng,kiểu chỉ số cột] of <kiểu phần tử>;

- Khai báo gián tiếp:

Type <tên kiểu mảng>=array[kiểu chỉ

số hàng, kiểu chỉ số cột] of <kiểu phần

tử>;

Var <tên biến mảng>:<tên kiểu mảng>;

Gv: Nhắc lại các kiến thức cơ bản của bài: cách khai bao biến mảng, mục

đích, ý nghĩa của các thành phần Gv: Ghi lên bảng cách khai báo mảng một chiều, mảng hai chiều

Gv: Giải đáp các thắc mắc về các câu hỏi lý thuyết trong sách giáo khoa và sách bài tập

Trang 2

Bài 5: Sách giáo khoa

+ Input: N, và dãy số a1, a2, ,an

+ Output: dãy số trên có phải là cấp số

cộng hay không

* Chơng trình chuẩn

Program b5;

Uses crt;

Var A:array[1 1000] of integer;

D, i: integer;

Begin

Writeln(‘moi ban nhap so phan tu’);

Readln(n);

For i:= 1 to n do

Begin

Write(‘ban nhap vao so hang thu’,i,’:’);

Write(‘A[‘,i,’]=’);

Readln(a[i]);

End;

D:=A[2]-A[1];

For i:=3 to n do

If A[i] - A[i-1]<> d then

Writeln(‘day so tren khong la day so

cong’)

Else

Writeln(‘day so tren la cap so cong’);

For i:=1 to n do

Write(A[i]:4);

Readln;

End

Bài 6:

Gv: yêu cầu học sinh xác định bài toán

Gv: Thế nào là một cấp số cộng ? Hs: Trả lời

Gv: giả sử ta có D= A[1] – A[2]

=> dãy trên là cấp số cộng nếu thoả mãn điều kiện:

A[i] = A[1] + (i-1)d Gv: Gọi học sinh lên làm bài tập

Gv: Nhận xét những mặt đợc và những mặt cha đợc trong cách trình bày của học sinh

Gv: Yêu cầu học sinh xác định bài toán? Xây dựng ý tởng giải bài toán

Trang 3

+ Input: Số N và dãy số nguyên a1,a2,…./…./……,an

+ Output: - Số lợng số chẵn, lẻ trong dãy

- Số lợng số nguyên trong dãy

Program b6;

Uses crt;

Var a: array[1 1000] of integer;

Sc, sl, i, j, nt, n, t: integer;

Begin

Clrscr;

Writeln(‘ moi ban nhap so phan tu cua

day’); Readln(n);

For i:=1 to n do

Begin

Write(‘moi ban nhap phan tu thu’,i,’=’);

Readln(a[i]);

End;

Write(‘ day so vua nhap la:’);

For i:=1 to n do Write(a[i]:4);

Sc:=0; Sl:=0;

For i:=1 to n do

If a[i] mod 2 = 0 then sc:=sc+1

Else sl:= sl+1;

Writeln(‘ trong day co ‘,sc,’ so chan’);

Writeln(‘trong day co ‘,sl,’ so le’);

Nt:=0;

For i:=1 to n do

Begin

T:=0;

For j:=2 to a[i] div 2 do

If a[i] mod j = 0 then t:= t + 1;

Gv: Biểu thức điều kiện nào để kiểm tra một số là số chẵn hay lẻ ?

Hs: Trả lời Gv: Đa ra câu lệnh sau:

If a[i] mod 2 = then writeln(‘ day la

so chan’) Else writeln(‘ day la so le’);

- Để làm đợc việc trên thì ta phải duyệt từ đầu dãy đễn cuối dãy số, nên

ta dùng lệnh: For – do

- Khi điều kiện trên thoả mãn thì đó là

số chẵn ngợc lại thì là số lẻ Nh vậy ta

sẽ dùng 2 biến: Sc, Sl để đếm số chẵn,

số lẻ khi điều kiện thoả mãn

Gv: Ta có thể kết hợp ý b) vào đoạn chơng trình này không?

Hs: Đợc

Gv: Phân tích những nét chung giữa hai ý

Gv: Em nào có thể nếu cho thầy thuật toán kiểm tra một số N có phải là số nguyên tố hay không?

Trang 4

If t=0 then

Begin

Writeln(‘ So ‘,a[i],’ la so nguyen to’);

Nt:=nt+1;

End;

End;

Writeln(‘ trong day co ‘,nt,’ so nguyen

to’);

Readln;

End

Bài 7:

Program b7;

Var n, i: Integer;

F, F1, F2: integer;

Begin

Writeln(‘Tim so hang n cua day Phi –

bo – na – xi, N = ‘);

Readln(n);

F1:= 1;

F2:=1;

For i:= 3 to n do

Begin

F:= f1+ f2;

F1:= f2;

F2:= f;

End;

Writeln(f);

Readln;

End

Bài 8: Cho mảng hai chiều m, n gồm các

số nguyên Hãy viết chơng trình đa ra

tổng các phần tử của từng hàng

+ Input:

+ Output:

* Chơng trình mẫu:

Hs: Trả lời Gv: Nhận xét, đối tợng trong thuật toán là một số nguyên, trong bài tập này đó là kiểm tra một dãy các số nguyên

Gv: Đa ra chơng trình mẫu, giải thích

ý nghĩa của từng biến, từng câu lệnh

có trong chơng trình

Trang 5

Program b8;

Uses crt;

Var ma:array[1 100, 1 100] of integer;

J, i, m, n, t: integer;

Begin

Write(‘ moi ban nhap so hang m = ‘);

Readln(m);

Write(‘ moi ban nhap so cot n = ‘);

Readln(n);

For i:= 1 to m do

For j:= 1 to n do

Begin

Write(‘ moi ban nhap phan tu

a[‘,i,’,’,j, ’] = ‘);

Readln(a[i,j]);

End;

For i:= 1 to m do

Begin

For j:= 1 to n do

Write(a[i,j]: 4);

Writeln;

End;

For I:= 1 to m do

Begin

T:=0;

For j:=1 to n do t:= t+ a[i,j];

Writeln(‘tong hang thu ‘,i, ’la :‘, t:4);

End;

Readln;

End

Bài 9: Cho mảng hai chiều m, n gồm các

số nguyên Viết chơng trình tìm giá trị lớn

nhất nhỏ nhất của mảng

+ Input: Mảng 2 chiều m,n

+ Output: Max, Min

* Chơng trình mẫu

Program b9;

Uses crt;

Var a: array[1 100,1 50] of integer;

Gv: Giải thích ý nghĩa của từng câu lệnh, từng vòng For - do

Gv: Chúng ta đã có thuật toán tìm giá trị lớn nhất, nhỏ nhất đối với mảng một chiều Tơng tự nh vậy ta có thể vận dụng đối với mảng 2 chiều

Ta sử dụng 2 biến: Max Min Gán: Max:=A[1,j];

Min :=A[1,j];

Trang 6

Max, min, i, j, m , n :integer;

Begin

Clrscr;

Writeln(‘moi ban nhap so hang m =’);

Readln(m);

Writeln(‘moi ban nhap so cot n = ‘);

Readln(n);

For i:=1 to m do

For j:=1 to n do

Begin

Write(‘moi ban nhap phan tu

a[‘,i,’,’,j,’] =’);

Readln(a[i,j]);

End;

For i:=1 to m do

Begin

For j:=1 to n do

Write(a[i,j]:4);

Writeln;

End;

Max:= a[1,j]; min:=a[1,j];

For i:= 1 to m do

Begin

For j:=1 to n do

begin

If max>a[i,j] then max:=a[i,j];

If min <a[i,j] then min:=a[i,j];

End;

End;

Writeln(‘gia tri lon nhat la’, max);

Writeln(‘gia tri nho nhat la’, min);

Readln;

End

Bài 10: Cho mảng 2 chiều m, n gồm các

số nguyên Hãy viết chơng trình tính tổng

các phần tử của từng hàng

* Xác định bài toán

+ Input: mảng hai chiều m, n, gồm các số

nguyên

+ Output: tổng của từng hàng

* Chơng trình mẫu

Program b10;

Trang 7

Uses crt;

Var a: array[1 100,1 100] of integer;

S, i, j, m, n :integer;

Begin

Clrscr;

Write(‘moi ban nhap so hang m = ‘);

Readln(m);

Write(‘moi ban nhap so cot n = ‘);

Readln(n);

For i:=1 to m do

For j:=1 to n do

Begin

Write(‘moi ban nhap phan tu a[‘,i,’,’,j,’]

=’);

Readln(a[i,j]);

End;

For i:=1 to m do

Begin

For j:=1 to n do

Write(a[i,j]:4);

Writeln;

End;

For i:=1 to m do

Begin

S:=0;

For j:= 1 to n do

S:= s+ a[i,j];

Writeln(‘tong cac phan tu hang thu’,

i, ‘ la’, s:2);

End;

Readln;

End

Bài 11: Cho dãy n số nguyên

a Tìm giá trị lớn nhất, nhỏ nhất của dãy

số

b Sắp xếp dãy số theo chiều tăng dần,

giảm dần

c Đếm xem trong dãy số trên có bao

nhiêu số le

d Đếm xem trong dãy số trên có bao

nhiêu số nguyên tố

3 Củng cố

- Cú pháp khai báo mảng, ý nghĩa

- Làm các bài tập liên quan đến mảng

Trang 8

- Xem tríc bµi thùc hµnh.

4 Rót kinh nghiÖm

Trang 9

Bài thực hành 3, 4

(T 25, 26)

I Mục đích yêu cầu

- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệ thông qua việc tìm hiểu, chạy thử các chơng trình có sẵn

- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính

- Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chơng trình chạy nhanh hơn

- Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp

II Chuẩn bị thực hành

- Chia lớp thành các nhóm nhỏ

- Yêu cầu học sinh xem trớc nội dung thực hành ở nhà

- Giáo viên chuẩn bị phòng máy, các máy tính đợc cài các chơng trình cần thiết

III Nội dung thực hành.

Bài 1: Cho dãy n số nguyên Hãy sắp xếp dãy số trên thành dãy tăng dần, giảm dần Gv: Thuật toán này các em đã đợc làm quen, giờ hãy vận dụng để viết thành

ch-ơng trình hoàn chỉnh

Gv: Quan sát học sinh làm bài, giải đáp các thắc mắc trong qua trình lập trình Gv: Nhận xét bài làm của học sinh

Gv: Chạy chơng trình mẫu đã chuẩn bị, giải thích ý nghĩa của từng biến, từng câu lệnh

Bài 2: Cho mảng 2 chiều m hàng, n cột Hãy viết chơng trình nhập và đa mảng ra màn hình Đa ra tổng các phần tử trên từng hành

Trang 10

đề kiểm tra thực hành một tiết

(t 27)

Đề 01

Cho mảng một chiều n số nguyên Viết chơng trình sắp xếp mảng trên thành dãy tăng dần

Đề 02

Cho mảng một chiều n số nguyên Viết chơng trình sắp xếp mảng trên thành dãy giảm dần

Đề 03

Cho mảng một chiều n số nguyên Viết chơng trình tìm giá trị lớn nhất của mảng

số trên

Đề 04

Cho mảng một chiều n số nguyên Viết chơng trình tìm giá trị nhỏ nhất của mảng

số trên

Đề 05

Cho mảg một chiều n số nguyên Viết chơng trình đếm xem trong mảng có bao nhiêu số lẻ, chẵn

Đề 06

Cho mảng một chiều n số nguyên Viết chơng trình đếm xem trong mảng có bao nhiêu số 2

Đề 07

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình đa ra tổng các phần

tử của mảng

Đề 08

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị lớn nhất của mảng

Đề 09

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị nhỏ nhất của mảng

Đề 10

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình đếm xem trong mảng

có bao nhiêu số lẻ, chăn

Đề 11

Trang 11

Cho mảg một chiều n số nguyên Viết chơng trình đếm xem trong mảng có bao nhiêu số nguyên tố

Đề 12

Cho mảg một chiều n số nguyên Viết chơng trình tính tổng các số lẻ có trong dãy

Đề 13

Cho mảg một chiều n số nguyên Viết chơng trình tính tổng các số chẵn có trong dãy

Đề 14

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình đếm xem trong mảng

có bao nhiêu số nguyên tố

Đề 15

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tính tổng các phần tử của từng hàng

Đề 16

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tính tổng các phần tử của từng cột

Đề 17

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị nhỏ nhất của từng cột

Đề 18

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị nhỏ nhất của từng hàng

Đề 19

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị lớn nhất của từng hàng

Đề 20

Cho mảng 2 chiều m, n gồm các số nguyên Viết chơng trình tìm giá trị lớn nhất của từng cột

Trang 12

Bài 12

Kiểu xâu

(T 28)

I Mục đích yêu cầu

- Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều)

- Biết cách khai báo xâu, biết cách truy cập phần tử của xâu

- Sử dụng một số thủ tục, hàm thông dụng về xâu

- Cái đặt đợc một số chơng trình đơn giản có sử dụng xâu

II Lên lớp

1 ổ n định lớp

2 Bài mới

Gv: Trong giờ trớc chúng ta đã cùng tìm

hiểu một kiểu dữ liệu cơ bản trong lập

trình, đó là kiểu mảng Tuy nhiên khi đi

giải quyết một bài toán không chỉ có

kiểu dữ liệu số mà còn có kiểu dữ liệu

phi số, đó là dạng kí tự, dữ liệu kiểu xâu

là một dãy các kí tự

* Xâu là một dãy các kí tự trong bản mã

ASCII, mỗi kí tự là một phần tử của xâu.

Số lợng phân tử trong xâu đợc gọi là độ

dài của xâu Xâu có độ dài bằng 0 gọi là

xâu rỗng.

Gv: Đa ra ví dụ:

‘2008 la nam Mau Ty’

Các em quan sát ví dụ và nhận xét trên,

thấy các kí tự có đặc điểm gì?

Gv: Giữa các từ một dấu cách, vậy đó có

phải là phần tử của xâu không?

Gv: Từ nhận xét và phân tích ví dụ, các

em thấy kiểu dữ liệu này giống với kiểu

dữ liệu nào đã học?

* Vậy ta có thể xem xâu là mảng một

Hs: nghe giảng và ghi bài

Hs: Săp xếp thành một dãy

Hs: Có

Hs: Kiểu mảng một chiều

Trang 13

chiều mà mỗi phần tử là một kí tự Các

kí tự của xâu đợc đánh số thứ tự, thờng

bắt đầu từ 1.

Gv: Nh vậy các thao tác khi làm việc với

mảng một chiều đều có thể áp dụng khi

làm việc với kiểu xâu

1 Phần khai báo

* Cú pháp:

Var <tên biến>: string[độ dài lớn nhất

của xâu];

* Ví dụ:

- Var hoten: string[12];

- Var chuthich: string;

Nếu khai báo nh vậy thì độ dài lớn

nhất của xâu ngầm định là 255 kí tự

* Chú ý: Tên biến đợc khai báo là kiểu

xâu, nhng mỗi một phần tử trong đó là

một kí tự và có kiểu dữ liệu là CHAR.

Gv: Giải thích cụ thể, so sánh với mảng

một chiều đã học

2 Các thao tác xử lý xâu

a Phép ghép xâu: Kí hiệu là dấu cộng

(+)

Gv: Lấy ví dụ minh hoạ

b Các phép so sánh: =, <>, <, >, <=,

>= Các phép tính so sánh có độ u tiên

thấp hơn phép ghép xâu và tuân theo

quy tắc:

+ Xâu A là lớn hơn xâu B nếu nh kí tự

đầu tiên khác nhau giữa chúng kể từ trái

sang trong xâu A có mã ASCII lớn hơn.

+ Nêu A và B là các xâu có độ dài

khác nhau và A là đoạn đầu của B thì A

là nhỏ hơn B.

+ Hai xâu đợc gọi là bằng nhau nếu

chúng giống nhau hoàn toàn.

Hs: Nghe giảng, tổng hợp kiến thức theo

ý hiểu của mình Cách tham chiếu đến từng phần tử trong xâu nh thế nào

Hs: Ghi bài Đặt câu hỏi yêu cầu giáo viên giải đáp

Hs: nghe giảng, lấy ví dụ và tổng hợp lại các ý chính

Trang 14

c Thủ tục DELETE(st, vt, n) thực hiện việc xoá n kí tự từ xâu st kể từ vị trí vt.

Ví dụ

d Thủ tục insert(s1, s2, vt) chèn xâu s1 vào xâu s2 băt đầu từ vị trí vt

‘.net’ ‘Vnexpress’ insert(s1, s2, 9); ‘vnexpress.net’

‘Bac Son’ ‘Thi tran ’ Delete(s1, s2,10); ‘Thi tran Bac Son’

e Hàm COPY(S, vt, n) tạo xâu n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S

f Hàm length(s) cho giá trị là độ dài xâu S

g Hàm POS(s1,s2) cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2

h Hàm Upcase(ch) cho chữ cai in hoa ứng với chữ cáI trong ch

3 Củng cố

- Cách khai báo kiểu xâu

- So sánh sự giống và khác nhau giữa xâu và mảng một chiều

- Nhớ ý nghĩa của các thủ tục và hàm thao tác với xâu, phân biệt hàm và thủ tục

4 Rút kinh nghiệm

Ngày đăng: 22/06/2013, 01:26

Xem thêm

TỪ KHÓA LIÊN QUAN

w